next 16.0.0-canary.0 → 16.0.0-canary.1
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/generated-native.d.ts +1 -0
- package/dist/build/swc/index.js +2 -3
- package/dist/build/swc/index.js.map +1 -1
- package/dist/build/swc/types.d.ts +1 -0
- 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/compiled/next-server/server.runtime.prod.js +8 -8
- package/dist/compiled/next-server/server.runtime.prod.js.map +1 -1
- package/dist/esm/build/index.js +3 -3
- package/dist/esm/build/swc/generated-native.d.ts +1 -0
- package/dist/esm/build/swc/index.js +2 -3
- package/dist/esm/build/swc/index.js.map +1 -1
- package/dist/esm/build/swc/types.js.map +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/export/worker.js +2 -0
- package/dist/esm/export/worker.js.map +1 -1
- package/dist/esm/server/config-schema.js +2 -1
- package/dist/esm/server/config-schema.js.map +1 -1
- package/dist/esm/server/config-shared.js +2 -1
- package/dist/esm/server/config-shared.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/dev/on-demand-entry-handler.js +2 -1
- package/dist/esm/server/dev/on-demand-entry-handler.js.map +1 -1
- package/dist/esm/server/dev/turbopack-utils.js +4 -2
- package/dist/esm/server/dev/turbopack-utils.js.map +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/server/next-server.js +2 -0
- package/dist/esm/server/next-server.js.map +1 -1
- package/dist/esm/server/node-environment-extensions/console-dim.external.js +61 -47
- package/dist/esm/server/node-environment-extensions/console-dim.external.js.map +1 -1
- package/dist/esm/server/node-environment-extensions/global-behaviors.js +23 -0
- package/dist/esm/server/node-environment-extensions/global-behaviors.js.map +1 -0
- package/dist/esm/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/export/worker.js +2 -0
- package/dist/export/worker.js.map +1 -1
- package/dist/server/config-schema.d.ts +1 -0
- package/dist/server/config-schema.js +2 -1
- package/dist/server/config-schema.js.map +1 -1
- package/dist/server/config-shared.d.ts +8 -0
- package/dist/server/config-shared.js +2 -1
- package/dist/server/config-shared.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/dev/on-demand-entry-handler.js +2 -1
- package/dist/server/dev/on-demand-entry-handler.js.map +1 -1
- package/dist/server/dev/turbopack-utils.js +4 -2
- package/dist/server/dev/turbopack-utils.js.map +1 -1
- package/dist/server/lib/app-info-log.js +1 -1
- package/dist/server/lib/start-server.js +1 -1
- package/dist/server/next-server.js +2 -0
- package/dist/server/next-server.js.map +1 -1
- package/dist/server/node-environment-extensions/console-dim.external.d.ts +4 -0
- package/dist/server/node-environment-extensions/console-dim.external.js +76 -50
- package/dist/server/node-environment-extensions/console-dim.external.js.map +1 -1
- package/dist/server/node-environment-extensions/global-behaviors.d.ts +7 -0
- package/dist/server/node-environment-extensions/global-behaviors.js +33 -0
- package/dist/server/node-environment-extensions/global-behaviors.js.map +1 -0
- 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
|
@@ -2,10 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
0 && (module.exports = {
|
|
6
|
+
registerGetCacheSignal: null,
|
|
7
|
+
setAbortedLogsStyle: null
|
|
8
|
+
});
|
|
9
|
+
function _export(target, all) {
|
|
10
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: all[name]
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
_export(exports, {
|
|
16
|
+
registerGetCacheSignal: function() {
|
|
8
17
|
return registerGetCacheSignal;
|
|
18
|
+
},
|
|
19
|
+
setAbortedLogsStyle: function() {
|
|
20
|
+
return setAbortedLogsStyle;
|
|
9
21
|
}
|
|
10
22
|
});
|
|
11
23
|
const _picocolors = require("../../lib/picocolors");
|
|
@@ -15,6 +27,13 @@ const cacheSignals = [];
|
|
|
15
27
|
function registerGetCacheSignal(getSignal) {
|
|
16
28
|
cacheSignals.push(getSignal);
|
|
17
29
|
}
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- we may use later and want parity with the HIDDEN_STYLE value
|
|
31
|
+
const DIMMED_STYLE = 'dimmed';
|
|
32
|
+
const HIDDEN_STYLE = 'hidden';
|
|
33
|
+
let currentAbortedLogsStyle = 'dimmed';
|
|
34
|
+
function setAbortedLogsStyle(style) {
|
|
35
|
+
currentAbortedLogsStyle = style;
|
|
36
|
+
}
|
|
18
37
|
const isColorSupported = (0, _picocolors.dim)('test') !== 'test';
|
|
19
38
|
// 50% opacity for dimmed text
|
|
20
39
|
const dimStyle = 'color: color(from currentColor xyz x y z / 0.5);';
|
|
@@ -148,58 +167,65 @@ function patchConsoleMethod(methodName) {
|
|
|
148
167
|
const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name');
|
|
149
168
|
const wrapperMethod = function(...args) {
|
|
150
169
|
const consoleStore = _consoleasyncstorageexternal.consoleAsyncStorage.getStore();
|
|
151
|
-
if
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (signal) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (signal.aborted) {
|
|
166
|
-
return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args);
|
|
167
|
-
} else {
|
|
168
|
-
return originalMethod.apply(this, args);
|
|
170
|
+
// First we see if there is a cache signal for our current scope. If we're in a client render it'll
|
|
171
|
+
// come from the client React cacheSignal implementation. If we are in a server render it'll come from
|
|
172
|
+
// the server React cacheSignal implementation. Any particular console call will be in one, the other, or neither
|
|
173
|
+
// scope and these signals return null if you are out of scope so this can be called from a single global patch
|
|
174
|
+
// and still work properly.
|
|
175
|
+
for(let i = 0; i < cacheSignals.length; i++){
|
|
176
|
+
const signal = cacheSignals[i]() // try to get a signal from registered functions
|
|
177
|
+
;
|
|
178
|
+
if (signal) {
|
|
179
|
+
// We are in a React Server render and can consult the React cache signal to determine if logs
|
|
180
|
+
// are now dimmable.
|
|
181
|
+
if (signal.aborted) {
|
|
182
|
+
if (currentAbortedLogsStyle === HIDDEN_STYLE) {
|
|
183
|
+
return;
|
|
169
184
|
}
|
|
185
|
+
return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args);
|
|
186
|
+
} else if ((consoleStore == null ? void 0 : consoleStore.dim) === true) {
|
|
187
|
+
return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args);
|
|
188
|
+
} else {
|
|
189
|
+
return originalMethod.apply(this, args);
|
|
170
190
|
}
|
|
171
191
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
return
|
|
192
|
+
}
|
|
193
|
+
// We need to fall back to checking the work unit store for two reasons.
|
|
194
|
+
// 1. Client React does not yet implement cacheSignal (it always returns null)
|
|
195
|
+
// 2. route.ts files aren't rendered with React but do have prerender semantics
|
|
196
|
+
// TODO in the future we should be able to remove this once there is a runnable cache
|
|
197
|
+
// scope independent of actual React rendering.
|
|
198
|
+
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
199
|
+
switch(workUnitStore == null ? void 0 : workUnitStore.type){
|
|
200
|
+
case 'prerender':
|
|
201
|
+
case 'prerender-runtime':
|
|
202
|
+
// These can be hit in a route handler. In the future we can use potential React.createCache API
|
|
203
|
+
// to create a cache scope for arbitrary computation and can move over to cacheSignal exclusively.
|
|
204
|
+
// fallthrough
|
|
205
|
+
case 'prerender-client':
|
|
206
|
+
// This is a react-dom/server render and won't have a cacheSignal until React adds this for the client world.
|
|
207
|
+
const renderSignal = workUnitStore.renderSignal;
|
|
208
|
+
if (renderSignal.aborted) {
|
|
209
|
+
if (currentAbortedLogsStyle === HIDDEN_STYLE) {
|
|
210
|
+
return;
|
|
191
211
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
212
|
+
return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args);
|
|
213
|
+
}
|
|
214
|
+
// intentional fallthrough
|
|
215
|
+
case 'prerender-legacy':
|
|
216
|
+
case 'prerender-ppr':
|
|
217
|
+
case 'cache':
|
|
218
|
+
case 'unstable-cache':
|
|
219
|
+
case 'private-cache':
|
|
220
|
+
case 'request':
|
|
221
|
+
case undefined:
|
|
222
|
+
if ((consoleStore == null ? void 0 : consoleStore.dim) === true) {
|
|
223
|
+
return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args);
|
|
224
|
+
} else {
|
|
199
225
|
return originalMethod.apply(this, args);
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
226
|
+
}
|
|
227
|
+
default:
|
|
228
|
+
workUnitStore;
|
|
203
229
|
}
|
|
204
230
|
};
|
|
205
231
|
if (originalName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/node-environment-extensions/console-dim.external.tsx"],"sourcesContent":["import { dim } from '../../lib/picocolors'\nimport {\n consoleAsyncStorage,\n type ConsoleStore,\n} from '../app-render/console-async-storage.external'\nimport { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external'\n\ntype GetCacheSignal = () => AbortSignal | null\nconst cacheSignals: Array<GetCacheSignal> = []\nexport function registerGetCacheSignal(getSignal: GetCacheSignal): void {\n cacheSignals.push(getSignal)\n}\n\ntype InterceptableConsoleMethod =\n | 'error'\n | 'assert'\n | 'debug'\n | 'dir'\n | 'dirxml'\n | 'group'\n | 'groupCollapsed'\n | 'groupEnd'\n | 'info'\n | 'log'\n | 'table'\n | 'trace'\n | 'warn'\n\nconst isColorSupported = dim('test') !== 'test'\n\n// 50% opacity for dimmed text\nconst dimStyle = 'color: color(from currentColor xyz x y z / 0.5);'\nconst reactBadgeFormat = '\\x1b[0m\\x1b[7m%c%s\\x1b[0m%c '\n\nfunction dimmedConsoleArgs(...inputArgs: any[]): any[] {\n if (!isColorSupported) {\n return inputArgs\n }\n\n const newArgs = inputArgs.slice(0)\n let template = ''\n let argumentsPointer = 0\n if (typeof inputArgs[0] === 'string') {\n const originalTemplateString = inputArgs[0]\n // Remove the original template string from the args.\n newArgs.splice(argumentsPointer, 1)\n argumentsPointer += 1\n\n let i = 0\n if (originalTemplateString.startsWith(reactBadgeFormat)) {\n i = reactBadgeFormat.length\n // for `format` we already moved the pointer earlier\n // style, badge, reset style\n argumentsPointer += 3\n template += reactBadgeFormat\n // React's badge reset styles, reapply dimming\n template += '\\x1b[2m%c'\n // argumentsPointer includes template\n newArgs.splice(argumentsPointer - 1, 0, dimStyle)\n // dim the badge\n newArgs[0] += `;${dimStyle}`\n }\n\n for (i; i < originalTemplateString.length; i++) {\n const currentChar = originalTemplateString[i]\n if (currentChar !== '%') {\n template += currentChar\n continue\n }\n\n const nextChar = originalTemplateString[i + 1]\n ++i\n\n switch (nextChar) {\n case 'f':\n case 'O':\n case 'o':\n case 'd':\n case 's':\n case 'i':\n case 'c':\n ++argumentsPointer\n template += `%${nextChar}`\n break\n default:\n template += `%${nextChar}`\n }\n }\n }\n\n for (\n argumentsPointer;\n argumentsPointer < inputArgs.length;\n ++argumentsPointer\n ) {\n const arg = inputArgs[argumentsPointer]\n const argType = typeof arg\n if (argumentsPointer > 0) {\n template += ' '\n }\n switch (argType) {\n case 'boolean':\n case 'string':\n template += '%s'\n break\n case 'bigint':\n template += '%s'\n break\n case 'number':\n if (arg % 0) {\n template += '%f'\n } else {\n template += '%d'\n }\n break\n case 'object':\n template += '%O'\n break\n case 'symbol':\n case 'undefined':\n case 'function':\n template += '%s'\n break\n default:\n // deopt to string for new, unknown types\n template += '%s'\n }\n }\n\n template += '\\x1b[22m'\n\n return [dim(`%c${template}`), dimStyle, ...newArgs]\n}\n\nfunction convertToDimmedArgs(\n methodName: InterceptableConsoleMethod,\n args: any[]\n): any[] {\n switch (methodName) {\n case 'dir':\n case 'dirxml':\n case 'group':\n case 'groupCollapsed':\n case 'groupEnd':\n case 'table': {\n // These methods cannot be colorized because they don't take a formatting string.\n return args\n }\n case 'assert': {\n // assert takes formatting options as the second argument.\n return [args[0]].concat(...dimmedConsoleArgs(args[1], ...args.slice(2)))\n }\n case 'error':\n case 'debug':\n case 'info':\n case 'log':\n case 'trace':\n case 'warn':\n return dimmedConsoleArgs(args[0], ...args.slice(1))\n default:\n return methodName satisfies never\n }\n}\n\n// Based on https://github.com/facebook/react/blob/28dc0776be2e1370fe217549d32aee2519f0cf05/packages/react-server/src/ReactFlightServer.js#L248\nfunction patchConsoleMethod(methodName: InterceptableConsoleMethod): void {\n const descriptor = Object.getOwnPropertyDescriptor(console, methodName)\n if (\n descriptor &&\n (descriptor.configurable || descriptor.writable) &&\n typeof descriptor.value === 'function'\n ) {\n const originalMethod = descriptor.value\n const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name')\n const wrapperMethod = function (this: typeof console, ...args: any[]) {\n const consoleStore = consoleAsyncStorage.getStore()\n\n if (consoleStore?.dim === true) {\n return applyWithDimming.call(\n this,\n consoleStore,\n originalMethod,\n methodName,\n args\n )\n } else {\n // First we see if there is a cache signal for our current scope. If we're in a client render it'll\n // come from the client React cacheSignal implementation. If we are in a server render it'll come from\n // the server React cacheSignal implementation. Any particular console call will be in one, the other, or neither\n // scope and these signals return null if you are out of scope so this can be called from a single global patch\n // and still work properly.\n for (let i = 0; i < cacheSignals.length; i++) {\n const signal = cacheSignals[i]() // try to get a signal from registered functions\n if (signal) {\n // We are in a React Server render and can consult the React cache signal to determine if logs\n // are now dimmable.\n if (signal.aborted) {\n return applyWithDimming.call(\n this,\n consoleStore,\n originalMethod,\n methodName,\n args\n )\n } else {\n return originalMethod.apply(this, args)\n }\n }\n }\n // We need to fall back to checking the work unit store for two reasons.\n // 1. Client React does not yet implement cacheSignal (it always returns null)\n // 2. route.ts files aren't rendered with React but do have prerender semantics\n // TODO in the future we should be able to remove this once there is a runnable cache\n // scope independent of actual React rendering.\n const workUnitStore = workUnitAsyncStorage.getStore()\n switch (workUnitStore?.type) {\n case 'prerender':\n case 'prerender-runtime':\n // These can be hit in a route handler. In the future we can use potential React.createCache API\n // to create a cache scope for arbitrary computation and can move over to cacheSignal exclusively.\n // fallthrough\n case 'prerender-client':\n // This is a react-dom/server render and won't have a cacheSignal until React adds this for the client world.\n const renderSignal = workUnitStore.renderSignal\n if (renderSignal.aborted) {\n return applyWithDimming.call(\n this,\n consoleStore,\n originalMethod,\n methodName,\n args\n )\n } else {\n return originalMethod.apply(this, args)\n }\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n case 'request':\n case undefined:\n return originalMethod.apply(this, args)\n default:\n workUnitStore satisfies never\n }\n }\n }\n if (originalName) {\n Object.defineProperty(wrapperMethod, 'name', originalName)\n }\n Object.defineProperty(console, methodName, {\n value: wrapperMethod,\n })\n }\n}\n\nfunction applyWithDimming<F extends (this: Console, ...args: any[]) => any>(\n this: Console,\n consoleStore: undefined | ConsoleStore,\n method: F,\n methodName: InterceptableConsoleMethod,\n args: Parameters<F>\n): ReturnType<F> {\n if (consoleStore?.dim === true) {\n return method.apply(this, convertToDimmedArgs(methodName, args))\n } else {\n return consoleAsyncStorage.run(\n DIMMED_STORE,\n method.bind(this, ...convertToDimmedArgs(methodName, args))\n )\n }\n}\n\nconst DIMMED_STORE = { dim: true }\n\npatchConsoleMethod('error')\npatchConsoleMethod('assert')\npatchConsoleMethod('debug')\npatchConsoleMethod('dir')\npatchConsoleMethod('dirxml')\npatchConsoleMethod('group')\npatchConsoleMethod('groupCollapsed')\npatchConsoleMethod('groupEnd')\npatchConsoleMethod('info')\npatchConsoleMethod('log')\npatchConsoleMethod('table')\npatchConsoleMethod('trace')\npatchConsoleMethod('warn')\n"],"names":["registerGetCacheSignal","cacheSignals","getSignal","push","isColorSupported","dim","dimStyle","reactBadgeFormat","dimmedConsoleArgs","inputArgs","newArgs","slice","template","argumentsPointer","originalTemplateString","splice","i","startsWith","length","currentChar","nextChar","arg","argType","convertToDimmedArgs","methodName","args","concat","patchConsoleMethod","descriptor","Object","getOwnPropertyDescriptor","console","configurable","writable","value","originalMethod","originalName","wrapperMethod","consoleStore","consoleAsyncStorage","getStore","applyWithDimming","call","signal","aborted","apply","workUnitStore","workUnitAsyncStorage","type","renderSignal","undefined","defineProperty","method","run","DIMMED_STORE","bind"],"mappings":"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","ignoreList":[0]}
|
|
1
|
+
{"version":3,"sources":["../../../src/server/node-environment-extensions/console-dim.external.tsx"],"sourcesContent":["import { dim } from '../../lib/picocolors'\nimport {\n consoleAsyncStorage,\n type ConsoleStore,\n} from '../app-render/console-async-storage.external'\nimport { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external'\n\ntype GetCacheSignal = () => AbortSignal | null\nconst cacheSignals: Array<GetCacheSignal> = []\nexport function registerGetCacheSignal(getSignal: GetCacheSignal): void {\n cacheSignals.push(getSignal)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars -- we may use later and want parity with the HIDDEN_STYLE value\nconst DIMMED_STYLE = 'dimmed'\nconst HIDDEN_STYLE = 'hidden'\n\ntype LogStyle = typeof DIMMED_STYLE | typeof HIDDEN_STYLE\n\nlet currentAbortedLogsStyle: LogStyle = 'dimmed'\nexport function setAbortedLogsStyle(style: LogStyle) {\n currentAbortedLogsStyle = style\n}\n\ntype InterceptableConsoleMethod =\n | 'error'\n | 'assert'\n | 'debug'\n | 'dir'\n | 'dirxml'\n | 'group'\n | 'groupCollapsed'\n | 'groupEnd'\n | 'info'\n | 'log'\n | 'table'\n | 'trace'\n | 'warn'\n\nconst isColorSupported = dim('test') !== 'test'\n\n// 50% opacity for dimmed text\nconst dimStyle = 'color: color(from currentColor xyz x y z / 0.5);'\nconst reactBadgeFormat = '\\x1b[0m\\x1b[7m%c%s\\x1b[0m%c '\n\nfunction dimmedConsoleArgs(...inputArgs: any[]): any[] {\n if (!isColorSupported) {\n return inputArgs\n }\n\n const newArgs = inputArgs.slice(0)\n let template = ''\n let argumentsPointer = 0\n if (typeof inputArgs[0] === 'string') {\n const originalTemplateString = inputArgs[0]\n // Remove the original template string from the args.\n newArgs.splice(argumentsPointer, 1)\n argumentsPointer += 1\n\n let i = 0\n if (originalTemplateString.startsWith(reactBadgeFormat)) {\n i = reactBadgeFormat.length\n // for `format` we already moved the pointer earlier\n // style, badge, reset style\n argumentsPointer += 3\n template += reactBadgeFormat\n // React's badge reset styles, reapply dimming\n template += '\\x1b[2m%c'\n // argumentsPointer includes template\n newArgs.splice(argumentsPointer - 1, 0, dimStyle)\n // dim the badge\n newArgs[0] += `;${dimStyle}`\n }\n\n for (i; i < originalTemplateString.length; i++) {\n const currentChar = originalTemplateString[i]\n if (currentChar !== '%') {\n template += currentChar\n continue\n }\n\n const nextChar = originalTemplateString[i + 1]\n ++i\n\n switch (nextChar) {\n case 'f':\n case 'O':\n case 'o':\n case 'd':\n case 's':\n case 'i':\n case 'c':\n ++argumentsPointer\n template += `%${nextChar}`\n break\n default:\n template += `%${nextChar}`\n }\n }\n }\n\n for (\n argumentsPointer;\n argumentsPointer < inputArgs.length;\n ++argumentsPointer\n ) {\n const arg = inputArgs[argumentsPointer]\n const argType = typeof arg\n if (argumentsPointer > 0) {\n template += ' '\n }\n switch (argType) {\n case 'boolean':\n case 'string':\n template += '%s'\n break\n case 'bigint':\n template += '%s'\n break\n case 'number':\n if (arg % 0) {\n template += '%f'\n } else {\n template += '%d'\n }\n break\n case 'object':\n template += '%O'\n break\n case 'symbol':\n case 'undefined':\n case 'function':\n template += '%s'\n break\n default:\n // deopt to string for new, unknown types\n template += '%s'\n }\n }\n\n template += '\\x1b[22m'\n\n return [dim(`%c${template}`), dimStyle, ...newArgs]\n}\n\nfunction convertToDimmedArgs(\n methodName: InterceptableConsoleMethod,\n args: any[]\n): any[] {\n switch (methodName) {\n case 'dir':\n case 'dirxml':\n case 'group':\n case 'groupCollapsed':\n case 'groupEnd':\n case 'table': {\n // These methods cannot be colorized because they don't take a formatting string.\n return args\n }\n case 'assert': {\n // assert takes formatting options as the second argument.\n return [args[0]].concat(...dimmedConsoleArgs(args[1], ...args.slice(2)))\n }\n case 'error':\n case 'debug':\n case 'info':\n case 'log':\n case 'trace':\n case 'warn':\n return dimmedConsoleArgs(args[0], ...args.slice(1))\n default:\n return methodName satisfies never\n }\n}\n\n// Based on https://github.com/facebook/react/blob/28dc0776be2e1370fe217549d32aee2519f0cf05/packages/react-server/src/ReactFlightServer.js#L248\nfunction patchConsoleMethod(methodName: InterceptableConsoleMethod): void {\n const descriptor = Object.getOwnPropertyDescriptor(console, methodName)\n if (\n descriptor &&\n (descriptor.configurable || descriptor.writable) &&\n typeof descriptor.value === 'function'\n ) {\n const originalMethod = descriptor.value\n const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name')\n const wrapperMethod = function (this: typeof console, ...args: any[]) {\n const consoleStore = consoleAsyncStorage.getStore()\n\n // First we see if there is a cache signal for our current scope. If we're in a client render it'll\n // come from the client React cacheSignal implementation. If we are in a server render it'll come from\n // the server React cacheSignal implementation. Any particular console call will be in one, the other, or neither\n // scope and these signals return null if you are out of scope so this can be called from a single global patch\n // and still work properly.\n for (let i = 0; i < cacheSignals.length; i++) {\n const signal = cacheSignals[i]() // try to get a signal from registered functions\n if (signal) {\n // We are in a React Server render and can consult the React cache signal to determine if logs\n // are now dimmable.\n if (signal.aborted) {\n if (currentAbortedLogsStyle === HIDDEN_STYLE) {\n return\n }\n return applyWithDimming.call(\n this,\n consoleStore,\n originalMethod,\n methodName,\n args\n )\n } else if (consoleStore?.dim === true) {\n return applyWithDimming.call(\n this,\n consoleStore,\n originalMethod,\n methodName,\n args\n )\n } else {\n return originalMethod.apply(this, args)\n }\n }\n }\n\n // We need to fall back to checking the work unit store for two reasons.\n // 1. Client React does not yet implement cacheSignal (it always returns null)\n // 2. route.ts files aren't rendered with React but do have prerender semantics\n // TODO in the future we should be able to remove this once there is a runnable cache\n // scope independent of actual React rendering.\n const workUnitStore = workUnitAsyncStorage.getStore()\n switch (workUnitStore?.type) {\n case 'prerender':\n case 'prerender-runtime':\n // These can be hit in a route handler. In the future we can use potential React.createCache API\n // to create a cache scope for arbitrary computation and can move over to cacheSignal exclusively.\n // fallthrough\n case 'prerender-client':\n // This is a react-dom/server render and won't have a cacheSignal until React adds this for the client world.\n const renderSignal = workUnitStore.renderSignal\n if (renderSignal.aborted) {\n if (currentAbortedLogsStyle === HIDDEN_STYLE) {\n return\n }\n return applyWithDimming.call(\n this,\n consoleStore,\n originalMethod,\n methodName,\n args\n )\n }\n // intentional fallthrough\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n case 'request':\n case undefined:\n if (consoleStore?.dim === true) {\n return applyWithDimming.call(\n this,\n consoleStore,\n originalMethod,\n methodName,\n args\n )\n } else {\n return originalMethod.apply(this, args)\n }\n default:\n workUnitStore satisfies never\n }\n }\n if (originalName) {\n Object.defineProperty(wrapperMethod, 'name', originalName)\n }\n Object.defineProperty(console, methodName, {\n value: wrapperMethod,\n })\n }\n}\n\nfunction applyWithDimming<F extends (this: Console, ...args: any[]) => any>(\n this: Console,\n consoleStore: undefined | ConsoleStore,\n method: F,\n methodName: InterceptableConsoleMethod,\n args: Parameters<F>\n): ReturnType<F> {\n if (consoleStore?.dim === true) {\n return method.apply(this, convertToDimmedArgs(methodName, args))\n } else {\n return consoleAsyncStorage.run(\n DIMMED_STORE,\n method.bind(this, ...convertToDimmedArgs(methodName, args))\n )\n }\n}\n\nconst DIMMED_STORE = { dim: true }\n\npatchConsoleMethod('error')\npatchConsoleMethod('assert')\npatchConsoleMethod('debug')\npatchConsoleMethod('dir')\npatchConsoleMethod('dirxml')\npatchConsoleMethod('group')\npatchConsoleMethod('groupCollapsed')\npatchConsoleMethod('groupEnd')\npatchConsoleMethod('info')\npatchConsoleMethod('log')\npatchConsoleMethod('table')\npatchConsoleMethod('trace')\npatchConsoleMethod('warn')\n"],"names":["registerGetCacheSignal","setAbortedLogsStyle","cacheSignals","getSignal","push","DIMMED_STYLE","HIDDEN_STYLE","currentAbortedLogsStyle","style","isColorSupported","dim","dimStyle","reactBadgeFormat","dimmedConsoleArgs","inputArgs","newArgs","slice","template","argumentsPointer","originalTemplateString","splice","i","startsWith","length","currentChar","nextChar","arg","argType","convertToDimmedArgs","methodName","args","concat","patchConsoleMethod","descriptor","Object","getOwnPropertyDescriptor","console","configurable","writable","value","originalMethod","originalName","wrapperMethod","consoleStore","consoleAsyncStorage","getStore","signal","aborted","applyWithDimming","call","apply","workUnitStore","workUnitAsyncStorage","type","renderSignal","undefined","defineProperty","method","run","DIMMED_STORE","bind"],"mappings":"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","ignoreList":[0]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unlike most files in the node-environment-extensions folder this one is not
|
|
3
|
+
* an extension itself but it exposes a function to install config based global
|
|
4
|
+
* behaviors that should be loaded whenever a Node Server or Node Worker are created.
|
|
5
|
+
*/
|
|
6
|
+
import type { NextConfigComplete } from '../config-shared';
|
|
7
|
+
export declare function installGlobalBehaviors(config: NextConfigComplete): void;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unlike most files in the node-environment-extensions folder this one is not
|
|
3
|
+
* an extension itself but it exposes a function to install config based global
|
|
4
|
+
* behaviors that should be loaded whenever a Node Server or Node Worker are created.
|
|
5
|
+
*/ "use strict";
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(exports, "installGlobalBehaviors", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return installGlobalBehaviors;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
const _invarianterror = require("../../shared/lib/invariant-error");
|
|
16
|
+
const _consoledimexternal = require("./console-dim.external");
|
|
17
|
+
function installGlobalBehaviors(config) {
|
|
18
|
+
var _config_experimental;
|
|
19
|
+
if (process.env.NEXT_RUNTIME === 'edge') {
|
|
20
|
+
throw Object.defineProperty(new _invarianterror.InvariantError('Expected not to install Node.js global behaviors in the edge runtime.'), "__NEXT_ERROR_CODE", {
|
|
21
|
+
value: "E874",
|
|
22
|
+
enumerable: false,
|
|
23
|
+
configurable: true
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (((_config_experimental = config.experimental) == null ? void 0 : _config_experimental.hideLogsAfterAbort) === true) {
|
|
27
|
+
(0, _consoledimexternal.setAbortedLogsStyle)('hidden');
|
|
28
|
+
} else {
|
|
29
|
+
(0, _consoledimexternal.setAbortedLogsStyle)('dimmed');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=global-behaviors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/server/node-environment-extensions/global-behaviors.tsx"],"sourcesContent":["/**\n * Unlike most files in the node-environment-extensions folder this one is not\n * an extension itself but it exposes a function to install config based global\n * behaviors that should be loaded whenever a Node Server or Node Worker are created.\n */\nimport type { NextConfigComplete } from '../config-shared'\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nimport { setAbortedLogsStyle } from './console-dim.external'\n\nexport function installGlobalBehaviors(config: NextConfigComplete) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n throw new InvariantError(\n 'Expected not to install Node.js global behaviors in the edge runtime.'\n )\n }\n\n if (config.experimental?.hideLogsAfterAbort === true) {\n setAbortedLogsStyle('hidden')\n } else {\n setAbortedLogsStyle('dimmed')\n }\n}\n"],"names":["installGlobalBehaviors","config","process","env","NEXT_RUNTIME","InvariantError","experimental","hideLogsAfterAbort","setAbortedLogsStyle"],"mappings":"AAAA;;;;CAIC;;;;+BAMeA;;;eAAAA;;;gCAJe;oCAEK;AAE7B,SAASA,uBAAuBC,MAA0B;QAO3DA;IANJ,IAAIC,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;QACvC,MAAM,qBAEL,CAFK,IAAIC,8BAAc,CACtB,0EADI,qBAAA;mBAAA;wBAAA;0BAAA;QAEN;IACF;IAEA,IAAIJ,EAAAA,uBAAAA,OAAOK,YAAY,qBAAnBL,qBAAqBM,kBAAkB,MAAK,MAAM;QACpDC,IAAAA,uCAAmB,EAAC;IACtB,OAAO;QACLA,IAAAA,uCAAmB,EAAC;IACtB;AACF","ignoreList":[0]}
|
|
@@ -21,7 +21,7 @@ _export(exports, {
|
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
function isStableBuild() {
|
|
24
|
-
return !"16.0.0-canary.
|
|
24
|
+
return !"16.0.0-canary.1"?.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-canary.
|
|
14
|
+
if (typeof "16.0.0-canary.1" !== 'string') {
|
|
15
15
|
return [];
|
|
16
16
|
}
|
|
17
17
|
const payload = {
|
|
18
|
-
nextVersion: "16.0.0-canary.
|
|
18
|
+
nextVersion: "16.0.0-canary.1",
|
|
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-canary.
|
|
15
|
+
if (typeof "16.0.0-canary.1" !== 'string') {
|
|
16
16
|
return [];
|
|
17
17
|
}
|
|
18
18
|
const { images, i18n } = nextConfig || {};
|
|
19
19
|
const payload = {
|
|
20
|
-
nextVersion: "16.0.0-canary.
|
|
20
|
+
nextVersion: "16.0.0-canary.1",
|
|
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-canary.
|
|
3
|
+
"version": "16.0.0-canary.1",
|
|
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-canary.
|
|
101
|
+
"@next/env": "16.0.0-canary.1",
|
|
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-canary.
|
|
132
|
-
"@next/swc-darwin-x64": "16.0.0-canary.
|
|
133
|
-
"@next/swc-linux-arm64-gnu": "16.0.0-canary.
|
|
134
|
-
"@next/swc-linux-arm64-musl": "16.0.0-canary.
|
|
135
|
-
"@next/swc-linux-x64-gnu": "16.0.0-canary.
|
|
136
|
-
"@next/swc-linux-x64-musl": "16.0.0-canary.
|
|
137
|
-
"@next/swc-win32-arm64-msvc": "16.0.0-canary.
|
|
138
|
-
"@next/swc-win32-x64-msvc": "16.0.0-canary.
|
|
131
|
+
"@next/swc-darwin-arm64": "16.0.0-canary.1",
|
|
132
|
+
"@next/swc-darwin-x64": "16.0.0-canary.1",
|
|
133
|
+
"@next/swc-linux-arm64-gnu": "16.0.0-canary.1",
|
|
134
|
+
"@next/swc-linux-arm64-musl": "16.0.0-canary.1",
|
|
135
|
+
"@next/swc-linux-x64-gnu": "16.0.0-canary.1",
|
|
136
|
+
"@next/swc-linux-x64-musl": "16.0.0-canary.1",
|
|
137
|
+
"@next/swc-win32-arm64-msvc": "16.0.0-canary.1",
|
|
138
|
+
"@next/swc-win32-x64-msvc": "16.0.0-canary.1"
|
|
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-canary.
|
|
174
|
-
"@next/polyfill-module": "16.0.0-canary.
|
|
175
|
-
"@next/polyfill-nomodule": "16.0.0-canary.
|
|
176
|
-
"@next/react-refresh-utils": "16.0.0-canary.
|
|
177
|
-
"@next/swc": "16.0.0-canary.
|
|
173
|
+
"@next/font": "16.0.0-canary.1",
|
|
174
|
+
"@next/polyfill-module": "16.0.0-canary.1",
|
|
175
|
+
"@next/polyfill-nomodule": "16.0.0-canary.1",
|
|
176
|
+
"@next/react-refresh-utils": "16.0.0-canary.1",
|
|
177
|
+
"@next/swc": "16.0.0-canary.1",
|
|
178
178
|
"@opentelemetry/api": "1.6.0",
|
|
179
179
|
"@playwright/test": "1.51.1",
|
|
180
180
|
"@rspack/core": "1.5.0",
|