Compare commits

...

7 Commits

Author SHA1 Message Date
renovate[bot]
a087b87d3f
chore(deps): update dependency ufo to v1.3.2 (main) (#24316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>
2023-11-15 22:41:08 +00:00
Daniel Roe
13a6ab3d5e
fix(nuxt): split component name case in each segment (#24318) 2023-11-15 21:52:56 +00:00
Joe Hawes
8af10e459f
docs: typos and wording tweaks for getting started section (#24319) 2023-11-15 21:43:03 +00:00
Daniel Roe
88ee7b7ea6
docs: update link to deno deploy provider docs 2023-11-15 21:42:40 +00:00
Daniel Roe
562532778b
fix(nuxt): deeply unwrap headers/query for useFetch key (#24307) 2023-11-15 19:40:55 +00:00
Luke Nelson
6ec267be87
fix(schema): use scule types for runtimeConfig type hints (#23696) 2023-11-15 18:58:00 +00:00
renovate[bot]
c069239b12
chore(deps): update autofix-ci/action digest to bee19d7 (main) (#24308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 18:25:26 +01:00
19 changed files with 189 additions and 301 deletions

View File

@ -30,4 +30,4 @@ jobs:
- name: Lint (docs)
run: pnpm lint:docs:fix
- uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc
- uses: autofix-ci/action@bee19d72e71787c12ca0f29de72f2833e437e4c9

View File

@ -49,4 +49,4 @@ jobs:
if: ${{ !contains(github.head_ref, 'renovate') }}
run: pnpm vitest run bundle -u
- uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc
- uses: autofix-ci/action@bee19d72e71787c12ca0f29de72f2833e437e4c9

View File

@ -36,6 +36,8 @@ It respects the following runtime environment variables:
### PM2
[PM2](https://pm2.keymetrics.io/) (Process Manager 2) is a fast and easy solution for hosting your Nuxt application on your server or VM.
To use `pm2`, use an `ecosystem.config.js`:
```js [ecosystem.config.js]
@ -170,9 +172,9 @@ Nuxt 3 can be deployed to several cloud providers with a minimal amount of confi
::
::card
---
title: Deno
title: Deno Deploy
icon: i-simple-icons-deno
to: https://nitro.unjs.io/deploy/providers/deno
to: https://nitro.unjs.io/deploy/providers/deno-deploy
target: _blank
ui.icon.base: 'text-black dark:text-white'
---

View File

@ -49,7 +49,7 @@ describe('My test', async () => {
Behind the scenes, `setup` performs a number of tasks in `beforeAll`, `beforeEach`, `afterEach` and `afterAll` to set up the Nuxt test environment correctly.
Please the options below for the `setup` method.
Please use the options below for the `setup` method.
### Nuxt Config

View File

@ -243,7 +243,7 @@ Nuxt uses Vite by default. If you wish to use webpack instead, refer to each pre
## Single File Components (SFC) Styling
One of the best thing about Vue and SFC is how great it is at naturally dealing with styling. You can directly write CSS or preprocessor code in the style block of your components file, therefore you will have fantastic developer experience without having to use something like CSS-in-JS. However if you wish to use CSS-in-JS, you can find 3rd party libraries and modules that support it, such as [pinceau](https://pinceau.dev).
One of the best things about Vue and SFC is how great it is at naturally dealing with styling. You can directly write CSS or preprocessor code in the style block of your components file, therefore you will have fantastic developer experience without having to use something like CSS-in-JS. However if you wish to use CSS-in-JS, you can find 3rd party libraries and modules that support it, such as [pinceau](https://pinceau.dev).
You can refer to the [Vue docs](https://vuejs.org/api/sfc-css-features.html) for a comprehensive reference about styling components in SFC.
@ -432,7 +432,7 @@ By default, Nuxt comes with the following plugins already pre-configured:
- [autoprefixer](https://github.com/postcss/autoprefixer): Automatically adds vendor prefixes
- [cssnano](https://cssnano.co): Minification and purge
##  Leveraging Layouts For Multiple Styles
## Leveraging Layouts For Multiple Styles
If you need to style different parts of your application completely differently, you can use layouts.
Use different styles for different layouts.

View File

@ -1,11 +1,9 @@
---
title: 'Server'
description: Build full-stack applications, fetch data from your database, create APIs, or even generate static server-side content like a sitemap or a RSS feed, from a single codebase.
description: Build full-stack applications with Nuxt's server framework. You can fetch data from your database or another server, create APIs, or even generate static server-side content like a sitemap or a RSS feed - all from a single codebase.
navigation.icon: i-ph-computer-tower-duotone
---
Nuxt's server framework allows you to build **full-stack applications**. For example, you can fetch data from a database or another server, create an API or even generate static server-side content like a sitemap or an RSS feed - all from a single codebase.
:read-more{to="/docs/guide/directory-structure/server"}
## Powered by Nitro

View File

@ -74,7 +74,7 @@
"semver": "7.5.4",
"std-env": "3.5.0",
"typescript": "5.2.2",
"ufo": "1.3.1",
"ufo": "1.3.2",
"vite": "4.5.0",
"vitest": "0.33.0",
"vitest-environment-nuxt": "0.11.3",

View File

@ -38,9 +38,9 @@
"mlly": "^1.4.2",
"pathe": "^1.1.1",
"pkg-types": "^1.0.3",
"scule": "^1.0.0",
"scule": "^1.1.0",
"semver": "^7.5.4",
"ufo": "^1.3.1",
"ufo": "^1.3.2",
"unctx": "^2.3.1",
"unimport": "^3.5.0",
"untyped": "^1.4.0"

View File

@ -97,10 +97,10 @@
"perfect-debounce": "^1.0.0",
"pkg-types": "^1.0.3",
"radix3": "^1.1.0",
"scule": "^1.0.0",
"scule": "^1.1.0",
"std-env": "^3.5.0",
"strip-literal": "^1.3.0",
"ufo": "^1.3.1",
"ufo": "^1.3.2",
"ultrahtml": "^1.5.2",
"uncrypto": "^0.1.3",
"unctx": "^2.3.1",

View File

@ -1,7 +1,7 @@
import type { FetchError, FetchOptions } from 'ofetch'
import type { NitroFetchRequest, TypedInternalResponse, AvailableRouterMethod as _AvailableRouterMethod } from 'nitropack'
import type { MaybeRef, Ref } from 'vue'
import { computed, reactive, unref } from 'vue'
import { computed, reactive, toValue } from 'vue'
import { hash } from 'ohash'
import { useRequestFetch } from './ssr'
@ -86,10 +86,10 @@ export function useFetch<
if (typeof r === 'function') {
r = r()
}
return unref(r)
return toValue(r)
})
const _key = opts.key || hash([autoKey, unref(opts.method as MaybeRef<string | undefined> | undefined)?.toUpperCase() || 'GET', unref(opts.baseURL), typeof _request.value === 'string' ? _request.value : '', unref(opts.params || opts.query), unref(opts.headers)])
const _key = opts.key || hash([autoKey, typeof _request.value === 'string' ? _request.value : '', ...generateOptionSegments(opts)])
if (!_key || typeof _key !== 'string') {
throw new TypeError('[nuxt] [useFetch] key must be a string: ' + _key)
}
@ -144,7 +144,7 @@ export function useFetch<
// Use fetch with request context and headers for server direct API calls
if (import.meta.server && !opts.$fetch) {
const isLocalFetch = typeof _request.value === 'string' && _request.value.startsWith('/') && (!unref(opts.baseURL) || unref(opts.baseURL)!.startsWith('/'))
const isLocalFetch = typeof _request.value === 'string' && _request.value.startsWith('/') && (!toValue(opts.baseURL) || toValue(opts.baseURL)!.startsWith('/'))
if (isLocalFetch) {
_$fetch = useRequestFetch()
}
@ -205,3 +205,22 @@ export function useLazyFetch<
// @ts-expect-error we pass an extra argument with the resolved auto-key to prevent another from being injected
autoKey)
}
function generateOptionSegments <_ResT, DataT, DefaultT>(opts: UseFetchOptions<_ResT, DataT, any, DefaultT, any, any>) {
const segments: Array<string | undefined | Record<string, string>> = [
toValue(opts.method as MaybeRef<string | undefined> | undefined)?.toUpperCase() || 'GET',
toValue(opts.baseURL),
]
for (const _obj of [opts.params || opts.query, opts.headers]) {
const obj = toValue(_obj)
if (!obj) { continue }
const unwrapped: Record<string, string> = {}
const iterator = Array.isArray(obj) ? obj : obj instanceof Headers ? obj.entries() : Object.entries(obj)
for (const [key, value] of iterator) {
unwrapped[toValue(key)] = toValue(value)
}
segments.push(unwrapped)
}
return segments
}

View File

@ -24,7 +24,7 @@ export function resolveComponentNameSegments (fileName: string, prefixParts: str
*/
const fileNameParts = splitByCase(fileName)
const fileNamePartsContent = fileNameParts.join('/').toLowerCase()
const componentNameParts: string[] = [...prefixParts]
const componentNameParts: string[] = prefixParts.flatMap(p => splitByCase(p))
let index = prefixParts.length - 1
const matchedSuffix: string[] = []
while (index >= 0) {

View File

@ -65,8 +65,9 @@
"hookable": "^5.5.3",
"pathe": "^1.1.1",
"pkg-types": "^1.0.3",
"scule": "^1.1.0",
"std-env": "^3.5.0",
"ufo": "^1.3.1",
"ufo": "^1.3.2",
"unimport": "^3.5.0",
"untyped": "^1.4.0"
},

View File

@ -4,6 +4,7 @@ import type { Options as VuePluginOptions } from '@vitejs/plugin-vue'
import type { Options as VueJsxPluginOptions } from '@vitejs/plugin-vue-jsx'
import type { SchemaDefinition } from 'untyped'
import type { NitroRuntimeConfig, NitroRuntimeConfigApp } from 'nitropack'
import type { SnakeCase } from 'scule'
import type { ConfigSchema } from '../../schema/config'
import type { Nuxt } from './nuxt'
import type { AppHeadMetaObject } from './head'
@ -11,43 +12,7 @@ export type { SchemaDefinition } from 'untyped'
type DeepPartial<T> = T extends Function ? T : T extends Record<string, any> ? { [P in keyof T]?: DeepPartial<T[P]> } : T
type ExtractUpperChunk<T extends string> = T extends `${infer A}${infer B}`
? A extends Uppercase<A>
? B extends `${Uppercase<string>}${infer Rest}`
? B extends `${infer C}${Rest}`
? `${A}${C}${ExtractUpperChunk<Rest>}`
: never
: A
: ''
: never
type SliceLast<T extends string> = T extends `${infer A}${infer B}`
? B extends `${infer C}${infer D}`
? D extends ''
? A
: `${A}${C}${SliceLast<D>}`
: ''
: never
type UpperSnakeCase<T extends string, State extends 'start' | 'lower' | 'upper' = 'start'> = T extends `${infer A}${infer B}`
? A extends Uppercase<A>
? A extends `${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0}`
? `${A}${UpperSnakeCase<B, 'lower'>}`
: State extends 'lower' | 'upper'
? B extends `${SliceLast<ExtractUpperChunk<B>>}${infer Rest}`
? SliceLast<ExtractUpperChunk<B>> extends ''
? `_${A}_${UpperSnakeCase<B, 'start'>}`
: `_${A}${SliceLast<ExtractUpperChunk<B>>}_${UpperSnakeCase<Rest, 'start'>}`
: B extends Uppercase<B>
? `_${A}${B}`
: `_${A}${UpperSnakeCase<B, 'lower'>}`
: State extends 'start'
? `${A}${UpperSnakeCase<B, 'lower'>}`
: never
: State extends 'start' | 'lower'
? `${Uppercase<A>}${UpperSnakeCase<B, 'lower'>}`
: `_${Uppercase<A>}${UpperSnakeCase<B, 'lower'>}`
: Uppercase<T>
export type UpperSnakeCase<S extends string> = Uppercase<SnakeCase<S>>
const message = Symbol('message')
export type RuntimeValue<T, B extends string> = T & { [message]?: B }

View File

@ -59,7 +59,7 @@
"rollup-plugin-visualizer": "^5.9.2",
"std-env": "^3.5.0",
"strip-literal": "^1.3.0",
"ufo": "^1.3.1",
"ufo": "^1.3.2",
"unplugin": "^1.5.0",
"vite": "^4.5.0",
"vite-node": "^0.33.0",

View File

@ -56,7 +56,7 @@
"pug-plain-loader": "^1.1.0",
"std-env": "^3.5.0",
"time-fix-plugin": "^2.0.7",
"ufo": "^1.3.1",
"ufo": "^1.3.2",
"unplugin": "^1.5.0",
"url-loader": "^4.1.1",
"vue-bundle-renderer": "^2.0.0",

View File

@ -121,8 +121,8 @@ importers:
specifier: 5.2.2
version: 5.2.2
ufo:
specifier: 1.3.1
version: 1.3.1
specifier: 1.3.2
version: 1.3.2
vite:
specifier: 4.5.0
version: 4.5.0(@types/node@20.9.0)
@ -184,14 +184,14 @@ importers:
specifier: ^1.0.3
version: 1.0.3
scule:
specifier: ^1.0.0
version: 1.0.0
specifier: ^1.1.0
version: 1.1.0
semver:
specifier: ^7.5.4
version: 7.5.4
ufo:
specifier: ^1.3.1
version: 1.3.1
specifier: ^1.3.2
version: 1.3.2
unctx:
specifier: ^2.3.1
version: 2.3.1
@ -255,7 +255,7 @@ importers:
version: link:../vite
'@types/node':
specifier: ^14.18.0 || >=16.10.0
version: 20.8.10
version: 20.9.0
'@unhead/dom':
specifier: ^1.8.3
version: 1.8.3
@ -353,8 +353,8 @@ importers:
specifier: ^1.1.0
version: 1.1.0
scule:
specifier: ^1.0.0
version: 1.0.0
specifier: ^1.1.0
version: 1.1.0
std-env:
specifier: ^3.5.0
version: 3.5.0
@ -362,8 +362,8 @@ importers:
specifier: ^1.3.0
version: 1.3.0
ufo:
specifier: ^1.3.1
version: 1.3.1
specifier: ^1.3.2
version: 1.3.2
ultrahtml:
specifier: ^1.5.2
version: 1.5.2
@ -418,7 +418,7 @@ importers:
version: 2.0.0(typescript@5.2.2)
vite:
specifier: 4.5.0
version: 4.5.0(@types/node@20.8.10)
version: 4.5.0(@types/node@20.9.0)
vitest:
specifier: 0.33.0
version: 0.33.0(happy-dom@12.10.3)
@ -443,12 +443,15 @@ importers:
pkg-types:
specifier: ^1.0.3
version: 1.0.3
scule:
specifier: ^1.1.0
version: 1.1.0
std-env:
specifier: ^3.5.0
version: 3.5.0
ufo:
specifier: ^1.3.1
version: 1.3.1
specifier: ^1.3.2
version: 1.3.2
unimport:
specifier: ^3.5.0
version: 3.5.0(rollup@3.29.4)
@ -610,8 +613,8 @@ importers:
specifier: ^1.3.0
version: 1.3.0
ufo:
specifier: ^1.3.1
version: 1.3.1
specifier: ^1.3.2
version: 1.3.2
unplugin:
specifier: ^1.5.0
version: 1.5.0
@ -743,8 +746,8 @@ importers:
specifier: ^2.0.7
version: 2.0.7(webpack@5.89.0)
ufo:
specifier: ^1.3.1
version: 1.3.1
specifier: ^1.3.2
version: 1.3.2
unplugin:
specifier: ^1.5.0
version: 1.5.0
@ -824,7 +827,7 @@ importers:
devDependencies:
ufo:
specifier: latest
version: 1.3.1
version: 1.3.2
unplugin:
specifier: latest
version: 1.5.0
@ -913,10 +916,10 @@ packages:
'@babel/helper-compilation-targets': 7.22.15
'@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2)
'@babel/helpers': 7.23.2
'@babel/parser': 7.23.0
'@babel/parser': 7.23.3
'@babel/template': 7.22.15
'@babel/traverse': 7.23.2
'@babel/types': 7.23.0
'@babel/types': 7.23.3
convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@ -929,7 +932,7 @@ packages:
resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.20
jsesc: 2.5.2
@ -938,7 +941,7 @@ packages:
resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-compilation-targets@7.22.15:
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
@ -976,25 +979,25 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.22.15
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-hoist-variables@7.22.5:
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-member-expression-to-functions@7.23.0:
resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-module-imports@7.22.15:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2):
resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==}
@ -1013,7 +1016,7 @@ packages:
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-plugin-utils@7.22.5:
resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
@ -1034,19 +1037,19 @@ packages:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-skip-transparent-expression-wrappers@7.22.5:
resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-split-export-declaration@7.22.6:
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
/@babel/helper-string-parser@7.22.5:
resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
@ -1066,7 +1069,7 @@ packages:
dependencies:
'@babel/template': 7.22.15
'@babel/traverse': 7.23.2
'@babel/types': 7.23.0
'@babel/types': 7.23.3
transitivePeerDependencies:
- supports-color
@ -1079,20 +1082,12 @@ packages:
chalk: 2.4.2
js-tokens: 4.0.0
/@babel/parser@7.23.0:
resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.23.0
/@babel/parser@7.23.3:
resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.23.3
dev: false
/@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.23.2):
resolution: {integrity: sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==}
@ -1176,8 +1171,8 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.22.13
'@babel/parser': 7.23.0
'@babel/types': 7.23.0
'@babel/parser': 7.23.3
'@babel/types': 7.23.3
/@babel/traverse@7.23.2:
resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==}
@ -1189,21 +1184,13 @@ packages:
'@babel/helper-function-name': 7.23.0
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.0
'@babel/types': 7.23.0
'@babel/parser': 7.23.3
'@babel/types': 7.23.3
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
/@babel/types@7.23.0:
resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.22.5
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
/@babel/types@7.23.3:
resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==}
engines: {node: '>=6.9.0'}
@ -1211,7 +1198,6 @@ packages:
'@babel/helper-string-parser': 7.22.5
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
dev: false
/@bcoe/v8-coverage@0.2.3:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
@ -1859,7 +1845,7 @@ packages:
'@nuxt/schema': link:packages/schema
execa: 7.2.0
nuxt: link:packages/nuxt
vite: 4.5.0(@types/node@20.8.10)
vite: 4.5.0(@types/node@20.9.0)
dev: false
/@nuxt/devtools-wizard@1.0.2:
@ -1914,12 +1900,12 @@ packages:
perfect-debounce: 1.0.0
pkg-types: 1.0.3
rc9: 2.1.1
scule: 1.0.0
scule: 1.1.0
semver: 7.5.4
simple-git: 3.20.0
sirv: 2.0.3
unimport: 3.5.0(rollup@3.29.4)
vite: 4.5.0(@types/node@20.8.10)
vite: 4.5.0(@types/node@20.9.0)
vite-plugin-inspect: 0.7.42(@nuxt/kit@packages+kit)(rollup@3.29.4)(vite@4.5.0)
vite-plugin-vue-inspector: 4.0.0(vite@4.5.0)
which: 3.0.1
@ -2020,7 +2006,7 @@ packages:
ofetch: 1.3.3
pathe: 1.1.1
playwright-core: 1.39.0
ufo: 1.3.1
ufo: 1.3.2
vitest: 0.33.0(happy-dom@12.10.3)
vue: 3.3.8(typescript@5.2.2)
dev: true
@ -2111,7 +2097,6 @@ packages:
dependencies:
is-glob: 4.0.3
micromatch: 4.0.5
napi-wasm: 1.1.0
bundledDependencies:
- napi-wasm
@ -2397,9 +2382,6 @@ packages:
'@types/estree': 1.0.5
'@types/json-schema': 7.0.14
/@types/estree@1.0.4:
resolution: {integrity: sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==}
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
@ -2469,11 +2451,6 @@ packages:
'@types/node': 20.9.0
dev: true
/@types/node@20.8.10:
resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==}
dependencies:
undici-types: 5.26.5
/@types/node@20.9.0:
resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==}
dependencies:
@ -2497,7 +2474,7 @@ packages:
/@types/sass-loader@8.0.8:
resolution: {integrity: sha512-hjP8aUyTDde2blD6clAGso/+ctC+9Rch/mDpvMe/kZrpXGZBDqf1K/48jWzXOX7hbd4jXQKQMPWdbBv4MRp0yQ==}
dependencies:
'@types/node': 20.8.10
'@types/node': 20.9.0
'@types/node-sass': 4.11.6
'@types/webpack': 4.41.34
sass: 1.69.4
@ -2796,7 +2773,7 @@ packages:
vite: 4.5.0
vue: 3.3.8
dependencies:
vite: 4.5.0(@types/node@20.8.10)
vite: 4.5.0(@types/node@20.9.0)
vue: 3.3.8(typescript@5.2.2)
/@vitest/coverage-v8@0.33.0(vitest@0.33.0):
@ -2856,7 +2833,7 @@ packages:
vitest: '>=0.30.1 <1'
dependencies:
'@vitest/utils': 0.33.0
fast-glob: 3.3.1
fast-glob: 3.3.2
fflate: 0.8.1
flatted: 3.2.9
pathe: 1.1.1
@ -2897,9 +2874,9 @@ packages:
vue:
optional: true
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
'@vue/compiler-sfc': 3.3.7
'@vue/compiler-sfc': 3.3.8
ast-kit: 0.11.2(rollup@3.29.4)
local-pkg: 0.4.3
magic-string-ast: 0.3.0
@ -2921,7 +2898,7 @@ packages:
'@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2)
'@babel/template': 7.22.15
'@babel/traverse': 7.23.2
'@babel/types': 7.23.0
'@babel/types': 7.23.3
'@vue/babel-helper-vue-transform-on': 1.1.5
camelcase: 6.3.0
html-tags: 3.3.1
@ -2929,55 +2906,24 @@ packages:
transitivePeerDependencies:
- supports-color
/@vue/compiler-core@3.3.7:
resolution: {integrity: sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==}
dependencies:
'@babel/parser': 7.23.0
'@vue/shared': 3.3.7
estree-walker: 2.0.2
source-map-js: 1.0.2
dev: false
/@vue/compiler-core@3.3.8:
resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==}
dependencies:
'@babel/parser': 7.23.0
'@babel/parser': 7.23.3
'@vue/shared': 3.3.8
estree-walker: 2.0.2
source-map-js: 1.0.2
/@vue/compiler-dom@3.3.7:
resolution: {integrity: sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==}
dependencies:
'@vue/compiler-core': 3.3.7
'@vue/shared': 3.3.7
dev: false
/@vue/compiler-dom@3.3.8:
resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==}
dependencies:
'@vue/compiler-core': 3.3.8
'@vue/shared': 3.3.8
/@vue/compiler-sfc@3.3.7:
resolution: {integrity: sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==}
dependencies:
'@babel/parser': 7.23.0
'@vue/compiler-core': 3.3.7
'@vue/compiler-dom': 3.3.7
'@vue/compiler-ssr': 3.3.7
'@vue/reactivity-transform': 3.3.7
'@vue/shared': 3.3.7
estree-walker: 2.0.2
magic-string: 0.30.5
postcss: 8.4.31
source-map-js: 1.0.2
dev: false
/@vue/compiler-sfc@3.3.8:
resolution: {integrity: sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==}
dependencies:
'@babel/parser': 7.23.0
'@babel/parser': 7.23.3
'@vue/compiler-core': 3.3.8
'@vue/compiler-dom': 3.3.8
'@vue/compiler-ssr': 3.3.8
@ -2988,13 +2934,6 @@ packages:
postcss: 8.4.31
source-map-js: 1.0.2
/@vue/compiler-ssr@3.3.7:
resolution: {integrity: sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==}
dependencies:
'@vue/compiler-dom': 3.3.7
'@vue/shared': 3.3.7
dev: false
/@vue/compiler-ssr@3.3.8:
resolution: {integrity: sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==}
dependencies:
@ -3022,20 +2961,10 @@ packages:
typescript: 5.2.2
vue-template-compiler: 2.7.14
/@vue/reactivity-transform@3.3.7:
resolution: {integrity: sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==}
dependencies:
'@babel/parser': 7.23.0
'@vue/compiler-core': 3.3.7
'@vue/shared': 3.3.7
estree-walker: 2.0.2
magic-string: 0.30.5
dev: false
/@vue/reactivity-transform@3.3.8:
resolution: {integrity: sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==}
dependencies:
'@babel/parser': 7.23.0
'@babel/parser': 7.23.3
'@vue/compiler-core': 3.3.8
'@vue/shared': 3.3.8
estree-walker: 2.0.2
@ -3068,10 +2997,6 @@ packages:
'@vue/shared': 3.3.8
vue: 3.3.8(typescript@5.2.2)
/@vue/shared@3.3.7:
resolution: {integrity: sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==}
dev: false
/@vue/shared@3.3.8:
resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==}
@ -3482,7 +3407,7 @@ packages:
resolution: {integrity: sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ==}
engines: {node: '>=16.14.0'}
dependencies:
'@babel/parser': 7.23.0
'@babel/parser': 7.23.3
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
pathe: 1.1.1
transitivePeerDependencies:
@ -3493,7 +3418,7 @@ packages:
resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==}
engines: {node: '>=16.14.0'}
dependencies:
'@babel/parser': 7.23.0
'@babel/parser': 7.23.3
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
pathe: 1.1.1
transitivePeerDependencies:
@ -3504,7 +3429,7 @@ packages:
resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==}
engines: {node: '>=16.14.0'}
dependencies:
'@babel/parser': 7.23.0
'@babel/parser': 7.23.3
ast-kit: 0.9.5(rollup@3.29.4)
transitivePeerDependencies:
- rollup
@ -3768,7 +3693,7 @@ packages:
open: 9.1.0
pathe: 1.1.1
pkg-types: 1.0.3
scule: 1.0.0
scule: 1.1.0
semver: 7.5.4
std-env: 3.5.0
yaml: 2.3.3
@ -4952,7 +4877,7 @@ packages:
enhanced-resolve: 5.15.0
mlly: 1.4.2
pathe: 1.1.1
ufo: 1.3.1
ufo: 1.3.2
dev: false
/fake-indexeddb@4.0.2:
@ -4971,16 +4896,6 @@ packages:
/fast-fifo@1.3.2:
resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
/fast-glob@3.3.1:
resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.5
/fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
@ -5348,7 +5263,7 @@ packages:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.1
fast-glob: 3.3.2
ignore: 5.2.4
merge2: 1.4.1
slash: 3.0.0
@ -5359,7 +5274,7 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
dir-glob: 3.0.1
fast-glob: 3.3.1
fast-glob: 3.3.2
ignore: 5.2.4
merge2: 1.4.1
slash: 4.0.0
@ -5397,7 +5312,7 @@ packages:
destr: 2.0.2
iron-webcrypto: 0.10.1
radix3: 1.1.0
ufo: 1.3.1
ufo: 1.3.2
uncrypto: 0.1.3
unenv: 1.7.4
@ -6159,7 +6074,7 @@ packages:
node-forge: 1.3.1
pathe: 1.1.1
std-env: 3.5.0
ufo: 1.3.1
ufo: 1.3.2
untun: 0.1.2
uqr: 0.1.2
@ -6627,7 +6542,7 @@ packages:
acorn: 8.11.2
pathe: 1.1.1
pkg-types: 1.0.3
ufo: 1.3.1
ufo: 1.3.2
/mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
@ -6659,9 +6574,6 @@ packages:
engines: {node: ^14 || ^16 || >=18}
hasBin: true
/napi-wasm@1.1.0:
resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==}
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@ -6735,12 +6647,12 @@ packages:
radix3: 1.1.0
rollup: 3.29.4
rollup-plugin-visualizer: 5.9.2(rollup@3.29.4)
scule: 1.0.0
scule: 1.1.0
semver: 7.5.4
serve-placeholder: 2.0.1
serve-static: 1.15.0
std-env: 3.4.3
ufo: 1.3.1
std-env: 3.5.0
ufo: 1.3.2
uncrypto: 0.1.3
unctx: 2.3.1
unenv: 1.7.4
@ -6994,7 +6906,7 @@ packages:
citty: 0.1.4
execa: 8.0.1
pathe: 1.1.1
ufo: 1.3.1
ufo: 1.3.2
dev: false
/object-assign@4.1.1:
@ -7052,7 +6964,7 @@ packages:
dependencies:
destr: 2.0.2
node-fetch-native: 1.4.1
ufo: 1.3.1
ufo: 1.3.2
/ohash@1.1.3:
resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==}
@ -7102,7 +7014,7 @@ packages:
hasBin: true
dependencies:
ansi-colors: 4.1.3
fast-glob: 3.3.1
fast-glob: 3.3.2
js-yaml: 4.1.0
supports-color: 9.4.0
undici: 5.26.3
@ -8191,8 +8103,8 @@ packages:
ajv-formats: 2.1.1(ajv@8.12.0)
ajv-keywords: 5.1.0(ajv@8.12.0)
/scule@1.0.0:
resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==}
/scule@1.1.0:
resolution: {integrity: sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g==}
/semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
@ -8441,9 +8353,6 @@ packages:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
/std-env@3.4.3:
resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==}
/std-env@3.5.0:
resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==}
@ -8869,8 +8778,8 @@ packages:
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
dev: true
/ufo@1.3.1:
resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==}
/ufo@1.3.2:
resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
/ultrahtml@1.5.2:
resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==}
@ -8916,7 +8825,7 @@ packages:
pretty-bytes: 6.1.1
rollup: 3.29.4
rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.2.2)
scule: 1.0.0
scule: 1.1.0
typescript: 5.2.2
untyped: 1.4.0
transitivePeerDependencies:
@ -8973,7 +8882,7 @@ packages:
mlly: 1.4.2
pathe: 1.1.1
pkg-types: 1.0.3
scule: 1.0.0
scule: 1.1.0
strip-literal: 1.3.0
unplugin: 1.5.0
transitivePeerDependencies:
@ -9005,17 +8914,17 @@ packages:
vue-router:
optional: true
dependencies:
'@babel/types': 7.23.0
'@babel/types': 7.23.3
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
'@vue-macros/common': 1.8.0(rollup@3.29.4)(vue@3.3.8)
ast-walker-scope: 0.5.0(rollup@3.29.4)
chokidar: 3.5.3
fast-glob: 3.3.1
fast-glob: 3.3.2
json5: 2.2.3
local-pkg: 0.4.3
mlly: 1.4.2
pathe: 1.1.1
scule: 1.0.0
scule: 1.1.0
unplugin: 1.5.0
vue-router: 4.2.5(vue@3.3.8)
yaml: 2.3.3
@ -9080,7 +8989,7 @@ packages:
mri: 1.2.0
node-fetch-native: 1.4.1
ofetch: 1.3.3
ufo: 1.3.1
ufo: 1.3.2
transitivePeerDependencies:
- supports-color
@ -9102,11 +9011,11 @@ packages:
dependencies:
'@babel/core': 7.23.2
'@babel/standalone': 7.23.2
'@babel/types': 7.23.0
'@babel/types': 7.23.3
defu: 6.1.3
jiti: 1.21.0
mri: 1.2.0
scule: 1.0.0
scule: 1.1.0
transitivePeerDependencies:
- supports-color
@ -9173,28 +9082,6 @@ packages:
builtins: 5.0.1
dev: false
/vite-node@0.33.0(@types/node@20.8.10):
resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==}
engines: {node: '>=v14.18.0'}
hasBin: true
dependencies:
cac: 6.7.14
debug: 4.3.4
mlly: 1.4.2
pathe: 1.1.1
picocolors: 1.0.0
vite: 4.5.0(@types/node@20.8.10)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vite-node@0.33.0(@types/node@20.9.0):
resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==}
engines: {node: '>=v14.18.0'}
@ -9215,7 +9102,6 @@ packages:
- sugarss
- supports-color
- terser
dev: false
/vite-plugin-checker@0.6.2(eslint@8.53.0)(typescript@5.2.2)(vite@4.5.0)(vue-tsc@1.8.22):
resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==}
@ -9254,7 +9140,7 @@ packages:
chokidar: 3.5.3
commander: 8.3.0
eslint: 8.53.0
fast-glob: 3.3.1
fast-glob: 3.3.2
fs-extra: 11.1.1
lodash.debounce: 4.0.8
lodash.pick: 4.4.0
@ -9290,7 +9176,7 @@ packages:
open: 9.1.0
picocolors: 1.0.0
sirv: 2.0.3
vite: 4.5.0(@types/node@20.8.10)
vite: 4.5.0(@types/node@20.9.0)
transitivePeerDependencies:
- rollup
- supports-color
@ -9310,46 +9196,11 @@ packages:
'@vue/compiler-dom': 3.3.8
kolorist: 1.8.0
magic-string: 0.30.5
vite: 4.5.0(@types/node@20.8.10)
vite: 4.5.0(@types/node@20.9.0)
transitivePeerDependencies:
- supports-color
dev: false
/vite@4.5.0(@types/node@20.8.10):
resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
'@types/node': '>= 14'
less: '*'
lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
'@types/node': 20.8.10
esbuild: 0.18.20
postcss: 8.4.31
rollup: 3.29.4
optionalDependencies:
fsevents: 2.3.3
/vite@4.5.0(@types/node@20.9.0):
resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==}
engines: {node: ^14.18.0 || >=16.0.0}
@ -9413,7 +9264,7 @@ packages:
magic-string: 0.30.5
ofetch: 1.3.3
radix3: 1.1.0
ufo: 1.3.1
ufo: 1.3.2
unenv: 1.7.4
vitest: 0.33.0(happy-dom@12.10.3)
vue: 3.3.8(typescript@5.2.2)
@ -9455,7 +9306,7 @@ packages:
dependencies:
'@types/chai': 4.3.9
'@types/chai-subset': 1.3.4
'@types/node': 20.8.10
'@types/node': 20.9.0
'@vitest/expect': 0.33.0
'@vitest/runner': 0.33.0
'@vitest/snapshot': 0.33.0
@ -9471,12 +9322,12 @@ packages:
magic-string: 0.30.5
pathe: 1.1.1
picocolors: 1.0.0
std-env: 3.4.3
std-env: 3.5.0
strip-literal: 1.3.0
tinybench: 2.5.1
tinypool: 0.6.0
vite: 4.5.0(@types/node@20.8.10)
vite-node: 0.33.0(@types/node@20.8.10)
vite: 4.5.0(@types/node@20.9.0)
vite-node: 0.33.0(@types/node@20.9.0)
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
@ -9536,7 +9387,7 @@ packages:
/vue-bundle-renderer@2.0.0:
resolution: {integrity: sha512-oYATTQyh8XVkUWe2kaKxhxKVuuzK2Qcehe+yr3bGiaQAhK3ry2kYE4FWOfL+KO3hVFwCdLmzDQTzYhTi9C+R2A==}
dependencies:
ufo: 1.3.1
ufo: 1.3.2
/vue-component-type-helpers@1.8.4:
resolution: {integrity: sha512-6bnLkn8O0JJyiFSIF0EfCogzeqNXpnjJ0vW/SZzNHfe6sPx30lTtTXlE5TFs2qhJlAtDFybStVNpL73cPe3OMQ==}
@ -9721,7 +9572,7 @@ packages:
optional: true
dependencies:
'@types/eslint-scope': 3.7.6
'@types/estree': 1.0.4
'@types/estree': 1.0.5
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/wasm-edit': 1.11.6
'@webassemblyjs/wasm-parser': 1.11.6

View File

@ -71,7 +71,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM
const serverDir = join(rootDir, '.output-inline/server')
const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"507k"')
expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"508k"')
const modules = await analyzeSizes('node_modules/**/*', serverDir)
expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"76.5k"')

View File

@ -3,7 +3,7 @@ import type { Ref } from 'vue'
import type { FetchError } from 'ofetch'
import type { NavigationFailure, RouteLocationNormalized, RouteLocationRaw, Router, useRouter as vueUseRouter } from '#vue-router'
import type { AppConfig, RuntimeValue } from 'nuxt/schema'
import type { AppConfig, RuntimeValue, UpperSnakeCase } from 'nuxt/schema'
import { defineNuxtConfig } from 'nuxt/config'
import { callWithNuxt, isVue3 } from '#app'
import type { NavigateToOptions } from '#app/composables/router'
@ -271,6 +271,21 @@ describe('runtimeConfig', () => {
expectTypeOf(val.runtimeConfig!.public!.ids).toEqualTypeOf<undefined | RuntimeValue<Array<number>, 'You can override this value at runtime with NUXT_PUBLIC_IDS'>>()
expectTypeOf(val.runtimeConfig!.unknown).toEqualTypeOf<unknown>()
})
it('correctly converts different kinds of names to snake case', () => {
expectTypeOf<UpperSnakeCase<'testAppName'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'TEST_APP_NAME'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'test_APP_NAME'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'test_app_NAME'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'testAppNAME'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'testApp123NAME'>>().toEqualTypeOf<'TEST_APP123NAME'>()
expectTypeOf<UpperSnakeCase<'testAPPName'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'testAPP_Name'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'test_APP_Name'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'TESTAppName'>>().toEqualTypeOf<'TEST_APP_NAME'>()
expectTypeOf<UpperSnakeCase<'t'>>().toEqualTypeOf<'T'>()
expectTypeOf<UpperSnakeCase<'T'>>().toEqualTypeOf<'T'>()
})
})
describe('head', () => {

View File

@ -38,6 +38,10 @@ registerEndpoint('/_nuxt/builds/meta/override.json', defineEventHandler(() => ({
},
prerendered: ['/specific-prerendered']
})))
registerEndpoint('/api/test', defineEventHandler((event) => ({
method: event.method,
headers: Object.fromEntries(event.headers.entries())
})))
describe('app config', () => {
it('can be updated', () => {
@ -237,6 +241,39 @@ describe('useAsyncData', () => {
})
})
describe('useFetch', () => {
it('should match with/without computed values', async () => {
const nuxtApp = useNuxtApp()
const getPayloadEntries = () => Object.keys(nuxtApp.payload.data).length
const baseCount = getPayloadEntries()
await useFetch('/api/test')
expect(getPayloadEntries()).toBe(baseCount + 1)
/* @ts-expect-error Overriding auto-key */
await useFetch('/api/test', { method: 'POST' }, '')
/* @ts-expect-error Overriding auto-key */
await useFetch('/api/test', { method: ref('POST') }, '')
expect.soft(getPayloadEntries()).toBe(baseCount + 2)
/* @ts-expect-error Overriding auto-key */
await useFetch('/api/test', { headers: { id: '3' } }, '')
/* @ts-expect-error Overriding auto-key */
await useFetch('/api/test', { headers: { id: ref('3') } }, '')
const headers = new Headers()
headers.append('id', '3')
/* @ts-expect-error Overriding auto-key */
await useFetch('/api/test', { headers }, '')
/* @ts-expect-error Overriding auto-key */
await useFetch('/api/test', { headers: [['id', '3']] }, '')
/* @ts-expect-error Overriding auto-key */
await useFetch('/api/test', { headers: [['id', ref('3')]] }, '')
/* @ts-expect-error Overriding auto-key */
await useFetch('/api/test', { headers: [[computed(() => 'id'), '3']] }, '')
expect.soft(getPayloadEntries()).toBe(baseCount + 3)
})
})
describe('errors', () => {
it('createError', () => {
expect(createError({ statusCode: 404 }).toJSON()).toMatchInlineSnapshot(`