diff --git a/.prettierrc.mjs b/.prettierrc.mjs new file mode 100644 index 0000000..5ef4f78 --- /dev/null +++ b/.prettierrc.mjs @@ -0,0 +1,13 @@ +/** @type {import("prettier").Config} */ +export default { + plugins: ["prettier-plugin-astro"], + useTabs: true, + overrides: [ + { + files: "*.astro", + options: { + parser: "astro", + }, + }, + ], +}; diff --git a/astro.config.mjs b/astro.config.mjs index 0979f4f..12e351a 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,12 +1,12 @@ -import { defineConfig } from 'astro/config'; +import { defineConfig } from "astro/config"; import tailwind from "@astrojs/tailwind"; import mdx from "@astrojs/mdx"; // https://astro.build/config export default defineConfig({ - integrations: [tailwind(), mdx()], - markdown: { - syntaxHighlight: "prism", - }, -}); \ No newline at end of file + integrations: [tailwind(), mdx()], + markdown: { + syntaxHighlight: "prism", + }, +}); diff --git a/docker-compose.yml b/docker-compose.yml index eef1df4..d9bb493 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,4 +20,3 @@ networks: proxy: name: proxy external: true - diff --git a/package.json b/package.json index 0f9f2d6..2e31805 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "build": "astro build", "test": "vitest run", "preview": "astro preview", + "prettier": "prettier \"./src/**/*.astro\" --write", "astro": "astro" }, "dependencies": { @@ -19,5 +20,9 @@ "tailwindcss": "^3.4.3", "typescript": "^5.4.5", "vitest": "^1.5.0" + }, + "devDependencies": { + "prettier": "^3.3.3", + "prettier-plugin-astro": "^0.14.1" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8dfce84..8ca5969 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,20 +1,19 @@ -lockfileVersion: '9.0' +lockfileVersion: "9.0" settings: autoInstallPeers: true excludeLinksFromLockfile: false importers: - .: dependencies: - '@astrojs/check': + "@astrojs/check": specifier: ^0.5.10 - version: 0.5.10(typescript@5.4.5) - '@astrojs/mdx': + version: 0.5.10(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.4.5) + "@astrojs/mdx": specifier: ^2.3.1 version: 2.3.1(astro@4.6.3(@types/node@20.11.30)(typescript@5.4.5)) - '@astrojs/tailwind': + "@astrojs/tailwind": specifier: ^5.1.0 version: 5.1.0(astro@4.6.3(@types/node@20.11.30)(typescript@5.4.5))(tailwindcss@3.4.3) astro: @@ -32,1857 +31,3307 @@ importers: vitest: specifier: ^1.5.0 version: 1.5.0(@types/node@20.11.30) + devDependencies: + prettier: + specifier: ^3.3.3 + version: 3.3.3 + prettier-plugin-astro: + specifier: ^0.14.1 + version: 0.14.1 packages: + "@alloc/quick-lru@5.2.0": + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: ">=10" } - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} + "@ampproject/remapping@2.3.0": + resolution: + { + integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, + } + engines: { node: ">=6.0.0" } - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@astrojs/check@0.5.10': - resolution: {integrity: sha512-vliHXM9cu/viGeKiksUM4mXfO816ohWtawTl2ADPgTsd4nUMjFiyAl7xFZhF34yy4hq4qf7jvK1F2PlR3b5I5w==} + "@astrojs/check@0.5.10": + resolution: + { + integrity: sha512-vliHXM9cu/viGeKiksUM4mXfO816ohWtawTl2ADPgTsd4nUMjFiyAl7xFZhF34yy4hq4qf7jvK1F2PlR3b5I5w==, + } hasBin: true peerDependencies: typescript: ^5.0.0 - '@astrojs/compiler@2.7.1': - resolution: {integrity: sha512-/POejAYuj8WEw7ZI0J8JBvevjfp9jQ9Wmu/Bg52RiNwGXkMV7JnYpsenVfHvvf1G7R5sXHGKlTcxlQWhoUTiGQ==} + "@astrojs/compiler@2.10.3": + resolution: + { + integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==, + } - '@astrojs/internal-helpers@0.4.0': - resolution: {integrity: sha512-6B13lz5n6BrbTqCTwhXjJXuR1sqiX/H6rTxzlXx+lN1NnV4jgnq/KJldCQaUWJzPL5SiWahQyinxAbxQtwgPHA==} + "@astrojs/compiler@2.7.1": + resolution: + { + integrity: sha512-/POejAYuj8WEw7ZI0J8JBvevjfp9jQ9Wmu/Bg52RiNwGXkMV7JnYpsenVfHvvf1G7R5sXHGKlTcxlQWhoUTiGQ==, + } - '@astrojs/language-server@2.8.4': - resolution: {integrity: sha512-sJH5vGTBkhgA8+hdhzX78UUp4cFz4Mt7xkEkevD188OS5bDMkaue6hK+dtXWM47mnrXFveXA2u38K7S+5+IRjA==} + "@astrojs/internal-helpers@0.4.0": + resolution: + { + integrity: sha512-6B13lz5n6BrbTqCTwhXjJXuR1sqiX/H6rTxzlXx+lN1NnV4jgnq/KJldCQaUWJzPL5SiWahQyinxAbxQtwgPHA==, + } + + "@astrojs/language-server@2.8.4": + resolution: + { + integrity: sha512-sJH5vGTBkhgA8+hdhzX78UUp4cFz4Mt7xkEkevD188OS5bDMkaue6hK+dtXWM47mnrXFveXA2u38K7S+5+IRjA==, + } hasBin: true peerDependencies: prettier: ^3.0.0 - prettier-plugin-astro: '>=0.11.0' + prettier-plugin-astro: ">=0.11.0" peerDependenciesMeta: prettier: optional: true prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@5.1.0': - resolution: {integrity: sha512-S6Z3K2hOB7MfjeDoHsotnP/q2UsnEDB8NlNAaCjMDsGBZfTUbWxyLW3CaphEWw08f6KLZi2ibK9yC3BaMhh2NQ==} + "@astrojs/markdown-remark@5.1.0": + resolution: + { + integrity: sha512-S6Z3K2hOB7MfjeDoHsotnP/q2UsnEDB8NlNAaCjMDsGBZfTUbWxyLW3CaphEWw08f6KLZi2ibK9yC3BaMhh2NQ==, + } - '@astrojs/mdx@2.3.1': - resolution: {integrity: sha512-BOQFKD2Pi9cRntNQJlpF2fh4xV8doNpmVy9NKI95r4jsitrY4X5aTOhAowi+fkQgP/zW1A4HwCyQ6Pdam6z8zQ==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + "@astrojs/mdx@2.3.1": + resolution: + { + integrity: sha512-BOQFKD2Pi9cRntNQJlpF2fh4xV8doNpmVy9NKI95r4jsitrY4X5aTOhAowi+fkQgP/zW1A4HwCyQ6Pdam6z8zQ==, + } + engines: { node: ^18.17.1 || ^20.3.0 || >=21.0.0 } peerDependencies: astro: ^4.0.0 - '@astrojs/prism@3.1.0': - resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + "@astrojs/prism@3.1.0": + resolution: + { + integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==, + } + engines: { node: ^18.17.1 || ^20.3.0 || >=21.0.0 } - '@astrojs/tailwind@5.1.0': - resolution: {integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==} + "@astrojs/tailwind@5.1.0": + resolution: + { + integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==, + } peerDependencies: astro: ^3.0.0 || ^4.0.0 tailwindcss: ^3.0.24 - '@astrojs/telemetry@3.1.0': - resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + "@astrojs/telemetry@3.1.0": + resolution: + { + integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==, + } + engines: { node: ^18.17.1 || ^20.3.0 || >=21.0.0 } - '@babel/code-frame@7.24.2': - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} + "@babel/code-frame@7.24.2": + resolution: + { + integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==, + } + engines: { node: ">=6.9.0" } - '@babel/compat-data@7.24.4': - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} - engines: {node: '>=6.9.0'} + "@babel/compat-data@7.24.4": + resolution: + { + integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==, + } + engines: { node: ">=6.9.0" } - '@babel/core@7.24.4': - resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} - engines: {node: '>=6.9.0'} + "@babel/core@7.24.4": + resolution: + { + integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==, + } + engines: { node: ">=6.9.0" } - '@babel/generator@7.24.4': - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} - engines: {node: '>=6.9.0'} + "@babel/generator@7.24.4": + resolution: + { + integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} + "@babel/helper-annotate-as-pure@7.22.5": + resolution: + { + integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} + "@babel/helper-compilation-targets@7.23.6": + resolution: + { + integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} + "@babel/helper-environment-visitor@7.22.20": + resolution: + { + integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} + "@babel/helper-function-name@7.23.0": + resolution: + { + integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} + "@babel/helper-hoist-variables@7.22.5": + resolution: + { + integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-module-imports@7.24.3': - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} + "@babel/helper-module-imports@7.24.3": + resolution: + { + integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} + "@babel/helper-module-transforms@7.23.3": + resolution: + { + integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 - '@babel/helper-plugin-utils@7.24.0': - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} + "@babel/helper-plugin-utils@7.24.0": + resolution: + { + integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} + "@babel/helper-simple-access@7.22.5": + resolution: + { + integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} + "@babel/helper-split-export-declaration@7.22.6": + resolution: + { + integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} + "@babel/helper-string-parser@7.24.1": + resolution: + { + integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} + "@babel/helper-validator-identifier@7.22.20": + resolution: + { + integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, + } + engines: { node: ">=6.9.0" } - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} + "@babel/helper-validator-option@7.23.5": + resolution: + { + integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==, + } + engines: { node: ">=6.9.0" } - '@babel/helpers@7.24.4': - resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} - engines: {node: '>=6.9.0'} + "@babel/helpers@7.24.4": + resolution: + { + integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==, + } + engines: { node: ">=6.9.0" } - '@babel/highlight@7.24.2': - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} + "@babel/highlight@7.24.2": + resolution: + { + integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==, + } + engines: { node: ">=6.9.0" } - '@babel/parser@7.24.4': - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} - engines: {node: '>=6.0.0'} + "@babel/parser@7.24.4": + resolution: + { + integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==, + } + engines: { node: ">=6.0.0" } hasBin: true - '@babel/plugin-syntax-jsx@7.24.1': - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-jsx@7.24.1": + resolution: + { + integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.23.4': - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-react-jsx@7.23.4": + resolution: + { + integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 - '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} + "@babel/template@7.24.0": + resolution: + { + integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==, + } + engines: { node: ">=6.9.0" } - '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} + "@babel/traverse@7.24.1": + resolution: + { + integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==, + } + engines: { node: ">=6.9.0" } - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} + "@babel/types@7.24.0": + resolution: + { + integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==, + } + engines: { node: ">=6.9.0" } - '@emmetio/abbreviation@2.3.3': - resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + "@emmetio/abbreviation@2.3.3": + resolution: + { + integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==, + } - '@emmetio/css-abbreviation@2.1.8': - resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + "@emmetio/css-abbreviation@2.1.8": + resolution: + { + integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==, + } - '@emmetio/scanner@1.0.4': - resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + "@emmetio/scanner@1.0.4": + resolution: + { + integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==, + } - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} + "@esbuild/aix-ppc64@0.19.12": + resolution: + { + integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} + "@esbuild/aix-ppc64@0.20.2": + resolution: + { + integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} + "@esbuild/android-arm64@0.19.12": + resolution: + { + integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} + "@esbuild/android-arm64@0.20.2": + resolution: + { + integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==, + } + engines: { node: ">=12" } cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} + "@esbuild/android-arm@0.19.12": + resolution: + { + integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==, + } + engines: { node: ">=12" } cpu: [arm] os: [android] - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} + "@esbuild/android-arm@0.20.2": + resolution: + { + integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==, + } + engines: { node: ">=12" } cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} + "@esbuild/android-x64@0.19.12": + resolution: + { + integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==, + } + engines: { node: ">=12" } cpu: [x64] os: [android] - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} + "@esbuild/android-x64@0.20.2": + resolution: + { + integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==, + } + engines: { node: ">=12" } cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} + "@esbuild/darwin-arm64@0.19.12": + resolution: + { + integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==, + } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} + "@esbuild/darwin-arm64@0.20.2": + resolution: + { + integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} + "@esbuild/darwin-x64@0.19.12": + resolution: + { + integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==, + } + engines: { node: ">=12" } cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} + "@esbuild/darwin-x64@0.20.2": + resolution: + { + integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==, + } + engines: { node: ">=12" } cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} + "@esbuild/freebsd-arm64@0.19.12": + resolution: + { + integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} + "@esbuild/freebsd-arm64@0.20.2": + resolution: + { + integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==, + } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} + "@esbuild/freebsd-x64@0.19.12": + resolution: + { + integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==, + } + engines: { node: ">=12" } cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} + "@esbuild/freebsd-x64@0.20.2": + resolution: + { + integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==, + } + engines: { node: ">=12" } cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} + "@esbuild/linux-arm64@0.19.12": + resolution: + { + integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} + "@esbuild/linux-arm64@0.20.2": + resolution: + { + integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==, + } + engines: { node: ">=12" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} + "@esbuild/linux-arm@0.19.12": + resolution: + { + integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==, + } + engines: { node: ">=12" } cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} + "@esbuild/linux-arm@0.20.2": + resolution: + { + integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==, + } + engines: { node: ">=12" } cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} + "@esbuild/linux-ia32@0.19.12": + resolution: + { + integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==, + } + engines: { node: ">=12" } cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} + "@esbuild/linux-ia32@0.20.2": + resolution: + { + integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==, + } + engines: { node: ">=12" } cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} + "@esbuild/linux-loong64@0.19.12": + resolution: + { + integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==, + } + engines: { node: ">=12" } cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} + "@esbuild/linux-loong64@0.20.2": + resolution: + { + integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==, + } + engines: { node: ">=12" } cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} + "@esbuild/linux-mips64el@0.19.12": + resolution: + { + integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==, + } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} + "@esbuild/linux-mips64el@0.20.2": + resolution: + { + integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==, + } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} + "@esbuild/linux-ppc64@0.19.12": + resolution: + { + integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} + "@esbuild/linux-ppc64@0.20.2": + resolution: + { + integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} + "@esbuild/linux-riscv64@0.19.12": + resolution: + { + integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==, + } + engines: { node: ">=12" } cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} + "@esbuild/linux-riscv64@0.20.2": + resolution: + { + integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==, + } + engines: { node: ">=12" } cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} + "@esbuild/linux-s390x@0.19.12": + resolution: + { + integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==, + } + engines: { node: ">=12" } cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} + "@esbuild/linux-s390x@0.20.2": + resolution: + { + integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==, + } + engines: { node: ">=12" } cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} + "@esbuild/linux-x64@0.19.12": + resolution: + { + integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==, + } + engines: { node: ">=12" } cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} + "@esbuild/linux-x64@0.20.2": + resolution: + { + integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==, + } + engines: { node: ">=12" } cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} + "@esbuild/netbsd-x64@0.19.12": + resolution: + { + integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==, + } + engines: { node: ">=12" } cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} + "@esbuild/netbsd-x64@0.20.2": + resolution: + { + integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} + "@esbuild/openbsd-x64@0.19.12": + resolution: + { + integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==, + } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} + "@esbuild/openbsd-x64@0.20.2": + resolution: + { + integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} + "@esbuild/sunos-x64@0.19.12": + resolution: + { + integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==, + } + engines: { node: ">=12" } cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} + "@esbuild/sunos-x64@0.20.2": + resolution: + { + integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==, + } + engines: { node: ">=12" } cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} + "@esbuild/win32-arm64@0.19.12": + resolution: + { + integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==, + } + engines: { node: ">=12" } cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} + "@esbuild/win32-arm64@0.20.2": + resolution: + { + integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==, + } + engines: { node: ">=12" } cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} + "@esbuild/win32-ia32@0.19.12": + resolution: + { + integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==, + } + engines: { node: ">=12" } cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} + "@esbuild/win32-ia32@0.20.2": + resolution: + { + integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==, + } + engines: { node: ">=12" } cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} + "@esbuild/win32-x64@0.19.12": + resolution: + { + integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==, + } + engines: { node: ">=12" } cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} + "@esbuild/win32-x64@0.20.2": + resolution: + { + integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [win32] - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + "@isaacs/cliui@8.0.2": + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + "@jest/schemas@29.6.3": + resolution: + { + integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + "@jridgewell/gen-mapping@0.3.5": + resolution: + { + integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, + } + engines: { node: ">=6.0.0" } - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + "@jridgewell/resolve-uri@3.1.2": + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + } + engines: { node: ">=6.0.0" } - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + "@jridgewell/set-array@1.2.1": + resolution: + { + integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, + } + engines: { node: ">=6.0.0" } - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + "@jridgewell/sourcemap-codec@1.4.15": + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + "@jridgewell/trace-mapping@0.3.25": + resolution: + { + integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, + } - '@mdx-js/mdx@3.0.1': - resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + "@mdx-js/mdx@3.0.1": + resolution: + { + integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==, + } - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + "@nodelib/fs.scandir@2.1.5": + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + "@nodelib/fs.stat@2.0.5": + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + "@nodelib/fs.walk@1.2.8": + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + "@pkgjs/parseargs@0.11.0": + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: ">=14" } - '@rollup/rollup-android-arm-eabi@4.16.4': - resolution: {integrity: sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==} + "@rollup/rollup-android-arm-eabi@4.16.4": + resolution: + { + integrity: sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==, + } cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.16.4': - resolution: {integrity: sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==} + "@rollup/rollup-android-arm64@4.16.4": + resolution: + { + integrity: sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==, + } cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.16.4': - resolution: {integrity: sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==} + "@rollup/rollup-darwin-arm64@4.16.4": + resolution: + { + integrity: sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==, + } cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.16.4': - resolution: {integrity: sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==} + "@rollup/rollup-darwin-x64@4.16.4": + resolution: + { + integrity: sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==, + } cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.16.4': - resolution: {integrity: sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==} + "@rollup/rollup-linux-arm-gnueabihf@4.16.4": + resolution: + { + integrity: sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==, + } cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.16.4': - resolution: {integrity: sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==} + "@rollup/rollup-linux-arm-musleabihf@4.16.4": + resolution: + { + integrity: sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==, + } cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.16.4': - resolution: {integrity: sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==} + "@rollup/rollup-linux-arm64-gnu@4.16.4": + resolution: + { + integrity: sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==, + } cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.16.4': - resolution: {integrity: sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==} + "@rollup/rollup-linux-arm64-musl@4.16.4": + resolution: + { + integrity: sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==, + } cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.16.4': - resolution: {integrity: sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==} + "@rollup/rollup-linux-powerpc64le-gnu@4.16.4": + resolution: + { + integrity: sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==, + } cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.16.4': - resolution: {integrity: sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==} + "@rollup/rollup-linux-riscv64-gnu@4.16.4": + resolution: + { + integrity: sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==, + } cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.16.4': - resolution: {integrity: sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==} + "@rollup/rollup-linux-s390x-gnu@4.16.4": + resolution: + { + integrity: sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==, + } cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.16.4': - resolution: {integrity: sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==} + "@rollup/rollup-linux-x64-gnu@4.16.4": + resolution: + { + integrity: sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==, + } cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.16.4': - resolution: {integrity: sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==} + "@rollup/rollup-linux-x64-musl@4.16.4": + resolution: + { + integrity: sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==, + } cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.16.4': - resolution: {integrity: sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==} + "@rollup/rollup-win32-arm64-msvc@4.16.4": + resolution: + { + integrity: sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==, + } cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.16.4': - resolution: {integrity: sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==} + "@rollup/rollup-win32-ia32-msvc@4.16.4": + resolution: + { + integrity: sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==, + } cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.16.4': - resolution: {integrity: sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==} + "@rollup/rollup-win32-x64-msvc@4.16.4": + resolution: + { + integrity: sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==, + } cpu: [x64] os: [win32] - '@shikijs/core@1.3.0': - resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} + "@shikijs/core@1.3.0": + resolution: + { + integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==, + } - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + "@sinclair/typebox@0.27.8": + resolution: + { + integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, + } - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + "@types/acorn@4.0.6": + resolution: + { + integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==, + } - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + "@types/babel__core@7.20.5": + resolution: + { + integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, + } - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + "@types/babel__generator@7.6.8": + resolution: + { + integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==, + } - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + "@types/babel__template@7.4.4": + resolution: + { + integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, + } - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + "@types/babel__traverse@7.20.5": + resolution: + { + integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==, + } - '@types/cookie@0.5.4': - resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} + "@types/cookie@0.5.4": + resolution: + { + integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==, + } - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + "@types/debug@4.1.12": + resolution: + { + integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, + } - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + "@types/estree-jsx@1.0.5": + resolution: + { + integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==, + } - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + "@types/estree@1.0.5": + resolution: + { + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, + } - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + "@types/hast@3.0.4": + resolution: + { + integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, + } - '@types/mdast@4.0.3': - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + "@types/mdast@4.0.3": + resolution: + { + integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==, + } - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + "@types/mdx@2.0.13": + resolution: + { + integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==, + } - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + "@types/ms@0.7.34": + resolution: + { + integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, + } - '@types/nlcst@1.0.4': - resolution: {integrity: sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==} + "@types/nlcst@1.0.4": + resolution: + { + integrity: sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==, + } - '@types/node@20.11.30': - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + "@types/node@20.11.30": + resolution: + { + integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==, + } - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + "@types/unist@2.0.10": + resolution: + { + integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==, + } - '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + "@types/unist@3.0.2": + resolution: + { + integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==, + } - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + "@ungap/structured-clone@1.2.0": + resolution: + { + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } - '@vitest/expect@1.5.0': - resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} + "@vitest/expect@1.5.0": + resolution: + { + integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==, + } - '@vitest/runner@1.5.0': - resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} + "@vitest/runner@1.5.0": + resolution: + { + integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==, + } - '@vitest/snapshot@1.5.0': - resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} + "@vitest/snapshot@1.5.0": + resolution: + { + integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==, + } - '@vitest/spy@1.5.0': - resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} + "@vitest/spy@1.5.0": + resolution: + { + integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==, + } - '@vitest/utils@1.5.0': - resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} + "@vitest/utils@1.5.0": + resolution: + { + integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==, + } - '@volar/kit@2.1.6': - resolution: {integrity: sha512-dSuXChDGM0nSG/0fxqlNfadjpAeeo1P1SJPBQ+pDf8H1XrqeJq5gIhxRTEbiS+dyNIG69ATq1CArkbCif+oxJw==} + "@volar/kit@2.1.6": + resolution: + { + integrity: sha512-dSuXChDGM0nSG/0fxqlNfadjpAeeo1P1SJPBQ+pDf8H1XrqeJq5gIhxRTEbiS+dyNIG69ATq1CArkbCif+oxJw==, + } peerDependencies: - typescript: '*' + typescript: "*" - '@volar/language-core@2.1.6': - resolution: {integrity: sha512-pAlMCGX/HatBSiDFMdMyqUshkbwWbLxpN/RL7HCQDOo2gYBE+uS+nanosLc1qR6pTQ/U8q00xt8bdrrAFPSC0A==} + "@volar/language-core@2.1.6": + resolution: + { + integrity: sha512-pAlMCGX/HatBSiDFMdMyqUshkbwWbLxpN/RL7HCQDOo2gYBE+uS+nanosLc1qR6pTQ/U8q00xt8bdrrAFPSC0A==, + } - '@volar/language-server@2.1.6': - resolution: {integrity: sha512-0w+FV8ro37hVb3qE4ONo3VbS5kEQXv4H/D2xCePyY5dRw6XnbJAPFNKvoxI9mxHTPonvIG1si5rN9MSGSKtgZQ==} + "@volar/language-server@2.1.6": + resolution: + { + integrity: sha512-0w+FV8ro37hVb3qE4ONo3VbS5kEQXv4H/D2xCePyY5dRw6XnbJAPFNKvoxI9mxHTPonvIG1si5rN9MSGSKtgZQ==, + } - '@volar/language-service@2.1.6': - resolution: {integrity: sha512-1OpbbPQ6wUIumwMP5r45y8utVEmvq1n6BC8JHqGKsuFr9RGFIldDBlvA/xuO3MDKhjmmPGPHKb54kg1/YN78ow==} + "@volar/language-service@2.1.6": + resolution: + { + integrity: sha512-1OpbbPQ6wUIumwMP5r45y8utVEmvq1n6BC8JHqGKsuFr9RGFIldDBlvA/xuO3MDKhjmmPGPHKb54kg1/YN78ow==, + } - '@volar/snapshot-document@2.1.6': - resolution: {integrity: sha512-YNYk1sCOrGg7VHbZM+1It97q0GWhFxdqIwnxSNFoL0X1LuSRXoCT2DRb/aa1J6aBpPMbKqSFUWHGQEAFUnc4Zw==} + "@volar/snapshot-document@2.1.6": + resolution: + { + integrity: sha512-YNYk1sCOrGg7VHbZM+1It97q0GWhFxdqIwnxSNFoL0X1LuSRXoCT2DRb/aa1J6aBpPMbKqSFUWHGQEAFUnc4Zw==, + } - '@volar/source-map@2.1.6': - resolution: {integrity: sha512-TeyH8pHHonRCHYI91J7fWUoxi0zWV8whZTVRlsWHSYfjm58Blalkf9LrZ+pj6OiverPTmrHRkBsG17ScQyWECw==} + "@volar/source-map@2.1.6": + resolution: + { + integrity: sha512-TeyH8pHHonRCHYI91J7fWUoxi0zWV8whZTVRlsWHSYfjm58Blalkf9LrZ+pj6OiverPTmrHRkBsG17ScQyWECw==, + } - '@volar/typescript@2.1.6': - resolution: {integrity: sha512-JgPGhORHqXuyC3r6skPmPHIZj4LoMmGlYErFTuPNBq9Nhc9VTv7ctHY7A3jMN3ngKEfRrfnUcwXHztvdSQqNfw==} + "@volar/typescript@2.1.6": + resolution: + { + integrity: sha512-JgPGhORHqXuyC3r6skPmPHIZj4LoMmGlYErFTuPNBq9Nhc9VTv7ctHY7A3jMN3ngKEfRrfnUcwXHztvdSQqNfw==, + } - '@vscode/emmet-helper@2.9.3': - resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + "@vscode/emmet-helper@2.9.3": + resolution: + { + integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==, + } - '@vscode/l10n@0.0.16': - resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} + "@vscode/l10n@0.0.16": + resolution: + { + integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==, + } - '@vscode/l10n@0.0.18': - resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + "@vscode/l10n@0.0.18": + resolution: + { + integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==, + } acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==, + } + engines: { node: ">=0.4.0" } acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, + } + engines: { node: ">=0.4.0" } hasBin: true ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + resolution: + { + integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, + } ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: ">=12" } ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, + } + engines: { node: ">=10" } ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: ">=12" } any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + resolution: + { + integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==, + } array-iterate@2.0.1: - resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + resolution: + { + integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==, + } assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + resolution: + { + integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, + } astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + resolution: + { + integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==, + } hasBin: true astro@4.6.3: - resolution: {integrity: sha512-p2zs1Gac+ysdc/yFCoc8pOXTZE5L9foAtmqUzUVL22WX68bYTRovd03GRs7J1MDpwzsl9kJtlK20ROpjyIFpNw==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + resolution: + { + integrity: sha512-p2zs1Gac+ysdc/yFCoc8pOXTZE5L9foAtmqUzUVL22WX68bYTRovd03GRs7J1MDpwzsl9kJtlK20ROpjyIFpNw==, + } + engines: + { node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: ">=9.6.5", pnpm: ">=7.1.0" } hasBin: true autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==, + } + engines: { node: ^10 || ^12 || >=14 } hasBin: true peerDependencies: postcss: ^8.1.0 axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + resolution: + { + integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==, + } b4a@1.6.6: - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + resolution: + { + integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==, + } bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + resolution: + { + integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, + } balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } bare-events@2.2.2: - resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==} + resolution: + { + integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==, + } bare-fs@2.2.3: - resolution: {integrity: sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw==} + resolution: + { + integrity: sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw==, + } bare-os@2.2.1: - resolution: {integrity: sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==} + resolution: + { + integrity: sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==, + } bare-path@2.1.1: - resolution: {integrity: sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A==} + resolution: + { + integrity: sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A==, + } base-64@1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + resolution: + { + integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==, + } base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, + } + engines: { node: ">=8" } bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + resolution: + { + integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, + } bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + resolution: + { + integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==, + } boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==, + } + engines: { node: ">=14.16" } brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + resolution: + { + integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + } + engines: { node: ">=8" } camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, + } + engines: { node: ">= 6" } camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==, + } + engines: { node: ">=14.16" } caniuse-lite@1.0.30001683: - resolution: {integrity: sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==} + resolution: + { + integrity: sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==, + } ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + resolution: + { + integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, + } chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==, + } + engines: { node: ">=4" } chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + resolution: + { + integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, + } character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + resolution: + { + integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, + } character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + resolution: + { + integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, + } character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + resolution: + { + integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, + } check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + resolution: + { + integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==, + } chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, + } + engines: { node: ">= 8.10.0" } chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + resolution: + { + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, + } ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==, + } + engines: { node: ">=8" } cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==, + } + engines: { node: ">=10" } cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==, + } + engines: { node: ">=6" } cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: ">=12" } clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, + } + engines: { node: ">=6" } codejar@4.2.0: - resolution: {integrity: sha512-U8OZe+2B400W5nSSbXxaoboBN5i1hxWdBZJ9kcTy0DBuc4muwkPE/ph/MGX4yooIE8hztfNLPNU1CbcNYch69A==} + resolution: + { + integrity: sha512-U8OZe+2B400W5nSSbXxaoboBN5i1hxWdBZJ9kcTy0DBuc4muwkPE/ph/MGX4yooIE8hztfNLPNU1CbcNYch69A==, + } collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + resolution: + { + integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==, + } color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + resolution: + { + integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, + } color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} + resolution: + { + integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==, + } + engines: { node: ">=12.5.0" } comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + resolution: + { + integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, + } commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: ">= 6" } common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + resolution: + { + integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==, + } confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + resolution: + { + integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==, + } convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==, + } + engines: { node: ">= 0.6" } cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: ">=4" } hasBin: true debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + resolution: + { + integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, + } decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, + } + engines: { node: ">=10" } deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==, + } + engines: { node: ">=6" } deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, + } + engines: { node: ">=4.0.0" } dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, + } + engines: { node: ">=6" } detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==, + } + engines: { node: ">=8" } deterministic-object-hash@2.0.2: - resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==, + } + engines: { node: ">=18" } devalue@4.3.3: - resolution: {integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==} + resolution: + { + integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==, + } devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + resolution: + { + integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, + } didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + resolution: + { + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, + } diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} + resolution: + { + integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==, + } + engines: { node: ">=0.3.1" } dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + resolution: + { + integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, + } dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==, + } + engines: { node: ">=4" } eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } electron-to-chromium@1.4.746: - resolution: {integrity: sha512-jeWaIta2rIG2FzHaYIhSuVWqC6KJYo7oSBX4Jv7g+aVujKztfvdpf+n6MGwZdC5hQXbax4nntykLH2juIQrfPg==} + resolution: + { + integrity: sha512-jeWaIta2rIG2FzHaYIhSuVWqC6KJYo7oSBX4Jv7g+aVujKztfvdpf+n6MGwZdC5hQXbax4nntykLH2juIQrfPg==, + } emmet@2.4.7: - resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} + resolution: + { + integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==, + } emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + resolution: + { + integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==, + } emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, + } + engines: { node: ">=0.12" } es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + resolution: + { + integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==, + } esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==, + } + engines: { node: ">=12" } hasBin: true esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==, + } + engines: { node: ">=12" } hasBin: true escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==, + } + engines: { node: ">=6" } escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, + } + engines: { node: ">=12" } esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: ">=4" } hasBin: true estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + resolution: + { + integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==, + } estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + resolution: + { + integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==, + } estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + resolution: + { + integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==, + } estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + resolution: + { + integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==, + } estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + resolution: + { + integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==, + } estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + resolution: + { + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + } execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: ">=16.17" } expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==, + } + engines: { node: ">=6" } extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, + } + engines: { node: ">=0.10.0" } extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + resolution: + { + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, + } fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + resolution: + { + integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==, + } fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, + } + engines: { node: ">=8.6.0" } fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + resolution: + { + integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, + } fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: ">=8" } find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: ">=10" } find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + resolution: + { + integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==, + } flattie@1.1.1: - resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==, + } + engines: { node: ">=8" } foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, + } + engines: { node: ">=14" } fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + resolution: + { + integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, + } fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + } fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: ">=6.9.0" } get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==, + } + engines: { node: ">=18" } get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + resolution: + { + integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==, + } get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: ">=16" } github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + resolution: + { + integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, + } github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + resolution: + { + integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==, + } glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: ">=10.13.0" } glob@10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, + } + engines: { node: ">=4" } graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==, + } + engines: { node: ">=6.0" } has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + } + engines: { node: ">= 0.4" } hast-util-from-html@2.0.1: - resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} + resolution: + { + integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==, + } hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + resolution: + { + integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==, + } hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + resolution: + { + integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==, + } hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + resolution: + { + integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==, + } hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + resolution: + { + integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==, + } hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + resolution: + { + integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==, + } hast-util-to-html@9.0.1: - resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} + resolution: + { + integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==, + } hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + resolution: + { + integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==, + } hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + resolution: + { + integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==, + } hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + resolution: + { + integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==, + } hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + resolution: + { + integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==, + } hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + resolution: + { + integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==, + } html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + resolution: + { + integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==, + } html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + resolution: + { + integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==, + } http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + resolution: + { + integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==, + } human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, + } + engines: { node: ">=16.17.0" } ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + resolution: + { + integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==, + } inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + resolution: + { + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, + } inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + resolution: + { + integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, + } inline-style-parser@0.2.3: - resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + resolution: + { + integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==, + } is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + resolution: + { + integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, + } is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + resolution: + { + integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, + } is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + resolution: + { + integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, + } is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, + } + engines: { node: ">=4" } is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, + } is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + resolution: + { + integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, + } is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } hasBin: true is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, + } + engines: { node: ">=0.10.0" } is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + resolution: + { + integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, + } is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, + } + engines: { node: ">=14.16" } hasBin: true is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==, + } + engines: { node: ">=12" } is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, + } + engines: { node: ">=12" } is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + resolution: + { + integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==, + } is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==, + } + engines: { node: ">=12" } is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, + } + engines: { node: ">=16" } isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: ">=14" } jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + resolution: + { + integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==, + } hasBin: true js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + resolution: + { + integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==, + } js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } hasBin: true js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } hasBin: true jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, + } + engines: { node: ">=4" } hasBin: true json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: ">=6" } hasBin: true jsonc-parser@2.3.1: - resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + resolution: + { + integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==, + } kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, + } + engines: { node: ">=0.10.0" } kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, + } + engines: { node: ">=6" } kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, + } + engines: { node: ">=6" } lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: ">=10" } lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==, + } + engines: { node: ">=14" } lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==, + } + engines: { node: ">=6" } local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, + } + engines: { node: ">=14" } locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: ">=8" } locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: ">=10" } log-symbols@5.1.0: - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==, + } + engines: { node: ">=12" } longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + resolution: + { + integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, + } loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + resolution: + { + integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==, + } lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} + resolution: + { + integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==, + } + engines: { node: 14 || >=16.14 } lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: ">=10" } magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + resolution: + { + integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==, + } markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==, + } + engines: { node: ">=16" } markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + resolution: + { + integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, + } mdast-util-definitions@6.0.0: - resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + resolution: + { + integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==, + } mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + resolution: + { + integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==, + } mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + resolution: + { + integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==, + } mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + resolution: + { + integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==, + } mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + resolution: + { + integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==, + } mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + resolution: + { + integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==, + } mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + resolution: + { + integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==, + } mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + resolution: + { + integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==, + } mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + resolution: + { + integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==, + } mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + resolution: + { + integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==, + } mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + resolution: + { + integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==, + } mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + resolution: + { + integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==, + } mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + resolution: + { + integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==, + } mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + resolution: + { + integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==, + } mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + resolution: + { + integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==, + } mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + resolution: + { + integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==, + } mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + resolution: + { + integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==, + } merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } micromark-core-commonmark@2.0.1: - resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + resolution: + { + integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==, + } micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + resolution: + { + integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==, + } micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + resolution: + { + integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==, + } micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + resolution: + { + integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==, + } micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + resolution: + { + integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==, + } micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + resolution: + { + integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==, + } micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + resolution: + { + integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==, + } micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + resolution: + { + integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==, + } micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + resolution: + { + integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==, + } micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + resolution: + { + integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==, + } micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + resolution: + { + integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==, + } micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + resolution: + { + integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==, + } micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + resolution: + { + integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==, + } micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + resolution: + { + integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==, + } micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + resolution: + { + integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==, + } micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + resolution: + { + integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==, + } micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + resolution: + { + integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==, + } micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + resolution: + { + integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==, + } micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + resolution: + { + integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==, + } micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + resolution: + { + integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==, + } micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + resolution: + { + integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==, + } micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + resolution: + { + integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==, + } micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + resolution: + { + integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==, + } micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + resolution: + { + integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==, + } micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + resolution: + { + integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==, + } micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + resolution: + { + integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==, + } micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + resolution: + { + integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==, + } micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + resolution: + { + integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==, + } micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + resolution: + { + integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==, + } micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + resolution: + { + integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==, + } micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + resolution: + { + integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==, + } micromark-util-subtokenize@2.0.1: - resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + resolution: + { + integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==, + } micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + resolution: + { + integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==, + } micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + resolution: + { + integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==, + } micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + resolution: + { + integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==, + } micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: ">=8.6" } mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==, + } + engines: { node: ">=10.0.0" } hasBin: true mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: ">=6" } mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: ">=12" } mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, + } + engines: { node: ">=10" } minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==, + } + engines: { node: ">=16 || 14 >=14.17" } minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, + } + engines: { node: ">=16 || 14 >=14.17" } mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + resolution: + { + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, + } mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} + resolution: + { + integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==, + } ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + resolution: + { + integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==, + } mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + resolution: + { + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + resolution: + { + integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==, + } nlcst-to-string@3.1.1: - resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} + resolution: + { + integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==, + } node-abi@3.61.0: - resolution: {integrity: sha512-dYDO1rxzvMXjEMi37PBeFuYgwh3QZpsw/jt+qOmnRSwiV4z4c+OLoRlTa3V8ID4TrkSQpzCVc9OI2sstFaINfQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-dYDO1rxzvMXjEMi37PBeFuYgwh3QZpsw/jt+qOmnRSwiV4z4c+OLoRlTa3V8ID4TrkSQpzCVc9OI2sstFaINfQ==, + } + engines: { node: ">=10" } node-addon-api@6.1.0: - resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + resolution: + { + integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==, + } node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + resolution: + { + integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==, + } normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, + } + engines: { node: ">=0.10.0" } npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: ">= 6" } once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: ">=6" } onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: ">=12" } ora@7.0.1: - resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==, + } + engines: { node: ">=16" } p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: ">=6" } p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: ">=10" } p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==, + } + engines: { node: ">=18" } p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: ">=8" } p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: ">=10" } p-queue@8.0.1: - resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==, + } + engines: { node: ">=18" } p-timeout@6.1.2: - resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==, + } + engines: { node: ">=14.16" } p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: ">=6" } parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + resolution: + { + integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==, + } parse-latin@5.0.1: - resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} + resolution: + { + integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==, + } parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + resolution: + { + integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, + } path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + resolution: + { + integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, + } path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: ">=12" } path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==, + } + engines: { node: ">=16 || 14 >=14.17" } path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + resolution: + { + integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==, + } pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + resolution: + { + integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, + } pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + resolution: + { + integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, + } periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + resolution: + { + integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==, + } picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: ">=0.10.0" } pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, + } + engines: { node: ">=6" } pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: ">= 6" } pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, + } + engines: { node: ">=8" } pkg-types@1.1.0: - resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} + resolution: + { + integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==, + } postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: ">=14.0.0" } peerDependencies: postcss: ^8.0.0 postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, + } + engines: { node: ^12 || ^14 || >= 16 } peerDependencies: postcss: ^8.4.21 postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, + } + engines: { node: ">= 14" } peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' + postcss: ">=8.0.9" + ts-node: ">=9.0.0" peerDependenciesMeta: postcss: optional: true @@ -1890,347 +3339,668 @@ packages: optional: true postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} + resolution: + { + integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, + } + engines: { node: ">=12.0" } peerDependencies: postcss: ^8.2.14 postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==, + } + engines: { node: ">=4" } postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==, + } + engines: { node: ^10 || ^12 || >=14 } prebuild-install@7.1.2: - resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==, + } + engines: { node: ">=10" } hasBin: true preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==, + } + engines: { node: ">=10" } + + prettier-plugin-astro@0.14.1: + resolution: + { + integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==, + } + engines: { node: ^14.15.0 || >=16.0.0 } + + prettier@3.3.3: + resolution: + { + integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==, + } + engines: { node: ">=14" } + hasBin: true pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, + } + engines: { node: ">=6" } prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, + } + engines: { node: ">= 6" } property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + resolution: + { + integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==, + } pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + resolution: + { + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, + } queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + resolution: + { + integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==, + } rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + resolution: + { + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, + } hasBin: true react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + resolution: + { + integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, + } read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, + } + engines: { node: ">= 6" } readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } rehype-parse@9.0.0: - resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} + resolution: + { + integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==, + } rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + resolution: + { + integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==, + } rehype-stringify@10.0.0: - resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} + resolution: + { + integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==, + } rehype@13.0.1: - resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==} + resolution: + { + integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==, + } remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + resolution: + { + integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==, + } remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + resolution: + { + integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==, + } remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + resolution: + { + integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==, + } remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + resolution: + { + integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==, + } remark-smartypants@2.1.0: - resolution: {integrity: sha512-qoF6Vz3BjU2tP6OfZqHOvCU0ACmu/6jhGaINSQRI9mM7wCxNQTKB3JUAN4SVoN2ybElEDTxBIABRep7e569iJw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-qoF6Vz3BjU2tP6OfZqHOvCU0ACmu/6jhGaINSQRI9mM7wCxNQTKB3JUAN4SVoN2ybElEDTxBIABRep7e569iJw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + resolution: + { + integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==, + } request-light@0.7.0: - resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + resolution: + { + integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==, + } require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } hasBin: true restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } retext-latin@3.1.0: - resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} + resolution: + { + integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==, + } retext-smartypants@5.2.0: - resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} + resolution: + { + integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==, + } retext-stringify@3.1.0: - resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} + resolution: + { + integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==, + } retext@8.1.0: - resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} + resolution: + { + integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==, + } reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } rollup@4.16.4: - resolution: {integrity: sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} + resolution: + { + integrity: sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==, + } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } + + s.color@0.0.15: + resolution: + { + integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==, + } safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + + sass-formatter@0.7.9: + resolution: + { + integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==, + } section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==, + } + engines: { node: ">=4" } semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } hasBin: true semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==, + } + engines: { node: ">=10" } hasBin: true sharp@0.32.6: - resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} - engines: {node: '>=14.15.0'} + resolution: + { + integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==, + } + engines: { node: ">=14.15.0" } shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } shiki@1.3.0: - resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} + resolution: + { + integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==, + } siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + resolution: + { + integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, + } signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + resolution: + { + integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==, + } simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + resolution: + { + integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==, + } simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + resolution: + { + integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, + } sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + resolution: + { + integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, + } source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==, + } + engines: { node: ">=0.10.0" } source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, + } + engines: { node: ">= 8" } space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + resolution: + { + integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, + } sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + resolution: + { + integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, + } std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + resolution: + { + integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, + } stdin-discarder@0.1.0: - resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } streamx@2.16.1: - resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} + resolution: + { + integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==, + } string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: ">=12" } string-width@6.1.0: - resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==, + } + engines: { node: ">=16" } string-width@7.1.0: - resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==, + } + engines: { node: ">=18" } string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + resolution: + { + integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, + } strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==, + } + engines: { node: ">=0.10.0" } strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: ">=4" } strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: ">=12" } strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, + } + engines: { node: ">=0.10.0" } strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + resolution: + { + integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==, + } style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + resolution: + { + integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==, + } style-to-object@1.0.6: - resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} + resolution: + { + integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==, + } sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true + suf-log@2.5.3: + resolution: + { + integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==, + } + supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } tailwindcss@3.4.3: - resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==, + } + engines: { node: ">=14.0.0" } hasBin: true tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + resolution: + { + integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==, + } tar-fs@3.0.5: - resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} + resolution: + { + integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==, + } tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: ">=6" } tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + resolution: + { + integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==, + } thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: ">=0.8" } thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + resolution: + { + integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==, + } tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==, + } + engines: { node: ">=14.0.0" } tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==, + } + engines: { node: ">=14.0.0" } to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, + } + engines: { node: ">=4" } to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + resolution: + { + integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, + } trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + resolution: + { + integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==, + } ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } tsconfck@3.0.3: - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} - engines: {node: ^18 || >=20} + resolution: + { + integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==, + } + engines: { node: ^18 || >=20 } hasBin: true peerDependencies: typescript: ^5.0.0 @@ -2239,127 +4009,229 @@ packages: optional: true tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + resolution: + { + integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, + } type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, + } + engines: { node: ">=4" } type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, + } + engines: { node: ">=12.20" } typesafe-path@0.2.2: - resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + resolution: + { + integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==, + } typescript-auto-import-cache@0.3.2: - resolution: {integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==} + resolution: + { + integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==, + } typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==, + } + engines: { node: ">=14.17" } hasBin: true ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + resolution: + { + integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==, + } undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, + } unherit@3.0.1: - resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} + resolution: + { + integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==, + } unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + resolution: + { + integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==, + } unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + resolution: + { + integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==, + } unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + resolution: + { + integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==, + } unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + resolution: + { + integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==, + } unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + resolution: + { + integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==, + } unist-util-modify-children@3.1.1: - resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} + resolution: + { + integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==, + } unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + resolution: + { + integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==, + } unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + resolution: + { + integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==, + } unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + resolution: + { + integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==, + } unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + resolution: + { + integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, + } unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + resolution: + { + integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==, + } unist-util-visit-children@2.0.2: - resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} + resolution: + { + integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==, + } unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + resolution: + { + integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==, + } unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + resolution: + { + integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==, + } unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + resolution: + { + integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==, + } unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + resolution: + { + integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, + } update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + resolution: + { + integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, + } hasBin: true peerDependencies: - browserslist: '>= 4.21.0' + browserslist: ">= 4.21.0" util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + resolution: + { + integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==, + } vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + resolution: + { + integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, + } vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + resolution: + { + integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==, + } vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + resolution: + { + integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==, + } vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + resolution: + { + integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==, + } vite-node@1.5.0: - resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true vite@5.2.10: - resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' + sass: "*" + stylus: "*" + sugarss: "*" terser: ^5.4.0 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true less: optional: true @@ -2375,7 +4247,10 @@ packages: optional: true vitefu@0.2.5: - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + resolution: + { + integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==, + } peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: @@ -2383,24 +4258,27 @@ packages: optional: true vitest@1.5.0: - resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.0 - '@vitest/ui': 1.5.0 - happy-dom: '*' - jsdom: '*' + "@edge-runtime/vm": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": 1.5.0 + "@vitest/ui": 1.5.0 + happy-dom: "*" + jsdom: "*" peerDependenciesMeta: - '@edge-runtime/vm': + "@edge-runtime/vm": optional: true - '@types/node': + "@types/node": optional: true - '@vitest/browser': + "@vitest/browser": optional: true - '@vitest/ui': + "@vitest/ui": optional: true happy-dom: optional: true @@ -2408,182 +4286,292 @@ packages: optional: true volar-service-css@0.0.34: - resolution: {integrity: sha512-C7ua0j80ZD7bsgALAz/cA1bykPehoIa5n+3+Ccr+YLpj0fypqw9iLUmGLX11CqzqNCO2XFGe/1eXB/c+SWrF/g==} + resolution: + { + integrity: sha512-C7ua0j80ZD7bsgALAz/cA1bykPehoIa5n+3+Ccr+YLpj0fypqw9iLUmGLX11CqzqNCO2XFGe/1eXB/c+SWrF/g==, + } peerDependencies: - '@volar/language-service': ~2.1.0 + "@volar/language-service": ~2.1.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-emmet@0.0.34: - resolution: {integrity: sha512-ubQvMCmHPp8Ic82LMPkgrp9ot+u2p/RDd0RyT0EykRkZpWsagHUF5HWkVheLfiMyx2rFuWx/+7qZPOgypx6h6g==} + resolution: + { + integrity: sha512-ubQvMCmHPp8Ic82LMPkgrp9ot+u2p/RDd0RyT0EykRkZpWsagHUF5HWkVheLfiMyx2rFuWx/+7qZPOgypx6h6g==, + } peerDependencies: - '@volar/language-service': ~2.1.0 + "@volar/language-service": ~2.1.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-html@0.0.34: - resolution: {integrity: sha512-kMEneea1tQbiRcyKavqdrSVt8zV06t+0/3pGkjO3gV6sikXTNShIDkdtB4Tq9vE2cQdM50TuS7utVV7iysUxHw==} + resolution: + { + integrity: sha512-kMEneea1tQbiRcyKavqdrSVt8zV06t+0/3pGkjO3gV6sikXTNShIDkdtB4Tq9vE2cQdM50TuS7utVV7iysUxHw==, + } peerDependencies: - '@volar/language-service': ~2.1.0 + "@volar/language-service": ~2.1.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-prettier@0.0.34: - resolution: {integrity: sha512-BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==} + resolution: + { + integrity: sha512-BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==, + } peerDependencies: - '@volar/language-service': ~2.1.0 + "@volar/language-service": ~2.1.0 prettier: ^2.2 || ^3.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true prettier: optional: true volar-service-typescript-twoslash-queries@0.0.34: - resolution: {integrity: sha512-XAY2YtWKUp6ht89gxt3L5Dr46LU45d/VlBkj1KXUwNlinpoWiGN4Nm3B6DRF3VoBThAnQgm4c7WD0S+5yTzh+w==} + resolution: + { + integrity: sha512-XAY2YtWKUp6ht89gxt3L5Dr46LU45d/VlBkj1KXUwNlinpoWiGN4Nm3B6DRF3VoBThAnQgm4c7WD0S+5yTzh+w==, + } peerDependencies: - '@volar/language-service': ~2.1.0 + "@volar/language-service": ~2.1.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true volar-service-typescript@0.0.34: - resolution: {integrity: sha512-NbAry0w8ZXFgGsflvMwmPDCzgJGx3C+eYxFEbldaumkpTAJiywECWiUbPIOfmEHgpOllUKSnhwtLlWFK4YnfQg==} + resolution: + { + integrity: sha512-NbAry0w8ZXFgGsflvMwmPDCzgJGx3C+eYxFEbldaumkpTAJiywECWiUbPIOfmEHgpOllUKSnhwtLlWFK4YnfQg==, + } peerDependencies: - '@volar/language-service': ~2.1.0 + "@volar/language-service": ~2.1.0 peerDependenciesMeta: - '@volar/language-service': + "@volar/language-service": optional: true vscode-css-languageservice@6.2.14: - resolution: {integrity: sha512-5UPQ9Y1sUTnuMyaMBpO7LrBkqjhEJb5eAwdUlDp+Uez8lry+Tspnk3+3p2qWS4LlNsr4p3v9WkZxUf1ltgFpgw==} + resolution: + { + integrity: sha512-5UPQ9Y1sUTnuMyaMBpO7LrBkqjhEJb5eAwdUlDp+Uez8lry+Tspnk3+3p2qWS4LlNsr4p3v9WkZxUf1ltgFpgw==, + } vscode-html-languageservice@5.2.0: - resolution: {integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==} + resolution: + { + integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==, + } vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==, + } + engines: { node: ">=14.0.0" } vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + resolution: + { + integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==, + } vscode-languageserver-textdocument@1.0.11: - resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + resolution: + { + integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==, + } vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + resolution: + { + integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==, + } vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + resolution: + { + integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==, + } hasBin: true vscode-nls@5.2.0: - resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + resolution: + { + integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==, + } vscode-uri@2.1.2: - resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + resolution: + { + integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==, + } vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + resolution: + { + integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==, + } web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + resolution: + { + integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, + } which-pm-runs@1.1.0: - resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==, + } + engines: { node: ">=4" } which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} + resolution: + { + integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==, + } + engines: { node: ">=8.15" } which-pm@2.1.1: - resolution: {integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==} - engines: {node: '>=8.15'} + resolution: + { + integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==, + } + engines: { node: ">=8.15" } which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } hasBin: true why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==, + } + engines: { node: ">=8" } hasBin: true widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==, + } + engines: { node: ">=12" } wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: ">=12" } wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==, + } + engines: { node: ">= 14" } hasBin: true yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: ">=12" } yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: ">=12" } yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: ">=10" } yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==, + } + engines: { node: ">=12.20" } zod-to-json-schema@3.23.0: - resolution: {integrity: sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==} + resolution: + { + integrity: sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==, + } peerDependencies: zod: ^3.23.3 zod@3.23.3: - resolution: {integrity: sha512-tPvq1B/2Yu/dh2uAIH2/BhUlUeLIUvAjr6dpL/75I0pCYefHgjhXk1o1Kob3kTU8C7yU1j396jFHlsVWFi9ogg==} + resolution: + { + integrity: sha512-tPvq1B/2Yu/dh2uAIH2/BhUlUeLIUvAjr6dpL/75I0pCYefHgjhXk1o1Kob3kTU8C7yU1j396jFHlsVWFi9ogg==, + } zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + resolution: + { + integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, + } snapshots: + "@alloc/quick-lru@5.2.0": {} - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.3.0': + "@ampproject/remapping@2.3.0": dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + "@jridgewell/gen-mapping": 0.3.5 + "@jridgewell/trace-mapping": 0.3.25 - '@astrojs/check@0.5.10(typescript@5.4.5)': + "@astrojs/check@0.5.10(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.4.5)": dependencies: - '@astrojs/language-server': 2.8.4(typescript@5.4.5) + "@astrojs/language-server": 2.8.4(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.4.5) chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 @@ -2593,34 +4581,39 @@ snapshots: - prettier - prettier-plugin-astro - '@astrojs/compiler@2.7.1': {} + "@astrojs/compiler@2.10.3": {} - '@astrojs/internal-helpers@0.4.0': {} + "@astrojs/compiler@2.7.1": {} - '@astrojs/language-server@2.8.4(typescript@5.4.5)': + "@astrojs/internal-helpers@0.4.0": {} + + "@astrojs/language-server@2.8.4(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.4.5)": dependencies: - '@astrojs/compiler': 2.7.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.1.6(typescript@5.4.5) - '@volar/language-core': 2.1.6 - '@volar/language-server': 2.1.6 - '@volar/language-service': 2.1.6 - '@volar/typescript': 2.1.6 + "@astrojs/compiler": 2.7.1 + "@jridgewell/sourcemap-codec": 1.4.15 + "@volar/kit": 2.1.6(typescript@5.4.5) + "@volar/language-core": 2.1.6 + "@volar/language-server": 2.1.6 + "@volar/language-service": 2.1.6 + "@volar/typescript": 2.1.6 fast-glob: 3.3.2 volar-service-css: 0.0.34(@volar/language-service@2.1.6) volar-service-emmet: 0.0.34(@volar/language-service@2.1.6) volar-service-html: 0.0.34(@volar/language-service@2.1.6) - volar-service-prettier: 0.0.34(@volar/language-service@2.1.6) + volar-service-prettier: 0.0.34(@volar/language-service@2.1.6)(prettier@3.3.3) volar-service-typescript: 0.0.34(@volar/language-service@2.1.6) volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.6) vscode-html-languageservice: 5.2.0 vscode-uri: 3.0.8 + optionalDependencies: + prettier: 3.3.3 + prettier-plugin-astro: 0.14.1 transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@5.1.0': + "@astrojs/markdown-remark@5.1.0": dependencies: - '@astrojs/prism': 3.1.0 + "@astrojs/prism": 3.1.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.1 hast-util-to-text: 4.0.2 @@ -2641,10 +4634,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@2.3.1(astro@4.6.3(@types/node@20.11.30)(typescript@5.4.5))': + "@astrojs/mdx@2.3.1(astro@4.6.3(@types/node@20.11.30)(typescript@5.4.5))": dependencies: - '@astrojs/markdown-remark': 5.1.0 - '@mdx-js/mdx': 3.0.1 + "@astrojs/markdown-remark": 5.1.0 + "@mdx-js/mdx": 3.0.1 acorn: 8.11.3 astro: 4.6.3(@types/node@20.11.30)(typescript@5.4.5) es-module-lexer: 1.5.0 @@ -2662,11 +4655,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/prism@3.1.0': + "@astrojs/prism@3.1.0": dependencies: prismjs: 1.29.0 - '@astrojs/tailwind@5.1.0(astro@4.6.3(@types/node@20.11.30)(typescript@5.4.5))(tailwindcss@3.4.3)': + "@astrojs/tailwind@5.1.0(astro@4.6.3(@types/node@20.11.30)(typescript@5.4.5))(tailwindcss@3.4.3)": dependencies: astro: 4.6.3(@types/node@20.11.30)(typescript@5.4.5) autoprefixer: 10.4.19(postcss@8.4.38) @@ -2676,7 +4669,7 @@ snapshots: transitivePeerDependencies: - ts-node - '@astrojs/telemetry@3.1.0': + "@astrojs/telemetry@3.1.0": dependencies: ci-info: 4.0.0 debug: 4.3.4 @@ -2688,25 +4681,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/code-frame@7.24.2': + "@babel/code-frame@7.24.2": dependencies: - '@babel/highlight': 7.24.2 + "@babel/highlight": 7.24.2 picocolors: 1.0.0 - '@babel/compat-data@7.24.4': {} + "@babel/compat-data@7.24.4": {} - '@babel/core@7.24.4': + "@babel/core@7.24.4": dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helpers': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + "@ampproject/remapping": 2.3.0 + "@babel/code-frame": 7.24.2 + "@babel/generator": 7.24.4 + "@babel/helper-compilation-targets": 7.23.6 + "@babel/helper-module-transforms": 7.23.3(@babel/core@7.24.4) + "@babel/helpers": 7.24.4 + "@babel/parser": 7.24.4 + "@babel/template": 7.24.0 + "@babel/traverse": 7.24.1 + "@babel/types": 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -2715,274 +4708,274 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.24.4': + "@babel/generator@7.24.4": dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + "@babel/types": 7.24.0 + "@jridgewell/gen-mapping": 0.3.5 + "@jridgewell/trace-mapping": 0.3.25 jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.22.5': + "@babel/helper-annotate-as-pure@7.22.5": dependencies: - '@babel/types': 7.24.0 + "@babel/types": 7.24.0 - '@babel/helper-compilation-targets@7.23.6': + "@babel/helper-compilation-targets@7.23.6": dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 + "@babel/compat-data": 7.24.4 + "@babel/helper-validator-option": 7.23.5 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-environment-visitor@7.22.20': {} + "@babel/helper-environment-visitor@7.22.20": {} - '@babel/helper-function-name@7.23.0': + "@babel/helper-function-name@7.23.0": dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + "@babel/template": 7.24.0 + "@babel/types": 7.24.0 - '@babel/helper-hoist-variables@7.22.5': + "@babel/helper-hoist-variables@7.22.5": dependencies: - '@babel/types': 7.24.0 + "@babel/types": 7.24.0 - '@babel/helper-module-imports@7.24.3': + "@babel/helper-module-imports@7.24.3": dependencies: - '@babel/types': 7.24.0 + "@babel/types": 7.24.0 - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)': + "@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)": dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + "@babel/core": 7.24.4 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-module-imports": 7.24.3 + "@babel/helper-simple-access": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/helper-validator-identifier": 7.22.20 - '@babel/helper-plugin-utils@7.24.0': {} + "@babel/helper-plugin-utils@7.24.0": {} - '@babel/helper-simple-access@7.22.5': + "@babel/helper-simple-access@7.22.5": dependencies: - '@babel/types': 7.24.0 + "@babel/types": 7.24.0 - '@babel/helper-split-export-declaration@7.22.6': + "@babel/helper-split-export-declaration@7.22.6": dependencies: - '@babel/types': 7.24.0 + "@babel/types": 7.24.0 - '@babel/helper-string-parser@7.24.1': {} + "@babel/helper-string-parser@7.24.1": {} - '@babel/helper-validator-identifier@7.22.20': {} + "@babel/helper-validator-identifier@7.22.20": {} - '@babel/helper-validator-option@7.23.5': {} + "@babel/helper-validator-option@7.23.5": {} - '@babel/helpers@7.24.4': + "@babel/helpers@7.24.4": dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + "@babel/template": 7.24.0 + "@babel/traverse": 7.24.1 + "@babel/types": 7.24.0 transitivePeerDependencies: - supports-color - '@babel/highlight@7.24.2': + "@babel/highlight@7.24.2": dependencies: - '@babel/helper-validator-identifier': 7.22.20 + "@babel/helper-validator-identifier": 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/parser@7.24.4': + "@babel/parser@7.24.4": dependencies: - '@babel/types': 7.24.0 + "@babel/types": 7.24.0 - '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4)': + "@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4)": dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + "@babel/core": 7.24.4 + "@babel/helper-plugin-utils": 7.24.0 - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4)': + "@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4)": dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/types': 7.24.0 + "@babel/core": 7.24.4 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-module-imports": 7.24.3 + "@babel/helper-plugin-utils": 7.24.0 + "@babel/plugin-syntax-jsx": 7.24.1(@babel/core@7.24.4) + "@babel/types": 7.24.0 - '@babel/template@7.24.0': + "@babel/template@7.24.0": dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + "@babel/code-frame": 7.24.2 + "@babel/parser": 7.24.4 + "@babel/types": 7.24.0 - '@babel/traverse@7.24.1': + "@babel/traverse@7.24.1": dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + "@babel/code-frame": 7.24.2 + "@babel/generator": 7.24.4 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 + "@babel/helper-hoist-variables": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/parser": 7.24.4 + "@babel/types": 7.24.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.0': + "@babel/types@7.24.0": dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 + "@babel/helper-string-parser": 7.24.1 + "@babel/helper-validator-identifier": 7.22.20 to-fast-properties: 2.0.0 - '@emmetio/abbreviation@2.3.3': + "@emmetio/abbreviation@2.3.3": dependencies: - '@emmetio/scanner': 1.0.4 + "@emmetio/scanner": 1.0.4 - '@emmetio/css-abbreviation@2.1.8': + "@emmetio/css-abbreviation@2.1.8": dependencies: - '@emmetio/scanner': 1.0.4 + "@emmetio/scanner": 1.0.4 - '@emmetio/scanner@1.0.4': {} + "@emmetio/scanner@1.0.4": {} - '@esbuild/aix-ppc64@0.19.12': + "@esbuild/aix-ppc64@0.19.12": optional: true - '@esbuild/aix-ppc64@0.20.2': + "@esbuild/aix-ppc64@0.20.2": optional: true - '@esbuild/android-arm64@0.19.12': + "@esbuild/android-arm64@0.19.12": optional: true - '@esbuild/android-arm64@0.20.2': + "@esbuild/android-arm64@0.20.2": optional: true - '@esbuild/android-arm@0.19.12': + "@esbuild/android-arm@0.19.12": optional: true - '@esbuild/android-arm@0.20.2': + "@esbuild/android-arm@0.20.2": optional: true - '@esbuild/android-x64@0.19.12': + "@esbuild/android-x64@0.19.12": optional: true - '@esbuild/android-x64@0.20.2': + "@esbuild/android-x64@0.20.2": optional: true - '@esbuild/darwin-arm64@0.19.12': + "@esbuild/darwin-arm64@0.19.12": optional: true - '@esbuild/darwin-arm64@0.20.2': + "@esbuild/darwin-arm64@0.20.2": optional: true - '@esbuild/darwin-x64@0.19.12': + "@esbuild/darwin-x64@0.19.12": optional: true - '@esbuild/darwin-x64@0.20.2': + "@esbuild/darwin-x64@0.20.2": optional: true - '@esbuild/freebsd-arm64@0.19.12': + "@esbuild/freebsd-arm64@0.19.12": optional: true - '@esbuild/freebsd-arm64@0.20.2': + "@esbuild/freebsd-arm64@0.20.2": optional: true - '@esbuild/freebsd-x64@0.19.12': + "@esbuild/freebsd-x64@0.19.12": optional: true - '@esbuild/freebsd-x64@0.20.2': + "@esbuild/freebsd-x64@0.20.2": optional: true - '@esbuild/linux-arm64@0.19.12': + "@esbuild/linux-arm64@0.19.12": optional: true - '@esbuild/linux-arm64@0.20.2': + "@esbuild/linux-arm64@0.20.2": optional: true - '@esbuild/linux-arm@0.19.12': + "@esbuild/linux-arm@0.19.12": optional: true - '@esbuild/linux-arm@0.20.2': + "@esbuild/linux-arm@0.20.2": optional: true - '@esbuild/linux-ia32@0.19.12': + "@esbuild/linux-ia32@0.19.12": optional: true - '@esbuild/linux-ia32@0.20.2': + "@esbuild/linux-ia32@0.20.2": optional: true - '@esbuild/linux-loong64@0.19.12': + "@esbuild/linux-loong64@0.19.12": optional: true - '@esbuild/linux-loong64@0.20.2': + "@esbuild/linux-loong64@0.20.2": optional: true - '@esbuild/linux-mips64el@0.19.12': + "@esbuild/linux-mips64el@0.19.12": optional: true - '@esbuild/linux-mips64el@0.20.2': + "@esbuild/linux-mips64el@0.20.2": optional: true - '@esbuild/linux-ppc64@0.19.12': + "@esbuild/linux-ppc64@0.19.12": optional: true - '@esbuild/linux-ppc64@0.20.2': + "@esbuild/linux-ppc64@0.20.2": optional: true - '@esbuild/linux-riscv64@0.19.12': + "@esbuild/linux-riscv64@0.19.12": optional: true - '@esbuild/linux-riscv64@0.20.2': + "@esbuild/linux-riscv64@0.20.2": optional: true - '@esbuild/linux-s390x@0.19.12': + "@esbuild/linux-s390x@0.19.12": optional: true - '@esbuild/linux-s390x@0.20.2': + "@esbuild/linux-s390x@0.20.2": optional: true - '@esbuild/linux-x64@0.19.12': + "@esbuild/linux-x64@0.19.12": optional: true - '@esbuild/linux-x64@0.20.2': + "@esbuild/linux-x64@0.20.2": optional: true - '@esbuild/netbsd-x64@0.19.12': + "@esbuild/netbsd-x64@0.19.12": optional: true - '@esbuild/netbsd-x64@0.20.2': + "@esbuild/netbsd-x64@0.20.2": optional: true - '@esbuild/openbsd-x64@0.19.12': + "@esbuild/openbsd-x64@0.19.12": optional: true - '@esbuild/openbsd-x64@0.20.2': + "@esbuild/openbsd-x64@0.20.2": optional: true - '@esbuild/sunos-x64@0.19.12': + "@esbuild/sunos-x64@0.19.12": optional: true - '@esbuild/sunos-x64@0.20.2': + "@esbuild/sunos-x64@0.20.2": optional: true - '@esbuild/win32-arm64@0.19.12': + "@esbuild/win32-arm64@0.19.12": optional: true - '@esbuild/win32-arm64@0.20.2': + "@esbuild/win32-arm64@0.20.2": optional: true - '@esbuild/win32-ia32@0.19.12': + "@esbuild/win32-ia32@0.19.12": optional: true - '@esbuild/win32-ia32@0.20.2': + "@esbuild/win32-ia32@0.20.2": optional: true - '@esbuild/win32-x64@0.19.12': + "@esbuild/win32-x64@0.19.12": optional: true - '@esbuild/win32-x64@0.20.2': + "@esbuild/win32-x64@0.20.2": optional: true - '@isaacs/cliui@8.0.2': + "@isaacs/cliui@8.0.2": dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 @@ -2991,33 +4984,33 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jest/schemas@29.6.3': + "@jest/schemas@29.6.3": dependencies: - '@sinclair/typebox': 0.27.8 + "@sinclair/typebox": 0.27.8 - '@jridgewell/gen-mapping@0.3.5': + "@jridgewell/gen-mapping@0.3.5": dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 + "@jridgewell/set-array": 1.2.1 + "@jridgewell/sourcemap-codec": 1.4.15 + "@jridgewell/trace-mapping": 0.3.25 - '@jridgewell/resolve-uri@3.1.2': {} + "@jridgewell/resolve-uri@3.1.2": {} - '@jridgewell/set-array@1.2.1': {} + "@jridgewell/set-array@1.2.1": {} - '@jridgewell/sourcemap-codec@1.4.15': {} + "@jridgewell/sourcemap-codec@1.4.15": {} - '@jridgewell/trace-mapping@0.3.25': + "@jridgewell/trace-mapping@0.3.25": dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + "@jridgewell/resolve-uri": 3.1.2 + "@jridgewell/sourcemap-codec": 1.4.15 - '@mdx-js/mdx@3.0.1': + "@mdx-js/mdx@3.0.1": dependencies: - '@types/estree': 1.0.5 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdx': 2.0.13 + "@types/estree": 1.0.5 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdx": 2.0.13 collapse-white-space: 2.1.0 devlop: 1.1.0 estree-util-build-jsx: 3.0.1 @@ -3040,186 +5033,186 @@ snapshots: transitivePeerDependencies: - supports-color - '@nodelib/fs.scandir@2.1.5': + "@nodelib/fs.scandir@2.1.5": dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 - '@nodelib/fs.stat@2.0.5': {} + "@nodelib/fs.stat@2.0.5": {} - '@nodelib/fs.walk@1.2.8': + "@nodelib/fs.walk@1.2.8": dependencies: - '@nodelib/fs.scandir': 2.1.5 + "@nodelib/fs.scandir": 2.1.5 fastq: 1.17.1 - '@pkgjs/parseargs@0.11.0': + "@pkgjs/parseargs@0.11.0": optional: true - '@rollup/rollup-android-arm-eabi@4.16.4': + "@rollup/rollup-android-arm-eabi@4.16.4": optional: true - '@rollup/rollup-android-arm64@4.16.4': + "@rollup/rollup-android-arm64@4.16.4": optional: true - '@rollup/rollup-darwin-arm64@4.16.4': + "@rollup/rollup-darwin-arm64@4.16.4": optional: true - '@rollup/rollup-darwin-x64@4.16.4': + "@rollup/rollup-darwin-x64@4.16.4": optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.16.4': + "@rollup/rollup-linux-arm-gnueabihf@4.16.4": optional: true - '@rollup/rollup-linux-arm-musleabihf@4.16.4': + "@rollup/rollup-linux-arm-musleabihf@4.16.4": optional: true - '@rollup/rollup-linux-arm64-gnu@4.16.4': + "@rollup/rollup-linux-arm64-gnu@4.16.4": optional: true - '@rollup/rollup-linux-arm64-musl@4.16.4': + "@rollup/rollup-linux-arm64-musl@4.16.4": optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.16.4': + "@rollup/rollup-linux-powerpc64le-gnu@4.16.4": optional: true - '@rollup/rollup-linux-riscv64-gnu@4.16.4': + "@rollup/rollup-linux-riscv64-gnu@4.16.4": optional: true - '@rollup/rollup-linux-s390x-gnu@4.16.4': + "@rollup/rollup-linux-s390x-gnu@4.16.4": optional: true - '@rollup/rollup-linux-x64-gnu@4.16.4': + "@rollup/rollup-linux-x64-gnu@4.16.4": optional: true - '@rollup/rollup-linux-x64-musl@4.16.4': + "@rollup/rollup-linux-x64-musl@4.16.4": optional: true - '@rollup/rollup-win32-arm64-msvc@4.16.4': + "@rollup/rollup-win32-arm64-msvc@4.16.4": optional: true - '@rollup/rollup-win32-ia32-msvc@4.16.4': + "@rollup/rollup-win32-ia32-msvc@4.16.4": optional: true - '@rollup/rollup-win32-x64-msvc@4.16.4': + "@rollup/rollup-win32-x64-msvc@4.16.4": optional: true - '@shikijs/core@1.3.0': {} + "@shikijs/core@1.3.0": {} - '@sinclair/typebox@0.27.8': {} + "@sinclair/typebox@0.27.8": {} - '@types/acorn@4.0.6': + "@types/acorn@4.0.6": dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 - '@types/babel__core@7.20.5': + "@types/babel__core@7.20.5": dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 + "@babel/parser": 7.24.4 + "@babel/types": 7.24.0 + "@types/babel__generator": 7.6.8 + "@types/babel__template": 7.4.4 + "@types/babel__traverse": 7.20.5 - '@types/babel__generator@7.6.8': + "@types/babel__generator@7.6.8": dependencies: - '@babel/types': 7.24.0 + "@babel/types": 7.24.0 - '@types/babel__template@7.4.4': + "@types/babel__template@7.4.4": dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + "@babel/parser": 7.24.4 + "@babel/types": 7.24.0 - '@types/babel__traverse@7.20.5': + "@types/babel__traverse@7.20.5": dependencies: - '@babel/types': 7.24.0 + "@babel/types": 7.24.0 - '@types/cookie@0.5.4': {} + "@types/cookie@0.5.4": {} - '@types/debug@4.1.12': + "@types/debug@4.1.12": dependencies: - '@types/ms': 0.7.34 + "@types/ms": 0.7.34 - '@types/estree-jsx@1.0.5': + "@types/estree-jsx@1.0.5": dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 - '@types/estree@1.0.5': {} + "@types/estree@1.0.5": {} - '@types/hast@3.0.4': + "@types/hast@3.0.4": dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 - '@types/mdast@4.0.3': + "@types/mdast@4.0.3": dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 - '@types/mdx@2.0.13': {} + "@types/mdx@2.0.13": {} - '@types/ms@0.7.34': {} + "@types/ms@0.7.34": {} - '@types/nlcst@1.0.4': + "@types/nlcst@1.0.4": dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 - '@types/node@20.11.30': + "@types/node@20.11.30": dependencies: undici-types: 5.26.5 optional: true - '@types/unist@2.0.10': {} + "@types/unist@2.0.10": {} - '@types/unist@3.0.2': {} + "@types/unist@3.0.2": {} - '@ungap/structured-clone@1.2.0': {} + "@ungap/structured-clone@1.2.0": {} - '@vitest/expect@1.5.0': + "@vitest/expect@1.5.0": dependencies: - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 + "@vitest/spy": 1.5.0 + "@vitest/utils": 1.5.0 chai: 4.4.1 - '@vitest/runner@1.5.0': + "@vitest/runner@1.5.0": dependencies: - '@vitest/utils': 1.5.0 + "@vitest/utils": 1.5.0 p-limit: 5.0.0 pathe: 1.1.2 - '@vitest/snapshot@1.5.0': + "@vitest/snapshot@1.5.0": dependencies: magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 - '@vitest/spy@1.5.0': + "@vitest/spy@1.5.0": dependencies: tinyspy: 2.2.1 - '@vitest/utils@1.5.0': + "@vitest/utils@1.5.0": dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 - '@volar/kit@2.1.6(typescript@5.4.5)': + "@volar/kit@2.1.6(typescript@5.4.5)": dependencies: - '@volar/language-service': 2.1.6 - '@volar/typescript': 2.1.6 + "@volar/language-service": 2.1.6 + "@volar/typescript": 2.1.6 typesafe-path: 0.2.2 typescript: 5.4.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-core@2.1.6': + "@volar/language-core@2.1.6": dependencies: - '@volar/source-map': 2.1.6 + "@volar/source-map": 2.1.6 - '@volar/language-server@2.1.6': + "@volar/language-server@2.1.6": dependencies: - '@volar/language-core': 2.1.6 - '@volar/language-service': 2.1.6 - '@volar/snapshot-document': 2.1.6 - '@volar/typescript': 2.1.6 - '@vscode/l10n': 0.0.16 + "@volar/language-core": 2.1.6 + "@volar/language-service": 2.1.6 + "@volar/snapshot-document": 2.1.6 + "@volar/typescript": 2.1.6 + "@vscode/l10n": 0.0.16 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -3227,28 +5220,28 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-service@2.1.6': + "@volar/language-service@2.1.6": dependencies: - '@volar/language-core': 2.1.6 + "@volar/language-core": 2.1.6 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/snapshot-document@2.1.6': + "@volar/snapshot-document@2.1.6": dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - '@volar/source-map@2.1.6': + "@volar/source-map@2.1.6": dependencies: muggle-string: 0.4.1 - '@volar/typescript@2.1.6': + "@volar/typescript@2.1.6": dependencies: - '@volar/language-core': 2.1.6 + "@volar/language-core": 2.1.6 path-browserify: 1.0.1 - '@vscode/emmet-helper@2.9.3': + "@vscode/emmet-helper@2.9.3": dependencies: emmet: 2.4.7 jsonc-parser: 2.3.1 @@ -3256,9 +5249,9 @@ snapshots: vscode-languageserver-types: 3.17.5 vscode-uri: 2.1.2 - '@vscode/l10n@0.0.16': {} + "@vscode/l10n@0.0.16": {} - '@vscode/l10n@0.0.18': {} + "@vscode/l10n@0.0.18": {} acorn-jsx@5.3.2(acorn@8.11.3): dependencies: @@ -3315,18 +5308,18 @@ snapshots: astro@4.6.3(@types/node@20.11.30)(typescript@5.4.5): dependencies: - '@astrojs/compiler': 2.7.1 - '@astrojs/internal-helpers': 0.4.0 - '@astrojs/markdown-remark': 5.1.0 - '@astrojs/telemetry': 3.1.0 - '@babel/core': 7.24.4 - '@babel/generator': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - '@types/babel__core': 7.20.5 - '@types/cookie': 0.5.4 + "@astrojs/compiler": 2.7.1 + "@astrojs/internal-helpers": 0.4.0 + "@astrojs/markdown-remark": 5.1.0 + "@astrojs/telemetry": 3.1.0 + "@babel/core": 7.24.4 + "@babel/generator": 7.24.4 + "@babel/parser": 7.24.4 + "@babel/plugin-transform-react-jsx": 7.23.4(@babel/core@7.24.4) + "@babel/traverse": 7.24.1 + "@babel/types": 7.24.0 + "@types/babel__core": 7.20.5 + "@types/cookie": 0.5.4 acorn: 8.11.3 aria-query: 5.3.0 axobject-query: 4.0.0 @@ -3381,7 +5374,7 @@ snapshots: optionalDependencies: sharp: 0.32.6 transitivePeerDependencies: - - '@types/node' + - "@types/node" - less - lightningcss - sass @@ -3658,8 +5651,8 @@ snapshots: emmet@2.4.7: dependencies: - '@emmetio/abbreviation': 2.3.3 - '@emmetio/css-abbreviation': 2.1.8 + "@emmetio/abbreviation": 2.3.3 + "@emmetio/css-abbreviation": 2.1.8 emoji-regex@10.3.0: {} @@ -3678,55 +5671,55 @@ snapshots: esbuild@0.19.12: optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 + "@esbuild/aix-ppc64": 0.19.12 + "@esbuild/android-arm": 0.19.12 + "@esbuild/android-arm64": 0.19.12 + "@esbuild/android-x64": 0.19.12 + "@esbuild/darwin-arm64": 0.19.12 + "@esbuild/darwin-x64": 0.19.12 + "@esbuild/freebsd-arm64": 0.19.12 + "@esbuild/freebsd-x64": 0.19.12 + "@esbuild/linux-arm": 0.19.12 + "@esbuild/linux-arm64": 0.19.12 + "@esbuild/linux-ia32": 0.19.12 + "@esbuild/linux-loong64": 0.19.12 + "@esbuild/linux-mips64el": 0.19.12 + "@esbuild/linux-ppc64": 0.19.12 + "@esbuild/linux-riscv64": 0.19.12 + "@esbuild/linux-s390x": 0.19.12 + "@esbuild/linux-x64": 0.19.12 + "@esbuild/netbsd-x64": 0.19.12 + "@esbuild/openbsd-x64": 0.19.12 + "@esbuild/sunos-x64": 0.19.12 + "@esbuild/win32-arm64": 0.19.12 + "@esbuild/win32-ia32": 0.19.12 + "@esbuild/win32-x64": 0.19.12 esbuild@0.20.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 + "@esbuild/aix-ppc64": 0.20.2 + "@esbuild/android-arm": 0.20.2 + "@esbuild/android-arm64": 0.20.2 + "@esbuild/android-x64": 0.20.2 + "@esbuild/darwin-arm64": 0.20.2 + "@esbuild/darwin-x64": 0.20.2 + "@esbuild/freebsd-arm64": 0.20.2 + "@esbuild/freebsd-x64": 0.20.2 + "@esbuild/linux-arm": 0.20.2 + "@esbuild/linux-arm64": 0.20.2 + "@esbuild/linux-ia32": 0.20.2 + "@esbuild/linux-loong64": 0.20.2 + "@esbuild/linux-mips64el": 0.20.2 + "@esbuild/linux-ppc64": 0.20.2 + "@esbuild/linux-riscv64": 0.20.2 + "@esbuild/linux-s390x": 0.20.2 + "@esbuild/linux-x64": 0.20.2 + "@esbuild/netbsd-x64": 0.20.2 + "@esbuild/openbsd-x64": 0.20.2 + "@esbuild/sunos-x64": 0.20.2 + "@esbuild/win32-arm64": 0.20.2 + "@esbuild/win32-ia32": 0.20.2 + "@esbuild/win32-x64": 0.20.2 escalade@3.1.2: {} @@ -3738,11 +5731,11 @@ snapshots: estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 estree-util-build-jsx@3.0.1: dependencies: - '@types/estree-jsx': 1.0.5 + "@types/estree-jsx": 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 @@ -3751,18 +5744,18 @@ snapshots: estree-util-to-js@2.0.0: dependencies: - '@types/estree-jsx': 1.0.5 + "@types/estree-jsx": 1.0.5 astring: 1.8.6 source-map: 0.7.4 estree-util-visit@2.0.0: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 3.0.2 + "@types/estree-jsx": 1.0.5 + "@types/unist": 3.0.2 estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 eventemitter3@5.0.1: {} @@ -3792,8 +5785,8 @@ snapshots: fast-glob@3.3.2: dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 @@ -3888,7 +5881,7 @@ snapshots: hast-util-from-html@2.0.1: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 devlop: 1.1.0 hast-util-from-parse5: 8.0.1 parse5: 7.1.2 @@ -3897,8 +5890,8 @@ snapshots: hast-util-from-parse5@8.0.1: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + "@types/hast": 3.0.4 + "@types/unist": 3.0.2 devlop: 1.1.0 hastscript: 8.0.0 property-information: 6.5.0 @@ -3908,17 +5901,17 @@ snapshots: hast-util-is-element@3.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-parse-selector@4.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-raw@9.0.2: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - '@ungap/structured-clone': 1.2.0 + "@types/hast": 3.0.4 + "@types/unist": 3.0.2 + "@ungap/structured-clone": 1.2.0 hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 @@ -3932,9 +5925,9 @@ snapshots: hast-util-to-estree@3.1.0: dependencies: - '@types/estree': 1.0.5 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + "@types/estree": 1.0.5 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-attach-comments: 3.0.0 @@ -3953,8 +5946,8 @@ snapshots: hast-util-to-html@9.0.1: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + "@types/hast": 3.0.4 + "@types/unist": 3.0.2 ccount: 2.0.1 comma-separated-tokens: 2.0.3 hast-util-raw: 9.0.2 @@ -3968,9 +5961,9 @@ snapshots: hast-util-to-jsx-runtime@2.3.0: dependencies: - '@types/estree': 1.0.5 - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + "@types/estree": 1.0.5 + "@types/hast": 3.0.4 + "@types/unist": 3.0.2 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 @@ -3988,7 +5981,7 @@ snapshots: hast-util-to-parse5@8.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 property-information: 6.5.0 @@ -3998,18 +5991,18 @@ snapshots: hast-util-to-text@4.0.2: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + "@types/hast": 3.0.4 + "@types/unist": 3.0.2 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 hast-util-whitespace@3.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hastscript@8.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.5.0 @@ -4084,7 +6077,7 @@ snapshots: is-reference@3.0.2: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 is-stream@3.0.0: {} @@ -4098,9 +6091,9 @@ snapshots: jackspeak@2.3.6: dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 jiti@1.21.0: {} @@ -4178,7 +6171,7 @@ snapshots: magic-string@0.30.10: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + "@jridgewell/sourcemap-codec": 1.4.15 markdown-extensions@2.0.0: {} @@ -4186,21 +6179,21 @@ snapshots: mdast-util-definitions@6.0.0: dependencies: - '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 + "@types/mdast": 4.0.3 + "@types/unist": 3.0.2 unist-util-visit: 5.0.0 mdast-util-find-and-replace@3.0.1: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 mdast-util-from-markdown@2.0.0: dependencies: - '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 + "@types/mdast": 4.0.3 + "@types/unist": 3.0.2 decode-named-character-reference: 1.0.2 devlop: 1.1.0 mdast-util-to-string: 4.0.0 @@ -4216,7 +6209,7 @@ snapshots: mdast-util-gfm-autolink-literal@2.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 @@ -4224,7 +6217,7 @@ snapshots: mdast-util-gfm-footnote@2.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 @@ -4234,7 +6227,7 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: @@ -4242,7 +6235,7 @@ snapshots: mdast-util-gfm-table@2.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 devlop: 1.1.0 markdown-table: 3.0.3 mdast-util-from-markdown: 2.0.0 @@ -4252,7 +6245,7 @@ snapshots: mdast-util-gfm-task-list-item@2.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 @@ -4273,9 +6266,9 @@ snapshots: mdast-util-mdx-expression@2.0.0: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 @@ -4284,10 +6277,10 @@ snapshots: mdast-util-mdx-jsx@3.1.2: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.3 + "@types/unist": 3.0.2 ccount: 2.0.1 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 @@ -4312,9 +6305,9 @@ snapshots: mdast-util-mdxjs-esm@2.0.1: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 @@ -4323,14 +6316,14 @@ snapshots: mdast-util-phrasing@4.1.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 unist-util-is: 6.0.0 mdast-util-to-hast@13.1.0: dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 - '@ungap/structured-clone': 1.2.0 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.3 + "@ungap/structured-clone": 1.2.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.0 trim-lines: 3.0.1 @@ -4340,8 +6333,8 @@ snapshots: mdast-util-to-markdown@2.1.0: dependencies: - '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 + "@types/mdast": 4.0.3 + "@types/unist": 3.0.2 longest-streak: 3.1.0 mdast-util-phrasing: 4.1.0 mdast-util-to-string: 4.0.0 @@ -4351,7 +6344,7 @@ snapshots: mdast-util-to-string@4.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 merge-stream@2.0.0: {} @@ -4436,7 +6429,7 @@ snapshots: micromark-extension-mdx-expression@3.0.0: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.1 micromark-factory-space: 2.0.0 @@ -4447,8 +6440,8 @@ snapshots: micromark-extension-mdx-jsx@3.0.0: dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 + "@types/acorn": 4.0.6 + "@types/estree": 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.1 @@ -4464,7 +6457,7 @@ snapshots: micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 micromark-util-character: 2.1.0 @@ -4500,7 +6493,7 @@ snapshots: micromark-factory-mdx-expression@2.0.1: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-events-to-acorn: 2.0.2 @@ -4563,9 +6556,9 @@ snapshots: micromark-util-events-to-acorn@2.0.2: dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 - '@types/unist': 3.0.2 + "@types/acorn": 4.0.6 + "@types/estree": 1.0.5 + "@types/unist": 3.0.2 devlop: 1.1.0 estree-util-visit: 2.0.0 micromark-util-symbol: 2.0.0 @@ -4601,7 +6594,7 @@ snapshots: micromark@4.0.0: dependencies: - '@types/debug': 4.1.12 + "@types/debug": 4.1.12 debug: 4.3.4 decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -4671,7 +6664,7 @@ snapshots: nlcst-to-string@3.1.1: dependencies: - '@types/nlcst': 1.0.4 + "@types/nlcst": 1.0.4 node-abi@3.61.0: dependencies: @@ -4751,7 +6744,7 @@ snapshots: parse-entities@4.0.1: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 @@ -4793,7 +6786,7 @@ snapshots: periscopic@3.1.0: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 @@ -4877,9 +6870,17 @@ snapshots: path-exists: 4.0.0 which-pm: 2.0.0 + prettier-plugin-astro@0.14.1: + dependencies: + "@astrojs/compiler": 2.10.3 + prettier: 3.3.3 + sass-formatter: 0.7.9 + + prettier@3.3.3: {} + pretty-format@29.7.0: dependencies: - '@jest/schemas': 29.6.3 + "@jest/schemas": 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 @@ -4929,32 +6930,32 @@ snapshots: rehype-parse@9.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-from-html: 2.0.1 unified: 11.0.4 rehype-raw@7.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-raw: 9.0.2 vfile: 6.0.1 rehype-stringify@10.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-to-html: 9.0.1 unified: 11.0.4 rehype@13.0.1: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 rehype-parse: 9.0.0 rehype-stringify: 10.0.0 unified: 11.0.4 remark-gfm@4.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 mdast-util-gfm: 3.0.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 @@ -4972,7 +6973,7 @@ snapshots: remark-parse@11.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 mdast-util-from-markdown: 2.0.0 micromark-util-types: 2.0.0 unified: 11.0.4 @@ -4981,8 +6982,8 @@ snapshots: remark-rehype@11.1.0: dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.3 mdast-util-to-hast: 13.1.0 unified: 11.0.4 vfile: 6.0.1 @@ -4995,7 +6996,7 @@ snapshots: remark-stringify@11.0.0: dependencies: - '@types/mdast': 4.0.3 + "@types/mdast": 4.0.3 mdast-util-to-markdown: 2.1.0 unified: 11.0.4 @@ -5016,27 +7017,27 @@ snapshots: retext-latin@3.1.0: dependencies: - '@types/nlcst': 1.0.4 + "@types/nlcst": 1.0.4 parse-latin: 5.0.1 unherit: 3.0.1 unified: 10.1.2 retext-smartypants@5.2.0: dependencies: - '@types/nlcst': 1.0.4 + "@types/nlcst": 1.0.4 nlcst-to-string: 3.1.1 unified: 10.1.2 unist-util-visit: 4.1.2 retext-stringify@3.1.0: dependencies: - '@types/nlcst': 1.0.4 + "@types/nlcst": 1.0.4 nlcst-to-string: 3.1.1 unified: 10.1.2 retext@8.1.0: dependencies: - '@types/nlcst': 1.0.4 + "@types/nlcst": 1.0.4 retext-latin: 3.1.0 retext-stringify: 3.1.0 unified: 10.1.2 @@ -5045,32 +7046,38 @@ snapshots: rollup@4.16.4: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.16.4 - '@rollup/rollup-android-arm64': 4.16.4 - '@rollup/rollup-darwin-arm64': 4.16.4 - '@rollup/rollup-darwin-x64': 4.16.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.16.4 - '@rollup/rollup-linux-arm-musleabihf': 4.16.4 - '@rollup/rollup-linux-arm64-gnu': 4.16.4 - '@rollup/rollup-linux-arm64-musl': 4.16.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.16.4 - '@rollup/rollup-linux-riscv64-gnu': 4.16.4 - '@rollup/rollup-linux-s390x-gnu': 4.16.4 - '@rollup/rollup-linux-x64-gnu': 4.16.4 - '@rollup/rollup-linux-x64-musl': 4.16.4 - '@rollup/rollup-win32-arm64-msvc': 4.16.4 - '@rollup/rollup-win32-ia32-msvc': 4.16.4 - '@rollup/rollup-win32-x64-msvc': 4.16.4 + "@rollup/rollup-android-arm-eabi": 4.16.4 + "@rollup/rollup-android-arm64": 4.16.4 + "@rollup/rollup-darwin-arm64": 4.16.4 + "@rollup/rollup-darwin-x64": 4.16.4 + "@rollup/rollup-linux-arm-gnueabihf": 4.16.4 + "@rollup/rollup-linux-arm-musleabihf": 4.16.4 + "@rollup/rollup-linux-arm64-gnu": 4.16.4 + "@rollup/rollup-linux-arm64-musl": 4.16.4 + "@rollup/rollup-linux-powerpc64le-gnu": 4.16.4 + "@rollup/rollup-linux-riscv64-gnu": 4.16.4 + "@rollup/rollup-linux-s390x-gnu": 4.16.4 + "@rollup/rollup-linux-x64-gnu": 4.16.4 + "@rollup/rollup-linux-x64-musl": 4.16.4 + "@rollup/rollup-win32-arm64-msvc": 4.16.4 + "@rollup/rollup-win32-ia32-msvc": 4.16.4 + "@rollup/rollup-win32-x64-msvc": 4.16.4 fsevents: 2.3.3 run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 + s.color@0.0.15: {} + safe-buffer@5.2.1: {} + sass-formatter@0.7.9: + dependencies: + suf-log: 2.5.3 + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -5102,7 +7109,7 @@ snapshots: shiki@1.3.0: dependencies: - '@shikijs/core': 1.3.0 + "@shikijs/core": 1.3.0 siginfo@2.0.0: {} @@ -5215,7 +7222,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + "@jridgewell/gen-mapping": 0.3.5 commander: 4.1.1 glob: 10.3.12 lines-and-columns: 1.2.4 @@ -5223,6 +7230,10 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 + suf-log@2.5.3: + dependencies: + s.color: 0.0.15 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -5231,7 +7242,7 @@ snapshots: tailwindcss@3.4.3: dependencies: - '@alloc/quick-lru': 5.2.0 + "@alloc/quick-lru": 5.2.0 arg: 5.0.2 chokidar: 3.6.0 didyoumean: 1.2.2 @@ -5345,7 +7356,7 @@ snapshots: unified@10.1.2: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 bail: 2.0.2 extend: 3.0.2 is-buffer: 2.0.5 @@ -5355,7 +7366,7 @@ snapshots: unified@11.0.4: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 bail: 2.0.2 devlop: 1.1.0 extend: 3.0.2 @@ -5365,66 +7376,66 @@ snapshots: unist-util-find-after@5.0.0: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-is: 6.0.0 unist-util-is@5.2.1: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 unist-util-is@6.0.0: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-modify-children@3.1.1: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 array-iterate: 2.0.1 unist-util-position-from-estree@2.0.0: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-position@5.0.0: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-remove-position@5.0.0: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-visit: 5.0.0 unist-util-stringify-position@3.0.3: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-visit-children@2.0.2: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 unist-util-visit-parents@5.1.3: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 unist-util-is: 5.2.1 unist-util-visit-parents@6.0.1: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-is: 6.0.0 unist-util-visit@4.1.2: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 unist-util-visit@5.0.0: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 @@ -5438,29 +7449,29 @@ snapshots: vfile-location@5.0.2: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 vfile: 6.0.1 vfile-message@3.1.4: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 unist-util-stringify-position: 3.0.3 vfile-message@4.0.2: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-stringify-position: 4.0.0 vfile@5.3.7: dependencies: - '@types/unist': 2.0.10 + "@types/unist": 2.0.10 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 vfile@6.0.1: dependencies: - '@types/unist': 3.0.2 + "@types/unist": 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 @@ -5472,7 +7483,7 @@ snapshots: picocolors: 1.0.0 vite: 5.2.10(@types/node@20.11.30) transitivePeerDependencies: - - '@types/node' + - "@types/node" - less - lightningcss - sass @@ -5487,7 +7498,7 @@ snapshots: postcss: 8.4.38 rollup: 4.16.4 optionalDependencies: - '@types/node': 20.11.30 + "@types/node": 20.11.30 fsevents: 2.3.3 vitefu@0.2.5(vite@5.2.10(@types/node@20.11.30)): @@ -5496,11 +7507,11 @@ snapshots: vitest@1.5.0(@types/node@20.11.30): dependencies: - '@vitest/expect': 1.5.0 - '@vitest/runner': 1.5.0 - '@vitest/snapshot': 1.5.0 - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 + "@vitest/expect": 1.5.0 + "@vitest/runner": 1.5.0 + "@vitest/snapshot": 1.5.0 + "@vitest/spy": 1.5.0 + "@vitest/utils": 1.5.0 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4 @@ -5517,7 +7528,7 @@ snapshots: vite-node: 1.5.0(@types/node@20.11.30) why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 20.11.30 + "@types/node": 20.11.30 transitivePeerDependencies: - less - lightningcss @@ -5533,14 +7544,14 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.1.6 + "@volar/language-service": 2.1.6 volar-service-emmet@0.0.34(@volar/language-service@2.1.6): dependencies: - '@vscode/emmet-helper': 2.9.3 + "@vscode/emmet-helper": 2.9.3 vscode-html-languageservice: 5.2.0 optionalDependencies: - '@volar/language-service': 2.1.6 + "@volar/language-service": 2.1.6 volar-service-html@0.0.34(@volar/language-service@2.1.6): dependencies: @@ -5548,17 +7559,18 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.1.6 + "@volar/language-service": 2.1.6 - volar-service-prettier@0.0.34(@volar/language-service@2.1.6): + volar-service-prettier@0.0.34(@volar/language-service@2.1.6)(prettier@3.3.3): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.1.6 + "@volar/language-service": 2.1.6 + prettier: 3.3.3 volar-service-typescript-twoslash-queries@0.0.34(@volar/language-service@2.1.6): optionalDependencies: - '@volar/language-service': 2.1.6 + "@volar/language-service": 2.1.6 volar-service-typescript@0.0.34(@volar/language-service@2.1.6): dependencies: @@ -5568,18 +7580,18 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-nls: 5.2.0 optionalDependencies: - '@volar/language-service': 2.1.6 + "@volar/language-service": 2.1.6 vscode-css-languageservice@6.2.14: dependencies: - '@vscode/l10n': 0.0.18 + "@vscode/l10n": 0.0.18 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 vscode-html-languageservice@5.2.0: dependencies: - '@vscode/l10n': 0.0.18 + "@vscode/l10n": 0.0.18 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 diff --git a/public/css/global.css b/public/css/global.css index 30c5620..4f051a3 100644 --- a/public/css/global.css +++ b/public/css/global.css @@ -1,110 +1,110 @@ /* Iosevka web */ @font-face { - font-family: "Iosevka Fixed Web"; - font-display: swap; - font-weight: 400; - font-stretch: normal; - font-style: normal; - src: url("/Iosevka/Regular.woff2") format("woff2"); + font-family: "Iosevka Fixed Web"; + font-display: swap; + font-weight: 400; + font-stretch: normal; + font-style: normal; + src: url("/Iosevka/Regular.woff2") format("woff2"); } @font-face { - font-family: 'Iosevka Fixed Web'; - font-display: swap; - font-weight: 700; - font-stretch: normal; - font-style: normal; - src: url('/Iosevka/Bold.woff2') format('woff2'); + font-family: "Iosevka Fixed Web"; + font-display: swap; + font-weight: 700; + font-stretch: normal; + font-style: normal; + src: url("/Iosevka/Bold.woff2") format("woff2"); } :root { - --c-thp: #f472b6; + --c-thp: #f472b6; - --font-display: 'Atkinson Hyperlegible', sans-serif; - --font-body: 'Atkinson Hyperlegible', sans-serif; - --font-code: "Iosevka Fixed Web", "Iosevka Nerd Font", Iosevka, monospace; + --font-display: "Atkinson Hyperlegible", sans-serif; + --font-body: "Atkinson Hyperlegible", sans-serif; + --font-code: "Iosevka Fixed Web", "Iosevka Nerd Font", Iosevka, monospace; } :root { - --c-bg: #121212; - --c-text: rgb(200, 200, 200); - --c-text-2: white; - --c-primary: #884b6a; - --c-purple: #7F669D; - --c-purple-light: #BA94D1; - --c-box-shadow: #FBFACD; - --c-pink: #AE508D; - --c-link: #38bdf8; + --c-bg: #121212; + --c-text: rgb(200, 200, 200); + --c-text-2: white; + --c-primary: #884b6a; + --c-purple: #7f669d; + --c-purple-light: #ba94d1; + --c-box-shadow: #fbfacd; + --c-pink: #ae508d; + --c-link: #38bdf8; - --c-nav-bg: rgb(18, 18, 18, 0.5); - --c-secondary: rgba(136, 75, 106, 0.5); + --c-nav-bg: rgb(18, 18, 18, 0.5); + --c-secondary: rgba(136, 75, 106, 0.5); } @media (prefers-color-scheme: light) { - :root { - --c-bg: rgb(255, 253, 255); - --c-text: #121212; - --c-text-2: black; - --c-purple: #374259; - --c-purple-light: #BA94D1; - --c-box-shadow: #374259; - --c-primary: rgb(255, 180, 180); - --c-pink: #374259; - --c-link: #0284c7; - --c-border-1: #909090; + :root { + --c-bg: rgb(255, 253, 255); + --c-text: #121212; + --c-text-2: black; + --c-purple: #374259; + --c-purple-light: #ba94d1; + --c-box-shadow: #374259; + --c-primary: rgb(255, 180, 180); + --c-pink: #374259; + --c-link: #0284c7; + --c-border-1: #909090; - --c-nav-bg: rgb(255, 247, 255, 0.5); - --c-secondary: rgba(255, 255, 240, 0.5); - } + --c-nav-bg: rgb(255, 247, 255, 0.5); + --c-secondary: rgba(255, 255, 240, 0.5); + } } html { - font-size: 16px; + font-size: 16px; } @media screen and (min-width: 1600px) { - html { - font-size: 17px; - } + html { + font-size: 17px; + } } body { - font-family: var(--font-body); + font-family: var(--font-body); } @media only screen and (max-width: 600px) { - #editor { - font-size: 0.9em; - } + #editor { + font-size: 0.9em; + } } pre, code { - font-family: var(--font-code); + font-family: var(--font-code); } .button-effect-receiver { - transition: transform 150ms; + transition: transform 150ms; } .button-effect:hover .button-effect-receiver { - transform: translateX(-3px) translateY(-3px); + transform: translateX(-3px) translateY(-3px); } .markdown p { - margin: 0.75rem 0; + margin: 0.75rem 0; } /* Used by headers generated from markdown */ .heading-linked :hover::after { - color: var(--c-primary); - content: "#"; - display: inline-block; - font-size: 1em; - line-height: 1; - margin-left: 0.5rem; + color: var(--c-primary); + content: "#"; + display: inline-block; + font-size: 1em; + line-height: 1; + margin-left: 0.5rem; } .heading-linked :hover { - text-decoration: underline var(--c-primary); -} \ No newline at end of file + text-decoration: underline var(--c-primary); +} diff --git a/public/css/pages.css b/public/css/pages.css index 655f022..ced9942 100644 --- a/public/css/pages.css +++ b/public/css/pages.css @@ -1,105 +1,103 @@ - .markdown > h1 { - font-size: 2.25rem; - line-height: 2.5rem; - margin-bottom: 1rem; - margin-top: 2rem; - font-family: var(--font-display); - opacity: 0.9; - font-weight: 700; - color: var(--c-text-2); - scroll-margin-top: 50px; + font-size: 2.25rem; + line-height: 2.5rem; + margin-bottom: 1rem; + margin-top: 2rem; + font-family: var(--font-display); + opacity: 0.9; + font-weight: 700; + color: var(--c-text-2); + scroll-margin-top: 50px; } .markdown > h2 { - /* use these tailwind classes: text-2xl mt-10 mb-4 font-display opacity-90 font-bold text-c-text-2 */ - font-size: 1.5rem; - line-height: 2rem; - margin-bottom: 1rem; - margin-top: 2.5rem; - font-family: var(--font-display); - opacity: 0.9; - font-weight: 600; - color: var(--c-text-2); - scroll-margin-top: 5rem; + /* use these tailwind classes: text-2xl mt-10 mb-4 font-display opacity-90 font-bold text-c-text-2 */ + font-size: 1.5rem; + line-height: 2rem; + margin-bottom: 1rem; + margin-top: 2.5rem; + font-family: var(--font-display); + opacity: 0.9; + font-weight: 600; + color: var(--c-text-2); + scroll-margin-top: 5rem; } .markdown > h2::before { - content: "#"; - display: block; - height: 0; - position: relative; - right: 1.5rem; - opacity: 0.2; + content: "#"; + display: block; + height: 0; + position: relative; + right: 1.5rem; + opacity: 0.2; } .markdown > h2:target::before { - color: var(--c-thp); - opacity: 1; + color: var(--c-thp); + opacity: 1; } .markdown > h3 { - font-size: 1.35rem; - line-height: 1.75rem; - margin-bottom: 1rem; - margin-top: 1.75rem; - font-family: var(--font-display); - opacity: 0.9; - font-weight: 400; - color: var(--c-text-2); - scroll-margin-top: 5rem; + font-size: 1.35rem; + line-height: 1.75rem; + margin-bottom: 1rem; + margin-top: 1.75rem; + font-family: var(--font-display); + opacity: 0.9; + font-weight: 400; + color: var(--c-text-2); + scroll-margin-top: 5rem; } .markdown > h3::before { - content: "##"; - display: block; - height: 0; - position: relative; - right: 2.25rem; - opacity: 0.2; + content: "##"; + display: block; + height: 0; + position: relative; + right: 2.25rem; + opacity: 0.2; } .markdown > h3:target::before { - color: var(--c-thp); - opacity: 1; + color: var(--c-thp); + opacity: 1; } .markdown ul { - list-style-type: disc; - list-style-position: inside; + list-style-type: disc; + list-style-position: inside; } .markdown ul li { - padding: 0.5rem 0; + padding: 0.5rem 0; } .markdown p > code { - border: solid 1px var(--c-border-1); + border: solid 1px var(--c-border-1); } .markdown > pre { - margin: 0.5em 0; - padding: 0.75em 0.75em; - color: var(--code-theme-color); - background: var(--code-theme-bg-color); + margin: 0.5em 0; + padding: 0.75em 0.75em; + color: var(--code-theme-color); + background: var(--code-theme-bg-color); } .markdown > p > a { - color: var(--c-link); - text-decoration: underline; + color: var(--c-link); + text-decoration: underline; } .markdown blockquote { - color: red; + color: red; } .two-column a { - color: #2563eb; - text-decoration: underline; - display: inline-block; + color: #2563eb; + text-decoration: underline; + display: inline-block; } .two-column h3 { - margin: 0.75rem 0; + margin: 0.75rem 0; } - diff --git a/public/css/prism.min.css b/public/css/prism.min.css index 2e68022..18bd8c7 100644 --- a/public/css/prism.min.css +++ b/public/css/prism.min.css @@ -1,3 +1,118 @@ /* PrismJS 1.29.0 https://prismjs.com/download.html#themes=prism */ -code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help} \ No newline at end of file +code[class*="language-"], +pre[class*="language-"] { + color: #000; + background: 0 0; + text-shadow: 0 1px #fff; + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +code[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +pre[class*="language-"]::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +code[class*="language-"] ::selection, +code[class*="language-"]::selection, +pre[class*="language-"] ::selection, +pre[class*="language-"]::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.cdata, +.token.comment, +.token.doctype, +.token.prolog { + color: #708090; +} +.token.punctuation { + color: #999; +} +.token.namespace { + opacity: 0.7; +} +.token.boolean, +.token.constant, +.token.deleted, +.token.number, +.token.property, +.token.symbol, +.token.tag { + color: #905; +} +.token.attr-name, +.token.builtin, +.token.char, +.token.inserted, +.token.selector, +.token.string { + color: #690; +} +.language-css .token.string, +.style .token.string, +.token.entity, +.token.operator, +.token.url { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.class-name, +.token.function { + color: #dd4a68; +} +.token.important, +.token.regex, +.token.variable { + color: #e90; +} +.token.bold, +.token.important { + font-weight: 700; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} diff --git a/public/css/xcode-colors.css b/public/css/xcode-colors.css index 696649b..f2a67a1 100644 --- a/public/css/xcode-colors.css +++ b/public/css/xcode-colors.css @@ -1,270 +1,270 @@ /* colors from: https://raw.githubusercontent.com/WhiteVermouth/XcodeTheme/master/assets/color-palette.png */ :root { - --code-theme-color: #dedede; - --code-theme-bg-color: #1f1f24; - --code-theme-bg-color_selection: #515b70; - --code-theme-color_selection: inherit; + --code-theme-color: #dedede; + --code-theme-bg-color: #1f1f24; + --code-theme-bg-color_selection: #515b70; + --code-theme-color_selection: inherit; - --code-theme-comment: #6c7986; + --code-theme-comment: #6c7986; - /* number */ - --code-theme-c1: #d0bf69; - /* keyword */ - --code-theme-c2: #fc5fa3; - /* ? */ - --code-theme-c3: #39adb5; - /* string */ - --code-theme-c4: rgb(124, 201, 117); - /* #fc6a5d; */ - /* declaration */ - --code-theme-c5: #5dd8ff; - /* proyect function */ - --code-theme-c6: #67b7a4; - /*#e53935;*/ - /* function */ - --code-theme-c7: rgb(179, 146, 240); + /* number */ + --code-theme-c1: #d0bf69; + /* keyword */ + --code-theme-c2: #fc5fa3; + /* ? */ + --code-theme-c3: #39adb5; + /* string */ + --code-theme-c4: rgb(124, 201, 117); + /* #fc6a5d; */ + /* declaration */ + --code-theme-c5: #5dd8ff; + /* proyect function */ + --code-theme-c6: #67b7a4; + /*#e53935;*/ + /* function */ + --code-theme-c7: rgb(179, 146, 240); - --code-theme-punctuation: #dedede; + --code-theme-punctuation: #dedede; } @media (prefers-color-scheme: light) { - :root { - --code-theme-color: #3a3a3a; - --code-theme-bg-color: #ffffff; - --code-theme-bg-color_selection: #a4cdff; - --code-theme-color_selection: inherit; - --code-theme-border-color: #c2c2c2; + :root { + --code-theme-color: #3a3a3a; + --code-theme-bg-color: #ffffff; + --code-theme-bg-color_selection: #a4cdff; + --code-theme-color_selection: inherit; + --code-theme-border-color: #c2c2c2; - --code-theme-comment: #5d6c79; + --code-theme-comment: #5d6c79; - /* number */ - --code-theme-c1: #1c00cf; - /* keyword */ - --code-theme-c2: #9b2393; - --code-theme-c3: #39adb5; - /* string */ - --code-theme-c4: #c41a16; - /* declaration */ - --code-theme-c5: #0f68a0; - --code-theme-c6: #326d74; - /*#e53935;*/ - /* function */ - --code-theme-c7: rgb(95, 74, 134); + /* number */ + --code-theme-c1: #1c00cf; + /* keyword */ + --code-theme-c2: #9b2393; + --code-theme-c3: #39adb5; + /* string */ + --code-theme-c4: #c41a16; + /* declaration */ + --code-theme-c5: #0f68a0; + --code-theme-c6: #326d74; + /*#e53935;*/ + /* function */ + --code-theme-c7: rgb(95, 74, 134); - --code-theme-punctuation: #202020; - } + --code-theme-punctuation: #202020; + } } code[class*="language-"], pre[class*="language-"] { - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - color: var(--code-theme-color); - background: var(--code-theme-bg-color); - line-height: 1.5em; - border-radius: 0.3em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + color: var(--code-theme-color); + background: var(--code-theme-bg-color); + line-height: 1.5em; + border-radius: 0.3em; - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; } code[class*="language-"]::-moz-selection, pre[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection, pre[class*="language-"] ::-moz-selection { - background: var(--code-theme-bg-color_selection); - color: var(--code-theme-color_selection); + background: var(--code-theme-bg-color_selection); + color: var(--code-theme-color_selection); } code[class*="language-"]::selection, pre[class*="language-"]::selection, code[class*="language-"] ::selection, pre[class*="language-"] ::selection { - background: var(--code-theme-bg-color_selection); - color: var(--code-theme-color_selection); + background: var(--code-theme-bg-color_selection); + color: var(--code-theme-color_selection); } -:not(pre)>code[class*="language-"] { - white-space: normal; - border-radius: 0.2em; - padding: 0.1em; +:not(pre) > code[class*="language-"] { + white-space: normal; + border-radius: 0.2em; + padding: 0.1em; } -:not(pre)>code { - background-color: var(--code-theme-bg-color); - padding: 0 0.25rem; - border-radius: 5px; +:not(pre) > code { + background-color: var(--code-theme-bg-color); + padding: 0 0.25rem; + border-radius: 5px; } pre[class*="language-"] { - overflow: auto; - position: relative; - margin: 0.5em 0; - padding: 0.75em 0.75em; - border: 1px solid var(--code-theme-border-color); + overflow: auto; + position: relative; + margin: 0.5em 0; + padding: 0.75em 0.75em; + border: 1px solid var(--code-theme-border-color); } -.language-css>code, -.language-sass>code, -.language-scss>code { - color: var(--code-theme-c1); +.language-css > code, +.language-sass > code, +.language-scss > code { + color: var(--code-theme-c1); } [class*="language-"] .namespace { - opacity: 0.7; + opacity: 0.7; } .token.atrule { - color: var(--code-theme-c2); + color: var(--code-theme-c2); } .token.attr-name { - color: var(--code-theme-c3); + color: var(--code-theme-c3); } .token.attr-value { - color: var(--code-theme-c4); + color: var(--code-theme-c4); } .token.attribute { - color: var(--code-theme-c4); + color: var(--code-theme-c4); } .token.boolean { - color: var(--code-theme-c2); + color: var(--code-theme-c2); } .token.builtin { - color: var(--code-theme-c3); + color: var(--code-theme-c3); } .token.cdata { - color: var(--code-theme-c3); + color: var(--code-theme-c3); } .token.char { - color: var(--code-theme-c3); + color: var(--code-theme-c3); } .token.class { - color: var(--code-theme-c3); + color: var(--code-theme-c3); } .token.class-name { - color: var(--code-theme-c5); + color: var(--code-theme-c5); } .token.comment { - color: var(--code-theme-comment); + color: var(--code-theme-comment); } .token.constant { - color: var(--code-theme-c2); + color: var(--code-theme-c2); } .token.deleted { - color: var(--code-theme-c6); + color: var(--code-theme-c6); } .token.doctype { - color: var(--code-theme-comment); + color: var(--code-theme-comment); } .token.entity { - color: var(--code-theme-c6); + color: var(--code-theme-c6); } .token.function { - color: var(--code-theme-c7); + color: var(--code-theme-c7); } .token.hexcode { - color: var(--code-theme-c1); + color: var(--code-theme-c1); } .token.id { - color: var(--code-theme-c2); - font-weight: bold; + color: var(--code-theme-c2); + font-weight: bold; } .token.important { - color: var(--code-theme-c2); - font-weight: bold; + color: var(--code-theme-c2); + font-weight: bold; } .token.inserted { - color: var(--code-theme-c3); + color: var(--code-theme-c3); } .token.keyword { - color: var(--code-theme-c2); + color: var(--code-theme-c2); } .token.number { - color: var(--code-theme-c1); + color: var(--code-theme-c1); } .token.operator { - color: var(--code-theme-punctuation); + color: var(--code-theme-punctuation); } .token.prolog { - color: var(--code-theme-comment); + color: var(--code-theme-comment); } .token.property { - color: var(--code-theme-c3); + color: var(--code-theme-c3); } .token.pseudo-class { - color: var(--code-theme-c4); + color: var(--code-theme-c4); } .token.pseudo-element { - color: var(--code-theme-c4); + color: var(--code-theme-c4); } .token.punctuation { - color: var(--code-theme-punctuation); + color: var(--code-theme-punctuation); } .token.regex { - color: var(--code-theme-c5); + color: var(--code-theme-c5); } .token.selector { - color: var(--code-theme-c6); + color: var(--code-theme-c6); } .token.string { - color: var(--code-theme-c4); + color: var(--code-theme-c4); } .token.symbol { - color: var(--code-theme-c2); + color: var(--code-theme-c2); } .token.tag { - color: var(--code-theme-c6); + color: var(--code-theme-c6); } .token.unit { - color: var(--code-theme-c1); + color: var(--code-theme-c1); } .token.url { - color: var(--code-theme-c6); + color: var(--code-theme-c6); } .token.variable { - color: var(--code-theme-c6); -} \ No newline at end of file + color: var(--code-theme-c6); +} diff --git a/public/js/alpine-3.14.0.min.js b/public/js/alpine-3.14.0.min.js index eb0db48..b70a321 100644 --- a/public/js/alpine-3.14.0.min.js +++ b/public/js/alpine-3.14.0.min.js @@ -1 +1,2854 @@ -(()=>{var rt=!1,nt=!1,U=[],it=-1;function qt(e){Cn(e)}function Cn(e){U.includes(e)||U.push(e),Tn()}function Ee(e){let t=U.indexOf(e);t!==-1&&t>it&&U.splice(t,1)}function Tn(){!nt&&!rt&&(rt=!0,queueMicrotask(Rn))}function Rn(){rt=!1,nt=!0;for(let e=0;ee.effect(t,{scheduler:r=>{ot?qt(r):r()}}),st=e.raw}function at(e){D=e}function Gt(e){let t=()=>{};return[n=>{let i=D(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),L(i))},i},()=>{t()}]}function ve(e,t){let r=!0,n,i=D(()=>{let o=e();JSON.stringify(o),r?n=o:queueMicrotask(()=>{t(o,n),n=o}),r=!1});return()=>L(i)}var Jt=[],Yt=[],Xt=[];function Zt(e){Xt.push(e)}function ee(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Yt.push(t))}function Ae(e){Jt.push(e)}function Oe(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function ct(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function Qt(e){if(e._x_cleanups)for(;e._x_cleanups.length;)e._x_cleanups.pop()()}var lt=new MutationObserver(pt),ut=!1;function le(){lt.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ut=!0}function ft(){Mn(),lt.disconnect(),ut=!1}var ce=[];function Mn(){let e=lt.takeRecords();ce.push(()=>e.length>0&&pt(e));let t=ce.length;queueMicrotask(()=>{if(ce.length===t)for(;ce.length>0;)ce.shift()()})}function _(e){if(!ut)return e();ft();let t=e();return le(),t}var dt=!1,Se=[];function er(){dt=!0}function tr(){dt=!1,pt(Se),Se=[]}function pt(e){if(dt){Se=Se.concat(e);return}let t=new Set,r=new Set,n=new Map,i=new Map;for(let o=0;os.nodeType===1&&t.add(s)),e[o].removedNodes.forEach(s=>s.nodeType===1&&r.add(s))),e[o].type==="attributes")){let s=e[o].target,a=e[o].attributeName,c=e[o].oldValue,l=()=>{n.has(s)||n.set(s,[]),n.get(s).push({name:a,value:s.getAttribute(a)})},u=()=>{i.has(s)||i.set(s,[]),i.get(s).push(a)};s.hasAttribute(a)&&c===null?l():s.hasAttribute(a)?(u(),l()):u()}i.forEach((o,s)=>{ct(s,o)}),n.forEach((o,s)=>{Jt.forEach(a=>a(s,o))});for(let o of r)t.has(o)||Yt.forEach(s=>s(o));t.forEach(o=>{o._x_ignoreSelf=!0,o._x_ignore=!0});for(let o of t)r.has(o)||o.isConnected&&(delete o._x_ignoreSelf,delete o._x_ignore,Xt.forEach(s=>s(o)),o._x_ignore=!0,o._x_ignoreSelf=!0);t.forEach(o=>{delete o._x_ignoreSelf,delete o._x_ignore}),t=null,r=null,n=null,i=null}function Ce(e){return F(j(e))}function P(e,t,r){return e._x_dataStack=[t,...j(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function j(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?j(e.host):e.parentNode?j(e.parentNode):[]}function F(e){return new Proxy({objects:e},Nn)}var Nn={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t=="toJSON"?Dn:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){let i=e.find(s=>Object.prototype.hasOwnProperty.call(s,t))||e[e.length-1],o=Object.getOwnPropertyDescriptor(i,t);return o?.set&&o?.get?Reflect.set(i,t,r,n):Reflect.set(i,t,r)}};function Dn(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function Te(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:s,enumerable:a}])=>{if(a===!1||s===void 0||typeof s=="object"&&s!==null&&s.__v_skip)return;let c=i===""?o:`${i}.${o}`;typeof s=="object"&&s!==null&&s._x_interceptor?n[o]=s.initialize(e,c,o):t(s)&&s!==n&&!(s instanceof Element)&&r(s,c)})};return r(e)}function Re(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>Pn(n,i),s=>mt(n,i,s),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,s,a)=>{let c=n.initialize(o,s,a);return r.initialValue=c,i(o,s,a)}}else r.initialValue=n;return r}}function Pn(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function mt(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),mt(e[t[0]],t.slice(1),r)}}var rr={};function y(e,t){rr[e]=t}function ue(e,t){return Object.entries(rr).forEach(([r,n])=>{let i=null;function o(){if(i)return i;{let[s,a]=_t(t);return i={interceptor:Re,...s},ee(t,a),i}}Object.defineProperty(e,`$${r}`,{get(){return n(t,o())},enumerable:!1})}),e}function nr(e,t,r,...n){try{return r(...n)}catch(i){te(i,e,t)}}function te(e,t,r=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message}${r?'Expression: "'+r+`"`:""}`,t),setTimeout(()=>{throw e},0)}var Me=!0;function De(e){let t=Me;Me=!1;let r=e();return Me=t,r}function M(e,t,r={}){let n;return x(e,t)(i=>n=i,r),n}function x(...e){return ir(...e)}var ir=gt;function or(e){ir=e}function gt(e,t){let r={};ue(r,e);let n=[r,...j(e)],i=typeof t=="function"?In(n,t):Ln(n,t,e);return nr.bind(null,e,t,i)}function In(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let o=t.apply(F([n,...e]),i);Ne(r,o)}}var ht={};function kn(e,t){if(ht[e])return ht[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,o=(()=>{try{let s=new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`);return Object.defineProperty(s,"name",{value:`[Alpine] ${e}`}),s}catch(s){return te(s,t,e),Promise.resolve()}})();return ht[e]=o,o}function Ln(e,t,r){let n=kn(t,r);return(i=()=>{},{scope:o={},params:s=[]}={})=>{n.result=void 0,n.finished=!1;let a=F([o,...e]);if(typeof n=="function"){let c=n(n,a).catch(l=>te(l,r,t));n.finished?(Ne(i,n.result,a,s,r),n.result=void 0):c.then(l=>{Ne(i,l,a,s,r)}).catch(l=>te(l,r,t)).finally(()=>n.result=void 0)}}}function Ne(e,t,r,n,i){if(Me&&typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(s=>Ne(e,s,r,n)).catch(s=>te(s,i,t)):e(o)}else typeof t=="object"&&t instanceof Promise?t.then(o=>e(o)):e(t)}var bt="x-";function C(e=""){return bt+e}function sr(e){bt=e}var Pe={};function d(e,t){return Pe[e]=t,{before(r){if(!Pe[r]){console.warn(String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`);return}let n=W.indexOf(r);W.splice(n>=0?n:W.indexOf("DEFAULT"),0,e)}}}function ar(e){return Object.keys(Pe).includes(e)}function de(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([a,c])=>({name:a,value:c})),s=wt(o);o=o.map(a=>s.find(c=>c.name===a.name)?{name:`x-bind:${a.name}`,value:`"${a.value}"`}:a),t=t.concat(o)}let n={};return t.map(ur((o,s)=>n[o]=s)).filter(dr).map(jn(n,r)).sort(Fn).map(o=>$n(e,o))}function wt(e){return Array.from(e).map(ur()).filter(t=>!dr(t))}var xt=!1,fe=new Map,cr=Symbol();function lr(e){xt=!0;let t=Symbol();cr=t,fe.set(t,[]);let r=()=>{for(;fe.get(t).length;)fe.get(t).shift()();fe.delete(t)},n=()=>{xt=!1,r()};e(r),n()}function _t(e){let t=[],r=a=>t.push(a),[n,i]=Gt(e);return t.push(i),[{Alpine:B,effect:n,cleanup:r,evaluateLater:x.bind(x,e),evaluate:M.bind(M,e)},()=>t.forEach(a=>a())]}function $n(e,t){let r=()=>{},n=Pe[t.type]||r,[i,o]=_t(e);Oe(e,t.original,o);let s=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),xt?fe.get(cr).push(n):n())};return s.runCleanups=o,s}var Ie=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),ke=e=>e;function ur(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=fr.reduce((o,s)=>s(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var fr=[];function re(e){fr.push(e)}function dr({name:e}){return pr().test(e)}var pr=()=>new RegExp(`^${bt}([^:^.]+)\\b`);function jn(e,t){return({name:r,value:n})=>{let i=r.match(pr()),o=r.match(/:([a-zA-Z0-9\-_:]+)/),s=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],a=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:s.map(c=>c.replace(".","")),expression:n,original:a}}}var yt="DEFAULT",W=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",yt,"teleport"];function Fn(e,t){let r=W.indexOf(e.type)===-1?yt:e.type,n=W.indexOf(t.type)===-1?yt:t.type;return W.indexOf(r)-W.indexOf(n)}function G(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function T(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>T(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)T(n,t,!1),n=n.nextElementSibling}function E(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var mr=!1;function _r(){mr&&E("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),mr=!0,document.body||E("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` diff --git a/src/components/Sidebar.astro b/src/components/Sidebar.astro index d86c0f4..2dac5c8 100644 --- a/src/components/Sidebar.astro +++ b/src/components/Sidebar.astro @@ -7,38 +7,33 @@ const post_url = entry.url + (entry.url.endsWith("/") ? "" : "/"); // this may deal with folders. // if so, it will turn any `-` into whitespace, // and remove any leading number -const entry_title = entry.title - .replaceAll("-", " ") - .replaceAll(/\d+_/g, ""); - +const entry_title = entry.title.replaceAll("-", " ").replaceAll(/\d+_/g, ""); --- { - !entry.children && ( -
  • - - {entry.title} - -
  • - ) + !entry.children && ( +
  • + + {entry.title} + +
  • + ) } { - entry.children && ( - <> -
    - {entry_title} -
    + entry.children && ( + <> +
    + {entry_title} +
    - - - ) + + + ) } diff --git a/src/components/TOC.astro b/src/components/TOC.astro index f92d88b..cfc3d1a 100644 --- a/src/components/TOC.astro +++ b/src/components/TOC.astro @@ -7,37 +7,36 @@ const { headings } = Astro.props; const toc = buildHierarchy(headings); function buildHierarchy(headings: any) { - const toc: any[] = []; - const parentHeadings = new Map(); + const toc: any[] = []; + const parentHeadings = new Map(); - if (!headings) return toc; + if (!headings) return toc; - headings.forEach((h: any) => { - const heading = { ...h, subheadings: [] }; - parentHeadings.set(heading.depth, heading); - // Change 2 to 1 if your markdown includes your

    - if (heading.depth === 2) { - toc.push(heading); - } else if (heading.depth === 1) { - /** empty */ - } - else { - parentHeadings.get(heading.depth - 1).subheadings.push(heading); - } - }); + headings.forEach((h: any) => { + const heading = { ...h, subheadings: [] }; + parentHeadings.set(heading.depth, heading); + // Change 2 to 1 if your markdown includes your

    + if (heading.depth === 2) { + toc.push(heading); + } else if (heading.depth === 1) { + /** empty */ + } else { + parentHeadings.get(heading.depth - 1).subheadings.push(heading); + } + }); - return toc; + return toc; } --- { - toc && toc.length > 0 && ( - - ) + toc && toc.length > 0 && ( + + ) } diff --git a/src/components/TOCHeading.astro b/src/components/TOCHeading.astro index 6a61578..21021f6 100644 --- a/src/components/TOCHeading.astro +++ b/src/components/TOCHeading.astro @@ -5,20 +5,23 @@ const { heading, parentMono } = Astro.props; // If a heading starts with `API: ` // then its children should be rendered with a mono font const isMono = heading.text.startsWith("API: "); -const monoClass = parentMono? " font-mono" : ""; +const monoClass = parentMono ? " font-mono" : ""; ---
  • - - {heading.text} - - { - heading.subheadings.length > 0 && ( -
      - {heading.subheadings.map((subheading: any) => ( - - ))} -
    - ) - } + + {heading.text} + + { + heading.subheadings.length > 0 && ( +
      + {heading.subheadings.map((subheading: any) => ( + + ))} +
    + ) + }
  • diff --git a/src/components/TwoColumn.astro b/src/components/TwoColumn.astro index f224d19..d815a38 100644 --- a/src/components/TwoColumn.astro +++ b/src/components/TwoColumn.astro @@ -1,8 +1,8 @@ --- -const {cols} = Astro.props; +const { cols } = Astro.props; const grid_cols = cols ?? "grid-cols-[10rem_auto]"; ---
    - +
    diff --git a/src/components/docs/CodeError.astro b/src/components/docs/CodeError.astro index 06b5cb0..7a4a627 100644 --- a/src/components/docs/CodeError.astro +++ b/src/components/docs/CodeError.astro @@ -3,6 +3,6 @@ const { error_message } = Astro.props; ---
    - Compilation error: - {error_message} + Compilation error: + {error_message}
    diff --git a/src/components/docs/CodeMin.astro b/src/components/docs/CodeMin.astro index 3bfc79b..0d241b8 100644 --- a/src/components/docs/CodeMin.astro +++ b/src/components/docs/CodeMin.astro @@ -6,4 +6,8 @@ const { thpcode, href } = Astro.props; const [native_html] = await native_highlighter(thpcode); --- - + diff --git a/src/components/docs/Info.astro b/src/components/docs/Info.astro index 7d86c24..0a2f3c9 100644 --- a/src/components/docs/Info.astro +++ b/src/components/docs/Info.astro @@ -1,4 +1,6 @@ -
    -
    Warning
    - +
    +
    Warning
    +
    diff --git a/src/components/docs/Warning.astro b/src/components/docs/Warning.astro index 0b41d45..3e5d00f 100644 --- a/src/components/docs/Warning.astro +++ b/src/components/docs/Warning.astro @@ -1,4 +1,4 @@
    -
    Warning
    - -
    \ No newline at end of file +
    Warning
    + +
    diff --git a/src/components/utils.test.ts b/src/components/utils.test.ts index 3a46661..0d8a352 100644 --- a/src/components/utils.test.ts +++ b/src/components/utils.test.ts @@ -1,133 +1,97 @@ -import { expect, test } from 'vitest' -import { leftTrimDedent } from "./utils" +import { expect, test } from "vitest"; +import { leftTrimDedent } from "./utils"; test("should trim empty string", () => { - const input = ``; + const input = ``; - expect(leftTrimDedent(input)).toEqual([""]); -}) + expect(leftTrimDedent(input)).toEqual([""]); +}); test("should work on a single line", () => { - const input = `hello` + const input = `hello`; - expect(leftTrimDedent(input)).toEqual([ - "hello" - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello"]); +}); test("should trim a single line", () => { - const input = ` hello` + const input = ` hello`; - expect(leftTrimDedent(input)).toEqual([ - "hello" - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello"]); +}); test("should trim multiple lines", () => { - const input = ` hello\n world` + const input = ` hello\n world`; - expect(leftTrimDedent(input)).toEqual([ - "hello", - "world" - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello", "world"]); +}); test("should trim multiple lines without indentation", () => { - const input = `hello\nworld` + const input = `hello\nworld`; - expect(leftTrimDedent(input)).toEqual([ - "hello", - "world" - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello", "world"]); +}); test("should consume only whitespace", () => { - const input = ` hello\nworld`; + const input = ` hello\nworld`; - try { - const res = leftTrimDedent(input); - expect(res).not.toEqual([ - "hello", - "rld", - ]); - } catch (e) { - expect(e).toBeInstanceOf(Error); - expect(e).toHaveProperty("message", "Invalid indentation while trimming: Expected 2 spaces, got 0"); - } -}) + try { + const res = leftTrimDedent(input); + expect(res).not.toEqual(["hello", "rld"]); + } catch (e) { + expect(e).toBeInstanceOf(Error); + expect(e).toHaveProperty( + "message", + "Invalid indentation while trimming: Expected 2 spaces, got 0", + ); + } +}); test("should preserve deeper indentation", () => { - const input = ` hello\n world` + const input = ` hello\n world`; - expect(leftTrimDedent(input)).toEqual([ - "hello", - " world", - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello", " world"]); +}); test("should ignore empty lines", () => { - const input = ` hello\n\n world` + const input = ` hello\n\n world`; - expect(leftTrimDedent(input)).toEqual([ - "hello", - "", - "world", - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello", "", "world"]); +}); test("should ignore lines with only whitespace", () => { - const input = ` hello\n \n \n world` + const input = ` hello\n \n \n world`; - expect(leftTrimDedent(input)).toEqual([ - "hello", - "", - " ", - "world", - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello", "", " ", "world"]); +}); test("should trim multiple without indentation", () => { - const input = `hello\nworld\n!` + const input = `hello\nworld\n!`; - expect(leftTrimDedent(input)).toEqual([ - "hello", - "world", - "!", - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello", "world", "!"]); +}); test("should ignore empty first line", () => { - const input = ` + const input = ` hello world`; - expect(leftTrimDedent(input)).toEqual([ - "hello", - "world", - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello", "world"]); +}); test("should ignore empty first line 2", () => { - const input = ` + const input = ` hello world`; - expect(leftTrimDedent(input)).toEqual([ - "hello", - "", - "world", - ]); -}) + expect(leftTrimDedent(input)).toEqual(["hello", "", "world"]); +}); test("should ignore empty last line", () => { - const input = ` + const input = ` hello world `; - expect(leftTrimDedent(input)).toEqual([ - "hello", - "world", - ]); + expect(leftTrimDedent(input)).toEqual(["hello", "world"]); }); diff --git a/src/components/utils.ts b/src/components/utils.ts index 6943db8..4f4607f 100644 --- a/src/components/utils.ts +++ b/src/components/utils.ts @@ -1,64 +1,65 @@ - -/** +/** * Performs the following: * - Removes the first & last line, if they are empty * - Picks the indentation level from the first non-white line * - Dedents the following lines -*/ + */ export function leftTrimDedent(input: string): Array { - let lines = input.split("\n"); - let output: Array = []; + let lines = input.split("\n"); + let output: Array = []; - // Ignore first line - if (lines[0] === "" && lines.length > 1) { - lines = lines.slice(1); + // Ignore first line + if (lines[0] === "" && lines.length > 1) { + lines = lines.slice(1); + } + + // Get indentation level of the first line + let indentationLevel = 0; + for (const char of lines[0]!) { + if (char === " " || char === "\n") { + indentationLevel += 1; + } else { + break; } + } - // Get indentation level of the first line - let indentationLevel = 0; - for (const char of lines[0]!) { - if (char === " " || char === "\n") { - indentationLevel += 1; - } else { - break; - } + for (const line of lines) { + // Ignore empty lines + if (line === "") { + output.push(""); + continue; } + output.push(trimWhitespace(line, indentationLevel)); + } - for (const line of lines) { - // Ignore empty lines - if (line === "") { - output.push(""); - continue; - } - output.push(trimWhitespace(line, indentationLevel)); - } + if (output.length > 1 && output[output.length - 1] === "") { + output = output.slice(0, -1); + } - if (output.length > 1 && output[output.length - 1] === "") { - output = output.slice(0, -1); - } - - return output; + return output; } function trimWhitespace(input: string, count: number): string { - let indentCount = 0; + let indentCount = 0; - for (const char of input) { - if (char === " ") { - indentCount += 1; - } else { - break; - } - } - - if (indentCount >= count || indentCount == input.length) { - return input.slice(count); + for (const char of input) { + if (char === " ") { + indentCount += 1; } else { - throw new Error(`Invalid indentation while trimming: Expected ${count} spaces, got ${indentCount}`); + break; } + } + + if (indentCount >= count || indentCount == input.length) { + return input.slice(count); + } else { + throw new Error( + `Invalid indentation while trimming: Expected ${count} spaces, got ${indentCount}`, + ); + } } export function splitAndLast(s: string): string { - const segments = s.split("/"); - return segments[segments.length - 1]!; + const segments = s.split("/"); + return segments[segments.length - 1]!; } diff --git a/src/layouts/ApiLayout.astro b/src/layouts/ApiLayout.astro index a4d5198..24adde1 100644 --- a/src/layouts/ApiLayout.astro +++ b/src/layouts/ApiLayout.astro @@ -8,12 +8,12 @@ import { splitAndLast } from "../components/utils"; const { headings } = Astro.props; export type Post = { - frontmatter: any; - getHeadings: any; - url: string; - file: any; - Content: any; - default: any; + frontmatter: any; + getHeadings: any; + url: string; + file: any; + Content: any; + default: any; }; type Posts = Array>; @@ -21,128 +21,128 @@ const basePath = "/api/std"; const posts: Posts = await Astro.glob("../pages/api/std/**/*.{md,mdx}"); export type Hierarchy = { - posts: Array; - children: Record; + posts: Array; + children: Record; }; function createHierarchy(posts: Posts): Hierarchy { - const hierarchy: Hierarchy = { - posts: [], - children: {}, - }; + const hierarchy: Hierarchy = { + posts: [], + children: {}, + }; - for (const post of posts) { - const postUrl: string = post.url; - const urlAfterBase = postUrl.split(basePath)[1] ?? ""; + for (const post of posts) { + const postUrl: string = post.url; + const urlAfterBase = postUrl.split(basePath)[1] ?? ""; - // handle / (index) - if (urlAfterBase === "") { - hierarchy.posts.push(post); - continue; - } + // handle / (index) + if (urlAfterBase === "") { + hierarchy.posts.push(post); + continue; + } - const urlSegments = urlAfterBase.split("/").slice(1); + const urlSegments = urlAfterBase.split("/").slice(1); - // top level urls - if (urlSegments.length === 1) { - hierarchy.posts.push(post); - continue; - } + // top level urls + if (urlSegments.length === 1) { + hierarchy.posts.push(post); + continue; + } - // folders - const folders = urlSegments.slice(0, -1); + // folders + const folders = urlSegments.slice(0, -1); - // traverse the hierarchy until the neccesary hierarchy is found - let currentHierarchy = hierarchy; - for (const folderName of folders) { - // check if folder exists, create otherwise - if (!hierarchy.children[folderName]) { - // create if doesnt exist - hierarchy.children[folderName] = [ - null, - { - posts: [], - children: {}, - }, - ]; - } + // traverse the hierarchy until the neccesary hierarchy is found + let currentHierarchy = hierarchy; + for (const folderName of folders) { + // check if folder exists, create otherwise + if (!hierarchy.children[folderName]) { + // create if doesnt exist + hierarchy.children[folderName] = [ + null, + { + posts: [], + children: {}, + }, + ]; + } - const [_, childrenHierarchy] = hierarchy.children[folderName]!; - currentHierarchy = childrenHierarchy; - } + const [_, childrenHierarchy] = hierarchy.children[folderName]!; + currentHierarchy = childrenHierarchy; + } - // add the page - currentHierarchy.posts.push(post); - } + // add the page + currentHierarchy.posts.push(post); + } - return hierarchy; + return hierarchy; } function normalizeHierarchy(h: Hierarchy): Hierarchy { - let posts = h.posts; - for (const folderName in h.children) { - // search if there is a post with the same name - // as the folder - const postIdx = h.posts.findIndex( - (post) => splitAndLast(post.url) === folderName, - ); + let posts = h.posts; + for (const folderName in h.children) { + // search if there is a post with the same name + // as the folder + const postIdx = h.posts.findIndex( + (post) => splitAndLast(post.url) === folderName, + ); - if (postIdx !== -1) { - const post = h.posts[postIdx]!; - h.children[folderName]![0] = post; - posts.splice(postIdx, 1); - } - } + if (postIdx !== -1) { + const post = h.posts[postIdx]!; + h.children[folderName]![0] = post; + posts.splice(postIdx, 1); + } + } - // do the same to all children - // TODO + // do the same to all children + // TODO - return { - children: h.children, - posts, - }; + return { + children: h.children, + posts, + }; } const hierarchy = normalizeHierarchy(createHierarchy(posts)); --- - + -
    - -
    - -
    -
    +
    + +
    +
    - + + +
    + - +
    diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 57d3348..26369ec 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -4,38 +4,40 @@ const { title } = Astro.props; - - - - {title ?? "THP: Typed Hypertext Processor"} + + + + {title ?? "THP: Typed Hypertext Processor"} - - - + + + - + - + - - - - + + + - - + + - - - + + + + + + diff --git a/src/layouts/NewDocsLayout.astro b/src/layouts/NewDocsLayout.astro index 247ec43..adbed62 100644 --- a/src/layouts/NewDocsLayout.astro +++ b/src/layouts/NewDocsLayout.astro @@ -5,44 +5,46 @@ import TOC from "../components/TOC.astro"; import Sidebar from "../components/Sidebar.astro"; export type PageEntry = { - path: string; - title?: string; - children?: Array; + path: string; + title?: string; + children?: Array; }; export interface AstroFile { - frontmatter: Frontmatter - __usesAstroImage: boolean - url: string - file: string - relative_file: string + frontmatter: Frontmatter; + __usesAstroImage: boolean; + url: string; + file: string; + relative_file: string; } export interface Frontmatter { - layout: string - title: string - order: number + layout: string; + title: string; + order: number; } type Props = { - /** Base url. It is used to later build a tree file system */ - base_url: string, - frontmatter: Frontmatter; - headings: any; - posts: Array; + /** Base url. It is used to later build a tree file system */ + base_url: string; + frontmatter: Frontmatter; + headings: any; + posts: Array; + version: string; }; const { base_url, frontmatter, headings, - posts + posts, + version = "latest", }: Props = Astro.props; const base_len = base_url.length; const posts_2 = posts - .map(post => ({ + .map((post) => ({ ...post, title: post.frontmatter.title, // this should be a path relative to the base url. @@ -50,11 +52,11 @@ const posts_2 = posts // being `/spec/ast/tokens` would be `/ast/tokens` path: post.url.substring(base_len), })) - .sort((p1, p2) => p1.frontmatter.order > p2.frontmatter.order? 1 : -1); + .sort((p1, p2) => (p1.frontmatter.order > p2.frontmatter.order ? 1 : -1)); // build a hierarchy of the files const second_level: Record> = { - "_": [], + _: [], }; for (const post of posts_2) { const fragments = post.path.split("/"); @@ -66,8 +68,7 @@ for (const post of posts_2) { second_level[folder_name] = []; } second_level[folder_name].push(post); - } - else { + } else { // add to root folder second_level["_"]!.push(post); } @@ -88,8 +89,7 @@ for (const levels_key of levels_keys) { if (levels_key === "_") { // top level, already inserted continue; - } - else { + } else { const posts = second_level[levels_key]!; const sorted_posts = posts.toSorted(sort_posts); const parentEntry = { @@ -106,69 +106,72 @@ function sort_posts(p1, p2) { if (!!p1.frontmatter.order && !!p2.frontmatter.order) { return p1.frontmatter.order > p2.frontmatter.order ? 1 : -1; } else { - return p1.title > p2.title? 1 : -1; + return p1.title > p2.title ? 1 : -1; } } + +const versions = ["latest", "v0.0.1"]; --- - + -
    - +
    + +
    -
    - -
    + - - -
    - - - - + +
    diff --git a/src/layouts/thpHighlighter.ts b/src/layouts/thpHighlighter.ts index 23897c2..2a03ce1 100644 --- a/src/layouts/thpHighlighter.ts +++ b/src/layouts/thpHighlighter.ts @@ -1,19 +1,23 @@ - export function highlightOnDom() { - const pre_elements = document.querySelectorAll("pre"); - for (const pre_el of pre_elements) { - const language = pre_el.getAttribute("data-language"); - if (language === null) { continue; } - - // Create a visual indicador - const indicator = document.createElement("span"); - - let indicator_bg_class = ""; - if (language === "php") { indicator_bg_class = "bg-[#4f5b93]"; } - else if (language === "html") { indicator_bg_class = "bg-[#dc4a20]"; } - - indicator.className = `absolute top-1 right-0 inline-block text-sm select-none opacity-85 ${indicator_bg_class} px-2 rounded-full`; - indicator.innerText = language; - pre_el.appendChild(indicator); + const pre_elements = document.querySelectorAll("pre"); + for (const pre_el of pre_elements) { + const language = pre_el.getAttribute("data-language"); + if (language === null) { + continue; } + + // Create a visual indicador + const indicator = document.createElement("span"); + + let indicator_bg_class = ""; + if (language === "php") { + indicator_bg_class = "bg-[#4f5b93]"; + } else if (language === "html") { + indicator_bg_class = "bg-[#dc4a20]"; + } + + indicator.className = `absolute top-1 right-0 inline-block text-sm select-none opacity-85 ${indicator_bg_class} px-2 rounded-full`; + indicator.innerText = language; + pre_el.appendChild(indicator); + } } diff --git a/src/layouts/utils.ts b/src/layouts/utils.ts index 422848a..49fbd29 100644 --- a/src/layouts/utils.ts +++ b/src/layouts/utils.ts @@ -1,17 +1,15 @@ - export function sidebarHighlight() { - let current_uri = window.location.pathname; + let current_uri = window.location.pathname; - const sidebar = document.getElementById("sidebar")! - .children[0]! as HTMLElement; - const links = sidebar.querySelectorAll("a"); - for (const link of [...links]) { - if (link.getAttribute("href") === current_uri) { - sidebar.scrollTop = - link.offsetTop - sidebar.offsetTop - 250; + const sidebar = document.getElementById("sidebar")! + .children[0]! as HTMLElement; + const links = sidebar.querySelectorAll("a"); + for (const link of [...links]) { + if (link.getAttribute("href") === current_uri) { + sidebar.scrollTop = link.offsetTop - sidebar.offsetTop - 250; - link.classList.add("bg-pink-200", "dark:bg-pink-950"); - break; - } + link.classList.add("bg-pink-200", "dark:bg-pink-950"); + break; } + } } diff --git a/src/lexer/highlighter.ts b/src/lexer/highlighter.ts index 87a3e7c..6bfebe6 100644 --- a/src/lexer/highlighter.ts +++ b/src/lexer/highlighter.ts @@ -1,9 +1,16 @@ import { spawn } from "node:child_process"; import { leftTrimDedent } from "../components/utils"; import { HighlightLevel } from "./types"; -import type { ErrorLabel, MistiErr, Token, TokenizeResult, TokenType } from "./types"; +import type { + ErrorLabel, + MistiErr, + Token, + TokenizeResult, + TokenType, +} from "./types"; -const error_classes = "underline underline-offset-4 decoration-wavy decoration-red-500"; +const error_classes = + "underline underline-offset-4 decoration-wavy decoration-red-500"; /** * Highlights code using the compiler @@ -12,15 +19,18 @@ const error_classes = "underline underline-offset-4 decoration-wavy decoration-r * - The tokens as a list of elements * - An error message, if any */ -export async function native_highlighter(code: string, level = HighlightLevel.Lexic): Promise<[string, string | null]> { - let formatted_code = leftTrimDedent(code).join("\n"); +export async function native_highlighter( + code: string, + level = HighlightLevel.Lexic, +): Promise<[string, string | null]> { + let formatted_code = leftTrimDedent(code).join("\n"); - try { - let result = await native_lex(formatted_code, level); - return highlight_syntax(formatted_code, result); - } catch (error) { - return compiler_error(formatted_code, error as MistiErr); - } + try { + let result = await native_lex(formatted_code, level); + return highlight_syntax(formatted_code, result); + } catch (error) { + return compiler_error(formatted_code, error as MistiErr); + } } /** @@ -30,35 +40,38 @@ export async function native_highlighter(code: string, level = HighlightLevel.Le * - The tokens as a list of elements * - An error message, if any */ -function highlight_syntax(code: string, result: TokenizeResult): [string, string | null] { - if (result.Ok) { - const tokens_html = render_tokens(code, result.Ok); +function highlight_syntax( + code: string, + result: TokenizeResult, +): [string, string | null] { + if (result.Ok) { + const tokens_html = render_tokens(code, result.Ok); - return [tokens_html, null]; - } else if (result.MixedErr) { - const [tokens, errors] = result.MixedErr; - // TODO: Implement error rendering, based on the new error schema + return [tokens_html, null]; + } else if (result.MixedErr) { + const [tokens, errors] = result.MixedErr; + // TODO: Implement error rendering, based on the new error schema - const tokens_html = render_tokens(code, tokens, errors.labels); - return [tokens_html, `error code ${errors.error_code}`]; - } else if (result.Err) { - // TODO: Implement error rendering, based on the new error schema + const tokens_html = render_tokens(code, tokens, errors.labels); + return [tokens_html, `error code ${errors.error_code}`]; + } else if (result.Err) { + // TODO: Implement error rendering, based on the new error schema - return [code, `lexical error ${result.Err.error_code}`] - } else { - console.error(result); - throw new Error("Web page error: The compiler returned a case that wasn't handled."); - } + return [code, `lexical error ${result.Err.error_code}`]; + } else { + console.error(result); + throw new Error( + "Web page error: The compiler returned a case that wasn't handled.", + ); + } } - /** A fatal error with the THP compiler */ function compiler_error(code: string, error: MistiErr): [string, string] { - console.log(error); - return [code, "Fatal compiler error"]; + console.log(error); + return [code, "Fatal compiler error"]; } - /** * Transforms a list of tokens into colored HTML, and underlines present errors * @@ -66,178 +79,239 @@ function compiler_error(code: string, error: MistiErr): [string, string] { * @param tokens The list of tokens * @param error_start Absolute position from where the error starts. * @param error_end Absolute position to where the error ends. - * @returns + * @returns */ -function render_tokens(input: string, tokens: Array, error_labels: Array = []): string { - const input_chars = input.split(""); - let output = ""; +function render_tokens( + input: string, + tokens: Array, + error_labels: Array = [], +): string { + const input_chars = input.split(""); + let output = ""; - // Collects all the token ranges in all error labels - const error_ranges: Array<[number, number]> = error_labels.map(l => [l.start, l.end]); + // Collects all the token ranges in all error labels + const error_ranges: Array<[number, number]> = error_labels.map((l) => [ + l.start, + l.end, + ]); - let current_pos = 0; - for (let i = 0; i < tokens.length; i += 1) { - const t = tokens[i]!; - const token_start = t.position; - const token_end = t.position + t.value.length; + let current_pos = 0; + for (let i = 0; i < tokens.length; i += 1) { + const t = tokens[i]!; + const token_start = t.position; + const token_end = t.position + t.value.length; - // check if the current token is in any error label - let is_errored = false; - for (const range of error_ranges) { - const [error_start, error_end] = range; + // check if the current token is in any error label + let is_errored = false; + for (const range of error_ranges) { + const [error_start, error_end] = range; - if (token_start >= error_start && token_end <= error_end) { - is_errored = true; - break; - } - } - - // Some tokens require processing (like multiline comments) - - // There are some tokens that are empty, ignore them - if (t.value == "") { - continue; - } - - // Append all characters before the token - output += input_chars.slice(current_pos, token_start).join(""); - - // Append the token - const [token_value, new_token_end] = process_token_value_and_end(t.value, t.token_type, token_end); - const token_type = translate_token_type(t.token_type, token_value); - output += `${token_value}`; - - current_pos = new_token_end; + if (token_start >= error_start && token_end <= error_end) { + is_errored = true; + break; + } } - // at this point `output` is a string with tokens - // now i want to append the label messages: - // - split the output by newlines - // - for every label, append a new line after each error + // Some tokens require processing (like multiline comments) - const lines = output.split("\n"); - let offset = 0; - for (const label of error_labels) { - // get the line number of the label - const [line_number, col_number] = absolute_to_line_column(input, label.start); - let spaces_len = col_number - 1; - if (spaces_len < 0) { spaces_len = 0 } - - const spaces = new Array(spaces_len).fill(" ").join(""); - lines.splice(line_number + offset, 0, create_inline_error_message(spaces, label.message)); - offset += 1; + // There are some tokens that are empty, ignore them + if (t.value == "") { + continue; } - return lines.join("\n"); + // Append all characters before the token + output += input_chars.slice(current_pos, token_start).join(""); + + // Append the token + const [token_value, new_token_end] = process_token_value_and_end( + t.value, + t.token_type, + token_end, + ); + const token_type = translate_token_type(t.token_type, token_value); + output += `${token_value}`; + + current_pos = new_token_end; + } + + // at this point `output` is a string with tokens + // now i want to append the label messages: + // - split the output by newlines + // - for every label, append a new line after each error + + const lines = output.split("\n"); + let offset = 0; + for (const label of error_labels) { + // get the line number of the label + const [line_number, col_number] = absolute_to_line_column( + input, + label.start, + ); + let spaces_len = col_number - 1; + if (spaces_len < 0) { + spaces_len = 0; + } + + const spaces = new Array(spaces_len).fill(" ").join(""); + lines.splice( + line_number + offset, + 0, + create_inline_error_message(spaces, label.message), + ); + offset += 1; + } + + return lines.join("\n"); } function create_inline_error_message(spaces: string, message: string): string { - return `${spaces}╰╴${message}`; + return `${spaces}╰╴${message}`; } /** * Transform an absolute position in source code to a line:column combination. - * + * * Both line and column are 1-based - * + * * @param input the source code * @param absolute the absolute position */ -function absolute_to_line_column(input: string, absolute: number): [number, number] { - let line_count = 1; - let last_newline_pos = 0; +function absolute_to_line_column( + input: string, + absolute: number, +): [number, number] { + let line_count = 1; + let last_newline_pos = 0; - // Count lines - for (let i = 0; i < input.length; i += 1) { - if (i === absolute) { - break; - } - - if (input[i] === "\n") { - line_count += 1; - last_newline_pos = i; - } + // Count lines + for (let i = 0; i < input.length; i += 1) { + if (i === absolute) { + break; } - return [line_count, absolute - last_newline_pos]; + if (input[i] === "\n") { + line_count += 1; + last_newline_pos = i; + } + } + + return [line_count, absolute - last_newline_pos]; } /** * Certain tokens store values that differ from the source code representation. * For example, the multiline comment token stores the content of the comment * without `/*` and `* /`, this function handles those cases. - * + * * @param value The value of the token * @param token_type The type of the token, used to know if it needs preprocessing * @param first_end The position where the token ends according to the token value - * @returns + * @returns */ -function process_token_value_and_end(value: string, token_type: TokenType, first_end: number): [string, number] { - let token_value = value; - let new_end = first_end; - if (token_type === "MultilineComment") { - token_value = `/*${token_value}*/`; - new_end += 4; - } else if (token_type === "String") { - token_value = `"${token_value}"`; - new_end += 2; - } +function process_token_value_and_end( + value: string, + token_type: TokenType, + first_end: number, +): [string, number] { + let token_value = value; + let new_end = first_end; + if (token_type === "MultilineComment") { + token_value = `/*${token_value}*/`; + new_end += 4; + } else if (token_type === "String") { + token_value = `"${token_value}"`; + new_end += 2; + } - // Escape html and return - return [ - token_value.replaceAll(//g, ">"), - new_end - ]; + // Escape html and return + return [ + token_value.replaceAll(//g, ">"), + new_end, + ]; } function translate_token_type(tt: TokenType, value: string): string { - const keywords = ["throws", "extends", "constructor", "static", "const", - "enum", "union", "use", "break", "catch", "continue", "as", "do", - "finally", "fun", "fn", "nil", "return", "throw", - "try", "type", "with", "of", "abstract", "class", "interface", - "private", "protected", "pub", "override", "open", "init", "val", "var", "mut", "clone"]; + const keywords = [ + "throws", + "extends", + "constructor", + "static", + "const", + "enum", + "union", + "use", + "break", + "catch", + "continue", + "as", + "do", + "finally", + "fun", + "fn", + "nil", + "return", + "throw", + "try", + "type", + "with", + "of", + "abstract", + "class", + "interface", + "private", + "protected", + "pub", + "override", + "open", + "init", + "val", + "var", + "mut", + "clone", + ]; - switch (tt) { - case "Datatype": - return "class-name"; - case "Identifier": { - if (keywords.includes(value)) { - return "keyword"; - } + switch (tt) { + case "Datatype": + return "class-name"; + case "Identifier": { + if (keywords.includes(value)) { + return "keyword"; + } - return "identifier"; - } - case "Int": - return "number"; - case "Float": - return "number"; - case "String": - return "string"; - case "Comment": - case "MultilineComment": - return "comment"; - // keywords: - case "VAL": - case "VAR": - case "FUN": - case "IF": - case "ELSE": - case "FOR": - case "IN": - case "WHILE": - case "MATCH": - case "CASE": - return "keyword"; - default: - return tt; + return "identifier"; } + case "Int": + return "number"; + case "Float": + return "number"; + case "String": + return "string"; + case "Comment": + case "MultilineComment": + return "comment"; + // keywords: + case "VAL": + case "VAR": + case "FUN": + case "IF": + case "ELSE": + case "FOR": + case "IN": + case "WHILE": + case "MATCH": + case "CASE": + return "keyword"; + default: + return tt; + } } -const native_lex = (code: string, level: HighlightLevel) => new Promise((resolve, reject) => { +const native_lex = (code: string, level: HighlightLevel) => + new Promise((resolve, reject) => { // Get binary path from .env const binary = import.meta.env.THP_BINARY; if (!binary) { - throw new Error("THP_BINARY not set in .env"); + throw new Error("THP_BINARY not set in .env"); } const subprocess = spawn(binary, ["tokenize", "-l", level.toString()]); @@ -248,18 +322,18 @@ const native_lex = (code: string, level: HighlightLevel) => new Promise { - response += data.toString(); + response += data.toString(); }); subprocess.stderr.on("data", (data) => { - error += data.toString(); + error += data.toString(); }); subprocess.on("close", (code) => { - if (code === 0) { - resolve(JSON.parse(response)); - } else { - reject(new Error(error)); - } + if (code === 0) { + resolve(JSON.parse(response)); + } else { + reject(new Error(error)); + } }); -}) + }); diff --git a/src/lexer/types.ts b/src/lexer/types.ts index a7e1806..efef878 100644 --- a/src/lexer/types.ts +++ b/src/lexer/types.ts @@ -1,73 +1,72 @@ export type ReferenceItem = { - symbol_start: number - symbol_end: number - reference: string -} + symbol_start: number; + symbol_end: number; + reference: string; +}; export interface Token { - token_type: TokenType - value: string - position: number + token_type: TokenType; + value: string; + position: number; } export type TokenType = - | "Identifier" - | "Datatype" - | "Int" - | "Float" - | "String" - | "Operator" - | "LeftParen" - | "RightParen" - | "LeftBracket" - | "RightBracket" - | "LeftBrace" - | "RightBrace" - | "NewLine" - | "Comment" - | "MultilineComment" - | "Comma" - | "INDENT" - | "DEDENT" - | "VAL" - | "VAR" - | "EOF" - | "FUN" - | "IF" - | "ELSE" - | "ELSE" - | "FOR" - | "IN" - | "WHILE" - | "MATCH" - | "CASE" - ; + | "Identifier" + | "Datatype" + | "Int" + | "Float" + | "String" + | "Operator" + | "LeftParen" + | "RightParen" + | "LeftBracket" + | "RightBracket" + | "LeftBrace" + | "RightBrace" + | "NewLine" + | "Comment" + | "MultilineComment" + | "Comma" + | "INDENT" + | "DEDENT" + | "VAL" + | "VAR" + | "EOF" + | "FUN" + | "IF" + | "ELSE" + | "ELSE" + | "FOR" + | "IN" + | "WHILE" + | "MATCH" + | "CASE"; export interface MistiErr { - error_code: number - error_offset: number - labels: Array - note: string | null, - help: string | null, + error_code: number; + error_offset: number; + labels: Array; + note: string | null; + help: string | null; } export interface ErrorLabel { - message: string - start: number - end: number + message: string; + start: number; + end: number; } export interface TokenizeResult { - /** All checks passed */ - Ok?: Array, - /** A non lexic error was found */ - MixedErr?: [Array, MistiErr], - /** A lexic error was found */ - Err?: MistiErr, + /** All checks passed */ + Ok?: Array; + /** A non lexic error was found */ + MixedErr?: [Array, MistiErr]; + /** A lexic error was found */ + Err?: MistiErr; } export enum HighlightLevel { - Lexic = 0, - Syntactic = 1, - Semantic = 2, + Lexic = 0, + Syntactic = 1, + Semantic = 2, } diff --git a/src/lexer/utils.ts b/src/lexer/utils.ts index be87f71..e950587 100644 --- a/src/lexer/utils.ts +++ b/src/lexer/utils.ts @@ -1,15 +1,15 @@ export function is_digit(c: string): boolean { - return c >= '0' && c <= '9'; + return c >= "0" && c <= "9"; } export function is_lowercase(c: string): boolean { - return c >= 'a' && c <= 'z'; + return c >= "a" && c <= "z"; } export function is_uppercase(c: string): boolean { - return c >= 'A' && c <= 'Z'; + return c >= "A" && c <= "Z"; } export function is_identifier_char(c: string): boolean { - return is_lowercase(c) || is_uppercase(c) || is_digit(c) || c === '_'; + return is_lowercase(c) || is_uppercase(c) || is_digit(c) || c === "_"; } diff --git a/src/pages/api/std/Array.mdx b/src/pages/api/std/Array.mdx index 93ed6c0..e55a9f3 100644 --- a/src/pages/api/std/Array.mdx +++ b/src/pages/api/std/Array.mdx @@ -1,10 +1,11 @@ --- layout: ../../../layouts/ApiLayout.astro --- -import TwoColumn from "../../../components/TwoColumn.astro" -import Code from "../../../components/Code.astro" -import CodeMin from "../../../components/docs/CodeMin.astro" -import Warning from "../../../components/docs/Warning.astro" + +import TwoColumn from "../../../components/TwoColumn.astro"; +import Code from "../../../components/Code.astro"; +import CodeMin from "../../../components/docs/CodeMin.astro"; +import Warning from "../../../components/docs/Warning.astro"; # Array @@ -19,28 +20,32 @@ THP arrays are 0-indexed. ## Signature - +`} +/> Where `T` is the datatype that the Array stores. For example: - +`} +/> ## PHP array internals -TL;DR: **Never** assign to an array using an invalid index. If you do -the program will not crash, instead it will not behaved as expected -[(this is a common problem in PHP)](https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/). -THP tries its best to solve such behavior. + TL;DR: **Never** assign to an array using an invalid index. If you do the + program will not crash, instead it will not behaved as expected [(this is a + common problem in + PHP)](https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/). THP tries + its best to solve such behavior. - Since THP compiles down to PHP, it's important to understand how PHP represents arrays internally. PHP doesn't have arrays. Instead, PHP has ordered maps and syntax sugar @@ -48,9 +53,11 @@ to make them look like arrays. When declaring an array like: - +`} +/> in reality what goes into memory is a map with numbers as keys: @@ -83,51 +90,51 @@ numbers[-10] = "?" // Assign to a negative index // Now the array will be (using thp notation): // .{ -// 0: "a", -// 1: "b", -// 2: "c", -// -10: "?", +// 0: "a", +// 1: "b", +// 2: "c", +// -10: "?", // } -numbers[7] = "!" // Out of bounds assignment +numbers[7] = "!" // Out of bounds assignment // Now the array will be: // .{ -// 0: "a", -// 1: "b", -// 2: "c", -// -10: "?", -// 7: "!", +// 0: "a", +// 1: "b", +// 2: "c", +// -10: "?", +// 7: "!", // } // In this loop, values will be printed following when // they were inserted, not by order of the index. -for #(_, value) in numbers +for #(\_, value) in numbers { - print("{value} ") // Will print: a b c ? ! +print("{value} ") // Will print: a b c ? ! } numbers[-4] = "???" // .{ -// 0: "a", -// 1: "b", -// 2: "c", -// -10: "?", -// 7: "!", -// -4: "???", +// 0: "a", +// 1: "b", +// 2: "c", +// -10: "?", +// 7: "!", +// -4: "???", // } // When pushing, the value will be assigned to the highest key + 1 -numbers.push("/") // This will be at position 8 +numbers.push("/") // This will be at position 8 // .{ -// 0: "a", -// 1: "b", -// 2: "c", -// -10: "?", -// 7: "!", -// -4: "???", -// 8: "/", +// 0: "a", +// 1: "b", +// 2: "c", +// -10: "?", +// 7: "!", +// -4: "???", +// 8: "/", // } `} /> @@ -135,12 +142,9 @@ This is one of many fundamental flaws with PHP. The only way to solve it would be to check every insertion at runtime, and this would have a performance penalty. - From now on, the documentation will continue to work with the Array abstraction, as if all indexes were valid. - - ## Usage ### Empty array @@ -148,31 +152,36 @@ abstraction, as if all indexes were valid. To create an empty array use square brackets. If you create an empty array, you need to specify the datatype. - - +`} +/> ### Creation To create an array use square brackets notation: - +`} +/> When the array is not empty, you don't need to specify a datatype. When the Array is declared over many lines, the last item should have a trailing comma: - +`} +/> If it doesn't, the code formatter will automatically insert one for you. @@ -198,13 +207,14 @@ mutable[0] = 322 To append an element to an array, use the method `push()`: - +`} +/> Do not insert into an invalid index. See [PHP array internals](#php-array-internals) to learn why. - ### Iteration Use a `for` loop to iterate over the elements of an array: @@ -214,7 +224,7 @@ val colors = ["red", "green", "blue"] for c in colors { - print("{c} ") +print("{c} ") } `} /> @@ -230,12 +240,11 @@ val colors = ["red", "green", "blue"] for c in colors { - c = "orange" // Compile error: Can't assign to an immutable variable - print("{c} ") +c = "orange" // Compile error: Can't assign to an immutable variable +print("{c} ") } `} /> - You can also declare an index along with the value: @@ -253,93 +262,89 @@ item 1: green item 2: blue ``` - ### Access To access a value of the array use square brackets notation: - +`} +/> -Since the index might not exist, this will return a +Since the index might not exist, this will return a [nullable type](/learn/error-handling/null/) that you have to handle. - ### Destructuring THP arrays don't have destructuring, since the values can all be `null`. If you know that the number of elements is fixed and valid, use Tuples instead. - ### Operators While PHP allows using certain operators with arrays, THP disallows that. Methods that perform comparisons should be used instead. - ### Assignment // TODO: Detail that assignment of arrays is copy on write - ## Methods In the parameters, self is the array to operate on. - - - - - - - - + + + + + - - - - + + + + - - - - - - - - - - - + `} + /> + + + + + + + + + + + +
    MethodDescription
    - + MethodDescription
    + Array[T] - `} /> - - Concatenate with other arrays, and return the result - as a new array. -
    - + + Concatenate with other arrays, and return the result as a new array. +
    + (Bool) callback, ) -> Array[T] - `} /> - - Filters elements using a callback function, and returns - them in a new array. -
    - - - Appends one or more elements to the end of the array. - Returns the new length of the array. -
    - - - Removes the last value of the array, and returns it. -
    + Filters elements using a callback function, and returns them in a new + array. +
    + + + Appends one or more elements to the end of the array. Returns the new + length of the array. +
    + + Removes the last value of the array, and returns it.
    - - diff --git a/src/pages/api/std/Array/concat.mdx b/src/pages/api/std/Array/concat.mdx index 1bf760d..799e590 100644 --- a/src/pages/api/std/Array/concat.mdx +++ b/src/pages/api/std/Array/concat.mdx @@ -1,7 +1,8 @@ --- layout: ../../../../layouts/ApiLayout.astro --- -import Code from "../../../../components/Code.astro" + +import Code from "../../../../components/Code.astro"; # `Array.concat` @@ -9,12 +10,14 @@ Concatenate with other arrays, and return the result as a new array. ## Signature - Array[T] -`} /> +`} +/> ## Parameters @@ -25,7 +28,6 @@ Concatenate with other arrays, and return the result as a new array. `Array[T]`: A new array that contains the elements from all arrays. - ## Description Concatenates the elements of the callee and the elements of each array in the @@ -49,6 +51,7 @@ Example concatenating 2 arrays: val result = first.concat(second) assert_eq(result, [1, 2, 3, 4, 5, 6]) + `} /> Example concatenating 3 arrays: @@ -60,6 +63,7 @@ Example concatenating 3 arrays: val result = first.concat(second, third) assert_eq(result, ["a", "b", "c", "d", "e", "f"]) + `} /> Example concatenating without any other array. In this case @@ -70,6 +74,7 @@ Example concatenating without any other array. In this case val result = first.concat() assert_eq(result, [1, 2, 3]) + `} /> Example concatenating an empty array with a filled array: @@ -80,8 +85,8 @@ Example concatenating an empty array with a filled array: val result = first.concat(second) assert_eq(result, [10, 20, 30]) -`} /> +`} /> ## PHP interop @@ -107,6 +112,3 @@ array(3) { [2]=> string(1) "c" } ``` - - - diff --git a/src/pages/api/std/Array/fold.mdx b/src/pages/api/std/Array/fold.mdx index a3e6c54..72c900c 100644 --- a/src/pages/api/std/Array/fold.mdx +++ b/src/pages/api/std/Array/fold.mdx @@ -1,7 +1,8 @@ --- layout: ../../../../layouts/ApiLayout.astro --- -import Code from "../../../../components/Code.astro" + +import Code from "../../../../components/Code.astro"; # `Array.fold` @@ -11,13 +12,15 @@ the left. ## Signature - (B) transform_function, ) -> B -`} /> +`} +/> ## Parameters @@ -31,7 +34,6 @@ the left. - Otherwise, returns the result of applying `transform_function` to the accumulator `acc`, and the next element `next`. - ## Description Fold allows you to transform an array of `A` into a single `B`, following @@ -39,20 +41,21 @@ an arbitraty function. For example, let's say that you have an array of numbers: - +`} +/> And you want to join all digits into a String like `"1985"`. You can achieve this with a fold. - - `f` is a function that takes a previous value (known as the accumulator) @@ -93,10 +96,12 @@ The `transform_function` can be any function, and can operate over any type. For example, you could sum all numbers instead of concatenating like this: - +`} +/> ```php f( f( f( f(0, 1), 9), 8), 5) @@ -118,8 +123,3 @@ val result = builder.build() `} /> Or anything. - - - - - diff --git a/src/pages/api/std/Array/map.mdx b/src/pages/api/std/Array/map.mdx index efaa3b3..7af3023 100644 --- a/src/pages/api/std/Array/map.mdx +++ b/src/pages/api/std/Array/map.mdx @@ -1,7 +1,8 @@ --- layout: ../../../../layouts/ApiLayout.astro --- -import Code from "../../../../components/Code.astro" + +import Code from "../../../../components/Code.astro"; # `Array.map` @@ -19,16 +20,15 @@ and returns their result in a new array. self[], (A) -> (B) map_function ) -> Array[B] + `} /> - - Float { - fmt.Println("prosor prosor %d", 322) +fmt.Println("prosor prosor %d", 322) } | (String a, Int b) -> Float { @@ -40,4 +40,3 @@ fun multi_def } `} /> - diff --git a/src/pages/api/std/index.mdx b/src/pages/api/std/index.mdx index fb28b3b..d820e85 100644 --- a/src/pages/api/std/index.mdx +++ b/src/pages/api/std/index.mdx @@ -1,8 +1,9 @@ --- layout: ../../../layouts/ApiLayout.astro --- -import TwoColumn from "../../../components/TwoColumn.astro" -import Code from "../../../components/Code.astro" + +import TwoColumn from "../../../components/TwoColumn.astro"; +import Code from "../../../components/Code.astro"; # module `std` @@ -28,12 +29,14 @@ if (str_contains("abc", "a")) { In THP there is no `str_contains` function. Instead, you'd call the `contains` method on the string: - +`} +/> ## On naming @@ -56,10 +59,11 @@ If you need to use a PHP class with a lowercase name you can use the following s class animal {} ``` - - - - - +`} +/> diff --git a/src/pages/en/latest/learn/01_basics/comments.mdx b/src/pages/en/latest/learn/01_basics/comments.mdx index eef71dd..20ee804 100644 --- a/src/pages/en/latest/learn/01_basics/comments.mdx +++ b/src/pages/en/latest/learn/01_basics/comments.mdx @@ -3,13 +3,13 @@ layout: "../_wrapper.astro" title: Comments order: 2 --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Comments THP supports single and multi line comments: - ## Single line Begin with double slash `//` and continue until the end of the line. @@ -21,33 +21,37 @@ print("hello!") print("the result is {5 + 5}") // This will print 10 `} /> - ## Multi line These begin with `/*` and end with `*/`. Everything in between is ignored. Multi line comments can be nested in THP. - +`} +/> - +`} +/> ## Documentation comments Documentation comments use triple slashes `///`. These use [CommonMark Markdown](https://commonmark.org/) syntax. - - - +`} +/> diff --git a/src/pages/en/latest/learn/01_basics/datatypes.mdx b/src/pages/en/latest/learn/01_basics/datatypes.mdx index bbfe44c..1a3ec80 100644 --- a/src/pages/en/latest/learn/01_basics/datatypes.mdx +++ b/src/pages/en/latest/learn/01_basics/datatypes.mdx @@ -3,7 +3,8 @@ layout: "../_wrapper.astro" title: Datatypes order: 4 --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Datatypes @@ -28,50 +29,54 @@ Int char_code = 0b01000110 // IMPORTANT! // Since Octal starts with \`0o\`, using just a leading 0 // will result in a decimal! -Int not_octal = 032 // This is 32, not 26 +Int not_octal = 032 // This is 32, not 26 `} /> // TODO: Make it a compile error to have leading zeroes, and force users to use `0o` for octal - ## Float Same as php float - - - +`} +/> ## String THP strings use **only** double quotes. Single quotes are used elsewhere. - +`} +/> Strings have interpolation with `{}`. - +`} +/> Unlike PHP, THP strings are concatenated with `++`, not with `.`. This new operator implicitly converts any operator into a string. - +`} +/> The plus operator `+` is reserved for numbers. - ## Bool THP booleans are `true` and `false`. They are case sensitive, @@ -84,4 +89,3 @@ Bool is_false = false // This is a compile error val invalid = TRUE `} /> - diff --git a/src/pages/en/latest/learn/01_basics/hello-world.mdx b/src/pages/en/latest/learn/01_basics/hello-world.mdx index de1226d..ea0162e 100644 --- a/src/pages/en/latest/learn/01_basics/hello-world.mdx +++ b/src/pages/en/latest/learn/01_basics/hello-world.mdx @@ -3,8 +3,9 @@ layout: "../_wrapper.astro" title: Hello world order: 1 --- + import InteractiveCode from "@/components/InteractiveCode.astro"; -import Code from "@/components/Code.astro" +import Code from "@/components/Code.astro"; # Hello, world! @@ -18,13 +19,14 @@ detailed later on. To write a hello world program write the following code in a file: - +`} +/> Then run `thp hello.thp` from your terminal. - ## Instruction separation THP uses whitespace to determine when a statement is over. In short, @@ -36,11 +38,12 @@ echo("B"); echo("C"); ``` - +`} +/> As a consequence of this, there can only be 1 statement per line. - diff --git a/src/pages/en/latest/learn/01_basics/operators.mdx b/src/pages/en/latest/learn/01_basics/operators.mdx index 6561668..0de8789 100644 --- a/src/pages/en/latest/learn/01_basics/operators.mdx +++ b/src/pages/en/latest/learn/01_basics/operators.mdx @@ -3,11 +3,11 @@ layout: "../_wrapper.astro" title: Operators order: 5 --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Operators - Most of the PHP operators are present in THP. ## Numbers @@ -17,13 +17,13 @@ var number = 322 number + 1 number - 1 -number * 1 +number \* 1 number / 1 number % 2 number += 1 number -= 1 -number *= 1 +number \*= 1 number /= 1 number %= 2 `} /> @@ -36,7 +36,7 @@ use `+=` or `-=` instead. number += 1 // instead of -number++ // This is a compile error +number++ // This is a compile error `} /> ### Comparison @@ -44,62 +44,71 @@ number++ // This is a compile error These operators will not do implicit type conversion. They can only be used with same datatypes. - v2 v1 >= v2 -`} /> +`} +/> There is only `==` and `!=`. They are equivalent to `===` and `!==`. - - +`} +/> ### Bitwise TBD - +`} +/> ## Strings Strings **do not use `.`** for concatenation. They use `++`. - +`} +/> This new operator **implicitly converts** types to string - - +`} +/> ## Boolean These operators work **only with booleans**, they do not perform type coercion. - +`} +/> ## Ternary There is no ternary operator. See [Conditionals](/learn/flow-control/conditionals) for alternatives. - ## Null These are detailed in their section: [Nullable types](/learn/error-handling/null) @@ -112,9 +121,6 @@ person?.name ?? "Jane" person?.greet?.() if person? { - person.name +person.name } `} /> - - - diff --git a/src/pages/en/latest/learn/01_basics/variables.mdx b/src/pages/en/latest/learn/01_basics/variables.mdx index 9408ad3..b4104c3 100644 --- a/src/pages/en/latest/learn/01_basics/variables.mdx +++ b/src/pages/en/latest/learn/01_basics/variables.mdx @@ -3,7 +3,8 @@ layout: "../_wrapper.astro" title: Variables order: 3 --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Variables @@ -24,47 +25,59 @@ As a regex: `[a-z_][a-zA-Z0-9_]*` Defined with `val`, followed by a variable name and a value. - +`} +/> It's a compile error to attempt to modify it - - - +`} +/> ### Datatype annotation Written after the `val` keyword but before the variable name. - +`} +/> When annotating an immutable variable the `val` keyword is optional - +`} +/> This means that if a variable only has a datatype, it is immutable. It is a compile error to declare a variable of a datatype, but use another. - - +`} +/> ## Mutable variables @@ -81,18 +94,21 @@ age = 33 Written after the `var` keywords but before the variable name. - +`} +/> When annotating a mutable variable the keyword `var` is still **required**. - - - - +`} +/> diff --git a/src/pages/en/latest/learn/02_data-structures/arrays.mdx b/src/pages/en/latest/learn/02_data-structures/arrays.mdx index b4502a1..fd4a976 100644 --- a/src/pages/en/latest/learn/02_data-structures/arrays.mdx +++ b/src/pages/en/latest/learn/02_data-structures/arrays.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Arrays --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Arrays @@ -17,29 +18,25 @@ Arrays only store values of a single datatype. val fruits = ["apple", "banana", "cherry"] val apple = fruits[0] -print(apple) // apple +print(apple) // apple // To mutate an array, you need to declare it as var var numbers = [0, 1, 2, 3] numbers[3] = 5 -print(numbers[3]) // 5 +print(numbers[3]) // 5 `} /> - ## Type signature - - +`} +/> -The Array signature __requires__ the word `Array`. +The Array signature **requires** the word `Array`. There is no `Int[]` or `[Int]` signature, since that would cause problems with the language's grammar. - - - - diff --git a/src/pages/en/latest/learn/02_data-structures/enums.mdx b/src/pages/en/latest/learn/02_data-structures/enums.mdx index 0427ebf..d6dfb49 100644 --- a/src/pages/en/latest/learn/02_data-structures/enums.mdx +++ b/src/pages/en/latest/learn/02_data-structures/enums.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Enums --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Enums @@ -33,7 +34,8 @@ val suit = Suit::Hearts Backed enums can have a scalar for each case. The scalar values can only be `String` or `Int`. - +`} +/> All cases must explicitly define their value, there is no automatic generation. - - diff --git a/src/pages/en/latest/learn/02_data-structures/maps.mdx b/src/pages/en/latest/learn/02_data-structures/maps.mdx index a9b5f29..3049caa 100644 --- a/src/pages/en/latest/learn/02_data-structures/maps.mdx +++ b/src/pages/en/latest/learn/02_data-structures/maps.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Maps --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Maps @@ -25,57 +26,64 @@ map Person { // Here we declare an instance of a Person. val john_doe = Person { - name: "John", - surname: "Doe", - age: 33, +name: "John", +surname: "Doe", +age: 33, } // If the compiler can infer the type of a Map, // we can omit its type var Person mary_jane = .{ - name: "Mary", - surname: "Jane", - age: 27, +name: "Mary", +surname: "Jane", +age: 27, } `} /> To access the fields of a map we use square braces `[]`. - +`} +/> Or dot access `.` if the field's name is a valid identifier. - - +`} +/> ## Anonymous maps An anonymous map allows us to store and retrieve any key of any datatype. They are declared as `Map`. - +`} +/> Anonymous maps can also can have their type omitted. - +`} +/> If the compiler encounters a map without a type (that is, `.{}`) and doesn't expect a specific type, it will assume it is an @@ -83,12 +91,14 @@ anonymous map. We can freely assign fields to an anonymous map: - +`} +/> However, if we try to access a field of an anonymous map we'll get a nullable type, and we must annotate it. @@ -104,9 +114,11 @@ var car_status = car["status"] Instead, we can use the `get` function of the map, which expects a datatype and returns that type as nullable - +`} +/> Both ways to get a value will check that the key exists in the map, and that it has the correct datatype. If either the key doesn't exist diff --git a/src/pages/en/latest/learn/02_data-structures/tuples.mdx b/src/pages/en/latest/learn/02_data-structures/tuples.mdx index 5316f41..4d3eb7e 100644 --- a/src/pages/en/latest/learn/02_data-structures/tuples.mdx +++ b/src/pages/en/latest/learn/02_data-structures/tuples.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Tuples --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Tuples @@ -16,13 +17,10 @@ val person = #("John", "Doe", 32) val #(name, surname, age) = person `} /> - - ## Signature - - - - +`} +/> diff --git a/src/pages/en/latest/learn/02_data-structures/unions.mdx b/src/pages/en/latest/learn/02_data-structures/unions.mdx index 15d77c9..4d78a1b 100644 --- a/src/pages/en/latest/learn/02_data-structures/unions.mdx +++ b/src/pages/en/latest/learn/02_data-structures/unions.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Tagged unions --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Tagged unions @@ -16,14 +17,15 @@ union Shape Rectangle(Int, Int), } -val dot = Shape::Dot -val square1 = Shape::Square(10) +val dot = Shape::Dot +val square1 = Shape::Square(10) val rectangle1 = Shape::Rectangle(5, 15) `} /> ## Pattern matching - +`} +/> ## Internal representation @@ -42,7 +45,6 @@ When compiled down to PHP, tagged unions are a combination of an enum and an arr THP creates an enum of the same name and with the same cases, and the values are contained as part of an array. - ```php // The first snippet is compiled to: enum Shape @@ -56,4 +58,3 @@ $dot = [Shape::Dot]; $square1 = [Shape::Square, 10]; $rectangle1 = [Shape::Rectangle, 5, 15] ``` - diff --git a/src/pages/en/latest/learn/03_flow-control/blocks.mdx b/src/pages/en/latest/learn/03_flow-control/blocks.mdx index 0ee56d3..c8e2d99 100644 --- a/src/pages/en/latest/learn/03_flow-control/blocks.mdx +++ b/src/pages/en/latest/learn/03_flow-control/blocks.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Blocks --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Blocks @@ -17,8 +18,8 @@ val result = { val temp = 161 temp * 2 // This will be assigned to \`result\` + } -print(result) // 322 +print(result) // 322 `} /> - diff --git a/src/pages/en/latest/learn/03_flow-control/conditionals.mdx b/src/pages/en/latest/learn/03_flow-control/conditionals.mdx index 2eb144d..652f8bc 100644 --- a/src/pages/en/latest/learn/03_flow-control/conditionals.mdx +++ b/src/pages/en/latest/learn/03_flow-control/conditionals.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Conditionals --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Conditionals @@ -12,7 +13,6 @@ import Code from "@/components/Code.astro" - Paretheses for the condition are not required. - There's no ternary operator - - - ## Check for datatypes TBD - - +`} +/> ## If variable is of enum @@ -49,13 +47,10 @@ TBD val user_id = POST::get("user_id") if Some(user_id) = user_id { - print("user_id exists: {user_id}") +print("user_id exists: {user_id}") } if Some(user_id) = user_id && user_id > 0 { - print("user_id is greater than 0: {user_id}") +print("user_id is greater than 0: {user_id}") } `} /> - - - diff --git a/src/pages/en/latest/learn/03_flow-control/loops.mdx b/src/pages/en/latest/learn/03_flow-control/loops.mdx index b63a648..adb4280 100644 --- a/src/pages/en/latest/learn/03_flow-control/loops.mdx +++ b/src/pages/en/latest/learn/03_flow-control/loops.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Loops --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Loops @@ -18,7 +19,7 @@ Braces are required. val numbers = [0, 1, 2, 3] for number in numbers { - print(number) +print(number) } `} /> @@ -30,18 +31,17 @@ val dict = .{ } for value in dict { - print("{value}") +print("{value}") } `} /> - ### Loop over keys and values @@ -53,11 +53,10 @@ val dict = .{ } for key, value in dict { - print("{key} => {value}") +print("{key} => {value}") } `} /> - ## While loop - ## Labelled loops TBD You can give labels to loops, allowing you to `break` and `continue` in nested loops. - - - +`} +/> diff --git a/src/pages/en/latest/learn/03_flow-control/match.mdx b/src/pages/en/latest/learn/03_flow-control/match.mdx index a5bbc52..7a73f32 100644 --- a/src/pages/en/latest/learn/03_flow-control/match.mdx +++ b/src/pages/en/latest/learn/03_flow-control/match.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Match --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Match @@ -13,45 +14,42 @@ Braces are **required**. 0 { - print("user_id exists: {id}") +print("user_id exists: {id}") } else { - print("user_id has other values ") +print("user_id has other values ") } match customer_id case 1, 2, 3 { - print("special discount for our first 3 customers!") +print("special discount for our first 3 customers!") } else { - print("hello dear") +print("hello dear") } -match customer_id +match customer*id | 1 | 2 | 3 { - print("ehhhh") +print("ehhhh") } | 4 | 5 { - print("ohhh") +print("ohhh") } -| _ { - print("???") +| * { +print("???") } `} /> - diff --git a/src/pages/en/latest/learn/03_flow-control/pipes.mdx b/src/pages/en/latest/learn/03_flow-control/pipes.mdx index 753b712..a2fd669 100644 --- a/src/pages/en/latest/learn/03_flow-control/pipes.mdx +++ b/src/pages/en/latest/learn/03_flow-control/pipes.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Pipes --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Pipes @@ -11,24 +12,30 @@ expression as input to another. For example, instead of writing: - +`} +/> You can use pipes: - first_function |> second_function |> third_function -`} /> +`} +/> Or use it to group expressions: - +`} +/> TBD: How to handle piping to functions with more than 1 param @@ -40,13 +47,11 @@ fun add_one(x: Int) -> Int { } fun times_two(x: Int) -> Int { - x * 2 +x \* 2 } // (Int) -> (Int) val plus_one_times_2 = add_one >> times_two -print(plus_one_times_2(5)) // 12 +print(plus_one_times_2(5)) // 12 `} /> - - diff --git a/src/pages/en/latest/learn/04_functions/declaration.mdx b/src/pages/en/latest/learn/04_functions/declaration.mdx index 9f7ba7e..3450898 100644 --- a/src/pages/en/latest/learn/04_functions/declaration.mdx +++ b/src/pages/en/latest/learn/04_functions/declaration.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Declaration --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Declaration @@ -10,7 +11,6 @@ Functions in THP have a different syntax than PHP. Function names **must** begin with a lowercase letter. - ## Minimal function The following code shows a function without parameters @@ -27,14 +27,12 @@ say_hello() Functions are called the same way as in PHP. - ## With return type If your function return any value, annotating the return -type is __mandatory__, and it's done by placing an +type is **mandatory**, and it's done by placing an arrow `->` followed by the return datatype: - Int { @@ -44,38 +42,38 @@ fun get_random_number() -> Int val number = get_random_number() `} /> - It's an error to return from a function that doesn't declare a return type: - - +`} +/> You can omit the `return` keyword if it's placed on the last expression on the function: - Int { // The last expression of a function is // automatically returned Random::get(0, 35_222) } -`} /> - +`} +/> ## Function parameters Parameters are declared like C-style languages: `Type name`, separated by commas. - Int { @@ -89,8 +87,6 @@ THP has different semantics on parameters concerning pass by value, pass by reference and copy on write. This is detailed in another chapter. - - ## Generic types Functions can declare generic types by using the syntax @@ -99,7 +95,6 @@ Functions can declare generic types by using the syntax The following example declares a generic `T` and uses it in the parameters and return type: - T { @@ -112,27 +107,24 @@ val first = get_first_item[Int](numbers) val first = get_first_item(numbers) `} /> - ## Default arguments TBD - ## Variadic arguments TBD - ## Signature - - () () -> (Int) (Int, Int) -> (Int) [T](Array[T]) -> (T) -`} /> - +`} +/> ## Named arguments @@ -165,8 +157,3 @@ fun greet( greet("John", from: "LA") `} /> - - - - - diff --git a/src/pages/en/latest/learn/04_functions/higher-order.mdx b/src/pages/en/latest/learn/04_functions/higher-order.mdx index 78f4b24..520e024 100644 --- a/src/pages/en/latest/learn/04_functions/higher-order.mdx +++ b/src/pages/en/latest/learn/04_functions/higher-order.mdx @@ -1,12 +1,12 @@ --- layout: "../_wrapper.astro" -title: Higher Order Functions +title: Higher Order Functions --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Higher Order functions - ## Function as parameters () -> Int } } - -val generator = generate_generator() // A function -val value = generate_generator()() // An Int +val generator = generate_generator() // A function +val value = generate_generator()() // An Int `} /> - - - diff --git a/src/pages/en/latest/learn/04_functions/lambdas.mdx b/src/pages/en/latest/learn/04_functions/lambdas.mdx index b85f439..9e6949d 100644 --- a/src/pages/en/latest/learn/04_functions/lambdas.mdx +++ b/src/pages/en/latest/learn/04_functions/lambdas.mdx @@ -2,40 +2,45 @@ layout: "../_wrapper.astro" title: Lambdas --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Lambdas / Anonymous functions - ## Anonymous function An anonymous function is declared with `fn`. Other than not having a name, it can declare parameter and return types. - Int { x + y } -`} /> +`} +/> Anonymous function can omit declaring those types as well: - - +`} +/> ## Anonymous function short form If you need an anonymous function that returns a single expression you can write it like this: - +`} +/> It uses an equal `=` instead of an arrow. It can contain only a single expression. @@ -43,56 +48,54 @@ only a single expression. This is common when declaring functions that immediately return a map. - - - - +`} +/> ## Closure types By default closures **always** capture variables as **references**. - - You can force a closure to capture variables by value. - +`} +/> - ## Lambdas Lambdas are a short form of anonymous functions. They are declared with `#{}`. @@ -109,9 +112,6 @@ numbers.map() #{ // the above lambda is equivalent to: numbers.map(fun(param1) { - $1 * 2 +$1 \* 2 }) `} /> - - - diff --git a/src/pages/en/latest/learn/04_functions/parameters.mdx b/src/pages/en/latest/learn/04_functions/parameters.mdx index 4ca02b5..a3c796f 100644 --- a/src/pages/en/latest/learn/04_functions/parameters.mdx +++ b/src/pages/en/latest/learn/04_functions/parameters.mdx @@ -2,18 +2,20 @@ layout: "../_wrapper.astro" title: Function parameters --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Function parameters - ## Immutable reference - +`} +/> When using a regular type as a parameter, only it's immutable properties can be used @@ -23,19 +25,21 @@ fun count(Array[Int] numbers) -> Int { val items_count = numbers.size() // Ok, \`size\` is pure items_count + } `} /> To use immutable properties you must use a mutable reference. - ## Mutable reference - +`} +/> Placing a `mut` before the type makes the parameter a mutable reference. Mutable methods can be used, and the original @@ -47,33 +51,30 @@ must use `mut`. - - ## Clone - +`} +/> Using the `clone` keyword before the type creates a mutable copy of the parameter (CoW). The original data will **not** be mutated. The caller must also use `clone` when calling the function. - - - diff --git a/src/pages/en/latest/learn/05_error-handling/null.mdx b/src/pages/en/latest/learn/05_error-handling/null.mdx index 1755bb5..724e23f 100644 --- a/src/pages/en/latest/learn/05_error-handling/null.mdx +++ b/src/pages/en/latest/learn/05_error-handling/null.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Nullable types --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Nullable types @@ -13,9 +14,11 @@ by the question mark `?` character. For instance, a POST request may have a `username` parameter, or it may not. This can be represented with an `?String`. - +`} +/> When we have a `?Type` we cannot use it directly. We must first check if the value is null, and then use it. @@ -31,7 +34,7 @@ if new_username? // you can also manually check for null if new_username == null { - // This is the same as above +// This is the same as above } `} /> @@ -46,8 +49,8 @@ To create a nullable type we must explicitly annotate the type. +?String favorite_color = null // Ok +`} /> Other examples: @@ -71,7 +74,6 @@ val name = person?.name - If `person` is null, `person?.name` will return `null` - If `person` is not null, `person?.name` will return `name` - ## Null unboxing The `!!` operator transforms a `?Type` into `Type`. @@ -90,16 +92,17 @@ String s = lastname!! You can use it to chain access: - +`} +/> However, if at runtime you use `!!` on a null value, the null value will be returned and your program will blow up later. So make sure to use this operator only when you are sure a value cannot be null. - ## Elvis operator The Elvis operator `??` is used to give a default value in case a `null` is found. @@ -114,13 +117,12 @@ val test_score = get_score() ?? 0 For the above code: - If `get_score()` is not null, `??` will return `get_score()` -- If `get_score()` *is* null, `??` will return `0` +- If `get_score()` _is_ null, `??` will return `0` You can use the Elvis operator to return early - - - - +`} +/> diff --git a/src/pages/en/latest/learn/05_error-handling/try.mdx b/src/pages/en/latest/learn/05_error-handling/try.mdx index eaeca71..cb5de95 100644 --- a/src/pages/en/latest/learn/05_error-handling/try.mdx +++ b/src/pages/en/latest/learn/05_error-handling/try.mdx @@ -2,8 +2,9 @@ layout: "../_wrapper.astro" title: Try/Exceptions --- + import InteractiveCode from "@/components/InteractiveCode.astro"; -import Code from "@/components/Code.astro" +import Code from "@/components/Code.astro"; # Try/exceptions @@ -27,6 +28,7 @@ fun invert(Int number) -> DivisionByZero!Int } return 1 / number + } `} /> @@ -36,7 +38,6 @@ or an `Int`. There is no `throw` keyword, errors are just returned. - ### Multiple error returns TODO: properly define syntax, how this interacts with type unions. @@ -44,12 +45,12 @@ TODO: properly define syntax, how this interacts with type unions. Multiple errors are chained with `!`. The last one is always the success value. - Error1!Error2!Error3!Int { /* ... */} -`} /> - - +`} +/> ## Error handling @@ -110,17 +111,17 @@ Use a naked `try` when you want to rethrow an error, if there is any. unset " = = =" set " dangerous()" "Int 50" } -`} -> +`} + +> In the previous example: - If `dangerous()` returns an `Exception`, this exception - will be returned by `run()`; + will be returned by `run()`; - If `dangerous()` succeedes, its value is assigned - to `result`, and the function continues executing. - + to `result`, and the function continues executing. ### Try/return @@ -136,16 +137,16 @@ fun run() -> Int val result = try dangerous() return 0 // ... + } `} /> In the previous example: - If `dangerous()` fails, its error will be ignored, and `0` will - be returned from `run()`. + be returned from `run()`. - If `dangerous()` succeedes, its value will be assigned to `result`, - and the function continues executing. - + and the function continues executing. ### Try/else @@ -210,7 +211,9 @@ Try/else will assign a new value if an expression fails. } step{line 0} `} + > + - If `possible_value` is an error, the value `666` is used. @@ -218,12 +221,10 @@ Try/else will assign a new value if an expression fails. Either way, the function will continue executing. - ### Try/catch Try/catch allows the error to be manually used & handled. - A try/catch may have many `catch` clauses: - - - +`} +/> diff --git a/src/pages/en/latest/learn/06_classes/abstract.mdx b/src/pages/en/latest/learn/06_classes/abstract.mdx index 9d44b62..8c6e734 100644 --- a/src/pages/en/latest/learn/06_classes/abstract.mdx +++ b/src/pages/en/latest/learn/06_classes/abstract.mdx @@ -2,8 +2,7 @@ layout: "../_wrapper.astro" title: Abstract --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Abstract - - diff --git a/src/pages/en/latest/learn/06_classes/anonymous.mdx b/src/pages/en/latest/learn/06_classes/anonymous.mdx index e9c6619..3819a3b 100644 --- a/src/pages/en/latest/learn/06_classes/anonymous.mdx +++ b/src/pages/en/latest/learn/06_classes/anonymous.mdx @@ -2,11 +2,11 @@ layout: "../_wrapper.astro" title: Anonymous classes --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Anonymous classes - - SomeClass(param1), SomeInterface { pub fun method() { // code } }) -`} /> +`} +/> diff --git a/src/pages/en/latest/learn/06_classes/constructor.mdx b/src/pages/en/latest/learn/06_classes/constructor.mdx index 88e726a..69e4bb2 100644 --- a/src/pages/en/latest/learn/06_classes/constructor.mdx +++ b/src/pages/en/latest/learn/06_classes/constructor.mdx @@ -2,11 +2,11 @@ layout: "../_wrapper.astro" title: Constructor/Destructor --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Constructor/Destructor - ## Constructor The constructor syntax in THP is inspired by Kotlin. @@ -28,7 +28,7 @@ Note that the parameters in the constructor (`fullname`, inside the class methods, only in the [`init` block](#init-block) and properties declaration. -To declare properties in the constructor see +To declare properties in the constructor see [Constructor promotion](#constructor-promotion). ### Constructor visibility @@ -37,7 +37,6 @@ If you want to declare a constructor as protected or private you need to add the `constructor` keyword, after the visibility modifier: - - ### Init block The `init` block allow us to run code during the @@ -62,6 +60,7 @@ class Dog(String name) { init { print("Dog created: {name}") } + } `} /> @@ -80,15 +79,13 @@ class Dog { } ``` - - - ### Constructor promotion Constructor parameters can serve as class properties. This is done by adding a modifier and `var`/`val`. - - +`} +/> By using this syntax you are declaring properties and assigning them at the same time. The contructor parameters can also have default values. - ### Derived properties You can declare properties whose values depend on values @@ -122,43 +118,40 @@ class Animal( } val a2 = Animal("Doa") -print(a2.name_length) //: 3 +print(a2.name_length) //: 3 `} /> - ### Constructor that may fail A constructor may only fail if there is code that can fail on the `init` block. - - TBD Proposal 1: - Error! { // Initialization code that may fail } } -`} /> - +`} +/> ## Destructor The destructor in THP is the same as PHP. - - - - +`} +/> diff --git a/src/pages/en/latest/learn/06_classes/definition.mdx b/src/pages/en/latest/learn/06_classes/definition.mdx index bcefeec..89c29f6 100644 --- a/src/pages/en/latest/learn/06_classes/definition.mdx +++ b/src/pages/en/latest/learn/06_classes/definition.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Basics --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Classes @@ -14,25 +15,27 @@ Classes in THP are significantly different than PHP. A class is defined as follows: - +`} +/> The name of the class **MUST** begin with an uppercase letter. Classes have a parameter list even if they have no parameters for consistency sake. - ## Instanciation To create an instance of a class call it as if it was a function, without `new`. - - +`} +/> ## Properties @@ -50,6 +53,7 @@ class Person() { // This is also okay String name = "Jane Doe" + } `} /> @@ -62,11 +66,12 @@ class Person() { // To make a property public use \`pub\` pub var Int age = 30 + } val p = Person() -print(p.name) // Compile error: \`name\` is private -print(p.age) // 30 +print(p.name) // Compile error: \`name\` is private +print(p.age) // 30 `} /> Unlike PHP, to access properties and methods use dot notation `.` @@ -79,19 +84,19 @@ Readonly properties are explained in the Readonly page. The interaction between properties and the constructor is explained in the Constructor page. - - ## Methods Methods are declared with `fun`, as regular functions. - +`} +/> **Methods are private by default**, and are made public with `pub`. @@ -106,11 +111,12 @@ class Person() { pub fun greet() { print("Hello from greet") } + } val p = Person() -p.greet() //: Hello from greet -p.private_greet() // Compile time error. Private method. +p.greet() //: Hello from greet +p.private_greet() // Compile time error. Private method. `} /> [Unlike PHP](https://www.php.net/manual/en/language.oop5.basic.php#language.oop5.basic.properties-methods), @@ -125,10 +131,10 @@ class Person() { fun name() -> String { "Rose" } + } `} /> - ## This THP uses the dollar sign `$` as this inside classes. @@ -146,21 +152,23 @@ class Person() { val person_name = $get_name() print("Hello, I'm {person_name}") } + } `} /> - ## Mutable methods By default methods cannot mutate the state of the object. - +`} +/> To do so the method must be annotated. The caller must also declare a mutable variable. @@ -175,4 +183,3 @@ class Animal(var String name) { var michi = Animal("Michifu") michi.set_name("Garfield") `} /> - diff --git a/src/pages/en/latest/learn/06_classes/inheritance.mdx b/src/pages/en/latest/learn/06_classes/inheritance.mdx index fbea016..76d26dd 100644 --- a/src/pages/en/latest/learn/06_classes/inheritance.mdx +++ b/src/pages/en/latest/learn/06_classes/inheritance.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Inheritance --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Inheritance @@ -19,7 +20,7 @@ class Animal(var String name) } // Child class -class Cat(String name, Int lives) +class Cat(String name, Int lives) extends Animal(name) {} Cat("Michi", 9).say_name() @@ -28,12 +29,14 @@ Cat("Michi", 9).say_name() The call to the parent constructor is done right there, after the parent class name. - +`} +/> You must always call super, even if the parent doesn't define any parameters: @@ -44,10 +47,3 @@ class Parent() {} class Child() extends Parent() {} `} /> - - - - - - - diff --git a/src/pages/en/latest/learn/06_classes/interfaces.mdx b/src/pages/en/latest/learn/06_classes/interfaces.mdx index 46aba33..831fbcd 100644 --- a/src/pages/en/latest/learn/06_classes/interfaces.mdx +++ b/src/pages/en/latest/learn/06_classes/interfaces.mdx @@ -2,12 +2,11 @@ layout: "../_wrapper.astro" title: Interfaces --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Interfaces - - String } - - class Cat -> Serializable { - pub fun Serializable() -> String - { - // code - } +pub fun Serializable() -> String +{ +// code +} } `} /> No interface inheritance. - diff --git a/src/pages/en/latest/learn/06_classes/magic.mdx b/src/pages/en/latest/learn/06_classes/magic.mdx index c40c405..b49dad0 100644 --- a/src/pages/en/latest/learn/06_classes/magic.mdx +++ b/src/pages/en/latest/learn/06_classes/magic.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Magic methods --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Magic methods @@ -12,15 +13,14 @@ Don't get special treatment. class Cat { - pub fun __sleep() -> Array[String] - { - // logic - } +pub fun \_\_sleep() -> Array[String] +{ +// logic +} } `} /> - - - +`} +/> diff --git a/src/pages/en/latest/learn/06_classes/static.mdx b/src/pages/en/latest/learn/06_classes/static.mdx index e5da8d5..16f2c34 100644 --- a/src/pages/en/latest/learn/06_classes/static.mdx +++ b/src/pages/en/latest/learn/06_classes/static.mdx @@ -2,11 +2,11 @@ layout: "../_wrapper.astro" title: Static --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Static in classes - ## Class constants - ## Static methods aka. plain, old functions - - ## Static properties aka. global variables - - - - - diff --git a/src/pages/en/latest/learn/06_classes/visibility.mdx b/src/pages/en/latest/learn/06_classes/visibility.mdx index 09a4bf9..3adbf16 100644 --- a/src/pages/en/latest/learn/06_classes/visibility.mdx +++ b/src/pages/en/latest/learn/06_classes/visibility.mdx @@ -2,6 +2,7 @@ layout: "../_wrapper.astro" title: Visibility --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Visibility diff --git a/src/pages/en/latest/learn/07_templating/components.mdx b/src/pages/en/latest/learn/07_templating/components.mdx index aea8419..88b966e 100644 --- a/src/pages/en/latest/learn/07_templating/components.mdx +++ b/src/pages/en/latest/learn/07_templating/components.mdx @@ -2,8 +2,9 @@ layout: "../_wrapper.astro" title: Components --- -import Code from "@/components/Code.astro" -import Info from "@/components/docs/Info.astro" + +import Code from "@/components/Code.astro"; +import Info from "@/components/docs/Info.astro"; # Components @@ -14,14 +15,17 @@ Like React, a component is any function that returns `HTML`. will be uppercase or not. For now they will be uppercase. + - HTML {

    Hello templates!

    } -`} /> +`} +/> Inside the HTML tags you can (mostly) write the HTML you already know. @@ -37,6 +41,7 @@ fun MyComponent() -> HTML val name = "John"

    Hello {name}!

    + } `} /> @@ -57,6 +62,7 @@ fun MyComponent() -> HTML {if is_vip {"Welcome"} else {"Hi"}} {name}!

    + } `} /> @@ -74,8 +80,10 @@ fun MyComponent() -> HTML val user_input = "BOLD"

    answer: {user_input}

    + } `} /> + ```html

    answer: <b>BOLD</b>

    ``` @@ -88,12 +96,15 @@ fun MyComponent() -> HTML val user_input = "BOLD"

    answer:

    + } `} /> -```html -

    answer: BOLD

    -``` +```html +

    + answer: BOLD +

    +``` ## Dynamic attributes @@ -101,12 +112,14 @@ TODO: boolean attributes Normal attributes (plain strings) work as you'd expect: - HTML { } -`} /> +`} +/> ```html ``` @@ -121,29 +134,30 @@ fun MyComponent() -> HTML // Note the braces + } `} /> + ```html ``` - - ## Fragments An HTML expression consist of a single tag that may have children inside. If you need to return multiple tags at once you can use fragments. - The following code doesn't work as you would expect: - HTML {

    hello

    // This is an error, an ignored expression

    world

    } -`} /> +`} +/> Each `

    ` is a single expression, they are not grouped. And since we cannot have unused expressions, the code will not compile. @@ -151,7 +165,8 @@ And since we cannot have unused expressions, the code will not compile. To have these two `

    ` tags as a single expression use a fragment: `<>` - HTML { // This is the root "element" @@ -160,7 +175,8 @@ fun MyComponent() -> HTML

    world

    } -`} /> +`} +/> ```html

    hello

    world

    @@ -179,16 +195,14 @@ fun User() -> HTML fun MyComponent() -> HTML { - <> -

    status

    - // Here we are using the other component - -} -`} /> + +<> +

    status

    + // Here we are using the other component + +} `} /> + ```html

    status

    world ``` - - - diff --git a/src/pages/en/latest/learn/07_templating/control-flow.mdx b/src/pages/en/latest/learn/07_templating/control-flow.mdx index 279d2cf..c6f5072 100644 --- a/src/pages/en/latest/learn/07_templating/control-flow.mdx +++ b/src/pages/en/latest/learn/07_templating/control-flow.mdx @@ -2,8 +2,9 @@ layout: "../_wrapper.astro" title: Control flow --- -import Code from "@/components/Code.astro" -import Info from "@/components/docs/Info.astro" + +import Code from "@/components/Code.astro"; +import Info from "@/components/docs/Info.astro"; # Control flow @@ -12,7 +13,8 @@ import Info from "@/components/docs/Info.astro" Use `@if`, `@else if` and `@else` to branch during the template creation. - HTML {
    @@ -26,8 +28,8 @@ fun User(User user) -> HTML }
    } -`} /> - +`} +/> ## Loops @@ -44,15 +46,16 @@ fun Users() -> HTML } + } `} /> - ## Match Use `@match` for pattern matching: - HTML {
    @@ -67,8 +70,5 @@ fun UserDetail(User user) -> HTML }
    } -`} /> - - - - +`} +/> diff --git a/src/pages/en/latest/learn/07_templating/intro.mdx b/src/pages/en/latest/learn/07_templating/intro.mdx index 10f7f4c..c78107b 100644 --- a/src/pages/en/latest/learn/07_templating/intro.mdx +++ b/src/pages/en/latest/learn/07_templating/intro.mdx @@ -2,8 +2,9 @@ layout: "../_wrapper.astro" title: Introduction --- -import Code from "@/components/Code.astro" -import Info from "@/components/docs/Info.astro" + +import Code from "@/components/Code.astro"; +import Info from "@/components/docs/Info.astro"; # THP templating @@ -44,13 +45,13 @@ function render_button(string $name) { This approach has many problems: - You have to create a new file for every new component, - polluting the file system and the project. This may be significant - for some web hosting providers that establish a fixed inode limit. + polluting the file system and the project. This may be significant + for some web hosting providers that establish a fixed inode limit. - Data is passed dinamically, via strings. If either the render - function or the template change, the component will behave - incorrectly without any warning. + function or the template change, the component will behave + incorrectly without any warning. - It's hard to include components inside components. Every new - one requires a change in 2 files. + one requires a change in 2 files. Maybe for these (and other) reasons components are not used with templating libraries. Instead people use sections, layouts, etc. @@ -62,18 +63,19 @@ and compose them. The following would be the equivalent in THP: - HTML { } -`} /> +`} +/> It is very similar to React. The HTML is inside the THP code, not the other way around, so you can have arbitrary logic in the component. - HTML { // Get info from the database @@ -92,15 +94,15 @@ fun User(String name) -> HTML { } + } fun TransactionItem(Transaction t) -> HTML { -
  • - {t.date} - {t.name} ({t.price}) -
  • -} -`} /> +
  • + {t.date} - {t.name} ({t.price}) +
  • +} `} /> ## Is this a JavaScript Front-End Framework? @@ -114,19 +116,14 @@ If you need reactivity on the front-end and want to use this templating take a look at [htmx](https://htmx.org/), [Alpine.js](https://alpinejs.dev/) and [hyperscript](https://hyperscript.org/). - - ## Styling We don't provide any syntax or facility for styling. However, this component model is good to use with TailwindCSS. - ## Conversion - - TBD: This is a draft, subject to change. - +TBD: This is a draft, subject to change. HTML expressions will be compiled to plain strings, and those will be then composed. @@ -145,6 +142,7 @@ fun Sample(String name) -> HTML { Not logged in } + } `} /> @@ -163,6 +161,3 @@ function Sample(name) { return "" } ``` - - - diff --git a/src/pages/en/latest/learn/07_templating/props.mdx b/src/pages/en/latest/learn/07_templating/props.mdx index ccf6950..c5267cb 100644 --- a/src/pages/en/latest/learn/07_templating/props.mdx +++ b/src/pages/en/latest/learn/07_templating/props.mdx @@ -2,8 +2,9 @@ layout: "../_wrapper.astro" title: Props --- -import Code from "@/components/Code.astro" -import Info from "@/components/docs/Info.astro" + +import Code from "@/components/Code.astro"; +import Info from "@/components/docs/Info.astro"; # Props @@ -15,23 +16,27 @@ and they are defined as normal parameters. For example, to receive a `String` declare it as a parameter: - HTML {

    Hello {name}!

    } -`} /> +`} +/> And to send its value type the parameter name as an attribute: - HTML {
    } -`} /> +`} +/> ```html

    Hello Rose

    @@ -39,18 +44,21 @@ fun Home() -> HTML You can have as many props as you'd like, of any datatype: - HTML { // ... } -`} /> +`} +/> ## Static props If the prop has a type `String` you can use a normal attribute. - HTML {
    @@ -58,8 +66,8 @@ fun Home() -> HTML
    } -`} /> - +`} +/> ## Dynamic props @@ -75,21 +83,22 @@ fun Sample(Cat cat) -> HTML fun Home() -> HTML { - val my_cat = Cat("Michifu") +val my_cat = Cat("Michifu")
    + } `} /> - ## Components as props If for some reason you want to use a component as a prop use the `HTML` datatype: - HTML { @@ -98,24 +107,27 @@ fun Sample(HTML child) -> HTML {child} } -`} /> +`} +/> This, however, means that your prop component must be declared as an attribute: - HTML {
    I am the child} />
    } -`} /> +`} +/> ```html
    -

    Sup

    - I am the child +

    Sup

    + I am the child
    ``` @@ -136,21 +148,16 @@ fun MyButton() -> HTML fun Home() -> HTML { -
    - - buy now! - -
    -} -`} /> + +
    + + buy now! + +
    +} `} /> + ```html
    - +
    ``` - - - - diff --git a/src/pages/en/latest/learn/_wrapper.astro b/src/pages/en/latest/learn/_wrapper.astro index ad4c022..2b02c53 100644 --- a/src/pages/en/latest/learn/_wrapper.astro +++ b/src/pages/en/latest/learn/_wrapper.astro @@ -4,17 +4,21 @@ import NewDocsLayout, { type AstroFile } from "@/layouts/NewDocsLayout.astro"; const { frontmatter, headings } = Astro.props; // Get all the posts from this dir -const posts = await Astro.glob("./**/*.{md,mdx}") as unknown as Array; +const posts = (await Astro.glob( + "./**/*.{md,mdx}", +)) as unknown as Array; // The base of every URL under this glob -const base_url = "/en/latest/learn" +const base_url = "/en/latest/learn"; +const version = "latest"; --- - - + + diff --git a/src/pages/en/latest/learn/index.mdx b/src/pages/en/latest/learn/index.mdx index 99a4349..402ba5c 100644 --- a/src/pages/en/latest/learn/index.mdx +++ b/src/pages/en/latest/learn/index.mdx @@ -3,9 +3,9 @@ layout: "./_wrapper.astro" title: Welcome order: 1 --- -import InteractiveCode from "@/components/InteractiveCode.astro"; -import Code from "@/components/Code.astro" +import InteractiveCode from "@/components/InteractiveCode.astro"; +import Code from "@/components/Code.astro"; # Welcome @@ -15,16 +15,14 @@ THP is a new programming language that compiles to PHP. ![Accurate visual description of THP](/img/desc_thp.jpg) - This page details the main design desitions of the language, if you want to install THP go to the [installation guide](install) - ## Why? PHP is an old language. It has been growing since 1995, adopting a lot of features from many places like C, Perl, Java, etc. This was -done in a very inconsistent way, as detailed by Eevee in their article +done in a very inconsistent way, as detailed by Eevee in their article [PHP: a fractal of bad design.](https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/) Along the years PHP has been improving. PHP added classes, exceptions, @@ -71,10 +69,6 @@ essential today: A good, unified LSP, type definitions, accesible documentation, an opinionated code formatter and plugins for major editors like VSCode and Neovim. - - - - ## Goals - Bring static typing to PHP: Generics, type checks at compile and runtime, etc. @@ -93,7 +87,6 @@ and plugins for major editors like VSCode and Neovim. ![Friendship ended with Rust, now Zig is my best friend.](/img/mudasir.jpg) - ## Not goals These are **not** things that THP wants to solve or implement @@ -104,7 +97,6 @@ These are **not** things that THP wants to solve or implement THP **_intentionally_** uses a different syntax from PHP to signal that it is a different language, and has different semantics. - ## Some differences with PHP ```php @@ -113,11 +105,13 @@ $has_key = str_contains($haystack, 'needle'); print("has key? " . $has_key); ``` - +`} +/> - Explicit variable declaration - No `$` for variable names (and thus no `$$variable`, use a map instead) @@ -126,9 +120,8 @@ print("has key? " + has_key) - Strings use only double quotes - String concatenation with `+` - -
    -
    +
    +
    ```php // PHP @@ -139,20 +132,22 @@ $obj = [ ] ``` - +`} +/> - Tuples, Arrays, Sets, Maps are clearly different - JSON-like object syntax -
    -
    +
    +
    ```php // PHP @@ -160,18 +155,19 @@ $cat = new Cat("Michifu", 7); $cat->meow(); ``` - - +`} +/> - Instantiate classes without `new` - Use dot `.` instead of arrow `->` syntax -
    -
    +
    +
    ```php // PHP @@ -179,34 +175,34 @@ use \Some\Deeply\Nested\Class use \Some\Deeply\Nested\Interface ``` - - +`} +/> - Different module syntax - Explicit module declaration - PSR-4 required - No `include`, `include_once`, `require` or `require_once` -
    -
    - +
    +
    Other things: - Pattern matching - ADTs - ## Runtime changes Where possible THP will compile to available PHP functions/classes/methods/etc. For example: - +`} +/> ```php // Would compile to: @@ -243,5 +240,3 @@ else { However, more advanced datatypes & helper functions will require a sort of runtime (new classes/functions/etc) or abuse the language's syntax/semantics. - - diff --git a/src/pages/en/v0.0.1/learn/_wrapper.astro b/src/pages/en/v0.0.1/learn/_wrapper.astro new file mode 100644 index 0000000..6ee4ab6 --- /dev/null +++ b/src/pages/en/v0.0.1/learn/_wrapper.astro @@ -0,0 +1,24 @@ +--- +import NewDocsLayout, { type AstroFile } from "@/layouts/NewDocsLayout.astro"; + +const { frontmatter, headings } = Astro.props; +// Get all the posts from this dir + +const posts = (await Astro.glob( + "./**/*.{md,mdx}", +)) as unknown as Array; + +// The base of every URL under this glob +const base_url = "/en/v0.0.1/learn"; +const version = "v0.0.1"; +--- + + + + diff --git a/src/pages/en/v0.0.1/learn/index.mdx b/src/pages/en/v0.0.1/learn/index.mdx new file mode 100644 index 0000000..f107348 --- /dev/null +++ b/src/pages/en/v0.0.1/learn/index.mdx @@ -0,0 +1,12 @@ +--- +layout: "./_wrapper.astro" +title: Welcome +order: 1 +--- + +import InteractiveCode from "@/components/InteractiveCode.astro"; +import Code from "@/components/Code.astro"; + +# THP :D + +Version 0.0.1 diff --git a/src/pages/index.astro b/src/pages/index.astro index 1e608d3..52e00de 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -22,111 +22,107 @@ case Cat(name, lives) { }`; const [thp_html] = await native_highlighter( - leftTrimDedent(thpcode).join("\n"), - HighlightLevel.Lexic, + leftTrimDedent(thpcode).join("\n"), + HighlightLevel.Lexic, ); --- - + - + + + -
    +
    - - Type safety is enforced at compile time. Everything - has a specific type. There is no `mixed`. -
    -
    - You can use generics where neccesary. -
    + > + Type safety is enforced at compile time. Everything has a specific type. + There is no `mixed`. +
    +
    + You can use generics where neccesary. + - - Make invalid state irrepresentable. -
    - Model data in a type-safe way. -
    - Ensure all cases are handled. -
    + > + Make invalid state irrepresentable. +
    + Model data in a type-safe way. +
    + Ensure all cases are handled. + - - Match on values, tuples, enums, unions, types etc. -
    - Guards available! -
    + > + Match on values, tuples, enums, unions, types etc. +
    + Guards available! + - - Nulls are explicit and require handling. Types can be nullable, - and they must be checked before usage. -
    - The stdlib makes extensive use of them. -
    + > + Nulls are explicit and require handling. Types can be nullable, and they + must be checked before usage. +
    + The stdlib makes extensive use of them. + - - Exceptions are values and don't disrupt - control flow. -
    -
    - Errors cannot be ignored, and we have - syntax sugar to ease them. -
    + > + Exceptions are values and don't disrupt control flow. +
    +
    + Errors cannot be ignored, and we have syntax sugar to ease them. + diff --git a/src/pages/spec/_wrapper.astro b/src/pages/spec/_wrapper.astro index 8138e65..30013a2 100644 --- a/src/pages/spec/_wrapper.astro +++ b/src/pages/spec/_wrapper.astro @@ -4,18 +4,19 @@ import NewDocsLayout, { type AstroFile } from "@/layouts/NewDocsLayout.astro"; const { frontmatter, headings } = Astro.props; // Get all the posts from this dir -const posts = await Astro.glob("./**/*.{md,mdx}") as unknown as Array; +const posts = (await Astro.glob( + "./**/*.{md,mdx}", +)) as unknown as Array; // The base of every URL under this glob -const base_url = "/spec" +const base_url = "/spec"; --- - - - + + diff --git a/src/pages/spec/ast/ast.md b/src/pages/spec/ast/ast.md index 7b5ba52..c1c8952 100644 --- a/src/pages/spec/ast/ast.md +++ b/src/pages/spec/ast/ast.md @@ -69,7 +69,6 @@ BlockMember = Statement | Expression ``` - ## Assignment The target of an assignment can only be an identifier for now. @@ -87,5 +86,3 @@ AssignmentOperator = "=" | "/=" | "%=" ``` - - diff --git a/src/pages/spec/ast/expression.md b/src/pages/spec/ast/expression.md index 7e02440..0809fef 100644 --- a/src/pages/spec/ast/expression.md +++ b/src/pages/spec/ast/expression.md @@ -7,15 +7,13 @@ title: Expression The expression parser effectively implements a precedence table. -| Operator | Precedence | -|------------|------------| -| == != | 5 | -| > >= < <= | 4 | -| - + ++ | 3 | -| . ?. !. | 2 | -| / * % | 1 | - - +| Operator | Precedence | +| --------- | ---------- | +| == != | 5 | +| > >= < <= | 4 | +| - + ++ | 3 | +| . ?. !. | 2 | +| / \* % | 1 | ```ebnf Expression = Equality @@ -29,7 +27,6 @@ Unary = ("!" | "-"), Expression | CallExpression ``` - ## CallExpression It's so hard to properly name these constructions. @@ -40,6 +37,3 @@ CallExpression = primary, "(", (arguments list)?, ")" | primary, "[", (expression, (comma, expression)*, comma?)? "]" | primary ``` - - - diff --git a/src/pages/spec/index.mdx b/src/pages/spec/index.mdx index 6602dbe..2580548 100644 --- a/src/pages/spec/index.mdx +++ b/src/pages/spec/index.mdx @@ -2,8 +2,8 @@ layout: "./_wrapper.astro" title: Welcome --- -import Code from "@/components/Code.astro" +import Code from "@/components/Code.astro"; # The THP Language Specification @@ -42,14 +42,11 @@ The compiler consists of 5 common phases: - **IR**: Transforms the THP AST into a PHP AST - **Codegen**: Generates PHP source code from the PHP AST - - ## Source Code representation Source code is encoded in UTF-8, and a single UTF-8 codepoint is a single character. - ## Basic characters Although the source code must be encoded in UTF-8, most of the actual @@ -68,7 +65,6 @@ lowercase_letter = "a".."z" uppercase_letter = "A".."Z" ``` - ## Whitespace & Automatic semicolon insertion This section is being reworked on the Zig rewrite of the compiler. @@ -85,10 +81,12 @@ parenthesis, square brackets, etc. Other statements require a explicit terminator. For example, the assignment statement: - +`} +/> In other languages a semicolon would be used to signal the end of the statement: @@ -106,21 +104,25 @@ to the rule: No matter the indentation, whitespace or others, every statement ends with a newline. - +`} +/> As mentioned before, this does not affect statements that have clear delimiters. For example, the following code will work as expected: - +`} +/> In a way, the parenthesis will "disable" the rule. @@ -133,11 +135,13 @@ continues. For example: - +`} +/> This is so no matter the indentation: @@ -145,25 +149,26 @@ This is so no matter the indentation: // weird indentation: val computation = 123 + 456 - * 789 -// ↑ statement still ends here -`} /> + +- 789 + // ↑ statement still ends here + `} /> What is important is that an operator begins the new line. If the operator is left on the previous line, this will not work: - +`} +/> For this the parser must do look-ahead of 1 token. This is the only place the parser does so. - - ## Old Whitespace rules THP is partially whitespace sensitive. It uses the following tokens: Indent, Dedent & NewLine @@ -174,32 +179,33 @@ compares the previous indentation to the new one. If the amount of whitespace is greater than before, it emits a Indent token. If it's lower, emits a Dedent token, and if it's the same it does nothing. - - +`} +/> The previous code would emit the following tokens: `1` `+` `2` `NewLine` `Indent` `+` `3` `NewLine` `+` `4` `Dedent` - Additionaly, it is a lexical error to have wrong indentation. The lexer stores all previous indentation levels in a stack, and reports an error if a decrease in indentation doesn't match a previous level. - +`} +/> All productions of the grammar ignore whitespace/indentation, except those involved in semicolon inference. - ## Statement termination / Semicolon inference **Only inside a block of code** whitespace is used to determine where a statement ends @@ -207,41 +213,43 @@ and a new one begins. Everywhere else whitespace is ignored. Statements in THP end when a new line is encountered: - - - +`} +/> +var a = 1 + 2 // a = 3 + +- 3 // this is not part of \`a\`, this is a different statement + `} /> This is true even if the line ends with an operator: - ### Parenthesis Exception 1: When a parenthesis is open, all following whitespace is ignored until the closing parenthesis. - +`} +/> However, for a parenthesis to begin to act, it needs to be open on the same line. @@ -254,7 +262,7 @@ print // Now it's one single statement print( - "hello" +"hello" ) `} /> @@ -264,17 +272,21 @@ Exception 2: - When a binary operator is followed by indentation: - +`} +/> - Or when indentation is followed by a binary operator: - +`} +/> In theses cases, all whitespace will be ignored until the indentation returns to the initial level. @@ -291,5 +303,3 @@ val person = PersonBuilder() // Here indentation returns, and a new statement begins print(person) `} /> - - diff --git a/src/pages/spec/tokens/comments.mdx b/src/pages/spec/tokens/comments.mdx index 002f289..db8059b 100644 --- a/src/pages/spec/tokens/comments.mdx +++ b/src/pages/spec/tokens/comments.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Comment --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Comment @@ -10,8 +11,10 @@ import Code from "@/components/Code.astro" Comment = "//", any_except_new_line ``` - +`} +/> diff --git a/src/pages/spec/tokens/identifier.mdx b/src/pages/spec/tokens/identifier.mdx index d40aa0f..72dcef3 100644 --- a/src/pages/spec/tokens/identifier.mdx +++ b/src/pages/spec/tokens/identifier.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Identifiers & Datatypes --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Identifiers & Datatypes @@ -19,14 +20,15 @@ Identifier = (underscore | lowercase_letter), identifier_letter* identifier_letter = underscore | lowercase_letter | uppercase_letter | decimal_digit ``` - - +`} +/> ## Datatype @@ -34,22 +36,23 @@ camelCase Datatype = uppercase_letter, indentifier_letter* ``` - - +`} +/> ## Keywords The following are (currently) THP keywords: - +`} +/> Keywords are scanned first as identifiers, then transformed to their respective tokens. - - diff --git a/src/pages/spec/tokens/numbers.mdx b/src/pages/spec/tokens/numbers.mdx index d1d77a7..dd75f54 100644 --- a/src/pages/spec/tokens/numbers.mdx +++ b/src/pages/spec/tokens/numbers.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: Numbers --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Numbers @@ -20,7 +21,8 @@ binary_number = "0", ("b" | "B"), binary_digit+ decimal_number = "1".."9", decimal_digit* ``` - +`} +/> `TODO`: Allow underscores `_` between any number: `1_000_000`. - - ## Float ```ebnf @@ -52,12 +53,7 @@ scientific_notation = "e", ("+" | "-"), decimal_digit+ 123e-3 `} /> - All floating point numbers must start with at least 1 digit. - `.5` is not a valid floating point number. - +`.5` is not a valid floating point number. `TODO`: Allow scientific notation to omit the `+`/`-`: `10e4`. - - - diff --git a/src/pages/spec/tokens/operator.mdx b/src/pages/spec/tokens/operator.mdx index 12cd36e..37e2787 100644 --- a/src/pages/spec/tokens/operator.mdx +++ b/src/pages/spec/tokens/operator.mdx @@ -2,11 +2,11 @@ layout: "../_wrapper.astro" title: Operator --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # Operator - ```ebnf Operator = operator_char+ @@ -15,14 +15,16 @@ operator_char = "+" | "-" | "=" | "*" | "!" | "/" | "|" | "<" | ">" | "^" | "." | ":" ``` - <= >= -> => -`} /> +`} +/> These are all the characters that can make an operator. The lexer doesn't know about any operator in particular. -In other languages something like `+-1` would be interpreted +In other languages something like `+-1` would be interpreted as `+` `-` `1`. In THP, this is always `+-` `1`, and that would throw an error because the operator `+-` doesn't exist. diff --git a/src/pages/spec/tokens/string.mdx b/src/pages/spec/tokens/string.mdx index 605553a..d3bade5 100644 --- a/src/pages/spec/tokens/string.mdx +++ b/src/pages/spec/tokens/string.mdx @@ -2,7 +2,8 @@ layout: "../_wrapper.astro" title: String --- -import Code from "@/components/Code.astro" + +import Code from "@/components/Code.astro"; # String @@ -20,11 +21,13 @@ escape_seq = "\n" string_char = any_unicode_except_newline_and_double_quote ``` - +`} +/> `TODO`: String interpolation diff --git a/src/pages/spec/tokens/tokens.md b/src/pages/spec/tokens/tokens.md index e89f1b8..09efa83 100644 --- a/src/pages/spec/tokens/tokens.md +++ b/src/pages/spec/tokens/tokens.md @@ -34,5 +34,3 @@ pub enum TokenType { ``` Every keyword has its own token. - - diff --git a/tailwind.config.mjs b/tailwind.config.mjs index 6333394..3f6e4c6 100644 --- a/tailwind.config.mjs +++ b/tailwind.config.mjs @@ -1,64 +1,64 @@ /** @type {import('tailwindcss').Config} */ export default { - content: ['./src/**/*.{astro,html,js,jsx,md,mdx,ts,tsx}'], - theme: { - extend: { - colors: { - "c-thp": "var(--c-thp)", - "c-bg": "var(--c-bg)", - "c-text": "var(--c-text)", - "c-text-2": "var(--c-text-2)", - "c-purple": "var(--c-purple)", - "c-border-1": "var(--c-border-1)", - "c-purple-light": "var(--c-purple-light)", - "c-box-shadow": "var(--c-box-shadow)", - "c-ping": "var(--c-pink)", - "c-background-2": "var(--c-background-2)", - "c-primary": "var(--c-primary)", - "c-secondary": "var(--c-secondary)", - "c-nav-bg": "var(--c-nav-bg)", - } - }, - fontFamily: { - "mono": "var(--font-code)", - "display": "var(--font-display)", - "body": "var(--font-body)", - }, - }, - corePlugins: { - container: false + content: ["./src/**/*.{astro,html,js,jsx,md,mdx,ts,tsx}"], + theme: { + extend: { + colors: { + "c-thp": "var(--c-thp)", + "c-bg": "var(--c-bg)", + "c-text": "var(--c-text)", + "c-text-2": "var(--c-text-2)", + "c-purple": "var(--c-purple)", + "c-border-1": "var(--c-border-1)", + "c-purple-light": "var(--c-purple-light)", + "c-box-shadow": "var(--c-box-shadow)", + "c-ping": "var(--c-pink)", + "c-background-2": "var(--c-background-2)", + "c-primary": "var(--c-primary)", + "c-secondary": "var(--c-secondary)", + "c-nav-bg": "var(--c-nav-bg)", + }, }, - plugins: [ - function ({ addComponents }) { - addComponents({ - '.container': { - width: '98%', - '@screen sm': { - maxWidth: '640px', - }, - '@screen md': { - maxWidth: '768px', - }, - '@screen lg': { - maxWidth: '1024px', - }, - '@screen xl': { - maxWidth: '1400px', - }, - }, - '.small-container': { - width: '98%', - '@screen sm': { - maxWidth: '640px', - }, - '@screen md': { - maxWidth: '768px', - }, - '@screen lg': { - maxWidth: 'inherit', - }, - } - }) - } - ], -} + fontFamily: { + mono: "var(--font-code)", + display: "var(--font-display)", + body: "var(--font-body)", + }, + }, + corePlugins: { + container: false, + }, + plugins: [ + function ({ addComponents }) { + addComponents({ + ".container": { + width: "98%", + "@screen sm": { + maxWidth: "640px", + }, + "@screen md": { + maxWidth: "768px", + }, + "@screen lg": { + maxWidth: "1024px", + }, + "@screen xl": { + maxWidth: "1400px", + }, + }, + ".small-container": { + width: "98%", + "@screen sm": { + maxWidth: "640px", + }, + "@screen md": { + maxWidth: "768px", + }, + "@screen lg": { + maxWidth: "inherit", + }, + }, + }); + }, + ], +}; diff --git a/tsconfig.json b/tsconfig.json index f58a004..b027619 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "@/*": ["src/*"], + "@/*": ["src/*"] } } }