next 16.0.0-beta.0 → 16.0.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/next +1 -1
- package/dist/build/index.js +3 -3
- package/dist/build/swc/index.js +1 -1
- package/dist/build/webpack-config.js +2 -2
- package/dist/client/app-bootstrap.js +1 -1
- package/dist/client/index.js +1 -1
- package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js +1 -1
- package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/pages-api.runtime.dev.js +1 -1
- package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages-api.runtime.prod.js +1 -1
- package/dist/compiled/next-server/pages-api.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
- package/dist/compiled/next-server/pages-turbo.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/pages.runtime.dev.js +1 -1
- package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages.runtime.prod.js +1 -1
- package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
- package/dist/esm/build/index.js +3 -3
- package/dist/esm/build/swc/index.js +1 -1
- package/dist/esm/build/webpack-config.js +2 -2
- package/dist/esm/client/app-bootstrap.js +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/lib/turbopack-warning.js +3 -1
- package/dist/esm/lib/turbopack-warning.js.map +1 -1
- package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/esm/server/lib/app-info-log.js +1 -1
- package/dist/esm/server/lib/start-server.js +1 -1
- package/dist/esm/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/lib/turbopack-warning.js +3 -1
- package/dist/lib/turbopack-warning.js.map +1 -1
- package/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/server/lib/app-info-log.js +1 -1
- package/dist/server/lib/start-server.js +1 -1
- package/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/telemetry/events/session-stopped.js +2 -2
- package/dist/telemetry/events/version.js +2 -2
- package/package.json +15 -15
package/dist/esm/build/index.js
CHANGED
|
@@ -304,7 +304,7 @@ export default async function build(dir, reactProductionProfiling = false, debug
|
|
|
304
304
|
try {
|
|
305
305
|
const nextBuildSpan = trace('next-build', undefined, {
|
|
306
306
|
buildMode: experimentalBuildMode,
|
|
307
|
-
version: "16.0.0-
|
|
307
|
+
version: "16.0.0-canary.0"
|
|
308
308
|
});
|
|
309
309
|
NextBuildContext.nextBuildSpan = nextBuildSpan;
|
|
310
310
|
NextBuildContext.dir = dir;
|
|
@@ -791,7 +791,7 @@ export default async function build(dir, reactProductionProfiling = false, debug
|
|
|
791
791
|
// Files outside of the distDir can be "type": "module"
|
|
792
792
|
await writeFileUtf8(path.join(distDir, 'package.json'), '{"type": "commonjs"}');
|
|
793
793
|
// These are written to distDir, so they need to come after creating and cleaning distDr.
|
|
794
|
-
await recordFrameworkVersion("16.0.0-
|
|
794
|
+
await recordFrameworkVersion("16.0.0-canary.0");
|
|
795
795
|
await updateBuildDiagnostics({
|
|
796
796
|
buildStage: 'start'
|
|
797
797
|
});
|
|
@@ -2457,7 +2457,7 @@ export default async function build(dir, reactProductionProfiling = false, debug
|
|
|
2457
2457
|
config,
|
|
2458
2458
|
configOutDir: path.join(dir, configOutDir),
|
|
2459
2459
|
staticPages,
|
|
2460
|
-
nextVersion: "16.0.0-
|
|
2460
|
+
nextVersion: "16.0.0-canary.0",
|
|
2461
2461
|
tracingRoot: outputFileTracingRoot,
|
|
2462
2462
|
hasNodeMiddleware,
|
|
2463
2463
|
hasInstrumentationHook,
|
|
@@ -10,7 +10,7 @@ import { downloadNativeNextSwc, downloadWasmSwc } from '../../lib/download-swc';
|
|
|
10
10
|
import { isDeepStrictEqual } from 'util';
|
|
11
11
|
import { getDefineEnv } from '../define-env';
|
|
12
12
|
import { throwTurbopackInternalError } from '../../shared/lib/turbopack/internal-error';
|
|
13
|
-
const nextVersion = "16.0.0-
|
|
13
|
+
const nextVersion = "16.0.0-canary.0";
|
|
14
14
|
const ArchName = arch();
|
|
15
15
|
const PlatformName = platform();
|
|
16
16
|
function infoLog(...args) {
|
|
@@ -1599,7 +1599,7 @@ export default async function getBaseWebpackConfig(dir, { buildId, encryptionKey
|
|
|
1599
1599
|
isClient && new CopyFilePlugin({
|
|
1600
1600
|
// file path to build output of `@next/polyfill-nomodule`
|
|
1601
1601
|
filePath: require.resolve('./polyfills/polyfill-nomodule'),
|
|
1602
|
-
cacheKey: "16.0.0-
|
|
1602
|
+
cacheKey: "16.0.0-canary.0",
|
|
1603
1603
|
name: `static/chunks/polyfills${dev ? '' : '-[hash]'}.js`,
|
|
1604
1604
|
minimize: false,
|
|
1605
1605
|
info: {
|
|
@@ -1782,7 +1782,7 @@ export default async function getBaseWebpackConfig(dir, { buildId, encryptionKey
|
|
|
1782
1782
|
// - Next.js location on disk (some loaders use absolute paths and some resolve options depend on absolute paths)
|
|
1783
1783
|
// - Next.js version
|
|
1784
1784
|
// - next.config.js keys that affect compilation
|
|
1785
|
-
version: `${__dirname}|${"16.0.0-
|
|
1785
|
+
version: `${__dirname}|${"16.0.0-canary.0"}|${configVars}`,
|
|
1786
1786
|
cacheDirectory: path.join(distDir, 'cache', 'webpack'),
|
|
1787
1787
|
// For production builds, it's more efficient to compress all cache files together instead of compression each one individually.
|
|
1788
1788
|
// So we disable compression here and allow the build runner to take care of compressing the cache as a whole.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - next/script with `beforeInteractive` strategy
|
|
6
6
|
*/ import { getAssetPrefix } from './asset-prefix';
|
|
7
7
|
import { setAttributesFromProps } from './set-attributes-from-props';
|
|
8
|
-
const version = "16.0.0-
|
|
8
|
+
const version = "16.0.0-canary.0";
|
|
9
9
|
window.next = {
|
|
10
10
|
version,
|
|
11
11
|
appDir: true
|
package/dist/esm/client/index.js
CHANGED
|
@@ -25,7 +25,7 @@ import { SearchParamsContext, PathParamsContext } from '../shared/lib/hooks-clie
|
|
|
25
25
|
import { onRecoverableError } from './react-client-callbacks/on-recoverable-error';
|
|
26
26
|
import tracer from './tracing/tracer';
|
|
27
27
|
import { isNextRouterError } from './components/is-next-router-error';
|
|
28
|
-
export const version = "16.0.0-
|
|
28
|
+
export const version = "16.0.0-canary.0";
|
|
29
29
|
export let router;
|
|
30
30
|
export const emitter = mitt();
|
|
31
31
|
const looseToArray = (input)=>[].slice.call(input);
|
|
@@ -30,7 +30,9 @@ const unsupportedTurbopackNextConfigOptions = [
|
|
|
30
30
|
'experimental.forceSwcTransforms',
|
|
31
31
|
'experimental.fullySpecified',
|
|
32
32
|
'experimental.urlImports',
|
|
33
|
-
'experimental.slowModuleDetection'
|
|
33
|
+
'experimental.slowModuleDetection',
|
|
34
|
+
// We always use lightningcss
|
|
35
|
+
'experimental.useLightningcss'
|
|
34
36
|
];
|
|
35
37
|
/** */ export async function validateTurboNextConfig({ dir, isDev }) {
|
|
36
38
|
const { defaultConfig } = require('../server/config-shared');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/turbopack-warning.ts"],"sourcesContent":["import type { NextConfigComplete } from '../server/config-shared'\nimport loadConfig from '../server/config'\nimport * as Log from '../build/output/log'\nimport {\n PHASE_DEVELOPMENT_SERVER,\n PHASE_PRODUCTION_BUILD,\n} from '../shared/lib/constants'\n\nconst unsupportedTurbopackNextConfigOptions = [\n // Left to be implemented (priority)\n // 'experimental.clientRouterFilter',\n // 'experimental.optimizePackageImports',\n // 'compiler.emotion',\n // 'compiler.reactRemoveProperties',\n // 'compiler.relay',\n // 'compiler.removeConsole',\n // 'compiler.styledComponents',\n 'experimental.fetchCacheKeyPrefix',\n\n // Left to be implemented\n // 'excludeDefaultMomentLocales',\n // 'experimental.optimizeServerReact',\n 'experimental.clientRouterFilterAllowedRate',\n // 'experimental.serverMinification',\n // 'experimental.serverSourceMaps',\n\n 'experimental.allowedRevalidateHeaderKeys',\n 'experimental.extensionAlias',\n 'experimental.fallbackNodePolyfills',\n\n 'experimental.sri.algorithm',\n 'experimental.swcTraceProfiling',\n\n // Left to be implemented (Might not be needed for Turbopack)\n 'experimental.craCompat',\n 'experimental.disablePostcssPresetEnv',\n 'experimental.esmExternals',\n // This is used to force swc-loader to run regardless of finding Babel.\n 'experimental.forceSwcTransforms',\n 'experimental.fullySpecified',\n 'experimental.urlImports',\n 'experimental.slowModuleDetection',\n]\n\n/** */\nexport async function validateTurboNextConfig({\n dir,\n isDev,\n}: {\n dir: string\n isDev?: boolean\n}) {\n const { defaultConfig } =\n require('../server/config-shared') as typeof import('../server/config-shared')\n const { cyan, red, underline } =\n require('../lib/picocolors') as typeof import('../lib/picocolors')\n const { interopDefault } =\n require('../lib/interop-default') as typeof import('../lib/interop-default')\n\n let unsupportedParts = ''\n\n let hasWebpackConfig = false\n let hasTurboConfig = false\n\n const unsupportedConfig: string[] = []\n let rawNextConfig: NextConfigComplete = {} as NextConfigComplete\n\n const phase = isDev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_BUILD\n try {\n rawNextConfig = interopDefault(\n await loadConfig(phase, dir, {\n rawConfig: true,\n })\n )\n\n if (typeof rawNextConfig === 'function') {\n rawNextConfig = (rawNextConfig as any)(phase, {\n defaultConfig,\n })\n }\n hasWebpackConfig = Boolean(rawNextConfig.webpack)\n hasTurboConfig = Boolean(rawNextConfig.turbopack)\n\n const flattenKeys = (obj: any, prefix: string = ''): string[] => {\n let keys: string[] = []\n\n for (const key in obj) {\n const value = obj?.[key]\n if (typeof value === 'undefined') {\n continue\n }\n\n const pre = prefix.length ? `${prefix}.` : ''\n\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n keys = keys.concat(flattenKeys(value, pre + key))\n } else {\n keys.push(pre + key)\n }\n }\n\n return keys\n }\n\n const getDeepValue = (obj: any, keys: string | string[]): any => {\n if (typeof keys === 'string') {\n keys = keys.split('.')\n }\n if (keys.length === 1) {\n return obj?.[keys?.[0]]\n }\n return getDeepValue(obj?.[keys?.[0]], keys.slice(1))\n }\n\n const customKeys = flattenKeys(rawNextConfig)\n\n for (const key of customKeys) {\n if (key.startsWith('experimental.turbo')) {\n hasTurboConfig = true\n }\n\n const isUnsupported =\n unsupportedTurbopackNextConfigOptions.some(\n (unsupportedKey) =>\n // Either the key matches (or is a more specific subkey) of\n // unsupportedKey, or the key is the path to a specific subkey.\n // | key | unsupportedKey |\n // |---------|----------------|\n // | foo | foo |\n // | foo.bar | foo |\n // | foo | foo.bar |\n key.startsWith(unsupportedKey) ||\n unsupportedKey.startsWith(`${key}.`)\n ) &&\n getDeepValue(rawNextConfig, key) !== getDeepValue(defaultConfig, key)\n\n if (isUnsupported) {\n unsupportedConfig.push(key)\n }\n }\n } catch (e) {\n Log.error('Unexpected error occurred while checking config', e)\n }\n\n // If the build was defaulted to Turbopack, we want to warn about possibly ignored webpack\n // configuration. Otherwise the user explicitly picked turbopack and thus we expect that\n // they have configured it correctly.\n if (process.env.TURBOPACK === 'auto' && hasWebpackConfig && !hasTurboConfig) {\n const configFile = rawNextConfig.configFileName ?? 'your Next config file'\n Log.error(\n `ERROR: This build is using Turbopack, with a \\`webpack\\` config and no \\`turbopack\\` config.\n This may be a mistake.\n\n As of Next.js 16 Turbopack is enabled by default and\n custom webpack configurations may need to be migrated to Turbopack.\n\n NOTE: your \\`webpack\\` config may have been added by a configuration plugin.\n\n To configure Turbopack, see https://nextjs.org/docs/app/api-reference/next-config-js/turbopack\n\n TIP: Many applications work fine under Turbopack with no configuration,\n if that is the case for you, you can silence this error by passing the\n \\`--turbopack\\` or \\`--webpack\\` flag explicitly or simply setting an \n empty turbopack config in ${configFile} (e.g. \\`turbopack: {}\\`).`\n )\n\n process.exit(1)\n }\n\n if (unsupportedConfig.length) {\n unsupportedParts += `\\n\\n- Unsupported Next.js configuration option(s) (${cyan(\n 'next.config.js'\n )})\\n Turbopack will ignore the following configuration options:\\n${unsupportedConfig\n .map((name) => ` - ${red(name)}\\n`)\n .join('')}`\n }\n\n if (unsupportedParts) {\n Log.error(\n `You are using configuration and/or tools that are not yet\\nsupported by Next.js with Turbopack:\\n${unsupportedParts}\\n`\n )\n\n Log.warn(\n 'Learn more about how to configure Turbopack with Next.js:\\n' +\n underline(\n 'https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack'\n )\n )\n }\n\n return rawNextConfig\n}\n"],"names":["loadConfig","Log","PHASE_DEVELOPMENT_SERVER","PHASE_PRODUCTION_BUILD","unsupportedTurbopackNextConfigOptions","validateTurboNextConfig","dir","isDev","defaultConfig","require","cyan","red","underline","interopDefault","unsupportedParts","hasWebpackConfig","hasTurboConfig","unsupportedConfig","rawNextConfig","phase","rawConfig","Boolean","webpack","turbopack","flattenKeys","obj","prefix","keys","key","value","pre","length","Array","isArray","concat","push","getDeepValue","split","slice","customKeys","startsWith","isUnsupported","some","unsupportedKey","e","error","process","env","TURBOPACK","configFile","configFileName","exit","map","name","join","warn"],"mappings":"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","ignoreList":[0]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/turbopack-warning.ts"],"sourcesContent":["import type { NextConfigComplete } from '../server/config-shared'\nimport loadConfig from '../server/config'\nimport * as Log from '../build/output/log'\nimport {\n PHASE_DEVELOPMENT_SERVER,\n PHASE_PRODUCTION_BUILD,\n} from '../shared/lib/constants'\n\nconst unsupportedTurbopackNextConfigOptions = [\n // Left to be implemented (priority)\n // 'experimental.clientRouterFilter',\n // 'experimental.optimizePackageImports',\n // 'compiler.emotion',\n // 'compiler.reactRemoveProperties',\n // 'compiler.relay',\n // 'compiler.removeConsole',\n // 'compiler.styledComponents',\n 'experimental.fetchCacheKeyPrefix',\n\n // Left to be implemented\n // 'excludeDefaultMomentLocales',\n // 'experimental.optimizeServerReact',\n 'experimental.clientRouterFilterAllowedRate',\n // 'experimental.serverMinification',\n // 'experimental.serverSourceMaps',\n\n 'experimental.allowedRevalidateHeaderKeys',\n 'experimental.extensionAlias',\n 'experimental.fallbackNodePolyfills',\n\n 'experimental.sri.algorithm',\n 'experimental.swcTraceProfiling',\n\n // Left to be implemented (Might not be needed for Turbopack)\n 'experimental.craCompat',\n 'experimental.disablePostcssPresetEnv',\n 'experimental.esmExternals',\n // This is used to force swc-loader to run regardless of finding Babel.\n 'experimental.forceSwcTransforms',\n 'experimental.fullySpecified',\n 'experimental.urlImports',\n 'experimental.slowModuleDetection',\n\n // We always use lightningcss\n 'experimental.useLightningcss',\n]\n\n/** */\nexport async function validateTurboNextConfig({\n dir,\n isDev,\n}: {\n dir: string\n isDev?: boolean\n}) {\n const { defaultConfig } =\n require('../server/config-shared') as typeof import('../server/config-shared')\n const { cyan, red, underline } =\n require('../lib/picocolors') as typeof import('../lib/picocolors')\n const { interopDefault } =\n require('../lib/interop-default') as typeof import('../lib/interop-default')\n\n let unsupportedParts = ''\n\n let hasWebpackConfig = false\n let hasTurboConfig = false\n\n const unsupportedConfig: string[] = []\n let rawNextConfig: NextConfigComplete = {} as NextConfigComplete\n\n const phase = isDev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_BUILD\n try {\n rawNextConfig = interopDefault(\n await loadConfig(phase, dir, {\n rawConfig: true,\n })\n )\n\n if (typeof rawNextConfig === 'function') {\n rawNextConfig = (rawNextConfig as any)(phase, {\n defaultConfig,\n })\n }\n hasWebpackConfig = Boolean(rawNextConfig.webpack)\n hasTurboConfig = Boolean(rawNextConfig.turbopack)\n\n const flattenKeys = (obj: any, prefix: string = ''): string[] => {\n let keys: string[] = []\n\n for (const key in obj) {\n const value = obj?.[key]\n if (typeof value === 'undefined') {\n continue\n }\n\n const pre = prefix.length ? `${prefix}.` : ''\n\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n keys = keys.concat(flattenKeys(value, pre + key))\n } else {\n keys.push(pre + key)\n }\n }\n\n return keys\n }\n\n const getDeepValue = (obj: any, keys: string | string[]): any => {\n if (typeof keys === 'string') {\n keys = keys.split('.')\n }\n if (keys.length === 1) {\n return obj?.[keys?.[0]]\n }\n return getDeepValue(obj?.[keys?.[0]], keys.slice(1))\n }\n\n const customKeys = flattenKeys(rawNextConfig)\n\n for (const key of customKeys) {\n if (key.startsWith('experimental.turbo')) {\n hasTurboConfig = true\n }\n\n const isUnsupported =\n unsupportedTurbopackNextConfigOptions.some(\n (unsupportedKey) =>\n // Either the key matches (or is a more specific subkey) of\n // unsupportedKey, or the key is the path to a specific subkey.\n // | key | unsupportedKey |\n // |---------|----------------|\n // | foo | foo |\n // | foo.bar | foo |\n // | foo | foo.bar |\n key.startsWith(unsupportedKey) ||\n unsupportedKey.startsWith(`${key}.`)\n ) &&\n getDeepValue(rawNextConfig, key) !== getDeepValue(defaultConfig, key)\n\n if (isUnsupported) {\n unsupportedConfig.push(key)\n }\n }\n } catch (e) {\n Log.error('Unexpected error occurred while checking config', e)\n }\n\n // If the build was defaulted to Turbopack, we want to warn about possibly ignored webpack\n // configuration. Otherwise the user explicitly picked turbopack and thus we expect that\n // they have configured it correctly.\n if (process.env.TURBOPACK === 'auto' && hasWebpackConfig && !hasTurboConfig) {\n const configFile = rawNextConfig.configFileName ?? 'your Next config file'\n Log.error(\n `ERROR: This build is using Turbopack, with a \\`webpack\\` config and no \\`turbopack\\` config.\n This may be a mistake.\n\n As of Next.js 16 Turbopack is enabled by default and\n custom webpack configurations may need to be migrated to Turbopack.\n\n NOTE: your \\`webpack\\` config may have been added by a configuration plugin.\n\n To configure Turbopack, see https://nextjs.org/docs/app/api-reference/next-config-js/turbopack\n\n TIP: Many applications work fine under Turbopack with no configuration,\n if that is the case for you, you can silence this error by passing the\n \\`--turbopack\\` or \\`--webpack\\` flag explicitly or simply setting an \n empty turbopack config in ${configFile} (e.g. \\`turbopack: {}\\`).`\n )\n\n process.exit(1)\n }\n\n if (unsupportedConfig.length) {\n unsupportedParts += `\\n\\n- Unsupported Next.js configuration option(s) (${cyan(\n 'next.config.js'\n )})\\n Turbopack will ignore the following configuration options:\\n${unsupportedConfig\n .map((name) => ` - ${red(name)}\\n`)\n .join('')}`\n }\n\n if (unsupportedParts) {\n Log.error(\n `You are using configuration and/or tools that are not yet\\nsupported by Next.js with Turbopack:\\n${unsupportedParts}\\n`\n )\n\n Log.warn(\n 'Learn more about how to configure Turbopack with Next.js:\\n' +\n underline(\n 'https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack'\n )\n )\n }\n\n return rawNextConfig\n}\n"],"names":["loadConfig","Log","PHASE_DEVELOPMENT_SERVER","PHASE_PRODUCTION_BUILD","unsupportedTurbopackNextConfigOptions","validateTurboNextConfig","dir","isDev","defaultConfig","require","cyan","red","underline","interopDefault","unsupportedParts","hasWebpackConfig","hasTurboConfig","unsupportedConfig","rawNextConfig","phase","rawConfig","Boolean","webpack","turbopack","flattenKeys","obj","prefix","keys","key","value","pre","length","Array","isArray","concat","push","getDeepValue","split","slice","customKeys","startsWith","isUnsupported","some","unsupportedKey","e","error","process","env","TURBOPACK","configFile","configFileName","exit","map","name","join","warn"],"mappings":"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","ignoreList":[0]}
|
|
@@ -95,7 +95,7 @@ export async function createHotReloaderTurbopack(opts, serverFields, distDir, re
|
|
|
95
95
|
}
|
|
96
96
|
const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
|
|
97
97
|
const hotReloaderSpan = trace('hot-reloader', undefined, {
|
|
98
|
-
version: "16.0.0-
|
|
98
|
+
version: "16.0.0-canary.0"
|
|
99
99
|
});
|
|
100
100
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
101
101
|
// of the current `next dev` invocation.
|
|
@@ -160,7 +160,7 @@ export default class HotReloaderWebpack {
|
|
|
160
160
|
this.previewProps = previewProps;
|
|
161
161
|
this.rewrites = rewrites;
|
|
162
162
|
this.hotReloaderSpan = trace('hot-reloader', undefined, {
|
|
163
|
-
version: "16.0.0-
|
|
163
|
+
version: "16.0.0-canary.0"
|
|
164
164
|
});
|
|
165
165
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
166
166
|
// of the current `next dev` invocation.
|
|
@@ -15,7 +15,7 @@ export function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures
|
|
|
15
15
|
bundlerSuffix = ' (webpack)';
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"16.0.0-
|
|
18
|
+
Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"16.0.0-canary.0"}`))}${bundlerSuffix}`);
|
|
19
19
|
if (appUrl) {
|
|
20
20
|
Log.bootstrap(`- Local: ${appUrl}`);
|
|
21
21
|
}
|
|
@@ -111,7 +111,7 @@ export async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup,
|
|
|
111
111
|
export async function startServer(serverOptions) {
|
|
112
112
|
const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate } = serverOptions;
|
|
113
113
|
let { port } = serverOptions;
|
|
114
|
-
process.title = `next-server (v${"16.0.0-
|
|
114
|
+
process.title = `next-server (v${"16.0.0-canary.0"})`;
|
|
115
115
|
let handlersReady = ()=>{};
|
|
116
116
|
let handlersError = ()=>{};
|
|
117
117
|
let handlersPromise = new Promise((resolve, reject)=>{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function isStableBuild() {
|
|
2
|
-
return !"16.0.0-
|
|
2
|
+
return !"16.0.0-canary.0"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
|
|
3
3
|
}
|
|
4
4
|
export class CanaryOnlyConfigError extends Error {
|
|
5
5
|
constructor(arg){
|
|
@@ -86,7 +86,9 @@ const unsupportedTurbopackNextConfigOptions = [
|
|
|
86
86
|
'experimental.forceSwcTransforms',
|
|
87
87
|
'experimental.fullySpecified',
|
|
88
88
|
'experimental.urlImports',
|
|
89
|
-
'experimental.slowModuleDetection'
|
|
89
|
+
'experimental.slowModuleDetection',
|
|
90
|
+
// We always use lightningcss
|
|
91
|
+
'experimental.useLightningcss'
|
|
90
92
|
];
|
|
91
93
|
async function validateTurboNextConfig({ dir, isDev }) {
|
|
92
94
|
const { defaultConfig } = require('../server/config-shared');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/turbopack-warning.ts"],"sourcesContent":["import type { NextConfigComplete } from '../server/config-shared'\nimport loadConfig from '../server/config'\nimport * as Log from '../build/output/log'\nimport {\n PHASE_DEVELOPMENT_SERVER,\n PHASE_PRODUCTION_BUILD,\n} from '../shared/lib/constants'\n\nconst unsupportedTurbopackNextConfigOptions = [\n // Left to be implemented (priority)\n // 'experimental.clientRouterFilter',\n // 'experimental.optimizePackageImports',\n // 'compiler.emotion',\n // 'compiler.reactRemoveProperties',\n // 'compiler.relay',\n // 'compiler.removeConsole',\n // 'compiler.styledComponents',\n 'experimental.fetchCacheKeyPrefix',\n\n // Left to be implemented\n // 'excludeDefaultMomentLocales',\n // 'experimental.optimizeServerReact',\n 'experimental.clientRouterFilterAllowedRate',\n // 'experimental.serverMinification',\n // 'experimental.serverSourceMaps',\n\n 'experimental.allowedRevalidateHeaderKeys',\n 'experimental.extensionAlias',\n 'experimental.fallbackNodePolyfills',\n\n 'experimental.sri.algorithm',\n 'experimental.swcTraceProfiling',\n\n // Left to be implemented (Might not be needed for Turbopack)\n 'experimental.craCompat',\n 'experimental.disablePostcssPresetEnv',\n 'experimental.esmExternals',\n // This is used to force swc-loader to run regardless of finding Babel.\n 'experimental.forceSwcTransforms',\n 'experimental.fullySpecified',\n 'experimental.urlImports',\n 'experimental.slowModuleDetection',\n]\n\n/** */\nexport async function validateTurboNextConfig({\n dir,\n isDev,\n}: {\n dir: string\n isDev?: boolean\n}) {\n const { defaultConfig } =\n require('../server/config-shared') as typeof import('../server/config-shared')\n const { cyan, red, underline } =\n require('../lib/picocolors') as typeof import('../lib/picocolors')\n const { interopDefault } =\n require('../lib/interop-default') as typeof import('../lib/interop-default')\n\n let unsupportedParts = ''\n\n let hasWebpackConfig = false\n let hasTurboConfig = false\n\n const unsupportedConfig: string[] = []\n let rawNextConfig: NextConfigComplete = {} as NextConfigComplete\n\n const phase = isDev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_BUILD\n try {\n rawNextConfig = interopDefault(\n await loadConfig(phase, dir, {\n rawConfig: true,\n })\n )\n\n if (typeof rawNextConfig === 'function') {\n rawNextConfig = (rawNextConfig as any)(phase, {\n defaultConfig,\n })\n }\n hasWebpackConfig = Boolean(rawNextConfig.webpack)\n hasTurboConfig = Boolean(rawNextConfig.turbopack)\n\n const flattenKeys = (obj: any, prefix: string = ''): string[] => {\n let keys: string[] = []\n\n for (const key in obj) {\n const value = obj?.[key]\n if (typeof value === 'undefined') {\n continue\n }\n\n const pre = prefix.length ? `${prefix}.` : ''\n\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n keys = keys.concat(flattenKeys(value, pre + key))\n } else {\n keys.push(pre + key)\n }\n }\n\n return keys\n }\n\n const getDeepValue = (obj: any, keys: string | string[]): any => {\n if (typeof keys === 'string') {\n keys = keys.split('.')\n }\n if (keys.length === 1) {\n return obj?.[keys?.[0]]\n }\n return getDeepValue(obj?.[keys?.[0]], keys.slice(1))\n }\n\n const customKeys = flattenKeys(rawNextConfig)\n\n for (const key of customKeys) {\n if (key.startsWith('experimental.turbo')) {\n hasTurboConfig = true\n }\n\n const isUnsupported =\n unsupportedTurbopackNextConfigOptions.some(\n (unsupportedKey) =>\n // Either the key matches (or is a more specific subkey) of\n // unsupportedKey, or the key is the path to a specific subkey.\n // | key | unsupportedKey |\n // |---------|----------------|\n // | foo | foo |\n // | foo.bar | foo |\n // | foo | foo.bar |\n key.startsWith(unsupportedKey) ||\n unsupportedKey.startsWith(`${key}.`)\n ) &&\n getDeepValue(rawNextConfig, key) !== getDeepValue(defaultConfig, key)\n\n if (isUnsupported) {\n unsupportedConfig.push(key)\n }\n }\n } catch (e) {\n Log.error('Unexpected error occurred while checking config', e)\n }\n\n // If the build was defaulted to Turbopack, we want to warn about possibly ignored webpack\n // configuration. Otherwise the user explicitly picked turbopack and thus we expect that\n // they have configured it correctly.\n if (process.env.TURBOPACK === 'auto' && hasWebpackConfig && !hasTurboConfig) {\n const configFile = rawNextConfig.configFileName ?? 'your Next config file'\n Log.error(\n `ERROR: This build is using Turbopack, with a \\`webpack\\` config and no \\`turbopack\\` config.\n This may be a mistake.\n\n As of Next.js 16 Turbopack is enabled by default and\n custom webpack configurations may need to be migrated to Turbopack.\n\n NOTE: your \\`webpack\\` config may have been added by a configuration plugin.\n\n To configure Turbopack, see https://nextjs.org/docs/app/api-reference/next-config-js/turbopack\n\n TIP: Many applications work fine under Turbopack with no configuration,\n if that is the case for you, you can silence this error by passing the\n \\`--turbopack\\` or \\`--webpack\\` flag explicitly or simply setting an \n empty turbopack config in ${configFile} (e.g. \\`turbopack: {}\\`).`\n )\n\n process.exit(1)\n }\n\n if (unsupportedConfig.length) {\n unsupportedParts += `\\n\\n- Unsupported Next.js configuration option(s) (${cyan(\n 'next.config.js'\n )})\\n Turbopack will ignore the following configuration options:\\n${unsupportedConfig\n .map((name) => ` - ${red(name)}\\n`)\n .join('')}`\n }\n\n if (unsupportedParts) {\n Log.error(\n `You are using configuration and/or tools that are not yet\\nsupported by Next.js with Turbopack:\\n${unsupportedParts}\\n`\n )\n\n Log.warn(\n 'Learn more about how to configure Turbopack with Next.js:\\n' +\n underline(\n 'https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack'\n )\n )\n }\n\n return rawNextConfig\n}\n"],"names":["validateTurboNextConfig","unsupportedTurbopackNextConfigOptions","dir","isDev","defaultConfig","require","cyan","red","underline","interopDefault","unsupportedParts","hasWebpackConfig","hasTurboConfig","unsupportedConfig","rawNextConfig","phase","PHASE_DEVELOPMENT_SERVER","PHASE_PRODUCTION_BUILD","loadConfig","rawConfig","Boolean","webpack","turbopack","flattenKeys","obj","prefix","keys","key","value","pre","length","Array","isArray","concat","push","getDeepValue","split","slice","customKeys","startsWith","isUnsupported","some","unsupportedKey","e","Log","error","process","env","TURBOPACK","configFile","configFileName","exit","map","name","join","warn"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../src/lib/turbopack-warning.ts"],"sourcesContent":["import type { NextConfigComplete } from '../server/config-shared'\nimport loadConfig from '../server/config'\nimport * as Log from '../build/output/log'\nimport {\n PHASE_DEVELOPMENT_SERVER,\n PHASE_PRODUCTION_BUILD,\n} from '../shared/lib/constants'\n\nconst unsupportedTurbopackNextConfigOptions = [\n // Left to be implemented (priority)\n // 'experimental.clientRouterFilter',\n // 'experimental.optimizePackageImports',\n // 'compiler.emotion',\n // 'compiler.reactRemoveProperties',\n // 'compiler.relay',\n // 'compiler.removeConsole',\n // 'compiler.styledComponents',\n 'experimental.fetchCacheKeyPrefix',\n\n // Left to be implemented\n // 'excludeDefaultMomentLocales',\n // 'experimental.optimizeServerReact',\n 'experimental.clientRouterFilterAllowedRate',\n // 'experimental.serverMinification',\n // 'experimental.serverSourceMaps',\n\n 'experimental.allowedRevalidateHeaderKeys',\n 'experimental.extensionAlias',\n 'experimental.fallbackNodePolyfills',\n\n 'experimental.sri.algorithm',\n 'experimental.swcTraceProfiling',\n\n // Left to be implemented (Might not be needed for Turbopack)\n 'experimental.craCompat',\n 'experimental.disablePostcssPresetEnv',\n 'experimental.esmExternals',\n // This is used to force swc-loader to run regardless of finding Babel.\n 'experimental.forceSwcTransforms',\n 'experimental.fullySpecified',\n 'experimental.urlImports',\n 'experimental.slowModuleDetection',\n\n // We always use lightningcss\n 'experimental.useLightningcss',\n]\n\n/** */\nexport async function validateTurboNextConfig({\n dir,\n isDev,\n}: {\n dir: string\n isDev?: boolean\n}) {\n const { defaultConfig } =\n require('../server/config-shared') as typeof import('../server/config-shared')\n const { cyan, red, underline } =\n require('../lib/picocolors') as typeof import('../lib/picocolors')\n const { interopDefault } =\n require('../lib/interop-default') as typeof import('../lib/interop-default')\n\n let unsupportedParts = ''\n\n let hasWebpackConfig = false\n let hasTurboConfig = false\n\n const unsupportedConfig: string[] = []\n let rawNextConfig: NextConfigComplete = {} as NextConfigComplete\n\n const phase = isDev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_BUILD\n try {\n rawNextConfig = interopDefault(\n await loadConfig(phase, dir, {\n rawConfig: true,\n })\n )\n\n if (typeof rawNextConfig === 'function') {\n rawNextConfig = (rawNextConfig as any)(phase, {\n defaultConfig,\n })\n }\n hasWebpackConfig = Boolean(rawNextConfig.webpack)\n hasTurboConfig = Boolean(rawNextConfig.turbopack)\n\n const flattenKeys = (obj: any, prefix: string = ''): string[] => {\n let keys: string[] = []\n\n for (const key in obj) {\n const value = obj?.[key]\n if (typeof value === 'undefined') {\n continue\n }\n\n const pre = prefix.length ? `${prefix}.` : ''\n\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n keys = keys.concat(flattenKeys(value, pre + key))\n } else {\n keys.push(pre + key)\n }\n }\n\n return keys\n }\n\n const getDeepValue = (obj: any, keys: string | string[]): any => {\n if (typeof keys === 'string') {\n keys = keys.split('.')\n }\n if (keys.length === 1) {\n return obj?.[keys?.[0]]\n }\n return getDeepValue(obj?.[keys?.[0]], keys.slice(1))\n }\n\n const customKeys = flattenKeys(rawNextConfig)\n\n for (const key of customKeys) {\n if (key.startsWith('experimental.turbo')) {\n hasTurboConfig = true\n }\n\n const isUnsupported =\n unsupportedTurbopackNextConfigOptions.some(\n (unsupportedKey) =>\n // Either the key matches (or is a more specific subkey) of\n // unsupportedKey, or the key is the path to a specific subkey.\n // | key | unsupportedKey |\n // |---------|----------------|\n // | foo | foo |\n // | foo.bar | foo |\n // | foo | foo.bar |\n key.startsWith(unsupportedKey) ||\n unsupportedKey.startsWith(`${key}.`)\n ) &&\n getDeepValue(rawNextConfig, key) !== getDeepValue(defaultConfig, key)\n\n if (isUnsupported) {\n unsupportedConfig.push(key)\n }\n }\n } catch (e) {\n Log.error('Unexpected error occurred while checking config', e)\n }\n\n // If the build was defaulted to Turbopack, we want to warn about possibly ignored webpack\n // configuration. Otherwise the user explicitly picked turbopack and thus we expect that\n // they have configured it correctly.\n if (process.env.TURBOPACK === 'auto' && hasWebpackConfig && !hasTurboConfig) {\n const configFile = rawNextConfig.configFileName ?? 'your Next config file'\n Log.error(\n `ERROR: This build is using Turbopack, with a \\`webpack\\` config and no \\`turbopack\\` config.\n This may be a mistake.\n\n As of Next.js 16 Turbopack is enabled by default and\n custom webpack configurations may need to be migrated to Turbopack.\n\n NOTE: your \\`webpack\\` config may have been added by a configuration plugin.\n\n To configure Turbopack, see https://nextjs.org/docs/app/api-reference/next-config-js/turbopack\n\n TIP: Many applications work fine under Turbopack with no configuration,\n if that is the case for you, you can silence this error by passing the\n \\`--turbopack\\` or \\`--webpack\\` flag explicitly or simply setting an \n empty turbopack config in ${configFile} (e.g. \\`turbopack: {}\\`).`\n )\n\n process.exit(1)\n }\n\n if (unsupportedConfig.length) {\n unsupportedParts += `\\n\\n- Unsupported Next.js configuration option(s) (${cyan(\n 'next.config.js'\n )})\\n Turbopack will ignore the following configuration options:\\n${unsupportedConfig\n .map((name) => ` - ${red(name)}\\n`)\n .join('')}`\n }\n\n if (unsupportedParts) {\n Log.error(\n `You are using configuration and/or tools that are not yet\\nsupported by Next.js with Turbopack:\\n${unsupportedParts}\\n`\n )\n\n Log.warn(\n 'Learn more about how to configure Turbopack with Next.js:\\n' +\n underline(\n 'https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack'\n )\n )\n }\n\n return rawNextConfig\n}\n"],"names":["validateTurboNextConfig","unsupportedTurbopackNextConfigOptions","dir","isDev","defaultConfig","require","cyan","red","underline","interopDefault","unsupportedParts","hasWebpackConfig","hasTurboConfig","unsupportedConfig","rawNextConfig","phase","PHASE_DEVELOPMENT_SERVER","PHASE_PRODUCTION_BUILD","loadConfig","rawConfig","Boolean","webpack","turbopack","flattenKeys","obj","prefix","keys","key","value","pre","length","Array","isArray","concat","push","getDeepValue","split","slice","customKeys","startsWith","isUnsupported","some","unsupportedKey","e","Log","error","process","env","TURBOPACK","configFile","configFileName","exit","map","name","join","warn"],"mappings":"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","ignoreList":[0]}
|
|
@@ -151,7 +151,7 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
|
|
|
151
151
|
}
|
|
152
152
|
const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
|
|
153
153
|
const hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
|
|
154
|
-
version: "16.0.0-
|
|
154
|
+
version: "16.0.0-canary.0"
|
|
155
155
|
});
|
|
156
156
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
157
157
|
// of the current `next dev` invocation.
|
|
@@ -228,7 +228,7 @@ class HotReloaderWebpack {
|
|
|
228
228
|
this.previewProps = previewProps;
|
|
229
229
|
this.rewrites = rewrites;
|
|
230
230
|
this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
|
|
231
|
-
version: "16.0.0-
|
|
231
|
+
version: "16.0.0-canary.0"
|
|
232
232
|
});
|
|
233
233
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
234
234
|
// of the current `next dev` invocation.
|
|
@@ -83,7 +83,7 @@ function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures, logBu
|
|
|
83
83
|
bundlerSuffix = ' (webpack)';
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
_log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.0.0-
|
|
86
|
+
_log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.0.0-canary.0"}`))}${bundlerSuffix}`);
|
|
87
87
|
if (appUrl) {
|
|
88
88
|
_log.bootstrap(`- Local: ${appUrl}`);
|
|
89
89
|
}
|
|
@@ -179,7 +179,7 @@ async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup, server
|
|
|
179
179
|
async function startServer(serverOptions) {
|
|
180
180
|
const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate } = serverOptions;
|
|
181
181
|
let { port } = serverOptions;
|
|
182
|
-
process.title = `next-server (v${"16.0.0-
|
|
182
|
+
process.title = `next-server (v${"16.0.0-canary.0"})`;
|
|
183
183
|
let handlersReady = ()=>{};
|
|
184
184
|
let handlersError = ()=>{};
|
|
185
185
|
let handlersPromise = new Promise((resolve, reject)=>{
|
|
@@ -21,7 +21,7 @@ _export(exports, {
|
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
function isStableBuild() {
|
|
24
|
-
return !"16.0.0-
|
|
24
|
+
return !"16.0.0-canary.0"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
|
|
25
25
|
}
|
|
26
26
|
class CanaryOnlyConfigError extends Error {
|
|
27
27
|
constructor(arg){
|
|
@@ -11,11 +11,11 @@ Object.defineProperty(exports, "eventCliSessionStopped", {
|
|
|
11
11
|
const EVENT_VERSION = 'NEXT_CLI_SESSION_STOPPED';
|
|
12
12
|
function eventCliSessionStopped(event) {
|
|
13
13
|
// This should be an invariant, if it fails our build tooling is broken.
|
|
14
|
-
if (typeof "16.0.0-
|
|
14
|
+
if (typeof "16.0.0-canary.0" !== 'string') {
|
|
15
15
|
return [];
|
|
16
16
|
}
|
|
17
17
|
const payload = {
|
|
18
|
-
nextVersion: "16.0.0-
|
|
18
|
+
nextVersion: "16.0.0-canary.0",
|
|
19
19
|
nodeVersion: process.version,
|
|
20
20
|
cliCommand: event.cliCommand,
|
|
21
21
|
durationMilliseconds: event.durationMilliseconds,
|
|
@@ -12,12 +12,12 @@ const EVENT_VERSION = 'NEXT_CLI_SESSION_STARTED';
|
|
|
12
12
|
function eventCliSession(nextConfig, event) {
|
|
13
13
|
var _nextConfig_experimental_staleTimes, _nextConfig_experimental_staleTimes1, _nextConfig_reactCompiler, _nextConfig_reactCompiler1;
|
|
14
14
|
// This should be an invariant, if it fails our build tooling is broken.
|
|
15
|
-
if (typeof "16.0.0-
|
|
15
|
+
if (typeof "16.0.0-canary.0" !== 'string') {
|
|
16
16
|
return [];
|
|
17
17
|
}
|
|
18
18
|
const { images, i18n } = nextConfig || {};
|
|
19
19
|
const payload = {
|
|
20
|
-
nextVersion: "16.0.0-
|
|
20
|
+
nextVersion: "16.0.0-canary.0",
|
|
21
21
|
nodeVersion: process.version,
|
|
22
22
|
cliCommand: event.cliCommand,
|
|
23
23
|
isSrcDir: event.isSrcDir,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "next",
|
|
3
|
-
"version": "16.0.0-
|
|
3
|
+
"version": "16.0.0-canary.0",
|
|
4
4
|
"description": "The React Framework",
|
|
5
5
|
"main": "./dist/server/next.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
]
|
|
99
99
|
},
|
|
100
100
|
"dependencies": {
|
|
101
|
-
"@next/env": "16.0.0-
|
|
101
|
+
"@next/env": "16.0.0-canary.0",
|
|
102
102
|
"@swc/helpers": "0.5.15",
|
|
103
103
|
"caniuse-lite": "^1.0.30001579",
|
|
104
104
|
"postcss": "8.4.31",
|
|
@@ -128,14 +128,14 @@
|
|
|
128
128
|
},
|
|
129
129
|
"optionalDependencies": {
|
|
130
130
|
"sharp": "^0.34.4",
|
|
131
|
-
"@next/swc-darwin-arm64": "16.0.0-
|
|
132
|
-
"@next/swc-darwin-x64": "16.0.0-
|
|
133
|
-
"@next/swc-linux-arm64-gnu": "16.0.0-
|
|
134
|
-
"@next/swc-linux-arm64-musl": "16.0.0-
|
|
135
|
-
"@next/swc-linux-x64-gnu": "16.0.0-
|
|
136
|
-
"@next/swc-linux-x64-musl": "16.0.0-
|
|
137
|
-
"@next/swc-win32-arm64-msvc": "16.0.0-
|
|
138
|
-
"@next/swc-win32-x64-msvc": "16.0.0-
|
|
131
|
+
"@next/swc-darwin-arm64": "16.0.0-canary.0",
|
|
132
|
+
"@next/swc-darwin-x64": "16.0.0-canary.0",
|
|
133
|
+
"@next/swc-linux-arm64-gnu": "16.0.0-canary.0",
|
|
134
|
+
"@next/swc-linux-arm64-musl": "16.0.0-canary.0",
|
|
135
|
+
"@next/swc-linux-x64-gnu": "16.0.0-canary.0",
|
|
136
|
+
"@next/swc-linux-x64-musl": "16.0.0-canary.0",
|
|
137
|
+
"@next/swc-win32-arm64-msvc": "16.0.0-canary.0",
|
|
138
|
+
"@next/swc-win32-x64-msvc": "16.0.0-canary.0"
|
|
139
139
|
},
|
|
140
140
|
"devDependencies": {
|
|
141
141
|
"@babel/code-frame": "7.26.2",
|
|
@@ -170,11 +170,11 @@
|
|
|
170
170
|
"@modelcontextprotocol/sdk": "1.18.1",
|
|
171
171
|
"@mswjs/interceptors": "0.23.0",
|
|
172
172
|
"@napi-rs/triples": "1.2.0",
|
|
173
|
-
"@next/font": "16.0.0-
|
|
174
|
-
"@next/polyfill-module": "16.0.0-
|
|
175
|
-
"@next/polyfill-nomodule": "16.0.0-
|
|
176
|
-
"@next/react-refresh-utils": "16.0.0-
|
|
177
|
-
"@next/swc": "16.0.0-
|
|
173
|
+
"@next/font": "16.0.0-canary.0",
|
|
174
|
+
"@next/polyfill-module": "16.0.0-canary.0",
|
|
175
|
+
"@next/polyfill-nomodule": "16.0.0-canary.0",
|
|
176
|
+
"@next/react-refresh-utils": "16.0.0-canary.0",
|
|
177
|
+
"@next/swc": "16.0.0-canary.0",
|
|
178
178
|
"@opentelemetry/api": "1.6.0",
|
|
179
179
|
"@playwright/test": "1.51.1",
|
|
180
180
|
"@rspack/core": "1.5.0",
|