diff --git a/.changeset/itchy-beers-burn.md b/.changeset/itchy-beers-burn.md new file mode 100644 index 000000000000..66c4b0fcc6de --- /dev/null +++ b/.changeset/itchy-beers-burn.md @@ -0,0 +1,5 @@ +--- +'create-svelte': patch +--- + +Adding new Hello World templates (default with enhanced style and skeleton) to create-svelte diff --git a/packages/create-svelte/.gitignore b/packages/create-svelte/.gitignore index 7e1457c65914..62647078b0d9 100644 --- a/packages/create-svelte/.gitignore +++ b/packages/create-svelte/.gitignore @@ -1,5 +1,7 @@ -/bin.js /dist # re-enable this once we're out of prerelease -/cli/versions.js \ No newline at end of file +/cli/versions.js + +/templates/*/.svelte +/templates/*/build \ No newline at end of file diff --git a/packages/create-svelte/cli/index.js b/packages/create-svelte/bin.js old mode 100644 new mode 100755 similarity index 75% rename from packages/create-svelte/cli/index.js rename to packages/create-svelte/bin.js index 2467bdc62ead..bb4704d0b462 --- a/packages/create-svelte/cli/index.js +++ b/packages/create-svelte/bin.js @@ -1,10 +1,10 @@ -//eslint-disable-next-line import/no-unresolved +#!/usr/bin/env node import fs from 'fs'; import path from 'path'; -import { bold, cyan, gray, green, red } from 'kleur/colors'; -import prompts from 'prompts/lib/index'; import { fileURLToPath } from 'url'; -import { version } from '../package.json'; +import { bold, cyan, gray, green, red } from 'kleur/colors'; +import prompts from 'prompts'; +import { mkdirp, copy } from './utils.js'; const disclaimer = ` Welcome to the SvelteKit setup wizard! @@ -13,6 +13,8 @@ SvelteKit is in public beta now. There are definitely bugs and some feature migh If you encounter an issue, have a look at https://github.com/sveltejs/kit/issues and open a new one, if it is not already tracked. `; +const { version } = JSON.parse(fs.readFileSync(new URL('package.json', import.meta.url))); + async function main() { console.log(gray(`\ncreate-svelte version ${version}`)); console.log(red(disclaimer)); @@ -36,7 +38,21 @@ async function main() { mkdirp(cwd); } - const options = /** @type {import('./types').Options} */ (await prompts([ + const options = /** @type {import('../types/internal').Options} */ (await prompts([ + { + type: 'select', + name: 'template', + message: 'Which Svelte app template?', + choices: fs.readdirSync(dist('templates')).map((dir) => { + const meta_file = dist(`templates/${dir}/meta.json`); + const meta = JSON.parse(fs.readFileSync(meta_file, 'utf8')); + + return { + title: meta.description, + value: dir + }; + }) + }, { type: 'confirm', name: 'typescript', @@ -59,7 +75,7 @@ async function main() { const name = path.basename(path.resolve(cwd)); - write_template_files(`default-${options.typescript ? 'ts' : 'js'}`, name, cwd); + write_template_files(options.template, options.typescript, name, cwd); write_common_files(cwd, options); console.log(bold(green('✔ Copied project files'))); @@ -120,37 +136,37 @@ async function main() { } /** - * @param {string} id + * @param {string} template + * @param {string} typescript * @param {string} name * @param {string} cwd */ -function write_template_files(id, name, cwd) { - const template = fileURLToPath(new URL(`./dist/templates/${id}.json`, import.meta.url).href); - const { files } = /** @type {import('./types').Template} */ (JSON.parse( - fs.readFileSync(template, 'utf-8') +function write_template_files(template, typescript, name, cwd) { + const dir = dist(`templates/${template}`); + copy(`${dir}/assets`, cwd); + copy(`${dir}/package.json`, `${cwd}/package.json`); + + const manifest = `${dir}/files.${typescript ? 'ts' : 'js'}.json`; + const files = /** @type {import('../types/internal').File[]} */ (JSON.parse( + fs.readFileSync(manifest, 'utf-8') )); files.forEach((file) => { const dest = path.join(cwd, file.name); mkdirp(path.dirname(dest)); - fs.writeFileSync( - dest, - file.encoding === 'base64' - ? Buffer.from(file.contents, 'base64') - : file.contents.replace(/~TODO~/g, name) - ); + fs.writeFileSync(dest, file.contents.replace(/~TODO~/g, name)); }); } /** * * @param {string} cwd - * @param {import('./types').Options} options + * @param {import('../types/internal').Options} options */ function write_common_files(cwd, options) { - const shared = fileURLToPath(new URL('./dist/shared.json', import.meta.url).href); - const { files } = /** @type {import('./types').Common} */ (JSON.parse( + const shared = dist('shared.json'); + const { files } = /** @type {import('../types/internal').Common} */ (JSON.parse( fs.readFileSync(shared, 'utf-8') )); @@ -218,14 +234,9 @@ function sort_keys(obj) { return sorted; } -/** @param {string} dir */ -function mkdirp(dir) { - try { - fs.mkdirSync(dir, { recursive: true }); - } catch (e) { - if (e.code === 'EEXIST') return; - throw e; - } +/** @param {string} path */ +function dist(path) { + return fileURLToPath(new URL(`./dist/${path}`, import.meta.url).href); } main(); diff --git a/packages/create-svelte/cli/global.d.ts b/packages/create-svelte/cli/global.d.ts deleted file mode 100644 index 68697498c761..000000000000 --- a/packages/create-svelte/cli/global.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare module 'prompts/lib/index'; - -declare module '*.json'; diff --git a/packages/create-svelte/package.json b/packages/create-svelte/package.json index 8d39f20d91e4..40a6c6413afd 100644 --- a/packages/create-svelte/package.json +++ b/packages/create-svelte/package.json @@ -2,29 +2,32 @@ "name": "create-svelte", "version": "2.0.0-next.51", "bin": "./bin.js", + "dependencies": { + "kleur": "^4.1.4", + "prompts": "^2.4.0" + }, "devDependencies": { - "@rollup/plugin-json": "^4.1.0", "@sveltejs/kit": "workspace:*", + "@types/gitignore-parser": "^0.0.0", + "@types/prettier": "^2.2.3", "gitignore-parser": "^0.0.2", - "kleur": "^4.1.4", "prettier": "^2.2.1", "prettier-plugin-svelte": "^2.2.0", - "prompts": "^2.4.0", - "rollup": "^2.41.1", "sucrase": "^3.18.1", + "svelte-preprocess": "^4.7.0", "tiny-glob": "^0.2.8" }, "scripts": { - "dev": "rollup -cw", - "build": "node scripts/build-templates && rollup -c", - "lint": "eslint --ignore-path .gitignore \"cli/*.js\" && npm run check-format", + "build": "node scripts/build-templates", + "lint": "eslint --ignore-path .gitignore \"./*.js\" && npm run check-format", "format": "prettier --write . --config ../../.prettierrc --ignore-path .gitignore", "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore", "prepublishOnly": "npm run build" }, "files": [ "dist", - "bin.js" + "bin.js", + "utils.js" ], "type": "module" } diff --git a/packages/create-svelte/rollup.config.js b/packages/create-svelte/rollup.config.js deleted file mode 100644 index 4cc828feb218..000000000000 --- a/packages/create-svelte/rollup.config.js +++ /dev/null @@ -1,29 +0,0 @@ -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import commonjs from '@rollup/plugin-commonjs'; -import json from '@rollup/plugin-json'; - -export default { - input: 'cli/index.js', - output: { - file: 'bin.js', - format: 'esm', - banner: '#!/usr/bin/env node', - interop: false - }, - plugins: [ - nodeResolve(), - commonjs(), - json(), - { - transform(code, id) { - if (id.endsWith('.gitignore')) { - return { - code: `export default ${JSON.stringify(code)}`, - map: null - }; - } - } - } - ], - external: require('module').builtinModules -}; diff --git a/packages/create-svelte/scripts/build-templates.js b/packages/create-svelte/scripts/build-templates.js index 67b592bc670f..7ca556e37e9e 100644 --- a/packages/create-svelte/scripts/build-templates.js +++ b/packages/create-svelte/scripts/build-templates.js @@ -4,18 +4,18 @@ import parser from 'gitignore-parser'; import prettier from 'prettier'; import { transform } from 'sucrase'; import glob from 'tiny-glob/sync.js'; +import { mkdirp, rimraf } from '../utils.js'; -async function generate_templates() { +/** @param {Set} shared */ +async function generate_templates(shared) { const templates = fs.readdirSync('templates'); - try { - fs.mkdirSync('dist/templates', { recursive: true }); - } catch { - // ignore - } + for (const template of templates) { + const dir = `dist/templates/${template}`; + const assets = `${dir}/assets`; + mkdirp(assets); - for (const name of templates) { - const cwd = path.resolve('templates', name); + const cwd = path.resolve('templates', template); const gitignore_file = path.join(cwd, '.gitignore'); if (!fs.existsSync(gitignore_file)) throw new Error('Template must have a .gitignore file'); @@ -23,35 +23,44 @@ async function generate_templates() { const meta_file = path.join(cwd, '.meta.json'); if (!fs.existsSync(meta_file)) throw new Error('Template must have a .meta.json file'); - const meta = JSON.parse(fs.readFileSync(meta_file, 'utf-8')); - - const ts = { - meta, - files: glob('**/*', { cwd, filesOnly: true }) - .filter(gitignore.accepts) - .map((name) => { - const encoding = /\.(ico|png|jpe?g)$/.test(name) ? 'base64' : 'utf8'; - let contents = fs.readFileSync(path.join(cwd, name), encoding); - - if (name === 'package.json') { - // TODO package-specific versions - contents = contents.replace(/workspace:\*/g, 'next'); - } - return { + /** @type {import('../types/internal.js').File[]} */ + const ts = []; + + glob('**/*', { cwd, filesOnly: true }).forEach((name) => { + if (name === '.meta.json' || shared.has(name)) return; + if (!gitignore.accepts(name)) return; + + if (/\.(js|ts|svelte|svelte\.md)$/.test(name) || name === 'package.json') { + let contents = fs.readFileSync(path.join(cwd, name), 'utf8'); + + if (name === 'package.json') { + // TODO package-specific versions + contents = contents.replace(/workspace:\*/g, 'next'); + fs.writeFileSync(`${dir}/package.json`, contents); + } else { + ts.push({ name, - contents, - encoding - }; - }) - }; + contents + }); + } + } else { + const dest = path.join(assets, name); + mkdirp(path.dirname(dest)); + fs.copyFileSync(path.join(cwd, name), dest); + } + }); - const js = { meta, files: [] }; + /** @type {import('../types/internal.js').File[]} */ + const js = []; - for (const file of ts.files) { + for (const file of ts) { // The global.d.ts file makes TS/JS aware of some ambient modules, which are // also needed for JS projects if people turn on "checkJs" in their jsonfig - if (file.name.endsWith('.d.ts') && !file.name.endsWith('global.d.ts')) continue; + if (file.name.endsWith('.d.ts')) { + if (file.name.endsWith('global.d.ts')) js.push(file); + continue; + } if (file.name.endsWith('.ts')) { const transformed = transform(file.contents, { @@ -65,7 +74,7 @@ async function generate_templates() { trailingComma: 'none' }); - js.files.push({ + js.push({ name: file.name.replace(/\.ts$/, '.js'), contents }); @@ -76,7 +85,7 @@ async function generate_templates() { // tool for the job because it just removes the types; Prettier then // tidies up the end result const contents = file.contents.replace( - /]+)>([\s\S]+)<\/script>/g, + /]+)>([\s\S]+?)<\/script>/g, (m, attrs, typescript) => { // Sucrase assumes 'unused' imports (which _are_ used, but only // in the markup) are type imports, and strips them. This step @@ -113,52 +122,70 @@ async function generate_templates() { } ); - js.files.push({ + js.push({ name: file.name, contents }); } else { - js.files.push(file); + js.push(file); } } - fs.writeFileSync(`dist/templates/${name}-ts.json`, JSON.stringify(ts, null, '\t')); - fs.writeFileSync(`dist/templates/${name}-js.json`, JSON.stringify(js, null, '\t')); + fs.copyFileSync(meta_file, `${dir}/meta.json`); + fs.writeFileSync(`${dir}/files.ts.json`, JSON.stringify(ts, null, '\t')); + fs.writeFileSync(`${dir}/files.js.json`, JSON.stringify(js, null, '\t')); } } -async function generate_common() { +async function generate_shared() { const cwd = path.resolve('shared'); + /** @type {Set} */ + const shared = new Set(); + const files = glob('**/*', { cwd, filesOnly: true, dot: true }) .map((file) => { - const [conditions, ...rest] = file.split('/'); + const contents = fs.readFileSync(path.join(cwd, file), 'utf8'); + /** @type {string[]} */ const include = []; + + /** @type {string[]} */ const exclude = []; - const pattern = /([+-])([a-z]+)/g; - let match; - while ((match = pattern.exec(conditions))) { - const set = match[1] === '+' ? include : exclude; - set.push(match[2]); + let name = file; + + if (file.startsWith('+') || file.startsWith('-')) { + const [conditions, ...rest] = file.split('/'); + + const pattern = /([+-])([a-z]+)/g; + let match; + while ((match = pattern.exec(conditions))) { + const set = match[1] === '+' ? include : exclude; + set.push(match[2]); + } + + name = rest.join('/'); } - return { - name: rest.join('/'), - include, - exclude, - contents: fs.readFileSync(path.join(cwd, file), 'utf8') - }; + shared.add(name); + + return { name, include, exclude, contents }; }) .sort((a, b) => a.include.length + a.exclude.length - (b.include.length + b.exclude.length)); fs.writeFileSync('dist/shared.json', JSON.stringify({ files }, null, '\t')); + + shared.delete('package.json'); + return shared; } async function main() { - await generate_templates(); - await generate_common(); + rimraf('dist'); + mkdirp('dist'); + + const shared = await generate_shared(); + await generate_templates(shared); } main(); diff --git a/packages/create-svelte/shared/README.md b/packages/create-svelte/shared/README.md new file mode 100644 index 000000000000..eefd796f3175 --- /dev/null +++ b/packages/create-svelte/shared/README.md @@ -0,0 +1,38 @@ +# create-svelte + +Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte); + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npm init svelte@next + +# create a new project in my-app +npm init svelte@next my-app +``` + +> Note: the `@next` is temporary + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +Before creating a production version of your app, install an [adapter](https://kit.svelte.dev/docs#adapters) for your target environment. Then: + +```bash +npm run build +``` + +> You can preview the built app with `npm start`, regardless of whether you installed an adapter. This should _not_ be used to serve your app in production. diff --git a/packages/create-svelte/templates/default/.gitignore b/packages/create-svelte/templates/default/.gitignore index 77b1ebd8489d..e7002107841e 100644 --- a/packages/create-svelte/templates/default/.gitignore +++ b/packages/create-svelte/templates/default/.gitignore @@ -2,4 +2,4 @@ node_modules /.svelte /build -/functions \ No newline at end of file +/functions diff --git a/packages/create-svelte/templates/default/.meta.json b/packages/create-svelte/templates/default/.meta.json index b560eb88c15e..a8ae4ca55d49 100644 --- a/packages/create-svelte/templates/default/.meta.json +++ b/packages/create-svelte/templates/default/.meta.json @@ -1,3 +1,3 @@ { - "description": "Demo project" + "description": "SvelteKit demo app" } diff --git a/packages/create-svelte/templates/default/README.md b/packages/create-svelte/templates/default/README.md deleted file mode 100644 index f696cf8dc882..000000000000 --- a/packages/create-svelte/templates/default/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# create-svelte - -Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte); - -## Creating a project - -If you're seeing this, you've probably already done this step. Congrats! - -```bash -# create a new project in the current directory -npm init svelte@next - -# create a new project in my-app -npm init svelte@next my-app -``` - -> Note: the `@next` is temporary - -## Developing - -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: - -```bash -npm run dev - -# or start the server and open the app in a new browser tab -npm run dev -- --open -``` - -## Building - -Svelte apps are built with _adapters_, which optimise your project for deployment to different environments. - -By default, `npm run build` will generate a Node app that you can run with `node build`. To use a different adapter, add it to the `devDependencies` in `package.json` making sure to specify the version as `next` and update your `svelte.config.cjs` to [specify your chosen adapter](https://kit.svelte.dev/docs#configuration-adapter). The following official adapters are available: - -- [@sveltejs/adapter-node](https://github.com/sveltejs/kit/tree/master/packages/adapter-node) -- [@sveltejs/adapter-static](https://github.com/sveltejs/kit/tree/master/packages/adapter-static) -- [@sveltejs/adapter-netlify](https://github.com/sveltejs/kit/tree/master/packages/adapter-netlify) -- [@sveltejs/adapter-vercel](https://github.com/sveltejs/kit/tree/master/packages/adapter-vercel) -- ...more soon - -[See the adapter documentation for more detail](https://kit.svelte.dev/docs#adapters) diff --git a/packages/create-svelte/templates/default/jsconfig.json b/packages/create-svelte/templates/default/jsconfig.json deleted file mode 100644 index 893781f65ca0..000000000000 --- a/packages/create-svelte/templates/default/jsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "paths": { - "$lib/*": ["src/lib/*"] - } - }, - "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] -} diff --git a/packages/create-svelte/templates/default/package.json b/packages/create-svelte/templates/default/package.json index 161f0c37b508..b3fe22c8babd 100644 --- a/packages/create-svelte/templates/default/package.json +++ b/packages/create-svelte/templates/default/package.json @@ -7,10 +7,16 @@ "start": "svelte-kit start" }, "devDependencies": { + "@lukeed/uuid": "^2.0.0", "@sveltejs/adapter-node": "workspace:*", "@sveltejs/kit": "workspace:*", + "cookie": "^0.4.1", + "dotenv": "^8.2.0", "svelte": "^3.29.0", "vite": "^2.1.0" }, - "type": "module" + "type": "module", + "dependencies": { + "@fontsource/fira-mono": "^4.2.2" + } } diff --git a/packages/create-svelte/templates/default/src/app.css b/packages/create-svelte/templates/default/src/app.css index 1d7e28833464..426f60f807e9 100644 --- a/packages/create-svelte/templates/default/src/app.css +++ b/packages/create-svelte/templates/default/src/app.css @@ -1,4 +1,108 @@ +@import '@fontsource/fira-mono'; + :root { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, - 'Open Sans', 'Helvetica Neue', sans-serif; + font-family: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + --font-mono: 'Fira Mono', monospace; + --pure-white: #ffffff; + --primary-color: #b9c6d2; + --secondary-color: #d0dde9; + --tertiary-color: #edf0f8; + --accent-color: #ff3e00; + --heading-color: rgba(0, 0, 0, 0.7); + --text-color: #444444; + --background-without-opacity: rgba(255, 255, 255, 0.7); + --column-width: 42rem; + --column-margin-top: 4rem; +} + +body { + min-height: 100vh; + margin: 0; + background-color: var(--primary-color); + background: linear-gradient( + 180deg, + var(--primary-color) 0%, + var(--secondary-color) 10.45%, + var(--tertiary-color) 41.35% + ); +} + +body::before { + content: ''; + width: 80vw; + height: 100vh; + position: absolute; + top: 0; + left: 10vw; + z-index: -1; + background: radial-gradient( + 50% 50% at 50% 50%, + var(--pure-white) 0%, + rgba(255, 255, 255, 0) 100% + ); + opacity: 0.05; +} + +#svelte { + min-height: 100vh; + display: flex; + flex-direction: column; +} + +h1, +h2, +p { + font-weight: 400; + color: var(--heading-color); +} + +p { + line-height: 1.5; +} + +a { + color: var(--accent-color); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +h1 { + font-size: 2rem; + margin-bottom: 0 0 1em 0; + text-align: center; +} + +h2 { + font-size: 1rem; +} + +pre { + font-size: 16px; + font-family: var(--font-mono); + background-color: rgba(255, 255, 255, 0.45); + border-radius: 3px; + box-shadow: 2px 2px 6px rgb(255 255 255 / 25%); + padding: 0.5em; + overflow-x: auto; + color: var(--text-color); +} + +input, +button { + font-size: inherit; + font-family: inherit; +} + +button:focus:not(:focus-visible) { + outline: none; +} + +@media (min-width: 720px) { + h1 { + font-size: 2.4rem; + } } diff --git a/packages/create-svelte/templates/default/src/app.html b/packages/create-svelte/templates/default/src/app.html index 245305c4ef5b..83011ca64fb4 100644 --- a/packages/create-svelte/templates/default/src/app.html +++ b/packages/create-svelte/templates/default/src/app.html @@ -4,6 +4,7 @@ + %svelte.head% diff --git a/packages/create-svelte/templates/default/src/hooks.ts b/packages/create-svelte/templates/default/src/hooks.ts new file mode 100644 index 000000000000..6eeae82e592a --- /dev/null +++ b/packages/create-svelte/templates/default/src/hooks.ts @@ -0,0 +1,36 @@ +import cookie from 'cookie'; +import { v4 as uuid } from '@lukeed/uuid'; +import type { GetContext, Handle } from '@sveltejs/kit'; + +export const getContext: GetContext = (request) => { + const cookies = cookie.parse(request.headers.cookie || ''); + + return { + is_new: !cookies.userid, + userid: cookies.userid || uuid() + }; +}; + +export const handle: Handle = async ({ request, render }) => { + // TODO https://github.com/sveltejs/kit/issues/1046 + const response = await render({ + ...request, + method: request.query.get('_method') || request.method + }); + + const { is_new, userid } = request.context; + + if (is_new) { + // if this is the first time the user has visited this app, + // set a cookie so that we recognise them when they return + return { + ...response, + headers: { + ...response.headers, + 'set-cookie': `userid=${userid}; Path=/; HttpOnly` + } + }; + } + + return response; +}; diff --git a/packages/create-svelte/templates/default/src/lib/Counter.svelte b/packages/create-svelte/templates/default/src/lib/Counter.svelte deleted file mode 100644 index 2a5c980a430f..000000000000 --- a/packages/create-svelte/templates/default/src/lib/Counter.svelte +++ /dev/null @@ -1,36 +0,0 @@ - - - - - diff --git a/packages/create-svelte/templates/default/src/lib/Counter/index.svelte b/packages/create-svelte/templates/default/src/lib/Counter/index.svelte new file mode 100644 index 000000000000..6a5e5c962830 --- /dev/null +++ b/packages/create-svelte/templates/default/src/lib/Counter/index.svelte @@ -0,0 +1,103 @@ + + +
+ + +
+
+ {Math.floor($displayed_count + 1)} + {Math.floor($displayed_count)} +
+
+ + +
+ + diff --git a/packages/create-svelte/templates/default/src/lib/Header/index.svelte b/packages/create-svelte/templates/default/src/lib/Header/index.svelte new file mode 100644 index 000000000000..84132cb72682 --- /dev/null +++ b/packages/create-svelte/templates/default/src/lib/Header/index.svelte @@ -0,0 +1,120 @@ + + +
+
+ + SvelteKit + +
+ + + +
+ +
+
+ + diff --git a/packages/create-svelte/templates/default/src/lib/Header/svelte-logo.svg b/packages/create-svelte/templates/default/src/lib/Header/svelte-logo.svg new file mode 100644 index 000000000000..49492a83cc2f --- /dev/null +++ b/packages/create-svelte/templates/default/src/lib/Header/svelte-logo.svg @@ -0,0 +1 @@ +svelte-logo \ No newline at end of file diff --git a/packages/create-svelte/templates/default/src/lib/foo.ts b/packages/create-svelte/templates/default/src/lib/foo.ts deleted file mode 100644 index d2eb50a9226a..000000000000 --- a/packages/create-svelte/templates/default/src/lib/foo.ts +++ /dev/null @@ -1,9 +0,0 @@ -type Foo = { - bar: number; -}; - -const foo: Foo = { - bar: 42 -}; - -console.log(foo); diff --git a/packages/create-svelte/templates/default/src/lib/form.ts b/packages/create-svelte/templates/default/src/lib/form.ts new file mode 100644 index 000000000000..c52e92308830 --- /dev/null +++ b/packages/create-svelte/templates/default/src/lib/form.ts @@ -0,0 +1,60 @@ +// this action (https://svelte.dev/tutorial/actions) allows us to +// progressively enhance a
that already works without JS +export function enhance( + form: HTMLFormElement, + { + pending, + error, + result + }: { + pending?: (data: FormData, form: HTMLFormElement) => void; + error?: (res: Response, error: Error, form: HTMLFormElement) => void; + result: (res: Response, form: HTMLFormElement) => void; + } +) { + let current_token: {}; + + async function handle_submit(e: Event) { + const token = (current_token = {}); + + e.preventDefault(); + + const body = new FormData(form); + + if (pending) pending(body, form); + + try { + const res = await fetch(form.action, { + method: form.method, + headers: { + accept: 'application/json' + }, + body + }); + + if (token !== current_token) return; + + if (res.ok) { + result(res, form); + } else if (error) { + error(res, null, form); + } else { + console.error(await res.text()); + } + } catch (e) { + if (error) { + error(null, e, form); + } else { + throw e; + } + } + } + + form.addEventListener('submit', handle_submit); + + return { + destroy() { + form.removeEventListener('submit', handle_submit); + } + }; +} diff --git a/packages/create-svelte/templates/default/src/routes/$layout.svelte b/packages/create-svelte/templates/default/src/routes/$layout.svelte index 2e511e004988..029f81914769 100644 --- a/packages/create-svelte/templates/default/src/routes/$layout.svelte +++ b/packages/create-svelte/templates/default/src/routes/$layout.svelte @@ -1,5 +1,45 @@ - - +
+ +
+ +
+ + + + diff --git a/packages/create-svelte/templates/default/src/routes/about.svelte b/packages/create-svelte/templates/default/src/routes/about.svelte new file mode 100644 index 000000000000..7f9e09b58dd5 --- /dev/null +++ b/packages/create-svelte/templates/default/src/routes/about.svelte @@ -0,0 +1,40 @@ + + + + About + + +
+

