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.
Files changed (81) hide show
  1. package/dist/bin/next +1 -1
  2. package/dist/build/index.js +3 -3
  3. package/dist/build/swc/generated-native.d.ts +1 -0
  4. package/dist/build/swc/index.js +2 -3
  5. package/dist/build/swc/index.js.map +1 -1
  6. package/dist/build/swc/types.d.ts +1 -0
  7. package/dist/build/webpack-config.js +2 -2
  8. package/dist/client/app-bootstrap.js +1 -1
  9. package/dist/client/index.js +1 -1
  10. package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js +1 -1
  11. package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js.map +1 -1
  12. package/dist/compiled/next-server/pages-api.runtime.dev.js +1 -1
  13. package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
  14. package/dist/compiled/next-server/pages-api.runtime.prod.js +1 -1
  15. package/dist/compiled/next-server/pages-api.runtime.prod.js.map +1 -1
  16. package/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  17. package/dist/compiled/next-server/pages-turbo.runtime.prod.js.map +1 -1
  18. package/dist/compiled/next-server/pages.runtime.dev.js +1 -1
  19. package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
  20. package/dist/compiled/next-server/pages.runtime.prod.js +1 -1
  21. package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
  22. package/dist/compiled/next-server/server.runtime.prod.js +8 -8
  23. package/dist/compiled/next-server/server.runtime.prod.js.map +1 -1
  24. package/dist/esm/build/index.js +3 -3
  25. package/dist/esm/build/swc/generated-native.d.ts +1 -0
  26. package/dist/esm/build/swc/index.js +2 -3
  27. package/dist/esm/build/swc/index.js.map +1 -1
  28. package/dist/esm/build/swc/types.js.map +1 -1
  29. package/dist/esm/build/webpack-config.js +2 -2
  30. package/dist/esm/client/app-bootstrap.js +1 -1
  31. package/dist/esm/client/index.js +1 -1
  32. package/dist/esm/export/worker.js +2 -0
  33. package/dist/esm/export/worker.js.map +1 -1
  34. package/dist/esm/server/config-schema.js +2 -1
  35. package/dist/esm/server/config-schema.js.map +1 -1
  36. package/dist/esm/server/config-shared.js +2 -1
  37. package/dist/esm/server/config-shared.js.map +1 -1
  38. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  39. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  40. package/dist/esm/server/dev/on-demand-entry-handler.js +2 -1
  41. package/dist/esm/server/dev/on-demand-entry-handler.js.map +1 -1
  42. package/dist/esm/server/dev/turbopack-utils.js +4 -2
  43. package/dist/esm/server/dev/turbopack-utils.js.map +1 -1
  44. package/dist/esm/server/lib/app-info-log.js +1 -1
  45. package/dist/esm/server/lib/start-server.js +1 -1
  46. package/dist/esm/server/next-server.js +2 -0
  47. package/dist/esm/server/next-server.js.map +1 -1
  48. package/dist/esm/server/node-environment-extensions/console-dim.external.js +61 -47
  49. package/dist/esm/server/node-environment-extensions/console-dim.external.js.map +1 -1
  50. package/dist/esm/server/node-environment-extensions/global-behaviors.js +23 -0
  51. package/dist/esm/server/node-environment-extensions/global-behaviors.js.map +1 -0
  52. package/dist/esm/shared/lib/errors/canary-only-config-error.js +1 -1
  53. package/dist/export/worker.js +2 -0
  54. package/dist/export/worker.js.map +1 -1
  55. package/dist/server/config-schema.d.ts +1 -0
  56. package/dist/server/config-schema.js +2 -1
  57. package/dist/server/config-schema.js.map +1 -1
  58. package/dist/server/config-shared.d.ts +8 -0
  59. package/dist/server/config-shared.js +2 -1
  60. package/dist/server/config-shared.js.map +1 -1
  61. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  62. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  63. package/dist/server/dev/on-demand-entry-handler.js +2 -1
  64. package/dist/server/dev/on-demand-entry-handler.js.map +1 -1
  65. package/dist/server/dev/turbopack-utils.js +4 -2
  66. package/dist/server/dev/turbopack-utils.js.map +1 -1
  67. package/dist/server/lib/app-info-log.js +1 -1
  68. package/dist/server/lib/start-server.js +1 -1
  69. package/dist/server/next-server.js +2 -0
  70. package/dist/server/next-server.js.map +1 -1
  71. package/dist/server/node-environment-extensions/console-dim.external.d.ts +4 -0
  72. package/dist/server/node-environment-extensions/console-dim.external.js +76 -50
  73. package/dist/server/node-environment-extensions/console-dim.external.js.map +1 -1
  74. package/dist/server/node-environment-extensions/global-behaviors.d.ts +7 -0
  75. package/dist/server/node-environment-extensions/global-behaviors.js +33 -0
  76. package/dist/server/node-environment-extensions/global-behaviors.js.map +1 -0
  77. package/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  78. package/dist/telemetry/anonymous-meta.js +1 -1
  79. package/dist/telemetry/events/session-stopped.js +2 -2
  80. package/dist/telemetry/events/version.js +2 -2
  81. package/package.json +15 -15
