diff --git a/.gitignore b/.gitignore index 8f4335d..dedc27a 100644 --- a/.gitignore +++ b/.gitignore @@ -57,4 +57,7 @@ public/api/vendor /test-results/ /playwright-report/ /playwright/.cache/ - +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/mdsvex.config.js b/mdsvex.config.js new file mode 100644 index 0000000..92bfaaf --- /dev/null +++ b/mdsvex.config.js @@ -0,0 +1,75 @@ +import { defineMDSveXConfig as defineConfig } from 'mdsvex'; +import headings from 'remark-autolink-headings'; +import remarkExternalLinks from 'remark-external-links'; +import slug from 'remark-slug'; +import remarkSetImagePath from './src/lib/utils/remark-set-image-path.js'; +import remarkLinkWithImageAsOnlyChild from './src/lib/utils/remark-link-with-image-as-only-child.js'; +import remarkHeadingsPermaLinks from './src/lib/utils/remark-headings-permalinks.js'; +import { toString } from 'mdast-util-to-string'; +import rehypeWrap from 'rehype-wrap-all'; +import rehypeImgSize from 'rehype-img-size'; +import { h } from 'hastscript'; +import { visit } from 'unist-util-visit'; +import remarkToc from 'remark-toc'; +import getHeadings from './src/lib/utils/get-headings.js'; +// import { highlightCode } from './src/lib/utils/highlighter.js'; + +/** @type {import('mdsvex').MdsvexOptions} */ +const config = defineConfig({ + extensions: ['.svelte.md', '.md', '.svx'], + smartypants: { + dashes: 'oldschool' + }, + // Wait for skeleton to implement Prismjs, for now use in .md files + // highlight: {}, + // layout: { + // blog: './src/lib/components/blog/_blog-layout.svelte', + // project: './src/lib/components/projects/_project-layout.svelte', + // _: './src/lib/components/fallback/_layout.svelte' + // }, + rehypePlugins: [ + [rehypeWrap, { selector: 'table', wrapper: 'div.overflow-auto' }], + [rehypeImgSize, { dir: './static' }], + [ + /** Custom rehype plugin to add loading="lazy" to all images */ + () => { + return (tree) => { + visit(tree, 'element', (node) => { + if (node.tagName === 'img') { + node.properties.loading = 'lazy'; + } + }); + }; + } + ] + ], + remarkPlugins: [ + [remarkToc, { maxDepth: 3, tight: true }][ + (remarkExternalLinks, + { + target: '_blank' + }) + ], + slug, + [ + headings, + { + behavior: 'append', + linkProperties: {}, + content: function (node) { + return [ + h('span.icon.icon-link header-anchor', { + ariaLabel: toString(node) + ' permalink' + }) + ]; + } + } + ], + remarkSetImagePath, + remarkLinkWithImageAsOnlyChild, + remarkHeadingsPermaLinks, + getHeadings + ] +}); + +export default config; diff --git a/package.json b/package.json index 88824bb..f381422 100644 --- a/package.json +++ b/package.json @@ -1,76 +1,80 @@ { - "name": "portfolio", - "description": "Uses pnpm, svelte, mdsvex", - "version": "1.0.0", - "main": "index.js", - "private": true, - "homepage": "mattmor.in", - "author": "Matthieu Morin", - "license": "AGPLv3", - "repository": { - "type": "git", - "url": "https://github.com/matthieu42morin/Portfolio/" - }, - "packageManager": "pnpm@8.6.6", - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "test": "vitest", - "lint": "prettier --plugin-search-dir . --check . && eslint .", - "format": "prettier --plugin-search-dir . --write ." - }, - "devDependencies": { - "@skeletonlabs/skeleton": "2.0.0", - "@skeletonlabs/tw-plugin": "0.1.0", - "@sveltejs/adapter-cloudflare": "^2.3.3", - "@sveltejs/kit": "^1.20.4", - "@tailwindcss/forms": "0.5.6", - "@tailwindcss/typography": "0.5.9", - "@types/js-cookie": "^3.0.5", - "@types/node": "20.5.7", - "@typescript-eslint/eslint-plugin": "^5.45.0", - "@typescript-eslint/parser": "^5.45.0", - "autoprefixer": "10.4.15", - "emoji-regex": "^10.3.0", - "eslint": "^8.28.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-svelte": "^2.30.0", - "js-cookie": "^3.0.5", - "postcss": "8.4.29", - "prettier": "^2.8.0", - "prettier-plugin-svelte": "^2.10.1", - "sass": "^1.66.1", - "svelte": "^4.0.5", - "svelte-check": "^3.4.3", - "tailwindcss": "3.3.3", - "tslib": "^2.4.1", - "typescript": "^5.2.2", - "vite": "^4.4.2", - "vite-plugin-tailwind-purgecss": "0.1.3", - "vitest": "^0.34.0" - }, - "dependencies": { - "@floating-ui/dom": "1.5.1", - "@threlte/core": "^6.0.10", - "@threlte/extras": "^7.0.0", - "@yushijinhun/three-minifier-rollup": "^0.4.0", - "hastscript": "^8.0.0", - "highlight.js": "11.8.0", - "linkedom": "^0.15.3", - "mdast-util-to-string": "^4.0.0", - "mdsvex": "^0.11.0", - "prismjs": "^1.29.0", - "rehype-img-size": "^1.0.1", - "rehype-wrap-all": "^1.1.0", - "remark-autolink-headings": "^7.0.1", - "remark-external-links": "^9.0.1", - "remark-slug": "^7.0.1", - "rss": "^1.2.2", - "svelte-preprocess": "^5.0.4", - "unist-util-visit": "^5.0.0" - }, - "type": "module" + "name": "portfolio", + "description": "Uses pnpm, svelte, mdsvex", + "version": "1.0.0", + "main": "index.js", + "private": true, + "homepage": "mattmor.in", + "author": "Matthieu Morin", + "license": "AGPLv3", + "repository": { + "type": "git", + "url": "https://github.com/matthieu42morin/Portfolio/" + }, + "packageManager": "pnpm@8.6.6", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "test": "vitest", + "lint": "prettier --plugin-search-dir . --check . && eslint .", + "format": "prettier --plugin-search-dir . --write .", + "test-ct": "playwright test -c playwright-ct.config.ts" + }, + "devDependencies": { + "@playwright/experimental-ct-svelte": "^1.39.0", + "@skeletonlabs/skeleton": "2.0.0", + "@skeletonlabs/tw-plugin": "0.1.0", + "@sveltejs/adapter-cloudflare": "^2.3.3", + "@sveltejs/kit": "^1.27.3", + "@tailwindcss/forms": "0.5.6", + "@tailwindcss/typography": "0.5.9", + "@types/js-cookie": "^3.0.5", + "@types/node": "20.5.7", + "@types/prismjs": "^1.26.2", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "autoprefixer": "10.4.15", + "emoji-regex": "^10.3.0", + "eslint": "^8.53.0", + "eslint-config-prettier": "^8.10.0", + "eslint-plugin-svelte": "^2.34.1", + "hastscript": "^8.0.0", + "js-cookie": "^3.0.5", + "mdast-util-to-string": "^4.0.0", + "mdsvex": "^0.11.0", + "postcss": "8.4.29", + "prettier": "^2.8.8", + "prettier-plugin-svelte": "^2.10.1", + "rehype-img-size": "^1.0.1", + "rehype-wrap-all": "^1.1.0", + "remark-autolink-headings": "^7.0.1", + "remark-external-links": "^9.0.1", + "remark-slug": "^7.0.1", + "sass": "^1.69.5", + "svelte": "^4.2.2", + "svelte-check": "^3.5.2", + "tailwindcss": "3.3.3", + "tslib": "^2.6.2", + "typescript": "^5.2.2", + "unist-util-visit": "^5.0.0", + "vite": "^4.5.0", + "vite-plugin-tailwind-purgecss": "0.1.3", + "vitest": "^0.34.6" + }, + "dependencies": { + "@floating-ui/dom": "1.5.1", + "@threlte/core": "^6.1.0", + "@threlte/extras": "^7.5.0", + "@yushijinhun/three-minifier-rollup": "^0.4.0", + "highlight.js": "11.8.0", + "linkedom": "^0.15.6", + "prismjs": "^1.29.0", + "remark-toc": "^9.0.0", + "rss": "^1.2.2", + "svelte-preprocess": "^5.0.4" + }, + "type": "module" } diff --git a/playwright-ct.config.ts b/playwright-ct.config.ts new file mode 100644 index 0000000..f00cb84 --- /dev/null +++ b/playwright-ct.config.ts @@ -0,0 +1,46 @@ +import { defineConfig, devices } from '@playwright/experimental-ct-svelte'; + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './', + /* The base directory, relative to the config file, for snapshot files created with toMatchSnapshot and toHaveScreenshot. */ + snapshotDir: './__snapshots__', + /* Maximum time one test can run for. */ + timeout: 10 * 1000, + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + + /* Port to use for Playwright component endpoint. */ + ctPort: 3100, + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6926d2b..5f12ec8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,32 +9,106 @@ dependencies: specifier: 1.5.1 version: 1.5.1 '@threlte/core': - specifier: ^6.0.10 - version: 6.0.10(svelte@4.2.1)(three@0.157.0) + specifier: ^6.1.0 + version: 6.1.0(svelte@4.2.2)(three@0.158.0) '@threlte/extras': - specifier: ^7.0.0 - version: 7.0.0(svelte@4.2.1)(three@0.157.0) + specifier: ^7.5.0 + version: 7.5.0(svelte@4.2.2)(three@0.158.0) '@yushijinhun/three-minifier-rollup': specifier: ^0.4.0 version: 0.4.0 - hastscript: - specifier: ^8.0.0 - version: 8.0.0 highlight.js: specifier: 11.8.0 version: 11.8.0 linkedom: - specifier: ^0.15.3 - version: 0.15.3 + specifier: ^0.15.6 + version: 0.15.6 + prismjs: + specifier: ^1.29.0 + version: 1.29.0 + remark-toc: + specifier: ^9.0.0 + version: 9.0.0 + rss: + specifier: ^1.2.2 + version: 1.2.2 + svelte-preprocess: + specifier: ^5.0.4 + version: 5.0.4(postcss@8.4.29)(sass@1.69.5)(svelte@4.2.2)(typescript@5.2.2) + +devDependencies: + '@playwright/experimental-ct-svelte': + specifier: ^1.39.0 + version: 1.39.0(@types/node@20.5.7)(sass@1.69.5)(svelte@4.2.2)(vite@4.5.0) + '@skeletonlabs/skeleton': + specifier: 2.0.0 + version: 2.0.0(svelte@4.2.2) + '@skeletonlabs/tw-plugin': + specifier: 0.1.0 + version: 0.1.0(tailwindcss@3.3.3) + '@sveltejs/adapter-cloudflare': + specifier: ^2.3.3 + version: 2.3.3(@sveltejs/kit@1.27.3) + '@sveltejs/kit': + specifier: ^1.27.3 + version: 1.27.3(svelte@4.2.2)(vite@4.5.0) + '@tailwindcss/forms': + specifier: 0.5.6 + version: 0.5.6(tailwindcss@3.3.3) + '@tailwindcss/typography': + specifier: 0.5.9 + version: 0.5.9(tailwindcss@3.3.3) + '@types/js-cookie': + specifier: ^3.0.5 + version: 3.0.5 + '@types/node': + specifier: 20.5.7 + version: 20.5.7 + '@types/prismjs': + specifier: ^1.26.2 + version: 1.26.2 + '@typescript-eslint/eslint-plugin': + specifier: ^5.62.0 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': + specifier: ^5.62.0 + version: 5.62.0(eslint@8.53.0)(typescript@5.2.2) + autoprefixer: + specifier: 10.4.15 + version: 10.4.15(postcss@8.4.29) + emoji-regex: + specifier: ^10.3.0 + version: 10.3.0 + eslint: + specifier: ^8.53.0 + version: 8.53.0 + eslint-config-prettier: + specifier: ^8.10.0 + version: 8.10.0(eslint@8.53.0) + eslint-plugin-svelte: + specifier: ^2.34.1 + version: 2.34.1(eslint@8.53.0)(svelte@4.2.2) + hastscript: + specifier: ^8.0.0 + version: 8.0.0 + js-cookie: + specifier: ^3.0.5 + version: 3.0.5 mdast-util-to-string: specifier: ^4.0.0 version: 4.0.0 mdsvex: specifier: ^0.11.0 - version: 0.11.0(svelte@4.2.1) - prismjs: - specifier: ^1.29.0 - version: 1.29.0 + version: 0.11.0(svelte@4.2.2) + postcss: + specifier: 8.4.29 + version: 8.4.29 + prettier: + specifier: ^2.8.8 + version: 2.8.8 + prettier-plugin-svelte: + specifier: ^2.10.1 + version: 2.10.1(prettier@2.8.8)(svelte@4.2.2) rehype-img-size: specifier: ^1.0.1 version: 1.0.1 @@ -50,101 +124,36 @@ dependencies: remark-slug: specifier: ^7.0.1 version: 7.0.1 - rss: - specifier: ^1.2.2 - version: 1.2.2 - svelte-preprocess: - specifier: ^5.0.4 - version: 5.0.4(postcss@8.4.29)(sass@1.68.0)(svelte@4.2.1)(typescript@5.2.2) - unist-util-visit: - specifier: ^5.0.0 - version: 5.0.0 - -devDependencies: - '@skeletonlabs/skeleton': - specifier: 2.0.0 - version: 2.0.0(svelte@4.2.1) - '@skeletonlabs/tw-plugin': - specifier: 0.1.0 - version: 0.1.0(tailwindcss@3.3.3) - '@sveltejs/adapter-cloudflare': - specifier: ^2.3.3 - version: 2.3.3(@sveltejs/kit@1.25.0) - '@sveltejs/kit': - specifier: ^1.20.4 - version: 1.25.0(svelte@4.2.1)(vite@4.4.9) - '@tailwindcss/forms': - specifier: 0.5.6 - version: 0.5.6(tailwindcss@3.3.3) - '@tailwindcss/typography': - specifier: 0.5.9 - version: 0.5.9(tailwindcss@3.3.3) - '@types/js-cookie': - specifier: ^3.0.5 - version: 3.0.5 - '@types/node': - specifier: 20.5.7 - version: 20.5.7 - '@typescript-eslint/eslint-plugin': - specifier: ^5.45.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/parser': - specifier: ^5.45.0 - version: 5.62.0(eslint@8.50.0)(typescript@5.2.2) - autoprefixer: - specifier: 10.4.15 - version: 10.4.15(postcss@8.4.29) - emoji-regex: - specifier: ^10.3.0 - version: 10.3.0 - eslint: - specifier: ^8.28.0 - version: 8.50.0 - eslint-config-prettier: - specifier: ^8.5.0 - version: 8.10.0(eslint@8.50.0) - eslint-plugin-svelte: - specifier: ^2.30.0 - version: 2.33.2(eslint@8.50.0)(svelte@4.2.1) - js-cookie: - specifier: ^3.0.5 - version: 3.0.5 - postcss: - specifier: 8.4.29 - version: 8.4.29 - prettier: - specifier: ^2.8.0 - version: 2.8.8 - prettier-plugin-svelte: - specifier: ^2.10.1 - version: 2.10.1(prettier@2.8.8)(svelte@4.2.1) sass: - specifier: ^1.66.1 - version: 1.68.0 + specifier: ^1.69.5 + version: 1.69.5 svelte: - specifier: ^4.0.5 - version: 4.2.1 + specifier: ^4.2.2 + version: 4.2.2 svelte-check: - specifier: ^3.4.3 - version: 3.5.2(postcss@8.4.29)(sass@1.68.0)(svelte@4.2.1) + specifier: ^3.5.2 + version: 3.5.2(postcss@8.4.29)(sass@1.69.5)(svelte@4.2.2) tailwindcss: specifier: 3.3.3 version: 3.3.3 tslib: - specifier: ^2.4.1 + specifier: ^2.6.2 version: 2.6.2 typescript: specifier: ^5.2.2 version: 5.2.2 + unist-util-visit: + specifier: ^5.0.0 + version: 5.0.0 vite: - specifier: ^4.4.2 - version: 4.4.9(@types/node@20.5.7)(sass@1.68.0) + specifier: ^4.5.0 + version: 4.5.0(@types/node@20.5.7)(sass@1.69.5) vite-plugin-tailwind-purgecss: specifier: 0.1.3 - version: 0.1.3(vite@4.4.9) + version: 0.1.3(vite@4.5.0) vitest: - specifier: ^0.34.0 - version: 0.34.5(sass@1.68.0) + specifier: ^0.34.6 + version: 0.34.6(sass@1.69.5) packages: @@ -163,7 +172,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 /@cloudflare/workers-types@4.20231025.0: resolution: {integrity: sha512-TkcZkntUTOcvJ4vgmwpNfLTclpMbmbClZCe62B25/VTukmyv91joRa4eKzSjzCZUXTbFHNmVdOpmGaaJU2U3+A==} @@ -367,29 +376,29 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.50.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.50.0 + eslint: 8.53.0 eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.8.1: - resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.22.0 + globals: 13.23.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -399,33 +408,38 @@ packages: - supports-color dev: true - /@eslint/js@8.50.0: - resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@fastify/busboy@2.0.0: + resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} + engines: {node: '>=14'} + dev: true + /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: - '@floating-ui/utils': 0.1.4 + '@floating-ui/utils': 0.1.6 dev: false /@floating-ui/dom@1.5.1: resolution: {integrity: sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==} dependencies: '@floating-ui/core': 1.5.0 - '@floating-ui/utils': 0.1.4 + '@floating-ui/utils': 0.1.6 dev: false - /@floating-ui/utils@0.1.4: - resolution: {integrity: sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==} + /@floating-ui/utils@0.1.6: + resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} dev: false - /@humanwhocodes/config-array@0.11.11: - resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -437,8 +451,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true /@jest/schemas@29.6.3: @@ -454,7 +468,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} @@ -467,8 +481,8 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.19: - resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 @@ -494,6 +508,44 @@ packages: fastq: 1.15.0 dev: true + /@playwright/experimental-ct-core@1.39.0(@types/node@20.5.7)(sass@1.69.5): + resolution: {integrity: sha512-1b/qrlB5A/CdEZns8f2RDkWFmSnGkNyec8n72iinmw07+GHsdMP8fIpazeFB0umxWfo+gPLhkjhTGdB3WXJTBw==} + engines: {node: '>=16'} + hasBin: true + dependencies: + playwright: 1.39.0 + playwright-core: 1.39.0 + vite: 4.5.0(@types/node@20.5.7)(sass@1.69.5) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - terser + dev: true + + /@playwright/experimental-ct-svelte@1.39.0(@types/node@20.5.7)(sass@1.69.5)(svelte@4.2.2)(vite@4.5.0): + resolution: {integrity: sha512-8L7BJOi19XPPrKl6NqRgC6vBlA7VRtdCe2/UeaPIrKPVtcyYwKTZwCdTIp3BRedSdsOCY4Aq2cV4iRl9qn5LTw==} + engines: {node: '>=16'} + hasBin: true + dependencies: + '@playwright/experimental-ct-core': 1.39.0(@types/node@20.5.7)(sass@1.69.5) + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.2)(vite@4.5.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - svelte + - terser + - vite + dev: true + /@polka/url@1.0.0-next.23: resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} dev: true @@ -502,13 +554,13 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@skeletonlabs/skeleton@2.0.0(svelte@4.2.1): + /@skeletonlabs/skeleton@2.0.0(svelte@4.2.2): resolution: {integrity: sha512-8SaDK3kEUU57cSb/5a984EbINgnOPzShlkwPkduAhqc71SEqhRvx+RlLEpe1174NAYi00oi//LguIAYuVrSfBA==} peerDependencies: svelte: ^3.56.0 || ^4.0.0 dependencies: esm-env: 1.0.0 - svelte: 4.2.1 + svelte: 4.2.2 dev: true /@skeletonlabs/tw-plugin@0.1.0(tailwindcss@3.3.3): @@ -519,19 +571,19 @@ packages: tailwindcss: 3.3.3 dev: true - /@sveltejs/adapter-cloudflare@2.3.3(@sveltejs/kit@1.25.0): + /@sveltejs/adapter-cloudflare@2.3.3(@sveltejs/kit@1.27.3): resolution: {integrity: sha512-bbcm6kq4dEluFtFJZed3KSRG4f5GUElYkVfOmnPruTqZ29nTElPJTomAu5QCp7GLkwA26O3h1Dk7+d9yLTQEXg==} peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: '@cloudflare/workers-types': 4.20231025.0 - '@sveltejs/kit': 1.25.0(svelte@4.2.1)(vite@4.4.9) + '@sveltejs/kit': 1.27.3(svelte@4.2.2)(vite@4.5.0) esbuild: 0.18.20 worktop: 0.8.0-next.15 dev: true - /@sveltejs/kit@1.25.0(svelte@4.2.1)(vite@4.4.9): - resolution: {integrity: sha512-+VqMWJJYtcLoF8hYkdqY2qs/MPaawrMwA/gNBJW2o2UrcuYdNiy0ZZnjQQuPD33df/VcAulnoeyzF5ZtaajFEw==} + /@sveltejs/kit@1.27.3(svelte@4.2.2)(vite@4.5.0): + resolution: {integrity: sha512-pd7qwX6ww5noA0/FLk45B0aKUeOXWR+pfZsGTrv3dRmj3lTmnki9UTmTdWzHJGrje+BBkGUZHfgGrsSOQQBQpQ==} engines: {node: ^16.14 || >=18} hasBin: true requiresBuild: true @@ -539,26 +591,26 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.1)(vite@4.4.9) - '@types/cookie': 0.5.2 + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.2)(vite@4.5.0) + '@types/cookie': 0.5.3 cookie: 0.5.0 devalue: 4.3.2 esm-env: 1.0.0 kleur: 4.1.5 - magic-string: 0.30.3 - mime: 3.0.0 + magic-string: 0.30.5 + mrmime: 1.0.1 sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.3 - svelte: 4.2.1 + svelte: 4.2.2 tiny-glob: 0.2.9 - undici: 5.23.0 - vite: 4.4.9(@types/node@20.5.7)(sass@1.68.0) + undici: 5.26.5 + vite: 4.5.0(@types/node@20.5.7)(sass@1.69.5) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.1)(vite@4.4.9): + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.2)(vite@4.5.0): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -566,30 +618,30 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.1)(vite@4.4.9) + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.2)(vite@4.5.0) debug: 4.3.4 - svelte: 4.2.1 - vite: 4.4.9(@types/node@20.5.7)(sass@1.68.0) + svelte: 4.2.2 + vite: 4.5.0(@types/node@20.5.7)(sass@1.69.5) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.1)(vite@4.4.9): + /@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.2)(vite@4.5.0): resolution: {integrity: sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.1)(vite@4.4.9) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.2)(vite@4.5.0) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.3 - svelte: 4.2.1 - svelte-hmr: 0.15.3(svelte@4.2.1) - vite: 4.4.9(@types/node@20.5.7)(sass@1.68.0) - vitefu: 0.2.4(vite@4.4.9) + magic-string: 0.30.5 + svelte: 4.2.2 + svelte-hmr: 0.15.3(svelte@4.2.2) + vite: 4.5.0(@types/node@20.5.7)(sass@1.69.5) + vitefu: 0.2.5(vite@4.5.0) transitivePeerDependencies: - supports-color dev: true @@ -615,97 +667,103 @@ packages: tailwindcss: 3.3.3 dev: true - /@threlte/core@6.0.10(svelte@4.2.1)(three@0.157.0): - resolution: {integrity: sha512-bFn1Mym4QT7RHdfAaCp+tXpyNjv0h/j3U4xVXbnlLnps/3wcdw1XIYPSGjomdwPPWnlYcmFlVJjEGVrXDbYSZA==} + /@threlte/core@6.1.0(svelte@4.2.2)(three@0.158.0): + resolution: {integrity: sha512-8Sm4Hkcs0oSB+c1WnMxWfZvbsatYkMv8VOgfsF+jzbvZUyPKtcwvbOe43Y101zhZTk//GKrdsPuwcURuFGMYVg==} peerDependencies: svelte: '>=4' three: '>=0.133' dependencies: - svelte: 4.2.1 - three: 0.157.0 + svelte: 4.2.2 + three: 0.158.0 dev: false - /@threlte/extras@7.0.0(svelte@4.2.1)(three@0.157.0): - resolution: {integrity: sha512-XEOIhbYFSI6IiVyxqhOoQtr4GD9euE4UbjjAD39X36pCYsmP83+JVJw1NW5rAF1qZecIEx8RlCAgMMpRspLsGg==} + /@threlte/extras@7.5.0(svelte@4.2.2)(three@0.158.0): + resolution: {integrity: sha512-t3SKtGHp1ehEmGHbi4yuL1MBkTqaumK+OJYkJKJftLGQKq3CW6zfhxeIcflcs8AmdBIPwAAS+mFjbYDRUAfdvg==} peerDependencies: svelte: '>=4' three: '>=0.133' dependencies: lodash-es: 4.17.21 - svelte: 4.2.1 - three: 0.157.0 - troika-three-text: 0.47.2(three@0.157.0) + svelte: 4.2.2 + three: 0.158.0 + troika-three-text: 0.47.2(three@0.158.0) dev: false - /@types/chai-subset@1.3.3: - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + /@types/chai-subset@1.3.4: + resolution: {integrity: sha512-CCWNXrJYSUIojZ1149ksLl3AN9cmZ5djf+yUoVVV+NuYrtydItQVlL2ZDqyC6M6O9LWRnVf8yYDxbXHO2TfQZg==} dependencies: - '@types/chai': 4.3.6 + '@types/chai': 4.3.9 dev: true - /@types/chai@4.3.6: - resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} + /@types/chai@4.3.9: + resolution: {integrity: sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==} dev: true - /@types/cookie@0.5.2: - resolution: {integrity: sha512-DBpRoJGKJZn7RY92dPrgoMew8xCWc2P71beqsjyhEI/Ds9mOyVmBwtekyfhpwFIVt1WrxTonFifiOZ62V8CnNA==} + /@types/cookie@0.5.3: + resolution: {integrity: sha512-SLg07AS9z1Ab2LU+QxzU8RCmzsja80ywjf/t5oqw+4NSH20gIGlhLOrBDm1L3PBWzPa4+wkgFQVZAjE6Ioj2ug==} dev: true - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + /@types/estree@1.0.4: + resolution: {integrity: sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==} - /@types/hast@2.3.6: - resolution: {integrity: sha512-47rJE80oqPmFdVDCD7IheXBrVdwuBgsYwoczFvKmwfo2Mzsnt+V9OONsYauFmICb6lQPpCuXYJWejBNs4pDJRg==} + /@types/hast@2.3.7: + resolution: {integrity: sha512-EVLigw5zInURhzfXUM65eixfadfsHKomGKUakToXo84t8gGIJuTcD2xooM2See7GyQ7DRtYjhCHnSUQez8JaLw==} dependencies: - '@types/unist': 2.0.8 - dev: false + '@types/unist': 2.0.9 + dev: true - /@types/hast@3.0.1: - resolution: {integrity: sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==} + /@types/hast@3.0.2: + resolution: {integrity: sha512-B5hZHgHsXvfCoO3xgNJvBnX7N8p86TqQeGKXcokW4XXi+qY4vxxPSFYofytvVmpFxzPv7oxDQzjg5Un5m2/xiw==} dependencies: - '@types/unist': 2.0.8 - dev: false + '@types/unist': 3.0.1 + dev: true /@types/js-cookie@3.0.5: resolution: {integrity: sha512-dtLshqoiGRDHbHueIT9sjkd2F4tW1qPSX2xKAQK8p1e6pM+Z913GM1shv7dOqqasEMYbC5zEaClJomQe8OtQLA==} dev: true - /@types/json-schema@7.0.13: - resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} + /@types/json-schema@7.0.14: + resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} dev: true - /@types/mdast@3.0.13: - resolution: {integrity: sha512-HjiGiWedR0DVFkeNljpa6Lv4/IZU1+30VY5d747K7lBudFc3R0Ibr6yJ9lN3BE28VnZyDfLF/VB1Ql1ZIbKrmg==} + /@types/mdast@3.0.14: + resolution: {integrity: sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw==} dependencies: - '@types/unist': 2.0.8 - dev: false + '@types/unist': 2.0.9 + dev: true - /@types/mdast@4.0.1: - resolution: {integrity: sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==} + /@types/mdast@4.0.2: + resolution: {integrity: sha512-tYR83EignvhYO9iU3kDg8V28M0jqyh9zzp5GV+EO+AYnyUl3P5ltkTeJuTiFZQFz670FSb3EwT/6LQdX+UdKfw==} dependencies: - '@types/unist': 2.0.8 - dev: false + '@types/unist': 3.0.1 /@types/node@20.5.7: resolution: {integrity: sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==} dev: true - /@types/pug@2.0.6: - resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} - - /@types/semver@7.5.2: - resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==} + /@types/prismjs@1.26.2: + resolution: {integrity: sha512-/r7Cp7iUIk7gts26mHXD66geUC+2Fo26TZYjQK6Nr4LDfi6lmdRmMqM0oPwfiMhUwoBAOFe8GstKi2pf6hZvwA==} dev: true - /@types/unist@2.0.8: - resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} + /@types/pug@2.0.8: + resolution: {integrity: sha512-QzhsZ1dMGyJbn/D9V80zp4GIA4J4rfAjCCxc3MP+new0E8dyVdSkR735Lx+n3LIaHNFcjHL5+TbziccuT+fdoQ==} + + /@types/semver@7.5.4: + resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} + dev: true + + /@types/ungap__structured-clone@0.3.1: + resolution: {integrity: sha512-7QlsekF3QYmE+RbRRRq9lfgQLugDdDXTR8E/njp+x9DpRp+n5UsyDLLVne1d3f1h2S7f38x4xEJfHA5NtfiO7Q==} dev: false - /@types/unist@3.0.0: - resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} - dev: false + /@types/unist@2.0.9: + resolution: {integrity: sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==} + dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@5.2.2): + /@types/unist@3.0.1: + resolution: {integrity: sha512-ue/hDUpPjC85m+PM9OQDMZr3LywT+CT6mPsQq8OJtCLiERkGRcQUFvu9XASF5XWqyZFXbf15lvb3JFJ4dRLWPg==} + + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -716,13 +774,13 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.8.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@5.2.2) + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.50.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.50.0 + eslint: 8.53.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -733,7 +791,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.50.0)(typescript@5.2.2): + /@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -747,7 +805,7 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4 - eslint: 8.50.0 + eslint: 8.53.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -761,7 +819,7 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.50.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -772,9 +830,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.50.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.50.0 + eslint: 8.53.0 tsutils: 3.21.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -807,19 +865,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.50.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - '@types/json-schema': 7.0.13 - '@types/semver': 7.5.2 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@types/json-schema': 7.0.14 + '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.50.0 + eslint: 8.53.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -835,49 +893,52 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@vitest/expect@0.34.5: - resolution: {integrity: sha512-/3RBIV9XEH+nRpRMqDJBufKIOQaYUH2X6bt0rKSCW0MfKhXFLYsR5ivHifeajRSTsln0FwJbitxLKHSQz/Xwkw==} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + /@vitest/expect@0.34.6: + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} dependencies: - '@vitest/spy': 0.34.5 - '@vitest/utils': 0.34.5 - chai: 4.3.8 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.3.10 dev: true - /@vitest/runner@0.34.5: - resolution: {integrity: sha512-RDEE3ViVvl7jFSCbnBRyYuu23XxmvRTSZWW6W4M7eC5dOsK75d5LIf6uhE5Fqf809DQ1+9ICZZNxhIolWHU4og==} + /@vitest/runner@0.34.6: + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} dependencies: - '@vitest/utils': 0.34.5 + '@vitest/utils': 0.34.6 p-limit: 4.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@0.34.5: - resolution: {integrity: sha512-+ikwSbhu6z2yOdtKmk/aeoDZ9QPm2g/ZO5rXT58RR9Vmu/kB2MamyDSx77dctqdZfP3Diqv4mbc/yw2kPT8rmA==} + /@vitest/snapshot@0.34.6: + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} dependencies: - magic-string: 0.30.3 + magic-string: 0.30.5 pathe: 1.1.1 pretty-format: 29.7.0 dev: true - /@vitest/spy@0.34.5: - resolution: {integrity: sha512-epsicsfhvBjRjCMOC/3k00mP/TBGQy8/P0DxOFiWyLt55gnZ99dqCfCiAsKO17BWVjn4eZRIjKvcqNmSz8gvmg==} + /@vitest/spy@0.34.6: + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} dependencies: - tinyspy: 2.1.1 + tinyspy: 2.2.0 dev: true - /@vitest/utils@0.34.5: - resolution: {integrity: sha512-ur6CmmYQoeHMwmGb0v+qwkwN3yopZuZyf4xt1DBBSGBed8Hf9Gmbm/5dEWqgpLPdRx6Av6jcWXrjcKfkTzg/pw==} + /@vitest/utils@0.34.6: + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} dependencies: diff-sequences: 29.6.3 - loupe: 2.3.6 + loupe: 2.3.7 pretty-format: 29.7.0 dev: true /@yushijinhun/three-minifier-common@0.4.0: resolution: {integrity: sha512-O6rj7tVkxbV9lCT3vmb0i14XgAnhX7WdFWBmePp8oIXp3SDZtpk+bXzP0Enj8/czYXdTljBtlJgSJZlMM2coUQ==} dependencies: - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.11.2 + acorn-walk: 8.3.0 glsl-tokenizer: 2.1.5 dev: false @@ -888,20 +949,20 @@ packages: magic-string: 0.26.7 dev: false - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.2 dev: true - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + /acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true @@ -971,9 +1032,9 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.11 - caniuse-lite: 1.0.30001538 - fraction.js: 4.3.6 + browserslist: 4.22.1 + caniuse-lite: 1.0.30001561 + fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 postcss: 8.4.29 @@ -987,14 +1048,14 @@ packages: /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - dev: false + dev: true /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} /bcp-47-match@1.0.3: resolution: {integrity: sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==} - dev: false + dev: true /bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} @@ -1008,7 +1069,6 @@ packages: /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: false /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1028,27 +1088,20 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist@4.21.11: - resolution: {integrity: sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==} + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001538 - electron-to-chromium: 1.4.528 + caniuse-lite: 1.0.30001561 + electron-to-chromium: 1.4.576 node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.21.11) + update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - dependencies: - streamsearch: 1.1.0 - dev: true - /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1064,19 +1117,19 @@ packages: engines: {node: '>= 6'} dev: true - /caniuse-lite@1.0.30001538: - resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + /caniuse-lite@1.0.30001561: + resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} dev: true - /chai@4.3.8: - resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==} + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 - loupe: 2.3.6 + get-func-name: 2.0.2 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -1089,8 +1142,10 @@ packages: supports-color: 7.2.0 dev: true - /check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@3.5.3: @@ -1111,8 +1166,8 @@ packages: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.1 - acorn: 8.10.0 + '@types/estree': 1.0.4 + acorn: 8.11.2 estree-walker: 3.0.3 periscopic: 3.1.0 @@ -1129,11 +1184,11 @@ packages: /comma-separated-tokens@1.0.8: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - dev: false + dev: true /comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - dev: false + dev: true /commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} @@ -1178,7 +1233,7 @@ packages: /css-selector-parser@1.4.1: resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} - dev: false + dev: true /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} @@ -1261,7 +1316,7 @@ packages: /direction@1.0.4: resolution: {integrity: sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==} hasBin: true - dev: false + dev: true /dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -1301,8 +1356,8 @@ packages: domhandler: 5.0.3 dev: false - /electron-to-chromium@1.4.528: - resolution: {integrity: sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA==} + /electron-to-chromium@1.4.576: + resolution: {integrity: sha512-yXsZyXJfAqzWk1WKryr0Wl0MN2D47xodPvEEwlVePBnhU5E7raevLQR+E6b9JAD3GfL/7MbAL9ZtWQQPcLx7wA==} dev: true /emoji-regex@10.3.0: @@ -1357,17 +1412,17 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier@8.10.0(eslint@8.50.0): + /eslint-config-prettier@8.10.0(eslint@8.53.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.50.0 + eslint: 8.53.0 dev: true - /eslint-plugin-svelte@2.33.2(eslint@8.50.0)(svelte@4.2.1): - resolution: {integrity: sha512-knWmauax+E/jvQ9CmuX5dAhQKP9P4eGQZxWa5RMutEJVCcy0wFmiUvOeDND2jR4vUkbDlX4khKjaceY7QzbkYw==} + /eslint-plugin-svelte@2.34.1(eslint@8.53.0)(svelte@4.2.2): + resolution: {integrity: sha512-HnLzYevh9bLL0Rj2d4dmZY9EutN0BL5JsJRHqtJFIyaEmdxxd3ZuY5zNoSjIFhctFMSntsClbd6TwYjgaOY0Xw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 @@ -1376,19 +1431,19 @@ packages: svelte: optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4 - eslint: 8.50.0 + eslint: 8.53.0 esutils: 2.0.3 - known-css-properties: 0.28.0 + known-css-properties: 0.29.0 postcss: 8.4.29 postcss-load-config: 3.1.4(postcss@8.4.29) postcss-safe-parser: 6.0.0(postcss@8.4.29) postcss-selector-parser: 6.0.13 semver: 7.5.4 - svelte: 4.2.1 - svelte-eslint-parser: 0.33.0(svelte@4.2.1) + svelte: 4.2.2 + svelte-eslint-parser: 0.33.1(svelte@4.2.2) transitivePeerDependencies: - supports-color - ts-node @@ -1415,18 +1470,19 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.50.0: - resolution: {integrity: sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==} + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - '@eslint-community/regexpp': 4.8.1 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.50.0 - '@humanwhocodes/config-array': 0.11.11 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.0 + '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -1442,7 +1498,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.22.0 + globals: 13.23.0 graphemer: 1.4.0 ignore: 5.2.4 imurmurhash: 0.1.4 @@ -1469,8 +1525,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 dev: true @@ -1501,7 +1557,7 @@ packages: /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.4 /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -1510,7 +1566,7 @@ packages: /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false + dev: true /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1545,7 +1601,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.0 + flat-cache: 3.1.1 dev: true /fill-range@7.0.1: @@ -1562,12 +1618,12 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.1.0: - resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + /flat-cache@3.1.1: + resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} engines: {node: '>=12.0.0'} dependencies: flatted: 3.2.9 - keyv: 4.5.3 + keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -1575,13 +1631,21 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /fraction.js@4.3.6: - resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1589,16 +1653,20 @@ packages: requiresBuild: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true - /get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true /github-slugger@1.5.0: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + dev: true + + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} dev: false /glob-parent@5.1.2: @@ -1646,8 +1714,8 @@ packages: once: 1.4.0 dev: true - /globals@13.22.0: - resolution: {integrity: sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==} + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1691,30 +1759,30 @@ packages: engines: {node: '>=8'} dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 dev: true /hast-util-has-property@1.0.4: resolution: {integrity: sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==} - dev: false + dev: true /hast-util-is-element@1.1.0: resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} - dev: false + dev: true /hast-util-parse-selector@2.2.5: resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - dev: false + dev: true /hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: - '@types/hast': 3.0.1 - dev: false + '@types/hast': 3.0.2 + dev: true /hast-util-select@4.0.2: resolution: {integrity: sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==} @@ -1733,25 +1801,25 @@ packages: space-separated-tokens: 1.1.5 unist-util-visit: 2.0.3 zwitch: 1.0.5 - dev: false + dev: true /hast-util-to-string@1.0.4: resolution: {integrity: sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==} - dev: false + dev: true /hast-util-whitespace@1.0.4: resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==} - dev: false + dev: true /hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: - '@types/hast': 3.0.1 + '@types/hast': 3.0.2 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 6.3.0 + property-information: 6.4.0 space-separated-tokens: 2.0.2 - dev: false + dev: true /highlight.js@11.8.0: resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==} @@ -1782,7 +1850,7 @@ packages: hasBin: true dependencies: queue: 6.0.2 - dev: false + dev: true /immutable@4.3.4: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} @@ -1812,7 +1880,7 @@ packages: /is-absolute-url@4.0.1: resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + dev: true /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} @@ -1823,12 +1891,12 @@ packages: /is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} - dev: false + dev: true - /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - has: 1.0.3 + hasown: 2.0.0 dev: true /is-extglob@2.1.1: @@ -1853,12 +1921,12 @@ packages: /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - dev: false + dev: true /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.4 /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -1868,8 +1936,8 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /jiti@1.20.0: - resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true dev: true @@ -1901,8 +1969,8 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true - /keyv@4.5.3: - resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 dev: true @@ -1912,8 +1980,8 @@ packages: engines: {node: '>=6'} dev: true - /known-css-properties@0.28.0: - resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==} + /known-css-properties@0.29.0: + resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} dev: true /levn@0.4.1: @@ -1933,8 +2001,8 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /linkedom@0.15.3: - resolution: {integrity: sha512-p+lBSEWzawF3Gy7+nw+5+u+iDthsfZZVd9lwiO96Ihj7Zd8he5BD1Wzdc9Z4GqtU6lKvxhye4W4Zr20uOAGe4A==} + /linkedom@0.15.6: + resolution: {integrity: sha512-2Vt8fdP5BNWeIiV8B3ZxfY2Z8zB0u2nVP4JPS+cgeqUlNbY26IFdDot4FYM+pZ6dA2fTVrP6bi8Z4VNTlyurvA==} dependencies: css-select: 5.1.0 cssom: 0.5.0 @@ -1974,10 +2042,10 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /loupe@2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: true /lru-cache@6.0.0: @@ -2000,8 +2068,8 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - /magic-string@0.30.3: - resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -2009,37 +2077,48 @@ packages: /mdast-util-definitions@5.1.2: resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} dependencies: - '@types/mdast': 3.0.13 - '@types/unist': 2.0.8 + '@types/mdast': 3.0.14 + '@types/unist': 2.0.9 unist-util-visit: 4.1.2 - dev: false + dev: true /mdast-util-to-string@3.2.0: resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} dependencies: - '@types/mdast': 3.0.13 - dev: false + '@types/mdast': 3.0.14 + dev: true /mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.2 + + /mdast-util-toc@7.0.0: + resolution: {integrity: sha512-C28UcSqjmnWuvgT8d97qpaItHKvySqVPAECUzqQ51xuMyNFFJwcFoKW77KoMjtXrclTidLQFDzLUmTmrshRweA==} + dependencies: + '@types/mdast': 4.0.2 + '@types/ungap__structured-clone': 0.3.1 + '@ungap/structured-clone': 1.2.0 + github-slugger: 2.0.0 + mdast-util-to-string: 4.0.0 + unist-util-is: 6.0.0 + unist-util-visit: 5.0.0 dev: false /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - /mdsvex@0.11.0(svelte@4.2.1): + /mdsvex@0.11.0(svelte@4.2.2): resolution: {integrity: sha512-gJF1s0N2nCmdxcKn8HDn0LKrN8poStqAicp6bBcsKFd/zkUBGLP5e7vnxu+g0pjBbDFOscUyI1mtHz+YK2TCDw==} peerDependencies: svelte: '>=3 <5' dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 prism-svelte: 0.4.7 prismjs: 1.29.0 - svelte: 4.2.1 + svelte: 4.2.2 vfile-message: 2.0.4 - dev: false + dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -2066,12 +2145,6 @@ packages: mime-db: 1.25.0 dev: false - /mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - dev: true - /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -2105,10 +2178,10 @@ packages: /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.3.0 + ufo: 1.3.1 dev: true /mri@1.2.0: @@ -2161,13 +2234,12 @@ packages: /not@0.1.0: resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} - dev: false + dev: true /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 - dev: false /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -2258,7 +2330,7 @@ packages: /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.4 estree-walker: 3.0.3 is-reference: 3.0.2 @@ -2287,6 +2359,22 @@ packages: pathe: 1.1.1 dev: true + /playwright-core@1.39.0: + resolution: {integrity: sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==} + engines: {node: '>=16'} + hasBin: true + dev: true + + /playwright@1.39.0: + resolution: {integrity: sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==} + engines: {node: '>=16'} + hasBin: true + dependencies: + playwright-core: 1.39.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /postcss-import@15.1.0(postcss@8.4.29): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -2296,7 +2384,7 @@ packages: postcss: 8.4.29 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.6 + resolve: 1.22.8 dev: true /postcss-js@4.0.1(postcss@8.4.29): @@ -2340,7 +2428,7 @@ packages: dependencies: lilconfig: 2.1.0 postcss: 8.4.29 - yaml: 2.3.2 + yaml: 2.3.4 dev: true /postcss-nested@6.0.1(postcss@8.4.29): @@ -2362,8 +2450,8 @@ packages: postcss: 8.4.29 dev: true - /postcss-scss@4.0.8(postcss@8.4.29): - resolution: {integrity: sha512-Cr0X8Eu7xMhE96PJck6ses/uVVXDtE5ghUTKNUYgm8ozgP2TkgV3LWs3WgLV1xaSSLq8ZFiXaUrj0LVgG1fGEA==} + /postcss-scss@4.0.9(postcss@8.4.29): + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 @@ -2404,14 +2492,14 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@4.2.1): + /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@4.2.2): resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==} peerDependencies: prettier: ^1.16.4 || ^2.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 dependencies: prettier: 2.8.8 - svelte: 4.2.1 + svelte: 4.2.2 dev: true /prettier@2.8.8: @@ -2431,25 +2519,24 @@ packages: /prism-svelte@0.4.7: resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==} - dev: false + dev: true /prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} - dev: false /property-information@5.6.0: resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} dependencies: xtend: 4.0.2 - dev: false + dev: true - /property-information@6.3.0: - resolution: {integrity: sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==} - dev: false + /property-information@6.4.0: + resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} + dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true @@ -2471,7 +2558,7 @@ packages: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} dependencies: inherits: 2.0.4 - dev: false + dev: true /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} @@ -2509,7 +2596,7 @@ packages: dependencies: image-size: 1.0.2 unist-util-visit: 4.1.2 - dev: false + dev: true /rehype-wrap-all@1.1.0: resolution: {integrity: sha512-AFiCZqyJXnD2NF4ZjuVpW9aZuD+bz5YdkIF+bL66jmExdh6efgb9LAtUx+Rw1puMwRPGPqBXXYl9bEzi59Cq8g==} @@ -2518,40 +2605,47 @@ packages: hast-util-parse-selector: 2.2.5 hast-util-select: 4.0.2 unist-util-visit: 2.0.3 - dev: false + dev: true /remark-autolink-headings@7.0.1: resolution: {integrity: sha512-a1BIwoJ0cSnX+sPp5u3AFULBFWHGYBt57Fo4a+7IlGiJOQxs8b7uYAE5Iu26Ocl7Y5cvinZy3FaGVruLCKg6vA==} dependencies: - '@types/hast': 2.3.6 - '@types/mdast': 3.0.13 + '@types/hast': 2.3.7 + '@types/mdast': 3.0.14 extend: 3.0.2 unified: 10.1.2 unist-util-visit: 4.1.2 - dev: false + dev: true /remark-external-links@9.0.1: resolution: {integrity: sha512-EYw+p8Zqy5oT5+W8iSKzInfRLY+zeKWHCf0ut+Q5SwnaSIDGXd2zzvp4SWqyAuVbinNmZ0zjMrDKaExWZnTYqQ==} dependencies: - '@types/hast': 2.3.6 - '@types/mdast': 3.0.13 + '@types/hast': 2.3.7 + '@types/mdast': 3.0.14 extend: 3.0.2 is-absolute-url: 4.0.1 mdast-util-definitions: 5.1.2 space-separated-tokens: 2.0.2 unified: 10.1.2 unist-util-visit: 4.1.2 - dev: false + dev: true /remark-slug@7.0.1: resolution: {integrity: sha512-NRvYePr69LdeCkEGwL4KYAmq7kdWG5rEavCXMzUR4qndLoXHJAOLSUmPY6Qm4NJfKix7/EmgObyVaYivONAFhg==} dependencies: - '@types/hast': 2.3.6 - '@types/mdast': 3.0.13 + '@types/hast': 2.3.7 + '@types/mdast': 3.0.14 github-slugger: 1.5.0 mdast-util-to-string: 3.2.0 unified: 10.1.2 unist-util-visit: 4.1.2 + dev: true + + /remark-toc@9.0.0: + resolution: {integrity: sha512-KJ9txbo33GjDAV1baHFze7ij4G8c7SGYoY8Kzsm2gzFpbhL/bSoVpMMzGa3vrNDSWASNd/3ppAqL7cP2zD6JIA==} + dependencies: + '@types/mdast': 4.0.2 + mdast-util-toc: 7.0.0 dev: false /require-from-string@2.0.2: @@ -2564,11 +2658,11 @@ packages: engines: {node: '>=4'} dev: true - /resolve@1.22.6: - resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -2591,8 +2685,8 @@ packages: glob: 7.2.3 dev: true - /rollup@3.29.2: - resolution: {integrity: sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==} + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -2627,8 +2721,8 @@ packages: mkdirp: 0.5.6 rimraf: 2.7.1 - /sass@1.68.0: - resolution: {integrity: sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA==} + /sass@1.69.5: + resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -2698,11 +2792,11 @@ packages: /space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - dev: false + dev: true /space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - dev: false + dev: true /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -2712,11 +2806,6 @@ packages: resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: true - /string_decoder@0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} dev: false @@ -2742,7 +2831,7 @@ packages: /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 dev: true /sucrase@3.34.0: @@ -2771,20 +2860,20 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.5.2(postcss@8.4.29)(sass@1.68.0)(svelte@4.2.1): + /svelte-check@3.5.2(postcss@8.4.29)(sass@1.69.5)(svelte@4.2.2): resolution: {integrity: sha512-5a/YWbiH4c+AqAUP+0VneiV5bP8YOk9JL3jwvN+k2PEPLgpu85bjQc5eE67+eIZBBwUEJzmO3I92OqKcqbp3fw==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 dependencies: - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 chokidar: 3.5.3 fast-glob: 3.3.1 import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.1 - svelte-preprocess: 5.0.4(postcss@8.4.29)(sass@1.68.0)(svelte@4.2.1)(typescript@5.2.2) + svelte: 4.2.2 + svelte-preprocess: 5.0.4(postcss@8.4.29)(sass@1.69.5)(svelte@4.2.2)(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - '@babel/core' @@ -2798,8 +2887,8 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.33.0(svelte@4.2.1): - resolution: {integrity: sha512-5awZ6Bs+Tb/zQwa41PSdcLynAVQTwW0HGyCBjtbAQ59taLZqDgQSMzRlDmapjZdDtzERm0oXDZNE0E+PKJ6ryg==} + /svelte-eslint-parser@0.33.1(svelte@4.2.2): + resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 @@ -2811,20 +2900,20 @@ packages: eslint-visitor-keys: 3.4.3 espree: 9.6.1 postcss: 8.4.29 - postcss-scss: 4.0.8(postcss@8.4.29) - svelte: 4.2.1 + postcss-scss: 4.0.9(postcss@8.4.29) + svelte: 4.2.2 dev: true - /svelte-hmr@0.15.3(svelte@4.2.1): + /svelte-hmr@0.15.3(svelte@4.2.2): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.2.1 + svelte: 4.2.2 dev: true - /svelte-preprocess@5.0.4(postcss@8.4.29)(sass@1.68.0)(svelte@4.2.1)(typescript@5.2.2): + /svelte-preprocess@5.0.4(postcss@8.4.29)(sass@1.69.5)(svelte@4.2.2)(typescript@5.2.2): resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -2862,24 +2951,24 @@ packages: typescript: optional: true dependencies: - '@types/pug': 2.0.6 + '@types/pug': 2.0.8 detect-indent: 6.1.0 magic-string: 0.27.0 postcss: 8.4.29 - sass: 1.68.0 + sass: 1.69.5 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.1 + svelte: 4.2.2 typescript: 5.2.2 - /svelte@4.2.1: - resolution: {integrity: sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==} + /svelte@4.2.2: + resolution: {integrity: sha512-My2tytF2e2NnHSpn2M7/3VdXT4JdTglYVUuSuK/mXL2XtulPYbeBfl8Dm1QiaKRn0zoULRnL+EtfZHHP0k4H3A==} engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 - acorn: 8.10.0 + '@jridgewell/trace-mapping': 0.3.20 + acorn: 8.11.2 aria-query: 5.3.0 axobject-query: 3.2.1 code-red: 1.0.4 @@ -2887,7 +2976,7 @@ packages: estree-walker: 3.0.3 is-reference: 3.0.2 locate-character: 3.0.0 - magic-string: 0.30.3 + magic-string: 0.30.5 periscopic: 3.1.0 /tailwindcss@3.3.3: @@ -2903,7 +2992,7 @@ packages: fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.20.0 + jiti: 1.21.0 lilconfig: 2.1.0 micromatch: 4.0.5 normalize-path: 3.0.0 @@ -2915,7 +3004,7 @@ packages: postcss-load-config: 4.0.1(postcss@8.4.29) postcss-nested: 6.0.1(postcss@8.4.29) postcss-selector-parser: 6.0.13 - resolve: 1.22.6 + resolve: 1.22.8 sucrase: 3.34.0 transitivePeerDependencies: - ts-node @@ -2938,8 +3027,8 @@ packages: any-promise: 1.3.0 dev: true - /three@0.157.0: - resolution: {integrity: sha512-CeAwQrf4x3z0/e+MC4F+nXLW5t0gh3pw+L6CCBqpHvOq3bGYIgRYub7Pv0j/9wR+d++OiEglyZzWyuSYbwWGOA==} + /three@0.158.0: + resolution: {integrity: sha512-TALj4EOpdDPF1henk2Q+s17K61uEAAWQ7TJB68nr7FKxqwyDr3msOt5IWdbGm4TaWKjrtWS8DJJWe9JnvsWOhQ==} dev: false /through2@0.6.5: @@ -2965,8 +3054,8 @@ packages: engines: {node: '>=14.0.0'} dev: true - /tinyspy@2.1.1: - resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} dev: true @@ -2981,24 +3070,24 @@ packages: engines: {node: '>=6'} dev: true - /troika-three-text@0.47.2(three@0.157.0): + /troika-three-text@0.47.2(three@0.158.0): resolution: {integrity: sha512-qylT0F+U7xGs+/PEf3ujBdJMYWbn0Qci0kLqI5BJG2kW1wdg4T1XSxneypnF05DxFqJhEzuaOR9S2SjiyknMng==} peerDependencies: three: '>=0.125.0' dependencies: bidi-js: 1.0.3 - three: 0.157.0 - troika-three-utils: 0.47.2(three@0.157.0) + three: 0.158.0 + troika-three-utils: 0.47.2(three@0.158.0) troika-worker-utils: 0.47.2 webgl-sdf-generator: 1.1.1 dev: false - /troika-three-utils@0.47.2(three@0.157.0): + /troika-three-utils@0.47.2(three@0.158.0): resolution: {integrity: sha512-/28plhCxfKtH7MSxEGx8e3b/OXU5A0xlwl+Sbdp0H8FXUHKZDoksduEKmjQayXYtxAyuUiCRunYIv/8Vi7aiyg==} peerDependencies: three: '>=0.125.0' dependencies: - three: 0.157.0 + three: 0.158.0 dev: false /troika-worker-utils@0.47.2: @@ -3007,7 +3096,7 @@ packages: /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} - dev: false + dev: true /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -3053,113 +3142,110 @@ packages: engines: {node: '>=14.17'} hasBin: true - /ufo@1.3.0: - resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} + /ufo@1.3.1: + resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} dev: true /uhyphen@0.2.0: resolution: {integrity: sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==} dev: false - /undici@5.23.0: - resolution: {integrity: sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==} + /undici@5.26.5: + resolution: {integrity: sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==} engines: {node: '>=14.0'} dependencies: - busboy: 1.6.0 + '@fastify/busboy': 2.0.0 dev: true /unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 bail: 2.0.2 extend: 3.0.2 is-buffer: 2.0.5 is-plain-obj: 4.1.0 trough: 2.1.0 vfile: 5.3.7 - dev: false + dev: true /unist-util-is@4.1.0: resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - dev: false + dev: true /unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} dependencies: - '@types/unist': 2.0.8 - dev: false + '@types/unist': 2.0.9 + dev: true /unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} dependencies: - '@types/unist': 3.0.0 - dev: false + '@types/unist': 3.0.1 /unist-util-stringify-position@2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} dependencies: - '@types/unist': 2.0.8 - dev: false + '@types/unist': 2.0.9 + dev: true /unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} dependencies: - '@types/unist': 2.0.8 - dev: false + '@types/unist': 2.0.9 + dev: true /unist-util-visit-parents@3.1.1: resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 unist-util-is: 4.1.0 - dev: false + dev: true /unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 unist-util-is: 5.2.1 - dev: false + dev: true /unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.1 unist-util-is: 6.0.0 - dev: false /unist-util-visit@2.0.3: resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 unist-util-is: 4.1.0 unist-util-visit-parents: 3.1.1 - dev: false + dev: true /unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 - dev: false + dev: true /unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.1 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - dev: false - /update-browserslist-db@1.0.13(browserslist@4.21.11): + /update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.11 + browserslist: 4.22.1 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -3167,7 +3253,7 @@ packages: /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /util-deprecate@1.0.2: @@ -3177,28 +3263,28 @@ packages: /vfile-message@2.0.4: resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 unist-util-stringify-position: 2.0.3 - dev: false + dev: true /vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 unist-util-stringify-position: 3.0.3 - dev: false + dev: true /vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.9 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - dev: false + dev: true - /vite-node@0.34.5(@types/node@20.5.7)(sass@1.68.0): - resolution: {integrity: sha512-RNZ+DwbCvDoI5CbCSQSyRyzDTfFvFauvMs6Yq4ObJROKlIKuat1KgSX/Ako5rlDMfVCyMcpMRMTkJBxd6z8YRA==} + /vite-node@0.34.6(@types/node@20.5.7)(sass@1.69.5): + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: @@ -3207,7 +3293,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@20.5.7)(sass@1.68.0) + vite: 4.5.0(@types/node@20.5.7)(sass@1.69.5) transitivePeerDependencies: - '@types/node' - less @@ -3219,18 +3305,18 @@ packages: - terser dev: true - /vite-plugin-tailwind-purgecss@0.1.3(vite@4.4.9): + /vite-plugin-tailwind-purgecss@0.1.3(vite@4.5.0): resolution: {integrity: sha512-VVz9fwKBEEFSbj/rKxtwtczvoSrIqbzbo6S+MT7gH0CsmKNwlx947VMoV8B085ocxGCuFlddOPRDszNXLi2nTQ==} peerDependencies: vite: ^4.1.1 dependencies: estree-walker: 3.0.3 purgecss: 6.0.0-alpha.0 - vite: 4.4.9(@types/node@20.5.7)(sass@1.68.0) + vite: 4.5.0(@types/node@20.5.7)(sass@1.69.5) dev: true - /vite@4.4.9(@types/node@20.5.7)(sass@1.68.0): - resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} + /vite@4.5.0(@types/node@20.5.7)(sass@1.69.5): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -3260,25 +3346,25 @@ packages: '@types/node': 20.5.7 esbuild: 0.18.20 postcss: 8.4.29 - rollup: 3.29.2 - sass: 1.68.0 + rollup: 3.29.4 + sass: 1.69.5 optionalDependencies: fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@4.4.9): - resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} + /vitefu@0.2.5(vite@4.5.0): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: - vite: ^3.0.0 || ^4.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: vite: optional: true dependencies: - vite: 4.4.9(@types/node@20.5.7)(sass@1.68.0) + vite: 4.5.0(@types/node@20.5.7)(sass@1.69.5) dev: true - /vitest@0.34.5(sass@1.68.0): - resolution: {integrity: sha512-CPI68mmnr2DThSB3frSuE5RLm9wo5wU4fbDrDwWQQB1CWgq9jQVoQwnQSzYAjdoBOPoH2UtXpOgHVge/uScfZg==} + /vitest@0.34.6(sass@1.69.5): + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: @@ -3308,29 +3394,29 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.6 - '@types/chai-subset': 1.3.3 + '@types/chai': 4.3.9 + '@types/chai-subset': 1.3.4 '@types/node': 20.5.7 - '@vitest/expect': 0.34.5 - '@vitest/runner': 0.34.5 - '@vitest/snapshot': 0.34.5 - '@vitest/spy': 0.34.5 - '@vitest/utils': 0.34.5 - acorn: 8.10.0 - acorn-walk: 8.2.0 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + acorn: 8.11.2 + acorn-walk: 8.3.0 cac: 6.7.14 - chai: 4.3.8 + chai: 4.3.10 debug: 4.3.4 local-pkg: 0.4.3 - magic-string: 0.30.3 + magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 std-env: 3.4.3 strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.7.0 - vite: 4.4.9(@types/node@20.5.7)(sass@1.68.0) - vite-node: 0.34.5(@types/node@20.5.7)(sass@1.68.0) + vite: 4.5.0(@types/node@20.5.7)(sass@1.69.5) + vite-node: 0.34.6(@types/node@20.5.7)(sass@1.69.5) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -3381,7 +3467,6 @@ packages: /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - dev: false /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -3392,8 +3477,8 @@ packages: engines: {node: '>= 6'} dev: true - /yaml@2.3.2: - resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} dev: true @@ -3409,4 +3494,4 @@ packages: /zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - dev: false + dev: true diff --git a/src/lib/components/blog/PostLayout.svelte b/src/lib/components/blog/PostLayout.svelte new file mode 100644 index 0000000..0f9fb4c --- /dev/null +++ b/src/lib/components/blog/PostLayout.svelte @@ -0,0 +1,52 @@ + + +
+
+
+ {`${title}`} +
+

