From 88a66f6763d73e7629ac5eb5dce4791b6b241035 Mon Sep 17 00:00:00 2001 From: MrMelon54 Date: Sun, 20 Aug 2023 22:02:06 +0100 Subject: [PATCH] First commit --- create.sh | 4 + template/.editorconfig | 36 + template/.gitignore | 25 + template/.prettierrc | 13 + template/.vscode/extensions.json | 3 + template/README.md | 15 + template/package.json | 38 + template/public/fonts/Ubuntu.woff2 | Bin 0 -> 34852 bytes template/server.ts | 36 + template/src/components/MetaTags.svelte | 27 + template/src/pages/__layout.svelte | 9 + .../pages/_default/_default.page.client.js | 30 + .../pages/_default/_default.page.server.js | 44 + template/src/pages/_error.page.svelte | 24 + template/src/pages/index.page.svelte | 21 + template/src/styles/app.scss | 39 + template/src/vite-env.d.ts | 9 + template/svelte.config.js | 7 + template/tsconfig.json | 22 + template/tsconfig.node.json | 8 + template/vite.config.ts | 38 + template/yarn.lock | 1056 +++++++++++++++++ 22 files changed, 1504 insertions(+) create mode 100755 create.sh create mode 100644 template/.editorconfig create mode 100644 template/.gitignore create mode 100644 template/.prettierrc create mode 100644 template/.vscode/extensions.json create mode 100644 template/README.md create mode 100644 template/package.json create mode 100644 template/public/fonts/Ubuntu.woff2 create mode 100644 template/server.ts create mode 100644 template/src/components/MetaTags.svelte create mode 100644 template/src/pages/__layout.svelte create mode 100644 template/src/pages/_default/_default.page.client.js create mode 100644 template/src/pages/_default/_default.page.server.js create mode 100644 template/src/pages/_error.page.svelte create mode 100644 template/src/pages/index.page.svelte create mode 100644 template/src/styles/app.scss create mode 100644 template/src/vite-env.d.ts create mode 100644 template/svelte.config.js create mode 100644 template/tsconfig.json create mode 100644 template/tsconfig.node.json create mode 100644 template/vite.config.ts create mode 100644 template/yarn.lock diff --git a/create.sh b/create.sh new file mode 100755 index 0000000..cd7d791 --- /dev/null +++ b/create.sh @@ -0,0 +1,4 @@ +#!/bin/bash +git clone https://github.com/1f349/svelte-ssr-template svelte-ssr-template +cp -r svelte-ssr-template/template/* . +rm -r svelte-ssr-template diff --git a/template/.editorconfig b/template/.editorconfig new file mode 100644 index 0000000..fc9c5a4 --- /dev/null +++ b/template/.editorconfig @@ -0,0 +1,36 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Defaults +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true + +# CSS +[*.css] +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true + +# HTML +[*.{htm,html}] +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true + +# GNU make +[Makefile] +indent_style = tab + +# Svelte +[*.svelte] +indent_size = 2 +indent_style = space + +# YAML +[*.{yaml,yml}] +indent_size = 2 +indent_style = space diff --git a/template/.gitignore b/template/.gitignore new file mode 100644 index 0000000..a245f32 --- /dev/null +++ b/template/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local +*.development + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/template/.prettierrc b/template/.prettierrc new file mode 100644 index 0000000..e630e5d --- /dev/null +++ b/template/.prettierrc @@ -0,0 +1,13 @@ +{ + "printWidth": 150, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": false, + "trailingComma": "all", + "bracketSpacing": false, + "bracketSameLine": false, + "arrowParens": "avoid", + "requirePragma": false, + "insertPragma": false +} diff --git a/template/.vscode/extensions.json b/template/.vscode/extensions.json new file mode 100644 index 0000000..bdef820 --- /dev/null +++ b/template/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["svelte.svelte-vscode"] +} diff --git a/template/README.md b/template/README.md new file mode 100644 index 0000000..42657d4 --- /dev/null +++ b/template/README.md @@ -0,0 +1,15 @@ +# Svelte SSR Template + +## Building + +```bash +yarn +yarn run build +``` + +## Development + +```bash +yarn +yarn run dev +``` diff --git a/template/package.json b/template/package.json new file mode 100644 index 0000000..9fd6794 --- /dev/null +++ b/template/package.json @@ -0,0 +1,38 @@ +{ + "name": "svelte-ssr-template", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "prettier:check:ci": "./node_modules/.bin/prettier --check .", + "format": "./node_modules/.bin/prettier --write .", + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.json" + }, + "devDependencies": { + "@svelte-parts/markdown": "^0.0.23", + "@sveltejs/vite-plugin-svelte": "^1.1.0", + "@tsconfig/svelte": "^3.0.0", + "@types/dompurify": "^2.4.0", + "@types/highlight.js": "^10.1.0", + "dompurify": "^2.4.1", + "highlight.js": "^11.7.0", + "prettier": "^2.7.1", + "prettier-plugin-svelte": "^2.8.0", + "sass": "^1.56.0", + "svelte": "^3.52.0", + "svelte-check": "^2.9.2", + "svelte-markdown": "^0.2.3", + "svelte-navigator": "^3.2.2", + "svelte-preprocess": "^4.10.7", + "tslib": "^2.4.0", + "typescript": "^4.6.4", + "vite": "^3.2.0", + "vite-plugin-ssr": "^0.4.90" + }, + "dependencies": { + "semver": "^7.5.3" + } +} diff --git a/template/public/fonts/Ubuntu.woff2 b/template/public/fonts/Ubuntu.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8070e4f7eb6e20e26323d81a05b4afd4649403a4 GIT binary patch literal 34852 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