About this app

+ +

This is a SvelteKit app. You can make your own by typing the following into your command line and following the prompts:

+ + +
npx init svelte@next
+ +

The page you're looking at is purely static HTML, with no client-side interactivity needed. Because of that, we don't need to load any JavaScript. Try viewing the page's source, or opening the devtools network panel and reloading.

+ +

The TODOs page illustrates SvelteKit's data loading and form handling. Try using it with JavaScript disabled!

+
+ + \ No newline at end of file diff --git a/packages/create-svelte/templates/default/src/routes/index.svelte b/packages/create-svelte/templates/default/src/routes/index.svelte index 8d71585cff99..8e353c4c49e6 100644 --- a/packages/create-svelte/templates/default/src/routes/index.svelte +++ b/packages/create-svelte/templates/default/src/routes/index.svelte @@ -1,49 +1,65 @@ + + - Hello world! + Home -
-

Hello world!

+
+

+
+ + + Welcome + +
- + to your new
SvelteKit app +

-

Visit svelte.dev to learn how to build Svelte apps.

-
+

+ try editing src/routes/index.svelte +

+ + + diff --git a/packages/create-svelte/templates/default/src/routes/todos/[uid].json.ts b/packages/create-svelte/templates/default/src/routes/todos/[uid].json.ts new file mode 100644 index 000000000000..4b16ef0c9ba4 --- /dev/null +++ b/packages/create-svelte/templates/default/src/routes/todos/[uid].json.ts @@ -0,0 +1,14 @@ +import { api } from './_api'; + +// PATCH /todos/:uid.json +export const patch = async (request) => { + return api(request, `todos/${request.context.userid}/${request.params.uid}`, { + text: request.body.get('text'), + done: request.body.has('done') ? !!request.body.get('done') : undefined + }); +}; + +// DELETE /todos/:uid.json +export const del = async (request) => { + return api(request, `todos/${request.context.userid}/${request.params.uid}`); +}; diff --git a/packages/create-svelte/templates/default/src/routes/todos/_api.ts b/packages/create-svelte/templates/default/src/routes/todos/_api.ts new file mode 100644 index 000000000000..33eca61966f5 --- /dev/null +++ b/packages/create-svelte/templates/default/src/routes/todos/_api.ts @@ -0,0 +1,48 @@ +import type { Request } from '@sveltejs/kit'; + +/* + This module is used by the /todos.json and /todos/[uid].json + endpoints to make calls to api.svelte.dev, which stores todos + for each user. The leading underscore indicates that this is + a private module, _not_ an endpoint — visiting /todos/_api + will net you a 404 response. + + (The data on the todo app will expire periodically; no + guarantees are made. Don't use it to organise your life.) +*/ + +const base = 'https://api.svelte.dev'; + +export async function api(request: Request, resource: string, data?: {}) { + // user must have a cookie set + if (!request.context.userid) { + return { status: 401 }; + } + + const res = await fetch(`${base}/${resource}`, { + method: request.method, + headers: { + 'content-type': 'application/json' + }, + body: data && JSON.stringify(data) + }); + + // if the request came from a submission, the browser's default + // behaviour is to show the URL corresponding to the form's "action" + // attribute. in those cases, we want to redirect them back to the + // /todos page, rather than showing the response + if (res.ok && request.method !== 'GET' && request.headers.accept !== 'application/json') { + return { + status: 303, + headers: { + location: '/todos' + }, + body: '' // TODO https://github.com/sveltejs/kit/issues/1047 + }; + } + + return { + status: res.status, + body: await res.json() + }; +} diff --git a/packages/create-svelte/templates/default/src/routes/todos/index.json.ts b/packages/create-svelte/templates/default/src/routes/todos/index.json.ts new file mode 100644 index 000000000000..f719477059ec --- /dev/null +++ b/packages/create-svelte/templates/default/src/routes/todos/index.json.ts @@ -0,0 +1,35 @@ +import { api } from './_api'; +import type { RequestHandler } from '@sveltejs/kit'; + +// GET /todos.json +export const get: RequestHandler = async (request) => { + if (!request.context.userid) { + // the user has never visited the site before + // and so doesn't yet have a userid, which is + // set in `handle`, in src/hooks.js + return { body: [] }; + } + + const response = await api(request, `todos/${request.context.userid}`); + + if (response.status === 404) { + // the user has visited before, but hasn't yet + // created a todo list. start with an empty array + return { body: [] }; + } + + return response; +}; + +// POST /todos.json +export const post: RequestHandler = async (request) => { + const response = await api(request, `todos/${request.context.userid}`, { + // because index.svelte posts a FormData object, + // request.body is _also_ a (readonly) FormData + // object, which allows us to get form data + // with the `body.get(key)` method + text: request.body.get('text') + }); + + return response; +}; diff --git a/packages/create-svelte/templates/default/src/routes/todos/index.svelte b/packages/create-svelte/templates/default/src/routes/todos/index.svelte new file mode 100644 index 000000000000..020612557705 --- /dev/null +++ b/packages/create-svelte/templates/default/src/routes/todos/index.svelte @@ -0,0 +1,208 @@ + + + + + + Todos + + +
+