@@ -2,10 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "registerGetCacheSignal", {
6
- enumerable: true,
7
- get: function() {
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 ((consoleStore == null ? void 0 : consoleStore.dim) === true) {
152
- return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args);
153
- } else {
154
- // First we see if there is a cache signal for our current scope. If we're in a client render it'll
155
- // come from the client React cacheSignal implementation. If we are in a server render it'll come from
156
- // the server React cacheSignal implementation. Any particular console call will be in one, the other, or neither
157
- // scope and these signals return null if you are out of scope so this can be called from a single global patch
158
- // and still work properly.
159
- for(let i = 0; i < cacheSignals.length; i++){
160
- const signal = cacheSignals[i]() // try to get a signal from registered functions
161
- ;
162
- if (signal) {
163
- // We are in a React Server render and can consult the React cache signal to determine if logs
164
- // are now dimmable.
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
- // We need to fall back to checking the work unit store for two reasons.
173
- // 1. Client React does not yet implement cacheSignal (it always returns null)
174
- // 2. route.ts files aren't rendered with React but do have prerender semantics
175
- // TODO in the future we should be able to remove this once there is a runnable cache
176
- // scope independent of actual React rendering.
177
- const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
178
- switch(workUnitStore == null ? void 0 : workUnitStore.type){
179
- case 'prerender':
180
- case 'prerender-runtime':
181
- // These can be hit in a route handler. In the future we can use potential React.createCache API
182
- // to create a cache scope for arbitrary computation and can move over to cacheSignal exclusively.
183
- // fallthrough
184
- case 'prerender-client':
185
- // This is a react-dom/server render and won't have a cacheSignal until React adds this for the client world.
186
- const renderSignal = workUnitStore.renderSignal;
187
- if (renderSignal.aborted) {
188
- return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args);
189
- } else {
190
- return originalMethod.apply(this, args);
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
- case 'prerender-legacy':
193
- case 'prerender-ppr':
194
- case 'cache':
195
- case 'unstable-cache':
196
- case 'private-cache':
197
- case 'request':
198
- case undefined:
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
- default:
201
- workUnitStore;
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.0"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
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){
@@ -81,7 +81,7 @@ function getAnonymousMeta() {
81
81
  isWsl: _iswsl.default,
82
82
  isCI: _ciinfo.isCI,
83
83
  ciName: _ciinfo.isCI && _ciinfo.name || null,
84
- nextVersion: "16.0.0-canary.0"
84
+ nextVersion: "16.0.0-canary.1"
85
85
  };
86
86
  return traits;
87
87
  }
@@ -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.0" !== 'string') {
14
+ if (typeof "16.0.0-canary.1" !== 'string') {
15
15
  return [];
16
16
  }
17
17
  const payload = {
18
- nextVersion: "16.0.0-canary.0",
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.0" !== 'string') {
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.0",
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.0",
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.0",
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.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"
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.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",
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",