HM~-)Hx23agblSwzv@2hfC51oc4!h!_9>VX! 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 { + const pageContextInit = {urlOriginal: req.originalUrl}; + const pageContext = await renderPage(pageContextInit); + if (pageContext.httpResponse === null) return next(); + const {body, statusCode, contentType} = pageContext.httpResponse; + res.status(statusCode).type(contentType).send(body); + }); + + const port = 5173; + app.listen(port); + console.log(`Server running at http://localhost:${port}`); +} diff --git a/template/src/components/MetaTags.svelte b/template/src/components/MetaTags.svelte new file mode 100644 index 0000000..000aa4e --- /dev/null +++ b/template/src/components/MetaTags.svelte @@ -0,0 +1,27 @@ + + + + + {title} + + + + + + + + + + + + + + + + + diff --git a/template/src/pages/__layout.svelte b/template/src/pages/__layout.svelte new file mode 100644 index 0000000..aaa8589 --- /dev/null +++ b/template/src/pages/__layout.svelte @@ -0,0 +1,9 @@ + + +

+
+ +
+
diff --git a/template/src/pages/_default/_default.page.client.js b/template/src/pages/_default/_default.page.client.js new file mode 100644 index 0000000..727dc1f --- /dev/null +++ b/template/src/pages/_default/_default.page.client.js @@ -0,0 +1,30 @@ +export const clientRouting = true; + +export const prefetchStaticAssets = {when: "HOVER"}; + +export async function render(pageContext) { + const app_el = document.getElementById("app"); + new pageContext.Page({ + target: app_el, + hydrate: true, + props: { + __: pageContext.__, + pageProps: pageContext.pageProps, + }, + }); +} + +export function onPageTransitionStart(pageContext) { + console.log("Page transition start"); + // `pageContext.isBackwardNavigation` is also set at `render(pageContext)` + // and `onPageTransitionEnd(pageContext)`. + console.log("Is backwards navigation?", pageContext.isBackwardNavigation); + // For example: + document.body.classList.add("page-transition"); +} + +export function onPageTransitionEnd(pageContext) { + console.log("Page transition end"); + // For example: + document.body.classList.remove("page-transition"); +} diff --git a/template/src/pages/_default/_default.page.server.js b/template/src/pages/_default/_default.page.server.js new file mode 100644 index 0000000..9e73470 --- /dev/null +++ b/template/src/pages/_default/_default.page.server.js @@ -0,0 +1,44 @@ +import {escapeInject, dangerouslySkipEscape} from "vite-plugin-ssr"; +const base = import.meta.env.BASE_URL; + +// See https://vite-plugin-ssr.com/data-fetching +export const passToClient = ["__", "pageProps", "routeParams", "urlOriginal"]; + +export async function onBeforeRender(pageContext) { + const {routeParams, urlOriginal} = pageContext; + + return { + pageContext: { + __: { + routeParams, + urlOriginal, + }, + }, + }; +} + +export async function render(pageContext) { + const app = pageContext.Page.render(pageContext); + const appHtml = app.html; + const appCss = app.css.code; + const appHead = app.head; + + // We are using Svelte's app.head variable rather than the Vite Plugin SSR + // technique described here: https://vite-plugin-ssr.com/html-head This seems + // easier for using data fetched from APIs and also allows us to input the + // data using our custom MetaTags Svelte component. + + return escapeInject` + + + + + + ${dangerouslySkipEscape(appHead)} + + + +
${dangerouslySkipEscape(appHtml)}
+ + `; +} diff --git a/template/src/pages/_error.page.svelte b/template/src/pages/_error.page.svelte new file mode 100644 index 0000000..1c87d2f --- /dev/null +++ b/template/src/pages/_error.page.svelte @@ -0,0 +1,24 @@ + + + + + +
+ {#if pageProps.is404} +

404 Not Found

+

You have lost your way, please return to valid paths.

+

+ {:else} +

500 Internal Server Error

+

The server had an issue with this page.

+

+ {/if} +
+
diff --git a/template/src/pages/index.page.svelte b/template/src/pages/index.page.svelte new file mode 100644 index 0000000..d23fad6 --- /dev/null +++ b/template/src/pages/index.page.svelte @@ -0,0 +1,21 @@ + + + + + +

Svelte SSR Template

+
+ + diff --git a/template/src/styles/app.scss b/template/src/styles/app.scss new file mode 100644 index 0000000..a5cb4ed --- /dev/null +++ b/template/src/styles/app.scss @@ -0,0 +1,39 @@ +@font-face { + font-family: 'Ubuntu'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('/fonts/Ubuntu.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +:root { + font-family: Ubuntu, Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: #e2e2e2; + background-color: #000000; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a { + font-weight: 500; + color: tomato; + text-decoration: inherit; + + &:hover { + color: tomato; + } +} diff --git a/template/src/vite-env.d.ts b/template/src/vite-env.d.ts new file mode 100644 index 0000000..c98cb5f --- /dev/null +++ b/template/src/vite-env.d.ts @@ -0,0 +1,9 @@ +/// +/// + +interface ImportMetaEnv { +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} diff --git a/template/svelte.config.js b/template/svelte.config.js new file mode 100644 index 0000000..7714a51 --- /dev/null +++ b/template/svelte.config.js @@ -0,0 +1,7 @@ +import sveltePreprocess from "svelte-preprocess"; + +export default { + // Consult https://github.com/sveltejs/svelte-preprocess + // for more information about preprocessors + preprocess: sveltePreprocess(), +}; diff --git a/template/tsconfig.json b/template/tsconfig.json new file mode 100644 index 0000000..785b32a --- /dev/null +++ b/template/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "resolveJsonModule": true, + "baseUrl": "./src", + "paths": {"~/*": ["./*"]}, + /** + * Typecheck JS in `.svelte` and `.js` files by default. + * Disable checkJs if you'd like to use dynamic types in JS. + * Note that setting allowJs false does not prevent the use + * of JS in `.svelte` files. + */ + "allowJs": true, + "checkJs": true, + "isolatedModules": true + }, + "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte", "src/**/*.mjs"], + "references": [{"path": "./tsconfig.node.json"}] +} diff --git a/template/tsconfig.node.json b/template/tsconfig.node.json new file mode 100644 index 0000000..65dbdb9 --- /dev/null +++ b/template/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node" + }, + "include": ["vite.config.ts"] +} diff --git a/template/vite.config.ts b/template/vite.config.ts new file mode 100644 index 0000000..5ec4cc2 --- /dev/null +++ b/template/vite.config.ts @@ -0,0 +1,38 @@ +import {defineConfig} from "vite"; +import {svelte} from "@sveltejs/vite-plugin-svelte"; +import sveltePreprocess from "svelte-preprocess"; +import {resolve as pathResolve} from "path"; +import ssr from "vite-plugin-ssr/plugin"; + +// https://vitejs.dev/config/ +export default defineConfig({ + build: { + emptyOutDir: true, + }, + server: { + port: 5173, + }, + plugins: [ + svelte({ + preprocess: sveltePreprocess({ + preserve: ["ld+json"], + scss: { + includePaths: ["src/"], + quietDeps: true, + }, + }), + compilerOptions: { + hydratable: true, + }, + }), + ssr({ + prerender: true, + }), + ], + optimizeDeps: {exclude: ["svelte-navigator"]}, + resolve: { + alias: { + "~": pathResolve(__dirname, "src"), + }, + }, +}); diff --git a/template/yarn.lock b/template/yarn.lock new file mode 100644 index 0000000..87022c1 --- /dev/null +++ b/template/yarn.lock @@ -0,0 +1,1056 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@brillout/import@^0.2.1", "@brillout/import@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@brillout/import/-/import-0.2.2.tgz#1b2d3012830d397ecd3eddef3ad4a23984cd0dd8" + integrity sha512-JatRCkrFxss1iwRrFlnY3yPFyD2yGWIeFprMH++TmZ+wqnRlwfN0ECDJea0EyagSGXlb2CUxFIH3dBMBiV05sw== + +"@brillout/json-serializer@^0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@brillout/json-serializer/-/json-serializer-0.5.3.tgz#3bce6e7560e7e9b6a89a915c26df3b49c347fbcc" + integrity sha512-IxlOMD5gOM0WfFGdeR98jHKiC82Ad1tUnSjvLS5jnRkfMEKBI+YzHA32Umw8W3Ccp5N4fNEX229BW6RaRpxRWQ== + +"@brillout/vite-plugin-import-build@^0.2.11": + version "0.2.11" + resolved "https://registry.yarnpkg.com/@brillout/vite-plugin-import-build/-/vite-plugin-import-build-0.2.11.tgz#783b5496b9537b83b1de9c6c2ff13dc7cbcdee6b" + integrity sha512-2/D4zv0qHPwySFw6/rf+NF4bL1J9znEjIN2kp05tC3mupbVNuSLBA+iNBvBzeCEpILW525wukc4ZB5uizjgGhw== + dependencies: + "@brillout/import" "^0.2.2" + +"@esbuild/android-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz#52c3e6cabc19c5e4c1c0c01cb58f0442338e1c14" + integrity sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg== + +"@esbuild/android-arm@0.15.13": + version "0.15.13" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.13.tgz#ce11237a13ee76d5eae3908e47ba4ddd380af86a" + integrity sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw== + +"@esbuild/android-arm@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.11.tgz#f3fc768235aecbeb840d0049fdf13cd28592105f" + integrity sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw== + +"@esbuild/android-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.11.tgz#443ed47771a7e917e4282469ba350d117473550c" + integrity sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ== + +"@esbuild/darwin-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz#0e8c78d94d5759a48521dbfd83189d2ed3499a16" + integrity sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw== + +"@esbuild/darwin-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz#2405cfdf70eb961c7cf973463ca7263dc2004c88" + integrity sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw== + +"@esbuild/freebsd-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz#d5138e873e15f87bd4564c024dfa00ef37e623fd" + integrity sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q== + +"@esbuild/freebsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz#e850b58b8fabf8e9ef0e125af3c25229ad2d6c38" + integrity sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g== + +"@esbuild/linux-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz#2bfb93d0809ec2357c12ebb27736b750c9ae0aa5" + integrity sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg== + +"@esbuild/linux-arm@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz#e56fb3b76828317a704f4a167c5bd790fe5314e7" + integrity sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg== + +"@esbuild/linux-ia32@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz#59fa1c49b271793d14eb5effc757e8c0d0cb2cab" + integrity sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA== + +"@esbuild/linux-loong64@0.15.13": + version "0.15.13" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz#64e8825bf0ce769dac94ee39d92ebe6272020dfc" + integrity sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag== + +"@esbuild/linux-loong64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz#89575bc189099c03a36daa54f3f481780c7fd502" + integrity sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g== + +"@esbuild/linux-mips64el@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz#0e18ca039dc7e4645efd8edc1b10952933eb6b1b" + integrity sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw== + +"@esbuild/linux-ppc64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz#2d152cb3a253afb8c100a165ad132dc96f36cb11" + integrity sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA== + +"@esbuild/linux-riscv64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz#c6ac494a81221d53d65b33e665c7df1747952d3c" + integrity sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA== + +"@esbuild/linux-s390x@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz#4bad33894bc7415cea4be8fa90fe456226a424ad" + integrity sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ== + +"@esbuild/linux-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz#903fda743459f530a16a6c6ee8d2c0f6c1a12fc7" + integrity sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw== + +"@esbuild/netbsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz#b589239fe7d9b16ee03c5e191f3f5b640f1518a1" + integrity sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag== + +"@esbuild/openbsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz#b355019754116bef39ec688f8fd2fe6471b9779b" + integrity sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w== + +"@esbuild/sunos-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz#2ea47fb592e68406e5025a7696dc714fc6a115dc" + integrity sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg== + +"@esbuild/win32-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz#47e6fdab17c4c52e6e0d606dd9cb843b29826325" + integrity sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ== + +"@esbuild/win32-ia32@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz#a97273aa3164c8d8f501899f55cc75a4a79599a3" + integrity sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw== + +"@esbuild/win32-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz#9be796d93ae27b636da32d960899a4912bca27a1" + integrity sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ== + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + +"@svelte-parts/markdown@^0.0.23": + version "0.0.23" + resolved "https://registry.yarnpkg.com/@svelte-parts/markdown/-/markdown-0.0.23.tgz#6a8f320f552ed7bda42d859c646dbc1a005b913a" + integrity sha512-L1ysxspQzU3EhQchvxz9lJ3PnEQ/JlrZww8nX82h/SuzPn8xdYlrGmox39g65cP7nXE3MvwPgb8l9CTbSFtWKQ== + dependencies: + dompurify "^2.3.6" + marked "^4.0.12" + +"@sveltejs/vite-plugin-svelte@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.1.0.tgz#691ec35c7a96f5dd724f52e2eafff50a0debae05" + integrity sha512-cFRfEdztubtj1c/rYh7ArK7XCfFJn6wG6+J8/e9amFsKtEJILovoBrK0/mxt1AjPQg0vaX+fHPKvhx+q8mTPaQ== + dependencies: + debug "^4.3.4" + deepmerge "^4.2.2" + kleur "^4.1.5" + magic-string "^0.26.7" + svelte-hmr "^0.15.0" + +"@tsconfig/svelte@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-3.0.0.tgz#b06e059209f04c414de0069f2f0e2796d979fc6f" + integrity sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg== + +"@types/dompurify@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.4.0.tgz#fd9706392a88e0e0e6d367f3588482d817df0ab9" + integrity sha512-IDBwO5IZhrKvHFUl+clZxgf3hn2b/lU6H1KaBShPkQyGJUQ0xwebezIPSuiyGwfz1UzJWQl4M7BDxtHtCCPlTg== + dependencies: + "@types/trusted-types" "*" + +"@types/highlight.js@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-10.1.0.tgz#89bb0c202997d7a90a07bd2ec1f7d00c56bb90b4" + integrity sha512-77hF2dGBsOgnvZll1vymYiNUtqJ8cJfXPD6GG/2M0aLRc29PkvB7Au6sIDjIEFcSICBhCh2+Pyq6WSRS7LUm6A== + dependencies: + highlight.js "*" + +"@types/marked@^4.0.1": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@types/marked/-/marked-4.0.8.tgz#b316887ab3499d0a8f4c70b7bd8508f92d477955" + integrity sha512-HVNzMT5QlWCOdeuBsgXP8EZzKUf0+AXzN+sLmjvaB3ZlLqO+e4u0uXrdw9ub69wBKFs+c6/pA4r9sy6cCDvImw== + +"@types/node@*": + version "18.11.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" + integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + +"@types/pug@^2.0.4": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" + integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== + +"@types/sass@^1.16.0": + version "1.43.1" + resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.43.1.tgz#86bb0168e9e881d7dade6eba16c9ed6d25dc2f68" + integrity sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== + dependencies: + "@types/node" "*" + +"@types/trusted-types@*": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" + integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-crc32@^0.2.5: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +cac@^6.0.0: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +dedent-js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dedent-js/-/dedent-js-1.0.1.tgz#bee5fb7c9e727d85dffa24590d10ec1ab1255305" + integrity sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +dompurify@^2.3.6, dompurify@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.1.tgz#f9cb1a275fde9af6f2d0a2644ef648dd6847b631" + integrity sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA== + +es-module-lexer@^0.10.0: + version "0.10.5" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.10.5.tgz#06f76d51fa53b1f78e3bd8bb36dd275eda2fdd53" + integrity sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw== + +es6-promise@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== + +esbuild-android-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz#5f25864055dbd62e250f360b38b4c382224063af" + integrity sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g== + +esbuild-android-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz#d8820f999314efbe8e0f050653a99ff2da632b0f" + integrity sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w== + +esbuild-darwin-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz#99ae7fdaa43947b06cd9d1a1c3c2c9f245d81fd0" + integrity sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg== + +esbuild-darwin-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz#bafa1814354ad1a47adcad73de416130ef7f55e3" + integrity sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A== + +esbuild-freebsd-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz#84ef85535c5cc38b627d1c5115623b088d1de161" + integrity sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA== + +esbuild-freebsd-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz#033f21de434ec8e0c478054b119af8056763c2d8" + integrity sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q== + +esbuild-linux-32@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz#54290ea8035cba0faf1791ce9ae6693005512535" + integrity sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w== + +esbuild-linux-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz#4264249281ea388ead948614b57fb1ddf7779a2c" + integrity sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A== + +esbuild-linux-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz#9323c333924f97a02bdd2ae8912b36298acb312d" + integrity sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ== + +esbuild-linux-arm@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz#b407f47b3ae721fe4e00e19e9f19289bef87a111" + integrity sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ== + +esbuild-linux-mips64le@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz#bdf905aae5c0bcaa8f83567fe4c4c1bdc1f14447" + integrity sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A== + +esbuild-linux-ppc64le@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz#2911eae1c90ff58a3bd3259cb557235df25aa3b4" + integrity sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA== + +esbuild-linux-riscv64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz#1837c660be12b1d20d2a29c7189ea703f93e9265" + integrity sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow== + +esbuild-linux-s390x@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz#d52880ece229d1bd10b2d936b792914ffb07c7fc" + integrity sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag== + +esbuild-netbsd-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz#de14da46f1d20352b43e15d97a80a8788275e6ed" + integrity sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ== + +esbuild-openbsd-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz#45e8a5fd74d92ad8f732c43582369c7990f5a0ac" + integrity sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w== + +esbuild-sunos-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz#f646ac3da7aac521ee0fdbc192750c87da697806" + integrity sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw== + +esbuild-windows-32@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz#fb4fe77c7591418880b3c9b5900adc4c094f2401" + integrity sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA== + +esbuild-windows-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz#1fca8c654392c0c31bdaaed168becfea80e20660" + integrity sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ== + +esbuild-windows-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz#4ffd01b6b2888603f1584a2fe96b1f6a6f2b3dd8" + integrity sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg== + +esbuild@^0.15.9: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.13.tgz#7293480038feb2bafa91d3f6a20edab3ba6c108a" + integrity sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ== + optionalDependencies: + "@esbuild/android-arm" "0.15.13" + "@esbuild/linux-loong64" "0.15.13" + esbuild-android-64 "0.15.13" + esbuild-android-arm64 "0.15.13" + esbuild-darwin-64 "0.15.13" + esbuild-darwin-arm64 "0.15.13" + esbuild-freebsd-64 "0.15.13" + esbuild-freebsd-arm64 "0.15.13" + esbuild-linux-32 "0.15.13" + esbuild-linux-64 "0.15.13" + esbuild-linux-arm "0.15.13" + esbuild-linux-arm64 "0.15.13" + esbuild-linux-mips64le "0.15.13" + esbuild-linux-ppc64le "0.15.13" + esbuild-linux-riscv64 "0.15.13" + esbuild-linux-s390x "0.15.13" + esbuild-netbsd-64 "0.15.13" + esbuild-openbsd-64 "0.15.13" + esbuild-sunos-64 "0.15.13" + esbuild-windows-32 "0.15.13" + esbuild-windows-64 "0.15.13" + esbuild-windows-arm64 "0.15.13" + +esbuild@^0.17.0: + version "0.17.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.11.tgz#9f3122643b21d7e7731e42f18576c10bfa28152b" + integrity sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg== + optionalDependencies: + "@esbuild/android-arm" "0.17.11" + "@esbuild/android-arm64" "0.17.11" + "@esbuild/android-x64" "0.17.11" + "@esbuild/darwin-arm64" "0.17.11" + "@esbuild/darwin-x64" "0.17.11" + "@esbuild/freebsd-arm64" "0.17.11" + "@esbuild/freebsd-x64" "0.17.11" + "@esbuild/linux-arm" "0.17.11" + "@esbuild/linux-arm64" "0.17.11" + "@esbuild/linux-ia32" "0.17.11" + "@esbuild/linux-loong64" "0.17.11" + "@esbuild/linux-mips64el" "0.17.11" + "@esbuild/linux-ppc64" "0.17.11" + "@esbuild/linux-riscv64" "0.17.11" + "@esbuild/linux-s390x" "0.17.11" + "@esbuild/linux-x64" "0.17.11" + "@esbuild/netbsd-x64" "0.17.11" + "@esbuild/openbsd-x64" "0.17.11" + "@esbuild/sunos-x64" "0.17.11" + "@esbuild/win32-arm64" "0.17.11" + "@esbuild/win32-ia32" "0.17.11" + "@esbuild/win32-x64" "0.17.11" + +fast-glob@^3.0.0, fast-glob@^3.2.7: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.3: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +highlight.js@*, highlight.js@^11.7.0: + version "11.7.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.7.0.tgz#3ff0165bc843f8c9bce1fd89e2fda9143d24b11e" + integrity sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ== + +immutable@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +kleur@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +magic-string@^0.26.7: + version "0.26.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" + integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== + dependencies: + sourcemap-codec "^1.4.8" + +marked@^4.0.10, marked@^4.0.12: + version "4.2.4" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.4.tgz#5a4ce6c7a1ae0c952601fce46376ee4cf1797e1c" + integrity sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +pascal-case@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +postcss@^8.4.18: + version "8.4.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" + integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prettier-plugin-svelte@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.8.0.tgz#e5681d9867c4ab584c0ccbe43c3684d132b389f2" + integrity sha512-QlXv/U3bUszks3XYDPsk1fsaQC+fo2lshwKbcbO+lrSVdJ+40mB1BfL8OCAk1W9y4pJxpqO/4gqm6NtF3zNGCw== + +prettier@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.5.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rollup@^2.79.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +sade@^1.7.4: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +sander@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" + integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== + dependencies: + es6-promise "^3.1.2" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + +sass@^1.56.0: + version "1.56.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.0.tgz#134032075a3223c8d49cb5c35e091e5ba1de8e0a" + integrity sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +semver@^7.5.3: + version "7.5.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== + dependencies: + lru-cache "^6.0.0" + +sirv@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.2.tgz#128b9a628d77568139cff85703ad5497c46a4760" + integrity sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^3.0.0" + +sorcery@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" + integrity sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g== + dependencies: + buffer-crc32 "^0.2.5" + minimist "^1.2.0" + sander "^0.5.0" + sourcemap-codec "^1.3.0" + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svelte-check@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-2.9.2.tgz#6581b750aa51cf476e82139a674a9bfa4de2ec2d" + integrity sha512-DRi8HhnCiqiGR2YF9ervPGvtoYrheE09cXieCTEqeTPOTJzfoa54Py8rovIBv4bH4n5HgZYIyTQ3DDLHQLl2uQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.9" + chokidar "^3.4.1" + fast-glob "^3.2.7" + import-fresh "^3.2.1" + picocolors "^1.0.0" + sade "^1.7.4" + svelte-preprocess "^4.0.0" + typescript "*" + +svelte-hmr@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.15.0.tgz#c8304b5dd33f006415329d91470761d19417a324" + integrity sha512-Aw21SsyoohyVn4yiKXWPNCSW2DQNH/76kvUnE9kpt4h9hcg9tfyQc6xshx9hzgMfGF0kVx0EGD8oBMWSnATeOg== + +svelte-markdown@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/svelte-markdown/-/svelte-markdown-0.2.3.tgz#16c6db61605512100cf25c3e18f8e4105837895c" + integrity sha512-2h680NzTXnAD0CXhxe3GeHl6W+ayG4iKQRl+BIDRw+R0mUE0OiNxP1Vt8Rn+aWevB/LBiBIPCAwvL+0BkG057A== + dependencies: + "@types/marked" "^4.0.1" + marked "^4.0.10" + +svelte-navigator@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/svelte-navigator/-/svelte-navigator-3.2.2.tgz#4156c2388226e7c42b766ca4def63444ec58a8d2" + integrity sha512-Xio4ohLUG1nQJ+ENNbLphXXu9L189fnI1WGg+2Q3CIMPe8Jm2ipytKQthdBs8t0mN7p3Eb03SE9hq0xZAqwQNQ== + dependencies: + svelte2tsx "^0.1.151" + +svelte-preprocess@^4.0.0, svelte-preprocess@^4.10.7: + version "4.10.7" + resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz#3626de472f51ffe20c9bc71eff5a3da66797c362" + integrity sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== + dependencies: + "@types/pug" "^2.0.4" + "@types/sass" "^1.16.0" + detect-indent "^6.0.0" + magic-string "^0.25.7" + sorcery "^0.10.0" + strip-indent "^3.0.0" + +svelte2tsx@^0.1.151: + version "0.1.193" + resolved "https://registry.yarnpkg.com/svelte2tsx/-/svelte2tsx-0.1.193.tgz#16fe594898ef455e4f715ac317d219c9c757656b" + integrity sha512-vzy4YQNYDnoqp2iZPnJy7kpPAY6y121L0HKrSBjU/IWW7DQ6T7RMJed2VVHFmVYm0zAGYMDl9urPc6R4DDUyhg== + dependencies: + dedent-js "^1.0.1" + pascal-case "^3.1.1" + +svelte@^3.52.0: + version "3.52.0" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.52.0.tgz#08259eff20904c63882b66a5d409a55e8c6743b8" + integrity sha512-FxcnEUOAVfr10vDU5dVgJN19IvqeHQCS1zfe8vayTfis9A2t5Fhx+JDe5uv/C3j//bB1umpLJ6quhgs9xyUbCQ== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +totalist@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.0.tgz#4ef9c58c5f095255cdc3ff2a0a55091c57a3a1bd" + integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw== + +tslib@^2.0.3, tslib@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + +typescript@*, typescript@^4.6.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== + +vite-plugin-ssr@^0.4.90: + version "0.4.90" + resolved "https://registry.yarnpkg.com/vite-plugin-ssr/-/vite-plugin-ssr-0.4.90.tgz#d270e19a2f72ac05ebef722c6b327b31ae3c1956" + integrity sha512-Hu1W17vQqpQVKkOprvrVj4jVAvW9LEHcMjfjEDbHTzmmtpi2LvJ2I39zjph+dYEO5wsdaHAEqDMxtLonOVNxcw== + dependencies: + "@brillout/import" "^0.2.1" + "@brillout/json-serializer" "^0.5.3" + "@brillout/vite-plugin-import-build" "^0.2.11" + cac "^6.0.0" + es-module-lexer "^0.10.0" + esbuild "^0.17.0" + fast-glob "^3.0.0" + picocolors "^1.0.0" + sirv "^2.0.0" + +vite@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.2.tgz#280762bfaf47bcea1d12698427331c0009ac7c1f" + integrity sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw== + dependencies: + esbuild "^0.15.9" + postcss "^8.4.18" + resolve "^1.22.1" + rollup "^2.79.1" + optionalDependencies: + fsevents "~2.3.2" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==