Todos

+ + { + const created = await res.json(); + todos = [...todos, created] + + form.reset(); + } + }}> + + + + {#each todos as todo (todo.uid)} +
+
{ + const done = !!data.get('done'); + + todos = todos.map(t => { + if (t === todo) return { ...t, done }; + return t; + }); + }, + result: patch + }}> + +
+ {/each} +
+ + \ No newline at end of file diff --git a/packages/create-svelte/templates/default/static/svelte-welcome-compressed.png b/packages/create-svelte/templates/default/static/svelte-welcome-compressed.png new file mode 100644 index 000000000000..fe7d2d6b50ce Binary files /dev/null and b/packages/create-svelte/templates/default/static/svelte-welcome-compressed.png differ diff --git a/packages/create-svelte/templates/default/static/svelte-welcome-compressed.webp b/packages/create-svelte/templates/default/static/svelte-welcome-compressed.webp new file mode 100644 index 000000000000..6ec1a28d63b4 Binary files /dev/null and b/packages/create-svelte/templates/default/static/svelte-welcome-compressed.webp differ diff --git a/packages/create-svelte/templates/default/static/svelte-welcome.png b/packages/create-svelte/templates/default/static/svelte-welcome.png new file mode 100644 index 000000000000..72a0f0b6660f Binary files /dev/null and b/packages/create-svelte/templates/default/static/svelte-welcome.png differ diff --git a/packages/create-svelte/templates/default/svelte.config.cjs b/packages/create-svelte/templates/default/svelte.config.cjs index 621098e71839..0780759e3be2 100644 --- a/packages/create-svelte/templates/default/svelte.config.cjs +++ b/packages/create-svelte/templates/default/svelte.config.cjs @@ -1,8 +1,13 @@ +const sveltePreprocess = require('svelte-preprocess'); const node = require('@sveltejs/adapter-node'); const pkg = require('./package.json'); /** @type {import('@sveltejs/kit').Config} */ module.exports = { + // Consult https://github.com/sveltejs/svelte-preprocess + // for more information about preprocessors + preprocess: sveltePreprocess(), + kit: { // By default, `npm run build` will create a standard Node app. // You can create optimized builds for different platforms by diff --git a/packages/create-svelte/templates/default/tsconfig.json b/packages/create-svelte/templates/default/tsconfig.json new file mode 100644 index 000000000000..d826f6ef8b89 --- /dev/null +++ b/packages/create-svelte/templates/default/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "moduleResolution": "node", + "module": "es2020", + "lib": ["es2020"], + "target": "es2019", + /** + svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript + to enforce using \`import type\` instead of \`import\` for Types. + */ + "importsNotUsedAsValues": "error", + "isolatedModules": true, + "resolveJsonModule": true, + /** + To have warnings/errors of the Svelte compiler at the correct position, + enable source maps by default. + */ + "sourceMap": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "baseUrl": ".", + "allowJs": true, + "checkJs": true, + "paths": { + "$lib/*": ["src/lib/*"] + } + }, + "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"] +} diff --git a/packages/create-svelte/templates/skeleton/.gitignore b/packages/create-svelte/templates/skeleton/.gitignore new file mode 100644 index 000000000000..e7002107841e --- /dev/null +++ b/packages/create-svelte/templates/skeleton/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +node_modules +/.svelte +/build +/functions diff --git a/packages/create-svelte/templates/skeleton/.meta.json b/packages/create-svelte/templates/skeleton/.meta.json new file mode 100644 index 000000000000..279d0263563c --- /dev/null +++ b/packages/create-svelte/templates/skeleton/.meta.json @@ -0,0 +1,3 @@ +{ + "description": "Skeleton project" +} diff --git a/packages/create-svelte/templates/skeleton/.npmrc b/packages/create-svelte/templates/skeleton/.npmrc new file mode 100644 index 000000000000..b6f27f135954 --- /dev/null +++ b/packages/create-svelte/templates/skeleton/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/packages/create-svelte/templates/skeleton/package.json b/packages/create-svelte/templates/skeleton/package.json new file mode 100644 index 000000000000..161f0c37b508 --- /dev/null +++ b/packages/create-svelte/templates/skeleton/package.json @@ -0,0 +1,16 @@ +{ + "name": "~TODO~", + "version": "0.0.1", + "scripts": { + "dev": "svelte-kit dev", + "build": "svelte-kit build", + "start": "svelte-kit start" + }, + "devDependencies": { + "@sveltejs/adapter-node": "workspace:*", + "@sveltejs/kit": "workspace:*", + "svelte": "^3.29.0", + "vite": "^2.1.0" + }, + "type": "module" +} diff --git a/packages/create-svelte/templates/skeleton/src/app.html b/packages/create-svelte/templates/skeleton/src/app.html new file mode 100644 index 000000000000..245305c4ef5b --- /dev/null +++ b/packages/create-svelte/templates/skeleton/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %svelte.head% + + +
%svelte.body%
+ + diff --git a/packages/create-svelte/templates/skeleton/src/global.d.ts b/packages/create-svelte/templates/skeleton/src/global.d.ts new file mode 100644 index 000000000000..79d7d7faa607 --- /dev/null +++ b/packages/create-svelte/templates/skeleton/src/global.d.ts @@ -0,0 +1,3 @@ +/// +/// +/// diff --git a/packages/create-svelte/templates/skeleton/src/routes/index.svelte b/packages/create-svelte/templates/skeleton/src/routes/index.svelte new file mode 100644 index 000000000000..79a07be5933c --- /dev/null +++ b/packages/create-svelte/templates/skeleton/src/routes/index.svelte @@ -0,0 +1,2 @@ +

Welcome to SvelteKit

+

Visit kit.svelte.dev to read the documentation

\ No newline at end of file diff --git a/packages/create-svelte/templates/skeleton/svelte.config.cjs b/packages/create-svelte/templates/skeleton/svelte.config.cjs new file mode 100644 index 000000000000..621098e71839 --- /dev/null +++ b/packages/create-svelte/templates/skeleton/svelte.config.cjs @@ -0,0 +1,21 @@ +const node = require('@sveltejs/adapter-node'); +const pkg = require('./package.json'); + +/** @type {import('@sveltejs/kit').Config} */ +module.exports = { + kit: { + // By default, `npm run build` will create a standard Node app. + // You can create optimized builds for different platforms by + // specifying a different adapter + adapter: node(), + + // hydrate the
element in src/app.html + target: '#svelte', + + vite: { + ssr: { + noExternal: Object.keys(pkg.dependencies || {}) + } + } + } +}; diff --git a/packages/create-svelte/tsconfig.json b/packages/create-svelte/tsconfig.json index a2f4a9f54e08..9352d115293f 100644 --- a/packages/create-svelte/tsconfig.json +++ b/packages/create-svelte/tsconfig.json @@ -9,5 +9,5 @@ "moduleResolution": "node", "allowSyntheticDefaultImports": true }, - "include": ["cli/**/*"] + "include": ["scripts/**/*", "bin.js", "utils.js"] } diff --git a/packages/create-svelte/cli/types.d.ts b/packages/create-svelte/types/internal.d.ts similarity index 65% rename from packages/create-svelte/cli/types.d.ts rename to packages/create-svelte/types/internal.d.ts index de5304c0127b..c5e70871a7ae 100644 --- a/packages/create-svelte/cli/types.d.ts +++ b/packages/create-svelte/types/internal.d.ts @@ -1,18 +1,13 @@ export type Options = { + template: 'default' | 'skeleton'; typescript: boolean; prettier: boolean; eslint: boolean; }; -export type Template = { - meta: { - description: string; - }; - files: Array<{ - name: string; - contents: string; - encoding: 'base64' | 'utf8'; - }>; +export type File = { + name: string; + contents: string; }; export type Common = { diff --git a/packages/create-svelte/utils.js b/packages/create-svelte/utils.js new file mode 100644 index 000000000000..573434963f0a --- /dev/null +++ b/packages/create-svelte/utils.js @@ -0,0 +1,42 @@ +import fs from 'fs'; +import path from 'path'; + +/** @param {string} dir */ +export function mkdirp(dir) { + try { + fs.mkdirSync(dir, { recursive: true }); + } catch (e) { + if (e.code === 'EEXIST') return; + throw e; + } +} + +/** @param {string} path */ +export function rimraf(path) { + (fs.rmSync || fs.rmdirSync)(path, { recursive: true, force: true }); +} + +/** + * @param {string} from + * @param {string} to + * @param {(basename: string) => boolean} filter + */ +export function copy(from, to, filter = () => true) { + if (!fs.existsSync(from)) return []; + if (!filter(path.basename(from))) return []; + + const files = []; + const stats = fs.statSync(from); + + if (stats.isDirectory()) { + fs.readdirSync(from).forEach((file) => { + files.push(...copy(path.join(from, file), path.join(to, file))); + }); + } else { + mkdirp(path.dirname(to)); + fs.copyFileSync(from, to); + files.push(to); + } + + return files; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8bc895f2ae42..e63c42404eb2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,26 +19,26 @@ importers: rollup: ^2.42.3 typescript: ^4.2.3 devDependencies: - '@changesets/cli': 2.14.1 - '@rollup/plugin-commonjs': 17.1.0_rollup@2.42.3 - '@rollup/plugin-json': 4.1.0_rollup@2.42.3 - '@rollup/plugin-node-resolve': 11.2.0_rollup@2.42.3 - '@sveltejs/eslint-config': github.com/sveltejs/eslint-config/7224f2bba6ac40407c332b41fa2bede946f4868f_aa68f48205f9ef515fdb1eacb5490d4a - '@typescript-eslint/eslint-plugin': 4.19.0_f26dcf5ec38a04241b14c26bc931244e - '@typescript-eslint/parser': 4.19.0_eslint@7.22.0+typescript@4.2.3 - eslint: 7.22.0 - eslint-plugin-import: 2.22.1_eslint@7.22.0 - eslint-plugin-svelte3: 3.1.2_eslint@7.22.0 + '@changesets/cli': 2.16.0 + '@rollup/plugin-commonjs': 17.1.0_rollup@2.45.2 + '@rollup/plugin-json': 4.1.0_rollup@2.45.2 + '@rollup/plugin-node-resolve': 11.2.1_rollup@2.45.2 + '@sveltejs/eslint-config': github.com/sveltejs/eslint-config/7224f2bba6ac40407c332b41fa2bede946f4868f_e4ea5752af3a10c8f96cf103fd800d86 + '@typescript-eslint/eslint-plugin': 4.22.0_9acede93a3623dd7abe65c65a7010e73 + '@typescript-eslint/parser': 4.22.0_eslint@7.24.0+typescript@4.2.4 + eslint: 7.24.0 + eslint-plugin-import: 2.22.1_eslint@7.24.0 + eslint-plugin-svelte3: 3.1.2_eslint@7.24.0 playwright-chromium: 1.10.0 prettier: 2.2.1 - rollup: 2.42.3 - typescript: 4.2.3 + rollup: 2.45.2 + typescript: 4.2.4 .github/actions/env: specifiers: '@actions/core': ^1.2.6 devDependencies: - '@actions/core': 1.2.6 + '@actions/core': 1.2.7 examples/hn.svelte.dev: specifiers: @@ -48,7 +48,7 @@ importers: devDependencies: '@sveltejs/adapter-netlify': link:../../packages/adapter-netlify '@sveltejs/kit': link:../../packages/kit - svelte: 3.35.0 + svelte: 3.37.0 examples/realworld.svelte.dev: specifiers: @@ -62,8 +62,8 @@ importers: devDependencies: '@sveltejs/adapter-node': link:../../packages/adapter-node '@sveltejs/kit': link:../../packages/kit - marked: 2.0.1 - svelte: 3.35.0 + marked: 2.0.3 + svelte: 3.37.0 examples/svelte-kit-demo: specifiers: @@ -79,7 +79,7 @@ importers: '@sveltejs/adapter-static': link:../../packages/adapter-static '@sveltejs/adapter-vercel': link:../../packages/adapter-vercel '@sveltejs/kit': link:../../packages/kit - svelte: 3.35.0 + svelte: 3.37.0 packages/adapter-begin: specifiers: @@ -92,9 +92,9 @@ importers: '@architect/parser': 3.0.1 devDependencies: '@sveltejs/kit': link:../kit - rollup: 2.41.1 + rollup: 2.45.2 sirv: 1.0.11 - typescript: 4.2.3 + typescript: 4.2.4 packages/adapter-cloudflare-workers: specifiers: @@ -114,7 +114,7 @@ importers: toml: 3.0.0 devDependencies: '@sveltejs/kit': link:../kit - typescript: 4.2.3 + typescript: 4.2.4 packages/adapter-node: specifiers: @@ -129,15 +129,15 @@ importers: typescript: ^4.2.3 uvu: ^0.5.1 devDependencies: - '@rollup/plugin-json': 4.1.0_rollup@2.41.1 + '@rollup/plugin-json': 4.1.0_rollup@2.45.2 '@sveltejs/kit': link:../kit - c8: 7.7.0 + c8: 7.7.1 compression: 1.7.4 node-fetch: 2.6.1 - polka: 1.0.0-next.13 - rollup: 2.41.1 + polka: 1.0.0-next.14 + rollup: 2.45.2 sirv: 1.0.11 - typescript: 4.2.3 + typescript: 4.2.4 uvu: 0.5.1 packages/adapter-static: @@ -146,7 +146,7 @@ importers: typescript: ^4.2.3 devDependencies: '@sveltejs/kit': link:../kit - typescript: 4.2.3 + typescript: 4.2.4 packages/adapter-vercel: specifiers: @@ -156,34 +156,70 @@ importers: typescript: ^4.2.3 devDependencies: '@sveltejs/kit': link:../kit - rollup: 2.41.1 + rollup: 2.45.2 sirv: 1.0.11 - typescript: 4.2.3 + typescript: 4.2.4 packages/create-svelte: specifiers: - '@rollup/plugin-json': ^4.1.0 '@sveltejs/kit': workspace:* + '@types/gitignore-parser': ^0.0.0 + '@types/prettier': ^2.2.3 gitignore-parser: ^0.0.2 kleur: ^4.1.4 prettier: ^2.2.1 prettier-plugin-svelte: ^2.2.0 prompts: ^2.4.0 - rollup: ^2.41.1 sucrase: ^3.18.1 + svelte-preprocess: ^4.7.0 tiny-glob: ^0.2.8 + dependencies: + kleur: 4.1.4 + prompts: 2.4.1 devDependencies: - '@rollup/plugin-json': 4.1.0_rollup@2.41.1 '@sveltejs/kit': link:../kit + '@types/gitignore-parser': 0.0.0 + '@types/prettier': 2.2.3 gitignore-parser: 0.0.2 - kleur: 4.1.4 prettier: 2.2.1 prettier-plugin-svelte: 2.2.0_prettier@2.2.1 - prompts: 2.4.0 - rollup: 2.41.1 sucrase: 3.18.1 + svelte-preprocess: 4.7.0 tiny-glob: 0.2.8 + packages/create-svelte/templates/default: + specifiers: + '@fontsource/fira-mono': ^4.2.2 + '@lukeed/uuid': ^2.0.0 + '@sveltejs/adapter-node': workspace:* + '@sveltejs/kit': workspace:* + cookie: ^0.4.1 + dotenv: ^8.2.0 + svelte: ^3.29.0 + vite: ^2.1.0 + dependencies: + '@fontsource/fira-mono': 4.2.2 + devDependencies: + '@lukeed/uuid': 2.0.0 + '@sveltejs/adapter-node': link:../../../adapter-node + '@sveltejs/kit': link:../../../kit + cookie: 0.4.1 + dotenv: 8.2.0 + svelte: 3.37.0 + vite: 2.1.5 + + packages/create-svelte/templates/skeleton: + specifiers: + '@sveltejs/adapter-node': workspace:* + '@sveltejs/kit': workspace:* + svelte: ^3.29.0 + vite: ^2.1.0 + devDependencies: + '@sveltejs/adapter-node': link:../../../adapter-node + '@sveltejs/kit': link:../../../kit + svelte: 3.37.0 + vite: 2.1.5 + packages/kit: specifiers: '@rollup/plugin-replace': ^2.4.1 @@ -213,38 +249,38 @@ importers: uvu: ^0.5.1 vite: ^2.1.0 dependencies: - '@sveltejs/vite-plugin-svelte': 1.0.0-next.7_93fef3a16c1b45ac67b14a795df10192 + '@sveltejs/vite-plugin-svelte': 1.0.0-next.7_2e4a7838c14803e2b333cb5d3a6380ff cheap-watch: 1.0.3 sade: 1.7.4 devDependencies: - '@rollup/plugin-replace': 2.4.1_rollup@2.41.1 + '@rollup/plugin-replace': 2.4.2_rollup@2.45.2 '@sveltejs/kit': 'link:' '@types/amphtml-validator': 1.0.1 '@types/mime': 2.0.3 - '@types/node': 14.14.33 + '@types/node': 14.14.37 '@types/rimraf': 3.0.0 '@types/sade': 1.7.2 amphtml-validator: 1.0.34 cookie: 0.4.1 devalue: 2.0.1 - eslint: 7.21.0 + eslint: 7.24.0 kleur: 4.1.4 node-fetch: 3.0.0-beta.9 port-authority: 1.1.2 rimraf: 3.0.2 - rollup: 2.41.1 + rollup: 2.45.2 selfsigned: 1.10.8 sirv: 1.0.11 - svelte: 3.35.0 + svelte: 3.37.0 tiny-glob: 0.2.8 - typescript: 4.2.3 + typescript: 4.2.4 uvu: 0.5.1 - vite: 2.1.0 + vite: 2.1.5 packages: - /@actions/core/1.2.6: - resolution: {integrity: sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==} + /@actions/core/1.2.7: + resolution: {integrity: sha512-kzLFD5BgEvq6ubcxdgPbRKGD2Qrgya/5j+wh4LZzqT915I0V3rED+MvjH6NXghbvk1MXknpNNQ3uKjXSEN00Ig==} dev: true /@architect/parser/3.0.1: @@ -286,14 +322,14 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@changesets/apply-release-plan/4.2.0: - resolution: {integrity: sha512-/vt6UwgQldhOw93Gb8llI5OuYGlJt2+U45AfcXsoxzl8gZzCmChGm3vUaQJYbmtL8TbL8OOVXHRIKJJidMNPKw==} + /@changesets/apply-release-plan/5.0.0: + resolution: {integrity: sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==} dependencies: '@babel/runtime': 7.13.10 - '@changesets/config': 1.5.0 + '@changesets/config': 1.6.0 '@changesets/get-version-range-type': 0.3.2 - '@changesets/git': 1.1.0 - '@changesets/types': 3.3.0 + '@changesets/git': 1.1.1 + '@changesets/types': 4.0.0 '@manypkg/get-packages': 1.1.1 detect-indent: 6.0.0 fs-extra: 7.0.1 @@ -304,34 +340,34 @@ packages: semver: 5.7.1 dev: true - /@changesets/assemble-release-plan/4.1.0: - resolution: {integrity: sha512-dMqe2L5Pn4UGTW89kOuuCuZD3pQFZj1Sxv92ZW4S98sXGsxcb2PdW+PeHbQ7tawkCYCOvzhXxAlN4OdF2DlDKQ==} + /@changesets/assemble-release-plan/5.0.0: + resolution: {integrity: sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==} dependencies: '@babel/runtime': 7.13.10 '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.2.0 - '@changesets/types': 3.3.0 + '@changesets/get-dependents-graph': 1.2.1 + '@changesets/types': 4.0.0 '@manypkg/get-packages': 1.1.1 semver: 5.7.1 dev: true - /@changesets/cli/2.14.1: - resolution: {integrity: sha512-ydU2ZUP/s7nHQmz8TrliT+kE2dJUpZYKh8MBHrkV6suchCBhT4DmoP4VDF9M4215r18iPbMpE1TjskzXGXB8eQ==} + /@changesets/cli/2.16.0: + resolution: {integrity: sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==} hasBin: true dependencies: '@babel/runtime': 7.13.10 - '@changesets/apply-release-plan': 4.2.0 - '@changesets/assemble-release-plan': 4.1.0 - '@changesets/config': 1.5.0 + '@changesets/apply-release-plan': 5.0.0 + '@changesets/assemble-release-plan': 5.0.0 + '@changesets/config': 1.6.0 '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.2.0 - '@changesets/get-release-plan': 2.0.1 - '@changesets/git': 1.1.0 + '@changesets/get-dependents-graph': 1.2.1 + '@changesets/get-release-plan': 3.0.0 + '@changesets/git': 1.1.1 '@changesets/logger': 0.0.5 - '@changesets/pre': 1.0.5 - '@changesets/read': 0.4.6 - '@changesets/types': 3.3.0 - '@changesets/write': 0.1.3 + '@changesets/pre': 1.0.6 + '@changesets/read': 0.4.7 + '@changesets/types': 4.0.0 + '@changesets/write': 0.1.4 '@manypkg/get-packages': 1.1.1 '@types/semver': 6.2.2 boxen: 1.3.0 @@ -351,16 +387,16 @@ packages: tty-table: 2.8.13 dev: true - /@changesets/config/1.5.0: - resolution: {integrity: sha512-Bl9nLVYcwFCpd9jpzcOsExZk1NuTYX20D2YWHCdS1xll3W0yOdSUlWLUCCfugN1l3+yTR6iDW6q9o6vpCevWvA==} + /@changesets/config/1.6.0: + resolution: {integrity: sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==} dependencies: '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.2.0 + '@changesets/get-dependents-graph': 1.2.1 '@changesets/logger': 0.0.5 - '@changesets/types': 3.3.0 + '@changesets/types': 4.0.0 '@manypkg/get-packages': 1.1.1 fs-extra: 7.0.1 - micromatch: 4.0.2 + micromatch: 4.0.4 dev: true /@changesets/errors/0.1.4: @@ -369,25 +405,25 @@ packages: extendable-error: 0.1.7 dev: true - /@changesets/get-dependents-graph/1.2.0: - resolution: {integrity: sha512-96NInEKpEZH8KvmXyh42PynXVAdq3kQ9VjAeswHtJ3umUCeTF42b/KVXaov+5P1RNnaUVtRuEwzs4syGuowDTw==} + /@changesets/get-dependents-graph/1.2.1: + resolution: {integrity: sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==} dependencies: - '@changesets/types': 3.3.0 + '@changesets/types': 4.0.0 '@manypkg/get-packages': 1.1.1 chalk: 2.4.2 fs-extra: 7.0.1 semver: 5.7.1 dev: true - /@changesets/get-release-plan/2.0.1: - resolution: {integrity: sha512-+x5N9/Iaka+c0Kq7+3JsboMNyffKYlWPmdm+VeafDcMwJFhBDkxm84qaCJ93ydmnzQOTig6gYVqw0k8BbHExyQ==} + /@changesets/get-release-plan/3.0.0: + resolution: {integrity: sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==} dependencies: '@babel/runtime': 7.13.10 - '@changesets/assemble-release-plan': 4.1.0 - '@changesets/config': 1.5.0 - '@changesets/pre': 1.0.5 - '@changesets/read': 0.4.6 - '@changesets/types': 3.3.0 + '@changesets/assemble-release-plan': 5.0.0 + '@changesets/config': 1.6.0 + '@changesets/pre': 1.0.6 + '@changesets/read': 0.4.7 + '@changesets/types': 4.0.0 '@manypkg/get-packages': 1.1.1 dev: true @@ -395,12 +431,12 @@ packages: resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} dev: true - /@changesets/git/1.1.0: - resolution: {integrity: sha512-f/2rQynT+JiAL/V0V/GQdXhLkcb86ELg3UwH3fQO4wVdfUbE9NHIHq9ohJdH1Ymh0Lv48F/b38aWZ5v2sKiF3w==} + /@changesets/git/1.1.1: + resolution: {integrity: sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==} dependencies: '@babel/runtime': 7.13.10 '@changesets/errors': 0.1.4 - '@changesets/types': 3.3.0 + '@changesets/types': 4.0.0 '@manypkg/get-packages': 1.1.1 is-subdir: 1.2.0 spawndamnit: 2.0.0 @@ -412,45 +448,45 @@ packages: chalk: 2.4.2 dev: true - /@changesets/parse/0.3.7: - resolution: {integrity: sha512-8yqKulslq/7V2VRBsJqPgjnZMoehYqhJm5lEOXJPZ2rcuSdyj8+p/2vq2vRDBJT2m0rP+C9G8DujsGYQIFZezw==} + /@changesets/parse/0.3.8: + resolution: {integrity: sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==} dependencies: - '@changesets/types': 3.3.0 + '@changesets/types': 4.0.0 js-yaml: 3.14.1 dev: true - /@changesets/pre/1.0.5: - resolution: {integrity: sha512-p43aAQY3aijhDnBLCriPao5YArlRjD4mSHRJq9PsBhljVLWqQQXcn6seSd77d+bD1tATLhB8tQ2eYoxMtMydXQ==} + /@changesets/pre/1.0.6: + resolution: {integrity: sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==} dependencies: '@babel/runtime': 7.13.10 '@changesets/errors': 0.1.4 - '@changesets/types': 3.3.0 + '@changesets/types': 4.0.0 '@manypkg/get-packages': 1.1.1 fs-extra: 7.0.1 dev: true - /@changesets/read/0.4.6: - resolution: {integrity: sha512-rOd8dsF/Lgyy2SYlDalb3Ts/meDI2AcKPXYhSXIW3k6+ZLlj6Pt+nmgV5Ut8euyH7loibklNTDemfvMffF4xig==} + /@changesets/read/0.4.7: + resolution: {integrity: sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==} dependencies: '@babel/runtime': 7.13.10 - '@changesets/git': 1.1.0 + '@changesets/git': 1.1.1 '@changesets/logger': 0.0.5 - '@changesets/parse': 0.3.7 - '@changesets/types': 3.3.0 + '@changesets/parse': 0.3.8 + '@changesets/types': 4.0.0 chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 dev: true - /@changesets/types/3.3.0: - resolution: {integrity: sha512-rJamRo+OD/MQekImfIk07JZwYSB18iU6fYL8xOg0gfAiTh1a1+OlR1fPIxm55I7RsWw812is2YcPPwXdIewrhA==} + /@changesets/types/4.0.0: + resolution: {integrity: sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==} dev: true - /@changesets/write/0.1.3: - resolution: {integrity: sha512-q79rbwlVmTNKP9O6XxcMDj81CEOn/kQHbTFdRleW0tFUv98S1EyEAE9vLPPzO6WnQipHnaozxB1zMhHy0aQn8Q==} + /@changesets/write/0.1.4: + resolution: {integrity: sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==} dependencies: '@babel/runtime': 7.13.10 - '@changesets/types': 3.3.0 + '@changesets/types': 4.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 1.19.1 @@ -473,16 +509,32 @@ packages: - supports-color dev: true + /@fontsource/fira-mono/4.2.2: + resolution: {integrity: sha512-t2WRThg+eLkQNQCtPG2sCCq40lz3xeb7nsL7P8l4+wfSRbdLQXAY5IebMftI2YEZR4MRRhdgrg0p5fi/2yXypA==} + dev: false + /@istanbuljs/schema/0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} dev: true + /@lukeed/csprng/1.0.0: + resolution: {integrity: sha512-ruuGHsnabmObBdeMg3vKdGRmh06Oog3eFpf/Tk6X0kDSJDpJTDCj2dqdp1+0VjzIUgHlFF9GBm7uFqfYhhdX9g==} + engines: {node: '>=8'} + dev: true + + /@lukeed/uuid/2.0.0: + resolution: {integrity: sha512-dUz8OmYvlY5A9wXaroHIMSPASpSYRLCqbPvxGSyHguhtTQIy24lC+EGxQlwv71AhRCO55WOtgwhzQLpw27JaJQ==} + engines: {node: '>=8'} + dependencies: + '@lukeed/csprng': 1.0.0 + dev: true + /@manypkg/find-root/1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: '@babel/runtime': 7.13.10 - '@types/node': 12.20.6 + '@types/node': 12.20.7 find-up: 4.1.0 fs-extra: 8.1.0 dev: true @@ -518,74 +570,61 @@ packages: fastq: 1.11.0 dev: true - /@polka/url/1.0.0-next.11: - resolution: {integrity: sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==} - dev: true - /@polka/url/1.0.0-next.12: resolution: {integrity: sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ==} dev: true - /@rollup/plugin-commonjs/17.1.0_rollup@2.42.3: + /@rollup/plugin-commonjs/17.1.0_rollup@2.45.2: resolution: {integrity: sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^2.30.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.42.3 + '@rollup/pluginutils': 3.1.0_rollup@2.45.2 commondir: 1.0.1 estree-walker: 2.0.2 glob: 7.1.6 is-reference: 1.2.1 magic-string: 0.25.7 resolve: 1.20.0 - rollup: 2.42.3 + rollup: 2.45.2 dev: true - /@rollup/plugin-json/4.1.0_rollup@2.41.1: + /@rollup/plugin-json/4.1.0_rollup@2.45.2: resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.41.1 - rollup: 2.41.1 + '@rollup/pluginutils': 3.1.0_rollup@2.45.2 + rollup: 2.45.2 dev: true - /@rollup/plugin-json/4.1.0_rollup@2.42.3: - resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.42.3 - rollup: 2.42.3 - dev: true - - /@rollup/plugin-node-resolve/11.2.0_rollup@2.42.3: - resolution: {integrity: sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA==} + /@rollup/plugin-node-resolve/11.2.1_rollup@2.45.2: + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.42.3 + '@rollup/pluginutils': 3.1.0_rollup@2.45.2 '@types/resolve': 1.17.1 builtin-modules: 3.2.0 deepmerge: 4.2.2 is-module: 1.0.0 resolve: 1.20.0 - rollup: 2.42.3 + rollup: 2.45.2 dev: true - /@rollup/plugin-replace/2.4.1_rollup@2.41.1: - resolution: {integrity: sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ==} + /@rollup/plugin-replace/2.4.2_rollup@2.45.2: + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.41.1 + '@rollup/pluginutils': 3.1.0_rollup@2.45.2 magic-string: 0.25.7 - rollup: 2.41.1 + rollup: 2.45.2 dev: true - /@rollup/pluginutils/3.1.0_rollup@2.41.1: + /@rollup/pluginutils/3.1.0_rollup@2.45.2: resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -593,23 +632,11 @@ packages: dependencies: '@types/estree': 0.0.39 estree-walker: 1.0.1 - picomatch: 2.2.2 - rollup: 2.41.1 - dev: true - - /@rollup/pluginutils/3.1.0_rollup@2.42.3: - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.2.2 - rollup: 2.42.3 + picomatch: 2.2.3 + rollup: 2.45.2 dev: true - /@rollup/pluginutils/4.1.0_rollup@2.41.1: + /@rollup/pluginutils/4.1.0_rollup@2.45.2: resolution: {integrity: sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -617,26 +644,26 @@ packages: dependencies: estree-walker: 2.0.2 picomatch: 2.2.3 - rollup: 2.41.1 + rollup: 2.45.2 dev: false - /@sveltejs/vite-plugin-svelte/1.0.0-next.7_93fef3a16c1b45ac67b14a795df10192: + /@sveltejs/vite-plugin-svelte/1.0.0-next.7_2e4a7838c14803e2b333cb5d3a6380ff: resolution: {integrity: sha512-ENvKYY36jrvFP7h1G87k5uOoEh5UM1m8n40J2duqV/R3wHnxfW81SCR1aXo+5CVU8Prm3/jtS4TWs8CUTqO1fw==} engines: {node: '>=12.0.0'} peerDependencies: svelte: ^3.37.0 vite: ^2.1.5 dependencies: - '@rollup/pluginutils': 4.1.0_rollup@2.41.1 + '@rollup/pluginutils': 4.1.0_rollup@2.45.2 chalk: 4.1.0 debug: 4.3.2 hash-sum: 2.0.0 require-relative: 0.8.7 slash: 3.0.0 source-map: 0.7.3 - svelte: 3.35.0 - svelte-hmr: 0.14.0_svelte@3.35.0 - vite: 2.1.0 + svelte: 3.37.0 + svelte-hmr: 0.14.0_svelte@3.37.0 + vite: 2.1.5 transitivePeerDependencies: - rollup - supports-color @@ -645,22 +672,26 @@ packages: /@types/amphtml-validator/1.0.1: resolution: {integrity: sha512-DWE7fy6KtC+Uw0KV/HAmjuH2GB/o8yskXlvmVWR7mOVsLDybp+XrwkzEeRFU9wGjWKeRMBNGsx+5DRq7sUsAwA==} dependencies: - '@types/node': 14.14.33 + '@types/node': 14.14.37 dev: true /@types/estree/0.0.39: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true - /@types/estree/0.0.46: - resolution: {integrity: sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==} + /@types/estree/0.0.47: + resolution: {integrity: sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==} + dev: true + + /@types/gitignore-parser/0.0.0: + resolution: {integrity: sha512-qxOKILdhl4e639fWdkMySS4tBkRYHkrU2ZNScsMu84EPicliFRr+gAXCLPrs7kTFWdDpgAIlxtUr+YCRtVjsKw==} dev: true /@types/glob/7.1.3: resolution: {integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==} dependencies: - '@types/minimatch': 3.0.3 - '@types/node': 14.14.33 + '@types/minimatch': 3.0.4 + '@types/node': 14.14.37 dev: true /@types/is-windows/1.0.0: @@ -683,8 +714,8 @@ packages: resolution: {integrity: sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==} dev: true - /@types/minimatch/3.0.3: - resolution: {integrity: sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==} + /@types/minimatch/3.0.4: + resolution: {integrity: sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==} dev: true /@types/minimist/1.2.1: @@ -695,38 +726,37 @@ packages: resolution: {integrity: sha512-fMl88ZoZXOB7VKazJ6wUMpZc9QIn+jcigSFRf2K/rrw4DcXn+/uGxlWX8DDlcE7JkwgIZ7BDH+JgxZPlc/Ap3g==} dev: true - /@types/node/12.20.6: - resolution: {integrity: sha512-sRVq8d+ApGslmkE9e3i+D3gFGk7aZHAT+G4cIpIEdLJYPsWiSPwcAnJEjddLQQDqV3Ra2jOclX/Sv6YrvGYiWA==} - dev: true - - /@types/node/14.14.33: - resolution: {integrity: sha512-oJqcTrgPUF29oUP8AsUqbXGJNuPutsetaa9kTQAQce5Lx5dTYWV02ScBiT/k1BX/Z7pKeqedmvp39Wu4zR7N7g==} - dev: true - - /@types/node/14.14.35: - resolution: {integrity: sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==} + /@types/node/12.20.7: + resolution: {integrity: sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==} dev: true /@types/node/14.14.37: resolution: {integrity: sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==} dev: true - optional: true /@types/normalize-package-data/2.4.0: resolution: {integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==} dev: true + /@types/prettier/2.2.3: + resolution: {integrity: sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==} + dev: true + + /@types/pug/2.0.4: + resolution: {integrity: sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=} + dev: true + /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 14.14.35 + '@types/node': 14.14.37 dev: true /@types/rimraf/3.0.0: resolution: {integrity: sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ==} dependencies: '@types/glob': 7.1.3 - '@types/node': 14.14.33 + '@types/node': 14.14.37 dev: true /@types/sade/1.7.2: @@ -735,6 +765,12 @@ packages: '@types/mri': 1.1.0 dev: true + /@types/sass/1.16.0: + resolution: {integrity: sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==} + dependencies: + '@types/node': 14.14.37 + dev: true + /@types/semver/6.2.2: resolution: {integrity: sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==} dev: true @@ -746,8 +782,8 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/4.19.0_f26dcf5ec38a04241b14c26bc931244e: - resolution: {integrity: sha512-CRQNQ0mC2Pa7VLwKFbrGVTArfdVDdefS+gTw0oC98vSI98IX5A8EVH4BzJ2FOB0YlCmm8Im36Elad/Jgtvveaw==} + /@typescript-eslint/eslint-plugin/4.22.0_9acede93a3623dd7abe65c65a7010e73: + resolution: {integrity: sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: '@typescript-eslint/parser': ^4.0.0 @@ -757,32 +793,32 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.19.0_eslint@7.22.0+typescript@4.2.3 - '@typescript-eslint/parser': 4.19.0_eslint@7.22.0+typescript@4.2.3 - '@typescript-eslint/scope-manager': 4.19.0 + '@typescript-eslint/experimental-utils': 4.22.0_eslint@7.24.0+typescript@4.2.4 + '@typescript-eslint/parser': 4.22.0_eslint@7.24.0+typescript@4.2.4 + '@typescript-eslint/scope-manager': 4.22.0 debug: 4.3.1 - eslint: 7.22.0 + eslint: 7.24.0 functional-red-black-tree: 1.0.1 lodash: 4.17.21 regexpp: 3.1.0 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.2.3 - typescript: 4.2.3 + tsutils: 3.21.0_typescript@4.2.4 + typescript: 4.2.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils/4.19.0_eslint@7.22.0+typescript@4.2.3: - resolution: {integrity: sha512-9/23F1nnyzbHKuoTqFN1iXwN3bvOm/PRIXSBR3qFAYotK/0LveEOHr5JT1WZSzcD6BESl8kPOG3OoDRKO84bHA==} + /@typescript-eslint/experimental-utils/4.22.0_eslint@7.24.0+typescript@4.2.4: + resolution: {integrity: sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: '*' dependencies: '@types/json-schema': 7.0.7 - '@typescript-eslint/scope-manager': 4.19.0 - '@typescript-eslint/types': 4.19.0 - '@typescript-eslint/typescript-estree': 4.19.0_typescript@4.2.3 - eslint: 7.22.0 + '@typescript-eslint/scope-manager': 4.22.0 + '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/typescript-estree': 4.22.0_typescript@4.2.4 + eslint: 7.24.0 eslint-scope: 5.1.1 eslint-utils: 2.1.0 transitivePeerDependencies: @@ -790,8 +826,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser/4.19.0_eslint@7.22.0+typescript@4.2.3: - resolution: {integrity: sha512-/uabZjo2ZZhm66rdAu21HA8nQebl3lAIDcybUoOxoI7VbZBYavLIwtOOmykKCJy+Xq6Vw6ugkiwn8Js7D6wieA==} + /@typescript-eslint/parser/4.22.0_eslint@7.24.0+typescript@4.2.4: + resolution: {integrity: sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -800,31 +836,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 4.19.0 - '@typescript-eslint/types': 4.19.0 - '@typescript-eslint/typescript-estree': 4.19.0_typescript@4.2.3 + '@typescript-eslint/scope-manager': 4.22.0 + '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/typescript-estree': 4.22.0_typescript@4.2.4 debug: 4.3.1 - eslint: 7.22.0 - typescript: 4.2.3 + eslint: 7.24.0 + typescript: 4.2.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/4.19.0: - resolution: {integrity: sha512-GGy4Ba/hLXwJXygkXqMzduqOMc+Na6LrJTZXJWVhRrSuZeXmu8TAnniQVKgj8uTRKe4igO2ysYzH+Np879G75g==} + /@typescript-eslint/scope-manager/4.22.0: + resolution: {integrity: sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dependencies: - '@typescript-eslint/types': 4.19.0 - '@typescript-eslint/visitor-keys': 4.19.0 + '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/visitor-keys': 4.22.0 dev: true - /@typescript-eslint/types/4.19.0: - resolution: {integrity: sha512-A4iAlexVvd4IBsSTNxdvdepW0D4uR/fwxDrKUa+iEY9UWvGREu2ZyB8ylTENM1SH8F7bVC9ac9+si3LWNxcBuA==} + /@typescript-eslint/types/4.22.0: + resolution: {integrity: sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true - /@typescript-eslint/typescript-estree/4.19.0_typescript@4.2.3: - resolution: {integrity: sha512-3xqArJ/A62smaQYRv2ZFyTA+XxGGWmlDYrsfZG68zJeNbeqRScnhf81rUVa6QG4UgzHnXw5VnMT5cg75dQGDkA==} + /@typescript-eslint/typescript-estree/4.22.0_typescript@4.2.4: + resolution: {integrity: sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: typescript: '*' @@ -832,23 +868,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 4.19.0 - '@typescript-eslint/visitor-keys': 4.19.0 + '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/visitor-keys': 4.22.0 debug: 4.3.1 globby: 11.0.3 is-glob: 4.0.1 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.2.3 - typescript: 4.2.3 + tsutils: 3.21.0_typescript@4.2.4 + typescript: 4.2.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/visitor-keys/4.19.0: - resolution: {integrity: sha512-aGPS6kz//j7XLSlgpzU2SeTqHPsmRYxFztj2vPuMMFJXZudpRSehE3WCV+BaxwZFvfAqMoSd86TEuM0PQ59E/A==} + /@typescript-eslint/visitor-keys/4.22.0: + resolution: {integrity: sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dependencies: - '@typescript-eslint/types': 4.19.0 + '@typescript-eslint/types': 4.22.0 eslint-visitor-keys: 2.0.0 dev: true @@ -856,7 +892,7 @@ packages: resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} engines: {node: '>= 0.6'} dependencies: - mime-types: 2.1.29 + mime-types: 2.1.30 negotiator: 0.6.2 dev: true @@ -892,8 +928,8 @@ packages: uri-js: 4.4.1 dev: true - /ajv/7.2.3: - resolution: {integrity: sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==} + /ajv/8.1.0: + resolution: {integrity: sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -1051,8 +1087,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /c8/7.7.0: - resolution: {integrity: sha512-9OoBQBa5FPs7NNcjaH52SfQpLCXsDRwJKPOeQ9K1MyYoMlnfazMx3XHp+inFPxMA5BV6VMWw1uFrV9sao1oBqA==} + /c8/7.7.1: + resolution: {integrity: sha512-OO9KpDGv1iTd/MBNUForJH7vPKt9XnRPWSBKeRJGma4xfTaKBObA0zWAplFpFRuf/qRmATFqGFrzxqDk51LXsw==} engines: {node: '>=10.12.0'} hasBin: true dependencies: @@ -1088,7 +1124,7 @@ packages: engines: {node: '>=8'} dependencies: camelcase: 5.3.1 - map-obj: 4.2.0 + map-obj: 4.2.1 quick-lru: 4.0.1 dev: true @@ -1215,7 +1251,7 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.46.0 + mime-db: 1.47.0 dev: true /compression/1.7.4: @@ -1267,8 +1303,8 @@ packages: which: 2.0.2 dev: true - /csv-generate/3.3.0: - resolution: {integrity: sha512-EXSru4QwEWKwM7wwsJbhrZC+mHEJrhQFoXlohHs80CAU8Qhlv9gaw1sjzNiC3Hr3oUx5skDmEiAlz+tnKWV0RA==} + /csv-generate/3.4.0: + resolution: {integrity: sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==} dev: true /csv-parse/4.15.3: @@ -1279,14 +1315,14 @@ packages: resolution: {integrity: sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==} dev: true - /csv/5.4.0: - resolution: {integrity: sha512-wtdhi5Q53Rhjm2qzi2iDBLI1FHXTECXOTQ/jrZD5gzEXS9ukUkHwbhHRrCvv/vYFisy6uSoUeuW11P7KgrrDRg==} + /csv/5.5.0: + resolution: {integrity: sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==} engines: {node: '>= 0.1.90'} dependencies: - csv-generate: 3.3.0 + csv-generate: 3.4.0 csv-parse: 4.15.3 csv-stringify: 5.6.2 - stream-transform: 2.0.4 + stream-transform: 2.1.0 dev: true /data-uri-to-buffer/3.0.1: @@ -1400,6 +1436,11 @@ packages: esutils: 2.0.3 dev: true + /dotenv/8.2.0: + resolution: {integrity: sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==} + engines: {node: '>=8'} + dev: true + /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -1442,7 +1483,7 @@ packages: object.assign: 4.1.2 string.prototype.trimend: 1.0.4 string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.0 + unbox-primitive: 1.0.1 dev: true /es-to-primitive/1.2.1: @@ -1454,8 +1495,8 @@ packages: is-symbol: 1.0.3 dev: true - /esbuild/0.9.2: - resolution: {integrity: sha512-xE3oOILjnmN8PSjkG3lT9NBbd1DbxNqolJ5qNyrLhDWsFef3yTp/KTQz1C/x7BYFKbtrr9foYtKA6KA1zuNAUQ==} + /esbuild/0.9.7: + resolution: {integrity: sha512-VtUf6aQ89VTmMLKrWHYG50uByMF4JQlVysb8dmg6cOgW8JnFCipmz7p+HNBl+RR3LLCuBxFGVauAe2wfnF9bLg==} hasBin: true requiresBuild: true dev: true @@ -1490,7 +1531,7 @@ packages: pkg-dir: 2.0.0 dev: true - /eslint-plugin-import/2.22.1_eslint@7.22.0: + /eslint-plugin-import/2.22.1_eslint@7.24.0: resolution: {integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==} engines: {node: '>=4'} peerDependencies: @@ -1501,7 +1542,7 @@ packages: contains-path: 0.1.0 debug: 2.6.9 doctrine: 1.5.0 - eslint: 7.22.0 + eslint: 7.24.0 eslint-import-resolver-node: 0.3.4 eslint-module-utils: 2.6.0 has: 1.0.3 @@ -1512,14 +1553,14 @@ packages: tsconfig-paths: 3.9.0 dev: true - /eslint-plugin-svelte3/3.1.2_eslint@7.22.0: + /eslint-plugin-svelte3/3.1.2_eslint@7.24.0: resolution: {integrity: sha512-+aGgYFC/yjhGXmBevzwICFVif8tu++C9/lRg8cE6TTS45Hw8qZ6t5wItSXVNPqnxJ212ik+bad1F0Y9A3Swo0Q==} engines: {node: '>=10'} peerDependencies: eslint: '>=6.0.0' svelte: ^3.2.0 dependencies: - eslint: 7.22.0 + eslint: 7.24.0 dev: true /eslint-scope/5.1.1: @@ -1547,54 +1588,8 @@ packages: engines: {node: '>=10'} dev: true - /eslint/7.21.0: - resolution: {integrity: sha512-W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==} - engines: {node: ^10.12.0 || >=12.0.0} - hasBin: true - dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.0 - ajv: 6.12.6 - chalk: 4.1.0 - cross-spawn: 7.0.3 - debug: 4.3.1 - doctrine: 3.0.0 - enquirer: 2.3.6 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.0.0 - espree: 7.3.1 - esquery: 1.4.0 - esutils: 2.0.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 12.4.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.1 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash: 4.17.21 - minimatch: 3.0.4 - natural-compare: 1.4.0 - optionator: 0.9.1 - progress: 2.0.3 - regexpp: 3.1.0 - semver: 7.3.4 - strip-ansi: 6.0.0 - strip-json-comments: 3.1.1 - table: 6.0.7 - text-table: 0.2.0 - v8-compile-cache: 2.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint/7.22.0: - resolution: {integrity: sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==} + /eslint/7.24.0: + resolution: {integrity: sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==} engines: {node: ^10.12.0 || >=12.0.0} hasBin: true dependencies: @@ -1615,7 +1610,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 5.1.2 - globals: 13.7.0 + globals: 13.8.0 ignore: 4.0.6 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -1632,7 +1627,7 @@ packages: semver: 7.3.5 strip-ansi: 6.0.0 strip-json-comments: 3.1.1 - table: 6.0.7 + table: 6.0.9 text-table: 0.2.0 v8-compile-cache: 2.3.0 transitivePeerDependencies: @@ -1742,8 +1737,8 @@ packages: '@nodelib/fs.walk': 1.2.6 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.2 - picomatch: 2.2.2 + micromatch: 4.0.4 + picomatch: 2.2.3 dev: true /fast-json-stable-stringify/2.1.0: @@ -1813,7 +1808,7 @@ packages: /find-yarn-workspace-root2/1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: - micromatch: 4.0.2 + micromatch: 4.0.4 pkg-dir: 4.2.0 dev: true @@ -1936,8 +1931,8 @@ packages: type-fest: 0.8.1 dev: true - /globals/13.7.0: - resolution: {integrity: sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==} + /globals/13.8.0: + resolution: {integrity: sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -2005,8 +2000,8 @@ packages: resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} dev: false - /hosted-git-info/2.8.8: - resolution: {integrity: sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==} + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true /html-escaper/2.0.2: @@ -2160,7 +2155,7 @@ packages: /is-reference/1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: - '@types/estree': 0.0.46 + '@types/estree': 0.0.47 dev: true /is-regex/1.1.2: @@ -2283,12 +2278,11 @@ packages: /kleur/3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - dev: true + dev: false /kleur/4.1.4: resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} engines: {node: '>=6'} - dev: true /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -2344,10 +2338,22 @@ packages: p-locate: 5.0.0 dev: true + /lodash.clonedeep/4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} + dev: true + + /lodash.flatten/4.4.0: + resolution: {integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=} + dev: true + /lodash.startcase/4.4.0: resolution: {integrity: sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=} dev: true + /lodash.truncate/4.4.2: + resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} + dev: true + /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true @@ -2384,13 +2390,13 @@ packages: engines: {node: '>=0.10.0'} dev: true - /map-obj/4.2.0: - resolution: {integrity: sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==} + /map-obj/4.2.1: + resolution: {integrity: sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==} engines: {node: '>=8'} dev: true - /marked/2.0.1: - resolution: {integrity: sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==} + /marked/2.0.3: + resolution: {integrity: sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA==} engines: {node: '>= 8.16.2'} hasBin: true dev: true @@ -2417,24 +2423,24 @@ packages: engines: {node: '>= 8'} dev: true - /micromatch/4.0.2: - resolution: {integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==} - engines: {node: '>=8'} + /micromatch/4.0.4: + resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 - picomatch: 2.2.2 + picomatch: 2.2.3 dev: true - /mime-db/1.46.0: - resolution: {integrity: sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==} + /mime-db/1.47.0: + resolution: {integrity: sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==} engines: {node: '>= 0.6'} dev: true - /mime-types/2.1.29: - resolution: {integrity: sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==} + /mime-types/2.1.30: + resolution: {integrity: sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.46.0 + mime-db: 1.47.0 dev: true /mime/2.5.2: @@ -2467,8 +2473,8 @@ packages: resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} dev: true - /mixme/0.4.0: - resolution: {integrity: sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw==} + /mixme/0.5.0: + resolution: {integrity: sha512-YyyBIzqe6EEi5xcnN66LXVVvwijMF51liPT9ZqsrHim9s2MgEg4jxI8gsSF6R7pzAotjvBiERC90bbnwAqiDHg==} engines: {node: '>= 8.0.0'} dev: true @@ -2534,7 +2540,7 @@ packages: /normalize-package-data/2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: - hosted-git-info: 2.8.8 + hosted-git-info: 2.8.9 resolve: 1.20.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 @@ -2751,15 +2757,9 @@ packages: resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} dev: true - /picomatch/2.2.2: - resolution: {integrity: sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==} - engines: {node: '>=8.6'} - dev: true - /picomatch/2.2.3: resolution: {integrity: sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==} engines: {node: '>=8.6'} - dev: false /pify/2.3.0: resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} @@ -2822,8 +2822,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /polka/1.0.0-next.13: - resolution: {integrity: sha512-ISFBSJ3hHeSDOhbEUwBn0Jp8Rd9iOdXJa5LUaYyECw6lQOSkr0wJ7Shl5pRRS/u0t+uQpw9jJPypHRyX8mPpPQ==} + /polka/1.0.0-next.14: + resolution: {integrity: sha512-nRxh6lifEred8F973wMJ3YA7z8EBAf+lWFLbhIh4MnYJXmZododD8FDGj+R81xnuNNG8b4PDqNXvrB5ShKcStA==} engines: {node: '>=6'} dependencies: '@polka/url': 1.0.0-next.12 @@ -2834,8 +2834,8 @@ packages: resolution: {integrity: sha512-me2dL+chJVb88zpE228MvA6wIRy1CuXxGTwI5hYe4DnSnXRbtJT+9ggRj+49kgHgs/AKMTKOt/EkTHSvQJmRXA==} dev: true - /postcss/8.2.8: - resolution: {integrity: sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==} + /postcss/8.2.10: + resolution: {integrity: sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==} engines: {node: ^10 || ^12 || >=14} dependencies: colorette: 1.2.2 @@ -2890,13 +2890,13 @@ packages: asap: 2.0.6 dev: true - /prompts/2.4.0: - resolution: {integrity: sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==} + /prompts/2.4.1: + resolution: {integrity: sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==} engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - dev: true + dev: false /proper-lockfile/4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} @@ -3055,16 +3055,8 @@ packages: glob: 7.1.6 dev: true - /rollup/2.41.1: - resolution: {integrity: sha512-nepLFAW5W71/MWpS2Yr7r31eS7HRfYg2RXnxb6ehqN9zY42yACxKtEfb4xq8SmNfUohAzGMcyl6jkwdLOAiUbg==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /rollup/2.42.3: - resolution: {integrity: sha512-JjaT9WaUS5vmjy6xUrnPOskjkQg2cN4WSACNCwbOvBz8VDmbiKVdmTFUoMPRqTud0tsex8Xy9/boLbDW9HKD1w==} + /rollup/2.45.2: + resolution: {integrity: sha512-kRRU7wXzFHUzBIv0GfoFFIN3m9oteY4uAsKllIpQDId5cfnkWF2J130l+27dzDju0E6MScKiV0ZM5Bw8m4blYQ==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -3107,14 +3099,6 @@ packages: hasBin: true dev: true - /semver/7.3.4: - resolution: {integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver/7.3.5: resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} engines: {node: '>=10'} @@ -3159,14 +3143,14 @@ packages: resolution: {integrity: sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==} engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.11 + '@polka/url': 1.0.0-next.12 mime: 2.5.2 totalist: 1.1.0 dev: true /sisteransi/1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true + dev: false /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -3246,10 +3230,10 @@ packages: escape-string-regexp: 2.0.0 dev: true - /stream-transform/2.0.4: - resolution: {integrity: sha512-LQXH1pUksoef5Ijo6+2ihnjLLZtZuoqu1vhut6a7xZ77nrLA/shbbx2FAzVC/nkb6wwrPzOO98700mv4HDQcWg==} + /stream-transform/2.1.0: + resolution: {integrity: sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==} dependencies: - mixme: 0.4.0 + mixme: 0.5.0 dev: true /string-width/2.1.1: @@ -3345,25 +3329,77 @@ packages: dependencies: has-flag: 4.0.0 - /svelte-hmr/0.14.0_svelte@3.35.0: + /svelte-hmr/0.14.0_svelte@3.37.0: resolution: {integrity: sha512-Rc4w11U+U30m/cHqOJ/xioFSEAY5fd5muiQC7FL6XJuJAuB2OIJoEZl3KEJR2uO1/f4Bw0PdrugtbxcngSsOtQ==} peerDependencies: svelte: '>=3.19.0' dependencies: - svelte: 3.35.0 + svelte: 3.37.0 dev: false - /svelte/3.35.0: - resolution: {integrity: sha512-gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g==} + /svelte-preprocess/4.7.0: + resolution: {integrity: sha512-iNrY4YGqi0LD2e6oT9YbdSzOKntxk8gmzfqso1z/lUJOZh4o6fyIqkirmiZ8/dDJFqtIE1spVgDFWgkfhLEYlw==} + engines: {node: '>= 9.11.2'} + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 + node-sass: '*' + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.54.7 + sugarss: ^2.0.0 + svelte: ^3.23.0 + typescript: ^3.9.5 || ^4.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + node-sass: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true + dependencies: + '@types/pug': 2.0.4 + '@types/sass': 1.16.0 + detect-indent: 6.0.0 + strip-indent: 3.0.0 + dev: true + + /svelte/3.37.0: + resolution: {integrity: sha512-TRF30F4W4+d+Jr2KzUUL1j8Mrpns/WM/WacxYlo5MMb2E5Qy2Pk1Guj6GylxsW9OnKQl1tnF8q3hG/hQ3h6VUA==} engines: {node: '>= 8'} dev: true - /table/6.0.7: - resolution: {integrity: sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==} + /table/6.0.9: + resolution: {integrity: sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==} engines: {node: '>=10.0.0'} dependencies: - ajv: 7.2.3 - lodash: 4.17.21 + ajv: 8.1.0 + is-boolean-object: 1.1.0 + is-number-object: 1.0.4 + is-string: 1.0.5 + lodash.clonedeep: 4.5.0 + lodash.flatten: 4.4.0 + lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.2 dev: true @@ -3470,14 +3506,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.2.3: + /tsutils/3.21.0_typescript@4.2.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.2.3 + typescript: 4.2.4 dev: true /tty-table/2.8.13: @@ -3486,7 +3522,7 @@ packages: hasBin: true dependencies: chalk: 3.0.0 - csv: 5.4.0 + csv: 5.5.0 smartwrap: 1.2.5 strip-ansi: 6.0.0 wcwidth: 1.0.1 @@ -3520,14 +3556,14 @@ packages: engines: {node: '>=8'} dev: true - /typescript/4.2.3: - resolution: {integrity: sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==} + /typescript/4.2.4: + resolution: {integrity: sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /unbox-primitive/1.0.0: - resolution: {integrity: sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==} + /unbox-primitive/1.0.1: + resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} dependencies: function-bind: 1.1.1 has-bigints: 1.0.1 @@ -3583,15 +3619,15 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite/2.1.0: - resolution: {integrity: sha512-qWYmX8slkv91C3hWA2iu0o0ZvFbO2dSfWIN4dbMfSeMdNn+XeirkGWU3dy5/W1Nv13cQZvVoMTl8zyC13VFRZQ==} + /vite/2.1.5: + resolution: {integrity: sha512-tYU5iaYeUgQYvK/CNNz3tiJ8vYqPWfCE9IQ7K0iuzYovWw7lzty7KRYGWwV3CQPh0NKxWjOczAqiJsCL0Xb+Og==} engines: {node: '>=12.0.0'} hasBin: true dependencies: - esbuild: 0.9.2 - postcss: 8.2.8 + esbuild: 0.9.7 + postcss: 8.2.10 resolve: 1.20.0 - rollup: 2.41.1 + rollup: 2.45.2 optionalDependencies: fsevents: 2.3.2 dev: true @@ -3686,12 +3722,12 @@ packages: optional: true dev: true - /y18n/4.0.1: - resolution: {integrity: sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==} + /y18n/4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true - /y18n/5.0.5: - resolution: {integrity: sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==} + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} dev: true @@ -3729,7 +3765,7 @@ packages: set-blocking: 2.0.0 string-width: 4.2.2 which-module: 2.0.0 - y18n: 4.0.1 + y18n: 4.0.3 yargs-parser: 18.1.3 dev: true @@ -3742,7 +3778,7 @@ packages: get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.2 - y18n: 5.0.5 + y18n: 5.0.8 yargs-parser: 20.2.7 dev: true @@ -3758,7 +3794,7 @@ packages: engines: {node: '>=10'} dev: true - github.com/sveltejs/eslint-config/7224f2bba6ac40407c332b41fa2bede946f4868f_aa68f48205f9ef515fdb1eacb5490d4a: + github.com/sveltejs/eslint-config/7224f2bba6ac40407c332b41fa2bede946f4868f_e4ea5752af3a10c8f96cf103fd800d86: resolution: {tarball: https://codeload.github.com/sveltejs/eslint-config/tar.gz/7224f2bba6ac40407c332b41fa2bede946f4868f} id: github.com/sveltejs/eslint-config/7224f2bba6ac40407c332b41fa2bede946f4868f name: '@sveltejs/eslint-config' @@ -3772,10 +3808,10 @@ packages: eslint-plugin-svelte3: '>= 2' typescript: '>= 3' dependencies: - '@typescript-eslint/eslint-plugin': 4.19.0_f26dcf5ec38a04241b14c26bc931244e - '@typescript-eslint/parser': 4.19.0_eslint@7.22.0+typescript@4.2.3 - eslint: 7.22.0 - eslint-plugin-import: 2.22.1_eslint@7.22.0 - eslint-plugin-svelte3: 3.1.2_eslint@7.22.0 - typescript: 4.2.3 + '@typescript-eslint/eslint-plugin': 4.22.0_9acede93a3623dd7abe65c65a7010e73 + '@typescript-eslint/parser': 4.22.0_eslint@7.24.0+typescript@4.2.4 + eslint: 7.24.0 + eslint-plugin-import: 2.22.1_eslint@7.24.0 + eslint-plugin-svelte3: 3.1.2_eslint@7.24.0 + typescript: 4.2.4 dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0ff41d0cd582..ab028cbdd28f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,5 @@ packages: - 'packages/*' + - 'packages/create-svelte/templates/*' - 'examples/*' - '.github/actions/*'