+ {formatDate(date)} +

+ {#if tags && tags.length > 0} +
+ {#each tags as tag} + + {tag} + + {/each} +
+ {/if} + +
+
+
+
+ + diff --git a/src/lib/components/blog/PostPreview.svelte b/src/lib/components/blog/PostPreview.svelte new file mode 100644 index 0000000..44bf5cd --- /dev/null +++ b/src/lib/components/blog/PostPreview.svelte @@ -0,0 +1,82 @@ + + + +
+ + +
+ Post +
+
+
+
+ {#if post.tags} + {#each post.tags as tag} + {tag} + {/each} + {/if} +
+
+

{post.title}

+
+

+ + {post.excerpt} + +

+
+
+
+
+
+
By Matt
+ + {#if post.date} + + {new Date(Date.parse(post.date)).toLocaleDateString(undefined, { + year: 'numeric', + month: 'short', + day: 'numeric' + })} + + {/if} + +
+
+
+
+ diff --git a/src/lib/types/blog.d.ts b/src/lib/types/blog.d.ts index 21c8377..68bc72b 100644 --- a/src/lib/types/blog.d.ts +++ b/src/lib/types/blog.d.ts @@ -1,15 +1,16 @@ import type { MarkdownMetadata } from '$lib/contents/types'; -export type BlogTag = 'Projects' | 'Ideas' | 'Updates' | ''; +export type BlogTag = 'Projects' | 'Blog' | 'Updates' | ''; export interface BlogPost extends MarkdownMetadata { + title: string; + subtitle?: string; + tags?: BlogTag[]; + modified?: string; date?: string; excerpt: string; image: string; slug?: string; href?: string; - tags?: BlogTag[]; - subtitle?: string; - title: string; published: boolean; } diff --git a/src/lib/utils/mdsvexGlobalComponents.js b/src/lib/utils/mdsvexGlobalComponents.js new file mode 100644 index 0000000..df665bb --- /dev/null +++ b/src/lib/utils/mdsvexGlobalComponents.js @@ -0,0 +1,70 @@ +/** + * Credit goes to @Xananax for providing this solution within the gist https://gist.github.com/Xananax/5dca3a1dd7070e4fdebe2927e4aeb55b + */ +import { join, basename, extname } from 'path'; + +export const defaults = { + extensions: ['.svelte.md', '.md', '.svx'], + dir: `$lib`, + list: [] +}; + +/** + * Injects global imports in all your mdsvex files + * Specify: + * - the root dir (defaults to `src/lib`) + * - the array list of components (with extension), like `['Component.svelte']` + * - the valid extensions list as an array (defaults to `['.svelte.md', '.md', '.svx']`) + * + * If you want the component name to be different from the file name, you can specify an array + * of arrays: `['Component.svelte', ['Another', 'AnotherComp.svelte'], 'ThirdComp.svelte']` + * + * @param {Object} options options described above + * @returns a preprocessor suitable to plug into the `preprocess` key of the svelte config + */ +export const mdsvexGlobalComponents = (options = {}) => { + const { extensions, dir, list } = { ...defaults, ...options }; + const extensionsRegex = new RegExp( + '(' + extensions.join('|').replace(/\./g, '\\.') + ')$', + 'i' + ); + + if (!list || !list.length || !Array.isArray(list)) { + throw new Error(`"list" option must be an array and contain at least one element`); + } + + const imports = list + .map((entry) => { + let name = ''; + if (Array.isArray(entry)) { + name = entry[0]; + entry = entry[1]; + } + const ext = extname(entry); + const path = join(dir, entry); + name = name || basename(entry, ext); + return `\nimport ${name} from "${path}";`; + }) + .join('\n'); + + const preprocessor = { + script(thing) { + const { content, filename, attributes, markup } = thing; + if (!filename.match(extensionsRegex)) { + return { code: content }; + } + const hasModuleContext = /^ + +{#if $page.status === 404} +
+
+

404

+
+

You just hit a route that doesn't exist

+
+{:else} +

{$page.status}

+ + {#if $page.error} +

{$page.error.message}

+ {/if} + +

Sorry! Maybe try one of these links?

+ +{/if} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index bc87733..fec8b59 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -3,6 +3,7 @@ import { AppShell } from '@skeletonlabs/skeleton'; import { onMount } from 'svelte'; import MainFooter from '$lib/components/MainFooter.svelte'; + import MainHeader from '$lib/components/MainHeader.svelte'; // Floating UI for Popups import { computePosition, autoUpdate, flip, shift, offset, arrow } from '@floating-ui/dom'; @@ -65,9 +66,8 @@ // Highlight JS import hljs from 'highlight.js'; - import 'highlight.js/styles/github-dark.css'; + import 'highlight.js/styles/nord.css'; import { storeHighlightJs } from '@skeletonlabs/skeleton'; - import MainHeader from '$lib/components/MainHeader.svelte'; storeHighlightJs.set(hljs); diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts new file mode 100644 index 0000000..a0a46f8 --- /dev/null +++ b/src/routes/+layout.ts @@ -0,0 +1,2 @@ +export const prerender = true; +export const trailingSlash = 'never'; \ No newline at end of file diff --git a/src/routes/blog/+page.svelte b/src/routes/blog/+page.svelte index b59e4a5..cb056fc 100644 --- a/src/routes/blog/+page.svelte +++ b/src/routes/blog/+page.svelte @@ -43,7 +43,7 @@ --> + + + + + +