From 052edd220d9a66afb36d8572315b0339c976373c Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 11 Aug 2021 23:48:33 +0200 Subject: [PATCH] docs: auto-generate configuration api (#349) Co-authored-by: Pooya Parsa --- docs/.gitignore | 2 + docs/build.config.ts | 16 + docs/content/3.server/2.api.md | 5 + docs/content/5.config/reference.md | 1 - docs/nuxt.config.ts | 1 + docs/package.json | 16 +- docs/scripts/gen-docs.ts | 150 ++++++ docs/tsconfig.json | 16 + docs/yarn.lock | 508 +++++++++++---------- package.json | 1 - packages/kit/.gitignore | 2 +- packages/kit/build.config.ts | 2 +- packages/kit/src/config/schema/_app.ts | 28 +- packages/kit/src/config/schema/_common.ts | 120 ++++- packages/kit/src/config/schema/build.ts | 201 +++++--- packages/kit/src/config/schema/cli.ts | 2 + packages/kit/src/config/schema/generate.ts | 47 +- packages/kit/src/config/schema/messages.ts | 3 + packages/kit/src/config/schema/render.ts | 99 ++-- packages/kit/src/config/schema/router.ts | 40 +- packages/kit/src/config/schema/server.ts | 11 +- 21 files changed, 872 insertions(+), 399 deletions(-) create mode 100644 docs/.gitignore create mode 100644 docs/build.config.ts delete mode 100644 docs/content/5.config/reference.md create mode 100644 docs/scripts/gen-docs.ts create mode 100644 docs/tsconfig.json diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000000..b8e65d1360 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,2 @@ +5.config +schema diff --git a/docs/build.config.ts b/docs/build.config.ts new file mode 100644 index 0000000000..8f24448a3e --- /dev/null +++ b/docs/build.config.ts @@ -0,0 +1,16 @@ +import { resolve } from 'path' +import { defineBuildConfig } from 'unbuild' + +export default defineBuildConfig({ + entries: [ + { + input: resolve(__dirname, '../packages/kit/src/config/schema/index'), + outDir: 'schema', + name: 'config', + builder: 'untyped', + defaults: { + rootDir: '/project/' + } + } + ] +}) diff --git a/docs/content/3.server/2.api.md b/docs/content/3.server/2.api.md index 660cab5a4d..71bc00b322 100644 --- a/docs/content/3.server/2.api.md +++ b/docs/content/3.server/2.api.md @@ -1,3 +1,8 @@ +--- +navigation: + title: API +--- + # API Routes Nuxt will automatically read in any files in the `~/server/api` directory to create API endpoints. diff --git a/docs/content/5.config/reference.md b/docs/content/5.config/reference.md deleted file mode 100644 index af6975dc46..0000000000 --- a/docs/content/5.config/reference.md +++ /dev/null @@ -1 +0,0 @@ -# Configuration Reference diff --git a/docs/nuxt.config.ts b/docs/nuxt.config.ts index 3da3941127..13a644cdb6 100644 --- a/docs/nuxt.config.ts +++ b/docs/nuxt.config.ts @@ -23,6 +23,7 @@ export default withDocus({ * Has to specify rootDir as we use nuxt-extend */ rootDir: __dirname, + /** * Modules */ diff --git a/docs/package.json b/docs/package.json index 20eb38771a..3a9b32f30a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,8 +1,10 @@ { "private": true, + "name": "docs", "scripts": { - "dev": "nuxt dev", - "build": "nuxt generate --force-build" + "dev": "yarn gendocs && nuxt dev", + "build": "yarn gendocs && nuxt generate --force-build", + "gendocs": "unbuild && jiti ./scripts/gen-docs.ts" }, "devDependencies": { "@docus/app": "^1.0.38", @@ -10,6 +12,14 @@ "@docus/social-image": "^1.0.2", "@docus/theme": "^1.0.7", "@docus/twitter": "^1.0.3", - "@nuxt/typescript-build": "^2.1.0" + "@nuxt/typescript-build": "^2.1.0", + "fs-extra": "^10.0.0", + "jiti": "^1.11.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2", + "scule": "^0.2.1", + "unbuild": "^0.4.0", + "untyped": "^0.2.7", + "upath": "^2.0.1" } } diff --git a/docs/scripts/gen-docs.ts b/docs/scripts/gen-docs.ts new file mode 100644 index 0000000000..3b40724612 --- /dev/null +++ b/docs/scripts/gen-docs.ts @@ -0,0 +1,150 @@ +import { rm, writeFile } from 'fs/promises' +import mkdirp from 'mkdirp' +import type { Schema } from 'untyped' +import { join, resolve } from 'upath' +import { kebabCase, upperFirst } from 'scule' + +export async function main () { + const rootDir = resolve(__dirname, '..') + const configDir = resolve(rootDir, 'content/5.config') + await generateDocs({ outDir: configDir }) +} + +function generateMarkdown (schema: Schema, title: string, level: string, parentVersions: string[] = []) { + const lines: string[] = [] + + // Skip private + if (schema.tags?.includes('@private')) { + return [] + } + + // Versions + const versions = (schema.tags || []).map(t => t.match(/@version (\d+)/)?.[1]).filter(Boolean) + if (!versions.length) { + // Inherit from parent if not specified + versions.push(...parentVersions) + } + if (!versions.includes('3')) { + return [] + } + + // Render heading + lines.push(`${level} ${title}`, '') + + // Render meta info + if (schema.type !== 'object' || !schema.properties) { + // Type and default + lines.push(`- **Type**: \`${schema.type}\``) + lines.push(`- **Version**: ${versions.join(', ')}`) + if ('default' in schema) { + lines.push('- **Default**', ...formatValue(schema.default)) + } + lines.push('') + } + + // Render title + if (schema.title) { + lines.push('> ' + schema.title, '') + } + + // Render description + if (schema.description) { + lines.push(schema.description, '') + } + + // Render @ tags + if (schema.tags) { + lines.push(...schema.tags.map(renderTag).flat()) + } + + // Render properties + if (schema.type === 'object') { + const keys = Object.keys(schema.properties || {}).sort() + for (const key of keys) { + const val = schema.properties[key] as Schema + const propLines = generateMarkdown(val, `\`${key}\``, level + '#', versions) + if (propLines.length) { + lines.push('', ...propLines) + } + } + } + + return lines +} + +const TAG_REGEX = /^@([\d\w]+)[\s\n]/i + +const TagAlertType = { + note: 'note', + warning: 'warning', + deprecated: 'deprecated' +} + +const InternalTypes = new Set([ + 'version', + 'deprecated' +]) + +function formatValue (val) { + return ['```json', JSON.stringify(val, null, 2), '```'] +} + +function renderTag (tag: string) { + const type = tag.match(TAG_REGEX)?.[1] + if (!type) { + return [``] + } + if (InternalTypes.has(type)) { + return [] + } + tag = tag.replace(`@${type}`, `**${upperFirst(type)}**:`) + if (TagAlertType[type]) { + return [`::alert{type="${TagAlertType[type]}"}`, tag, '::', ''] + } + return tag +} + +async function generateDocs ({ outDir }) { + // Prepare content directory + const start = Date.now() + console.log('Generating docs to ' + outDir) + await rm(outDir, { recursive: true }).catch(() => {}) + await mkdirp(outDir) + + const rootSchema = require('../schema/config.schema.json') as Schema + + const keys = Object.keys(rootSchema.properties).sort() + let ctor = 1 + + // Generate a separate file for each section + for (const key of keys) { + const schema = rootSchema.properties[key] + + const lines = generateMarkdown(schema, key, '#') + + // Skip empty sections + if (lines.length < 3) { + continue + } + + // Add frontmatter meta + const attributes = Object.entries({ + title: key, + description: schema.title + }).map(([key, val]) => `${key}: "${val}"`) + + lines.unshift('---', ...attributes, '---') + + await writeFile(join(outDir, `${ctor++}.${kebabCase(key)}.md`), lines.join('\n')) + } + + const frontmatter = ['---', 'navigation:', ' collapse: true', '---'] + await writeFile(join(outDir, 'index.md'), frontmatter.join('\n')) + + console.log(`Generate done in ${(Date.now() - start) / 1000} seconds!`) +} + +main().catch((err) => { + console.error(err) + process.exit(1) +}) diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 0000000000..b42f460606 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "skipLibCheck": true, + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Node", + "strict": false, + "allowJs": true, + "noUnusedLocals": true, + "resolveJsonModule": true, + "types": [ + "node" + ] + } +} diff --git a/docs/yarn.lock b/docs/yarn.lock index 8e1ef886f3..0fed7a23b4 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -120,12 +120,12 @@ dependencies: "@babel/highlight" "^7.14.5" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.4", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== -"@babel/core@^7.11.6", "@babel/core@^7.14.3": +"@babel/core@^7.11.6", "@babel/core@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== @@ -170,7 +170,7 @@ "@babel/helper-explode-assignable-expression" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.4", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== @@ -251,7 +251,7 @@ dependencies: "@babel/types" "^7.15.0" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12", "@babel/helper-module-imports@^7.14.5": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== @@ -345,13 +345,13 @@ "@babel/types" "^7.14.5" "@babel/helpers@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.8.tgz#839f88f463025886cff7f85a35297007e2da1b77" - integrity sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw== + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== dependencies: "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/highlight@^7.14.5": version "7.14.5" @@ -363,9 +363,9 @@ js-tokens "^4.0.0" "@babel/parser@^7.12.0", "@babel/parser@^7.13.10", "@babel/parser@^7.13.12", "@babel/parser@^7.13.9", "@babel/parser@^7.14.5", "@babel/parser@^7.14.9", "@babel/parser@^7.15.0", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": - version "7.15.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.2.tgz#08d4ffcf90d211bf77e7cc7154c6f02d468d2b1d" - integrity sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg== + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": version "7.14.5" @@ -385,7 +385,7 @@ "@babel/helper-remap-async-to-generator" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.14.5": +"@babel/plugin-proposal-class-properties@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== @@ -402,7 +402,7 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.14.2", "@babel/plugin-proposal-decorators@^7.14.5": +"@babel/plugin-proposal-decorators@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" integrity sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg== @@ -443,7 +443,7 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== @@ -478,7 +478,7 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.14.2", "@babel/plugin-proposal-optional-chaining@^7.14.5": +"@babel/plugin-proposal-optional-chaining@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== @@ -487,7 +487,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.13.0", "@babel/plugin-proposal-private-methods@^7.14.5": +"@babel/plugin-proposal-private-methods@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== @@ -656,9 +656,9 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-block-scoping@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" - integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" + integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== dependencies: "@babel/helper-plugin-utils" "^7.14.5" @@ -829,7 +829,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-runtime@^7.14.3": +"@babel/plugin-transform-runtime@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== @@ -901,7 +901,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/preset-env@^7.14.4": +"@babel/preset-env@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== @@ -991,10 +991,10 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" - integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg== +"@babel/runtime@^7.15.3", "@babel/runtime@^7.8.4": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== dependencies: regenerator-runtime "^0.13.4" @@ -1007,7 +1007,7 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8", "@babel/traverse@^7.14.9", "@babel/traverse@^7.15.0": +"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.9", "@babel/traverse@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== @@ -1257,39 +1257,39 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@nuxt/babel-preset-app-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app-edge/-/babel-preset-app-edge-2.16.0-27142012.71424974.tgz#766dbd29cdd952cb83b3724c1d3dde690fb78fde" - integrity sha512-RQXE7v1pv0Rse3f5y4505A8A9NLnSdgY8LKEEHVpKkl52oGLRl2Ftl9003c+RUIN0ncTX3Oj6cEWvONYg5R/dQ== +"@nuxt/babel-preset-app-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app-edge/-/babel-preset-app-edge-2.16.0-27144894.20e7b99e.tgz#6af280b4dd6d18838f7615b4e52dcfed374215cf" + integrity sha512-tu3SOvFrLUe638b8/7MlaCP6cbc1UI9RdUwdCrXGu/phAs92KMbba1bguyv5JYHAvJeYE/1rpKaK6rK83HDBDQ== dependencies: - "@babel/compat-data" "^7.14.4" - "@babel/core" "^7.14.3" - "@babel/helper-compilation-targets" "^7.14.4" - "@babel/helper-module-imports" "^7.13.12" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-decorators" "^7.14.2" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" - "@babel/plugin-proposal-optional-chaining" "^7.14.2" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-transform-runtime" "^7.14.3" - "@babel/preset-env" "^7.14.4" - "@babel/runtime" "^7.14.0" + "@babel/compat-data" "^7.15.0" + "@babel/core" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-imports" "^7.14.5" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-decorators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-transform-runtime" "^7.15.0" + "@babel/preset-env" "^7.15.0" + "@babel/runtime" "^7.15.3" "@vue/babel-preset-jsx" "^1.2.4" core-js "^2.6.5" - core-js-compat "^3.14.0" - regenerator-runtime "^0.13.7" + core-js-compat "^3.16.1" + regenerator-runtime "^0.13.9" -"@nuxt/builder-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/builder-edge/-/builder-edge-2.16.0-27142012.71424974.tgz#f5dcb1b359c991a56aa401018d9b2660daa175e0" - integrity sha512-je0yCke55BEa8enDHD6ea7za3Jsfp0eXWr6zw5gKpfU0dzcDFbFl/8rNR/nX44bZnMhktQrixppOt7Ncaqm5xQ== +"@nuxt/builder-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/builder-edge/-/builder-edge-2.16.0-27144894.20e7b99e.tgz#61d71880d84963bb8825b2fe3b138913438510ee" + integrity sha512-U7ifneKomVXDgvExYyMA+Abc1VJP1BQAqM0P5qpJSaYVhPn+fNexZrUD7dB4Q2nLNzBsZj2o9+SEMxQXpjcNsg== dependencies: - "@nuxt/devalue" "^1.2.5" - "@nuxt/utils-edge" "2.16.0-27142012.71424974" - "@nuxt/vue-app-edge" "2.16.0-27142012.71424974" - "@nuxt/webpack-edge" "2.16.0-27142012.71424974" - chalk "^4.1.1" - chokidar "^3.5.1" + "@nuxt/devalue" "^2.0.0" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/vue-app-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/webpack-edge" "2.16.0-27144894.20e7b99e" + chalk "^4.1.2" + chokidar "^3.5.2" consola "^2.15.3" fs-extra "^10.0.0" glob "^7.1.7" @@ -1300,15 +1300,15 @@ serialize-javascript "^6.0.0" upath "^2.0.1" -"@nuxt/cli-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/cli-edge/-/cli-edge-2.16.0-27142012.71424974.tgz#a7854f0d7b4cab07404e0d83ce8369c794c1f2a8" - integrity sha512-uN9tEX389ddItxyn8iqHbxp0CFmil01TP7W2iIUBrkWgU754Zl0nl8tIJaV3NN8aSAK1zfQBS0UXdoAJ5ASenw== +"@nuxt/cli-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/cli-edge/-/cli-edge-2.16.0-27144894.20e7b99e.tgz#7f6a10a893d49881be970c8d9de6403d1245c528" + integrity sha512-kyvIExBCRMeoYaE4/toZ/49A6kbSHGzkyIMFLt2CIpVZujq4pMzQESjQpUbrkoQ3YMXXczLW7ZWBVibhMpsL1w== dependencies: - "@nuxt/config-edge" "2.16.0-27142012.71424974" - "@nuxt/utils-edge" "2.16.0-27142012.71424974" + "@nuxt/config-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" boxen "^5.0.1" - chalk "^4.1.1" + chalk "^4.1.2" compression "^1.7.4" connect "^3.7.0" consola "^2.15.3" @@ -1318,7 +1318,7 @@ execa "^5.1.1" exit "^0.1.2" fs-extra "^10.0.0" - globby "^11.0.3" + globby "^11.0.4" hable "^3.0.0" lodash "^4.17.21" minimist "^1.2.5" @@ -1330,26 +1330,26 @@ upath "^2.0.1" wrap-ansi "^7.0.0" -"@nuxt/components@^2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@nuxt/components/-/components-2.1.8.tgz#2d07fe077768d0a3041a5685c08ad8825ea2f2cd" - integrity sha512-gdVzBiM9V28svAKWlGg+IrvRXF9sHlWaVNKDNNYpYg0zh7f9xNxYAk6DtQeBBJshbAsPaXC9J2ZFxfrREX3H8w== +"@nuxt/components@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@nuxt/components/-/components-2.2.0.tgz#8e97f01db71665d10ac94614df76c662a9b9f63e" + integrity sha512-D7kxuboGDCd8lFU7zYH9iVUT7IL6nMHLCp0ajvRS26Y5gZRggkXMnGGNp7oCv0FY7UVySmJ7wzy0Ctl46eKqdw== dependencies: - chalk "^4.1.1" - chokidar "^3.5.1" - glob "^7.1.6" - globby "^11.0.3" + chalk "^4.1.2" + chokidar "^3.5.2" + glob "^7.1.7" + globby "^11.0.4" scule "^0.2.1" semver "^7.3.5" upath "^2.0.1" - vue-template-compiler "^2.6.12" + vue-template-compiler "^2.6.14" -"@nuxt/config-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/config-edge/-/config-edge-2.16.0-27142012.71424974.tgz#bc0ad7aa3a538a64481e21c4ce746d8574e1a770" - integrity sha512-J8P09IqQg1WLPGwmKyq3rpRdFN/4sfN6vyM4fLDQhPKsDEcXS60Zs1xWKfl/ErbVlXDqX/IQaJSwyy6hRGsXfg== +"@nuxt/config-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/config-edge/-/config-edge-2.16.0-27144894.20e7b99e.tgz#0c3f19dc06580454709db707ed77591f5c1bf1f1" + integrity sha512-31dhVWu19MbwNjm9EP+iShoTwBSJrEsngonFd48KdqezSuZgx88WUH/jeSYR0tm50KHhK8sax1wW1m8xVzQNNA== dependencies: - "@nuxt/utils-edge" "2.16.0-27142012.71424974" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" consola "^2.15.3" defu "^5.0.0" destr "^1.1.0" @@ -1357,28 +1357,26 @@ lodash "^4.17.21" rc9 "^1.2.0" std-env "^2.3.0" - ufo "^0.7.5" + ufo "^0.7.7" -"@nuxt/core-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/core-edge/-/core-edge-2.16.0-27142012.71424974.tgz#eb334e76da8b7a734f83551a917afccfcd6843e4" - integrity sha512-In+vPscuMT1VpIMLHgSnYzxLbCFMMh1PaYvCWlOiFR9+se/7kY5a8+sXPXTEhOYKccL9uTIaKsFuUzV8So0pMw== +"@nuxt/core-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/core-edge/-/core-edge-2.16.0-27144894.20e7b99e.tgz#6470bd493fefc1c8e2ac4a4d0d31539311ed4a1b" + integrity sha512-0ND8pwwj7VCaZUnRrSyGwJ18+IFuS+TgpsEcgulLvHNYjcrBD67RKw+l54wcWK+a3CHInrMnnbS25KynOy+2jw== dependencies: - "@nuxt/config-edge" "2.16.0-27142012.71424974" - "@nuxt/server-edge" "2.16.0-27142012.71424974" - "@nuxt/utils-edge" "2.16.0-27142012.71424974" + "@nuxt/config-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/server-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" consola "^2.15.3" fs-extra "^10.0.0" hable "^3.0.0" hash-sum "^2.0.0" lodash "^4.17.21" -"@nuxt/devalue@^1.2.5": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@nuxt/devalue/-/devalue-1.2.5.tgz#8d95e3e74b3332d3eb713342c5c4d18096047d66" - integrity sha512-Tg86C7tqzvZtZli2BQVqgzZN136mZDTgauvJXagglKkP2xt5Kw3NUIiJyjX0Ww/IZy2xVmD0LN+CEPpij4dB2g== - dependencies: - consola "^2.9.0" +"@nuxt/devalue@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@nuxt/devalue/-/devalue-2.0.0.tgz#c7bd7e9a516514e612d5d2e511ffc399e0eac322" + integrity sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA== "@nuxt/friendly-errors-webpack-plugin@^2.5.1": version "2.5.1" @@ -1390,20 +1388,20 @@ error-stack-parser "^2.0.0" string-width "^2.0.0" -"@nuxt/generator-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/generator-edge/-/generator-edge-2.16.0-27142012.71424974.tgz#fef4b3d476565a5c59a8303be8a20e9ec1d4e2b8" - integrity sha512-w5foyPL9DptPpUgdjq2TBiWPxPlMWyZxHtNkeuSxB+EIxziwVXLP5pPtY7tJljfuE88iWZ3Su4JxX7YmQ4QKRA== +"@nuxt/generator-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/generator-edge/-/generator-edge-2.16.0-27144894.20e7b99e.tgz#290439e5ac67b7016c1781f05e06aeca44aa7279" + integrity sha512-oMeCptlPJKDOFV715ltvj21BkZJvZ5wksSABX5c2UKautA22MP2X9YWLdSJ3FUZdIttGrcGej6pvhmLd+xbdXA== dependencies: - "@nuxt/utils-edge" "2.16.0-27142012.71424974" - chalk "^4.1.1" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" + chalk "^4.1.2" consola "^2.15.3" defu "^5.0.0" devalue "^2.0.1" fs-extra "^10.0.0" html-minifier "^4.0.0" - node-html-parser "^4.0.0" - ufo "^0.7.5" + node-html-parser "^4.1.3" + ufo "^0.7.7" "@nuxt/http@^0.6.4": version "0.6.4" @@ -1494,13 +1492,13 @@ postcss-url "^10.1.1" semver "^7.3.4" -"@nuxt/server-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/server-edge/-/server-edge-2.16.0-27142012.71424974.tgz#95306c97de7a8a2fa6e723319f084d0eff58cfdd" - integrity sha512-5so08BWIoVv8Bqh0XZqWYRDZaVhOt8s8OEKMf/nr9EvsK5yhY4IWTauo1bjzJJ2+B+2tQQkdrp/iyeBJ4gIcoQ== +"@nuxt/server-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/server-edge/-/server-edge-2.16.0-27144894.20e7b99e.tgz#d175ad809003d1d93f492f05db139f052496628d" + integrity sha512-W6O5JZail4X8XdmmV0pvyFnoWzgLh5j5bNFvvWnEIP9MtlisvHv6fh8BCV+3avcPqiVuRXenxNQ8Y00BLj9CEw== dependencies: - "@nuxt/utils-edge" "2.16.0-27142012.71424974" - "@nuxt/vue-renderer-edge" "2.16.0-27142012.71424974" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/vue-renderer-edge" "2.16.0-27144894.20e7b99e" "@nuxtjs/youch" "^4.2.3" compression "^1.7.4" connect "^3.7.0" @@ -1512,10 +1510,10 @@ launch-editor-middleware "^2.2.1" on-headers "^1.0.2" pify "^5.0.0" - serve-placeholder "^1.2.3" + serve-placeholder "^1.2.4" serve-static "^1.14.1" server-destroy "^1.0.1" - ufo "^0.7.5" + ufo "^0.7.7" "@nuxt/telemetry@^1.3.6": version "1.3.6" @@ -1551,69 +1549,69 @@ ts-loader "^8.0.17" typescript "~4.2" -"@nuxt/utils-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/utils-edge/-/utils-edge-2.16.0-27142012.71424974.tgz#56bb66127d59b43446b3ace641db52e04c7d39b1" - integrity sha512-3S57wOVgH5nsCw5hFKvzirX//Kell+L5svmkpJ51bIR5i2uwM8UTR1ZPcogFrzogZfpKSR9HLSLgDF9hMx0Jvw== +"@nuxt/utils-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/utils-edge/-/utils-edge-2.16.0-27144894.20e7b99e.tgz#203459ff5dfd26d26761937626da3bb0c2d35ffc" + integrity sha512-4f1AQVoXU7ZFJiKIGNA/OOxRFptXgRtwgWbY7RwM6CdOZH4UXzIkIP85fgDF1/RnTZuCCYz6tjMHGpScwx+UAA== dependencies: consola "^2.15.3" create-require "^1.1.1" fs-extra "^10.0.0" hash-sum "^2.0.0" - jiti "^1.10.1" + jiti "^1.11.0" lodash "^4.17.21" proper-lockfile "^4.1.2" semver "^7.3.5" serialize-javascript "^6.0.0" signal-exit "^3.0.3" ua-parser-js "^0.7.28" - ufo "^0.7.5" + ufo "^0.7.7" -"@nuxt/vue-app-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/vue-app-edge/-/vue-app-edge-2.16.0-27142012.71424974.tgz#5545711985d89575ed12d16f33c6c5085f531f07" - integrity sha512-BiJaSyPxbVGVtmg4uWIrL4cYDKg+QjQHM1U4wcy4YmgkwuMGB2BKcExbVGf/bAfofVYM5NzHDJox3qMdEpI1jA== +"@nuxt/vue-app-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/vue-app-edge/-/vue-app-edge-2.16.0-27144894.20e7b99e.tgz#7dc79473b19faffb81d2644725c08421812f0954" + integrity sha512-Ayrm+pJjWv1uq2nwvoIBSWFMwwNVovKxqvkiNdkoQB1WvPx0fjjf5YH74pqGOMl5qZSaVPg8fOxKnQnwpAVPSw== dependencies: node-fetch "^2.6.1" - ufo "^0.7.5" + ufo "^0.7.7" unfetch "^4.2.0" - vue "^2.6.13" + vue "^2.6.14" vue-client-only "^2.1.0" vue-meta "^2.4.0" vue-no-ssr "^1.1.1" - vue-router "^3.5.1" - vue-template-compiler "^2.6.13" + vue-router "^3.5.2" + vue-template-compiler "^2.6.14" vuex "^3.6.2" -"@nuxt/vue-renderer-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer-edge/-/vue-renderer-edge-2.16.0-27142012.71424974.tgz#b11dc7d4fad3ce43dcb800c68431d2948858b1d1" - integrity sha512-wW9UPZz6yBAfl0agLZgQk9zqwWJZQ8lvzsPLLTReSkznvjVabz68KF4Q5dn5zw6JYsT/XWHYTQs6sDvKCJG39g== +"@nuxt/vue-renderer-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer-edge/-/vue-renderer-edge-2.16.0-27144894.20e7b99e.tgz#f787176f1bdcae7f7cd067c0d75ebb9109eaab3d" + integrity sha512-4Mh48sCS67LdfhHeAcXStLgTpnhjUnFXrw5lIIiiYEtIDdyo5kc1qc7QmwlqwTwXhNQXZWt3D1vVhPncfJWtyA== dependencies: - "@nuxt/devalue" "^1.2.5" - "@nuxt/utils-edge" "2.16.0-27142012.71424974" + "@nuxt/devalue" "^2.0.0" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" consola "^2.15.3" defu "^5.0.0" fs-extra "^10.0.0" lodash "^4.17.21" lru-cache "^5.1.1" - ufo "^0.7.5" - vue "^2.6.13" + ufo "^0.7.7" + vue "^2.6.14" vue-meta "^2.4.0" - vue-server-renderer "^2.6.13" + vue-server-renderer "^2.6.14" -"@nuxt/webpack-edge@2.16.0-27142012.71424974": - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/@nuxt/webpack-edge/-/webpack-edge-2.16.0-27142012.71424974.tgz#69c53ee8622047f5d5a1f3bece6f0fec8468ac0e" - integrity sha512-BKjflQUuoNdAtB3/GimyWSutYE4xorsTa5CL0pPuti5aHCiRm58OFK5W7yj99aOSTsoTCDW5WejNWu5PJClLEA== +"@nuxt/webpack-edge@2.16.0-27144894.20e7b99e": + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/@nuxt/webpack-edge/-/webpack-edge-2.16.0-27144894.20e7b99e.tgz#751386a8430ca05a2afd85e35aaff99b89ff15e3" + integrity sha512-3Xsw+nKcQgRF8wp6kkvhBfq8LFe/pRXnMxjTSa9L9kilKd0gvqtNU/Oc9Jnuflmgzmq2doJOm84ZA7ehWOa9EQ== dependencies: - "@babel/core" "^7.14.3" - "@nuxt/babel-preset-app-edge" "2.16.0-27142012.71424974" + "@babel/core" "^7.15.0" + "@nuxt/babel-preset-app-edge" "2.16.0-27144894.20e7b99e" "@nuxt/friendly-errors-webpack-plugin" "^2.5.1" - "@nuxt/utils-edge" "2.16.0-27142012.71424974" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" babel-loader "^8.2.2" cache-loader "^4.1.0" - caniuse-lite "^1.0.30001235" + caniuse-lite "^1.0.30001249" consola "^2.15.3" css-loader "^4.3.0" cssnano "^4.1.11" @@ -1626,9 +1624,9 @@ html-webpack-plugin "^4.5.1" lodash "^4.17.21" memory-fs "^0.5.0" - optimize-css-assets-webpack-plugin "^5.0.6" + optimize-css-assets-webpack-plugin "^5.0.8" pify "^5.0.0" - pnp-webpack-plugin "^1.6.4" + pnp-webpack-plugin "^1.7.0" postcss "^7.0.32" postcss-import "^12.0.1" postcss-import-resolver "^2.0.0" @@ -1641,11 +1639,11 @@ terser-webpack-plugin "^4.2.3" thread-loader "^3.0.4" time-fix-plugin "^2.0.7" - ufo "^0.7.5" + ufo "^0.7.7" url-loader "^4.1.1" - vue-loader "^15.9.7" + vue-loader "^15.9.8" vue-style-loader "^4.1.3" - vue-template-compiler "^2.6.13" + vue-template-compiler "^2.6.14" watchpack "^2.2.0" webpack "^4.46.0" webpack-bundle-analyzer "^4.4.2" @@ -1711,14 +1709,14 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== -"@rollup/plugin-alias@^3.1.2": +"@rollup/plugin-alias@^3.1.2", "@rollup/plugin-alias@^3.1.4": version "3.1.5" resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.5.tgz#73356a3a1eab2e1e2fd952f9f53cd89fc740d952" integrity sha512-yzUaSvCC/LJPbl9rnzX3HN7vy0tq7EzHoEiQl1ofh4n5r2Rd5bj/+zcJgaGA76xbw95/JjWQyvHg9rOJp2y0oQ== dependencies: slash "^3.0.0" -"@rollup/plugin-commonjs@^19.0.0": +"@rollup/plugin-commonjs@^19.0.0", "@rollup/plugin-commonjs@^19.0.1": version "19.0.2" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.2.tgz#1ccc3d63878d1bc9846f8969f09dd3b3e4ecc244" integrity sha512-gBjarfqlC7qs0AutpRW/hrFNm+cd2/QKxhwyFa+srbg1oX7rDsEU3l+W7LAUhsAp9mPJMAkXDhLbQaVwEaE8bA== @@ -1738,7 +1736,7 @@ dependencies: "@rollup/pluginutils" "^3.0.8" -"@rollup/plugin-node-resolve@^13.0.0": +"@rollup/plugin-node-resolve@^13.0.0", "@rollup/plugin-node-resolve@^13.0.2": version "13.0.4" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz#b10222f4145a019740acb7738402130d848660c0" integrity sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w== @@ -1819,9 +1817,9 @@ integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== "@types/node@*": - version "16.4.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.13.tgz#7dfd9c14661edc65cccd43a29eb454174642370d" - integrity sha512-bLL69sKtd25w7p1nvg9pigE4gtKVpGTPojBFLMkGHXuUgap2sLqQt2qUnqmVCDfzGUL0DRNZP+1prIZJbMeAXg== + version "16.4.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.14.tgz#e27705ec2278b2355bd59f1952de23a152b9f208" + integrity sha512-GZpnVRNtv7sHDXIFncsERt+qvj4rzAgRQtnvzk3Z7OVNtThD2dHXYCMDNc80D5mv4JE278qo8biZCwcmkbdpqw== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1980,37 +1978,37 @@ "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" camelcase "^5.0.0" -"@vue/compiler-core@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.5.tgz#298f905b6065d6d81ff63756f98c60876b393c87" - integrity sha512-TXBhFinoBaXKDykJzY26UEuQU1K07FOp/0Ie+OXySqqk0bS0ZO7Xvl7UmiTUPYcLrWbxWBR7Bs/y55AI0MNc2Q== +"@vue/compiler-core@3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.2.tgz#8d3e29f129579ed9b14f48af735fd8d95f248504" + integrity sha512-QhCI0ZU5nAR0LMcLgzW3v75374tIrHGp8XG5CzJS7Nsy+iuignbE4MZ2XJfh5TGIrtpuzfWA4eTIfukZf/cRdg== dependencies: "@babel/parser" "^7.12.0" "@babel/types" "^7.12.0" - "@vue/shared" "3.1.5" + "@vue/shared" "3.2.2" estree-walker "^2.0.1" source-map "^0.6.1" -"@vue/compiler-dom@3.1.5", "@vue/compiler-dom@^3.0.7": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.5.tgz#cbb97020c62a5faa3fbc2a97916bd98041ac9856" - integrity sha512-ZsL3jqJ52OjGU/YiT/9XiuZAmWClKInZM2aFJh9gnsAPqOrj2JIELMbkIFpVKR/CrVO/f2VxfPiiQdQTr65jcQ== +"@vue/compiler-dom@3.2.2", "@vue/compiler-dom@^3.0.7": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.2.tgz#26e198498746c53047c3744d26fc95e670692ab7" + integrity sha512-ggcc+NV/ENIE0Uc3TxVE/sKrhYVpLepMAAmEiQ047332mbKOvUkowz4TTFZ+YkgOIuBOPP0XpCxmCMg7p874mA== dependencies: - "@vue/compiler-core" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/compiler-core" "3.2.2" + "@vue/shared" "3.2.2" "@vue/compiler-sfc@^3.0.7": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.5.tgz#e61e54f3a963b0f4a8e523fbb8632390dc52b0d6" - integrity sha512-mtMY6xMvZeSRx9MTa1+NgJWndrkzVTdJ1pQAmAKQuxyb5LsHVvrgP7kcQFvxPHVpLVTORbTJWHaiqoKrJvi1iA== + version "3.2.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.2.tgz#5b7b13b07689be8e4880d856f72d1be500785be9" + integrity sha512-hrtqpQ5L6IPn5v7yVRo7uvLcQxv0z1+KBjZBWMBOcrXz4t+PKUxU/SWd6Tl9T8FDmYlunzKUh6lcx+2CLo6f5A== dependencies: "@babel/parser" "^7.13.9" "@babel/types" "^7.13.0" "@types/estree" "^0.0.48" - "@vue/compiler-core" "3.1.5" - "@vue/compiler-dom" "3.1.5" - "@vue/compiler-ssr" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/compiler-core" "3.2.2" + "@vue/compiler-dom" "3.2.2" + "@vue/compiler-ssr" "3.2.2" + "@vue/shared" "3.2.2" consolidate "^0.16.0" estree-walker "^2.0.1" hash-sum "^2.0.0" @@ -2022,13 +2020,13 @@ postcss-selector-parser "^6.0.4" source-map "^0.6.1" -"@vue/compiler-ssr@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.5.tgz#f068652774293256a1e53084bed48a67682df9d2" - integrity sha512-CU5N7Di/a4lyJ18LGJxJYZS2a8PlLdWpWHX9p/XcsjT2TngMpj3QvHVRkuik2u8QrIDZ8OpYmTyj1WDNsOV+Dg== +"@vue/compiler-ssr@3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.2.tgz#633bb8e01f00a969c35ca12db32be7fe4c7185a9" + integrity sha512-rVl1agMFhdEN3Go0bCriXo+3cysxKIuRP0yh1Wd8ysRrKfAmokyDhUA8PrGSq2Ymj/LdZTh+4OKfj3p2+C+hlA== dependencies: - "@vue/compiler-dom" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/compiler-dom" "3.2.2" + "@vue/shared" "3.2.2" "@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.2.0": version "3.2.2" @@ -2047,16 +2045,16 @@ prettier "^1.18.2" "@vue/composition-api@^1.0.4": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.0.6.tgz#a28e73b6a0939d446badfbde1b532bfdf3bb7c1d" - integrity sha512-P4abcx92znWAG6HaB4p5zCwGVDptfiOaV3kDSwA9Zwc0Nb4urDh5RvCQYEE8uE2SDQxqcR4r2ijWW5gzfVIUwQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.1.0.tgz#484e7e3bbc516ad6a9b0a9967d316325c239539e" + integrity sha512-9TMJliVFByhfEJjqM+Ymu9ImVrUnrT/Y2S7Fz8EsQ1MbggbE0o8Ohvk9XqK2UIOp8w68f7goVX+6h6O78iRsJQ== dependencies: tslib "^2.3.0" -"@vue/shared@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.5.tgz#74ee3aad995d0a3996a6bb9533d4d280514ede03" - integrity sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA== +"@vue/shared@3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.2.tgz#6104185ebd57af5a14ac51c1f491b2205fc24054" + integrity sha512-dvYb318tk9uOzHtSaT3WII/HscQSIRzoCZ5GyxEb3JlkEXASpAUAQwKnvSe2CudnF8XHFRTB7VITWSnWNLZUtA== "@webassemblyjs/ast@1.9.0": version "1.9.0" @@ -3448,7 +3446,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001235, caniuse-lite@^1.0.30001243, caniuse-lite@^1.0.30001248: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001243, caniuse-lite@^1.0.30001248, caniuse-lite@^1.0.30001249: version "1.0.30001249" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz#90a330057f8ff75bfe97a94d047d5e14fabb2ee8" integrity sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw== @@ -3537,7 +3535,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1: +chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -3722,9 +3720,9 @@ color@^3.0.0, color@^3.1.3: color-string "^1.6.0" colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== comma-separated-tokens@^1.0.0: version "1.0.8" @@ -3801,7 +3799,7 @@ connect@^3.7.0: parseurl "~1.3.3" utils-merge "1.0.1" -consola@^2.10.0, consola@^2.15.0, consola@^2.15.3, consola@^2.6.0, consola@^2.9.0: +consola@^2.10.0, consola@^2.15.0, consola@^2.15.3, consola@^2.6.0: version "2.15.3" resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== @@ -3877,7 +3875,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.14.0, core-js-compat@^3.16.0: +core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.16.1: version "3.16.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.1.tgz#c44b7caa2dcb94b673a98f27eee1c8312f55bc2d" integrity sha512-NHXQXvRbd4nxp9TEmooTJLUf94ySUG6+DSsscBpTftN1lQLQ4LjnWvc7AoIo4UjDsFF3hB8Uh5LLCRRdaiT5MQ== @@ -4535,9 +4533,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.793: - version "1.3.799" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.799.tgz#6e9911b25e7ecd5aa1e54dcb68f82a3e02d00f09" - integrity sha512-V2rbYWdGvSqrg+95KjkVuSi41bGfrhrOzjl1tSi2VLnm0mRe3FsSvhiqidSiSll9WiMhrQAhpDcW/wcqK3c+Yw== + version "1.3.802" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.802.tgz#0afa989321de3e904ac653ee79e0d642883731a1" + integrity sha512-dXB0SGSypfm3iEDxrb5n/IVKeX4uuTnFHdve7v+yKJqNpEP0D4mjFJ8e1znmSR+OOVlVC+kDO6f2kAkTFXvJBg== elliptic@^6.5.3: version "6.5.4" @@ -4656,7 +4654,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.12.8, esbuild@^0.12.9: +esbuild@^0.12.16, esbuild@^0.12.8, esbuild@^0.12.9: version "0.12.19" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.19.tgz#ab849766705a5093df5acd8ec2f6ba2159a38a6c" integrity sha512-5NuT1G6THW7l3fsSCDkcPepn24R0XtyPjKoqKHD8LfhqMXzCdz0mrS9HgO6hIhzVT7zt0T+JGbzCqF5AH8hS9w== @@ -6621,11 +6619,6 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -7184,7 +7177,7 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdist@^0.3.1: +mkdist@^0.3.1, mkdist@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/mkdist/-/mkdist-0.3.3.tgz#d36f5e068d711dee6d3ac8993bf82672abc1321b" integrity sha512-PDKLTflQHifHwbyDQxSqtT9jUThT2jgeRUnRdIF9tsFLLyoie+nYX12aLg2bKUKoBdluPVRL9kzv8h/nliH/kg== @@ -7246,9 +7239,9 @@ nan@^2.12.1: integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + version "3.1.24" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.24.tgz#d7ac20215f595c26d314ee5671169a27b609025f" + integrity sha512-WNhqqgD4qH7TQdU9ujXfFa/hQI5rOGGnZq+JRmz4JwMZFCgSZVquTq3ORUSv6IC+Y41ACBYV8a8J1kPkqGIiQg== nanomatch@^1.2.9: version "1.2.13" @@ -7315,11 +7308,11 @@ node-addon-api@^3.2.0: integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== node-emoji@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" - integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + version "1.11.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== dependencies: - lodash.toarray "^4.4.0" + lodash "^4.17.21" node-fetch@2.6.1, node-fetch@^2.6.1: version "2.6.1" @@ -7331,7 +7324,7 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-html-parser@^4.0.0: +node-html-parser@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-4.1.3.tgz#993f42273c97bc0b1171f3c7e4d2f7959defc96a" integrity sha512-jWFd9TBxDJ0hXkvPKxiWXy4R87ZoIjYj5P2twbef3q/E4vJyFt8TTRQ68ssHYW5Aozwth4SWHOPT6yfDd/gzQQ== @@ -7374,9 +7367,9 @@ node-object-hash@^1.2.0: integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== node-releases@^1.1.73: - version "1.1.73" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" - integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== + version "1.1.74" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.74.tgz#e5866488080ebaa70a93b91144ccde06f3c3463e" + integrity sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw== node-res@^5.0.1: version "5.0.1" @@ -7475,25 +7468,25 @@ number-is-nan@^1.0.0: integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nuxt-edge@^2.16.0-27132492.cdbea391: - version "2.16.0-27142012.71424974" - resolved "https://registry.yarnpkg.com/nuxt-edge/-/nuxt-edge-2.16.0-27142012.71424974.tgz#40d8fa24f7a88e972c52df57f277df22e5e4444c" - integrity sha512-UlrDugW7DLuq0MwnrSOM0Vk6/PBA/30PV0MM9zXjRFH0r+M7bjoMQi8oyF/YkzpRimPCSqg4drJj/PMVmBr3zw== + version "2.16.0-27144894.20e7b99e" + resolved "https://registry.yarnpkg.com/nuxt-edge/-/nuxt-edge-2.16.0-27144894.20e7b99e.tgz#06c58ea22703490e5936264a9247714c285d29ee" + integrity sha512-H4EXsMN/50Sbo9lg8P2+O9OXsuyW40yP48wLTnyoE8LuXK5VzaRmGWsvOYjRL76f3ki+O6wWgziShohi2fUqew== dependencies: - "@nuxt/babel-preset-app-edge" "2.16.0-27142012.71424974" - "@nuxt/builder-edge" "2.16.0-27142012.71424974" - "@nuxt/cli-edge" "2.16.0-27142012.71424974" - "@nuxt/components" "^2.1.8" - "@nuxt/config-edge" "2.16.0-27142012.71424974" - "@nuxt/core-edge" "2.16.0-27142012.71424974" - "@nuxt/generator-edge" "2.16.0-27142012.71424974" + "@nuxt/babel-preset-app-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/builder-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/cli-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/components" "^2.2.0" + "@nuxt/config-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/core-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/generator-edge" "2.16.0-27144894.20e7b99e" "@nuxt/loading-screen" "^2.0.4" "@nuxt/opencollective" "^0.3.2" - "@nuxt/server-edge" "2.16.0-27142012.71424974" + "@nuxt/server-edge" "2.16.0-27144894.20e7b99e" "@nuxt/telemetry" "^1.3.6" - "@nuxt/utils-edge" "2.16.0-27142012.71424974" - "@nuxt/vue-app-edge" "2.16.0-27142012.71424974" - "@nuxt/vue-renderer-edge" "2.16.0-27142012.71424974" - "@nuxt/webpack-edge" "2.16.0-27142012.71424974" + "@nuxt/utils-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/vue-app-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/vue-renderer-edge" "2.16.0-27144894.20e7b99e" + "@nuxt/webpack-edge" "2.16.0-27144894.20e7b99e" nuxt-extend@^0.1.0: version "0.1.0" @@ -7678,7 +7671,7 @@ opener@1.5.2, opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -optimize-css-assets-webpack-plugin@^5.0.6: +optimize-css-assets-webpack-plugin@^5.0.8: version "5.0.8" resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== @@ -7986,7 +7979,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pnp-webpack-plugin@^1.6.4: +pnp-webpack-plugin@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== @@ -8739,9 +8732,9 @@ preact@^10.0.0: integrity sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ== prebuild-install@^6.1.2: - version "6.1.3" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.3.tgz#8ea1f9d7386a0b30f7ef20247e36f8b2b82825a2" - integrity sha512-iqqSR84tNYQUQHRXalSKdIaM8Ov1QxOVuBNWI7+BzZWv6Ih9k75wOnH1rGQ9WWTaaLkTpxWKIciOF0KyfM74+Q== + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== dependencies: detect-libc "^1.0.3" expand-template "^2.0.3" @@ -9219,7 +9212,7 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== @@ -9551,10 +9544,10 @@ rollup-plugin-esbuild@^4.5.0: joycon "^3.0.1" jsonc-parser "^3.0.0" -rollup@^2.35.1, rollup@^2.38.5, rollup@^2.52.0: - version "2.56.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.1.tgz#f29dbc04a5d532dfa904f76b62395f359506211e" - integrity sha512-KkrsNjeiTfGJMUFBi/PNfj3fnt70akqdoNXOjlzwo98uA1qrlkmgt6SGaK5OwhyDYCVnJb6jb2Xa2wbI47P4Nw== +rollup@^2.35.1, rollup@^2.38.5, rollup@^2.52.0, rollup@^2.55.0: + version "2.56.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.2.tgz#a045ff3f6af53ee009b5f5016ca3da0329e5470f" + integrity sha512-s8H00ZsRi29M2/lGdm1u8DJpJ9ML8SUOpVVBd33XNeEeL3NVaTiUcSBHzBdF3eAyR0l7VSpsuoVUGrRHq7aPwQ== optionalDependencies: fsevents "~2.3.2" @@ -9741,7 +9734,7 @@ serialize-javascript@^6.0.0: dependencies: randombytes "^2.1.0" -serve-placeholder@^1.2.3: +serve-placeholder@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-1.2.4.tgz#513eac9c435272c7fe9a86612c852ae9b1467fd4" integrity sha512-jWD9cZXLcr4vHTTL5KEPIUBUYyOWN/z6v/tn0l6XxFhi9iqV3Fc5Y1aFeduUyz+cx8sALzGCUczkPfeOlrq9jg== @@ -10355,9 +10348,9 @@ tar-stream@^2.0.0, tar-stream@^2.1.4: readable-stream "^3.1.1" tar@^6.0.2: - version "6.1.6" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.6.tgz#c23d797b0a1efe5d479b1490805c5443f3560c5d" - integrity sha512-oaWyu5dQbHaYcyZCTfyPpC+VmI62/OM2RTUYavTk1MDr1cwW5Boi3baeYQKiZbY2uSQJGr+iMOzb/JFxLrft+g== + version "6.1.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.8.tgz#4fc50cfe56511c538ce15b71e05eebe66530cbd4" + integrity sha512-sb9b0cp855NbkMJcskdSYA7b11Q8JsX4qe4pyUAfHp+Y6jBjJeek2ZVlwEfWayshEIwlIzXx0Fain3QG9JPm2A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -10612,7 +10605,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.3.2: +typescript@^4.3.2, typescript@^4.3.5: version "4.3.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== @@ -10679,6 +10672,33 @@ unbuild@^0.3.2: untyped "^0.2.5" upath "^2.0.1" +unbuild@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/unbuild/-/unbuild-0.4.2.tgz#a6583c75c378baef29fbbb40ce922d4f9c675db3" + integrity sha512-hyxmHXaa61BZeh1ZLpY0jJkRUrqpPJcBz7f2NfzerfSipE/F5G+0W62uNkph6v98imLxCteAmzQq66e7pbIxRQ== + dependencies: + "@rollup/plugin-alias" "^3.1.4" + "@rollup/plugin-commonjs" "^19.0.1" + "@rollup/plugin-json" "^4.1.0" + "@rollup/plugin-node-resolve" "^13.0.2" + chalk "^4.1.1" + consola "^2.15.3" + defu "^5.0.0" + esbuild "^0.12.16" + jiti "^1.11.0" + mkdirp "^1.0.4" + mkdist "^0.3.3" + mri "^1.1.6" + pretty-bytes "^5.6.0" + rimraf "^3.0.2" + rollup "^2.55.0" + rollup-plugin-dts "^3.0.2" + rollup-plugin-esbuild "^4.5.0" + scule "^0.2.1" + typescript "^4.3.5" + untyped "^0.2.8" + upath "^2.0.1" + unbzip2-stream@1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" @@ -10925,7 +10945,7 @@ unstorage@^0.2.3: ufo "^0.7.5" ws "^7.4.5" -untyped@^0.2.5: +untyped@^0.2.5, untyped@^0.2.7, untyped@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/untyped/-/untyped-0.2.8.tgz#14a15ab7455004dc2da9972ccbadb237bbee5d7b" integrity sha512-SCXbOqy1sT56l5y7A4LVkXTBBMdTNneAoVrqwYlpXdK85QmOPKrPUGlitejsDK0YUpWSf1KFZWAj8CH7KpuSyg== @@ -11180,7 +11200,7 @@ vue-inbrowser-compiler-utils@^4.40.0: dependencies: camelcase "^5.3.1" -vue-loader@^15.9.7: +vue-loader@^15.9.8: version "15.9.8" resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61" integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog== @@ -11203,12 +11223,12 @@ vue-no-ssr@^1.1.1: resolved "https://registry.yarnpkg.com/vue-no-ssr/-/vue-no-ssr-1.1.1.tgz#875f3be6fb0ae41568a837f3ac1a80eaa137b998" integrity sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== -vue-router@^3.5.1: +vue-router@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c" integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ== -vue-server-renderer@^2.6.13: +vue-server-renderer@^2.6.14: version "2.6.14" resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz#c8bffff152df6b47b858818ef8d524d2fc351654" integrity sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA== @@ -11230,7 +11250,7 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.3: hash-sum "^1.0.2" loader-utils "^1.0.2" -vue-template-compiler@^2.6.12, vue-template-compiler@^2.6.13, vue-template-compiler@^2.6.14: +vue-template-compiler@^2.6.14: version "2.6.14" resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== @@ -11243,7 +11263,7 @@ vue-template-es2015-compiler@^1.9.0, vue-template-es2015-compiler@^1.9.1: resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== -vue@^2.6.13, vue@^2.6.14: +vue@^2.6.14: version "2.6.14" resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== diff --git a/package.json b/package.json index 953238d8c5..9de3de1ae3 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,6 @@ "build": "FORCE_COLOR=1 lerna run prepack --stream --no-prefix", "stub": "lerna run prepack -- --stub", "release": "yarn && yarn lint && FORCE_COLOR=1 lerna publish -m \"chore: release\" && yarn stub", - "docs": "yarn nuxt dev docs", "nuxi": "./node_modules/.bin/nuxi", "nu": "./node_modules/.bin/nuxi", "nuxt": "./node_modules/.bin/nuxi", diff --git a/packages/kit/.gitignore b/packages/kit/.gitignore index 1c12cf9bd4..c4d83b97fd 100644 --- a/packages/kit/.gitignore +++ b/packages/kit/.gitignore @@ -1 +1 @@ -schema +/schema diff --git a/packages/kit/build.config.ts b/packages/kit/build.config.ts index 4449452f5f..74c2c95201 100644 --- a/packages/kit/build.config.ts +++ b/packages/kit/build.config.ts @@ -9,7 +9,7 @@ export default defineBuildConfig({ name: 'config', builder: 'untyped', defaults: { - rootDir: '' + rootDir: '/project/' } }, 'src/index' diff --git a/packages/kit/src/config/schema/_app.ts b/packages/kit/src/config/schema/_app.ts index 419d15701f..ec6654d966 100644 --- a/packages/kit/src/config/schema/_app.ts +++ b/packages/kit/src/config/schema/_app.ts @@ -11,6 +11,7 @@ export default { * * @see [vue@2 Documentation](https://vuejs.org/v2/api/#Global-Config) * @see [vue@3 Documentation](https://v3.vuejs.org/api/application-config.html) + * @version 2 */ config: { silent: { $resolve: (val, get) => val ?? !get('dev') }, @@ -20,6 +21,7 @@ export default { /** * Nuxt App configuration. + * @version 2 */ app: { $resolve: (val, get) => { @@ -49,6 +51,7 @@ export default { * * * ``` + * @version 2 */ appTemplatePath: { $resolve: (val, get) => { @@ -64,7 +67,9 @@ export default { /** * Enable or disable vuex store. - * By default is enbled if there is store / directory + * + * By default it is enabled if there is a `store/` directory + * @version 2 */ store: { $resolve: (val, get) => val !== false && @@ -77,6 +82,7 @@ export default { * Options to pass directly to `vue-meta`. * * @see [documentation](https://vue-meta.nuxtjs.org/api/#plugin-options). + * @version 2 */ vueMeta: null, @@ -84,20 +90,22 @@ export default { * Set default configuration for `` on every page. * * @see [documentation](https://vue-meta.nuxtjs.org/api/#metainfo-properties) for specifics. + * @version 2 */ head: { - /** Each item in the array maps to a newly-created element, where object properties map to attributes. */ + /** Each item in the array maps to a newly-created `` element, where object properties map to attributes. */ meta: [], - /** Each item in the array maps to a newly-created element, where object properties map to attributes. */ + /** Each item in the array maps to a newly-created `` element, where object properties map to attributes. */ link: [], - /** Each item in the array maps to a newly-created * ``` + * + * @version 2 + * @version 3 */ alias: { $resolve: (val, get) => ({ @@ -471,18 +534,21 @@ export default { * ignorecase: false * } * ``` + * @version 2 */ ignoreOptions: undefined, /** * Any file in `pages/`, `layouts/`, `middleware/` or `store/` will be ignored during * building if its filename starts with the prefix specified by `ignorePrefix`. + * @version 2 */ ignorePrefix: '-', /** * More customizable than `ignorePrefix`: all files matching glob patterns specified * inside the `ignore` array will be ignored in building. + * @version 2 */ ignore: { $resolve: (val, get) => [ @@ -504,6 +570,7 @@ export default { * ```js * watch: ['~/custom/*.js'] * ``` + * @version 2 */ watch: { $resolve: (val, get) => { @@ -516,6 +583,8 @@ export default { /** * The watchers property lets you overwrite watchers configuration in your `nuxt.config`. + * @version 2 + * @version 3 */ watchers: { /** An array of event types, which, when received, will cause the watcher to restart. */ @@ -542,15 +611,18 @@ export default { * Your preferred code editor to launch when debugging. * * @see [documentation](https://github.com/yyx990803/launch-editor#supported-editors) + * @version 2 */ editor: undefined, /** - * Hooks are listeners to Nuxt events that are typically used in modules, but are also available in `nuxt.config`. + * Hooks are listeners to Nuxt events that are typically used in modules, + * but are also available in `nuxt.config`. * * Internally, hooks follow a naming pattern using colons (e.g., build:done). * - * For ease of configuration, you can also structure them as an hierarchical object in `nuxt.config` (as below). + * For ease of configuration, you can also structure them as an hierarchical + * object in `nuxt.config` (as below). * * @example * ```js @@ -570,6 +642,8 @@ export default { * } * } * ``` + * @version 2 + * @version 3 */ hooks: null, @@ -595,6 +669,8 @@ export default { * } * } * ``` + * @version 2 + * @version 3 */ privateRuntimeConfig: {}, @@ -617,6 +693,8 @@ export default { * } * } * ``` + * @version 2 + * @version 3 */ publicRuntimeConfig: { app: { diff --git a/packages/kit/src/config/schema/build.ts b/packages/kit/src/config/schema/build.ts index c0f2810773..245eb9a5df 100644 --- a/packages/kit/src/config/schema/build.ts +++ b/packages/kit/src/config/schema/build.ts @@ -8,6 +8,7 @@ export default { * It is enabled by default when a CI or test environment is detected. * * @see [std-env](https://github.com/unjs/std-env) + * @version 2 */ quiet: Boolean(env.ci || env.test), @@ -24,6 +25,7 @@ export default { * analyzerMode: 'static' * } * ``` + * @version 2 */ analyze: false, @@ -33,6 +35,7 @@ export default { * It is normally enabled by CLI argument `--profile`. * * @see [webpackbar](https://github.com/unjs/webpackbar#profile) + * @version 2 */ profile: process.argv.includes('--profile'), @@ -46,10 +49,14 @@ export default { * * @example * ```js - * extractCSS: true, - * // or - * extractCSS: { - * ignoreOrder: true + * export default { + * build: { + * extractCSS: true, + * // or + * extractCSS: { + * ignoreOrder: true + * } + * } * } * ``` * @@ -61,25 +68,33 @@ export default { * * @example * ```js - * extractCSS: true, - * optimization: { - * splitChunks: { - * cacheGroups: { - * styles: { - * name: 'styles', - * test: /\.(css|vue)$/, - * chunks: 'all', - * enforce: true + * export default { + * build: { + * extractCSS: true, + * optimization: { + * splitChunks: { + * cacheGroups: { + * styles: { + * name: 'styles', + * test: /\.(css|vue)$/, + * chunks: 'all', + * enforce: true + * } + * } * } * } * } * } * ``` + * @version 2 + * @version 3 webpack only */ extractCSS: false, /** * Enables CSS source map support (defaults to true in development) + * @version 2 + * @version 3 webpack only */ cssSourceMap: { $resolve: (val, get) => val ?? get('dev') @@ -87,6 +102,7 @@ export default { /** * Creates special webpack bundle for SSR renderer. It is normally not necessary to change this value. + * @version 2 */ ssr: undefined, @@ -94,6 +110,7 @@ export default { * Enable [thread-loader](https://github.com/webpack-contrib/thread-loader#thread-loader) when building app with webpack. * * @warning This is an unstable feature. + * @version 2 */ parallel: { $resolve: (val, get) => get('build.extractCSS') ? false : Boolean(val) @@ -104,6 +121,7 @@ export default { * and [`cache-loader`](https://github.com/webpack-contrib/cache-loader#cache-loader) * * @warning This is an unstable feature. + * @version 2 */ cache: false, @@ -118,6 +136,7 @@ export default { * @note You can enable standalone bundling by passing `--standalone` via the command line. * * @see [context](https://github.com/nuxt/nuxt.js/pull/4661) + * @version 2 */ standalone: false, @@ -135,7 +154,9 @@ export default { * publicPath: process.env.PUBLIC_PATH || 'https://cdn.nuxtjs.org' * } * ``` - * */ + * @version 2 + * @version 3 + */ publicPath: { $resolve: (val, get) => { if (hasProtocol(val, true) && get('dev')) { val = null } @@ -147,6 +168,8 @@ export default { * The polyfill library to load to provide URL and URLSearchParams. * * Defaults to `'url'` ([see package](https://www.npmjs.com/package/url)). + * @version 2 + * @version 3 webpack only */ serverURLPolyfill: 'url', @@ -166,6 +189,8 @@ export default { * chunk: ({ isDev }) => (isDev ? '[name].js' : '[id].[contenthash].js') * } * ``` + * @version 2 + * @version 3 webpack only */ filenames: { app: ({ isDev, isModern }) => isDev ? `[name]${isModern ? '.modern' : ''}.js` : `[contenthash:7]${isModern ? '.modern' : ''}.js`, @@ -178,6 +203,8 @@ export default { /** * Customize the options of Nuxt's integrated webpack loaders. + * @version 2 + * @version 3 webpack only */ loaders: { $resolve: (val, get) => { @@ -230,6 +257,7 @@ export default { /** * @deprecated Use [style-resources-module](https://github.com/nuxt-community/style-resources-module/) + * @version 2 */ styleResources: {}, @@ -247,6 +275,8 @@ export default { * }) * ] * ``` + * @version 2 + * @version 3 webpack only */ plugins: [], @@ -259,6 +289,8 @@ export default { * * @note Enabling sourceMap will leave `//# sourceMappingURL` linking comment at * the end of each output file if webpack `config.devtool` is set to `source-map`. + * @version 2 + * @version 3 webpack only */ terser: {}, @@ -266,11 +298,14 @@ export default { * Enables the [HardSourceWebpackPlugin](https://github.com/mzgoddard/hard-source-webpack-plugin) for improved caching. * * @warning unstable + * @version 2 */ hardSource: false, /** * Hard-replaces `typeof process`, `typeof window` and `typeof document` to tree-shake bundle. + * @version 2 + * @version 3 webpack only */ aggressiveCodeRemoval: false, @@ -280,6 +315,8 @@ export default { * Defaults to true when `extractCSS` is enabled. * * @see [optimize-css-assets-webpack-plugin documentation](https://github.com/NMFR/optimize-css-assets-webpack-plugin). + * @version 2 + * @version 3 webpack only */ optimizeCSS: { $resolve: (val, get) => val ?? (get('build.extractCSS') ? {} : false) @@ -287,6 +324,8 @@ export default { /** * Configure [webpack optimization](https://webpack.js.org/configuration/optimization/). + * @version 2 + * @version 3 webpack only */ optimization: { runtimeChunk: 'single', @@ -305,6 +344,7 @@ export default { * Whether to split code for `layout`, `pages` and `commons` chunks. * * Commons libs include `vue`, `vue-loader`, `vue-router`, `vuex`, etc. + * @version 2 */ splitChunks: { layouts: false, @@ -315,6 +355,8 @@ export default { /** * Nuxt will automatically detect the current version of `core-js` in your project (`'auto'`), * or you can specify which version you want to use (`2` or `3`). + * @version 2 + * @version 3 webpack only */ corejs: 'auto', @@ -325,6 +367,8 @@ export default { * [babel options](https://babeljs.io/docs/en/options). * * @note `.babelrc` is ignored by default. + * @version 2 + * @version 3 webpack only */ babel: { configFile: false, @@ -340,37 +384,49 @@ export default { /** * The Babel presets to be applied. * - * **Note**: The presets configured here will be applied to both the client and the server + * @note The presets configured here will be applied to both the client and the server * build. The target will be set by Nuxt accordingly (client/server). If you want to configure * the preset differently for the client or the server build, please use presets as a function. * - * **Warning**: It is highly recommended to use the default preset instead customizing. + * @warning It is highly recommended to use the default preset instead customizing. * * @example * ```js - * presets({ isServer }, [ preset, options ]) { - * // change options directly - * options.targets = isServer ? ... : ... - * options.corejs = ... - * // return nothing + * export default { + * build: { + * babel: { + * presets({ isServer }, [ preset, options ]) { + * // change options directly + * options.targets = isServer ? '...' : '...' + * options.corejs = '...' + * // return nothing + * } + * } + * } * } * ``` * * @example * ```js - * presets({ isServer }, [preset, options]) { - * return [ - * [ - * preset, - * { - * targets: isServer ? ... : ..., - * ...options + * export default { + * build: { + * babel: { + * presets({ isServer }, [preset, options]) { + * return [ + * [ + * preset, + * { + * targets: isServer ? '...' : '...', + * ...options + * } + * ], + * [ + * // Other presets + * ] + * ] * } - * ], - * [ - * // Other presets - * ] - * ] + * } + * } * } * ``` */ @@ -391,6 +447,8 @@ export default { * ```js transpile: [({ isLegacy }) => isLegacy && 'ky'] * ``` + * @version 2 + * @version 3 webpack only */ transpile: { $resolve: val => [].concat(val).filter(Boolean) @@ -398,6 +456,8 @@ export default { /** * Customize PostCSS Loader plugins. + * @version 2 + * @version 3 webpack only */ postcss: { preset: { @@ -406,25 +466,30 @@ export default { } }, + /** @version 2 */ html: { /** * Configuration for the html-minifier plugin used to minify HTML files created * during the build process (will be applied for all modes). * - * **Attention**: If you make changes, they won't be merged with the defaults! + * @warning If you make changes, they won't be merged with the defaults! * * @example * ```js - * minify: { - * collapseBooleanAttributes: true, - * decodeEntities: true, - * minifyCSS: true, - * minifyJS: true, - * processConditionalComments: true, - * removeEmptyAttributes: true, - * removeRedundantAttributes: true, - * trimCustomFragments: true, - * useShortDoctype: true + * export default { + * html: { + * minify: { + * collapseBooleanAttributes: true, + * decodeEntities: true, + * minifyCSS: true, + * minifyJS: true, + * processConditionalComments: true, + * removeEmptyAttributes: true, + * removeRedundantAttributes: true, + * trimCustomFragments: true, + * useShortDoctype: true + * } + * } * } * ``` */ @@ -441,7 +506,10 @@ export default { } }, - /** Allows setting a different app template (other than `@nuxt/vue-app`) */ + /** + * Allows setting a different app template (other than `@nuxt/vue-app`) + * @version 2 + */ template: undefined, /** * You can provide your own templates which will be rendered based @@ -462,6 +530,8 @@ export default { * } * ] * ``` + * @version 2 + * @version 3 */ templates: [], @@ -474,22 +544,35 @@ export default { * ```js watch: ['~/.nuxt/support.js'] * ``` + * @version 2 */ watch: [], - /** See [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) for available options. */ + /** + * See [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) for available options. + * @version 2 + * @version 3 webpack only + */ devMiddleware: { stats: 'none' }, - /** See [webpack-hot-middleware](https://github.com/webpack-contrib/webpack-hot-middleware) for available options. */ + /** + * See [webpack-hot-middleware](https://github.com/webpack-contrib/webpack-hot-middleware) for available options. + * @version 2 + * @version 3 webpack only + */ hotMiddleware: {}, + /** @version 2 */ vendor: { $meta: { deprecated: 'vendor has been deprecated since nuxt 2' } }, - /** Set to `'none'` or `false` to disable stats printing out after a build. */ + /** + * Set to `'none'` or `false` to disable stats printing out after a build. + * @version 2 + */ stats: { $resolve: (val, get) => (val === 'none' || get('build.quiet')) ? false : val, excludeAssets: [ @@ -498,13 +581,27 @@ export default { /vue-ssr-(client|modern)-manifest.json/ ] }, - /** Set to `false` to disable the overlay provided by [FriendlyErrorsWebpackPlugin](https://github.com/nuxt/friendly-errors-webpack-plugin) */ + /** + * Set to `false` to disable the overlay provided by [FriendlyErrorsWebpackPlugin](https://github.com/nuxt/friendly-errors-webpack-plugin) + * @version 2 + * @version 3 webpack only + */ friendlyErrors: true, - /** Additional extensions (beyond `['vue', 'js']` to support in `pages/`, `layouts/`, `middleware/`, etc.) */ + /** + * Additional extensions (beyond `['vue', 'js']` to support in `pages/`, `layouts/`, `middleware/`, etc.) + * @version 2 + */ additionalExtensions: [], - /** Filters to hide build warnings. */ + /** + * Filters to hide build warnings. + * @version 2 + * @version 3 webpack only + */ warningIgnoreFilters: [], - /** Set to true to scan files within symlinks in the build (such as within `pages/`). */ + /** + * Set to true to scan files within symlinks in the build (such as within `pages/`). + * @version 2 + */ followSymlinks: false } diff --git a/packages/kit/src/config/schema/cli.ts b/packages/kit/src/config/schema/cli.ts index d3bef5179b..e3609e4f7f 100644 --- a/packages/kit/src/config/schema/cli.ts +++ b/packages/kit/src/config/schema/cli.ts @@ -1,11 +1,13 @@ export default { /** * Add a message to the CLI banner by adding a string to this array. + * @version 2 */ badgeMessages: [], /** * Change the color of the 'Nuxt.js' title in the CLI banner. + * @version 2 */ bannerColor: 'green' } diff --git a/packages/kit/src/config/schema/generate.ts b/packages/kit/src/config/schema/generate.ts index 6d56a6ce32..3b7b6462b2 100644 --- a/packages/kit/src/config/schema/generate.ts +++ b/packages/kit/src/config/schema/generate.ts @@ -1,6 +1,9 @@ import { resolve } from 'upath' import { joinURL } from 'ufo' +/** + * @version 2 + */ export default { /** * Directory name that holds all the assets and generated pages for a `static` build. @@ -27,28 +30,40 @@ export default { * * @example * ```js - * async routes() { - * const res = await axios.get('https://my-api/users') - * return res.data.map(user => ({ route: '/users/' + user.id, payload: user })) + * export default { + * generate: { + * async routes() { + * const res = await axios.get('https://my-api/users') + * return res.data.map(user => ({ route: '/users/' + user.id, payload: user })) + * } + * } * } - * // or - * routes(callback) { - * axios - * .get('https://my-api/users') - * .then(res => { - * const routes = res.data.map(user => '/users/' + user.id) - * callback(null, routes) - * }) - * .catch(callback) + * ``` + * Or instead: + * ```js + * export default { + * generate: { + * routes(callback) { + * axios + * .get('https://my-api/users') + * .then(res => { + * const routes = res.data.map(user => '/users/' + user.id) + * callback(null, routes) + * }) + * .catch(callback) + * } + * } * } * ``` * * If `routes()` returns a payload, it can be accessed from the Nuxt context. * @example * ```js - * async asyncData ({ params, error, payload }) { - * if (payload) return { user: payload } - * else return { user: await backend.fetchUser(params.id) } + * export default { + * async asyncData ({ params, error, payload }) { + * if (payload) return { user: payload } + * else return { user: await backend.fetchUser(params.id) } + * } * } * ``` */ @@ -103,7 +118,7 @@ export default { * * If set to true, the filename will be `404.html`. * * If you provide a string as a value, it will be used instead. * - * **Note**: Multiple services (e.g. Netlify) detect a `404.html` automatically. If + * @note Multiple services (e.g. Netlify) detect a `404.html` automatically. If * you configure your web server on your own, please consult its documentation * to find out how to set up an error page (and set it to the 404.html file) */ diff --git a/packages/kit/src/config/schema/messages.ts b/packages/kit/src/config/schema/messages.ts index 530740137d..8bc2beb420 100644 --- a/packages/kit/src/config/schema/messages.ts +++ b/packages/kit/src/config/schema/messages.ts @@ -1,3 +1,6 @@ +/** + * @version 2 + */ export default { /** The text that displays on the Nuxt loading indicator when `ssr: false`. */ loading: 'Loading...', diff --git a/packages/kit/src/config/schema/render.ts b/packages/kit/src/config/schema/render.ts index 4bdfada308..32f74e66c9 100644 --- a/packages/kit/src/config/schema/render.ts +++ b/packages/kit/src/config/schema/render.ts @@ -1,3 +1,6 @@ +/** + * @version 2 + */ export default { /** * Use this option to customize the Vue SSR bundle renderer. @@ -78,7 +81,7 @@ export default { /** * Whether to add the router base to your static assets. * - * **Note**: some URL rewrites might not respect the prefix. + * @note some URL rewrites might not respect the prefix. * * @example * Assets: favicon.ico @@ -143,16 +146,20 @@ export default { * * @example * ```js - * csp: { - * hashAlgorithm: 'sha256', - * policies: { - * 'script-src': [ - * 'https://www.google-analytics.com', - * 'https://name.example.com' - * ], - * 'report-uri': ['https://report.example.com/report-csp-violations'] - * }, - * addMeta: true + * export default { + * render: { + * csp: { + * hashAlgorithm: 'sha256', + * policies: { + * 'script-src': [ + * 'https://www.google-analytics.com', + * 'https://name.example.com' + * ], + * 'report-uri': ['https://report.example.com/report-csp-violations'] + * }, + * addMeta: true + * } + * } * } * ``` * @@ -164,31 +171,35 @@ export default { * @example * ```js * // PRIMARY_HOSTS = `loc.example-website.com` - * csp: { - * reportOnly: true, - * hashAlgorithm: 'sha256', - * policies: { - * 'default-src': ["'self'"], - * 'img-src': ['https:', '*.google-analytics.com'], - * 'worker-src': ["'self'", `blob:`, PRIMARY_HOSTS, '*.logrocket.io'], - * 'style-src': ["'self'", "'unsafe-inline'", PRIMARY_HOSTS], - * 'script-src': [ - * "'self'", - * "'unsafe-inline'", - * PRIMARY_HOSTS, - * 'sentry.io', - * '*.sentry-cdn.com', - * '*.google-analytics.com', - * '*.logrocket.io' - * ], - * 'connect-src': [PRIMARY_HOSTS, 'sentry.io', '*.google-analytics.com'], - * 'form-action': ["'self'"], - * 'frame-ancestors': ["'none'"], - * 'object-src': ["'none'"], - * 'base-uri': [PRIMARY_HOSTS], - * 'report-uri': [ - * `https://sentry.io/api//security/?sentry_key=` - * ] + * export default { + * render: { + * csp: { + * reportOnly: true, + * hashAlgorithm: 'sha256', + * policies: { + * 'default-src': ["'self'"], + * 'img-src': ['https:', '*.google-analytics.com'], + * 'worker-src': ["'self'", `blob:`, PRIMARY_HOSTS, '*.logrocket.io'], + * 'style-src': ["'self'", "'unsafe-inline'", PRIMARY_HOSTS], + * 'script-src': [ + * "'self'", + * "'unsafe-inline'", + * PRIMARY_HOSTS, + * 'sentry.io', + * '*.sentry-cdn.com', + * '*.google-analytics.com', + * '*.logrocket.io' + * ], + * 'connect-src': [PRIMARY_HOSTS, 'sentry.io', '*.google-analytics.com'], + * 'form-action': ["'self'"], + * 'frame-ancestors': ["'none'"], + * 'object-src': ["'none'"], + * 'base-uri': [PRIMARY_HOSTS], + * 'report-uri': [ + * `https://sentry.io/api//security/?sentry_key=` + * ] + * } + * } * } * } * ``` @@ -206,7 +217,7 @@ export default { * This is independent of the `csp.policies` configuration and the complete set * of the defined policies will still be added to the HTTP response header. * - * **Note** CSP hashes will not be added as `` if `script-src` policy + * @note CSP hashes will not be added as `` if `script-src` policy * contains 'unsafe-inline'. This is due to browsers ignoring 'unsafe-inline' * if hashes are present. (Set option `unsafeInlineCompatibility` to true to * disable this behavior.) @@ -243,11 +254,15 @@ export default { * * @example * ```js - * fallback: { - * static: { - * // Avoid sending 404 for these extensions - * handlers: { - * '.js': false + * export default { + * render: { + * fallback: { + * static: { + * // Avoid sending 404 for these extensions + * handlers: { + * '.js': false + * } + * } * } * } * } diff --git a/packages/kit/src/config/schema/router.ts b/packages/kit/src/config/schema/router.ts index 0568cabe21..7e7c8c1bb3 100644 --- a/packages/kit/src/config/schema/router.ts +++ b/packages/kit/src/config/schema/router.ts @@ -4,7 +4,8 @@ export default { /** * Configure the router mode. * - * For server-side rendering it is not recommended to change it. + * For server-side rendering it is not recommended to change it./** + * @version 2 */ mode: 'history', @@ -14,6 +15,8 @@ export default { * * This can be useful if you need to serve Nuxt as a different context root, from * within a bigger web site. + * @version 2 + * @version 3 */ base: { $resolve: (val = '/') => withTrailingSlash(normalizeURL(val)) @@ -24,6 +27,7 @@ export default { $resolve: (_val, get) => typeof get('router.base') === 'string' }, + /** @version 2 */ routes: [], /** @@ -32,11 +36,13 @@ export default { * Imagine we have the page file `pages/posts/_id.vue`. Nuxt will generate the * route name programmatically, in this case `posts-id`. If you change the routeNameSplitter * config to `/` the name will change to `posts/id`. + * @version 2 */ routeNameSplitter: '-', /** * Set the default(s) middleware for every page of the application. + * @version 2 */ middleware: { $resolve: val => Array.isArray(val) ? val : [val].filter(Boolean) @@ -44,16 +50,19 @@ export default { /** * Globally configure `` default active class. + * @version 2 */ linkActiveClass: 'nuxt-link-active', /** * Globally configure `` default exact active class. + * @version 2 */ linkExactActiveClass: 'nuxt-link-exact-active', /** * Globally configure `` default prefetch class (feature disabled by default) + * @version 2 */ linkPrefetchedClass: false, @@ -62,13 +71,19 @@ export default { * * @example * ```js - * extendRoutes(routes, resolve) { - * routes.push({ - * name: 'custom', - * path: '*', - * component: resolve(__dirname, 'pages/404.vue') - * }) + * export default { + * router: { + * extendRoutes(routes, resolve) { + * routes.push({ + * name: 'custom', + * path: '*', + * component: resolve(__dirname, 'pages/404.vue') + * }) + * } + * } + * } * ``` + * @version 2 */ extendRoutes: null, @@ -78,6 +93,7 @@ export default { * rendered. To learn more about it. * * @see [vue-router `scrollBehavior` documentation](https://router.vuejs.org/guide/advanced/scroll-behavior.html) + * @version 2 */ scrollBehavior: { $schema: { @@ -87,11 +103,13 @@ export default { /** * Provide custom query string parse function. Overrides the default. + * @version 2 */ parseQuery: false, /** * Provide custom query string stringify function. Overrides the default. + * @version 2 */ stringifyQuery: false, @@ -102,12 +120,14 @@ export default { * Setting this to false essentially makes every router-link navigation a full * page refresh in IE9. This is useful when the app is server-rendered and needs * to work in IE9, because a hash mode URL does not work with SSR. + * @version 2 */ fallback: false, /** * Configure `` to prefetch the code-splitted page when detected within * the viewport. Requires [IntersectionObserver](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) to be supported (see [Caniuse](https://caniuse.com/intersectionobserver)). + * @version 2 */ prefetchLinks: true, @@ -116,7 +136,8 @@ export default { * payload.js for each page. * * With this option enabled, Nuxt will automatically prefetch the payload of the - * linked page when the is visible in the viewport, making instant navigation. + * linked page when the `` is visible in the viewport, making instant navigation. + * @version 2 */ prefetchPayloads: true, @@ -124,12 +145,13 @@ export default { * If this option is set to true, trailing slashes will be appended to every * route. If set to false, they'll be removed. * - * **Attention**: This option should not be set without preparation and has to + * @warning This option should not be set without preparation and has to * be tested thoroughly. When setting `trailingSlash` to something else than * undefined, the opposite route will stop working. Thus 301 redirects should * be in place and your internal linking has to be adapted correctly. If you set * `trailingSlash` to true, then only example.com/abc/ will work but not * example.com/abc. On false, it's vice-versa + * @version 2 */ trailingSlash: undefined } diff --git a/packages/kit/src/config/schema/server.ts b/packages/kit/src/config/schema/server.ts index 80a49e1881..6f0b52a3e0 100644 --- a/packages/kit/src/config/schema/server.ts +++ b/packages/kit/src/config/schema/server.ts @@ -1,12 +1,17 @@ +/** @version 2 */ export default { /** * Whether to enable HTTPS. * * @example * ```js - * https: { - * key: fs.readFileSync(path.resolve(__dirname, 'server.key')), - * cert: fs.readFileSync(path.resolve(__dirname, 'server.crt')) + * export default { + * server: { + * https: { + * key: fs.readFileSync(path.resolve(__dirname, 'server.key')), + * cert: fs.readFileSync(path.resolve(__dirname, 'server.crt')) + * } + * } * } * ``` */