├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── LICENSE ├── README.md ├── astro.config.mjs ├── package.json ├── pnpm-lock.yaml ├── public └── img │ └── favicon.png ├── src ├── components │ ├── Age.jsx │ ├── ResearchProjectName.jsx │ └── Stars.jsx ├── layouts │ └── Layout.astro ├── pages │ ├── index.mdx │ └── thoughts │ │ ├── index.astro │ │ ├── isef.mdx │ │ └── virtual-dom.md └── styles │ └── global.css └── vercel.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.yaml -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 65, 3 | "semi": true, 4 | "singleQuote": true, 5 | "tabWidth": 2, 6 | "trailingComma": "es5" 7 | } 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Aiden Bai 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [**aidenybai.com**](https://aidenybai.com) 2 | -------------------------------------------------------------------------------- /astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'astro/config'; 2 | import solid from '@astrojs/solid-js'; 3 | import mdx from "@astrojs/mdx"; 4 | 5 | // https://astro.build/config 6 | export default defineConfig({ 7 | site: 'https://aidenybai.com', 8 | sitemap: true, 9 | integrations: [solid(), mdx()], 10 | markdown: { 11 | remarkPlugins: [], 12 | shikiConfig: { 13 | theme: 'dracula-soft', 14 | wrap: true 15 | } 16 | } 17 | }); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "astro dev", 5 | "start": "astro dev", 6 | "build": "astro build", 7 | "preview": "astro preview", 8 | "cleanup": "prettier -w ." 9 | }, 10 | "devDependencies": { 11 | "@astrojs/mdx": "^0.8.0", 12 | "@astrojs/solid-js": "^0.1.2", 13 | "astro": "1.0.1", 14 | "date-fns": "^2.28.0", 15 | "micromorph": "^0.2.1", 16 | "prettier": "^2.6.2", 17 | "prettier-plugin-astro": "^0.0.12", 18 | "remark-html-katex": "^4.0.1", 19 | "remark-latex": "^0.12.12", 20 | "remark-math": "^5.1.1", 21 | "solid": "^0.2.1", 22 | "vite": "^2.9.5" 23 | }, 24 | "dependencies": { 25 | "million": "1.12.3-beta.7", 26 | "solid-js": "^1.3.15" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@astrojs/mdx': ^0.8.0 5 | '@astrojs/solid-js': ^0.1.2 6 | astro: 1.0.1 7 | date-fns: ^2.28.0 8 | micromorph: ^0.2.1 9 | million: 1.12.3-beta.7 10 | prettier: ^2.6.2 11 | prettier-plugin-astro: ^0.0.12 12 | remark-html-katex: ^4.0.1 13 | remark-latex: ^0.12.12 14 | remark-math: ^5.1.1 15 | solid: ^0.2.1 16 | solid-js: ^1.3.15 17 | vite: ^2.9.5 18 | 19 | dependencies: 20 | million: 1.12.3-beta.7 21 | solid-js: 1.4.8 22 | 23 | devDependencies: 24 | '@astrojs/mdx': 0.8.0 25 | '@astrojs/solid-js': 0.1.4_solid-js@1.4.8 26 | astro: 1.0.1 27 | date-fns: 2.29.1 28 | micromorph: 0.2.2 29 | prettier: 2.7.1 30 | prettier-plugin-astro: 0.0.12 31 | remark-html-katex: 4.0.1 32 | remark-latex: 0.12.12 33 | remark-math: 5.1.1 34 | solid: 0.2.1 35 | vite: 2.9.14 36 | 37 | packages: 38 | 39 | /@ampproject/remapping/2.2.0: 40 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} 41 | engines: {node: '>=6.0.0'} 42 | dependencies: 43 | '@jridgewell/gen-mapping': 0.1.1 44 | '@jridgewell/trace-mapping': 0.3.14 45 | dev: true 46 | 47 | /@astrojs/compiler/0.23.1: 48 | resolution: {integrity: sha512-KsoDrASGwTKZoWXbjy8SlIeoDv7y1OfBJtHVLuPuzhConA8e0SZpGzFqIuVRfG4bhisSTptZLDQZ7oxwgPv2jA==} 49 | dev: true 50 | 51 | /@astrojs/language-server/0.20.3: 52 | resolution: {integrity: sha512-MuzTsSpUjtmMXfrBThtZwgO39Jc+Bbl5hLevumkp01N/YCKE+Iipd3ELSdbk7+TPiuBV+/SKrVmaQPvJBnWPkA==} 53 | hasBin: true 54 | dependencies: 55 | '@vscode/emmet-helper': 2.8.4 56 | source-map: 0.7.4 57 | typescript: 4.6.4 58 | vscode-css-languageservice: 6.0.1 59 | vscode-html-languageservice: 5.0.1 60 | vscode-languageserver: 8.0.2 61 | vscode-languageserver-protocol: 3.17.2 62 | vscode-languageserver-textdocument: 1.0.5 63 | vscode-languageserver-types: 3.17.2 64 | vscode-uri: 3.0.3 65 | dev: true 66 | 67 | /@astrojs/markdown-remark/1.0.0: 68 | resolution: {integrity: sha512-yQIMvVjSMs4ZQHffT2nBgXiqVHKOwIgd6xC0o5XkcbXxyspxjRGpHyiAp/WKEdKsUeXwjVuL8b+6lhAYByd+lw==} 69 | dependencies: 70 | '@astrojs/micromark-extension-mdx-jsx': 1.0.3 71 | '@astrojs/prism': 1.0.0 72 | acorn: 8.8.0 73 | acorn-jsx: 5.3.2_acorn@8.8.0 74 | github-slugger: 1.4.0 75 | mdast-util-mdx-expression: 1.3.0 76 | mdast-util-mdx-jsx: 1.2.0 77 | micromark-extension-mdx-expression: 1.0.3 78 | micromark-extension-mdx-md: 1.0.0 79 | micromark-util-combine-extensions: 1.0.0 80 | rehype-raw: 6.1.1 81 | rehype-stringify: 9.0.3 82 | remark-gfm: 3.0.1 83 | remark-parse: 10.0.1 84 | remark-rehype: 10.1.0 85 | remark-smartypants: 2.0.0 86 | shiki: 0.10.1 87 | unified: 10.1.2 88 | unist-util-map: 3.1.1 89 | unist-util-visit: 4.1.0 90 | vfile: 5.3.4 91 | transitivePeerDependencies: 92 | - supports-color 93 | dev: true 94 | 95 | /@astrojs/mdx/0.8.0: 96 | resolution: {integrity: sha512-KM5O7nnAxADoDuTRSVQTQ6xBYo8a4ZMEAADOdf9yWWTrNHLC97IN0bBAKRLKDVRpI5dBCpEvBmwwXcDHel5pBQ==} 97 | engines: {node: ^14.18.0 || >=16.12.0} 98 | dependencies: 99 | '@astrojs/prism': 0.7.0 100 | '@mdx-js/mdx': 2.1.2 101 | '@mdx-js/rollup': 2.1.2 102 | acorn: 8.8.0 103 | es-module-lexer: 0.10.5 104 | github-slugger: 1.4.0 105 | gray-matter: 4.0.3 106 | rehype-raw: 6.1.1 107 | remark-frontmatter: 4.0.1 108 | remark-gfm: 3.0.1 109 | remark-shiki-twoslash: 3.1.0 110 | remark-smartypants: 2.0.0 111 | shiki: 0.10.1 112 | unist-util-visit: 4.1.0 113 | vfile: 5.3.4 114 | transitivePeerDependencies: 115 | - rollup 116 | - supports-color 117 | dev: true 118 | 119 | /@astrojs/micromark-extension-mdx-jsx/1.0.3: 120 | resolution: {integrity: sha512-O15+i2DGG0qb1R/1SYbFXgOKDGbYdV8iJMtuboVb1S9YFQfMOJxaCMco0bhXQI7PmZcQ4pZWIjT5oZ64dXUtRA==} 121 | dependencies: 122 | '@types/acorn': 4.0.6 123 | estree-util-is-identifier-name: 2.0.1 124 | micromark-factory-mdx-expression: 1.0.6 125 | micromark-factory-space: 1.0.0 126 | micromark-util-character: 1.1.0 127 | micromark-util-symbol: 1.0.1 128 | micromark-util-types: 1.0.2 129 | uvu: 0.5.6 130 | vfile-message: 3.1.2 131 | dev: true 132 | 133 | /@astrojs/parser/0.22.2: 134 | resolution: {integrity: sha512-j4p5a1BXDObVsrNyDvooJQPWoomb0WZk63rKeE3MaZcqq4g9x50sqq+EPMkesgDvCcWFgHSo07i4y1Do3Qj69A==} 135 | engines: {node: ^14.15.0 || >=16.0.0, npm: '>=6.14.0'} 136 | deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. 137 | dependencies: 138 | '@types/node': 14.18.23 139 | acorn: 8.8.0 140 | locate-character: 2.0.5 141 | magic-string: 0.25.9 142 | dev: true 143 | 144 | /@astrojs/prism/0.7.0: 145 | resolution: {integrity: sha512-5gh4BL9BlgCKBru0crQI3Y7GQCCC389wLBy+0yPnfss/pA0rVgCupRnGcs3oinsRopymOlNblEDfJXdTbCWEtg==} 146 | engines: {node: ^14.18.0 || >=16.12.0} 147 | dependencies: 148 | prismjs: 1.28.0 149 | dev: true 150 | 151 | /@astrojs/prism/1.0.0: 152 | resolution: {integrity: sha512-hRsHDw/y4p7bFpq9XSeDTJtIvhdajU5ZahfAh+n9I7VKsKUHTYI3xTkImcXgkkUoEWs6UI0gk4GgJjiiLEgfYQ==} 153 | engines: {node: ^14.18.0 || >=16.12.0} 154 | dependencies: 155 | prismjs: 1.28.0 156 | dev: true 157 | 158 | /@astrojs/solid-js/0.1.4_solid-js@1.4.8: 159 | resolution: {integrity: sha512-S1zwugChY0aZFJZc4D3HsEFqhDeOAnAt4MT6876JkPVoCRWne6ZrBZ7B8tZhUYeN5NfQ+Q+CwchODKjvysO6Ww==} 160 | engines: {node: ^14.15.0 || >=16.0.0} 161 | peerDependencies: 162 | solid-js: ^1.3.6 163 | dependencies: 164 | babel-preset-solid: 1.4.8 165 | solid-js: 1.4.8 166 | transitivePeerDependencies: 167 | - '@babel/core' 168 | dev: true 169 | 170 | /@astrojs/telemetry/1.0.0: 171 | resolution: {integrity: sha512-a8edSHK2CpWrGubLp2RR2D/uC9Paa614hQM/lS4In2lhmcCjaQA9ZyYT6l44peuDwUNt1V82DqXk3TFiDBWM8g==} 172 | engines: {node: ^14.18.0 || >=16.12.0} 173 | dependencies: 174 | ci-info: 3.3.2 175 | debug: 4.3.4 176 | dlv: 1.1.3 177 | dset: 3.1.2 178 | is-docker: 3.0.0 179 | is-wsl: 2.2.0 180 | node-fetch: 3.2.10 181 | which-pm-runs: 1.1.0 182 | transitivePeerDependencies: 183 | - supports-color 184 | dev: true 185 | 186 | /@astrojs/webapi/1.0.0: 187 | resolution: {integrity: sha512-+klQ75oQbRdAMEbvAgrKE14hxh6GVHsQWZE4j/eJ2qhnvMSu7pw13MVQtFaAV96+pUkcYSjwWd1k+Oxoxkuo3g==} 188 | dependencies: 189 | node-fetch: 3.2.10 190 | dev: true 191 | 192 | /@babel/code-frame/7.18.6: 193 | resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} 194 | engines: {node: '>=6.9.0'} 195 | dependencies: 196 | '@babel/highlight': 7.18.6 197 | dev: true 198 | 199 | /@babel/compat-data/7.18.8: 200 | resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==} 201 | engines: {node: '>=6.9.0'} 202 | dev: true 203 | 204 | /@babel/core/7.18.10: 205 | resolution: {integrity: sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==} 206 | engines: {node: '>=6.9.0'} 207 | dependencies: 208 | '@ampproject/remapping': 2.2.0 209 | '@babel/code-frame': 7.18.6 210 | '@babel/generator': 7.18.12 211 | '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.10 212 | '@babel/helper-module-transforms': 7.18.9 213 | '@babel/helpers': 7.18.9 214 | '@babel/parser': 7.18.11 215 | '@babel/template': 7.18.10 216 | '@babel/traverse': 7.18.11 217 | '@babel/types': 7.18.10 218 | convert-source-map: 1.8.0 219 | debug: 4.3.4 220 | gensync: 1.0.0-beta.2 221 | json5: 2.2.1 222 | semver: 6.3.0 223 | transitivePeerDependencies: 224 | - supports-color 225 | dev: true 226 | 227 | /@babel/generator/7.18.12: 228 | resolution: {integrity: sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==} 229 | engines: {node: '>=6.9.0'} 230 | dependencies: 231 | '@babel/types': 7.18.10 232 | '@jridgewell/gen-mapping': 0.3.2 233 | jsesc: 2.5.2 234 | dev: true 235 | 236 | /@babel/helper-annotate-as-pure/7.18.6: 237 | resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} 238 | engines: {node: '>=6.9.0'} 239 | dependencies: 240 | '@babel/types': 7.18.10 241 | dev: true 242 | 243 | /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.10: 244 | resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==} 245 | engines: {node: '>=6.9.0'} 246 | peerDependencies: 247 | '@babel/core': ^7.0.0 248 | dependencies: 249 | '@babel/compat-data': 7.18.8 250 | '@babel/core': 7.18.10 251 | '@babel/helper-validator-option': 7.18.6 252 | browserslist: 4.21.3 253 | semver: 6.3.0 254 | dev: true 255 | 256 | /@babel/helper-environment-visitor/7.18.9: 257 | resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} 258 | engines: {node: '>=6.9.0'} 259 | dev: true 260 | 261 | /@babel/helper-function-name/7.18.9: 262 | resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==} 263 | engines: {node: '>=6.9.0'} 264 | dependencies: 265 | '@babel/template': 7.18.10 266 | '@babel/types': 7.18.10 267 | dev: true 268 | 269 | /@babel/helper-hoist-variables/7.18.6: 270 | resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} 271 | engines: {node: '>=6.9.0'} 272 | dependencies: 273 | '@babel/types': 7.18.10 274 | dev: true 275 | 276 | /@babel/helper-module-imports/7.16.0: 277 | resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==} 278 | engines: {node: '>=6.9.0'} 279 | dependencies: 280 | '@babel/types': 7.18.10 281 | dev: true 282 | 283 | /@babel/helper-module-imports/7.18.6: 284 | resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} 285 | engines: {node: '>=6.9.0'} 286 | dependencies: 287 | '@babel/types': 7.18.10 288 | dev: true 289 | 290 | /@babel/helper-module-transforms/7.18.9: 291 | resolution: {integrity: sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==} 292 | engines: {node: '>=6.9.0'} 293 | dependencies: 294 | '@babel/helper-environment-visitor': 7.18.9 295 | '@babel/helper-module-imports': 7.18.6 296 | '@babel/helper-simple-access': 7.18.6 297 | '@babel/helper-split-export-declaration': 7.18.6 298 | '@babel/helper-validator-identifier': 7.18.6 299 | '@babel/template': 7.18.10 300 | '@babel/traverse': 7.18.11 301 | '@babel/types': 7.18.10 302 | transitivePeerDependencies: 303 | - supports-color 304 | dev: true 305 | 306 | /@babel/helper-plugin-utils/7.18.9: 307 | resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==} 308 | engines: {node: '>=6.9.0'} 309 | dev: true 310 | 311 | /@babel/helper-simple-access/7.18.6: 312 | resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} 313 | engines: {node: '>=6.9.0'} 314 | dependencies: 315 | '@babel/types': 7.18.10 316 | dev: true 317 | 318 | /@babel/helper-split-export-declaration/7.18.6: 319 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} 320 | engines: {node: '>=6.9.0'} 321 | dependencies: 322 | '@babel/types': 7.18.10 323 | dev: true 324 | 325 | /@babel/helper-string-parser/7.18.10: 326 | resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} 327 | engines: {node: '>=6.9.0'} 328 | dev: true 329 | 330 | /@babel/helper-validator-identifier/7.18.6: 331 | resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} 332 | engines: {node: '>=6.9.0'} 333 | dev: true 334 | 335 | /@babel/helper-validator-option/7.18.6: 336 | resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} 337 | engines: {node: '>=6.9.0'} 338 | dev: true 339 | 340 | /@babel/helpers/7.18.9: 341 | resolution: {integrity: sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==} 342 | engines: {node: '>=6.9.0'} 343 | dependencies: 344 | '@babel/template': 7.18.10 345 | '@babel/traverse': 7.18.11 346 | '@babel/types': 7.18.10 347 | transitivePeerDependencies: 348 | - supports-color 349 | dev: true 350 | 351 | /@babel/highlight/7.18.6: 352 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 353 | engines: {node: '>=6.9.0'} 354 | dependencies: 355 | '@babel/helper-validator-identifier': 7.18.6 356 | chalk: 2.4.2 357 | js-tokens: 4.0.0 358 | dev: true 359 | 360 | /@babel/parser/7.18.11: 361 | resolution: {integrity: sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==} 362 | engines: {node: '>=6.0.0'} 363 | hasBin: true 364 | dependencies: 365 | '@babel/types': 7.18.10 366 | dev: true 367 | 368 | /@babel/plugin-syntax-jsx/7.18.6: 369 | resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} 370 | engines: {node: '>=6.9.0'} 371 | peerDependencies: 372 | '@babel/core': ^7.0.0-0 373 | dependencies: 374 | '@babel/helper-plugin-utils': 7.18.9 375 | dev: true 376 | 377 | /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.18.10: 378 | resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} 379 | engines: {node: '>=6.9.0'} 380 | peerDependencies: 381 | '@babel/core': ^7.0.0-0 382 | dependencies: 383 | '@babel/core': 7.18.10 384 | '@babel/helper-plugin-utils': 7.18.9 385 | dev: true 386 | 387 | /@babel/plugin-transform-react-jsx/7.18.10_@babel+core@7.18.10: 388 | resolution: {integrity: sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==} 389 | engines: {node: '>=6.9.0'} 390 | peerDependencies: 391 | '@babel/core': ^7.0.0-0 392 | dependencies: 393 | '@babel/core': 7.18.10 394 | '@babel/helper-annotate-as-pure': 7.18.6 395 | '@babel/helper-module-imports': 7.18.6 396 | '@babel/helper-plugin-utils': 7.18.9 397 | '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.10 398 | '@babel/types': 7.18.10 399 | dev: true 400 | 401 | /@babel/template/7.18.10: 402 | resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} 403 | engines: {node: '>=6.9.0'} 404 | dependencies: 405 | '@babel/code-frame': 7.18.6 406 | '@babel/parser': 7.18.11 407 | '@babel/types': 7.18.10 408 | dev: true 409 | 410 | /@babel/traverse/7.18.11: 411 | resolution: {integrity: sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==} 412 | engines: {node: '>=6.9.0'} 413 | dependencies: 414 | '@babel/code-frame': 7.18.6 415 | '@babel/generator': 7.18.12 416 | '@babel/helper-environment-visitor': 7.18.9 417 | '@babel/helper-function-name': 7.18.9 418 | '@babel/helper-hoist-variables': 7.18.6 419 | '@babel/helper-split-export-declaration': 7.18.6 420 | '@babel/parser': 7.18.11 421 | '@babel/types': 7.18.10 422 | debug: 4.3.4 423 | globals: 11.12.0 424 | transitivePeerDependencies: 425 | - supports-color 426 | dev: true 427 | 428 | /@babel/types/7.18.10: 429 | resolution: {integrity: sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==} 430 | engines: {node: '>=6.9.0'} 431 | dependencies: 432 | '@babel/helper-string-parser': 7.18.10 433 | '@babel/helper-validator-identifier': 7.18.6 434 | to-fast-properties: 2.0.0 435 | dev: true 436 | 437 | /@emmetio/abbreviation/2.2.3: 438 | resolution: {integrity: sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==} 439 | dependencies: 440 | '@emmetio/scanner': 1.0.0 441 | dev: true 442 | 443 | /@emmetio/css-abbreviation/2.1.4: 444 | resolution: {integrity: sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==} 445 | dependencies: 446 | '@emmetio/scanner': 1.0.0 447 | dev: true 448 | 449 | /@emmetio/scanner/1.0.0: 450 | resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==} 451 | dev: true 452 | 453 | /@esbuild/linux-loong64/0.14.54: 454 | resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} 455 | engines: {node: '>=12'} 456 | cpu: [loong64] 457 | os: [linux] 458 | requiresBuild: true 459 | dev: true 460 | optional: true 461 | 462 | /@jridgewell/gen-mapping/0.1.1: 463 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} 464 | engines: {node: '>=6.0.0'} 465 | dependencies: 466 | '@jridgewell/set-array': 1.1.2 467 | '@jridgewell/sourcemap-codec': 1.4.14 468 | dev: true 469 | 470 | /@jridgewell/gen-mapping/0.3.2: 471 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} 472 | engines: {node: '>=6.0.0'} 473 | dependencies: 474 | '@jridgewell/set-array': 1.1.2 475 | '@jridgewell/sourcemap-codec': 1.4.14 476 | '@jridgewell/trace-mapping': 0.3.14 477 | dev: true 478 | 479 | /@jridgewell/resolve-uri/3.1.0: 480 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 481 | engines: {node: '>=6.0.0'} 482 | dev: true 483 | 484 | /@jridgewell/set-array/1.1.2: 485 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 486 | engines: {node: '>=6.0.0'} 487 | dev: true 488 | 489 | /@jridgewell/sourcemap-codec/1.4.14: 490 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 491 | dev: true 492 | 493 | /@jridgewell/trace-mapping/0.3.14: 494 | resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} 495 | dependencies: 496 | '@jridgewell/resolve-uri': 3.1.0 497 | '@jridgewell/sourcemap-codec': 1.4.14 498 | dev: true 499 | 500 | /@ljharb/has-package-exports-patterns/0.0.2: 501 | resolution: {integrity: sha512-4/RWEeXDO6bocPONheFe6gX/oQdP/bEpv0oL4HqjPP5DCenBSt0mHgahppY49N0CpsaqffdwPq+TlX9CYOq2Dw==} 502 | dev: true 503 | 504 | /@mdx-js/mdx/2.1.2: 505 | resolution: {integrity: sha512-ASN1GUH0gXsgJ2UD/Td7FzJo1SwFkkQ5V1i9at5o/ROra7brkyMcBsotsOWJWRzmXZaLw2uXWn4aN8B3PMNFMA==} 506 | dependencies: 507 | '@types/estree-jsx': 0.0.1 508 | '@types/mdx': 2.0.2 509 | astring: 1.8.3 510 | estree-util-build-jsx: 2.2.0 511 | estree-util-is-identifier-name: 2.0.1 512 | estree-walker: 3.0.1 513 | hast-util-to-estree: 2.1.0 514 | markdown-extensions: 1.1.1 515 | periscopic: 3.0.4 516 | remark-mdx: 2.1.2 517 | remark-parse: 10.0.1 518 | remark-rehype: 10.1.0 519 | unified: 10.1.2 520 | unist-util-position-from-estree: 1.1.1 521 | unist-util-stringify-position: 3.0.2 522 | unist-util-visit: 4.1.0 523 | vfile: 5.3.4 524 | transitivePeerDependencies: 525 | - supports-color 526 | dev: true 527 | 528 | /@mdx-js/rollup/2.1.2: 529 | resolution: {integrity: sha512-3ahqp3DCpIlGlCRuLX4z7dFEgN5kWBljrk8BpipiWkVrvB4FQpTQu1T7lmDffm8tOunjHAsZEHtb076HiW51NQ==} 530 | peerDependencies: 531 | rollup: '>=2' 532 | dependencies: 533 | '@mdx-js/mdx': 2.1.2 534 | '@rollup/pluginutils': 4.2.1 535 | source-map: 0.7.4 536 | vfile: 5.3.4 537 | transitivePeerDependencies: 538 | - supports-color 539 | dev: true 540 | 541 | /@nodelib/fs.scandir/2.1.5: 542 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 543 | engines: {node: '>= 8'} 544 | dependencies: 545 | '@nodelib/fs.stat': 2.0.5 546 | run-parallel: 1.2.0 547 | dev: true 548 | 549 | /@nodelib/fs.stat/2.0.5: 550 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 551 | engines: {node: '>= 8'} 552 | dev: true 553 | 554 | /@nodelib/fs.walk/1.2.8: 555 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 556 | engines: {node: '>= 8'} 557 | dependencies: 558 | '@nodelib/fs.scandir': 2.1.5 559 | fastq: 1.13.0 560 | dev: true 561 | 562 | /@polka/url/1.0.0-next.21: 563 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} 564 | dev: true 565 | 566 | /@proload/core/0.3.2: 567 | resolution: {integrity: sha512-4ga4HpS0ieVYWVMS+F62W++6SNACBu0lkw8snw3tEdH6AeqZu8i8262n3I81jWAWXVcg3sMfhb+kBexrfGrTUQ==} 568 | dependencies: 569 | deepmerge: 4.2.2 570 | escalade: 3.1.1 571 | dev: true 572 | 573 | /@proload/plugin-tsm/0.2.1_@proload+core@0.3.2: 574 | resolution: {integrity: sha512-Ex1sL2BxU+g8MHdAdq9SZKz+pU34o8Zcl9PHWo2WaG9hrnlZme607PU6gnpoAYsDBpHX327+eu60wWUk+d/b+A==} 575 | peerDependencies: 576 | '@proload/core': ^0.3.2 577 | dependencies: 578 | '@proload/core': 0.3.2 579 | tsm: 2.2.2 580 | dev: true 581 | 582 | /@rollup/pluginutils/4.2.1: 583 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 584 | engines: {node: '>= 8.0.0'} 585 | dependencies: 586 | estree-walker: 2.0.2 587 | picomatch: 2.3.1 588 | dev: true 589 | 590 | /@types/acorn/4.0.6: 591 | resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} 592 | dependencies: 593 | '@types/estree': 1.0.0 594 | dev: true 595 | 596 | /@types/debug/4.1.7: 597 | resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} 598 | dependencies: 599 | '@types/ms': 0.7.31 600 | dev: true 601 | 602 | /@types/estree-jsx/0.0.1: 603 | resolution: {integrity: sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==} 604 | dependencies: 605 | '@types/estree': 1.0.0 606 | dev: true 607 | 608 | /@types/estree-jsx/1.0.0: 609 | resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} 610 | dependencies: 611 | '@types/estree': 1.0.0 612 | dev: true 613 | 614 | /@types/estree/1.0.0: 615 | resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} 616 | dev: true 617 | 618 | /@types/hast/2.3.4: 619 | resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} 620 | dependencies: 621 | '@types/unist': 2.0.6 622 | dev: true 623 | 624 | /@types/json5/0.0.30: 625 | resolution: {integrity: sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==} 626 | dev: true 627 | 628 | /@types/katex/0.11.1: 629 | resolution: {integrity: sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg==} 630 | dev: true 631 | 632 | /@types/mdast/3.0.10: 633 | resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} 634 | dependencies: 635 | '@types/unist': 2.0.6 636 | dev: true 637 | 638 | /@types/mdurl/1.0.2: 639 | resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} 640 | dev: true 641 | 642 | /@types/mdx/2.0.2: 643 | resolution: {integrity: sha512-mJGfgj4aWpiKb8C0nnJJchs1sHBHn0HugkVfqqyQi7Wn6mBRksLeQsPOFvih/Pu8L1vlDzfe/LidhVHBeUk3aQ==} 644 | dev: true 645 | 646 | /@types/ms/0.7.31: 647 | resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} 648 | dev: true 649 | 650 | /@types/nlcst/1.0.0: 651 | resolution: {integrity: sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==} 652 | dependencies: 653 | '@types/unist': 2.0.6 654 | dev: true 655 | 656 | /@types/node/14.18.23: 657 | resolution: {integrity: sha512-MhbCWN18R4GhO8ewQWAFK4TGQdBpXWByukz7cWyJmXhvRuCIaM/oWytGPqVmDzgEnnaIc9ss6HbU5mUi+vyZPA==} 658 | dev: true 659 | 660 | /@types/node/18.6.5: 661 | resolution: {integrity: sha512-Xjt5ZGUa5WusGZJ4WJPbOT8QOqp6nDynVFRKcUt32bOgvXEoc6o085WNkYTMO7ifAj2isEfQQ2cseE+wT6jsRw==} 662 | dev: true 663 | 664 | /@types/parse5/6.0.3: 665 | resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} 666 | dev: true 667 | 668 | /@types/resolve/1.20.2: 669 | resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 670 | dev: true 671 | 672 | /@types/unist/2.0.6: 673 | resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} 674 | dev: true 675 | 676 | /@types/vfile-message/2.0.0: 677 | resolution: {integrity: sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==} 678 | deprecated: This is a stub types definition. vfile-message provides its own type definitions, so you do not need this installed. 679 | dependencies: 680 | vfile-message: 3.1.2 681 | dev: true 682 | 683 | /@types/vfile/3.0.2: 684 | resolution: {integrity: sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==} 685 | dependencies: 686 | '@types/node': 18.6.5 687 | '@types/unist': 2.0.6 688 | '@types/vfile-message': 2.0.0 689 | dev: true 690 | 691 | /@typescript/twoslash/3.1.0: 692 | resolution: {integrity: sha512-kTwMUQ8xtAZaC4wb2XuLkPqFVBj2dNBueMQ89NWEuw87k2nLBbuafeG5cob/QEr6YduxIdTVUjix0MtC7mPlmg==} 693 | dependencies: 694 | '@typescript/vfs': 1.3.5 695 | debug: 4.3.4 696 | lz-string: 1.4.4 697 | transitivePeerDependencies: 698 | - supports-color 699 | dev: true 700 | 701 | /@typescript/vfs/1.3.4: 702 | resolution: {integrity: sha512-RbyJiaAGQPIcAGWFa3jAXSuAexU4BFiDRF1g3hy7LmRqfNpYlTQWGXjcrOaVZjJ8YkkpuwG0FcsYvtWQpd9igQ==} 703 | dependencies: 704 | debug: 4.3.4 705 | transitivePeerDependencies: 706 | - supports-color 707 | dev: true 708 | 709 | /@typescript/vfs/1.3.5: 710 | resolution: {integrity: sha512-pI8Saqjupf9MfLw7w2+og+fmb0fZS0J6vsKXXrp4/PDXEFvntgzXmChCXC/KefZZS0YGS6AT8e0hGAJcTsdJlg==} 711 | dependencies: 712 | debug: 4.3.4 713 | transitivePeerDependencies: 714 | - supports-color 715 | dev: true 716 | 717 | /@vscode/emmet-helper/2.8.4: 718 | resolution: {integrity: sha512-lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==} 719 | dependencies: 720 | emmet: 2.3.6 721 | jsonc-parser: 2.3.1 722 | vscode-languageserver-textdocument: 1.0.5 723 | vscode-languageserver-types: 3.17.2 724 | vscode-nls: 5.1.0 725 | vscode-uri: 2.1.2 726 | dev: true 727 | 728 | /acorn-jsx/5.3.2_acorn@8.8.0: 729 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 730 | peerDependencies: 731 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 732 | dependencies: 733 | acorn: 8.8.0 734 | dev: true 735 | 736 | /acorn/8.8.0: 737 | resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} 738 | engines: {node: '>=0.4.0'} 739 | hasBin: true 740 | dev: true 741 | 742 | /ansi-align/3.0.1: 743 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 744 | dependencies: 745 | string-width: 4.2.3 746 | dev: true 747 | 748 | /ansi-regex/5.0.1: 749 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 750 | engines: {node: '>=8'} 751 | dev: true 752 | 753 | /ansi-regex/6.0.1: 754 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 755 | engines: {node: '>=12'} 756 | dev: true 757 | 758 | /ansi-styles/3.2.1: 759 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 760 | engines: {node: '>=4'} 761 | dependencies: 762 | color-convert: 1.9.3 763 | dev: true 764 | 765 | /ansi-styles/4.3.0: 766 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 767 | engines: {node: '>=8'} 768 | dependencies: 769 | color-convert: 2.0.1 770 | dev: true 771 | 772 | /ansi-styles/6.1.0: 773 | resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} 774 | engines: {node: '>=12'} 775 | dev: true 776 | 777 | /argparse/1.0.10: 778 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 779 | dependencies: 780 | sprintf-js: 1.0.3 781 | dev: true 782 | 783 | /array-iterate/1.1.4: 784 | resolution: {integrity: sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA==} 785 | dev: true 786 | 787 | /ast-types/0.14.2: 788 | resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} 789 | engines: {node: '>=4'} 790 | dependencies: 791 | tslib: 2.4.0 792 | dev: true 793 | 794 | /astring/1.8.3: 795 | resolution: {integrity: sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==} 796 | hasBin: true 797 | dev: true 798 | 799 | /astro/1.0.1: 800 | resolution: {integrity: sha512-oQltZ7Yk+ShztRL5NO+nyXVIZqBHjlL6yn6oDeJ/a+6D/rN6KMZQquKP21j87nSwnSnEUjS73EsFsIEvrxG4Tw==} 801 | engines: {node: ^14.18.0 || >=16.12.0, npm: '>=6.14.0'} 802 | hasBin: true 803 | dependencies: 804 | '@astrojs/compiler': 0.23.1 805 | '@astrojs/language-server': 0.20.3 806 | '@astrojs/markdown-remark': 1.0.0 807 | '@astrojs/telemetry': 1.0.0 808 | '@astrojs/webapi': 1.0.0 809 | '@babel/core': 7.18.10 810 | '@babel/generator': 7.18.12 811 | '@babel/parser': 7.18.11 812 | '@babel/plugin-transform-react-jsx': 7.18.10_@babel+core@7.18.10 813 | '@babel/traverse': 7.18.11 814 | '@babel/types': 7.18.10 815 | '@proload/core': 0.3.2 816 | '@proload/plugin-tsm': 0.2.1_@proload+core@0.3.2 817 | ast-types: 0.14.2 818 | boxen: 6.2.1 819 | ci-info: 3.3.2 820 | common-ancestor-path: 1.0.1 821 | debug: 4.3.4 822 | diff: 5.1.0 823 | eol: 0.9.1 824 | es-module-lexer: 0.10.5 825 | esbuild: 0.14.54 826 | execa: 6.1.0 827 | fast-glob: 3.2.11 828 | github-slugger: 1.4.0 829 | gray-matter: 4.0.3 830 | html-entities: 2.3.3 831 | html-escaper: 3.0.3 832 | kleur: 4.1.5 833 | magic-string: 0.25.9 834 | mime: 3.0.0 835 | ora: 6.1.2 836 | path-browserify: 1.0.1 837 | path-to-regexp: 6.2.1 838 | postcss: 8.4.16 839 | postcss-load-config: 3.1.4_postcss@8.4.16 840 | preferred-pm: 3.0.3 841 | prompts: 2.4.2 842 | recast: 0.20.5 843 | rehype: 12.0.1 844 | resolve: 1.22.1 845 | rollup: 2.77.2 846 | semver: 7.3.7 847 | shiki: 0.10.1 848 | sirv: 2.0.2 849 | slash: 4.0.0 850 | string-width: 5.1.2 851 | strip-ansi: 7.0.1 852 | supports-esm: 1.0.0 853 | tsconfig-resolver: 3.0.1 854 | unist-util-visit: 4.1.0 855 | vfile: 5.3.4 856 | vite: 3.0.4 857 | yargs-parser: 21.1.1 858 | zod: 3.17.10 859 | transitivePeerDependencies: 860 | - less 861 | - sass 862 | - stylus 863 | - supports-color 864 | - terser 865 | - ts-node 866 | dev: true 867 | 868 | /babel-plugin-jsx-dom-expressions/0.33.14: 869 | resolution: {integrity: sha512-91T8uEz6Wb42bUm5vxRBawY05fBHiwUxah/xWBimuWpH3nf7E0KJ0Wm/s8R7lxRIZzwGCILv1IBlUCqA50WOVw==} 870 | peerDependencies: 871 | '@babel/core': ^7.0.0 872 | dependencies: 873 | '@babel/helper-module-imports': 7.16.0 874 | '@babel/plugin-syntax-jsx': 7.18.6 875 | '@babel/types': 7.18.10 876 | html-entities: 2.3.2 877 | dev: true 878 | 879 | /babel-preset-solid/1.4.8: 880 | resolution: {integrity: sha512-Qv1yoE7yIux68egUsUUEV26t7B0KLNyXKz1MTk89GJDc6mt+2s7+lDVr4tXa29PTZ/hXDTu2uLbEN/1OtmFFBg==} 881 | peerDependencies: 882 | '@babel/core': ^7.0.0 883 | dependencies: 884 | babel-plugin-jsx-dom-expressions: 0.33.14 885 | dev: true 886 | 887 | /bail/1.0.5: 888 | resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} 889 | dev: true 890 | 891 | /bail/2.0.2: 892 | resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 893 | dev: true 894 | 895 | /base64-js/1.5.1: 896 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 897 | dev: true 898 | 899 | /bl/5.0.0: 900 | resolution: {integrity: sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==} 901 | dependencies: 902 | buffer: 6.0.3 903 | inherits: 2.0.4 904 | readable-stream: 3.6.0 905 | dev: true 906 | 907 | /boxen/6.2.1: 908 | resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} 909 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 910 | dependencies: 911 | ansi-align: 3.0.1 912 | camelcase: 6.3.0 913 | chalk: 4.1.2 914 | cli-boxes: 3.0.0 915 | string-width: 5.1.2 916 | type-fest: 2.18.0 917 | widest-line: 4.0.1 918 | wrap-ansi: 8.0.1 919 | dev: true 920 | 921 | /braces/3.0.2: 922 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 923 | engines: {node: '>=8'} 924 | dependencies: 925 | fill-range: 7.0.1 926 | dev: true 927 | 928 | /browserslist/4.21.3: 929 | resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==} 930 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 931 | hasBin: true 932 | dependencies: 933 | caniuse-lite: 1.0.30001374 934 | electron-to-chromium: 1.4.212 935 | node-releases: 2.0.6 936 | update-browserslist-db: 1.0.5_browserslist@4.21.3 937 | dev: true 938 | 939 | /buffer/6.0.3: 940 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 941 | dependencies: 942 | base64-js: 1.5.1 943 | ieee754: 1.2.1 944 | dev: true 945 | 946 | /camelcase/6.3.0: 947 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 948 | engines: {node: '>=10'} 949 | dev: true 950 | 951 | /caniuse-lite/1.0.30001374: 952 | resolution: {integrity: sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==} 953 | dev: true 954 | 955 | /ccount/1.1.0: 956 | resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} 957 | dev: true 958 | 959 | /ccount/2.0.1: 960 | resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 961 | dev: true 962 | 963 | /chalk/2.4.2: 964 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 965 | engines: {node: '>=4'} 966 | dependencies: 967 | ansi-styles: 3.2.1 968 | escape-string-regexp: 1.0.5 969 | supports-color: 5.5.0 970 | dev: true 971 | 972 | /chalk/4.1.2: 973 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 974 | engines: {node: '>=10'} 975 | dependencies: 976 | ansi-styles: 4.3.0 977 | supports-color: 7.2.0 978 | dev: true 979 | 980 | /chalk/5.0.1: 981 | resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} 982 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 983 | dev: true 984 | 985 | /character-entities-html4/1.1.4: 986 | resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} 987 | dev: true 988 | 989 | /character-entities-html4/2.1.0: 990 | resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 991 | dev: true 992 | 993 | /character-entities-legacy/1.1.4: 994 | resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} 995 | dev: true 996 | 997 | /character-entities-legacy/3.0.0: 998 | resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 999 | dev: true 1000 | 1001 | /character-entities/1.2.4: 1002 | resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} 1003 | dev: true 1004 | 1005 | /character-entities/2.0.2: 1006 | resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 1007 | dev: true 1008 | 1009 | /character-reference-invalid/1.1.4: 1010 | resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} 1011 | dev: true 1012 | 1013 | /character-reference-invalid/2.0.1: 1014 | resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} 1015 | dev: true 1016 | 1017 | /ci-info/3.3.2: 1018 | resolution: {integrity: sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==} 1019 | dev: true 1020 | 1021 | /cli-boxes/3.0.0: 1022 | resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 1023 | engines: {node: '>=10'} 1024 | dev: true 1025 | 1026 | /cli-cursor/4.0.0: 1027 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} 1028 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1029 | dependencies: 1030 | restore-cursor: 4.0.0 1031 | dev: true 1032 | 1033 | /cli-spinners/2.7.0: 1034 | resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} 1035 | engines: {node: '>=6'} 1036 | dev: true 1037 | 1038 | /clone/1.0.4: 1039 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} 1040 | engines: {node: '>=0.8'} 1041 | dev: true 1042 | 1043 | /collapse-white-space/1.0.6: 1044 | resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} 1045 | dev: true 1046 | 1047 | /color-convert/1.9.3: 1048 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1049 | dependencies: 1050 | color-name: 1.1.3 1051 | dev: true 1052 | 1053 | /color-convert/2.0.1: 1054 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1055 | engines: {node: '>=7.0.0'} 1056 | dependencies: 1057 | color-name: 1.1.4 1058 | dev: true 1059 | 1060 | /color-name/1.1.3: 1061 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1062 | dev: true 1063 | 1064 | /color-name/1.1.4: 1065 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1066 | dev: true 1067 | 1068 | /comma-separated-tokens/2.0.2: 1069 | resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==} 1070 | dev: true 1071 | 1072 | /commander/8.3.0: 1073 | resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} 1074 | engines: {node: '>= 12'} 1075 | dev: true 1076 | 1077 | /common-ancestor-path/1.0.1: 1078 | resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 1079 | dev: true 1080 | 1081 | /connect/1.9.2: 1082 | resolution: {integrity: sha512-6Z9RPjQOHjaI47gK385djHVv7SEkRm1Y9AAvBhiI7gSXpO5sFktTkAD+dkbcaiEo2xaNlS1KIJU3XRxqbPLx6w==} 1083 | deprecated: connect 1.x series is deprecated 1084 | dependencies: 1085 | formidable: 1.0.17 1086 | mime: 1.2.4 1087 | qs: 0.4.2 1088 | dev: true 1089 | 1090 | /convert-source-map/1.8.0: 1091 | resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} 1092 | dependencies: 1093 | safe-buffer: 5.1.2 1094 | dev: true 1095 | 1096 | /cross-spawn/7.0.3: 1097 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1098 | engines: {node: '>= 8'} 1099 | dependencies: 1100 | path-key: 3.1.1 1101 | shebang-command: 2.0.0 1102 | which: 2.0.2 1103 | dev: true 1104 | 1105 | /data-uri-to-buffer/4.0.0: 1106 | resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} 1107 | engines: {node: '>= 12'} 1108 | dev: true 1109 | 1110 | /date-fns/2.29.1: 1111 | resolution: {integrity: sha512-dlLD5rKaKxpFdnjrs+5azHDFOPEu4ANy/LTh04A1DTzMM7qoajmKCBc8pkKRFT41CNzw+4gQh79X5C+Jq27HAw==} 1112 | engines: {node: '>=0.11'} 1113 | dev: true 1114 | 1115 | /debug/4.3.4: 1116 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1117 | engines: {node: '>=6.0'} 1118 | peerDependencies: 1119 | supports-color: '*' 1120 | peerDependenciesMeta: 1121 | supports-color: 1122 | optional: true 1123 | dependencies: 1124 | ms: 2.1.2 1125 | dev: true 1126 | 1127 | /decode-named-character-reference/1.0.2: 1128 | resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} 1129 | dependencies: 1130 | character-entities: 2.0.2 1131 | dev: true 1132 | 1133 | /deepmerge/4.2.2: 1134 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 1135 | engines: {node: '>=0.10.0'} 1136 | dev: true 1137 | 1138 | /defaults/1.0.3: 1139 | resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==} 1140 | dependencies: 1141 | clone: 1.0.4 1142 | dev: true 1143 | 1144 | /dequal/2.0.3: 1145 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1146 | engines: {node: '>=6'} 1147 | dev: true 1148 | 1149 | /diff/5.1.0: 1150 | resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} 1151 | engines: {node: '>=0.3.1'} 1152 | dev: true 1153 | 1154 | /dlv/1.1.3: 1155 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1156 | dev: true 1157 | 1158 | /dset/3.1.2: 1159 | resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} 1160 | engines: {node: '>=4'} 1161 | dev: true 1162 | 1163 | /eastasianwidth/0.2.0: 1164 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1165 | dev: true 1166 | 1167 | /electron-to-chromium/1.4.212: 1168 | resolution: {integrity: sha512-LjQUg1SpLj2GfyaPDVBUHdhmlDU1vDB4f0mJWSGkISoXQrn5/lH3ECPCuo2Bkvf6Y30wO+b69te+rZK/llZmjg==} 1169 | dev: true 1170 | 1171 | /emmet/2.3.6: 1172 | resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==} 1173 | dependencies: 1174 | '@emmetio/abbreviation': 2.2.3 1175 | '@emmetio/css-abbreviation': 2.1.4 1176 | dev: true 1177 | 1178 | /emoji-regex/8.0.0: 1179 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1180 | dev: true 1181 | 1182 | /emoji-regex/9.2.2: 1183 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1184 | dev: true 1185 | 1186 | /eol/0.9.1: 1187 | resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==} 1188 | dev: true 1189 | 1190 | /es-module-lexer/0.10.5: 1191 | resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==} 1192 | dev: true 1193 | 1194 | /esbuild-android-64/0.14.54: 1195 | resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} 1196 | engines: {node: '>=12'} 1197 | cpu: [x64] 1198 | os: [android] 1199 | requiresBuild: true 1200 | dev: true 1201 | optional: true 1202 | 1203 | /esbuild-android-arm64/0.14.54: 1204 | resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} 1205 | engines: {node: '>=12'} 1206 | cpu: [arm64] 1207 | os: [android] 1208 | requiresBuild: true 1209 | dev: true 1210 | optional: true 1211 | 1212 | /esbuild-darwin-64/0.14.54: 1213 | resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} 1214 | engines: {node: '>=12'} 1215 | cpu: [x64] 1216 | os: [darwin] 1217 | requiresBuild: true 1218 | dev: true 1219 | optional: true 1220 | 1221 | /esbuild-darwin-arm64/0.14.54: 1222 | resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} 1223 | engines: {node: '>=12'} 1224 | cpu: [arm64] 1225 | os: [darwin] 1226 | requiresBuild: true 1227 | dev: true 1228 | optional: true 1229 | 1230 | /esbuild-freebsd-64/0.14.54: 1231 | resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} 1232 | engines: {node: '>=12'} 1233 | cpu: [x64] 1234 | os: [freebsd] 1235 | requiresBuild: true 1236 | dev: true 1237 | optional: true 1238 | 1239 | /esbuild-freebsd-arm64/0.14.54: 1240 | resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} 1241 | engines: {node: '>=12'} 1242 | cpu: [arm64] 1243 | os: [freebsd] 1244 | requiresBuild: true 1245 | dev: true 1246 | optional: true 1247 | 1248 | /esbuild-linux-32/0.14.54: 1249 | resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} 1250 | engines: {node: '>=12'} 1251 | cpu: [ia32] 1252 | os: [linux] 1253 | requiresBuild: true 1254 | dev: true 1255 | optional: true 1256 | 1257 | /esbuild-linux-64/0.14.54: 1258 | resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} 1259 | engines: {node: '>=12'} 1260 | cpu: [x64] 1261 | os: [linux] 1262 | requiresBuild: true 1263 | dev: true 1264 | optional: true 1265 | 1266 | /esbuild-linux-arm/0.14.54: 1267 | resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} 1268 | engines: {node: '>=12'} 1269 | cpu: [arm] 1270 | os: [linux] 1271 | requiresBuild: true 1272 | dev: true 1273 | optional: true 1274 | 1275 | /esbuild-linux-arm64/0.14.54: 1276 | resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} 1277 | engines: {node: '>=12'} 1278 | cpu: [arm64] 1279 | os: [linux] 1280 | requiresBuild: true 1281 | dev: true 1282 | optional: true 1283 | 1284 | /esbuild-linux-mips64le/0.14.54: 1285 | resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} 1286 | engines: {node: '>=12'} 1287 | cpu: [mips64el] 1288 | os: [linux] 1289 | requiresBuild: true 1290 | dev: true 1291 | optional: true 1292 | 1293 | /esbuild-linux-ppc64le/0.14.54: 1294 | resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} 1295 | engines: {node: '>=12'} 1296 | cpu: [ppc64] 1297 | os: [linux] 1298 | requiresBuild: true 1299 | dev: true 1300 | optional: true 1301 | 1302 | /esbuild-linux-riscv64/0.14.54: 1303 | resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} 1304 | engines: {node: '>=12'} 1305 | cpu: [riscv64] 1306 | os: [linux] 1307 | requiresBuild: true 1308 | dev: true 1309 | optional: true 1310 | 1311 | /esbuild-linux-s390x/0.14.54: 1312 | resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} 1313 | engines: {node: '>=12'} 1314 | cpu: [s390x] 1315 | os: [linux] 1316 | requiresBuild: true 1317 | dev: true 1318 | optional: true 1319 | 1320 | /esbuild-netbsd-64/0.14.54: 1321 | resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} 1322 | engines: {node: '>=12'} 1323 | cpu: [x64] 1324 | os: [netbsd] 1325 | requiresBuild: true 1326 | dev: true 1327 | optional: true 1328 | 1329 | /esbuild-openbsd-64/0.14.54: 1330 | resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} 1331 | engines: {node: '>=12'} 1332 | cpu: [x64] 1333 | os: [openbsd] 1334 | requiresBuild: true 1335 | dev: true 1336 | optional: true 1337 | 1338 | /esbuild-sunos-64/0.14.54: 1339 | resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} 1340 | engines: {node: '>=12'} 1341 | cpu: [x64] 1342 | os: [sunos] 1343 | requiresBuild: true 1344 | dev: true 1345 | optional: true 1346 | 1347 | /esbuild-windows-32/0.14.54: 1348 | resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} 1349 | engines: {node: '>=12'} 1350 | cpu: [ia32] 1351 | os: [win32] 1352 | requiresBuild: true 1353 | dev: true 1354 | optional: true 1355 | 1356 | /esbuild-windows-64/0.14.54: 1357 | resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} 1358 | engines: {node: '>=12'} 1359 | cpu: [x64] 1360 | os: [win32] 1361 | requiresBuild: true 1362 | dev: true 1363 | optional: true 1364 | 1365 | /esbuild-windows-arm64/0.14.54: 1366 | resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} 1367 | engines: {node: '>=12'} 1368 | cpu: [arm64] 1369 | os: [win32] 1370 | requiresBuild: true 1371 | dev: true 1372 | optional: true 1373 | 1374 | /esbuild/0.14.54: 1375 | resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} 1376 | engines: {node: '>=12'} 1377 | hasBin: true 1378 | requiresBuild: true 1379 | optionalDependencies: 1380 | '@esbuild/linux-loong64': 0.14.54 1381 | esbuild-android-64: 0.14.54 1382 | esbuild-android-arm64: 0.14.54 1383 | esbuild-darwin-64: 0.14.54 1384 | esbuild-darwin-arm64: 0.14.54 1385 | esbuild-freebsd-64: 0.14.54 1386 | esbuild-freebsd-arm64: 0.14.54 1387 | esbuild-linux-32: 0.14.54 1388 | esbuild-linux-64: 0.14.54 1389 | esbuild-linux-arm: 0.14.54 1390 | esbuild-linux-arm64: 0.14.54 1391 | esbuild-linux-mips64le: 0.14.54 1392 | esbuild-linux-ppc64le: 0.14.54 1393 | esbuild-linux-riscv64: 0.14.54 1394 | esbuild-linux-s390x: 0.14.54 1395 | esbuild-netbsd-64: 0.14.54 1396 | esbuild-openbsd-64: 0.14.54 1397 | esbuild-sunos-64: 0.14.54 1398 | esbuild-windows-32: 0.14.54 1399 | esbuild-windows-64: 0.14.54 1400 | esbuild-windows-arm64: 0.14.54 1401 | dev: true 1402 | 1403 | /escalade/3.1.1: 1404 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1405 | engines: {node: '>=6'} 1406 | dev: true 1407 | 1408 | /escape-latex/1.2.0: 1409 | resolution: {integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==} 1410 | dev: true 1411 | 1412 | /escape-string-regexp/1.0.5: 1413 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1414 | engines: {node: '>=0.8.0'} 1415 | dev: true 1416 | 1417 | /escape-string-regexp/5.0.0: 1418 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 1419 | engines: {node: '>=12'} 1420 | dev: true 1421 | 1422 | /esprima/4.0.1: 1423 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1424 | engines: {node: '>=4'} 1425 | hasBin: true 1426 | dev: true 1427 | 1428 | /estree-util-attach-comments/2.1.0: 1429 | resolution: {integrity: sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw==} 1430 | dependencies: 1431 | '@types/estree': 1.0.0 1432 | dev: true 1433 | 1434 | /estree-util-build-jsx/2.2.0: 1435 | resolution: {integrity: sha512-apsfRxF9uLrqosApvHVtYZjISPvTJ+lBiIydpC+9wE6cF6ssbhnjyQLqaIjgzGxvC2Hbmec1M7g91PoBayYoQQ==} 1436 | dependencies: 1437 | '@types/estree-jsx': 1.0.0 1438 | estree-util-is-identifier-name: 2.0.1 1439 | estree-walker: 3.0.1 1440 | dev: true 1441 | 1442 | /estree-util-is-identifier-name/2.0.1: 1443 | resolution: {integrity: sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==} 1444 | dev: true 1445 | 1446 | /estree-util-visit/1.2.0: 1447 | resolution: {integrity: sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg==} 1448 | dependencies: 1449 | '@types/estree-jsx': 1.0.0 1450 | '@types/unist': 2.0.6 1451 | dev: true 1452 | 1453 | /estree-walker/2.0.2: 1454 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1455 | dev: true 1456 | 1457 | /estree-walker/3.0.1: 1458 | resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==} 1459 | dev: true 1460 | 1461 | /execa/6.1.0: 1462 | resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} 1463 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1464 | dependencies: 1465 | cross-spawn: 7.0.3 1466 | get-stream: 6.0.1 1467 | human-signals: 3.0.1 1468 | is-stream: 3.0.0 1469 | merge-stream: 2.0.0 1470 | npm-run-path: 5.1.0 1471 | onetime: 6.0.0 1472 | signal-exit: 3.0.7 1473 | strip-final-newline: 3.0.0 1474 | dev: true 1475 | 1476 | /express/2.5.11: 1477 | resolution: {integrity: sha512-gc3jJ0P3Bh1Zjkxe0ICSNmjhDvYWKiXfQIdDWuRPr8S4IZAZexzJHjrzNz56LsRKHTL0OiXQq602GfwZjZ8xPQ==} 1478 | deprecated: express 2.x series is deprecated 1479 | hasBin: true 1480 | dependencies: 1481 | connect: 1.9.2 1482 | mime: 1.2.4 1483 | mkdirp: 0.3.0 1484 | qs: 0.4.2 1485 | dev: true 1486 | 1487 | /extend-shallow/2.0.1: 1488 | resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} 1489 | engines: {node: '>=0.10.0'} 1490 | dependencies: 1491 | is-extendable: 0.1.1 1492 | dev: true 1493 | 1494 | /extend/3.0.2: 1495 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1496 | dev: true 1497 | 1498 | /fast-glob/3.2.11: 1499 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 1500 | engines: {node: '>=8.6.0'} 1501 | dependencies: 1502 | '@nodelib/fs.stat': 2.0.5 1503 | '@nodelib/fs.walk': 1.2.8 1504 | glob-parent: 5.1.2 1505 | merge2: 1.4.1 1506 | micromatch: 4.0.5 1507 | dev: true 1508 | 1509 | /fastq/1.13.0: 1510 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 1511 | dependencies: 1512 | reusify: 1.0.4 1513 | dev: true 1514 | 1515 | /fault/2.0.1: 1516 | resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} 1517 | dependencies: 1518 | format: 0.2.2 1519 | dev: true 1520 | 1521 | /fenceparser/1.1.1: 1522 | resolution: {integrity: sha512-VdkTsK7GWLT0VWMK5S5WTAPn61wJ98WPFwJiRHumhg4ESNUO/tnkU8bzzzc62o6Uk1SVhuZFLnakmDA4SGV7wA==} 1523 | engines: {node: '>=12'} 1524 | dev: true 1525 | 1526 | /fetch-blob/3.2.0: 1527 | resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} 1528 | engines: {node: ^12.20 || >= 14.13} 1529 | dependencies: 1530 | node-domexception: 1.0.0 1531 | web-streams-polyfill: 3.2.1 1532 | dev: true 1533 | 1534 | /fill-range/7.0.1: 1535 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1536 | engines: {node: '>=8'} 1537 | dependencies: 1538 | to-regex-range: 5.0.1 1539 | dev: true 1540 | 1541 | /find-up/4.1.0: 1542 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1543 | engines: {node: '>=8'} 1544 | dependencies: 1545 | locate-path: 5.0.0 1546 | path-exists: 4.0.0 1547 | dev: true 1548 | 1549 | /find-up/5.0.0: 1550 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1551 | engines: {node: '>=10'} 1552 | dependencies: 1553 | locate-path: 6.0.0 1554 | path-exists: 4.0.0 1555 | dev: true 1556 | 1557 | /find-yarn-workspace-root2/1.2.16: 1558 | resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} 1559 | dependencies: 1560 | micromatch: 4.0.5 1561 | pkg-dir: 4.2.0 1562 | dev: true 1563 | 1564 | /format/0.2.2: 1565 | resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} 1566 | engines: {node: '>=0.4.x'} 1567 | dev: true 1568 | 1569 | /formdata-polyfill/4.0.10: 1570 | resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} 1571 | engines: {node: '>=12.20.0'} 1572 | dependencies: 1573 | fetch-blob: 3.2.0 1574 | dev: true 1575 | 1576 | /formidable/1.0.17: 1577 | resolution: {integrity: sha512-95MFT5qipMvUiesmuvGP1BI4hh5XWCzyTapiNJ/k8JBQda7rPy7UCWYItz2uZEdTgGNy1eInjzlL9Wx1O9fedg==} 1578 | engines: {node: '>=0.8.0'} 1579 | deprecated: 'Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau' 1580 | dev: true 1581 | 1582 | /fsevents/2.3.2: 1583 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1584 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1585 | os: [darwin] 1586 | requiresBuild: true 1587 | dev: true 1588 | optional: true 1589 | 1590 | /function-bind/1.1.1: 1591 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1592 | dev: true 1593 | 1594 | /gensync/1.0.0-beta.2: 1595 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1596 | engines: {node: '>=6.9.0'} 1597 | dev: true 1598 | 1599 | /get-stream/6.0.1: 1600 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1601 | engines: {node: '>=10'} 1602 | dev: true 1603 | 1604 | /github-slugger/1.4.0: 1605 | resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} 1606 | dev: true 1607 | 1608 | /glob-parent/5.1.2: 1609 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1610 | engines: {node: '>= 6'} 1611 | dependencies: 1612 | is-glob: 4.0.3 1613 | dev: true 1614 | 1615 | /globals/11.12.0: 1616 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1617 | engines: {node: '>=4'} 1618 | dev: true 1619 | 1620 | /graceful-fs/4.2.10: 1621 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1622 | dev: true 1623 | 1624 | /gray-matter/4.0.3: 1625 | resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} 1626 | engines: {node: '>=6.0'} 1627 | dependencies: 1628 | js-yaml: 3.14.1 1629 | kind-of: 6.0.3 1630 | section-matter: 1.0.0 1631 | strip-bom-string: 1.0.0 1632 | dev: true 1633 | 1634 | /has-flag/3.0.0: 1635 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1636 | engines: {node: '>=4'} 1637 | dev: true 1638 | 1639 | /has-flag/4.0.0: 1640 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1641 | engines: {node: '>=8'} 1642 | dev: true 1643 | 1644 | /has-package-exports/1.3.0: 1645 | resolution: {integrity: sha512-e9OeXPQnmPhYoJ63lXC4wWe34TxEGZDZ3OQX9XRqp2VwsfLl3bQBy7VehLnd34g3ef8CmYlBLGqEMKXuz8YazQ==} 1646 | dependencies: 1647 | '@ljharb/has-package-exports-patterns': 0.0.2 1648 | dev: true 1649 | 1650 | /has/1.0.3: 1651 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1652 | engines: {node: '>= 0.4.0'} 1653 | dependencies: 1654 | function-bind: 1.1.1 1655 | dev: true 1656 | 1657 | /hast-to-hyperscript/10.0.1: 1658 | resolution: {integrity: sha512-dhIVGoKCQVewFi+vz3Vt567E4ejMppS1haBRL6TEmeLeJVB1i/FJIIg/e6s1Bwn0g5qtYojHEKvyGA+OZuyifw==} 1659 | dependencies: 1660 | '@types/unist': 2.0.6 1661 | comma-separated-tokens: 2.0.2 1662 | property-information: 6.1.1 1663 | space-separated-tokens: 2.0.1 1664 | style-to-object: 0.3.0 1665 | unist-util-is: 5.1.1 1666 | web-namespaces: 2.0.1 1667 | dev: true 1668 | 1669 | /hast-util-from-parse5/7.1.0: 1670 | resolution: {integrity: sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==} 1671 | dependencies: 1672 | '@types/hast': 2.3.4 1673 | '@types/parse5': 6.0.3 1674 | '@types/unist': 2.0.6 1675 | hastscript: 7.0.2 1676 | property-information: 6.1.1 1677 | vfile: 5.3.4 1678 | vfile-location: 4.0.1 1679 | web-namespaces: 2.0.1 1680 | dev: true 1681 | 1682 | /hast-util-is-element/2.1.2: 1683 | resolution: {integrity: sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==} 1684 | dependencies: 1685 | '@types/hast': 2.3.4 1686 | '@types/unist': 2.0.6 1687 | dev: true 1688 | 1689 | /hast-util-parse-selector/3.1.0: 1690 | resolution: {integrity: sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==} 1691 | dependencies: 1692 | '@types/hast': 2.3.4 1693 | dev: true 1694 | 1695 | /hast-util-raw/7.2.2: 1696 | resolution: {integrity: sha512-0x3BhhdlBcqRIKyc095lBSDvmQNMY3Eulj2PLsT5XCyKYrxssI5yr3P4Kv/PBo1s/DMkZy2voGkMXECnFCZRLQ==} 1697 | dependencies: 1698 | '@types/hast': 2.3.4 1699 | '@types/parse5': 6.0.3 1700 | hast-util-from-parse5: 7.1.0 1701 | hast-util-to-parse5: 7.0.0 1702 | html-void-elements: 2.0.1 1703 | parse5: 6.0.1 1704 | unist-util-position: 4.0.3 1705 | unist-util-visit: 4.1.0 1706 | vfile: 5.3.4 1707 | web-namespaces: 2.0.1 1708 | zwitch: 2.0.2 1709 | dev: true 1710 | 1711 | /hast-util-to-estree/2.1.0: 1712 | resolution: {integrity: sha512-Vwch1etMRmm89xGgz+voWXvVHba2iiMdGMKmaMfYt35rbVtFDq8JNwwAIvi8zHMkO6Gvqo9oTMwJTmzVRfXh4g==} 1713 | dependencies: 1714 | '@types/estree': 1.0.0 1715 | '@types/estree-jsx': 1.0.0 1716 | '@types/hast': 2.3.4 1717 | '@types/unist': 2.0.6 1718 | comma-separated-tokens: 2.0.2 1719 | estree-util-attach-comments: 2.1.0 1720 | estree-util-is-identifier-name: 2.0.1 1721 | hast-util-whitespace: 2.0.0 1722 | mdast-util-mdx-expression: 1.3.0 1723 | mdast-util-mdxjs-esm: 1.3.0 1724 | property-information: 6.1.1 1725 | space-separated-tokens: 2.0.1 1726 | style-to-object: 0.3.0 1727 | unist-util-position: 4.0.3 1728 | zwitch: 2.0.2 1729 | transitivePeerDependencies: 1730 | - supports-color 1731 | dev: true 1732 | 1733 | /hast-util-to-html/8.0.3: 1734 | resolution: {integrity: sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==} 1735 | dependencies: 1736 | '@types/hast': 2.3.4 1737 | ccount: 2.0.1 1738 | comma-separated-tokens: 2.0.2 1739 | hast-util-is-element: 2.1.2 1740 | hast-util-whitespace: 2.0.0 1741 | html-void-elements: 2.0.1 1742 | property-information: 6.1.1 1743 | space-separated-tokens: 2.0.1 1744 | stringify-entities: 4.0.3 1745 | unist-util-is: 5.1.1 1746 | dev: true 1747 | 1748 | /hast-util-to-parse5/7.0.0: 1749 | resolution: {integrity: sha512-YHiS6aTaZ3N0Q3nxaY/Tj98D6kM8QX5Q8xqgg8G45zR7PvWnPGPP0vcKCgb/moIydEJ/QWczVrX0JODCVeoV7A==} 1750 | dependencies: 1751 | '@types/hast': 2.3.4 1752 | '@types/parse5': 6.0.3 1753 | hast-to-hyperscript: 10.0.1 1754 | property-information: 6.1.1 1755 | web-namespaces: 2.0.1 1756 | zwitch: 2.0.2 1757 | dev: true 1758 | 1759 | /hast-util-whitespace/2.0.0: 1760 | resolution: {integrity: sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==} 1761 | dev: true 1762 | 1763 | /hastscript/7.0.2: 1764 | resolution: {integrity: sha512-uA8ooUY4ipaBvKcMuPehTAB/YfFLSSzCwFSwT6ltJbocFUKH/GDHLN+tflq7lSRf9H86uOuxOFkh1KgIy3Gg2g==} 1765 | dependencies: 1766 | '@types/hast': 2.3.4 1767 | comma-separated-tokens: 2.0.2 1768 | hast-util-parse-selector: 3.1.0 1769 | property-information: 6.1.1 1770 | space-separated-tokens: 2.0.1 1771 | dev: true 1772 | 1773 | /html-entities/2.3.2: 1774 | resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==} 1775 | dev: true 1776 | 1777 | /html-entities/2.3.3: 1778 | resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} 1779 | dev: true 1780 | 1781 | /html-escaper/3.0.3: 1782 | resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} 1783 | dev: true 1784 | 1785 | /html-void-elements/2.0.1: 1786 | resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} 1787 | dev: true 1788 | 1789 | /human-signals/3.0.1: 1790 | resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} 1791 | engines: {node: '>=12.20.0'} 1792 | dev: true 1793 | 1794 | /ieee754/1.2.1: 1795 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1796 | dev: true 1797 | 1798 | /inherits/2.0.4: 1799 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1800 | dev: true 1801 | 1802 | /inline-style-parser/0.1.1: 1803 | resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} 1804 | dev: true 1805 | 1806 | /is-alphabetical/1.0.4: 1807 | resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} 1808 | dev: true 1809 | 1810 | /is-alphabetical/2.0.1: 1811 | resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} 1812 | dev: true 1813 | 1814 | /is-alphanumeric/1.0.0: 1815 | resolution: {integrity: sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==} 1816 | engines: {node: '>=0.10.0'} 1817 | dev: true 1818 | 1819 | /is-alphanumerical/1.0.4: 1820 | resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} 1821 | dependencies: 1822 | is-alphabetical: 1.0.4 1823 | is-decimal: 1.0.4 1824 | dev: true 1825 | 1826 | /is-alphanumerical/2.0.1: 1827 | resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} 1828 | dependencies: 1829 | is-alphabetical: 2.0.1 1830 | is-decimal: 2.0.1 1831 | dev: true 1832 | 1833 | /is-buffer/2.0.5: 1834 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} 1835 | engines: {node: '>=4'} 1836 | dev: true 1837 | 1838 | /is-core-module/2.10.0: 1839 | resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} 1840 | dependencies: 1841 | has: 1.0.3 1842 | dev: true 1843 | 1844 | /is-decimal/1.0.4: 1845 | resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} 1846 | dev: true 1847 | 1848 | /is-decimal/2.0.1: 1849 | resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} 1850 | dev: true 1851 | 1852 | /is-docker/2.2.1: 1853 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 1854 | engines: {node: '>=8'} 1855 | hasBin: true 1856 | dev: true 1857 | 1858 | /is-docker/3.0.0: 1859 | resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 1860 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1861 | hasBin: true 1862 | dev: true 1863 | 1864 | /is-extendable/0.1.1: 1865 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 1866 | engines: {node: '>=0.10.0'} 1867 | dev: true 1868 | 1869 | /is-extglob/2.1.1: 1870 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1871 | engines: {node: '>=0.10.0'} 1872 | dev: true 1873 | 1874 | /is-fullwidth-code-point/3.0.0: 1875 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1876 | engines: {node: '>=8'} 1877 | dev: true 1878 | 1879 | /is-glob/4.0.3: 1880 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1881 | engines: {node: '>=0.10.0'} 1882 | dependencies: 1883 | is-extglob: 2.1.1 1884 | dev: true 1885 | 1886 | /is-hexadecimal/1.0.4: 1887 | resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} 1888 | dev: true 1889 | 1890 | /is-hexadecimal/2.0.1: 1891 | resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} 1892 | dev: true 1893 | 1894 | /is-interactive/2.0.0: 1895 | resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} 1896 | engines: {node: '>=12'} 1897 | dev: true 1898 | 1899 | /is-number/7.0.0: 1900 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1901 | engines: {node: '>=0.12.0'} 1902 | dev: true 1903 | 1904 | /is-plain-obj/1.1.0: 1905 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 1906 | engines: {node: '>=0.10.0'} 1907 | dev: true 1908 | 1909 | /is-plain-obj/4.1.0: 1910 | resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 1911 | engines: {node: '>=12'} 1912 | dev: true 1913 | 1914 | /is-reference/3.0.0: 1915 | resolution: {integrity: sha512-Eo1W3wUoHWoCoVM4GVl/a+K0IgiqE5aIo4kJABFyMum1ZORlPkC+UC357sSQUL5w5QCE5kCC9upl75b7+7CY/Q==} 1916 | dependencies: 1917 | '@types/estree': 1.0.0 1918 | dev: true 1919 | 1920 | /is-stream/3.0.0: 1921 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 1922 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1923 | dev: true 1924 | 1925 | /is-unicode-supported/1.2.0: 1926 | resolution: {integrity: sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==} 1927 | engines: {node: '>=12'} 1928 | dev: true 1929 | 1930 | /is-whitespace-character/1.0.4: 1931 | resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} 1932 | dev: true 1933 | 1934 | /is-word-character/1.0.4: 1935 | resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} 1936 | dev: true 1937 | 1938 | /is-wsl/2.2.0: 1939 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 1940 | engines: {node: '>=8'} 1941 | dependencies: 1942 | is-docker: 2.2.1 1943 | dev: true 1944 | 1945 | /isexe/2.0.0: 1946 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1947 | dev: true 1948 | 1949 | /js-tokens/4.0.0: 1950 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1951 | dev: true 1952 | 1953 | /js-yaml/3.14.1: 1954 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1955 | hasBin: true 1956 | dependencies: 1957 | argparse: 1.0.10 1958 | esprima: 4.0.1 1959 | dev: true 1960 | 1961 | /jsesc/2.5.2: 1962 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1963 | engines: {node: '>=4'} 1964 | hasBin: true 1965 | dev: true 1966 | 1967 | /json5/2.2.1: 1968 | resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} 1969 | engines: {node: '>=6'} 1970 | hasBin: true 1971 | dev: true 1972 | 1973 | /jsonc-parser/2.3.1: 1974 | resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} 1975 | dev: true 1976 | 1977 | /jsonc-parser/3.1.0: 1978 | resolution: {integrity: sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==} 1979 | dev: true 1980 | 1981 | /katex/0.13.24: 1982 | resolution: {integrity: sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==} 1983 | hasBin: true 1984 | dependencies: 1985 | commander: 8.3.0 1986 | dev: true 1987 | 1988 | /kind-of/6.0.3: 1989 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1990 | engines: {node: '>=0.10.0'} 1991 | dev: true 1992 | 1993 | /kleur/3.0.3: 1994 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 1995 | engines: {node: '>=6'} 1996 | dev: true 1997 | 1998 | /kleur/4.1.5: 1999 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 2000 | engines: {node: '>=6'} 2001 | dev: true 2002 | 2003 | /lilconfig/2.0.6: 2004 | resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} 2005 | engines: {node: '>=10'} 2006 | dev: true 2007 | 2008 | /load-yaml-file/0.2.0: 2009 | resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} 2010 | engines: {node: '>=6'} 2011 | dependencies: 2012 | graceful-fs: 4.2.10 2013 | js-yaml: 3.14.1 2014 | pify: 4.0.1 2015 | strip-bom: 3.0.0 2016 | dev: true 2017 | 2018 | /locate-character/2.0.5: 2019 | resolution: {integrity: sha512-n2GmejDXtOPBAZdIiEFy5dJ5N38xBCXLNOtw2WpB9kGh6pnrEuKlwYI+Tkpofc4wDtVXHtoAOJaMRlYG/oYaxg==} 2020 | dev: true 2021 | 2022 | /locate-path/5.0.0: 2023 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2024 | engines: {node: '>=8'} 2025 | dependencies: 2026 | p-locate: 4.1.0 2027 | dev: true 2028 | 2029 | /locate-path/6.0.0: 2030 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2031 | engines: {node: '>=10'} 2032 | dependencies: 2033 | p-locate: 5.0.0 2034 | dev: true 2035 | 2036 | /log-symbols/5.1.0: 2037 | resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} 2038 | engines: {node: '>=12'} 2039 | dependencies: 2040 | chalk: 5.0.1 2041 | is-unicode-supported: 1.2.0 2042 | dev: true 2043 | 2044 | /longest-streak/2.0.4: 2045 | resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} 2046 | dev: true 2047 | 2048 | /longest-streak/3.0.1: 2049 | resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} 2050 | dev: true 2051 | 2052 | /lru-cache/6.0.0: 2053 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2054 | engines: {node: '>=10'} 2055 | dependencies: 2056 | yallist: 4.0.0 2057 | dev: true 2058 | 2059 | /lz-string/1.4.4: 2060 | resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} 2061 | hasBin: true 2062 | dev: true 2063 | 2064 | /magic-string/0.25.9: 2065 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 2066 | dependencies: 2067 | sourcemap-codec: 1.4.8 2068 | dev: true 2069 | 2070 | /markdown-escapes/1.0.4: 2071 | resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} 2072 | dev: true 2073 | 2074 | /markdown-extensions/1.1.1: 2075 | resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} 2076 | engines: {node: '>=0.10.0'} 2077 | dev: true 2078 | 2079 | /markdown-table/1.1.3: 2080 | resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} 2081 | dev: true 2082 | 2083 | /markdown-table/3.0.2: 2084 | resolution: {integrity: sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==} 2085 | dev: true 2086 | 2087 | /mdast-util-compact/1.0.4: 2088 | resolution: {integrity: sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==} 2089 | dependencies: 2090 | unist-util-visit: 1.4.1 2091 | dev: true 2092 | 2093 | /mdast-util-definitions/5.1.1: 2094 | resolution: {integrity: sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==} 2095 | dependencies: 2096 | '@types/mdast': 3.0.10 2097 | '@types/unist': 2.0.6 2098 | unist-util-visit: 4.1.0 2099 | dev: true 2100 | 2101 | /mdast-util-find-and-replace/2.2.1: 2102 | resolution: {integrity: sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==} 2103 | dependencies: 2104 | escape-string-regexp: 5.0.0 2105 | unist-util-is: 5.1.1 2106 | unist-util-visit-parents: 5.1.0 2107 | dev: true 2108 | 2109 | /mdast-util-from-markdown/1.2.0: 2110 | resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==} 2111 | dependencies: 2112 | '@types/mdast': 3.0.10 2113 | '@types/unist': 2.0.6 2114 | decode-named-character-reference: 1.0.2 2115 | mdast-util-to-string: 3.1.0 2116 | micromark: 3.0.10 2117 | micromark-util-decode-numeric-character-reference: 1.0.0 2118 | micromark-util-decode-string: 1.0.2 2119 | micromark-util-normalize-identifier: 1.0.0 2120 | micromark-util-symbol: 1.0.1 2121 | micromark-util-types: 1.0.2 2122 | unist-util-stringify-position: 3.0.2 2123 | uvu: 0.5.6 2124 | transitivePeerDependencies: 2125 | - supports-color 2126 | dev: true 2127 | 2128 | /mdast-util-frontmatter/1.0.0: 2129 | resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==} 2130 | dependencies: 2131 | micromark-extension-frontmatter: 1.0.0 2132 | dev: true 2133 | 2134 | /mdast-util-gfm-autolink-literal/1.0.2: 2135 | resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==} 2136 | dependencies: 2137 | '@types/mdast': 3.0.10 2138 | ccount: 2.0.1 2139 | mdast-util-find-and-replace: 2.2.1 2140 | micromark-util-character: 1.1.0 2141 | dev: true 2142 | 2143 | /mdast-util-gfm-footnote/1.0.1: 2144 | resolution: {integrity: sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==} 2145 | dependencies: 2146 | '@types/mdast': 3.0.10 2147 | mdast-util-to-markdown: 1.3.0 2148 | micromark-util-normalize-identifier: 1.0.0 2149 | dev: true 2150 | 2151 | /mdast-util-gfm-strikethrough/1.0.1: 2152 | resolution: {integrity: sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==} 2153 | dependencies: 2154 | '@types/mdast': 3.0.10 2155 | mdast-util-to-markdown: 1.3.0 2156 | dev: true 2157 | 2158 | /mdast-util-gfm-table/1.0.4: 2159 | resolution: {integrity: sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w==} 2160 | dependencies: 2161 | markdown-table: 3.0.2 2162 | mdast-util-from-markdown: 1.2.0 2163 | mdast-util-to-markdown: 1.3.0 2164 | transitivePeerDependencies: 2165 | - supports-color 2166 | dev: true 2167 | 2168 | /mdast-util-gfm-task-list-item/1.0.1: 2169 | resolution: {integrity: sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==} 2170 | dependencies: 2171 | '@types/mdast': 3.0.10 2172 | mdast-util-to-markdown: 1.3.0 2173 | dev: true 2174 | 2175 | /mdast-util-gfm/2.0.1: 2176 | resolution: {integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==} 2177 | dependencies: 2178 | mdast-util-from-markdown: 1.2.0 2179 | mdast-util-gfm-autolink-literal: 1.0.2 2180 | mdast-util-gfm-footnote: 1.0.1 2181 | mdast-util-gfm-strikethrough: 1.0.1 2182 | mdast-util-gfm-table: 1.0.4 2183 | mdast-util-gfm-task-list-item: 1.0.1 2184 | mdast-util-to-markdown: 1.3.0 2185 | transitivePeerDependencies: 2186 | - supports-color 2187 | dev: true 2188 | 2189 | /mdast-util-math/2.0.1: 2190 | resolution: {integrity: sha512-ZZtjyRwobsiVg4bY0Q5CzAZztpbjRIA7ZlMMb0PNkwTXOnJTUoHvzBhVG95LIuek5Mlj1l2P+jBvWviqW7G+0A==} 2191 | dependencies: 2192 | '@types/mdast': 3.0.10 2193 | longest-streak: 3.0.1 2194 | mdast-util-to-markdown: 1.3.0 2195 | dev: true 2196 | 2197 | /mdast-util-mdx-expression/1.3.0: 2198 | resolution: {integrity: sha512-9kTO13HaL/ChfzVCIEfDRdp1m5hsvsm6+R8yr67mH+KS2ikzZ0ISGLPTbTswOFpLLlgVHO9id3cul4ajutCvCA==} 2199 | dependencies: 2200 | '@types/estree-jsx': 1.0.0 2201 | '@types/hast': 2.3.4 2202 | '@types/mdast': 3.0.10 2203 | mdast-util-from-markdown: 1.2.0 2204 | mdast-util-to-markdown: 1.3.0 2205 | transitivePeerDependencies: 2206 | - supports-color 2207 | dev: true 2208 | 2209 | /mdast-util-mdx-jsx/1.2.0: 2210 | resolution: {integrity: sha512-5+ot/kfxYd3ChgEMwsMUO71oAfYjyRI3pADEK4I7xTmWLGQ8Y7ghm1CG36zUoUvDPxMlIYwQV/9DYHAUWdG4dA==} 2211 | dependencies: 2212 | '@types/estree-jsx': 0.0.1 2213 | '@types/mdast': 3.0.10 2214 | mdast-util-to-markdown: 1.3.0 2215 | parse-entities: 4.0.0 2216 | stringify-entities: 4.0.3 2217 | unist-util-remove-position: 4.0.1 2218 | unist-util-stringify-position: 3.0.2 2219 | vfile-message: 3.1.2 2220 | dev: true 2221 | 2222 | /mdast-util-mdx-jsx/2.1.0: 2223 | resolution: {integrity: sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg==} 2224 | dependencies: 2225 | '@types/estree-jsx': 1.0.0 2226 | '@types/hast': 2.3.4 2227 | '@types/mdast': 3.0.10 2228 | ccount: 2.0.1 2229 | mdast-util-to-markdown: 1.3.0 2230 | parse-entities: 4.0.0 2231 | stringify-entities: 4.0.3 2232 | unist-util-remove-position: 4.0.1 2233 | unist-util-stringify-position: 3.0.2 2234 | vfile-message: 3.1.2 2235 | dev: true 2236 | 2237 | /mdast-util-mdx/2.0.0: 2238 | resolution: {integrity: sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw==} 2239 | dependencies: 2240 | mdast-util-mdx-expression: 1.3.0 2241 | mdast-util-mdx-jsx: 2.1.0 2242 | mdast-util-mdxjs-esm: 1.3.0 2243 | transitivePeerDependencies: 2244 | - supports-color 2245 | dev: true 2246 | 2247 | /mdast-util-mdxjs-esm/1.3.0: 2248 | resolution: {integrity: sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g==} 2249 | dependencies: 2250 | '@types/estree-jsx': 1.0.0 2251 | '@types/hast': 2.3.4 2252 | '@types/mdast': 3.0.10 2253 | mdast-util-from-markdown: 1.2.0 2254 | mdast-util-to-markdown: 1.3.0 2255 | transitivePeerDependencies: 2256 | - supports-color 2257 | dev: true 2258 | 2259 | /mdast-util-to-hast/12.2.0: 2260 | resolution: {integrity: sha512-YDwT5KhGzLgPpSnQhAlK1+WpCW4gsPmNNAxUNMkMTDhxQyPp2eX86WOelnKnLKEvSpfxqJbPbInHFkefXZBhEA==} 2261 | dependencies: 2262 | '@types/hast': 2.3.4 2263 | '@types/mdast': 3.0.10 2264 | '@types/mdurl': 1.0.2 2265 | mdast-util-definitions: 5.1.1 2266 | mdurl: 1.0.1 2267 | micromark-util-sanitize-uri: 1.0.0 2268 | trim-lines: 3.0.1 2269 | unist-builder: 3.0.0 2270 | unist-util-generated: 2.0.0 2271 | unist-util-position: 4.0.3 2272 | unist-util-visit: 4.1.0 2273 | dev: true 2274 | 2275 | /mdast-util-to-markdown/1.3.0: 2276 | resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==} 2277 | dependencies: 2278 | '@types/mdast': 3.0.10 2279 | '@types/unist': 2.0.6 2280 | longest-streak: 3.0.1 2281 | mdast-util-to-string: 3.1.0 2282 | micromark-util-decode-string: 1.0.2 2283 | unist-util-visit: 4.1.0 2284 | zwitch: 2.0.2 2285 | dev: true 2286 | 2287 | /mdast-util-to-string/3.1.0: 2288 | resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} 2289 | dev: true 2290 | 2291 | /mdurl/1.0.1: 2292 | resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} 2293 | dev: true 2294 | 2295 | /merge-stream/2.0.0: 2296 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2297 | dev: true 2298 | 2299 | /merge2/1.4.1: 2300 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2301 | engines: {node: '>= 8'} 2302 | dev: true 2303 | 2304 | /micromark-core-commonmark/1.0.6: 2305 | resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} 2306 | dependencies: 2307 | decode-named-character-reference: 1.0.2 2308 | micromark-factory-destination: 1.0.0 2309 | micromark-factory-label: 1.0.2 2310 | micromark-factory-space: 1.0.0 2311 | micromark-factory-title: 1.0.2 2312 | micromark-factory-whitespace: 1.0.0 2313 | micromark-util-character: 1.1.0 2314 | micromark-util-chunked: 1.0.0 2315 | micromark-util-classify-character: 1.0.0 2316 | micromark-util-html-tag-name: 1.1.0 2317 | micromark-util-normalize-identifier: 1.0.0 2318 | micromark-util-resolve-all: 1.0.0 2319 | micromark-util-subtokenize: 1.0.2 2320 | micromark-util-symbol: 1.0.1 2321 | micromark-util-types: 1.0.2 2322 | uvu: 0.5.6 2323 | dev: true 2324 | 2325 | /micromark-extension-frontmatter/1.0.0: 2326 | resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==} 2327 | dependencies: 2328 | fault: 2.0.1 2329 | micromark-util-character: 1.1.0 2330 | micromark-util-symbol: 1.0.1 2331 | dev: true 2332 | 2333 | /micromark-extension-gfm-autolink-literal/1.0.3: 2334 | resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} 2335 | dependencies: 2336 | micromark-util-character: 1.1.0 2337 | micromark-util-sanitize-uri: 1.0.0 2338 | micromark-util-symbol: 1.0.1 2339 | micromark-util-types: 1.0.2 2340 | uvu: 0.5.6 2341 | dev: true 2342 | 2343 | /micromark-extension-gfm-footnote/1.0.4: 2344 | resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==} 2345 | dependencies: 2346 | micromark-core-commonmark: 1.0.6 2347 | micromark-factory-space: 1.0.0 2348 | micromark-util-character: 1.1.0 2349 | micromark-util-normalize-identifier: 1.0.0 2350 | micromark-util-sanitize-uri: 1.0.0 2351 | micromark-util-symbol: 1.0.1 2352 | micromark-util-types: 1.0.2 2353 | uvu: 0.5.6 2354 | dev: true 2355 | 2356 | /micromark-extension-gfm-strikethrough/1.0.4: 2357 | resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==} 2358 | dependencies: 2359 | micromark-util-chunked: 1.0.0 2360 | micromark-util-classify-character: 1.0.0 2361 | micromark-util-resolve-all: 1.0.0 2362 | micromark-util-symbol: 1.0.1 2363 | micromark-util-types: 1.0.2 2364 | uvu: 0.5.6 2365 | dev: true 2366 | 2367 | /micromark-extension-gfm-table/1.0.5: 2368 | resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==} 2369 | dependencies: 2370 | micromark-factory-space: 1.0.0 2371 | micromark-util-character: 1.1.0 2372 | micromark-util-symbol: 1.0.1 2373 | micromark-util-types: 1.0.2 2374 | uvu: 0.5.6 2375 | dev: true 2376 | 2377 | /micromark-extension-gfm-tagfilter/1.0.1: 2378 | resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==} 2379 | dependencies: 2380 | micromark-util-types: 1.0.2 2381 | dev: true 2382 | 2383 | /micromark-extension-gfm-task-list-item/1.0.3: 2384 | resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==} 2385 | dependencies: 2386 | micromark-factory-space: 1.0.0 2387 | micromark-util-character: 1.1.0 2388 | micromark-util-symbol: 1.0.1 2389 | micromark-util-types: 1.0.2 2390 | uvu: 0.5.6 2391 | dev: true 2392 | 2393 | /micromark-extension-gfm/2.0.1: 2394 | resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==} 2395 | dependencies: 2396 | micromark-extension-gfm-autolink-literal: 1.0.3 2397 | micromark-extension-gfm-footnote: 1.0.4 2398 | micromark-extension-gfm-strikethrough: 1.0.4 2399 | micromark-extension-gfm-table: 1.0.5 2400 | micromark-extension-gfm-tagfilter: 1.0.1 2401 | micromark-extension-gfm-task-list-item: 1.0.3 2402 | micromark-util-combine-extensions: 1.0.0 2403 | micromark-util-types: 1.0.2 2404 | dev: true 2405 | 2406 | /micromark-extension-math/2.0.2: 2407 | resolution: {integrity: sha512-cFv2B/E4pFPBBFuGgLHkkNiFAIQv08iDgPH2HCuR2z3AUgMLecES5Cq7AVtwOtZeRrbA80QgMUk8VVW0Z+D2FA==} 2408 | dependencies: 2409 | '@types/katex': 0.11.1 2410 | katex: 0.13.24 2411 | micromark-factory-space: 1.0.0 2412 | micromark-util-character: 1.1.0 2413 | micromark-util-symbol: 1.0.1 2414 | micromark-util-types: 1.0.2 2415 | uvu: 0.5.6 2416 | dev: true 2417 | 2418 | /micromark-extension-mdx-expression/1.0.3: 2419 | resolution: {integrity: sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==} 2420 | dependencies: 2421 | micromark-factory-mdx-expression: 1.0.6 2422 | micromark-factory-space: 1.0.0 2423 | micromark-util-character: 1.1.0 2424 | micromark-util-events-to-acorn: 1.2.0 2425 | micromark-util-symbol: 1.0.1 2426 | micromark-util-types: 1.0.2 2427 | uvu: 0.5.6 2428 | dev: true 2429 | 2430 | /micromark-extension-mdx-jsx/1.0.3: 2431 | resolution: {integrity: sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==} 2432 | dependencies: 2433 | '@types/acorn': 4.0.6 2434 | estree-util-is-identifier-name: 2.0.1 2435 | micromark-factory-mdx-expression: 1.0.6 2436 | micromark-factory-space: 1.0.0 2437 | micromark-util-character: 1.1.0 2438 | micromark-util-symbol: 1.0.1 2439 | micromark-util-types: 1.0.2 2440 | uvu: 0.5.6 2441 | vfile-message: 3.1.2 2442 | dev: true 2443 | 2444 | /micromark-extension-mdx-md/1.0.0: 2445 | resolution: {integrity: sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==} 2446 | dependencies: 2447 | micromark-util-types: 1.0.2 2448 | dev: true 2449 | 2450 | /micromark-extension-mdxjs-esm/1.0.3: 2451 | resolution: {integrity: sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==} 2452 | dependencies: 2453 | micromark-core-commonmark: 1.0.6 2454 | micromark-util-character: 1.1.0 2455 | micromark-util-events-to-acorn: 1.2.0 2456 | micromark-util-symbol: 1.0.1 2457 | micromark-util-types: 1.0.2 2458 | unist-util-position-from-estree: 1.1.1 2459 | uvu: 0.5.6 2460 | vfile-message: 3.1.2 2461 | dev: true 2462 | 2463 | /micromark-extension-mdxjs/1.0.0: 2464 | resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} 2465 | dependencies: 2466 | acorn: 8.8.0 2467 | acorn-jsx: 5.3.2_acorn@8.8.0 2468 | micromark-extension-mdx-expression: 1.0.3 2469 | micromark-extension-mdx-jsx: 1.0.3 2470 | micromark-extension-mdx-md: 1.0.0 2471 | micromark-extension-mdxjs-esm: 1.0.3 2472 | micromark-util-combine-extensions: 1.0.0 2473 | micromark-util-types: 1.0.2 2474 | dev: true 2475 | 2476 | /micromark-factory-destination/1.0.0: 2477 | resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} 2478 | dependencies: 2479 | micromark-util-character: 1.1.0 2480 | micromark-util-symbol: 1.0.1 2481 | micromark-util-types: 1.0.2 2482 | dev: true 2483 | 2484 | /micromark-factory-label/1.0.2: 2485 | resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} 2486 | dependencies: 2487 | micromark-util-character: 1.1.0 2488 | micromark-util-symbol: 1.0.1 2489 | micromark-util-types: 1.0.2 2490 | uvu: 0.5.6 2491 | dev: true 2492 | 2493 | /micromark-factory-mdx-expression/1.0.6: 2494 | resolution: {integrity: sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA==} 2495 | dependencies: 2496 | micromark-factory-space: 1.0.0 2497 | micromark-util-character: 1.1.0 2498 | micromark-util-events-to-acorn: 1.2.0 2499 | micromark-util-symbol: 1.0.1 2500 | micromark-util-types: 1.0.2 2501 | unist-util-position-from-estree: 1.1.1 2502 | uvu: 0.5.6 2503 | vfile-message: 3.1.2 2504 | dev: true 2505 | 2506 | /micromark-factory-space/1.0.0: 2507 | resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} 2508 | dependencies: 2509 | micromark-util-character: 1.1.0 2510 | micromark-util-types: 1.0.2 2511 | dev: true 2512 | 2513 | /micromark-factory-title/1.0.2: 2514 | resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} 2515 | dependencies: 2516 | micromark-factory-space: 1.0.0 2517 | micromark-util-character: 1.1.0 2518 | micromark-util-symbol: 1.0.1 2519 | micromark-util-types: 1.0.2 2520 | uvu: 0.5.6 2521 | dev: true 2522 | 2523 | /micromark-factory-whitespace/1.0.0: 2524 | resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} 2525 | dependencies: 2526 | micromark-factory-space: 1.0.0 2527 | micromark-util-character: 1.1.0 2528 | micromark-util-symbol: 1.0.1 2529 | micromark-util-types: 1.0.2 2530 | dev: true 2531 | 2532 | /micromark-util-character/1.1.0: 2533 | resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} 2534 | dependencies: 2535 | micromark-util-symbol: 1.0.1 2536 | micromark-util-types: 1.0.2 2537 | dev: true 2538 | 2539 | /micromark-util-chunked/1.0.0: 2540 | resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} 2541 | dependencies: 2542 | micromark-util-symbol: 1.0.1 2543 | dev: true 2544 | 2545 | /micromark-util-classify-character/1.0.0: 2546 | resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} 2547 | dependencies: 2548 | micromark-util-character: 1.1.0 2549 | micromark-util-symbol: 1.0.1 2550 | micromark-util-types: 1.0.2 2551 | dev: true 2552 | 2553 | /micromark-util-combine-extensions/1.0.0: 2554 | resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} 2555 | dependencies: 2556 | micromark-util-chunked: 1.0.0 2557 | micromark-util-types: 1.0.2 2558 | dev: true 2559 | 2560 | /micromark-util-decode-numeric-character-reference/1.0.0: 2561 | resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} 2562 | dependencies: 2563 | micromark-util-symbol: 1.0.1 2564 | dev: true 2565 | 2566 | /micromark-util-decode-string/1.0.2: 2567 | resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} 2568 | dependencies: 2569 | decode-named-character-reference: 1.0.2 2570 | micromark-util-character: 1.1.0 2571 | micromark-util-decode-numeric-character-reference: 1.0.0 2572 | micromark-util-symbol: 1.0.1 2573 | dev: true 2574 | 2575 | /micromark-util-encode/1.0.1: 2576 | resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} 2577 | dev: true 2578 | 2579 | /micromark-util-events-to-acorn/1.2.0: 2580 | resolution: {integrity: sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw==} 2581 | dependencies: 2582 | '@types/acorn': 4.0.6 2583 | '@types/estree': 1.0.0 2584 | estree-util-visit: 1.2.0 2585 | micromark-util-types: 1.0.2 2586 | uvu: 0.5.6 2587 | vfile-location: 4.0.1 2588 | vfile-message: 3.1.2 2589 | dev: true 2590 | 2591 | /micromark-util-html-tag-name/1.1.0: 2592 | resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==} 2593 | dev: true 2594 | 2595 | /micromark-util-normalize-identifier/1.0.0: 2596 | resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} 2597 | dependencies: 2598 | micromark-util-symbol: 1.0.1 2599 | dev: true 2600 | 2601 | /micromark-util-resolve-all/1.0.0: 2602 | resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} 2603 | dependencies: 2604 | micromark-util-types: 1.0.2 2605 | dev: true 2606 | 2607 | /micromark-util-sanitize-uri/1.0.0: 2608 | resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==} 2609 | dependencies: 2610 | micromark-util-character: 1.1.0 2611 | micromark-util-encode: 1.0.1 2612 | micromark-util-symbol: 1.0.1 2613 | dev: true 2614 | 2615 | /micromark-util-subtokenize/1.0.2: 2616 | resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} 2617 | dependencies: 2618 | micromark-util-chunked: 1.0.0 2619 | micromark-util-symbol: 1.0.1 2620 | micromark-util-types: 1.0.2 2621 | uvu: 0.5.6 2622 | dev: true 2623 | 2624 | /micromark-util-symbol/1.0.1: 2625 | resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} 2626 | dev: true 2627 | 2628 | /micromark-util-types/1.0.2: 2629 | resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} 2630 | dev: true 2631 | 2632 | /micromark/3.0.10: 2633 | resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==} 2634 | dependencies: 2635 | '@types/debug': 4.1.7 2636 | debug: 4.3.4 2637 | decode-named-character-reference: 1.0.2 2638 | micromark-core-commonmark: 1.0.6 2639 | micromark-factory-space: 1.0.0 2640 | micromark-util-character: 1.1.0 2641 | micromark-util-chunked: 1.0.0 2642 | micromark-util-combine-extensions: 1.0.0 2643 | micromark-util-decode-numeric-character-reference: 1.0.0 2644 | micromark-util-encode: 1.0.1 2645 | micromark-util-normalize-identifier: 1.0.0 2646 | micromark-util-resolve-all: 1.0.0 2647 | micromark-util-sanitize-uri: 1.0.0 2648 | micromark-util-subtokenize: 1.0.2 2649 | micromark-util-symbol: 1.0.1 2650 | micromark-util-types: 1.0.2 2651 | uvu: 0.5.6 2652 | transitivePeerDependencies: 2653 | - supports-color 2654 | dev: true 2655 | 2656 | /micromatch/4.0.5: 2657 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2658 | engines: {node: '>=8.6'} 2659 | dependencies: 2660 | braces: 3.0.2 2661 | picomatch: 2.3.1 2662 | dev: true 2663 | 2664 | /micromorph/0.2.2: 2665 | resolution: {integrity: sha512-Tymex3rvugsJTrn8fSHIqXD4gRbr+Bhp8fTVcHB8vPzJjiunKxlb/nKQJ5wV5vaguVM0qgBDJeqaqmY5U7PprA==} 2666 | dev: true 2667 | 2668 | /million/1.12.3-beta.7: 2669 | resolution: {integrity: sha512-sWC6IXdf1Avmuhttq0od/vEuY3mIGMGVgQUtJDpusD9c/U0NGg0uzKFL4D3wR97+0NF/fiDNQzQ3nPvrwYudeg==} 2670 | dev: false 2671 | 2672 | /mime/1.2.4: 2673 | resolution: {integrity: sha512-u4y8WFj7SnfbHxyzCMSV2nL/GKbfZ+lidPf1V4/XUKCJ49N6ttQWp/xnqpbMQEx3naBSt93i2qtPLFj/mjPDaA==} 2674 | dev: true 2675 | 2676 | /mime/3.0.0: 2677 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 2678 | engines: {node: '>=10.0.0'} 2679 | hasBin: true 2680 | dev: true 2681 | 2682 | /mimic-fn/2.1.0: 2683 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2684 | engines: {node: '>=6'} 2685 | dev: true 2686 | 2687 | /mimic-fn/4.0.0: 2688 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2689 | engines: {node: '>=12'} 2690 | dev: true 2691 | 2692 | /mkdirp/0.3.0: 2693 | resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} 2694 | deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) 2695 | dev: true 2696 | 2697 | /mri/1.2.0: 2698 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 2699 | engines: {node: '>=4'} 2700 | dev: true 2701 | 2702 | /mrmime/1.0.1: 2703 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 2704 | engines: {node: '>=10'} 2705 | dev: true 2706 | 2707 | /ms/2.1.2: 2708 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2709 | dev: true 2710 | 2711 | /nanoid/3.3.4: 2712 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 2713 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2714 | hasBin: true 2715 | dev: true 2716 | 2717 | /nlcst-to-string/2.0.4: 2718 | resolution: {integrity: sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==} 2719 | dev: true 2720 | 2721 | /nlcst-to-string/3.1.0: 2722 | resolution: {integrity: sha512-Y8HQWKw/zrHTCnu2zcFBN1dV6vN0NUG7s5fkEj380G8tF3R+vA2KG+tDl2QoHVQCTHGHVXwoni2RQkDSFQb1PA==} 2723 | dependencies: 2724 | '@types/nlcst': 1.0.0 2725 | dev: true 2726 | 2727 | /node-domexception/1.0.0: 2728 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 2729 | engines: {node: '>=10.5.0'} 2730 | dev: true 2731 | 2732 | /node-fetch/3.2.10: 2733 | resolution: {integrity: sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==} 2734 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2735 | dependencies: 2736 | data-uri-to-buffer: 4.0.0 2737 | fetch-blob: 3.2.0 2738 | formdata-polyfill: 4.0.10 2739 | dev: true 2740 | 2741 | /node-releases/2.0.6: 2742 | resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} 2743 | dev: true 2744 | 2745 | /npm-run-path/5.1.0: 2746 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} 2747 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2748 | dependencies: 2749 | path-key: 4.0.0 2750 | dev: true 2751 | 2752 | /onetime/5.1.2: 2753 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2754 | engines: {node: '>=6'} 2755 | dependencies: 2756 | mimic-fn: 2.1.0 2757 | dev: true 2758 | 2759 | /onetime/6.0.0: 2760 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 2761 | engines: {node: '>=12'} 2762 | dependencies: 2763 | mimic-fn: 4.0.0 2764 | dev: true 2765 | 2766 | /ora/6.1.2: 2767 | resolution: {integrity: sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==} 2768 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2769 | dependencies: 2770 | bl: 5.0.0 2771 | chalk: 5.0.1 2772 | cli-cursor: 4.0.0 2773 | cli-spinners: 2.7.0 2774 | is-interactive: 2.0.0 2775 | is-unicode-supported: 1.2.0 2776 | log-symbols: 5.1.0 2777 | strip-ansi: 7.0.1 2778 | wcwidth: 1.0.1 2779 | dev: true 2780 | 2781 | /p-limit/2.3.0: 2782 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2783 | engines: {node: '>=6'} 2784 | dependencies: 2785 | p-try: 2.2.0 2786 | dev: true 2787 | 2788 | /p-limit/3.1.0: 2789 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2790 | engines: {node: '>=10'} 2791 | dependencies: 2792 | yocto-queue: 0.1.0 2793 | dev: true 2794 | 2795 | /p-locate/4.1.0: 2796 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2797 | engines: {node: '>=8'} 2798 | dependencies: 2799 | p-limit: 2.3.0 2800 | dev: true 2801 | 2802 | /p-locate/5.0.0: 2803 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2804 | engines: {node: '>=10'} 2805 | dependencies: 2806 | p-limit: 3.1.0 2807 | dev: true 2808 | 2809 | /p-try/2.2.0: 2810 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2811 | engines: {node: '>=6'} 2812 | dev: true 2813 | 2814 | /parse-entities/1.2.2: 2815 | resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==} 2816 | dependencies: 2817 | character-entities: 1.2.4 2818 | character-entities-legacy: 1.1.4 2819 | character-reference-invalid: 1.1.4 2820 | is-alphanumerical: 1.0.4 2821 | is-decimal: 1.0.4 2822 | is-hexadecimal: 1.0.4 2823 | dev: true 2824 | 2825 | /parse-entities/4.0.0: 2826 | resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==} 2827 | dependencies: 2828 | '@types/unist': 2.0.6 2829 | character-entities: 2.0.2 2830 | character-entities-legacy: 3.0.0 2831 | character-reference-invalid: 2.0.1 2832 | decode-named-character-reference: 1.0.2 2833 | is-alphanumerical: 2.0.1 2834 | is-decimal: 2.0.1 2835 | is-hexadecimal: 2.0.1 2836 | dev: true 2837 | 2838 | /parse-latin/5.0.0: 2839 | resolution: {integrity: sha512-Ht+4/+AUySMS5HKGAiQpBmkFsHSoGrj6Y83flLCa5OIBdtsVkO3UD4OtboJ0O0vZiOznH02x8qlwg9KLUVXuNg==} 2840 | dependencies: 2841 | nlcst-to-string: 2.0.4 2842 | unist-util-modify-children: 2.0.0 2843 | unist-util-visit-children: 1.1.4 2844 | dev: true 2845 | 2846 | /parse5/6.0.1: 2847 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} 2848 | dev: true 2849 | 2850 | /path-browserify/1.0.1: 2851 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 2852 | dev: true 2853 | 2854 | /path-exists/4.0.0: 2855 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2856 | engines: {node: '>=8'} 2857 | dev: true 2858 | 2859 | /path-key/3.1.1: 2860 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2861 | engines: {node: '>=8'} 2862 | dev: true 2863 | 2864 | /path-key/4.0.0: 2865 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 2866 | engines: {node: '>=12'} 2867 | dev: true 2868 | 2869 | /path-parse/1.0.7: 2870 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2871 | dev: true 2872 | 2873 | /path-to-regexp/6.2.1: 2874 | resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} 2875 | dev: true 2876 | 2877 | /periscopic/3.0.4: 2878 | resolution: {integrity: sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==} 2879 | dependencies: 2880 | estree-walker: 3.0.1 2881 | is-reference: 3.0.0 2882 | dev: true 2883 | 2884 | /picocolors/1.0.0: 2885 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2886 | dev: true 2887 | 2888 | /picomatch/2.3.1: 2889 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2890 | engines: {node: '>=8.6'} 2891 | dev: true 2892 | 2893 | /pify/4.0.1: 2894 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 2895 | engines: {node: '>=6'} 2896 | dev: true 2897 | 2898 | /pkg-dir/4.2.0: 2899 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 2900 | engines: {node: '>=8'} 2901 | dependencies: 2902 | find-up: 4.1.0 2903 | dev: true 2904 | 2905 | /postcss-load-config/3.1.4_postcss@8.4.16: 2906 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 2907 | engines: {node: '>= 10'} 2908 | peerDependencies: 2909 | postcss: '>=8.0.9' 2910 | ts-node: '>=9.0.0' 2911 | peerDependenciesMeta: 2912 | postcss: 2913 | optional: true 2914 | ts-node: 2915 | optional: true 2916 | dependencies: 2917 | lilconfig: 2.0.6 2918 | postcss: 8.4.16 2919 | yaml: 1.10.2 2920 | dev: true 2921 | 2922 | /postcss/8.4.16: 2923 | resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} 2924 | engines: {node: ^10 || ^12 || >=14} 2925 | dependencies: 2926 | nanoid: 3.3.4 2927 | picocolors: 1.0.0 2928 | source-map-js: 1.0.2 2929 | dev: true 2930 | 2931 | /preferred-pm/3.0.3: 2932 | resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} 2933 | engines: {node: '>=10'} 2934 | dependencies: 2935 | find-up: 5.0.0 2936 | find-yarn-workspace-root2: 1.2.16 2937 | path-exists: 4.0.0 2938 | which-pm: 2.0.0 2939 | dev: true 2940 | 2941 | /prettier-plugin-astro/0.0.12: 2942 | resolution: {integrity: sha512-ZSNvHuyQ+fxgqA4qoiOf2FvN8FdWcBrAmnik3gPL466TFtMcOV2hVNVVErBcnG/qMyPf7WLwPvBLtTyWpDEUHg==} 2943 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0, npm: '>=6.14.0'} 2944 | dependencies: 2945 | '@astrojs/parser': 0.22.2 2946 | prettier: 2.7.1 2947 | sass-formatter: 0.7.5 2948 | dev: true 2949 | 2950 | /prettier/2.7.1: 2951 | resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} 2952 | engines: {node: '>=10.13.0'} 2953 | hasBin: true 2954 | dev: true 2955 | 2956 | /prismjs/1.28.0: 2957 | resolution: {integrity: sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==} 2958 | engines: {node: '>=6'} 2959 | dev: true 2960 | 2961 | /prompts/2.4.2: 2962 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 2963 | engines: {node: '>= 6'} 2964 | dependencies: 2965 | kleur: 3.0.3 2966 | sisteransi: 1.0.5 2967 | dev: true 2968 | 2969 | /property-information/6.1.1: 2970 | resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==} 2971 | dev: true 2972 | 2973 | /qs/0.4.2: 2974 | resolution: {integrity: sha512-VAtfWeUtlBOnGiWFok2vOIMmwumiLmpqXDcXQcAEIQmLYgDbjrkHrcFBfth+YVDeRsz7jX44dhJr7IBJR0t/FQ==} 2975 | dev: true 2976 | 2977 | /queue-microtask/1.2.3: 2978 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2979 | dev: true 2980 | 2981 | /readable-stream/3.6.0: 2982 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 2983 | engines: {node: '>= 6'} 2984 | dependencies: 2985 | inherits: 2.0.4 2986 | string_decoder: 1.3.0 2987 | util-deprecate: 1.0.2 2988 | dev: true 2989 | 2990 | /recast/0.20.5: 2991 | resolution: {integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==} 2992 | engines: {node: '>= 4'} 2993 | dependencies: 2994 | ast-types: 0.14.2 2995 | esprima: 4.0.1 2996 | source-map: 0.6.1 2997 | tslib: 2.4.0 2998 | dev: true 2999 | 3000 | /regenerator-runtime/0.13.9: 3001 | resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} 3002 | dev: true 3003 | 3004 | /rehype-parse/8.0.4: 3005 | resolution: {integrity: sha512-MJJKONunHjoTh4kc3dsM1v3C9kGrrxvA3U8PxZlP2SjH8RNUSrb+lF7Y0KVaUDnGH2QZ5vAn7ulkiajM9ifuqg==} 3006 | dependencies: 3007 | '@types/hast': 2.3.4 3008 | hast-util-from-parse5: 7.1.0 3009 | parse5: 6.0.1 3010 | unified: 10.1.2 3011 | dev: true 3012 | 3013 | /rehype-raw/6.1.1: 3014 | resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} 3015 | dependencies: 3016 | '@types/hast': 2.3.4 3017 | hast-util-raw: 7.2.2 3018 | unified: 10.1.2 3019 | dev: true 3020 | 3021 | /rehype-stringify/9.0.3: 3022 | resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==} 3023 | dependencies: 3024 | '@types/hast': 2.3.4 3025 | hast-util-to-html: 8.0.3 3026 | unified: 10.1.2 3027 | dev: true 3028 | 3029 | /rehype/12.0.1: 3030 | resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} 3031 | dependencies: 3032 | '@types/hast': 2.3.4 3033 | rehype-parse: 8.0.4 3034 | rehype-stringify: 9.0.3 3035 | unified: 10.1.2 3036 | dev: true 3037 | 3038 | /remark-details/1.8.0: 3039 | resolution: {integrity: sha512-O8kGnRneRV3Y8zD6UKjhXB1K/X8VkeGg3uQvz3reRgMvv8REJfF15etmqXLo84L8OvmvKFycOLR+ZtmdIpzmWw==} 3040 | dev: true 3041 | 3042 | /remark-frontmatter/4.0.1: 3043 | resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} 3044 | dependencies: 3045 | '@types/mdast': 3.0.10 3046 | mdast-util-frontmatter: 1.0.0 3047 | micromark-extension-frontmatter: 1.0.0 3048 | unified: 10.1.2 3049 | dev: true 3050 | 3051 | /remark-gfm/3.0.1: 3052 | resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} 3053 | dependencies: 3054 | '@types/mdast': 3.0.10 3055 | mdast-util-gfm: 2.0.1 3056 | micromark-extension-gfm: 2.0.1 3057 | unified: 10.1.2 3058 | transitivePeerDependencies: 3059 | - supports-color 3060 | dev: true 3061 | 3062 | /remark-html-katex/4.0.1: 3063 | resolution: {integrity: sha512-I5tnyNDxQTIcyZ/Y6/evSaN1naKKiovD0hgizkSseOWLm589uu8AF/LzL7NxOw2ZWqM7PoaGh7N8ACywe+QQUA==} 3064 | dependencies: 3065 | '@types/katex': 0.11.1 3066 | '@types/mdast': 3.0.10 3067 | katex: 0.13.24 3068 | rehype-parse: 8.0.4 3069 | unified: 10.1.2 3070 | unist-util-remove-position: 4.0.1 3071 | unist-util-visit: 4.1.0 3072 | dev: true 3073 | 3074 | /remark-latex/0.12.12: 3075 | resolution: {integrity: sha512-5JmUl1MwCuz+qxkZQTd9vUmQttcJPoaW9GYKXhVrAU+Zn/RppQvQAPR+4MJBADnFhf9z3aoO10YCIcX9eNGXVQ==} 3076 | dependencies: 3077 | ccount: 1.1.0 3078 | escape-latex: 1.2.0 3079 | is-alphanumeric: 1.0.0 3080 | longest-streak: 2.0.4 3081 | mdast-util-compact: 1.0.4 3082 | remark: 10.0.1 3083 | remark-details: 1.8.0 3084 | strip-markdown: 3.1.2 3085 | unherit: 1.1.3 3086 | xtend: 4.0.2 3087 | dev: true 3088 | 3089 | /remark-math/5.1.1: 3090 | resolution: {integrity: sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==} 3091 | dependencies: 3092 | '@types/mdast': 3.0.10 3093 | mdast-util-math: 2.0.1 3094 | micromark-extension-math: 2.0.2 3095 | unified: 10.1.2 3096 | dev: true 3097 | 3098 | /remark-mdx/2.1.2: 3099 | resolution: {integrity: sha512-npQagPdczPAv0xN9F8GSi5hJfAe/z6nBjylyfOfjLOmz086ahWrIjlk4BulRfNhA+asutqWxyuT3DFVsxiTVHA==} 3100 | dependencies: 3101 | mdast-util-mdx: 2.0.0 3102 | micromark-extension-mdxjs: 1.0.0 3103 | transitivePeerDependencies: 3104 | - supports-color 3105 | dev: true 3106 | 3107 | /remark-parse/10.0.1: 3108 | resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} 3109 | dependencies: 3110 | '@types/mdast': 3.0.10 3111 | mdast-util-from-markdown: 1.2.0 3112 | unified: 10.1.2 3113 | transitivePeerDependencies: 3114 | - supports-color 3115 | dev: true 3116 | 3117 | /remark-parse/6.0.3: 3118 | resolution: {integrity: sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==} 3119 | dependencies: 3120 | collapse-white-space: 1.0.6 3121 | is-alphabetical: 1.0.4 3122 | is-decimal: 1.0.4 3123 | is-whitespace-character: 1.0.4 3124 | is-word-character: 1.0.4 3125 | markdown-escapes: 1.0.4 3126 | parse-entities: 1.2.2 3127 | repeat-string: 1.6.1 3128 | state-toggle: 1.0.3 3129 | trim: 0.0.1 3130 | trim-trailing-lines: 1.1.4 3131 | unherit: 1.1.3 3132 | unist-util-remove-position: 1.1.4 3133 | vfile-location: 2.0.6 3134 | xtend: 4.0.2 3135 | dev: true 3136 | 3137 | /remark-rehype/10.1.0: 3138 | resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} 3139 | dependencies: 3140 | '@types/hast': 2.3.4 3141 | '@types/mdast': 3.0.10 3142 | mdast-util-to-hast: 12.2.0 3143 | unified: 10.1.2 3144 | dev: true 3145 | 3146 | /remark-shiki-twoslash/3.1.0: 3147 | resolution: {integrity: sha512-6LqSqVtHQR4S0DKfdQ2/ePn9loTKUtpyopYvwk8johjDTeUW5MkaLQuZHlWNkkST/4aMbz6aTkstIcwfwcHpXg==} 3148 | dependencies: 3149 | '@typescript/twoslash': 3.1.0 3150 | '@typescript/vfs': 1.3.4 3151 | fenceparser: 1.1.1 3152 | regenerator-runtime: 0.13.9 3153 | shiki: 0.10.1 3154 | shiki-twoslash: 3.1.0 3155 | tslib: 2.1.0 3156 | typescript: 4.6.4 3157 | unist-util-visit: 2.0.3 3158 | transitivePeerDependencies: 3159 | - supports-color 3160 | dev: true 3161 | 3162 | /remark-smartypants/2.0.0: 3163 | resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==} 3164 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3165 | dependencies: 3166 | retext: 8.1.0 3167 | retext-smartypants: 5.2.0 3168 | unist-util-visit: 4.1.0 3169 | dev: true 3170 | 3171 | /remark-stringify/6.0.4: 3172 | resolution: {integrity: sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==} 3173 | dependencies: 3174 | ccount: 1.1.0 3175 | is-alphanumeric: 1.0.0 3176 | is-decimal: 1.0.4 3177 | is-whitespace-character: 1.0.4 3178 | longest-streak: 2.0.4 3179 | markdown-escapes: 1.0.4 3180 | markdown-table: 1.1.3 3181 | mdast-util-compact: 1.0.4 3182 | parse-entities: 1.2.2 3183 | repeat-string: 1.6.1 3184 | state-toggle: 1.0.3 3185 | stringify-entities: 1.3.2 3186 | unherit: 1.1.3 3187 | xtend: 4.0.2 3188 | dev: true 3189 | 3190 | /remark/10.0.1: 3191 | resolution: {integrity: sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==} 3192 | dependencies: 3193 | remark-parse: 6.0.3 3194 | remark-stringify: 6.0.4 3195 | unified: 7.1.0 3196 | dev: true 3197 | 3198 | /repeat-string/1.6.1: 3199 | resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} 3200 | engines: {node: '>=0.10'} 3201 | dev: true 3202 | 3203 | /replace-ext/1.0.0: 3204 | resolution: {integrity: sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=} 3205 | engines: {node: '>= 0.10'} 3206 | dev: true 3207 | 3208 | /resolve/1.22.1: 3209 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 3210 | hasBin: true 3211 | dependencies: 3212 | is-core-module: 2.10.0 3213 | path-parse: 1.0.7 3214 | supports-preserve-symlinks-flag: 1.0.0 3215 | dev: true 3216 | 3217 | /restore-cursor/4.0.0: 3218 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} 3219 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3220 | dependencies: 3221 | onetime: 5.1.2 3222 | signal-exit: 3.0.7 3223 | dev: true 3224 | 3225 | /retext-latin/3.1.0: 3226 | resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} 3227 | dependencies: 3228 | '@types/nlcst': 1.0.0 3229 | parse-latin: 5.0.0 3230 | unherit: 3.0.0 3231 | unified: 10.1.2 3232 | dev: true 3233 | 3234 | /retext-smartypants/5.2.0: 3235 | resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} 3236 | dependencies: 3237 | '@types/nlcst': 1.0.0 3238 | nlcst-to-string: 3.1.0 3239 | unified: 10.1.2 3240 | unist-util-visit: 4.1.0 3241 | dev: true 3242 | 3243 | /retext-stringify/3.1.0: 3244 | resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} 3245 | dependencies: 3246 | '@types/nlcst': 1.0.0 3247 | nlcst-to-string: 3.1.0 3248 | unified: 10.1.2 3249 | dev: true 3250 | 3251 | /retext/8.1.0: 3252 | resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} 3253 | dependencies: 3254 | '@types/nlcst': 1.0.0 3255 | retext-latin: 3.1.0 3256 | retext-stringify: 3.1.0 3257 | unified: 10.1.2 3258 | dev: true 3259 | 3260 | /reusify/1.0.4: 3261 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3262 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3263 | dev: true 3264 | 3265 | /rollup/2.77.2: 3266 | resolution: {integrity: sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==} 3267 | engines: {node: '>=10.0.0'} 3268 | hasBin: true 3269 | optionalDependencies: 3270 | fsevents: 2.3.2 3271 | dev: true 3272 | 3273 | /run-parallel/1.2.0: 3274 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3275 | dependencies: 3276 | queue-microtask: 1.2.3 3277 | dev: true 3278 | 3279 | /s.color/0.0.15: 3280 | resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} 3281 | dev: true 3282 | 3283 | /sade/1.8.1: 3284 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 3285 | engines: {node: '>=6'} 3286 | dependencies: 3287 | mri: 1.2.0 3288 | dev: true 3289 | 3290 | /safe-buffer/5.1.2: 3291 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 3292 | dev: true 3293 | 3294 | /safe-buffer/5.2.1: 3295 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 3296 | dev: true 3297 | 3298 | /sass-formatter/0.7.5: 3299 | resolution: {integrity: sha512-NKFP8ddjhUYi6A/iD1cEtzkEs91U61kzqe3lY9SVNuvX7LGc88xnEN0mmsWL7Ol//YTi2GL/ol7b9XZ2+hgXuA==} 3300 | dependencies: 3301 | suf-log: 2.5.3 3302 | dev: true 3303 | 3304 | /section-matter/1.0.0: 3305 | resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} 3306 | engines: {node: '>=4'} 3307 | dependencies: 3308 | extend-shallow: 2.0.1 3309 | kind-of: 6.0.3 3310 | dev: true 3311 | 3312 | /semver/6.3.0: 3313 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 3314 | hasBin: true 3315 | dev: true 3316 | 3317 | /semver/7.3.7: 3318 | resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} 3319 | engines: {node: '>=10'} 3320 | hasBin: true 3321 | dependencies: 3322 | lru-cache: 6.0.0 3323 | dev: true 3324 | 3325 | /shebang-command/2.0.0: 3326 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3327 | engines: {node: '>=8'} 3328 | dependencies: 3329 | shebang-regex: 3.0.0 3330 | dev: true 3331 | 3332 | /shebang-regex/3.0.0: 3333 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3334 | engines: {node: '>=8'} 3335 | dev: true 3336 | 3337 | /shiki-twoslash/3.1.0: 3338 | resolution: {integrity: sha512-uDqrTutOIZzyHbo103GsK7Vvc10saK1XCCivnOQ1NHJzgp3FBilEpftGeVzVSMOJs+JyhI7whkvhXV7kXQ5zCg==} 3339 | dependencies: 3340 | '@typescript/twoslash': 3.1.0 3341 | '@typescript/vfs': 1.3.4 3342 | shiki: 0.10.1 3343 | typescript: 4.6.4 3344 | transitivePeerDependencies: 3345 | - supports-color 3346 | dev: true 3347 | 3348 | /shiki/0.10.1: 3349 | resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} 3350 | dependencies: 3351 | jsonc-parser: 3.1.0 3352 | vscode-oniguruma: 1.6.2 3353 | vscode-textmate: 5.2.0 3354 | dev: true 3355 | 3356 | /signal-exit/3.0.7: 3357 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3358 | dev: true 3359 | 3360 | /sirv/2.0.2: 3361 | resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} 3362 | engines: {node: '>= 10'} 3363 | dependencies: 3364 | '@polka/url': 1.0.0-next.21 3365 | mrmime: 1.0.1 3366 | totalist: 3.0.0 3367 | dev: true 3368 | 3369 | /sisteransi/1.0.5: 3370 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 3371 | dev: true 3372 | 3373 | /slash/4.0.0: 3374 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} 3375 | engines: {node: '>=12'} 3376 | dev: true 3377 | 3378 | /solid-js/1.4.8: 3379 | resolution: {integrity: sha512-XErZdnnYYXF7OwGSUAPcua2y5/ELB/c53zFCpWiEGqxTNoH1iQghzI8EsHJXk06sNn+Z/TGhb8bPDNNGSgimag==} 3380 | 3381 | /solid/0.2.1: 3382 | resolution: {integrity: sha512-kVdiCZd2dMH7ESvmHrEZuOUgjADW2nWjiDzyhgPfC79i6UnZyzyspaMbpjxPh1JTul6Zh3bLocY9FaFY/ikyKA==} 3383 | dependencies: 3384 | express: 2.5.11 3385 | thermos: 0.1.0 3386 | dev: true 3387 | 3388 | /source-map-js/1.0.2: 3389 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3390 | engines: {node: '>=0.10.0'} 3391 | dev: true 3392 | 3393 | /source-map/0.6.1: 3394 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3395 | engines: {node: '>=0.10.0'} 3396 | dev: true 3397 | 3398 | /source-map/0.7.4: 3399 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 3400 | engines: {node: '>= 8'} 3401 | dev: true 3402 | 3403 | /sourcemap-codec/1.4.8: 3404 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 3405 | dev: true 3406 | 3407 | /space-separated-tokens/2.0.1: 3408 | resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==} 3409 | dev: true 3410 | 3411 | /sprintf-js/1.0.3: 3412 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 3413 | dev: true 3414 | 3415 | /state-toggle/1.0.3: 3416 | resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} 3417 | dev: true 3418 | 3419 | /string-width/4.2.3: 3420 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3421 | engines: {node: '>=8'} 3422 | dependencies: 3423 | emoji-regex: 8.0.0 3424 | is-fullwidth-code-point: 3.0.0 3425 | strip-ansi: 6.0.1 3426 | dev: true 3427 | 3428 | /string-width/5.1.2: 3429 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3430 | engines: {node: '>=12'} 3431 | dependencies: 3432 | eastasianwidth: 0.2.0 3433 | emoji-regex: 9.2.2 3434 | strip-ansi: 7.0.1 3435 | dev: true 3436 | 3437 | /string_decoder/1.3.0: 3438 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 3439 | dependencies: 3440 | safe-buffer: 5.2.1 3441 | dev: true 3442 | 3443 | /stringify-entities/1.3.2: 3444 | resolution: {integrity: sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==} 3445 | dependencies: 3446 | character-entities-html4: 1.1.4 3447 | character-entities-legacy: 1.1.4 3448 | is-alphanumerical: 1.0.4 3449 | is-hexadecimal: 1.0.4 3450 | dev: true 3451 | 3452 | /stringify-entities/4.0.3: 3453 | resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} 3454 | dependencies: 3455 | character-entities-html4: 2.1.0 3456 | character-entities-legacy: 3.0.0 3457 | dev: true 3458 | 3459 | /strip-ansi/6.0.1: 3460 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3461 | engines: {node: '>=8'} 3462 | dependencies: 3463 | ansi-regex: 5.0.1 3464 | dev: true 3465 | 3466 | /strip-ansi/7.0.1: 3467 | resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} 3468 | engines: {node: '>=12'} 3469 | dependencies: 3470 | ansi-regex: 6.0.1 3471 | dev: true 3472 | 3473 | /strip-bom-string/1.0.0: 3474 | resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} 3475 | engines: {node: '>=0.10.0'} 3476 | dev: true 3477 | 3478 | /strip-bom/3.0.0: 3479 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 3480 | engines: {node: '>=4'} 3481 | dev: true 3482 | 3483 | /strip-bom/4.0.0: 3484 | resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} 3485 | engines: {node: '>=8'} 3486 | dev: true 3487 | 3488 | /strip-final-newline/3.0.0: 3489 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 3490 | engines: {node: '>=12'} 3491 | dev: true 3492 | 3493 | /strip-markdown/3.1.2: 3494 | resolution: {integrity: sha512-NjwW6CEefesmHQPs7lof/lgnSriqUnRNOWpnrNPq9A7/yOCdnhaB7DcxlhYuN7WiiRUe349aitAsTQ/ajM9Dmw==} 3495 | dev: true 3496 | 3497 | /style-to-object/0.3.0: 3498 | resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} 3499 | dependencies: 3500 | inline-style-parser: 0.1.1 3501 | dev: true 3502 | 3503 | /suf-log/2.5.3: 3504 | resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} 3505 | dependencies: 3506 | s.color: 0.0.15 3507 | dev: true 3508 | 3509 | /supports-color/5.5.0: 3510 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3511 | engines: {node: '>=4'} 3512 | dependencies: 3513 | has-flag: 3.0.0 3514 | dev: true 3515 | 3516 | /supports-color/7.2.0: 3517 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3518 | engines: {node: '>=8'} 3519 | dependencies: 3520 | has-flag: 4.0.0 3521 | dev: true 3522 | 3523 | /supports-esm/1.0.0: 3524 | resolution: {integrity: sha512-96Am8CDqUaC0I2+C/swJ0yEvM8ZnGn4unoers/LSdE4umhX7mELzqyLzx3HnZAluq5PXIsGMKqa7NkqaeHMPcg==} 3525 | dependencies: 3526 | has-package-exports: 1.3.0 3527 | dev: true 3528 | 3529 | /supports-preserve-symlinks-flag/1.0.0: 3530 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3531 | engines: {node: '>= 0.4'} 3532 | dev: true 3533 | 3534 | /thermos/0.1.0: 3535 | resolution: {integrity: sha512-1sYrbXxpUJyoBpPlDzXpiB4uS8OzwPL+C/chT58X8gD+EpQpIeLOAYEBx/JnCDIKa53ur9WYMvYEuAjbXwr8UQ==} 3536 | dev: true 3537 | 3538 | /to-fast-properties/2.0.0: 3539 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3540 | engines: {node: '>=4'} 3541 | dev: true 3542 | 3543 | /to-regex-range/5.0.1: 3544 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3545 | engines: {node: '>=8.0'} 3546 | dependencies: 3547 | is-number: 7.0.0 3548 | dev: true 3549 | 3550 | /totalist/3.0.0: 3551 | resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} 3552 | engines: {node: '>=6'} 3553 | dev: true 3554 | 3555 | /trim-lines/3.0.1: 3556 | resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 3557 | dev: true 3558 | 3559 | /trim-trailing-lines/1.1.4: 3560 | resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} 3561 | dev: true 3562 | 3563 | /trim/0.0.1: 3564 | resolution: {integrity: sha1-WFhUf2spB1fulczMZm+1AITEYN0=} 3565 | dev: true 3566 | 3567 | /trough/1.0.5: 3568 | resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} 3569 | dev: true 3570 | 3571 | /trough/2.1.0: 3572 | resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} 3573 | dev: true 3574 | 3575 | /tsconfig-resolver/3.0.1: 3576 | resolution: {integrity: sha512-ZHqlstlQF449v8glscGRXzL6l2dZvASPCdXJRWG4gHEZlUVx2Jtmr+a2zeVG4LCsKhDXKRj5R3h0C/98UcVAQg==} 3577 | dependencies: 3578 | '@types/json5': 0.0.30 3579 | '@types/resolve': 1.20.2 3580 | json5: 2.2.1 3581 | resolve: 1.22.1 3582 | strip-bom: 4.0.0 3583 | type-fest: 0.13.1 3584 | dev: true 3585 | 3586 | /tslib/2.1.0: 3587 | resolution: {integrity: sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==} 3588 | dev: true 3589 | 3590 | /tslib/2.4.0: 3591 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 3592 | dev: true 3593 | 3594 | /tsm/2.2.2: 3595 | resolution: {integrity: sha512-bXkt675NbbqfwRHSSn8kSNEEHvoIUFDM9G6tUENkjEKpAEbrEzieO3PxUiRJylMw8fEGpcf5lSjadzzz12pc2A==} 3596 | engines: {node: '>=12'} 3597 | hasBin: true 3598 | dependencies: 3599 | esbuild: 0.14.54 3600 | dev: true 3601 | 3602 | /type-fest/0.13.1: 3603 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} 3604 | engines: {node: '>=10'} 3605 | dev: true 3606 | 3607 | /type-fest/2.18.0: 3608 | resolution: {integrity: sha512-pRS+/yrW5TjPPHNOvxhbNZexr2bS63WjrMU8a+VzEBhUi9Tz1pZeD+vQz3ut0svZ46P+SRqMEPnJmk2XnvNzTw==} 3609 | engines: {node: '>=12.20'} 3610 | dev: true 3611 | 3612 | /typescript/4.6.4: 3613 | resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} 3614 | engines: {node: '>=4.2.0'} 3615 | hasBin: true 3616 | dev: true 3617 | 3618 | /unherit/1.1.3: 3619 | resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} 3620 | dependencies: 3621 | inherits: 2.0.4 3622 | xtend: 4.0.2 3623 | dev: true 3624 | 3625 | /unherit/3.0.0: 3626 | resolution: {integrity: sha512-UmvIQZGEc9qdLIQ8mv8/61n6PiMgfbOoASPKHpCvII5srShCQSa6jSjBjlZOR4bxt2XnT6uo6csmPKRi+zQ0Jg==} 3627 | dev: true 3628 | 3629 | /unified/10.1.2: 3630 | resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} 3631 | dependencies: 3632 | '@types/unist': 2.0.6 3633 | bail: 2.0.2 3634 | extend: 3.0.2 3635 | is-buffer: 2.0.5 3636 | is-plain-obj: 4.1.0 3637 | trough: 2.1.0 3638 | vfile: 5.3.4 3639 | dev: true 3640 | 3641 | /unified/7.1.0: 3642 | resolution: {integrity: sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==} 3643 | dependencies: 3644 | '@types/unist': 2.0.6 3645 | '@types/vfile': 3.0.2 3646 | bail: 1.0.5 3647 | extend: 3.0.2 3648 | is-plain-obj: 1.1.0 3649 | trough: 1.0.5 3650 | vfile: 3.0.1 3651 | x-is-string: 0.1.0 3652 | dev: true 3653 | 3654 | /unist-builder/3.0.0: 3655 | resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==} 3656 | dependencies: 3657 | '@types/unist': 2.0.6 3658 | dev: true 3659 | 3660 | /unist-util-generated/2.0.0: 3661 | resolution: {integrity: sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==} 3662 | dev: true 3663 | 3664 | /unist-util-is/3.0.0: 3665 | resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} 3666 | dev: true 3667 | 3668 | /unist-util-is/4.1.0: 3669 | resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} 3670 | dev: true 3671 | 3672 | /unist-util-is/5.1.1: 3673 | resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} 3674 | dev: true 3675 | 3676 | /unist-util-map/3.1.1: 3677 | resolution: {integrity: sha512-n36sjBn4ibPtAzrFweyT4FOcCI/UdzboaEcsZvwoAyD/gVw5B3OLlMBySePMO6r+uzjxQEyRll2akfVaT4SHhw==} 3678 | dependencies: 3679 | '@types/unist': 2.0.6 3680 | dev: true 3681 | 3682 | /unist-util-modify-children/2.0.0: 3683 | resolution: {integrity: sha512-HGrj7JQo9DwZt8XFsX8UD4gGqOsIlCih9opG6Y+N11XqkBGKzHo8cvDi+MfQQgiZ7zXRUiQREYHhjOBHERTMdg==} 3684 | dependencies: 3685 | array-iterate: 1.1.4 3686 | dev: true 3687 | 3688 | /unist-util-position-from-estree/1.1.1: 3689 | resolution: {integrity: sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==} 3690 | dependencies: 3691 | '@types/unist': 2.0.6 3692 | dev: true 3693 | 3694 | /unist-util-position/4.0.3: 3695 | resolution: {integrity: sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==} 3696 | dependencies: 3697 | '@types/unist': 2.0.6 3698 | dev: true 3699 | 3700 | /unist-util-remove-position/1.1.4: 3701 | resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==} 3702 | dependencies: 3703 | unist-util-visit: 1.4.1 3704 | dev: true 3705 | 3706 | /unist-util-remove-position/4.0.1: 3707 | resolution: {integrity: sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==} 3708 | dependencies: 3709 | '@types/unist': 2.0.6 3710 | unist-util-visit: 4.1.0 3711 | dev: true 3712 | 3713 | /unist-util-stringify-position/1.1.2: 3714 | resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} 3715 | dev: true 3716 | 3717 | /unist-util-stringify-position/3.0.2: 3718 | resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} 3719 | dependencies: 3720 | '@types/unist': 2.0.6 3721 | dev: true 3722 | 3723 | /unist-util-visit-children/1.1.4: 3724 | resolution: {integrity: sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ==} 3725 | dev: true 3726 | 3727 | /unist-util-visit-parents/2.1.2: 3728 | resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} 3729 | dependencies: 3730 | unist-util-is: 3.0.0 3731 | dev: true 3732 | 3733 | /unist-util-visit-parents/3.1.1: 3734 | resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} 3735 | dependencies: 3736 | '@types/unist': 2.0.6 3737 | unist-util-is: 4.1.0 3738 | dev: true 3739 | 3740 | /unist-util-visit-parents/5.1.0: 3741 | resolution: {integrity: sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==} 3742 | dependencies: 3743 | '@types/unist': 2.0.6 3744 | unist-util-is: 5.1.1 3745 | dev: true 3746 | 3747 | /unist-util-visit/1.4.1: 3748 | resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} 3749 | dependencies: 3750 | unist-util-visit-parents: 2.1.2 3751 | dev: true 3752 | 3753 | /unist-util-visit/2.0.3: 3754 | resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} 3755 | dependencies: 3756 | '@types/unist': 2.0.6 3757 | unist-util-is: 4.1.0 3758 | unist-util-visit-parents: 3.1.1 3759 | dev: true 3760 | 3761 | /unist-util-visit/4.1.0: 3762 | resolution: {integrity: sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==} 3763 | dependencies: 3764 | '@types/unist': 2.0.6 3765 | unist-util-is: 5.1.1 3766 | unist-util-visit-parents: 5.1.0 3767 | dev: true 3768 | 3769 | /update-browserslist-db/1.0.5_browserslist@4.21.3: 3770 | resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} 3771 | hasBin: true 3772 | peerDependencies: 3773 | browserslist: '>= 4.21.0' 3774 | dependencies: 3775 | browserslist: 4.21.3 3776 | escalade: 3.1.1 3777 | picocolors: 1.0.0 3778 | dev: true 3779 | 3780 | /util-deprecate/1.0.2: 3781 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3782 | dev: true 3783 | 3784 | /uvu/0.5.6: 3785 | resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} 3786 | engines: {node: '>=8'} 3787 | hasBin: true 3788 | dependencies: 3789 | dequal: 2.0.3 3790 | diff: 5.1.0 3791 | kleur: 4.1.5 3792 | sade: 1.8.1 3793 | dev: true 3794 | 3795 | /vfile-location/2.0.6: 3796 | resolution: {integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==} 3797 | dev: true 3798 | 3799 | /vfile-location/4.0.1: 3800 | resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} 3801 | dependencies: 3802 | '@types/unist': 2.0.6 3803 | vfile: 5.3.4 3804 | dev: true 3805 | 3806 | /vfile-message/1.1.1: 3807 | resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} 3808 | dependencies: 3809 | unist-util-stringify-position: 1.1.2 3810 | dev: true 3811 | 3812 | /vfile-message/3.1.2: 3813 | resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} 3814 | dependencies: 3815 | '@types/unist': 2.0.6 3816 | unist-util-stringify-position: 3.0.2 3817 | dev: true 3818 | 3819 | /vfile/3.0.1: 3820 | resolution: {integrity: sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==} 3821 | dependencies: 3822 | is-buffer: 2.0.5 3823 | replace-ext: 1.0.0 3824 | unist-util-stringify-position: 1.1.2 3825 | vfile-message: 1.1.1 3826 | dev: true 3827 | 3828 | /vfile/5.3.4: 3829 | resolution: {integrity: sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==} 3830 | dependencies: 3831 | '@types/unist': 2.0.6 3832 | is-buffer: 2.0.5 3833 | unist-util-stringify-position: 3.0.2 3834 | vfile-message: 3.1.2 3835 | dev: true 3836 | 3837 | /vite/2.9.14: 3838 | resolution: {integrity: sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw==} 3839 | engines: {node: '>=12.2.0'} 3840 | hasBin: true 3841 | peerDependencies: 3842 | less: '*' 3843 | sass: '*' 3844 | stylus: '*' 3845 | peerDependenciesMeta: 3846 | less: 3847 | optional: true 3848 | sass: 3849 | optional: true 3850 | stylus: 3851 | optional: true 3852 | dependencies: 3853 | esbuild: 0.14.54 3854 | postcss: 8.4.16 3855 | resolve: 1.22.1 3856 | rollup: 2.77.2 3857 | optionalDependencies: 3858 | fsevents: 2.3.2 3859 | dev: true 3860 | 3861 | /vite/3.0.4: 3862 | resolution: {integrity: sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA==} 3863 | engines: {node: ^14.18.0 || >=16.0.0} 3864 | hasBin: true 3865 | peerDependencies: 3866 | less: '*' 3867 | sass: '*' 3868 | stylus: '*' 3869 | terser: ^5.4.0 3870 | peerDependenciesMeta: 3871 | less: 3872 | optional: true 3873 | sass: 3874 | optional: true 3875 | stylus: 3876 | optional: true 3877 | terser: 3878 | optional: true 3879 | dependencies: 3880 | esbuild: 0.14.54 3881 | postcss: 8.4.16 3882 | resolve: 1.22.1 3883 | rollup: 2.77.2 3884 | optionalDependencies: 3885 | fsevents: 2.3.2 3886 | dev: true 3887 | 3888 | /vscode-css-languageservice/6.0.1: 3889 | resolution: {integrity: sha512-81n/eeYuJwQdvpoy6IK1258PtPbO720fl13FcJ5YQECPyHMFkmld1qKHwPJkyLbLPfboqJPM53ys4xW8v+iBVw==} 3890 | dependencies: 3891 | vscode-languageserver-textdocument: 1.0.5 3892 | vscode-languageserver-types: 3.17.2 3893 | vscode-nls: 5.1.0 3894 | vscode-uri: 3.0.3 3895 | dev: true 3896 | 3897 | /vscode-html-languageservice/5.0.1: 3898 | resolution: {integrity: sha512-OYsyn5HGAhxs0OIG+M0jc34WnftLtD67Wg7+TfrYwvf0waOkkr13zUqtdrVm2JPNQ6fJx+qnuM+vTbq7o1dCdQ==} 3899 | dependencies: 3900 | vscode-languageserver-textdocument: 1.0.5 3901 | vscode-languageserver-types: 3.17.2 3902 | vscode-nls: 5.1.0 3903 | vscode-uri: 3.0.3 3904 | dev: true 3905 | 3906 | /vscode-jsonrpc/8.0.2: 3907 | resolution: {integrity: sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==} 3908 | engines: {node: '>=14.0.0'} 3909 | dev: true 3910 | 3911 | /vscode-languageserver-protocol/3.17.2: 3912 | resolution: {integrity: sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==} 3913 | dependencies: 3914 | vscode-jsonrpc: 8.0.2 3915 | vscode-languageserver-types: 3.17.2 3916 | dev: true 3917 | 3918 | /vscode-languageserver-textdocument/1.0.5: 3919 | resolution: {integrity: sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==} 3920 | dev: true 3921 | 3922 | /vscode-languageserver-types/3.17.2: 3923 | resolution: {integrity: sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==} 3924 | dev: true 3925 | 3926 | /vscode-languageserver/8.0.2: 3927 | resolution: {integrity: sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==} 3928 | hasBin: true 3929 | dependencies: 3930 | vscode-languageserver-protocol: 3.17.2 3931 | dev: true 3932 | 3933 | /vscode-nls/5.1.0: 3934 | resolution: {integrity: sha512-37Ha44QrLFwR2IfSSYdOArzUvOyoWbOYTwQC+wS0NfqKjhW7s0WQ1lMy5oJXgSZy9sAiZS5ifELhbpXodeMR8w==} 3935 | dev: true 3936 | 3937 | /vscode-oniguruma/1.6.2: 3938 | resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} 3939 | dev: true 3940 | 3941 | /vscode-textmate/5.2.0: 3942 | resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} 3943 | dev: true 3944 | 3945 | /vscode-uri/2.1.2: 3946 | resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} 3947 | dev: true 3948 | 3949 | /vscode-uri/3.0.3: 3950 | resolution: {integrity: sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==} 3951 | dev: true 3952 | 3953 | /wcwidth/1.0.1: 3954 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} 3955 | dependencies: 3956 | defaults: 1.0.3 3957 | dev: true 3958 | 3959 | /web-namespaces/2.0.1: 3960 | resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 3961 | dev: true 3962 | 3963 | /web-streams-polyfill/3.2.1: 3964 | resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} 3965 | engines: {node: '>= 8'} 3966 | dev: true 3967 | 3968 | /which-pm-runs/1.1.0: 3969 | resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} 3970 | engines: {node: '>=4'} 3971 | dev: true 3972 | 3973 | /which-pm/2.0.0: 3974 | resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} 3975 | engines: {node: '>=8.15'} 3976 | dependencies: 3977 | load-yaml-file: 0.2.0 3978 | path-exists: 4.0.0 3979 | dev: true 3980 | 3981 | /which/2.0.2: 3982 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3983 | engines: {node: '>= 8'} 3984 | hasBin: true 3985 | dependencies: 3986 | isexe: 2.0.0 3987 | dev: true 3988 | 3989 | /widest-line/4.0.1: 3990 | resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} 3991 | engines: {node: '>=12'} 3992 | dependencies: 3993 | string-width: 5.1.2 3994 | dev: true 3995 | 3996 | /wrap-ansi/8.0.1: 3997 | resolution: {integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==} 3998 | engines: {node: '>=12'} 3999 | dependencies: 4000 | ansi-styles: 6.1.0 4001 | string-width: 5.1.2 4002 | strip-ansi: 7.0.1 4003 | dev: true 4004 | 4005 | /x-is-string/0.1.0: 4006 | resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} 4007 | dev: true 4008 | 4009 | /xtend/4.0.2: 4010 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 4011 | engines: {node: '>=0.4'} 4012 | dev: true 4013 | 4014 | /yallist/4.0.0: 4015 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 4016 | dev: true 4017 | 4018 | /yaml/1.10.2: 4019 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 4020 | engines: {node: '>= 6'} 4021 | dev: true 4022 | 4023 | /yargs-parser/21.1.1: 4024 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 4025 | engines: {node: '>=12'} 4026 | dev: true 4027 | 4028 | /yocto-queue/0.1.0: 4029 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 4030 | engines: {node: '>=10'} 4031 | dev: true 4032 | 4033 | /zod/3.17.10: 4034 | resolution: {integrity: sha512-IHXnQYQuOOOL/XgHhgl8YjNxBHi3xX0mVcHmqsvJgcxKkEczPshoWdxqyFwsARpf41E0v9U95WUROqsHHxt0UQ==} 4035 | dev: true 4036 | 4037 | /zwitch/2.0.2: 4038 | resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} 4039 | dev: true 4040 | -------------------------------------------------------------------------------- /public/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aidenybai/site-mini/94440fff1acfff0a028a3475a655b3d223330900/public/img/favicon.png -------------------------------------------------------------------------------- /src/components/Age.jsx: -------------------------------------------------------------------------------- 1 | import { createSignal } from 'solid-js'; 2 | 3 | export default function Age() { 4 | const BIRTHDAY = new Date('January 5, 2005').getTime(); 5 | const calc = () => { 6 | const diff = new Date().getTime() - BIRTHDAY; 7 | return (diff / 1000 / 60 / 60 / 24 / 365).toFixed(9); 8 | }; 9 | const [age, setAge] = createSignal(calc()); 10 | const [currInterval, setCurrInterval] = createSignal(null); 11 | const createInterval = () => { 12 | return setInterval(() => { 13 | setAge(calc()); 14 | }, 10); 15 | }; 16 | setCurrInterval(createInterval()); 17 | return ( 18 | clearInterval(currInterval())} 20 | onMouseLeave={() => setCurrInterval(createInterval())} 21 | > 22 | {age()} 23 | 24 | ); 25 | } 26 | -------------------------------------------------------------------------------- /src/components/ResearchProjectName.jsx: -------------------------------------------------------------------------------- 1 | import { createSignal } from 'solid-js'; 2 | 3 | export default function ResearchProjectName() { 4 | const getName = () => { 5 | const word = [ 6 | 'Novel', 7 | 'ML', 8 | 'Cancer', 9 | 'Gynecologic', 10 | 'Lymphomic', 11 | 'Melanomic', 12 | 'Deep Learning', 13 | 'Medical', 14 | 'Depressive', 15 | 'Prostatic', 16 | 'Computational', 17 | 'Approach', 18 | 'Drug', 19 | 'Repositioning', 20 | 'Optimizing', 21 | 'COVID-19', 22 | 'Future', 23 | 'Mutations', 24 | 'Predictions', 25 | 'Genetics', 26 | 'Infant', 27 | 'Mortality', 28 | 'Spacial', 29 | 'Immune', 30 | 'Variants', 31 | 'Genetic', 32 | 'Model', 33 | 'Genome', 34 | 'Diagnostic', 35 | 'Exploring', 36 | 'Machine Learning', 37 | 'SARS-Cov-2', 38 | 'Highly Accurate', 39 | ]; 40 | const getWord = () => 41 | word[Math.floor(Math.random() * word.length)]; 42 | const sentenceArray = [ 43 | ...new Set(new Array(7).fill(0).map(getWord)), 44 | ]; 45 | return `"${sentenceArray.join(' ')}"`; 46 | }; 47 | const [name, setName] = createSignal(getName()); 48 | const handleClick = () => setName(getName()); 49 | return ( 50 | <> 51 | 52 | {name()} 53 | 54 | 55 | ); 56 | } 57 | -------------------------------------------------------------------------------- /src/components/Stars.jsx: -------------------------------------------------------------------------------- 1 | import { createResource } from 'solid-js'; 2 | 3 | const fetchData = async () => { 4 | return ( 5 | await fetch(`https://api.github.com/repos/aidenybai/million`) 6 | ).json(); 7 | }; 8 | 9 | const { stargazers_count } = await fetchData(); 10 | 11 | export default function Stars() { 12 | const [data] = createResource(fetchData); 13 | 14 | return ( 15 | 16 | {' '} 17 | ( 18 | {data.loading || data.error ? ( 19 | {stargazers_count} 20 | ) : ( 21 | data()?.stargazers_count ?? stargazers_count 22 | )}{' '} 23 | ★) 24 | 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /src/layouts/Layout.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { content } = Astro.props; 3 | --- 4 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | {content.title} 25 | 26 | 27 |
28 |
29 |

30 | 31 | image 32 | 33 | {content.title} 34 |

35 | 36 |
37 |

38 |
39 | 40 | 50 |
51 | 52 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /src/pages/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Aiden Bai' 3 | layout: ../layouts/Layout.astro 4 | --- 5 | 6 | import Age from '../components/Age.jsx'; 7 | import Stars from '../components/Stars.jsx'; 8 | 9 | **◕ ◡ ◕ っ** Hi, I'm Aiden! I'm a y/o from 10 | Washington State making the web _faster_ through HCI research and open source. 11 | 12 | Want to reach out? Send me an [email](mailto:aiden.bai05@gmail.com) or [schedule a call](mailto:aiden.bai05@gmail.com). 13 | 14 | [Thoughts](/thoughts) · [GitHub](https://github.com/aidenybai) · [Twitter](https://twitter.com/aidenybai) · [YouTube](https://www.youtube.com/c/AidenBai) 15 | 16 | ### Present 17 | 18 | Right now, I'm making [React.js](https://reactjs.org) 11x faster with 19 | [**✦ Million.js**](https://millionjs.org/). With my research, I won **3rd place** grand award in Systems Software at [ISEF 2022](https://www.societyforscience.org/press-release/regeneron-isef-full-awards-2022/#:~:text=SOFT037). 20 | 21 | ### Previously 22 | 23 | I won the **2nd place** grand award in Systems Software at 24 | [ISEF 2021](https://www.societyforscience.org/press-release/2021-regeneron-isef-grand-awards/#:~:text=SOFT031) with my research on [**Lucia.js**](https://projectboard.world/isef/project/soft031---lucia) out of **1.8k+ students** around the world. 25 | 26 | I pioneered [**KBowl**](https://kbowl.aidenybai.com) (virtual [Knowledge Bowl](https://en.wikipedia.org/wiki/Knowledge_Bowl) events) during the COVID-19 lockdown. I helped organize the K-12 leagues for Washington State, consisting of 27 | **30+ schools, 40+ teachers and 1k+ students** throughout 28 | 2020 and 2021. 29 | 30 | ### More 31 | 32 | I like blasting music with my windows down on the highway, chugging fruit tea boba, and composing my [**thoughts**](/thoughts) in my free time. 33 | 34 | Want to hire me? Check out my [LinkedIn](https://linkedin.com/in/aidenbai) and [resume](https://www.figma.com/file/n4MkGYBP1CEc3LsXU9z1pT/Resume?node-id=0%3A1). 35 | -------------------------------------------------------------------------------- /src/pages/thoughts/index.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import { parse, isBefore } from 'date-fns'; 3 | import Layout from '../../layouts/Layout.astro'; 4 | 5 | const posts = await Astro.glob('./*.md*') 6 | .then(posts => posts 7 | .map(({ frontmatter, url }) => ({ 8 | title: frontmatter.title, 9 | description: frontmatter.description, 10 | date: parse(frontmatter.date, 'MMMM d, yyyy', new Date()), 11 | href: url 12 | })) 13 | .sort((a, b) => { 14 | if (isBefore(a.date, b.date)) return 1; 15 | if (isBefore(b.date, a.date)) return -1; 16 | return 0; 17 | }) 18 | ); 19 | --- 20 | 21 | 22 | A collection of my ramblings and musings fused into one place. 23 | {posts.map(post => { 24 | return ( 25 |
26 |

27 | {post.title} 28 |

29 |

30 | {post.description} ({post.date.toLocaleDateString()}) 31 |

32 |
33 | ); 34 | })} 35 |
-------------------------------------------------------------------------------- /src/pages/thoughts/isef.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'ISEF in review' 3 | description: 'The evolution of my research and lessons learned through 2 years of ISEF' 4 | date: 'May 13, 2022' 5 | layout: ../../layouts/Layout.astro 6 | --- 7 | 8 | import ResearchProjectName from '../../components/ResearchProjectName.jsx'; 9 | 10 | Recently, I won **2nd place** in Systems Software at the [ISEF 2021](https://www.societyforscience.org/press-release/2021-regeneron-isef-grand-awards/#:~:text=SOFT031) and **3rd place** in Systems Software at [ISEF 2022](https://www.societyforscience.org/press-release/regeneron-isef-full-awards-2022/#:~:text=SOFT037). 11 | 12 | Here are the lessons I learned from my time researching on ISEF projects that can be of value to you through your research journey. Let's begin a story told in three parts: 13 | 14 | ### #1: Research is hard 15 | 16 | Everyone thinks any high school research can win you a top award at ISEF. 17 | 18 | What they don't see is the long hours bent over a laptop with fifty Chrome tabs of random datasets, a mountain of stale coffee cups littering the table, and a bunch of thirty-second clips of failed attempts to create a presentation video in your phone's camera roll. 19 | 20 | Research is not a walk in the park. It's long hours of grinding and unappreciated hard work. Whether it be reviewing prior research, or pitching your idea to hundreds of professors, high school research is no easy feat. Hell, most people would drop dead after reading the abstract of a research paper. 21 | 22 | I distinctly remember posting my ISEF project on an online forum for experts to view, and I got heavily criticized for my viewpoints and project. Although I was emotionally damaged by the harsh demeanor of those comments, in retrospect, they helped me learn more about different perspectives, and how to pick out constructive criticism to improve my project. 23 | 24 | As a researcher, you have to be prepared to work hard and be willing to sacrifice your own time to get the results you want. You will be rejected, criticized, and ridiculed for your naivety and initial work. By embracing failure—not internalizing it as a lack of experience—you take a step to becoming a better researcher. 25 | 26 | The ISEF experience represents the culmination of the work conducted by these students. Every high school researcher's hopes and dreams are contained in the point sheets of judges. The decisions made by the judges symbolize the culmination of years of research and work that can very well alter the course of the researcher's post high school goals. 27 | 28 | The point? **Seek opportunities, work hard, and learn from failure**. Nothing is handed to you in life, and success is determined by yourself. 29 | 30 | ### #2: Research is unfair 31 | 32 | Many ISEF projects are uncreative. Not that I hate machine learning or a novel method of diagnosing cancer, but when you see those same exact keywords copied and pasted over and over again, it gets exhausting. 33 | 34 | > 35 | 36 | Why do we see so many “buzzword-y” research projects come up? It all fundamentally stems from one fundamental fraud: “mentor support.” 37 | 38 | Mentor support is intended to be a positive force that improves accessibility in research for high schoolers. But more recently, it’s evolved into a black box system in which connections and networking matter more than merit or passion. 39 | 40 | The most egregious offenders are research organizations designed to collect payment from parents who force their unwilling children into these programs for college admissions and resume padding. Once they enter, they are forced into an accelerated curriculum that virtually completes most of the intellectual and inherently difficult aspects of research for them. These fraudulently created projects are then propelled into competitions like ISEF to compete with researchers that don’t have access to the same resources. 41 | 42 | This produces a monoculture of similarly boring projects, where fraudulently created projects set the meta by performing well at research fairs, resulting in more experienced students unwittingly committing to the new meta, and newcomers to be drowned out. 43 | 44 | So how do you combat this meta? 45 | 46 | My ISEF project was aggressively unique for a research project. While most research projects were focusing on highly theoretical subjects in mathematics or tangible results for genetic research, I focused on something that I was passionate about: web programming. 47 | 48 | The point? Boring and fraudulent research dominate the meta and inherently make research competitions unfair. **Work on projects you’re passionate about** to differentiate yourself from the rest. 49 | 50 | ### #3: Research is impactful 51 | 52 | Research for the sake of research is fun, there’s no doubt about it. But if there’s three main principles that all successful ISEF projects follow, it’s that they're **breakthroughs** in their field, they’re **innovative**, and they’re able to provide an immediately viable **use to society**. 53 | 54 | It's often easy to lose sight of the principles that form successful ISEF projects. The best way to follow these principles is to surround yourself with a support group that can help you succeed. Whether that be a friend, an (_ethical_) mentor, or a group of friends, a support group is integral to keep you motivated and on track to your goals. 55 | 56 | ### Final comments 57 | 58 | My rhetoric may be somewhat discouraging or overly pessimistic. Let me clarify: ISEF is an amazing opportunity. Without ISEF, I wouldn't be able to translate my research into tangible value and make it a reality. I'm inspired by all ISEF projects and it makes me genuinely happy to see so many people participate. 59 | 60 | I'd like to personally thank Society for Science for hosting ISEF, my parents and relatives for providing important feedback and guidance, and all the supporters I've had on the way. 61 | 62 | I hope this article found some value to you. If you're currently looking to compete in ISEF, I encourage you on your journey to learn more about the research process and impact the future of our society. 63 | -------------------------------------------------------------------------------- /src/pages/thoughts/virtual-dom.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Making the Virtual DOM. Faster.' 3 | description: "Million.js leverages new techniques like compiliation to advance the Virtual DOM into the new generation of web applications" 4 | date: 'April 20, 2022' 5 | layout: ../../layouts/Layout.astro 6 | --- 7 | 8 | > _**Plug**: I help develop [**✦ Million.js**](https://github.com/aidenybai/million): Virtual DOM into the future! 💥🦁✨_ 9 | 10 | ### Introduction 11 | 12 | The Virtual DOM was initially pioneered by the [React](https://reactjs.org/) authors to make [declarative](https://stackoverflow.com/questions/1784664/what-is-the-difference-between-declarative-and-imperative-paradigm-in-programming) UI faster to render. To understand why declarative UI was originally so slow, we first need to understand how declarative UI was done in the past. 13 | 14 | ### Declarative UI (in the past) 15 | 16 | The traditional way of writing declarative UI is to [change the `innerHTML` property](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML) on an element. For example, if I want to add a `
` element to the UI, I would write the following: 17 | 18 | ```js 19 | document.body.innerHTML = '
Hello World!
'; 20 | // now has a
Hello World!
child. 21 | ``` 22 | 23 | We can recognize that `innerHTML` allows us to declaratively define the UI, but it is not very efficient. 24 | 25 | The inefficiency stems from the parsing, destruction and reconstruction of the UI every time we change the `innerHTML`. When we change the `innerHTML`, it follows a four step process: 26 | 27 | 1. Parse the `innerHTML` string into a tree of DOM nodes. 28 | 2. Remove all the content in the `` element. 29 | 3. Insert the tree of DOM nodes into the `` element. 30 | 4. Perform [layout calculation and repaint](https://dev.to/gopal1996/understanding-reflow-and-repaint-in-the-browser-1jbg) the screen. 31 | 32 | This process is extremely computationally expensive and can cause render speeds to slow down significantly. 33 | 34 | ### Imperative UI 35 | 36 | So, how is this issue fixed? Well, the other option is to use the DOM; this approach is over [**3x faster**](https://jsben.ch/8PheY) than the `innerHTML` method. 37 | 38 | ```js 39 | const div = document.createElement('div'); 40 | div.textContent = 'Hello World!'; 41 | document.body.appendChild(div); 42 | ``` 43 | 44 | However, we can recognize this can be cumbersome to write manually, especially when there is a lot of interactivity in the UI, as we need to specify every step imperatively. It is much more elegant to write UI declaratively. 45 | 46 | > **TL;DR**: The React authors created Virtual DOM to allow us to write UI in a way that is faster to render than `innerHTML` and just as declarative. 47 | 48 | ### Understanding Virtual DOM (part 1) 49 | 50 | To best understand how Virtual DOM works, let's overview the process and then build an example. 51 | 52 | The Virtual DOM is a method of rendering UI. The method utilizes a tree of JavaScript objects ("virtual" nodes) that mimics the DOM tree. 53 | 54 | ```js 55 | //
Hello World!
56 | const div = document.createElement('div'); 57 | div.style = 'color: red'; 58 | div.textContent = 'Hello World!'; 59 | ``` 60 | 61 | The `
` above is mimicked as a virtual node in the following JavaScript object: 62 | 63 | ```js 64 | const divVNode = { 65 | type: 'div', 66 | props: { 67 | style: 'color: red' 68 | } 69 | children: ['Hello World!'] 70 | }; 71 | ``` 72 | 73 | We can notice that the virtual node has three properties: 74 | 75 | - `tag`: stores the tag name of the element as a string. 76 | - `props`: stores the properties and attributes of the element as an object. 77 | - `children`: stores virtual node children of the element as an array. 78 | 79 | Using virtual nodes, we can model what the current UI looks like, and what we want it to change to when we update the UI. 80 | 81 | Let's say I want to change the text inside the `
` from `"Hello World!"` to `"Hello Universe!"`. Using the DOM, we can imperatively make the change: 82 | 83 | ```js 84 | //
Hello World!
85 | const div = document.createElement('div'); 86 | div.style = 'color: red'; 87 | div.textContent = 'Hello World!'; 88 | 89 | // Change from "Hello World!" to "Hello Universe!" 90 | div.textContent = 'Hello Universe!'; 91 | ``` 92 | 93 | But with Virtual DOM, I can just specify what the current UI looks like (old virtual node) and what I want it to look like (new virtual node). 94 | 95 | ```js 96 | const oldVNode = { 97 | type: 'div', 98 | props: { 99 | style: 'color: red' 100 | } 101 | children: ['Hello World!'] 102 | }; 103 | 104 | const newVNode = { 105 | type: 'div', 106 | props: { 107 | style: 'color: red' 108 | } 109 | children: ['Hello Universe!'] 110 | }; 111 | ``` 112 | 113 | However, to make the Virtual DOM actually apply the change to the UI, we need to calculate the difference between the old virtual node and the new virtual node. 114 | 115 | ```diff 116 | { 117 | type: 'div', 118 | props: { 119 | style: 'color: red' 120 | } 121 | - children: ['Hello World!'] 122 | + children: ['Hello Universe!'] 123 | }; 124 | ``` 125 | 126 | Once we know the difference, the Virtual DOM can change the UI: 127 | 128 | ```js 129 | div.replaceChild(newChild, oldChild); 130 | ``` 131 | 132 | Instead of replacing the whole UI, the Virtual DOM only makes necessary changes. 133 | 134 | ### Build Your Own Virtual DOM (part 2) 135 | 136 | In this exercise, we will mimic the [**✦ Million.js**](https://github.com/aidenybai/million) Virtual DOM API. Our API will consist of three main functions: `m`, `createElement`, and `patch`. 137 | 138 | #### `m(tag, props, children)` 139 | 140 | The `m` function is a helper function that creates virtual nodes. A virtual node contains three properties: 141 | 142 | - `tag`: tag name of the virtual node as a string. 143 | - `props`: properties/attributes of the node as an object. 144 | - `children`: children of the virtual node as an array. 145 | 146 | An example implementation of the `m` helper function is below: 147 | 148 | ```js 149 | const m = (tag, props = {}, children = []) => ({ 150 | tag, 151 | props, 152 | children, 153 | }); 154 | ``` 155 | 156 | This way, it is less cumbersome to create virtual nodes. 157 | 158 | ```js 159 | m('div', { style: 'color: red' }, ['Hello World!']); 160 | ``` 161 | 162 | #### `createElement(vnode)` 163 | 164 | The `createElement` function turns a virtual node into a real DOM element. This is important because we'll be using this in our `patch` function. 165 | 166 | The implementation is as follows: 167 | 168 | 1. Return text node if the virtual node is text. 169 | 2. Create a new DOM node with the `tag` property of the virtual node. 170 | 3. Iterate over the virtual node `props` and add them to the DOM node. 171 | 4. Iterate over the `children`, recursively call `createElement` on each child and add them to the DOM node. 172 | 173 | ```js 174 | const createElement = (vnode) => { 175 | if (typeof vnode === 'string') { 176 | return document.createTextNode(vnode); 177 | } 178 | const el = document.createElement(vnode.tag); 179 | for (const prop in vnode.props) { 180 | el[prop] = vnode.props[prop]; 181 | } 182 | for (const child of vnode.children) { 183 | el.appendChild(createElement(child)); 184 | } 185 | return el; 186 | }; 187 | ``` 188 | 189 | This way, we can convert virtual nodes to DOM nodes easily: 190 | 191 | ```jsx 192 | //
Hello World!
193 | createElement( 194 | m('div', { style: 'color: red' }, ['Hello World!']) 195 | ); 196 | ``` 197 | 198 | #### `patch(el, newVNode, oldVNode)` 199 | 200 | The `patch` function takes an existing DOM node, old virtual node, and new virtual node. 201 | 202 | The implementation is as follows: 203 | 204 | 1. Calculate the difference between the two virtual nodes. 205 | 2. If virtual node is a `string`, replace the text content of the DOM node with the new node. 206 | 3. If virtual node is an `object`, update node if `tag`, `props`, or `children` are different. 207 | 208 | ```js 209 | const patch = (el, newVNode, oldVNode) => { 210 | if (!newVNode && newVNode !== '') return el.remove(); 211 | if ( 212 | typeof oldVNode === 'string' || 213 | typeof newVNode === 'string' 214 | ) { 215 | if (oldVNode !== newVNode) { 216 | return el.replaceWith(createElement(newVNode)); 217 | } 218 | } else { 219 | if (oldVNode.tag !== newVNode.tag) { 220 | return el.replaceWith(createElement(newVNode)); 221 | } 222 | 223 | // patch props 224 | for (const prop in { 225 | ...oldVNode.props, 226 | ...newVNode.props, 227 | }) { 228 | if (newVNode.props[prop] === undefined) { 229 | delete el[prop]; 230 | } else if ( 231 | oldVNode.props[prop] === undefined || 232 | oldVNode.props[prop] !== newVNode.props[prop] 233 | ) { 234 | el[prop] = newVNode.props[prop]; 235 | } 236 | } 237 | 238 | // patch children 239 | for (let i = oldVNode.children.length - 1; i >= 0; --i) { 240 | patch( 241 | el.childNodes[i], 242 | newVNode.children[i], 243 | oldVNode.children[i] 244 | ); 245 | } 246 | 247 | for ( 248 | let i = oldVNode.children.length; 249 | i < newVNode.children.length; 250 | i++ 251 | ) { 252 | el.appendChild(createElement(newVNode.children[i])); 253 | } 254 | } 255 | }; 256 | ``` 257 | 258 | This way, we can update UI with the `patch` function. 259 | 260 | ```js 261 | const oldVNode = m('div', { style: 'color: red' }, [ 262 | 'Hello World!', 263 | ]); 264 | const newVNode = m('div', { style: 'color: red' }, [ 265 | 'Hello Universe!', 266 | ]); 267 | const el = createElement(oldVNode); 268 | 269 | //
Hello World!
270 | patch(el, oldVNode, newVNode); 271 | //
Hello Universe!
272 | ``` 273 | 274 | And we've finished our Virtual DOM! Check out the [live example here](https://codesandbox.io/s/virtual-dom-example-8nte0o). 275 | 276 | ### Virtual DOM is Pure Overhead (right now) 277 | 278 | > _["Virtual DOM is pure overhead"](https://svelte.dev/blog/virtual-dom-is-pure-overhead) --Rich Harris, 2018_ 279 | 280 | In the present, Virtual DOM implementations incur computation cost when calculating the differences between old and new virtual nodes. 281 | 282 | Even with extremely efficient diffing algorithms (like [`list-diff2`](https://www.npmjs.com/package/list-diff2)), when virtual node trees become greater than double digits of virtual nodes, the [cost of diffing becomes significant](https://svelte.dev/blog/virtual-dom-is-pure-overhead). 283 | 284 | Tree diffing algorithms are notoriously slow. Time complexity can range from `O(n)` to `O(n^3)` depending on the complexity of the virtual node tree. This is a far cry from DOM manipulation, which is `O(1)` in most cases. 285 | 286 | ### Future of Virtual DOM 287 | 288 | > _["Compilers are the New Frameworks"](https://tomdale.net/2017/09/compilers-are-the-new-frameworks/) --Tom Dale, 2017_ 289 | 290 | In 2017, Tom Dale, the creator of [Ember](https://emberjs.com/), was one of the first open source zealots to advocate for the use of compilers for JavaScript UI libraries. 291 | 292 | In 2022, we now know Tom Dale's bet was spot on. The JavaScript ecosystem has seen the rise in ["compiled"](https://tomdale.net/2017/09/compilers-are-the-new-frameworks/) libraries like [Solid](https://www.solidjs.com/) and [Svelte](https://svelte.dev/), which forgo the Virtual DOM. These libraries skip unnecessary rendering by using a compiler to prerender beforehand and only generating code when used. 293 | 294 | Virtual DOM, on the other hand, lags behind on this trend. Current Virtual DOM libraries are inherently not compatible with a "on-demand" compiler. As a result, Virtual DOM render speeds are often **slower than modern "No Virtual DOM" UI libraries** by several magnitudes. 295 | 296 | If we want Virtual DOM to be competitive in render speeds in the future, we need to **redesign Virtual DOM to allow for compiler augmentation**. 297 | 298 | #### ✦ Million.js 299 | 300 | Check out the current effort to bring compilers to Virtual DOM at [**✦ Million.js**](https://github.com/aidenybai/million). We're already [**2-3x faster**](https://millionjs.org/benchmarks/official-benchmarks) than the current non-compiled Virtual DOM libraries. 301 | -------------------------------------------------------------------------------- /src/styles/global.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --background: #010204; 3 | --highlight: #282a36; 4 | --main: #8a8f98; 5 | --semibold: #b0b2b6; 6 | --bold: #cdced1; 7 | --underline: #494d64; 8 | --million-progress-bar-color: #5e6ad2; 9 | --sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 10 | 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 11 | sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 12 | 'Segoe UI Symbol', 'Noto Color Emoji'; 13 | --mono: 'Roboto Mono', ui-monospace, SFMono-Regular, SF Mono, 14 | Menlo, Consolas, Liberation Mono, monospace; 15 | } 16 | 17 | ::selection { 18 | background: var(--highlight); 19 | color: #fff; 20 | } 21 | 22 | html { 23 | width: 100%; 24 | height: 100%; 25 | } 26 | 27 | body { 28 | font-family: var(--sans); 29 | font-weight: 400; 30 | display: flex; 31 | padding: 0.75rem; 32 | background: var(--background); 33 | color: var(--main); 34 | } 35 | 36 | .blur { 37 | filter: blur(0.2rem); 38 | } 39 | 40 | .glow { 41 | position: absolute; 42 | left: 0; 43 | top: 0; 44 | bottom: 0; 45 | right: 0; 46 | opacity: 0.1; 47 | pointer-events: none; 48 | background-image: conic-gradient( 49 | from 230.29deg at 51.63%52.16%, 50 | #2400ff 0deg, 51 | #0087ff 67.5deg, 52 | #ff1d7a 198.75deg, 53 | #f5381b 251.25deg, 54 | #ff5335 301.88deg, 55 | #691eff 360deg 56 | ); 57 | filter: blur(15rem); 58 | z-index: -1; 59 | } 60 | 61 | p, 62 | li, 63 | summary { 64 | font-size: 1.15rem; 65 | letter-spacing: 0.01rem; 66 | line-height: 1.8rem; 67 | } 68 | 69 | code { 70 | font-size: 1.1rem; 71 | font-family: var(--mono); 72 | } 73 | 74 | h1, 75 | h2, 76 | h3, 77 | h4, 78 | h5 { 79 | color: var(--bold); 80 | } 81 | 82 | strong, 83 | a { 84 | font-weight: 500; 85 | color: var(--semibold); 86 | } 87 | 88 | h1, 89 | h2, 90 | h3, 91 | h4, 92 | h5, 93 | h6 { 94 | margin-top: 3rem; 95 | margin-bottom: 1rem; 96 | } 97 | 98 | h2, 99 | h3 { 100 | font-family: 'EB Garamond', serif; 101 | } 102 | 103 | h2 { 104 | font-size: 2.7rem; 105 | } 106 | 107 | h3 { 108 | font-size: 2rem; 109 | } 110 | 111 | h3 > a { 112 | font-weight: 600 !important; 113 | color: #fff !important; 114 | } 115 | 116 | a { 117 | text-underline-position: from-font; 118 | text-decoration-skip-ink: all; 119 | text-decoration-color: var(--underline); 120 | text-underline-offset: -1px; 121 | text-decoration-line: underline; 122 | text-decoration-thickness: from-font; 123 | transition: all 0.1s ease; 124 | text-decoration-style: solid; 125 | } 126 | 127 | a:hover { 128 | background: var(--highlight); 129 | border-radius: 0.3rem; 130 | } 131 | 132 | ol { 133 | counter-reset: item; 134 | } 135 | 136 | ol li { 137 | display: block; 138 | } 139 | 140 | ol li:before { 141 | content: counter(item) '. '; 142 | counter-increment: item; 143 | } 144 | 145 | blockquote { 146 | margin: 20px 0 30px; 147 | padding-left: 20px; 148 | border-left: 5px solid var(--highlight); 149 | } 150 | 151 | .header { 152 | align-items: center; 153 | display: flex; 154 | } 155 | 156 | .headshot { 157 | width: 3rem; 158 | height: 3rem; 159 | flex-direction: row; 160 | margin: 0 0.5rem 0 0; 161 | border-radius: 100%; 162 | animation: spin 4s ease-in-out infinite; 163 | } 164 | 165 | .headshot:hover { 166 | animation-play-state: paused; 167 | } 168 | 169 | .container { 170 | max-width: 45rem; 171 | width: 45rem; 172 | margin-left: auto; 173 | margin-right: auto; 174 | margin-top: 2rem; 175 | margin-bottom: 4rem; 176 | } 177 | 178 | .boba { 179 | width: 100%; 180 | border-radius: 0.3rem; 181 | } 182 | 183 | .footer { 184 | margin-top: 3.5rem; 185 | font-size: 0.9rem; 186 | padding-left: auto; 187 | display: flex; 188 | } 189 | 190 | .home { 191 | margin-left: auto; 192 | } 193 | 194 | .fade { 195 | opacity: 0.5; 196 | } 197 | 198 | .astro-code { 199 | padding: 1.5rem; 200 | border-radius: 0.5rem; 201 | overflow-x: auto; 202 | white-space: pre-wrap; 203 | word-wrap: break-word; 204 | } 205 | 206 | @keyframes spin { 207 | 100% { 208 | -webkit-transform: rotate(360deg); 209 | transform: rotate(360deg); 210 | } 211 | } 212 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "github": { 3 | "silent": true 4 | }, 5 | "redirects": [ 6 | { 7 | "source": "/work/million-js", 8 | "destination": "https://millionjs.org/research", 9 | "permanent": true 10 | } 11 | ] 12 | } 13 | --------------------------------------------------------------------------------