Merge branch 'main' into patch-21

This commit is contained in:
Michael Brevard 2024-06-16 12:23:21 +03:00 committed by GitHub
commit ee6cd61e2d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
35 changed files with 233 additions and 166 deletions

View File

@ -46,7 +46,7 @@ jobs:
run: pnpm build
- name: Run benchmarks
uses: CodSpeedHQ/action@0b631f8998f2389eb5144632b6f9f8fabd33a86e # v2.4.1
uses: CodSpeedHQ/action@f11c406b8c87cda176ff341ed4925bc98086f6d1 # v2.4.2
with:
run: pnpm vitest bench
token: ${{ secrets.CODSPEED_TOKEN }}

View File

@ -5,7 +5,7 @@
<p>
<a href="https://www.npmjs.com/package/nuxt"><img src="https://img.shields.io/npm/v/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="Version"></a>
<a href="https://www.npmjs.com/package/nuxt"><img src="https://img.shields.io/npm/dm/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="Downloads"></a>
<a href="./LICENSE"><img src="https://img.shields.io/github/license/nuxt/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="License"></a>
<a href="https://github.com/nuxt/nuxt/tree/main/LICENSE"><img src="https://img.shields.io/github/license/nuxt/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="License"></a>
<a href="https://nuxt.com"><img src="https://img.shields.io/badge/Nuxt%20Docs-18181B?logo=nuxt.js" alt="Website"></a>
<a href="https://chat.nuxt.dev"><img src="https://img.shields.io/badge/Nuxt%20Discord-18181B?logo=discord" alt="Discord"></a>
</p>
@ -120,4 +120,4 @@ If you expect to be using Nuxt 2 beyond the EOL (End of Life) date (June 30, 202
## <a name="license">⚖️ License</a>
[MIT](./LICENSE)
[MIT](https://github.com/nuxt/nuxt/tree/main/LICENSE)

View File

@ -117,10 +117,13 @@ In most cases, Nuxt can work with third-party content that is not generated or c
Accordingly, you should make sure that the following options are unchecked / disabled in Cloudflare. Otherwise, unnecessary re-rendering or hydration errors could impact your production application.
1. Speed > Optimization > Auto Minify: Uncheck JavaScript, CSS and HTML
2. Speed > Optimization > Disable "Rocket Loader™"
3. Speed > Optimization > Disable "Mirage"
1. Speed > Optimization > Content Optimization > Auto Minify: Uncheck JavaScript, CSS and HTML
2. Speed > Optimization > Content Optimization > Disable "Rocket Loader™"
3. Speed > Optimization > Image Optimization > Disable "Mirage"
4. Scrape Shield > Disable "Email Address Obfuscation"
5. Scrape Shield > Disable "Server-side Excludes"
With these settings, you can be sure that Cloudflare won't inject scripts into your Nuxt application that may cause unwanted side effects.
::tip
Their location on the Cloudfalre dashboard sometimes changes so don't hesitate to look around.
::

View File

@ -150,10 +150,10 @@ Read more about `useError` composable.
### `createError`
```ts [TS Signature]
function createError (err: { cause, data, message, name, stack, statusCode, statusMessage, fatal }): Error
function createError (err: string | { cause, data, message, name, stack, statusCode, statusMessage, fatal }): Error
```
Create an error object with additional metadata. It is usable in both the Vue and Server portions of your app, and is meant to be thrown.
Create an error object with additional metadata. You can pass a string to be set as the error `message` or an object containing error properties. It is usable in both the Vue and Server portions of your app, and is meant to be thrown.
If you throw an error created with `createError`:
- on server-side, it will trigger a full-screen error page which you can clear with [`clearError`](#clearerror).

View File

@ -12,7 +12,9 @@ You can use this function to create an error object with additional metadata. It
## Parameters
- `err`: `{ cause, data, message, name, stack, statusCode, statusMessage, fatal }`
- `err`: `string | { cause, data, message, name, stack, statusCode, statusMessage, fatal }`
You can pass either a string or an object to the `createError` function. If you pass a string, it will be used as the error `message`, and the `statusCode` will default to `500`. If you pass an object, you can set multiple properties of the error, such as `statusCode`, `message`, and other error properties.
## In Vue App
@ -48,4 +50,6 @@ export default eventHandler(() => {
})
```
In API routes, using `createError` by passing an object with a short `statusMessage` is recommended because it can be accessed on the client side. Otherwise, a `message` passed to `createError` on an API route will not propagate to the client. Alternatively, you can use the `data` property to pass data back to the client. In any case, always consider avoiding to put dynamic user input to the message to avoid potential security issues.
:read-more{to="/docs/getting-started/error-handling"}

View File

@ -46,7 +46,7 @@
"vue": "3.4.29"
},
"devDependencies": {
"@eslint/js": "9.4.0",
"@eslint/js": "9.5.0",
"@nuxt/eslint-config": "0.3.13",
"@nuxt/kit": "workspace:*",
"@nuxt/test-utils": "3.13.1",
@ -64,7 +64,7 @@
"changelogen": "0.5.5",
"consola": "3.2.3",
"devalue": "5.0.0",
"eslint": "9.4.0",
"eslint": "9.5.0",
"eslint-plugin-no-only-tests": "3.1.0",
"eslint-plugin-perfectionist": "2.11.0",
"eslint-typegen": "0.2.4",

View File

@ -1,6 +1,6 @@
{
"name": "@nuxt/kit",
"version": "3.12.1",
"version": "3.12.2",
"repository": {
"type": "git",
"url": "git+https://github.com/nuxt/nuxt.git",

View File

@ -43,8 +43,11 @@ export function normalizePlugin (plugin: NuxtPlugin | string): NuxtPlugin {
* Note: By default plugin is prepended to the plugins array. You can use second argument to append (push) instead.
* @example
* ```js
* import { createResolver } from '@nuxt/kit'
* const resolver = createResolver(import.meta.url)
*
* addPlugin({
* src: path.resolve(__dirname, 'templates/foo.js'),
* src: resolver.resolve('templates/foo.js'),
* filename: 'foo.server.js' // [optional] only include in server bundle
* })
* ```

View File

@ -1,6 +1,6 @@
{
"name": "nuxt",
"version": "3.12.1",
"version": "3.12.2",
"repository": {
"type": "git",
"url": "git+https://github.com/nuxt/nuxt.git",

View File

@ -60,9 +60,15 @@ export function useScriptGoogleTagManager (...args: unknown[]) {
export function useScriptSegment (...args: unknown[]) {
renderStubMessage('useScriptSegment')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function useScriptFacebookPixel (...args: unknown[]) {
renderStubMessage('useScriptFacebookPixel')
export function useScriptClarity (...args: unknown[]) {
renderStubMessage('useScriptClarity')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function useScriptMetaPixel (...args: unknown[]) {
renderStubMessage('useScriptMetaPixel')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function useScriptXPixel (...args: unknown[]) {
@ -100,3 +106,13 @@ export function useScriptGoogleMaps (...args: unknown[]) {
export function useScriptNpm (...args: unknown[]) {
renderStubMessage('useScriptNpm')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function useScriptGoogleAdsense (...args: unknown[]) {
renderStubMessage('useScriptGoogleAdsense')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function useScriptYouTubePlayer (...args: unknown[]) {
renderStubMessage('useScriptYouTubePlayer')
}

View File

@ -46,11 +46,13 @@ export async function build (nuxt: Nuxt) {
if (!nuxt.options._prepare) {
await Promise.all([checkForExternalConfigurationFiles(), bundle(nuxt)])
await nuxt.callHook('build:done')
}
if (!nuxt.options.dev) {
await nuxt.callHook('close', nuxt)
}
} else {
nuxt.hook('prepare:types', () => nuxt.close())
}
}
const watchEvents: Record<EventType, 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'> = {

View File

@ -355,6 +355,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) {
nitroConfig.rollupConfig!.plugins!.push(
ImportProtectionPlugin.rollup({
rootDir: nuxt.options.rootDir,
modulesDir: nuxt.options.modulesDir,
patterns: nuxtImportProtections(nuxt, { isNitro: true }),
exclude: [/core[\\/]runtime[\\/]nitro[\\/]renderer/],
}),
@ -497,7 +498,11 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) {
for (const route of ['/200.html', '/404.html']) {
routes.add(route)
}
if (!nuxt.options.ssr) {
if (nuxt.options.ssr) {
if (nitro.options.prerender.crawlLinks) {
routes.add('/')
}
} else {
routes.add('/index.html')
}
})

View File

@ -49,14 +49,13 @@ export function createNuxt (options: NuxtOptions): Nuxt {
addHooks: hooks.addHooks,
hook: hooks.hook,
ready: () => initNuxt(nuxt),
close: async () => {
await hooks.callHook('close', nuxt)
hooks.removeAllHooks()
},
close: () => hooks.callHook('close', nuxt),
vfs: {},
apps: {},
}
hooks.hookOnce('close', () => { hooks.removeAllHooks() })
return nuxt
}
@ -168,6 +167,7 @@ async function initNuxt (nuxt: Nuxt) {
// Exclude top-level resolutions by plugins
exclude: [join(nuxt.options.srcDir, 'index.html')],
patterns: nuxtImportProtections(nuxt),
modulesDir: nuxt.options.modulesDir,
}
addVitePlugin(() => ImportProtectionPlugin.vite(config))
addWebpackPlugin(() => ImportProtectionPlugin.webpack(config))
@ -664,7 +664,9 @@ export async function loadNuxt (opts: LoadNuxtOptions): Promise<Nuxt> {
const nuxt = createNuxt(options)
await Promise.all(keyDependencies.map(dependency => checkDependencyVersion(dependency, nuxt._version)))
for (const dep of keyDependencies) {
checkDependencyVersion(dep, nuxt._version)
}
// We register hooks layer-by-layer so any overrides need to be registered separately
if (opts.overrides?.hooks) {

View File

@ -1,14 +1,13 @@
import { createRequire } from 'node:module'
import { createUnplugin } from 'unplugin'
import { logger } from '@nuxt/kit'
import { resolvePath } from 'mlly'
import { isAbsolute, join, relative, resolve } from 'pathe'
import escapeRE from 'escape-string-regexp'
import type { NuxtOptions } from 'nuxt/schema'
const _require = createRequire(import.meta.url)
interface ImportProtectionOptions {
rootDir: string
modulesDir: string[]
patterns: [importPattern: string | RegExp, warning?: string][]
exclude?: Array<RegExp | string>
}
@ -58,6 +57,7 @@ export const nuxtImportProtections = (nuxt: { options: NuxtOptions }, options: {
export const ImportProtectionPlugin = createUnplugin(function (options: ImportProtectionOptions) {
const cache: Record<string, Map<string | RegExp, boolean>> = {}
const importersToExclude = options?.exclude || []
const proxy = resolvePath('unenv/runtime/mock/proxy', { url: options.modulesDir })
return {
name: 'nuxt:import-protection',
enforce: 'pre',
@ -85,7 +85,7 @@ export const ImportProtectionPlugin = createUnplugin(function (options: ImportPr
matched = true
}
if (matched) {
return _require.resolve('unenv/runtime/mock/proxy')
return proxy
}
return null
},

View File

@ -698,7 +698,7 @@ function replaceIslandTeleports (ssrContext: NuxtSSRContext, html: string) {
if (matchClientComp) {
const [, uid, clientId] = matchClientComp
if (!uid || !clientId) { continue }
html = html.replace(new RegExp(` data-island-component="${clientId}"[^>]*>`), (full) => {
html = html.replace(new RegExp(` data-island-uid="${uid}" data-island-component="${clientId}"[^>]*>`), (full) => {
return full + teleports[key]
})
continue

View File

@ -275,20 +275,6 @@ export default defineNuxtModule({
}
})
// TODO: inject routes in `200.html` in next nitro upgrade (2.9.7+) via https://github.com/unjs/nitro/pull/2517
if (!nuxt.options.dev && !nuxt.options._prepare) {
nuxt.hook('app:templatesGenerated', (app) => {
const nitro = useNitro()
if (nitro.options.prerender.crawlLinks) {
for (const page of app.pages!) {
if (page.path && !page.path.includes(':')) {
nitro.options.prerender.routes.push(page.path)
}
}
}
})
}
nuxt.hook('imports:extend', (imports) => {
imports.push(
{ name: 'definePageMeta', as: 'definePageMeta', from: resolve(runtimeDir, 'composables') },

View File

@ -1,7 +1,7 @@
import { readFileSync } from 'node:fs'
import { fileURLToPath } from 'node:url'
import { describe, expect, it } from 'vitest'
import { join } from 'pathe'
import { createCommonJS, findExports } from 'mlly'
import { findExports } from 'mlly'
import * as VueFunctions from 'vue'
import type { Import } from 'unimport'
import { createUnimport } from 'unimport'
@ -59,8 +59,8 @@ const excludedNuxtHelpers = ['useHydration', 'useHead', 'useSeoMeta', 'useServer
describe('imports:nuxt', () => {
try {
const { __dirname } = createCommonJS(import.meta.url)
const entrypointContents = readFileSync(join(__dirname, '../src/app/composables/index.ts'), 'utf8')
const entrypointPath = fileURLToPath(new URL('../src/app/composables/index.ts', import.meta.url))
const entrypointContents = readFileSync(entrypointPath, 'utf8')
const names = findExports(entrypointContents).flatMap(i => i.names || i.name)
for (let name of names) {

View File

@ -1,3 +1,4 @@
import { fileURLToPath } from 'node:url'
import { normalize } from 'pathe'
import { describe, expect, it } from 'vitest'
import { ImportProtectionPlugin, nuxtImportProtections } from '../src/core/plugins/import-protection'
@ -40,6 +41,7 @@ describe('import protection', () => {
const transformWithImportProtection = (id: string, importer: string) => {
const plugin = ImportProtectionPlugin.rollup({
rootDir: '/root',
modulesDir: [fileURLToPath(new URL('..', import.meta.url))],
patterns: nuxtImportProtections({
options: {
modules: ['some-nuxt-module'],

View File

@ -1,10 +1,11 @@
import { fileURLToPath } from 'node:url'
import { resolve } from 'pathe'
import { expect, it, vi } from 'vitest'
import type { ComponentsDir } from 'nuxt/schema'
import { scanComponents } from '../src/components/scan'
const fixtureDir = resolve(__dirname, 'fixture')
const fixtureDir = fileURLToPath(new URL('fixture', import.meta.url))
const rFixture = (...p: string[]) => resolve(fixtureDir, ...p)
vi.mock('@nuxt/kit', () => ({

View File

@ -1,6 +1,6 @@
import { resolve } from 'pathe'
import { fileURLToPath } from 'node:url'
export const fixtureDir = resolve(__dirname, 'fixture')
export const fixtureDir = fileURLToPath(new URL('fixture', import.meta.url))
export function normalizeLineEndings (str: string, normalized = '\n') {
return str.replace(/\r?\n/g, normalized)

View File

@ -1,6 +1,6 @@
{
"name": "@nuxt/schema",
"version": "3.12.1",
"version": "3.12.2",
"repository": {
"type": "git",
"url": "git+https://github.com/nuxt/nuxt.git",

View File

@ -1,4 +1,5 @@
import { consola } from 'consola'
import { resolve } from 'pathe'
import { isTest } from 'std-env'
import { withoutLeadingSlash } from 'ufo'
import { defineUntypedSchema } from 'untyped'
@ -109,5 +110,8 @@ export default defineUntypedSchema({
},
},
},
cacheDir: {
$resolve: async (val, get) => val ?? resolve(await get('rootDir') as string, 'node_modules/.cache/vite'),
},
},
})

View File

@ -1,10 +1,13 @@
import { join, resolve } from 'node:path'
import { fileURLToPath } from 'node:url'
import { promises as fsp } from 'node:fs'
import type { Plugin } from 'vite'
import { template } from 'lodash-es'
import genericMessages from '../templates/messages.json'
const r = (...path: string[]) => resolve(join(__dirname, '..', ...path))
const templatesRoot = fileURLToPath(new URL('..', import.meta.url))
const r = (...path: string[]) => resolve(join(templatesRoot, ...path))
export const DevRenderingPlugin = () => {
return <Plugin>{

View File

@ -1,8 +1,11 @@
import { join, resolve } from 'node:path'
import { fileURLToPath } from 'node:url'
import { promises as fsp } from 'node:fs'
import { globby } from 'globby'
const r = (...path: string[]) => resolve(join(__dirname, '..', ...path))
const templatesRoot = fileURLToPath(new URL('..', import.meta.url))
const r = (...path: string[]) => resolve(join(templatesRoot, ...path))
async function main () {
const templates = await globby(r('dist/templates/*.js'))

View File

@ -1,5 +1,5 @@
import { fileURLToPath } from 'node:url'
import { join } from 'node:path'
import { resolve } from 'node:path'
import { readdirSync } from 'node:fs'
import { defineConfig } from 'vite'
@ -8,7 +8,8 @@ import UnoCSS from 'unocss/vite'
import { DevRenderingPlugin } from './lib/dev'
import { RenderPlugin } from './lib/render'
const r = (...path: string[]) => fileURLToPath(new URL(join(...path), import.meta.url))
const rootDir = fileURLToPath(new URL('.', import.meta.url))
const r = (...path: string[]) => resolve(rootDir, ...path)
export default defineConfig({
build: {
@ -32,7 +33,7 @@ export default defineConfig({
],
server: {
fs: {
allow: ['./templates', __dirname],
allow: ['./templates', rootDir],
},
},
})

View File

@ -1,6 +1,6 @@
{
"name": "@nuxt/vite-builder",
"version": "3.12.1",
"version": "3.12.2",
"repository": {
"type": "git",
"url": "git+https://github.com/nuxt/nuxt.git",

View File

@ -118,7 +118,7 @@ export async function buildClient (ctx: ViteBuildContext) {
'vue',
],
},
cacheDir: resolve(ctx.nuxt.options.rootDir, 'node_modules/.cache/vite', 'client'),
cacheDir: resolve(ctx.nuxt.options.rootDir, ctx.config.cacheDir ?? 'node_modules/.cache/vite', 'client'),
build: {
sourcemap: ctx.nuxt.options.sourcemap.client ? ctx.config.build?.sourcemap ?? ctx.nuxt.options.sourcemap.client : false,
manifest: 'manifest.json',

View File

@ -19,6 +19,7 @@ export function resolveCSSOptions (nuxt: Nuxt): ViteConfig['css'] {
for (const [name, opts] of plugins) {
if (opts) {
// TODO: remove use of requireModule in favour of ESM import
const plugin = requireModule(name, {
paths: [
...nuxt.options.modulesDir,

View File

@ -71,7 +71,7 @@ export async function buildServer (ctx: ViteBuildContext) {
/(nuxt|nuxt3|nuxt-nightly)\/(dist|src|app)/,
],
},
cacheDir: resolve(ctx.nuxt.options.rootDir, 'node_modules/.cache/vite', 'server'),
cacheDir: resolve(ctx.nuxt.options.rootDir, ctx.config.cacheDir ?? 'node_modules/.cache/vite', 'server'),
build: {
// we'll display this in nitro build output
reportCompressedSize: false,

View File

@ -1,6 +1,6 @@
{
"name": "@nuxt/webpack-builder",
"version": "3.12.1",
"version": "3.12.2",
"repository": {
"type": "git",
"url": "git+https://github.com/nuxt/nuxt.git",
@ -42,7 +42,7 @@
"hash-sum": "^2.0.0",
"lodash-es": "4.17.21",
"magic-string": "^0.30.10",
"memfs": "^4.9.2",
"memfs": "^4.9.3",
"mini-css-extract-plugin": "^2.9.0",
"mlly": "^1.7.1",
"ohash": "^1.1.3",

View File

@ -1,5 +1,5 @@
import { fileURLToPath } from 'node:url'
import createResolver from 'postcss-import-resolver'
import { createCommonJS } from 'mlly'
import { requireModule } from '@nuxt/kit'
import type { Nuxt } from '@nuxt/schema'
import { defu } from 'defu'
@ -61,9 +61,10 @@ export const getPostcssConfig = (nuxt: Nuxt) => {
// Keep the order of default plugins
if (!Array.isArray(postcssOptions.plugins) && isPureObject(postcssOptions.plugins)) {
// Map postcss plugins into instances on object mode once
const cjs = createCommonJS(import.meta.url)
const cwd = fileURLToPath(new URL('.', import.meta.url))
postcssOptions.plugins = sortPlugins(postcssOptions).map((pluginName: string) => {
const pluginFn = requireModule(pluginName, { paths: [cjs.__dirname] })
// TODO: remove use of requireModule in favour of ESM import
const pluginFn = requireModule(pluginName, { paths: [cwd] })
const pluginOptions = postcssOptions.plugins[pluginName]
if (!pluginOptions || typeof pluginFn !== 'function') { return null }
return pluginFn(pluginOptions)

View File

@ -21,11 +21,11 @@ importers:
.:
devDependencies:
'@eslint/js':
specifier: 9.4.0
version: 9.4.0
specifier: 9.5.0
version: 9.5.0
'@nuxt/eslint-config':
specifier: 0.3.13
version: 0.3.13(eslint@9.4.0)(typescript@5.4.5)
version: 0.3.13(eslint@9.5.0)(typescript@5.4.5)
'@nuxt/kit':
specifier: workspace:*
version: link:packages/kit
@ -75,17 +75,17 @@ importers:
specifier: 5.0.0
version: 5.0.0
eslint:
specifier: 9.4.0
version: 9.4.0
specifier: 9.5.0
version: 9.5.0
eslint-plugin-no-only-tests:
specifier: 3.1.0
version: 3.1.0
eslint-plugin-perfectionist:
specifier: 2.11.0
version: 2.11.0(eslint@9.4.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.4.0))
version: 2.11.0(eslint@9.5.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.5.0))
eslint-typegen:
specifier: 0.2.4
version: 0.2.4(eslint@9.4.0)
version: 0.2.4(eslint@9.5.0)
execa:
specifier: 9.2.0
version: 9.2.0
@ -727,7 +727,7 @@ importers:
version: 1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
vite-plugin-checker:
specifier: ^0.6.4
version: 0.6.4(eslint@9.4.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5))
version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5))
vue-bundle-renderer:
specifier: ^2.1.0
version: 2.1.0
@ -808,8 +808,8 @@ importers:
specifier: ^0.30.10
version: 0.30.10
memfs:
specifier: ^4.9.2
version: 4.9.2
specifier: ^4.9.3
version: 4.9.3
mini-css-extract-plugin:
specifier: ^2.9.0
version: 2.9.0(webpack@5.92.0)
@ -1830,20 +1830,20 @@ packages:
resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
'@eslint/config-array@0.15.1':
resolution: {integrity: sha512-K4gzNq+yymn/EVsXYmf+SBcBro8MTf+aXJZUphM96CdzUEr+ClGDvAbpmaEK+cGVigVXIgs9gNmvHAlrzzY5JQ==}
'@eslint/config-array@0.16.0':
resolution: {integrity: sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/eslintrc@3.1.0':
resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@9.4.0':
resolution: {integrity: sha512-fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg==}
'@eslint/js@9.5.0':
resolution: {integrity: sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.3':
resolution: {integrity: sha512-HAbhAYKfsAC2EkTqve00ibWIZlaU74Z1EHwAjYr4PXF0YU2VEA1zSIKSSpKszRLRWwHzzRZXvK632u+uXzvsvw==}
'@eslint/object-schema@2.1.4':
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@fastify/busboy@2.0.0':
@ -4210,8 +4210,8 @@ packages:
resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint@9.4.0:
resolution: {integrity: sha512-sjc7Y8cUD1IlwYcTS9qPSvGjAC8Ne9LctpxKKu3x/1IC9bnOg98Zy6GxEJUfr1NojMgVPlyANXYns8oE2c1TAA==}
eslint@9.5.0:
resolution: {integrity: sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
@ -5306,6 +5306,10 @@ packages:
resolution: {integrity: sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ==}
engines: {node: '>= 4.0.0'}
memfs@4.9.3:
resolution: {integrity: sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA==}
engines: {node: '>= 4.0.0'}
memory-fs@0.5.0:
resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==}
engines: {node: '>=4.3.0 <5.0.0 || >=5.10'}
@ -6922,6 +6926,12 @@ packages:
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
tree-dump@1.0.1:
resolution: {integrity: sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA==}
engines: {node: '>=10.0'}
peerDependencies:
tslib: '2'
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@ -8197,16 +8207,16 @@ snapshots:
'@esbuild/win32-x64@0.21.5':
optional: true
'@eslint-community/eslint-utils@4.4.0(eslint@9.4.0)':
'@eslint-community/eslint-utils@4.4.0(eslint@9.5.0)':
dependencies:
eslint: 9.4.0
eslint: 9.5.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.10.0': {}
'@eslint/config-array@0.15.1':
'@eslint/config-array@0.16.0':
dependencies:
'@eslint/object-schema': 2.1.3
'@eslint/object-schema': 2.1.4
debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
@ -8226,9 +8236,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@eslint/js@9.4.0': {}
'@eslint/js@9.5.0': {}
'@eslint/object-schema@2.1.3': {}
'@eslint/object-schema@2.1.4': {}
'@fastify/busboy@2.0.0': {}
@ -8587,35 +8597,35 @@ snapshots:
- utf-8-validate
- vue
'@nuxt/eslint-config@0.3.13(eslint@9.4.0)(typescript@5.4.5)':
'@nuxt/eslint-config@0.3.13(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@eslint/js': 9.4.0
'@nuxt/eslint-plugin': 0.3.13(eslint@9.4.0)(typescript@5.4.5)
'@eslint/js': 9.5.0
'@nuxt/eslint-plugin': 0.3.13(eslint@9.5.0)(typescript@5.4.5)
'@rushstack/eslint-patch': 1.10.3
'@stylistic/eslint-plugin': 2.1.0(eslint@9.4.0)(typescript@5.4.5)
'@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5)
'@typescript-eslint/parser': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
eslint: 9.4.0
'@stylistic/eslint-plugin': 2.1.0(eslint@9.5.0)(typescript@5.4.5)
'@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5)
'@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
eslint: 9.5.0
eslint-config-flat-gitignore: 0.1.5
eslint-flat-config-utils: 0.2.5
eslint-plugin-import-x: 0.5.0(eslint@9.4.0)(typescript@5.4.5)
eslint-plugin-jsdoc: 48.2.5(eslint@9.4.0)
eslint-plugin-regexp: 2.5.0(eslint@9.4.0)
eslint-plugin-unicorn: 53.0.0(eslint@9.4.0)
eslint-plugin-vue: 9.26.0(eslint@9.4.0)
eslint-plugin-import-x: 0.5.0(eslint@9.5.0)(typescript@5.4.5)
eslint-plugin-jsdoc: 48.2.5(eslint@9.5.0)
eslint-plugin-regexp: 2.5.0(eslint@9.5.0)
eslint-plugin-unicorn: 53.0.0(eslint@9.5.0)
eslint-plugin-vue: 9.26.0(eslint@9.5.0)
globals: 15.2.0
pathe: 1.1.2
tslib: 2.6.2
vue-eslint-parser: 9.4.2(eslint@9.4.0)
vue-eslint-parser: 9.4.2(eslint@9.5.0)
transitivePeerDependencies:
- supports-color
- typescript
'@nuxt/eslint-plugin@0.3.13(eslint@9.4.0)(typescript@5.4.5)':
'@nuxt/eslint-plugin@0.3.13(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@typescript-eslint/types': 7.9.0
'@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
eslint: 9.4.0
'@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
eslint: 9.5.0
transitivePeerDependencies:
- supports-color
- typescript
@ -9066,49 +9076,49 @@ snapshots:
'@sindresorhus/merge-streams@4.0.0': {}
'@stylistic/eslint-plugin-js@2.1.0(eslint@9.4.0)':
'@stylistic/eslint-plugin-js@2.1.0(eslint@9.5.0)':
dependencies:
'@types/eslint': 8.56.10
acorn: 8.12.0
eslint: 9.4.0
eslint: 9.5.0
eslint-visitor-keys: 4.0.0
espree: 10.0.1
'@stylistic/eslint-plugin-jsx@2.1.0(eslint@9.4.0)':
'@stylistic/eslint-plugin-jsx@2.1.0(eslint@9.5.0)':
dependencies:
'@stylistic/eslint-plugin-js': 2.1.0(eslint@9.4.0)
'@stylistic/eslint-plugin-js': 2.1.0(eslint@9.5.0)
'@types/eslint': 8.56.10
eslint: 9.4.0
eslint: 9.5.0
estraverse: 5.3.0
picomatch: 4.0.2
'@stylistic/eslint-plugin-plus@2.1.0(eslint@9.4.0)(typescript@5.4.5)':
'@stylistic/eslint-plugin-plus@2.1.0(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@types/eslint': 8.56.10
'@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
eslint: 9.4.0
'@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
eslint: 9.5.0
transitivePeerDependencies:
- supports-color
- typescript
'@stylistic/eslint-plugin-ts@2.1.0(eslint@9.4.0)(typescript@5.4.5)':
'@stylistic/eslint-plugin-ts@2.1.0(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@stylistic/eslint-plugin-js': 2.1.0(eslint@9.4.0)
'@stylistic/eslint-plugin-js': 2.1.0(eslint@9.5.0)
'@types/eslint': 8.56.10
'@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
eslint: 9.4.0
'@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
eslint: 9.5.0
transitivePeerDependencies:
- supports-color
- typescript
'@stylistic/eslint-plugin@2.1.0(eslint@9.4.0)(typescript@5.4.5)':
'@stylistic/eslint-plugin@2.1.0(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@stylistic/eslint-plugin-js': 2.1.0(eslint@9.4.0)
'@stylistic/eslint-plugin-jsx': 2.1.0(eslint@9.4.0)
'@stylistic/eslint-plugin-plus': 2.1.0(eslint@9.4.0)(typescript@5.4.5)
'@stylistic/eslint-plugin-ts': 2.1.0(eslint@9.4.0)(typescript@5.4.5)
'@stylistic/eslint-plugin-js': 2.1.0(eslint@9.5.0)
'@stylistic/eslint-plugin-jsx': 2.1.0(eslint@9.5.0)
'@stylistic/eslint-plugin-plus': 2.1.0(eslint@9.5.0)(typescript@5.4.5)
'@stylistic/eslint-plugin-ts': 2.1.0(eslint@9.5.0)(typescript@5.4.5)
'@types/eslint': 8.56.10
eslint: 9.4.0
eslint: 9.5.0
transitivePeerDependencies:
- supports-color
- typescript
@ -9320,15 +9330,15 @@ snapshots:
'@types/youtube@0.0.50': {}
'@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5)':
'@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@eslint-community/regexpp': 4.10.0
'@typescript-eslint/parser': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
'@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
'@typescript-eslint/scope-manager': 7.9.0
'@typescript-eslint/type-utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
'@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
'@typescript-eslint/type-utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
'@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
'@typescript-eslint/visitor-keys': 7.9.0
eslint: 9.4.0
eslint: 9.5.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
@ -9338,14 +9348,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@7.9.0(eslint@9.4.0)(typescript@5.4.5)':
'@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@typescript-eslint/scope-manager': 7.9.0
'@typescript-eslint/types': 7.9.0
'@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
'@typescript-eslint/visitor-keys': 7.9.0
debug: 4.3.4
eslint: 9.4.0
eslint: 9.5.0
optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
@ -9356,12 +9366,12 @@ snapshots:
'@typescript-eslint/types': 7.9.0
'@typescript-eslint/visitor-keys': 7.9.0
'@typescript-eslint/type-utils@7.9.0(eslint@9.4.0)(typescript@5.4.5)':
'@typescript-eslint/type-utils@7.9.0(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
'@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
'@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
debug: 4.3.4
eslint: 9.4.0
eslint: 9.5.0
ts-api-utils: 1.3.0(typescript@5.4.5)
optionalDependencies:
typescript: 5.4.5
@ -9385,13 +9395,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@7.9.0(eslint@9.4.0)(typescript@5.4.5)':
'@typescript-eslint/utils@7.9.0(eslint@9.5.0)(typescript@5.4.5)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
'@typescript-eslint/scope-manager': 7.9.0
'@typescript-eslint/types': 7.9.0
'@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
eslint: 9.4.0
eslint: 9.5.0
transitivePeerDependencies:
- supports-color
- typescript
@ -11294,12 +11304,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-plugin-import-x@0.5.0(eslint@9.4.0)(typescript@5.4.5):
eslint-plugin-import-x@0.5.0(eslint@9.5.0)(typescript@5.4.5):
dependencies:
'@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
'@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
debug: 4.3.4
doctrine: 3.0.0
eslint: 9.4.0
eslint: 9.5.0
eslint-import-resolver-node: 0.3.9
get-tsconfig: 4.7.3
is-glob: 4.0.3
@ -11309,14 +11319,14 @@ snapshots:
- supports-color
- typescript
eslint-plugin-jsdoc@48.2.5(eslint@9.4.0):
eslint-plugin-jsdoc@48.2.5(eslint@9.5.0):
dependencies:
'@es-joy/jsdoccomment': 0.43.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
debug: 4.3.4
escape-string-regexp: 4.0.0
eslint: 9.4.0
eslint: 9.5.0
esquery: 1.5.0
is-builtin-module: 3.2.1
semver: 7.6.2
@ -11326,38 +11336,38 @@ snapshots:
eslint-plugin-no-only-tests@3.1.0: {}
eslint-plugin-perfectionist@2.11.0(eslint@9.4.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.4.0)):
eslint-plugin-perfectionist@2.11.0(eslint@9.5.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.5.0)):
dependencies:
'@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5)
eslint: 9.4.0
'@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
eslint: 9.5.0
minimatch: 9.0.4
natural-compare-lite: 1.4.0
optionalDependencies:
vue-eslint-parser: 9.4.2(eslint@9.4.0)
vue-eslint-parser: 9.4.2(eslint@9.5.0)
transitivePeerDependencies:
- supports-color
- typescript
eslint-plugin-regexp@2.5.0(eslint@9.4.0):
eslint-plugin-regexp@2.5.0(eslint@9.5.0):
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
'@eslint-community/regexpp': 4.10.0
comment-parser: 1.4.1
eslint: 9.4.0
eslint: 9.5.0
jsdoc-type-pratt-parser: 4.0.0
refa: 0.12.1
regexp-ast-analysis: 0.7.1
scslre: 0.3.0
eslint-plugin-unicorn@53.0.0(eslint@9.4.0):
eslint-plugin-unicorn@53.0.0(eslint@9.5.0):
dependencies:
'@babel/helper-validator-identifier': 7.24.7
'@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
'@eslint/eslintrc': 3.1.0
ci-info: 4.0.0
clean-regexp: 1.0.0
core-js-compat: 3.37.1
eslint: 9.4.0
eslint: 9.5.0
esquery: 1.5.0
indent-string: 4.0.0
is-builtin-module: 3.2.1
@ -11371,16 +11381,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-plugin-vue@9.26.0(eslint@9.4.0):
eslint-plugin-vue@9.26.0(eslint@9.5.0):
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0)
eslint: 9.4.0
'@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
eslint: 9.5.0
globals: 13.24.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.1.0
semver: 7.6.2
vue-eslint-parser: 9.4.2(eslint@9.4.0)
vue-eslint-parser: 9.4.2(eslint@9.5.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@ -11400,10 +11410,10 @@ snapshots:
esrecurse: 4.3.0
estraverse: 5.3.0
eslint-typegen@0.2.4(eslint@9.4.0):
eslint-typegen@0.2.4(eslint@9.5.0):
dependencies:
'@types/eslint': 8.56.10
eslint: 9.4.0
eslint: 9.5.0
json-schema-to-typescript-lite: 14.0.1
ohash: 1.1.3
@ -11411,13 +11421,13 @@ snapshots:
eslint-visitor-keys@4.0.0: {}
eslint@9.4.0:
eslint@9.5.0:
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
'@eslint-community/regexpp': 4.10.0
'@eslint/config-array': 0.15.1
'@eslint/config-array': 0.16.0
'@eslint/eslintrc': 3.1.0
'@eslint/js': 9.4.0
'@eslint/js': 9.5.0
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.3.0
'@nodelib/fs.walk': 1.2.8
@ -12714,6 +12724,13 @@ snapshots:
sonic-forest: 1.0.0(tslib@2.6.2)
tslib: 2.6.2
memfs@4.9.3:
dependencies:
'@jsonjoy.com/json-pack': 1.0.3(tslib@2.6.2)
'@jsonjoy.com/util': 1.1.2(tslib@2.6.2)
tree-dump: 1.0.1(tslib@2.6.2)
tslib: 2.6.2
memory-fs@0.5.0:
dependencies:
errno: 0.1.8
@ -14617,6 +14634,10 @@ snapshots:
tr46@0.0.3: {}
tree-dump@1.0.1(tslib@2.6.2):
dependencies:
tslib: 2.6.2
trim-lines@3.0.1: {}
trough@2.2.0: {}
@ -15030,7 +15051,7 @@ snapshots:
- supports-color
- terser
vite-plugin-checker@0.6.4(eslint@9.4.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)):
vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)):
dependencies:
'@babel/code-frame': 7.24.7
ansi-escapes: 4.3.2
@ -15049,7 +15070,7 @@ snapshots:
vscode-languageserver-textdocument: 1.0.11
vscode-uri: 3.0.8
optionalDependencies:
eslint: 9.4.0
eslint: 9.5.0
optionator: 0.9.3
typescript: 5.4.5
vue-tsc: 2.0.21(typescript@5.4.5)
@ -15190,10 +15211,10 @@ snapshots:
vue-devtools-stub@0.1.0: {}
vue-eslint-parser@9.4.2(eslint@9.4.0):
vue-eslint-parser@9.4.2(eslint@9.5.0):
dependencies:
debug: 4.3.4
eslint: 9.4.0
eslint: 9.5.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1

View File

@ -18,6 +18,9 @@ if [[ ! -z ${NODE_AUTH_TOKEN} ]] ; then
npm whoami
fi
# use absolute urls for better rendering on npm
sed -i '' 's/\.\/\.github\/assets/https:\/\/github.com\/nuxt\/nuxt\/tree\/main\/\.github\/assets/g' README.md
# Release packages
for p in packages/* ; do
if [[ $p == "packages/nuxi" ]] ; then

View File

@ -8,6 +8,9 @@ git restore -s@ -SW -- packages examples
# Build all once to ensure things are nice
pnpm build
# use absolute urls for better rendering on npm
sed -i '' 's/\.\/\.github\/assets/https:\/\/github.com\/nuxt\/nuxt\/tree\/main\/\.github\/assets/g' README.md
# Release packages
for PKG in packages/* ; do
if [[ $PKG == "packages/nuxi" ]] ; then

View File

@ -8,6 +8,9 @@ git restore -s@ -SW -- packages examples
# Build all once to ensure things are nice
pnpm build
# use absolute urls for better rendering on npm
sed -i '' 's/\.\/\.github\/assets/https:\/\/github.com\/nuxt\/nuxt\/tree\/main\/\.github\/assets/g' README.md
# Release packages
for PKG in packages/* ; do
if [[ $PKG == "packages/nuxi" ]] ; then