New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

next

Package Overview
Dependencies
Maintainers
3
Versions
2955
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

next - npm Package Compare versions

Comparing version 15.2.0-canary.11 to 15.2.0-canary.12

dist/esm/lib/multi-file-writer.js

2

dist/build/swc/index.js

@@ -130,3 +130,3 @@ /* eslint-disable @typescript-eslint/no-use-before-define */ "use strict";

}
const nextVersion = "15.2.0-canary.11";
const nextVersion = "15.2.0-canary.12";
const ArchName = (0, _os.arch)();

@@ -133,0 +133,0 @@ const PlatformName = (0, _os.platform)();

@@ -172,5 +172,6 @@ "use strict";

const appDirRelativeEntryPath = (_this_buildTraceContext_entriesTrace = this.buildTraceContext.entriesTrace) == null ? void 0 : (_this_buildTraceContext_entriesTrace_absolutePathByEntryName_entrypoint_name = _this_buildTraceContext_entriesTrace.absolutePathByEntryName[entrypoint.name]) == null ? void 0 : _this_buildTraceContext_entriesTrace_absolutePathByEntryName_entrypoint_name.replace(this.appDir, '');
const entryIsStaticMetadataRoute = appDirRelativeEntryPath && (0, _ismetadataroute.isStaticMetadataRoute)(appDirRelativeEntryPath);
// Include the client reference manifest in the trace, but not for
// static metadata routes, for which we don't generate those.
if (appDirRelativeEntryPath && !(0, _ismetadataroute.isStaticMetadataRoute)(appDirRelativeEntryPath)) {
if (!entryIsStaticMetadataRoute) {
entryFiles.add(_path.default.join(outputPath, outputPrefix, entrypoint.name.replace(/%5F/g, '_') + '_' + _constants.CLIENT_REFERENCE_MANIFEST + '.js'));

@@ -177,0 +178,0 @@ }

@@ -16,3 +16,3 @@ /**

});
const version = "15.2.0-canary.11";
const version = "15.2.0-canary.12";
window.next = {

@@ -19,0 +19,0 @@ version,

@@ -31,3 +31,3 @@ "use strict";

const data = _tagged_template_literal_loose._([
"\n .error-feedback {\n display: flex;\n align-items: center;\n gap: var(--size-gap);\n }\n\n .error-feedback-thanks {\n height: 1.5rem; /* 24px */\n display: flex;\n align-items: center;\n padding-right: 4px; /* To match the 4px inner padding of the thumbs up and down icons */\n }\n\n .feedback-button {\n background: none;\n border: none;\n border-radius: var(--rounded-md);\n padding: var(--size-gap-half);\n width: 1.5rem; /* 24px */\n height: 1.5rem; /* 24px */\n display: flex;\n align-items: center;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n background: var(--color-gray-alpha-100);\n }\n\n &:active {\n background: var(--color-gray-alpha-200);\n }\n }\n\n .feedback-button:disabled {\n opacity: 0.7;\n cursor: not-allowed;\n }\n\n .feedback-button.voted {\n background: var(--color-gray-alpha-200);\n }\n\n .thumbs-up-icon,\n .thumbs-down-icon {\n color: var(--color-gray-900);\n }\n"
"\n .error-feedback {\n display: flex;\n gap: var(--size-gap);\n white-space: nowrap;\n }\n\n .error-feedback-thanks {\n height: 1.5rem; /* 24px */\n display: flex;\n align-items: center;\n padding-right: 4px; /* To match the 4px inner padding of the thumbs up and down icons */\n }\n\n .feedback-button {\n background: none;\n border: none;\n border-radius: var(--rounded-md);\n padding: var(--size-gap-half);\n width: 1.5rem; /* 24px */\n height: 1.5rem; /* 24px */\n display: flex;\n align-items: center;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n background: var(--color-gray-alpha-100);\n }\n\n &:active {\n background: var(--color-gray-alpha-200);\n }\n }\n\n .feedback-button:disabled {\n opacity: 0.7;\n cursor: not-allowed;\n }\n\n .feedback-button.voted {\n background: var(--color-gray-alpha-200);\n }\n\n .thumbs-up-icon,\n .thumbs-down-icon {\n color: var(--color-gray-900);\n }\n"
]);

@@ -34,0 +34,0 @@ _templateObject = function() {

export type ErrorOverlayFooterProps = {
errorCode: string;
footerMessage?: string;
errorCode: string | undefined;
footerMessage: string | undefined;
};
export declare function ErrorOverlayFooter({ errorCode, footerMessage, }: ErrorOverlayFooterProps): import("react/jsx-runtime").JSX.Element;
export declare const styles: string;

@@ -29,3 +29,3 @@ "use strict";

const data = _tagged_template_literal_loose._([
"\n .error-overlay-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--size-3);\n background: var(--color-background-200);\n border-top: 1px solid var(--color-gray-400);\n }\n\n .error-overlay-footer p {\n color: var(--color-gray-900);\n margin: 0;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n .error-overlay-footer-message {\n color: var(--color-gray-900);\n margin: 0;\n font-size: var(--size-font-small);\n font-weight: 400;\n line-height: var(--size-font-big);\n }\n\n ",
"\n .error-overlay-footer {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n gap: var(--size-gap);\n padding: var(--size-3);\n background: var(--color-background-200);\n border-top: 1px solid var(--color-gray-400);\n }\n\n .error-overlay-footer p {\n color: var(--color-gray-900);\n margin: 0;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n .error-overlay-footer-message {\n color: var(--color-gray-900);\n margin: 0;\n font-size: var(--size-font-small);\n font-weight: 400;\n line-height: var(--size-font-big);\n }\n\n ",
"\n"

@@ -43,9 +43,9 @@ ]);

children: [
/*#__PURE__*/ (0, _jsxruntime.jsx)("p", {
footerMessage ? /*#__PURE__*/ (0, _jsxruntime.jsx)("p", {
className: "error-overlay-footer-message",
children: footerMessage
}),
/*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfeedback.ErrorFeedback, {
}) : null,
errorCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfeedback.ErrorFeedback, {
errorCode: errorCode
})
}) : null
]

@@ -52,0 +52,0 @@ });

@@ -8,1 +8,4 @@ import type { Meta, StoryObj } from '@storybook/react';

export declare const Turbopack: Story;
export declare const NoErrorCode: Story;
export declare const WithLongFooterMessage: Story;
export declare const WithShortFooterMessage: Story;

@@ -7,3 +7,6 @@ "use strict";

Default: null,
NoErrorCode: null,
Turbopack: null,
WithLongFooterMessage: null,
WithShortFooterMessage: null,
default: null

@@ -21,5 +24,14 @@ });

},
NoErrorCode: function() {
return NoErrorCode;
},
Turbopack: function() {
return Turbopack;
},
WithLongFooterMessage: function() {
return WithLongFooterMessage;
},
WithShortFooterMessage: function() {
return WithShortFooterMessage;
},
default: function() {

@@ -29,2 +41,3 @@ return _default;

});
const _jsxruntime = require("react/jsx-runtime");
const _erroroverlaylayout = require("./error-overlay-layout");

@@ -51,3 +64,8 @@ const _withshadowportal = require("../../../storybook/with-shadow-portal");

},
children: "Module not found: Cannot find module './missing-module'"
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
style: {
margin: '1rem'
},
children: "Module not found: Cannot find module './missing-module'"
})
}

@@ -61,2 +79,20 @@ };

};
const NoErrorCode = {
args: {
...Default.args,
errorCode: undefined
}
};
const WithLongFooterMessage = {
args: {
...Default.args,
footerMessage: 'This is a very long footer message that demonstrates how the footer handles lengthy text. It could contain important information about the error or additional context for debugging.'
}
};
const WithShortFooterMessage = {
args: {
...Default.args,
footerMessage: 'A brief error description.'
}
};

@@ -63,0 +99,0 @@ if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {

@@ -233,3 +233,3 @@ "use strict";

{
if (process.env.__NEXT_APP_ISR_INDICATOR) {
if (process.env.__NEXT_APP_ISR_INDICATOR || process.env.__NEXT_EXPERIMENTAL_NEW_DEV_OVERLAY) {
if (appIsrManifestRef) {

@@ -242,8 +242,12 @@ appIsrManifestRef.current = obj.data;

if (pathnameRef.current in obj.data) {
var _localStorage;
// the indicator can be hidden for an hour.
// check if it's still hidden
const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));
const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;
if (!isHidden) {
if (process.env.__NEXT_APP_ISR_INDICATOR) {
var _localStorage;
// the indicator can be hidden for an hour.
// check if it's still hidden
const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));
const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;
if (!isHidden) {
dispatcher.onStaticIndicator(true);
}
} else if (process.env.__NEXT_EXPERIMENTAL_NEW_DEV_OVERLAY) {
dispatcher.onStaticIndicator(true);

@@ -498,3 +502,3 @@ }

const pathnameRef = (0, _react.useRef)(pathname);
if (process.env.__NEXT_APP_ISR_INDICATOR) {
if (process.env.__NEXT_APP_ISR_INDICATOR || process.env.__NEXT_EXPERIMENTAL_NEW_DEV_OVERLAY) {
// this conditional is only for dead-code elimination which

@@ -509,6 +513,10 @@ // isn't a runtime conditional only build-time so ignore hooks rule

try {
var _localStorage;
const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));
const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;
if (!isHidden) {
if (process.env.__NEXT_APP_ISR_INDICATOR) {
var _localStorage;
const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));
const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;
if (!isHidden) {
dispatcher.onStaticIndicator(true);
}
} else if (process.env.__NEXT_EXPERIMENTAL_NEW_DEV_OVERLAY) {
dispatcher.onStaticIndicator(true);

@@ -515,0 +523,0 @@ }

@@ -65,3 +65,3 @@ /* global location */ // imports polyfill from `@next/polyfill-module` after build.

const _isnextroutererror = require("./components/is-next-router-error");
const version = "15.2.0-canary.11";
const version = "15.2.0-canary.12";
let router;

@@ -68,0 +68,0 @@ const emitter = (0, _mitt.default)();

@@ -419,3 +419,3 @@ /**

};
exports.version = "19.1.0-experimental-f0edf41e-20250115";
exports.version = "19.1.0-experimental-b158439a-20250115";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&

@@ -422,0 +422,0 @@ "function" ===

@@ -210,2 +210,2 @@ /**

};
exports.version = "19.1.0-experimental-f0edf41e-20250115";
exports.version = "19.1.0-experimental-b158439a-20250115";

@@ -339,3 +339,3 @@ /**

};
exports.version = "19.1.0-experimental-f0edf41e-20250115";
exports.version = "19.1.0-experimental-b158439a-20250115";
})();

@@ -152,2 +152,2 @@ /**

};
exports.version = "19.1.0-experimental-f0edf41e-20250115";
exports.version = "19.1.0-experimental-b158439a-20250115";

@@ -75,6 +75,6 @@ {

"dependencies": {
"scheduler": "0.0.0-experimental-f0edf41e-20250115"
"scheduler": "0.0.0-experimental-b158439a-20250115"
},
"peerDependencies": {
"react": "0.0.0-experimental-f0edf41e-20250115"
"react": "0.0.0-experimental-b158439a-20250115"
},

@@ -81,0 +81,0 @@ "browser": {

@@ -419,3 +419,3 @@ /**

};
exports.version = "19.1.0-canary-f0edf41e-20250115";
exports.version = "19.1.0-canary-b158439a-20250115";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&

@@ -422,0 +422,0 @@ "function" ===

@@ -210,2 +210,2 @@ /**

};
exports.version = "19.1.0-canary-f0edf41e-20250115";
exports.version = "19.1.0-canary-b158439a-20250115";

@@ -339,3 +339,3 @@ /**

};
exports.version = "19.1.0-canary-f0edf41e-20250115";
exports.version = "19.1.0-canary-b158439a-20250115";
})();

@@ -152,2 +152,2 @@ /**

};
exports.version = "19.1.0-canary-f0edf41e-20250115";
exports.version = "19.1.0-canary-b158439a-20250115";

@@ -70,6 +70,6 @@ {

"dependencies": {
"scheduler": "0.26.0-canary-f0edf41e-20250115"
"scheduler": "0.26.0-canary-b158439a-20250115"
},
"peerDependencies": {
"react": "19.1.0-canary-f0edf41e-20250115"
"react": "19.1.0-canary-b158439a-20250115"
},

@@ -76,0 +76,0 @@ "browser": {

@@ -1252,3 +1252,3 @@ /**

};
exports.version = "19.1.0-experimental-f0edf41e-20250115";
exports.version = "19.1.0-experimental-b158439a-20250115";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&

@@ -1255,0 +1255,0 @@ "function" ===

@@ -571,2 +571,2 @@ /**

};
exports.version = "19.1.0-experimental-f0edf41e-20250115";
exports.version = "19.1.0-experimental-b158439a-20250115";

@@ -990,3 +990,3 @@ /**

};
exports.version = "19.1.0-experimental-f0edf41e-20250115";
exports.version = "19.1.0-experimental-b158439a-20250115";
})();

@@ -570,2 +570,2 @@ /**

};
exports.version = "19.1.0-experimental-f0edf41e-20250115";
exports.version = "19.1.0-experimental-b158439a-20250115";
{
"name": "react-is",
"version": "19.1.0-canary-f0edf41e-20250115",
"version": "19.1.0-canary-b158439a-20250115",
"description": "Brand checking of React Elements.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -51,5 +51,5 @@ {

"peerDependencies": {
"react": "0.0.0-experimental-f0edf41e-20250115",
"react-dom": "0.0.0-experimental-f0edf41e-20250115"
"react": "0.0.0-experimental-b158439a-20250115",
"react-dom": "0.0.0-experimental-b158439a-20250115"
}
}

@@ -51,5 +51,5 @@ {

"peerDependencies": {
"react": "19.1.0-canary-f0edf41e-20250115",
"react-dom": "19.1.0-canary-f0edf41e-20250115"
"react": "19.1.0-canary-b158439a-20250115",
"react-dom": "19.1.0-canary-b158439a-20250115"
}
}

@@ -67,6 +67,6 @@ {

"peerDependencies": {
"react": "0.0.0-experimental-f0edf41e-20250115",
"react-dom": "0.0.0-experimental-f0edf41e-20250115",
"react": "0.0.0-experimental-b158439a-20250115",
"react-dom": "0.0.0-experimental-b158439a-20250115",
"webpack": "^5.59.0"
}
}

@@ -67,6 +67,6 @@ {

"peerDependencies": {
"react": "19.1.0-canary-f0edf41e-20250115",
"react-dom": "19.1.0-canary-f0edf41e-20250115",
"react": "19.1.0-canary-b158439a-20250115",
"react-dom": "19.1.0-canary-b158439a-20250115",
"webpack": "^5.59.0"
}
}

@@ -1523,3 +1523,3 @@ /**

};
exports.version = "19.1.0-canary-f0edf41e-20250115";
exports.version = "19.1.0-canary-b158439a-20250115";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&

@@ -1526,0 +1526,0 @@ "function" ===

@@ -544,2 +544,2 @@ /**

};
exports.version = "19.1.0-canary-f0edf41e-20250115";
exports.version = "19.1.0-canary-b158439a-20250115";

@@ -1113,3 +1113,3 @@ /**

};
exports.version = "19.1.0-canary-f0edf41e-20250115";
exports.version = "19.1.0-canary-b158439a-20250115";
})();

@@ -426,2 +426,2 @@ /**

};
exports.version = "19.1.0-canary-f0edf41e-20250115";
exports.version = "19.1.0-canary-b158439a-20250115";

@@ -1,1 +0,1 @@

(()=>{var t={4:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a<i.length;a++)i[a]===t?t=null:_.push(i[a]);i=_}function e(_,a,f){t=a?_:n(n({},t),_);for(var o=i,c=0;c<o.length;c++)o[c](t,f)}return t=t||{},{action:function(i){function r(t){e(t,!1,i)}return function(){for(var _=arguments,a=[t],f=0;f<arguments.length;f++)a.push(_[f]);var o=i.apply(this,a);if(null!=o)return o.then?o.then(r):r(o)}},setState:e,subscribe:function(t){return i.push(t),function(){u(t)}},unsubscribe:u,getState:function(){return t}}}}};var i={};function __nccwpck_require__(_){var a=i[_];if(a!==undefined){return a.exports}var f=i[_]={exports:{}};var o=true;try{t[_](f,f.exports,__nccwpck_require__);o=false}finally{if(o)delete i[_]}return f.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(4);module.exports=_})();
(()=>{var t={816:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a<i.length;a++)i[a]===t?t=null:_.push(i[a]);i=_}function e(_,a,f){t=a?_:n(n({},t),_);for(var o=i,c=0;c<o.length;c++)o[c](t,f)}return t=t||{},{action:function(i){function r(t){e(t,!1,i)}return function(){for(var _=arguments,a=[t],f=0;f<arguments.length;f++)a.push(_[f]);var o=i.apply(this,a);if(null!=o)return o.then?o.then(r):r(o)}},setState:e,subscribe:function(t){return i.push(t),function(){u(t)}},unsubscribe:u,getState:function(){return t}}}}};var i={};function __nccwpck_require__(_){var a=i[_];if(a!==undefined){return a.exports}var f=i[_]={exports:{}};var o=true;try{t[_](f,f.exports,__nccwpck_require__);o=false}finally{if(o)delete i[_]}return f.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(816);module.exports=_})();

@@ -14,3 +14,3 @@ /* eslint-disable @typescript-eslint/no-use-before-define */ import path from 'path';

import { TurbopackInternalError } from '../../server/dev/turbopack-utils';
const nextVersion = "15.2.0-canary.11";
const nextVersion = "15.2.0-canary.12";
const ArchName = arch();

@@ -17,0 +17,0 @@ const PlatformName = platform();

@@ -141,5 +141,6 @@ import nodePath from 'path';

const appDirRelativeEntryPath = (_this_buildTraceContext_entriesTrace = this.buildTraceContext.entriesTrace) == null ? void 0 : (_this_buildTraceContext_entriesTrace_absolutePathByEntryName_entrypoint_name = _this_buildTraceContext_entriesTrace.absolutePathByEntryName[entrypoint.name]) == null ? void 0 : _this_buildTraceContext_entriesTrace_absolutePathByEntryName_entrypoint_name.replace(this.appDir, '');
const entryIsStaticMetadataRoute = appDirRelativeEntryPath && isStaticMetadataRoute(appDirRelativeEntryPath);
// Include the client reference manifest in the trace, but not for
// static metadata routes, for which we don't generate those.
if (appDirRelativeEntryPath && !isStaticMetadataRoute(appDirRelativeEntryPath)) {
if (!entryIsStaticMetadataRoute) {
entryFiles.add(nodePath.join(outputPath, outputPrefix, entrypoint.name.replace(/%5F/g, '_') + '_' + CLIENT_REFERENCE_MANIFEST + '.js'));

@@ -146,0 +147,0 @@ }

@@ -6,3 +6,3 @@ /**

* - next/script with `beforeInteractive` strategy
*/ const version = "15.2.0-canary.11";
*/ const version = "15.2.0-canary.12";
window.next = {

@@ -9,0 +9,0 @@ version,

import { _ as _tagged_template_literal_loose } from "@swc/helpers/_/_tagged_template_literal_loose";
function _templateObject() {
const data = _tagged_template_literal_loose([
"\n .error-feedback {\n display: flex;\n align-items: center;\n gap: var(--size-gap);\n }\n\n .error-feedback-thanks {\n height: 1.5rem; /* 24px */\n display: flex;\n align-items: center;\n padding-right: 4px; /* To match the 4px inner padding of the thumbs up and down icons */\n }\n\n .feedback-button {\n background: none;\n border: none;\n border-radius: var(--rounded-md);\n padding: var(--size-gap-half);\n width: 1.5rem; /* 24px */\n height: 1.5rem; /* 24px */\n display: flex;\n align-items: center;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n background: var(--color-gray-alpha-100);\n }\n\n &:active {\n background: var(--color-gray-alpha-200);\n }\n }\n\n .feedback-button:disabled {\n opacity: 0.7;\n cursor: not-allowed;\n }\n\n .feedback-button.voted {\n background: var(--color-gray-alpha-200);\n }\n\n .thumbs-up-icon,\n .thumbs-down-icon {\n color: var(--color-gray-900);\n }\n"
"\n .error-feedback {\n display: flex;\n gap: var(--size-gap);\n white-space: nowrap;\n }\n\n .error-feedback-thanks {\n height: 1.5rem; /* 24px */\n display: flex;\n align-items: center;\n padding-right: 4px; /* To match the 4px inner padding of the thumbs up and down icons */\n }\n\n .feedback-button {\n background: none;\n border: none;\n border-radius: var(--rounded-md);\n padding: var(--size-gap-half);\n width: 1.5rem; /* 24px */\n height: 1.5rem; /* 24px */\n display: flex;\n align-items: center;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n background: var(--color-gray-alpha-100);\n }\n\n &:active {\n background: var(--color-gray-alpha-200);\n }\n }\n\n .feedback-button:disabled {\n opacity: 0.7;\n cursor: not-allowed;\n }\n\n .feedback-button.voted {\n background: var(--color-gray-alpha-200);\n }\n\n .thumbs-up-icon,\n .thumbs-down-icon {\n color: var(--color-gray-900);\n }\n"
]);

@@ -6,0 +6,0 @@ _templateObject = function() {

import { _ as _tagged_template_literal_loose } from "@swc/helpers/_/_tagged_template_literal_loose";
function _templateObject() {
const data = _tagged_template_literal_loose([
"\n .error-overlay-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--size-3);\n background: var(--color-background-200);\n border-top: 1px solid var(--color-gray-400);\n }\n\n .error-overlay-footer p {\n color: var(--color-gray-900);\n margin: 0;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n .error-overlay-footer-message {\n color: var(--color-gray-900);\n margin: 0;\n font-size: var(--size-font-small);\n font-weight: 400;\n line-height: var(--size-font-big);\n }\n\n ",
"\n .error-overlay-footer {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n gap: var(--size-gap);\n padding: var(--size-3);\n background: var(--color-background-200);\n border-top: 1px solid var(--color-gray-400);\n }\n\n .error-overlay-footer p {\n color: var(--color-gray-900);\n margin: 0;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n .error-overlay-footer-message {\n color: var(--color-gray-900);\n margin: 0;\n font-size: var(--size-font-small);\n font-weight: 400;\n line-height: var(--size-font-big);\n }\n\n ",
"\n"

@@ -21,9 +21,9 @@ ]);

children: [
/*#__PURE__*/ _jsx("p", {
footerMessage ? /*#__PURE__*/ _jsx("p", {
className: "error-overlay-footer-message",
children: footerMessage
}),
/*#__PURE__*/ _jsx(ErrorFeedback, {
}) : null,
errorCode ? /*#__PURE__*/ _jsx(ErrorFeedback, {
errorCode: errorCode
})
}) : null
]

@@ -30,0 +30,0 @@ });

@@ -0,1 +1,2 @@

import { jsx as _jsx } from "react/jsx-runtime";
import { ErrorOverlayLayout } from './error-overlay-layout';

@@ -22,3 +23,8 @@ import { withShadowPortal } from '../../../storybook/with-shadow-portal';

},
children: "Module not found: Cannot find module './missing-module'"
children: /*#__PURE__*/ _jsx("div", {
style: {
margin: '1rem'
},
children: "Module not found: Cannot find module './missing-module'"
})
}

@@ -32,3 +38,21 @@ };

};
export const NoErrorCode = {
args: {
...Default.args,
errorCode: undefined
}
};
export const WithLongFooterMessage = {
args: {
...Default.args,
footerMessage: 'This is a very long footer message that demonstrates how the footer handles lengthy text. It could contain important information about the error or additional context for debugging.'
}
};
export const WithShortFooterMessage = {
args: {
...Default.args,
footerMessage: 'A brief error description.'
}
};
//# sourceMappingURL=error-overlay-layout.stories.js.map

@@ -211,3 +211,3 @@ import { jsx as _jsx } from "react/jsx-runtime";

{
if (process.env.__NEXT_APP_ISR_INDICATOR) {
if (process.env.__NEXT_APP_ISR_INDICATOR || process.env.__NEXT_EXPERIMENTAL_NEW_DEV_OVERLAY) {
if (appIsrManifestRef) {

@@ -220,8 +220,12 @@ appIsrManifestRef.current = obj.data;

if (pathnameRef.current in obj.data) {
var _localStorage;
// the indicator can be hidden for an hour.
// check if it's still hidden
const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));
const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;
if (!isHidden) {
if (process.env.__NEXT_APP_ISR_INDICATOR) {
var _localStorage;
// the indicator can be hidden for an hour.
// check if it's still hidden
const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));
const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;
if (!isHidden) {
dispatcher.onStaticIndicator(true);
}
} else if (process.env.__NEXT_EXPERIMENTAL_NEW_DEV_OVERLAY) {
dispatcher.onStaticIndicator(true);

@@ -476,3 +480,3 @@ }

const pathnameRef = useRef(pathname);
if (process.env.__NEXT_APP_ISR_INDICATOR) {
if (process.env.__NEXT_APP_ISR_INDICATOR || process.env.__NEXT_EXPERIMENTAL_NEW_DEV_OVERLAY) {
// this conditional is only for dead-code elimination which

@@ -487,6 +491,10 @@ // isn't a runtime conditional only build-time so ignore hooks rule

try {
var _localStorage;
const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));
const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;
if (!isHidden) {
if (process.env.__NEXT_APP_ISR_INDICATOR) {
var _localStorage;
const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));
const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;
if (!isHidden) {
dispatcher.onStaticIndicator(true);
}
} else if (process.env.__NEXT_EXPERIMENTAL_NEW_DEV_OVERLAY) {
dispatcher.onStaticIndicator(true);

@@ -493,0 +501,0 @@ }

@@ -30,3 +30,3 @@ /* global location */ // imports polyfill from `@next/polyfill-module` after build.

import { isNextRouterError } from './components/is-next-router-error';
export const version = "15.2.0-canary.11";
export const version = "15.2.0-canary.12";
export let router;

@@ -33,0 +33,0 @@ export const emitter = mitt();

@@ -9,11 +9,2 @@ import { isDynamicUsageError } from '../helpers/is-dynamic-usage-error';

import { AfterRunner } from '../../server/after/run-with-after';
export var ExportedAppPageFiles = /*#__PURE__*/ function(ExportedAppPageFiles) {
ExportedAppPageFiles["HTML"] = "HTML";
ExportedAppPageFiles["FLIGHT"] = "FLIGHT";
ExportedAppPageFiles["PREFETCH_FLIGHT"] = "PREFETCH_FLIGHT";
ExportedAppPageFiles["PREFETCH_FLIGHT_SEGMENT"] = "PREFETCH_FLIGHT_SEGMENT";
ExportedAppPageFiles["META"] = "META";
ExportedAppPageFiles["POSTPONED"] = "POSTPONED";
return ExportedAppPageFiles;
}({});
export async function prospectiveRenderAppPage(req, res, page, pathname, query, fallbackRouteParams, partialRenderOpts, sharedContext) {

@@ -119,3 +110,3 @@ const afterRunner = new AfterRunner();

// output below.
await fileWriter("PREFETCH_FLIGHT", htmlFilepath.replace(/\.html$/, RSC_PREFETCH_SUFFIX), flightData);
fileWriter.append(htmlFilepath.replace(/\.html$/, RSC_PREFETCH_SUFFIX), flightData);
if (segmentData) {

@@ -127,13 +118,11 @@ // Emit the per-segment prefetch data. We emit them as separate files

const segmentsDir = htmlFilepath.replace(/\.html$/, RSC_SEGMENTS_DIR_SUFFIX);
const tasks = [];
for (const [segmentPath, buffer] of segmentData){
segmentPaths.push(segmentPath);
const segmentDataFilePath = segmentPath === '/' ? segmentsDir + '/_index' + RSC_SEGMENT_SUFFIX : segmentsDir + segmentPath + RSC_SEGMENT_SUFFIX;
tasks.push(fileWriter("PREFETCH_FLIGHT_SEGMENT", segmentDataFilePath, buffer));
fileWriter.append(segmentDataFilePath, buffer);
}
await Promise.all(tasks);
}
} else {
// Writing the RSC payload to a file if we don't have PPR enabled.
await fileWriter("FLIGHT", htmlFilepath.replace(/\.html$/, RSC_SUFFIX), flightData);
fileWriter.append(htmlFilepath.replace(/\.html$/, RSC_SUFFIX), flightData);
}

@@ -150,3 +139,3 @@ }

// Writing static HTML to a file.
await fileWriter("HTML", htmlFilepath, html ?? '', 'utf8');
fileWriter.append(htmlFilepath, html ?? '');
const isParallelRoute = /\/@\w+/.test(page);

@@ -172,3 +161,3 @@ const isNonSuccessfulStatusCode = res.statusCode > 300;

};
await fileWriter("META", htmlFilepath.replace(/\.html$/, NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));
fileWriter.append(htmlFilepath.replace(/\.html$/, NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));
return {

@@ -175,0 +164,0 @@ // Only include the metadata if the environment has next support.

@@ -91,3 +91,3 @@ import { INFINITE_CACHE, NEXT_BODY_SUFFIX, NEXT_CACHE_TAGS_HEADER, NEXT_META_SUFFIX } from '../../lib/constants';

const body = Buffer.from(await blob.arrayBuffer());
await fileWriter("BODY", htmlFilepath.replace(/\.html$/, NEXT_BODY_SUFFIX), body, 'utf8');
fileWriter.append(htmlFilepath.replace(/\.html$/, NEXT_BODY_SUFFIX), body);
// Write the request metadata to a file.

@@ -98,3 +98,3 @@ const meta = {

};
await fileWriter("META", htmlFilepath.replace(/\.html$/, NEXT_META_SUFFIX), JSON.stringify(meta));
fileWriter.append(htmlFilepath.replace(/\.html$/, NEXT_META_SUFFIX), JSON.stringify(meta));
return {

@@ -101,0 +101,0 @@ revalidate: revalidate,

@@ -9,9 +9,2 @@ import RenderResult from '../../server/render-result';

import { lazyRenderPagesPage } from '../../server/route-modules/pages/module.render';
export var ExportedPagesFiles = /*#__PURE__*/ function(ExportedPagesFiles) {
ExportedPagesFiles["HTML"] = "HTML";
ExportedPagesFiles["DATA"] = "DATA";
ExportedPagesFiles["AMP_HTML"] = "AMP_HTML";
ExportedPagesFiles["AMP_DATA"] = "AMP_PAGE_DATA";
return ExportedPagesFiles;
}({});
/**

@@ -118,3 +111,3 @@ * Renders & exports a page associated with the /pages directory

}
await fileWriter("AMP_HTML", ampHtmlFilepath, ampHtml, 'utf8');
fileWriter.append(ampHtmlFilepath, ampHtml);
}

@@ -125,5 +118,5 @@ }

const dataFile = join(pagesDataDir, htmlFilename.replace(/\.html$/, NEXT_DATA_SUFFIX));
await fileWriter("DATA", dataFile, JSON.stringify(metadata.pageData), 'utf8');
fileWriter.append(dataFile, JSON.stringify(metadata.pageData));
if (hybridAmp) {
await fileWriter("AMP_PAGE_DATA", dataFile.replace(/\.json$/, '.amp.json'), JSON.stringify(metadata.pageData), 'utf8');
fileWriter.append(dataFile.replace(/\.json$/, '.amp.json'), JSON.stringify(metadata.pageData));
}

@@ -133,3 +126,3 @@ }

// don't attempt writing to disk if getStaticProps returned not found
await fileWriter("HTML", htmlFilepath, html, 'utf8');
fileWriter.append(htmlFilepath, html);
}

@@ -136,0 +129,0 @@ return {

@@ -29,2 +29,3 @@ import '../server/node-environment';

import { isStaticGenBailoutError } from '../client/components/static-generation-bailout';
import { MultiFileWriter } from '../lib/multi-file-writer';
const envConfig = require('../shared/lib/runtime-config.external');

@@ -318,13 +319,8 @@ globalThis.__NEXT_DATA__ = {

});
const files = [];
const baseFileWriter = async (type, path, content, encodingOptions = 'utf-8')=>{
await fs.mkdir(dirname(path), {
recursive: true
});
await fs.writeFile(path, content, encodingOptions);
files.push({
type,
path
});
};
const fileWriter = new MultiFileWriter({
writeFile: (filePath, data)=>fs.writeFile(filePath, data),
mkdir: (dir)=>fs.mkdir(dir, {
recursive: true
})
});
const exportPageSpan = trace('export-page-worker', input.parentSpanId);

@@ -336,3 +332,5 @@ const start = Date.now();

try {
result = await exportPageSpan.traceAsyncFn(()=>turborepoTraceAccess(()=>exportPageImpl(input, baseFileWriter), turborepoAccessTraceResult));
result = await exportPageSpan.traceAsyncFn(()=>turborepoTraceAccess(()=>exportPageImpl(input, fileWriter), turborepoAccessTraceResult));
// Wait for all the files to flush to disk.
await fileWriter.wait();
// If there was no result, then we can exit early.

@@ -344,4 +342,3 @@ if (!result) return;

error: result.error,
duration: Date.now() - start,
files: []
duration: Date.now() - start
};

@@ -369,4 +366,3 @@ }

error: true,
duration: Date.now() - start,
files: []
duration: Date.now() - start
};

@@ -384,3 +380,2 @@ }

duration: Date.now() - start,
files,
ampValidations: result.ampValidations,

@@ -387,0 +382,0 @@ revalidate: result.revalidate,

@@ -180,3 +180,3 @@ import { existsSync } from 'fs';

}
if (!((_process_env___NEXT_VERSION = "15.2.0-canary.11") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV) {
if (!((_process_env___NEXT_VERSION = "15.2.0-canary.12") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV) {
var _result_experimental7, _result_experimental8, _result_experimental_turbo3, _result_experimental9;

@@ -183,0 +183,0 @@ // Prevents usage of certain experimental features outside of canary

@@ -82,3 +82,3 @@ import { mkdir, writeFile } from 'fs/promises';

const hotReloaderSpan = trace('hot-reloader', undefined, {
version: "15.2.0-canary.11"
version: "15.2.0-canary.12"
});

@@ -85,0 +85,0 @@ // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing

@@ -181,3 +181,3 @@ import { webpack, StringXor } from 'next/dist/compiled/webpack/webpack';

this.hotReloaderSpan = trace('hot-reloader', undefined, {
version: "15.2.0-canary.11"
version: "15.2.0-canary.12"
});

@@ -184,0 +184,0 @@ // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing

@@ -7,3 +7,3 @@ import { loadEnvConfig } from '@next/env';

export function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures, maxExperimentalFeatures = Infinity }) {
Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"15.2.0-canary.11"}`))}${process.env.TURBOPACK ? ' (Turbopack)' : ''}`);
Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"15.2.0-canary.12"}`))}${process.env.TURBOPACK ? ' (Turbopack)' : ''}`);
if (appUrl) {

@@ -10,0 +10,0 @@ Log.bootstrap(`- Local: ${appUrl}`);

@@ -6,2 +6,3 @@ import { CachedRouteKind, IncrementalCacheKind } from '../../response-cache';

import { tagsManifest } from './tags-manifest.external';
import { MultiFileWriter } from '../../../lib/multi-file-writer';
let memoryCache;

@@ -244,6 +245,8 @@ export default class FileSystemCache {

if (!this.flushToDisk || !data) return;
// Create a new writer that will prepare to write all the files to disk
// after their containing directory is created.
const writer = new MultiFileWriter(this.fs);
if (data.kind === CachedRouteKind.APP_ROUTE) {
const filePath = this.getFilePath(`${key}.body`, IncrementalCacheKind.APP_ROUTE);
await this.fs.mkdir(path.dirname(filePath));
await this.fs.writeFile(filePath, data.body);
writer.append(filePath, data.body);
const meta = {

@@ -255,13 +258,22 @@ headers: data.headers,

};
await this.fs.writeFile(filePath.replace(/\.body$/, NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));
writer.append(filePath.replace(/\.body$/, NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));
} else if (data.kind === CachedRouteKind.PAGES || data.kind === CachedRouteKind.APP_PAGE) {
const isAppPath = data.kind === CachedRouteKind.APP_PAGE;
const htmlPath = this.getFilePath(`${key}.html`, isAppPath ? IncrementalCacheKind.APP_PAGE : IncrementalCacheKind.PAGES);
await this.fs.mkdir(path.dirname(htmlPath));
await this.fs.writeFile(htmlPath, data.html);
writer.append(htmlPath, data.html);
// Fallbacks don't generate a data file.
if (!isFallback) {
await this.fs.writeFile(this.getFilePath(`${key}${isAppPath ? ctx.isRoutePPREnabled ? RSC_PREFETCH_SUFFIX : RSC_SUFFIX : NEXT_DATA_SUFFIX}`, isAppPath ? IncrementalCacheKind.APP_PAGE : IncrementalCacheKind.PAGES), isAppPath ? data.rscData : JSON.stringify(data.pageData));
writer.append(this.getFilePath(`${key}${isAppPath ? ctx.isRoutePPREnabled ? RSC_PREFETCH_SUFFIX : RSC_SUFFIX : NEXT_DATA_SUFFIX}`, isAppPath ? IncrementalCacheKind.APP_PAGE : IncrementalCacheKind.PAGES), isAppPath ? data.rscData : JSON.stringify(data.pageData));
}
if ((data == null ? void 0 : data.kind) === CachedRouteKind.APP_PAGE) {
let segmentPaths;
if (data.segmentData) {
segmentPaths = [];
const segmentsDir = htmlPath.replace(/\.html$/, RSC_SEGMENTS_DIR_SUFFIX);
for (const [segmentPath, buffer] of data.segmentData){
segmentPaths.push(segmentPath);
const segmentDataFilePath = segmentPath === '/' ? segmentsDir + '/_index' + RSC_SEGMENT_SUFFIX : segmentsDir + segmentPath + RSC_SEGMENT_SUFFIX;
writer.append(segmentDataFilePath, buffer);
}
}
const meta = {

@@ -271,10 +283,9 @@ headers: data.headers,

postponed: data.postponed,
segmentPaths: undefined
segmentPaths
};
await this.fs.writeFile(htmlPath.replace(/\.html$/, NEXT_META_SUFFIX), JSON.stringify(meta));
writer.append(htmlPath.replace(/\.html$/, NEXT_META_SUFFIX), JSON.stringify(meta));
}
} else if (data.kind === CachedRouteKind.FETCH) {
const filePath = this.getFilePath(key, IncrementalCacheKind.FETCH);
await this.fs.mkdir(path.dirname(filePath));
await this.fs.writeFile(filePath, JSON.stringify({
writer.append(filePath, JSON.stringify({
...data,

@@ -284,2 +295,4 @@ tags: ctx.tags

}
// Wait for all FS operations to complete.
await writer.wait();
}

@@ -286,0 +299,0 @@ getFilePath(pathname, kind) {

@@ -46,3 +46,3 @@ import { getNetworkHost } from '../../lib/get-network-host';

let { port } = serverOptions;
process.title = `next-server (v${"15.2.0-canary.11"})`;
process.title = `next-server (v${"15.2.0-canary.12"})`;
let handlersReady = ()=>{};

@@ -49,0 +49,0 @@ let handlersError = ()=>{};

@@ -1,2 +0,2 @@

import type { ExportRouteResult, FileWriter } from '../types';
import type { ExportRouteResult } from '../types';
import type { RenderOpts } from '../../server/app-render/types';

@@ -8,10 +8,3 @@ import type { NextParsedUrlQuery } from '../../server/request-meta';

import type { AppSharedContext } from '../../server/app-render/app-render';
export declare const enum ExportedAppPageFiles {
HTML = "HTML",
FLIGHT = "FLIGHT",
PREFETCH_FLIGHT = "PREFETCH_FLIGHT",
PREFETCH_FLIGHT_SEGMENT = "PREFETCH_FLIGHT_SEGMENT",
META = "META",
POSTPONED = "POSTPONED"
}
import type { MultiFileWriter } from '../../lib/multi-file-writer';
export declare function prospectiveRenderAppPage(req: MockedRequest, res: MockedResponse, page: string, pathname: string, query: NextParsedUrlQuery, fallbackRouteParams: FallbackRouteParams | null, partialRenderOpts: Omit<RenderOpts, keyof RequestLifecycleOpts>, sharedContext: AppSharedContext): Promise<undefined>;

@@ -21,2 +14,2 @@ /**

*/
export declare function exportAppPage(req: MockedRequest, res: MockedResponse, page: string, path: string, pathname: string, query: NextParsedUrlQuery, fallbackRouteParams: FallbackRouteParams | null, partialRenderOpts: Omit<RenderOpts, keyof RequestLifecycleOpts>, htmlFilepath: string, debugOutput: boolean, isDynamicError: boolean, fileWriter: FileWriter, sharedContext: AppSharedContext): Promise<ExportRouteResult>;
export declare function exportAppPage(req: MockedRequest, res: MockedResponse, page: string, path: string, pathname: string, query: NextParsedUrlQuery, fallbackRouteParams: FallbackRouteParams | null, partialRenderOpts: Omit<RenderOpts, keyof RequestLifecycleOpts>, htmlFilepath: string, debugOutput: boolean, isDynamicError: boolean, fileWriter: MultiFileWriter, sharedContext: AppSharedContext): Promise<ExportRouteResult>;

@@ -6,3 +6,2 @@ "use strict";

0 && (module.exports = {
ExportedAppPageFiles: null,
exportAppPage: null,

@@ -18,5 +17,2 @@ prospectiveRenderAppPage: null

_export(exports, {
ExportedAppPageFiles: function() {
return ExportedAppPageFiles;
},
exportAppPage: function() {

@@ -37,11 +33,2 @@ return exportAppPage;

const _runwithafter = require("../../server/after/run-with-after");
var ExportedAppPageFiles = /*#__PURE__*/ function(ExportedAppPageFiles) {
ExportedAppPageFiles["HTML"] = "HTML";
ExportedAppPageFiles["FLIGHT"] = "FLIGHT";
ExportedAppPageFiles["PREFETCH_FLIGHT"] = "PREFETCH_FLIGHT";
ExportedAppPageFiles["PREFETCH_FLIGHT_SEGMENT"] = "PREFETCH_FLIGHT_SEGMENT";
ExportedAppPageFiles["META"] = "META";
ExportedAppPageFiles["POSTPONED"] = "POSTPONED";
return ExportedAppPageFiles;
}({});
async function prospectiveRenderAppPage(req, res, page, pathname, query, fallbackRouteParams, partialRenderOpts, sharedContext) {

@@ -145,3 +132,3 @@ const afterRunner = new _runwithafter.AfterRunner();

// output below.
await fileWriter("PREFETCH_FLIGHT", htmlFilepath.replace(/\.html$/, _constants.RSC_PREFETCH_SUFFIX), flightData);
fileWriter.append(htmlFilepath.replace(/\.html$/, _constants.RSC_PREFETCH_SUFFIX), flightData);
if (segmentData) {

@@ -153,13 +140,11 @@ // Emit the per-segment prefetch data. We emit them as separate files

const segmentsDir = htmlFilepath.replace(/\.html$/, _constants.RSC_SEGMENTS_DIR_SUFFIX);
const tasks = [];
for (const [segmentPath, buffer] of segmentData){
segmentPaths.push(segmentPath);
const segmentDataFilePath = segmentPath === '/' ? segmentsDir + '/_index' + _constants.RSC_SEGMENT_SUFFIX : segmentsDir + segmentPath + _constants.RSC_SEGMENT_SUFFIX;
tasks.push(fileWriter("PREFETCH_FLIGHT_SEGMENT", segmentDataFilePath, buffer));
fileWriter.append(segmentDataFilePath, buffer);
}
await Promise.all(tasks);
}
} else {
// Writing the RSC payload to a file if we don't have PPR enabled.
await fileWriter("FLIGHT", htmlFilepath.replace(/\.html$/, _constants.RSC_SUFFIX), flightData);
fileWriter.append(htmlFilepath.replace(/\.html$/, _constants.RSC_SUFFIX), flightData);
}

@@ -176,3 +161,3 @@ }

// Writing static HTML to a file.
await fileWriter("HTML", htmlFilepath, html ?? '', 'utf8');
fileWriter.append(htmlFilepath, html ?? '');
const isParallelRoute = /\/@\w+/.test(page);

@@ -198,3 +183,3 @@ const isNonSuccessfulStatusCode = res.statusCode > 300;

};
await fileWriter("META", htmlFilepath.replace(/\.html$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));
fileWriter.append(htmlFilepath.replace(/\.html$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));
return {

@@ -201,0 +186,0 @@ // Only include the metadata if the environment has next support.

@@ -1,2 +0,2 @@

import type { ExportRouteResult, FileWriter } from '../types';
import type { ExportRouteResult } from '../types';
import type AppRouteRouteModule from '../../server/route-modules/app-route/module';

@@ -7,2 +7,3 @@ import type { IncrementalCache } from '../../server/lib/incremental-cache';

import type { Params } from '../../server/request/params';
import type { MultiFileWriter } from '../../lib/multi-file-writer';
export declare const enum ExportedAppRouteFiles {

@@ -14,2 +15,2 @@ BODY = "BODY",

[profile: string]: import('../../server/use-cache/cache-life').CacheLife;
}, htmlFilepath: string, fileWriter: FileWriter, experimental: Required<Pick<ExperimentalConfig, 'dynamicIO' | 'authInterrupts'>>, buildId: string): Promise<ExportRouteResult>;
}, htmlFilepath: string, fileWriter: MultiFileWriter, experimental: Required<Pick<ExperimentalConfig, 'dynamicIO' | 'authInterrupts'>>, buildId: string): Promise<ExportRouteResult>;

@@ -113,3 +113,3 @@ "use strict";

const body = Buffer.from(await blob.arrayBuffer());
await fileWriter("BODY", htmlFilepath.replace(/\.html$/, _constants.NEXT_BODY_SUFFIX), body, 'utf8');
fileWriter.append(htmlFilepath.replace(/\.html$/, _constants.NEXT_BODY_SUFFIX), body);
// Write the request metadata to a file.

@@ -120,3 +120,3 @@ const meta = {

};
await fileWriter("META", htmlFilepath.replace(/\.html$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta));
fileWriter.append(htmlFilepath.replace(/\.html$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta));
return {

@@ -123,0 +123,0 @@ revalidate: revalidate,

@@ -1,2 +0,2 @@

import type { ExportRouteResult, FileWriter } from '../types';
import type { ExportRouteResult } from '../types';
import type { PagesRenderContext, PagesSharedContext, RenderOpts } from '../../server/render';

@@ -7,11 +7,6 @@ import type { LoadComponentsReturnType } from '../../server/load-components';

import type { MockedRequest, MockedResponse } from '../../server/lib/mock-request';
export declare const enum ExportedPagesFiles {
HTML = "HTML",
DATA = "DATA",
AMP_HTML = "AMP_HTML",
AMP_DATA = "AMP_PAGE_DATA"
}
import type { MultiFileWriter } from '../../lib/multi-file-writer';
/**
* Renders & exports a page associated with the /pages directory
*/
export declare function exportPagesPage(req: MockedRequest, res: MockedResponse, path: string, page: string, query: NextParsedUrlQuery, params: Params | undefined, htmlFilepath: string, htmlFilename: string, ampPath: string, subFolders: boolean, outDir: string, ampValidatorPath: string | undefined, pagesDataDir: string, buildExport: boolean, isDynamic: boolean, sharedContext: PagesSharedContext, renderContext: PagesRenderContext, hasOrigQueryValues: boolean, renderOpts: RenderOpts, components: LoadComponentsReturnType, fileWriter: FileWriter): Promise<ExportRouteResult | undefined>;
export declare function exportPagesPage(req: MockedRequest, res: MockedResponse, path: string, page: string, query: NextParsedUrlQuery, params: Params | undefined, htmlFilepath: string, htmlFilename: string, ampPath: string, subFolders: boolean, outDir: string, ampValidatorPath: string | undefined, pagesDataDir: string, buildExport: boolean, isDynamic: boolean, sharedContext: PagesSharedContext, renderContext: PagesRenderContext, hasOrigQueryValues: boolean, renderOpts: RenderOpts, components: LoadComponentsReturnType, fileWriter: MultiFileWriter): Promise<ExportRouteResult | undefined>;

@@ -5,17 +5,5 @@ "use strict";

});
0 && (module.exports = {
ExportedPagesFiles: null,
exportPagesPage: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
ExportedPagesFiles: function() {
return ExportedPagesFiles;
},
exportPagesPage: function() {
Object.defineProperty(exports, "exportPagesPage", {
enumerable: true,
get: function() {
return exportPagesPage;

@@ -37,9 +25,2 @@ }

}
var ExportedPagesFiles = /*#__PURE__*/ function(ExportedPagesFiles) {
ExportedPagesFiles["HTML"] = "HTML";
ExportedPagesFiles["DATA"] = "DATA";
ExportedPagesFiles["AMP_HTML"] = "AMP_HTML";
ExportedPagesFiles["AMP_DATA"] = "AMP_PAGE_DATA";
return ExportedPagesFiles;
}({});
async function exportPagesPage(req, res, path, page, query, params, htmlFilepath, htmlFilename, ampPath, subFolders, outDir, ampValidatorPath, pagesDataDir, buildExport, isDynamic, sharedContext, renderContext, hasOrigQueryValues, renderOpts, components, fileWriter) {

@@ -144,3 +125,3 @@ var _components_pageConfig, _components_pageConfig1;

}
await fileWriter("AMP_HTML", ampHtmlFilepath, ampHtml, 'utf8');
fileWriter.append(ampHtmlFilepath, ampHtml);
}

@@ -151,5 +132,5 @@ }

const dataFile = (0, _path.join)(pagesDataDir, htmlFilename.replace(/\.html$/, _constants.NEXT_DATA_SUFFIX));
await fileWriter("DATA", dataFile, JSON.stringify(metadata.pageData), 'utf8');
fileWriter.append(dataFile, JSON.stringify(metadata.pageData));
if (hybridAmp) {
await fileWriter("AMP_PAGE_DATA", dataFile.replace(/\.json$/, '.amp.json'), JSON.stringify(metadata.pageData), 'utf8');
fileWriter.append(dataFile.replace(/\.json$/, '.amp.json'), JSON.stringify(metadata.pageData));
}

@@ -159,3 +140,3 @@ }

// don't attempt writing to disk if getStaticProps returned not found
await fileWriter("HTML", htmlFilepath, html, 'utf8');
fileWriter.append(htmlFilepath, html);
}

@@ -162,0 +143,0 @@ return {

@@ -1,2 +0,1 @@

import type { WriteFileOptions } from 'fs';
import type { RenderOptsPartial as AppRenderOptsPartial } from '../server/app-render/types';

@@ -19,6 +18,2 @@ import type { RenderOptsPartial as PagesRenderOptsPartial } from '../server/render';

}
/**
* Writes a file to the filesystem (and also records the file that was written).
*/
export type FileWriter = (type: string, path: string, content: string | NodeJS.ArrayBufferView | Iterable<string | NodeJS.ArrayBufferView> | AsyncIterable<string | NodeJS.ArrayBufferView>, encodingOptions?: WriteFileOptions) => Promise<void>;
type PathMap = ExportPathMap[keyof ExportPathMap];

@@ -66,6 +61,2 @@ export interface ExportPagesInput {

}
export type ExportedPageFile = {
type: string;
path: string;
};
export type ExportRouteResult = {

@@ -86,3 +77,2 @@ ampValidations?: AmpValidation[];

export type ExportPageResult = ExportRouteResult & {
files: ExportedPageFile[];
duration: number;

@@ -89,0 +79,0 @@ turborepoAccessTraceResult?: SerializableTurborepoAccessTraceResult;

@@ -38,2 +38,3 @@ "use strict";

const _staticgenerationbailout = require("../client/components/static-generation-bailout");
const _multifilewriter = require("../lib/multi-file-writer");
function _interop_require_default(obj) {

@@ -333,13 +334,8 @@ return obj && obj.__esModule ? obj : {

});
const files = [];
const baseFileWriter = async (type, path, content, encodingOptions = 'utf-8')=>{
await _promises.default.mkdir((0, _path.dirname)(path), {
recursive: true
});
await _promises.default.writeFile(path, content, encodingOptions);
files.push({
type,
path
});
};
const fileWriter = new _multifilewriter.MultiFileWriter({
writeFile: (filePath, data)=>_promises.default.writeFile(filePath, data),
mkdir: (dir)=>_promises.default.mkdir(dir, {
recursive: true
})
});
const exportPageSpan = (0, _trace.trace)('export-page-worker', input.parentSpanId);

@@ -351,3 +347,5 @@ const start = Date.now();

try {
result = await exportPageSpan.traceAsyncFn(()=>(0, _turborepoaccesstrace.turborepoTraceAccess)(()=>exportPageImpl(input, baseFileWriter), turborepoAccessTraceResult));
result = await exportPageSpan.traceAsyncFn(()=>(0, _turborepoaccesstrace.turborepoTraceAccess)(()=>exportPageImpl(input, fileWriter), turborepoAccessTraceResult));
// Wait for all the files to flush to disk.
await fileWriter.wait();
// If there was no result, then we can exit early.

@@ -359,4 +357,3 @@ if (!result) return;

error: result.error,
duration: Date.now() - start,
files: []
duration: Date.now() - start
};

@@ -384,4 +381,3 @@ }

error: true,
duration: Date.now() - start,
files: []
duration: Date.now() - start
};

@@ -399,3 +395,2 @@ }

duration: Date.now() - start,
files,
ampValidations: result.ampValidations,

@@ -402,0 +397,0 @@ revalidate: result.revalidate,

@@ -259,3 +259,3 @@ "use strict";

}
if (!((_process_env___NEXT_VERSION = "15.2.0-canary.11") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV) {
if (!((_process_env___NEXT_VERSION = "15.2.0-canary.12") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV) {
var _result_experimental7, _result_experimental8, _result_experimental_turbo3, _result_experimental9;

@@ -262,0 +262,0 @@ // Prevents usage of certain experimental features outside of canary

@@ -138,3 +138,3 @@ "use strict";

const hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
version: "15.2.0-canary.11"
version: "15.2.0-canary.12"
});

@@ -141,0 +141,0 @@ // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing

@@ -257,3 +257,3 @@ "use strict";

this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
version: "15.2.0-canary.11"
version: "15.2.0-canary.12"
});

@@ -260,0 +260,0 @@ // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing

@@ -70,3 +70,3 @@ "use strict";

function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures, maxExperimentalFeatures = Infinity }) {
_log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"15.2.0-canary.11"}`))}${process.env.TURBOPACK ? ' (Turbopack)' : ''}`);
_log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"15.2.0-canary.12"}`))}${process.env.TURBOPACK ? ' (Turbopack)' : ''}`);
if (appUrl) {

@@ -73,0 +73,0 @@ _log.bootstrap(`- Local: ${appUrl}`);

@@ -16,2 +16,3 @@ "use strict";

const _tagsmanifestexternal = require("./tags-manifest.external");
const _multifilewriter = require("../../../lib/multi-file-writer");
function _interop_require_default(obj) {

@@ -259,6 +260,8 @@ return obj && obj.__esModule ? obj : {

if (!this.flushToDisk || !data) return;
// Create a new writer that will prepare to write all the files to disk
// after their containing directory is created.
const writer = new _multifilewriter.MultiFileWriter(this.fs);
if (data.kind === _responsecache.CachedRouteKind.APP_ROUTE) {
const filePath = this.getFilePath(`${key}.body`, _responsecache.IncrementalCacheKind.APP_ROUTE);
await this.fs.mkdir(_path.default.dirname(filePath));
await this.fs.writeFile(filePath, data.body);
writer.append(filePath, data.body);
const meta = {

@@ -270,13 +273,22 @@ headers: data.headers,

};
await this.fs.writeFile(filePath.replace(/\.body$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));
writer.append(filePath.replace(/\.body$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));
} else if (data.kind === _responsecache.CachedRouteKind.PAGES || data.kind === _responsecache.CachedRouteKind.APP_PAGE) {
const isAppPath = data.kind === _responsecache.CachedRouteKind.APP_PAGE;
const htmlPath = this.getFilePath(`${key}.html`, isAppPath ? _responsecache.IncrementalCacheKind.APP_PAGE : _responsecache.IncrementalCacheKind.PAGES);
await this.fs.mkdir(_path.default.dirname(htmlPath));
await this.fs.writeFile(htmlPath, data.html);
writer.append(htmlPath, data.html);
// Fallbacks don't generate a data file.
if (!isFallback) {
await this.fs.writeFile(this.getFilePath(`${key}${isAppPath ? ctx.isRoutePPREnabled ? _constants.RSC_PREFETCH_SUFFIX : _constants.RSC_SUFFIX : _constants.NEXT_DATA_SUFFIX}`, isAppPath ? _responsecache.IncrementalCacheKind.APP_PAGE : _responsecache.IncrementalCacheKind.PAGES), isAppPath ? data.rscData : JSON.stringify(data.pageData));
writer.append(this.getFilePath(`${key}${isAppPath ? ctx.isRoutePPREnabled ? _constants.RSC_PREFETCH_SUFFIX : _constants.RSC_SUFFIX : _constants.NEXT_DATA_SUFFIX}`, isAppPath ? _responsecache.IncrementalCacheKind.APP_PAGE : _responsecache.IncrementalCacheKind.PAGES), isAppPath ? data.rscData : JSON.stringify(data.pageData));
}
if ((data == null ? void 0 : data.kind) === _responsecache.CachedRouteKind.APP_PAGE) {
let segmentPaths;
if (data.segmentData) {
segmentPaths = [];
const segmentsDir = htmlPath.replace(/\.html$/, _constants.RSC_SEGMENTS_DIR_SUFFIX);
for (const [segmentPath, buffer] of data.segmentData){
segmentPaths.push(segmentPath);
const segmentDataFilePath = segmentPath === '/' ? segmentsDir + '/_index' + _constants.RSC_SEGMENT_SUFFIX : segmentsDir + segmentPath + _constants.RSC_SEGMENT_SUFFIX;
writer.append(segmentDataFilePath, buffer);
}
}
const meta = {

@@ -286,10 +298,9 @@ headers: data.headers,

postponed: data.postponed,
segmentPaths: undefined
segmentPaths
};
await this.fs.writeFile(htmlPath.replace(/\.html$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta));
writer.append(htmlPath.replace(/\.html$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta));
}
} else if (data.kind === _responsecache.CachedRouteKind.FETCH) {
const filePath = this.getFilePath(key, _responsecache.IncrementalCacheKind.FETCH);
await this.fs.mkdir(_path.default.dirname(filePath));
await this.fs.writeFile(filePath, JSON.stringify({
writer.append(filePath, JSON.stringify({
...data,

@@ -299,2 +310,4 @@ tags: ctx.tags

}
// Wait for all FS operations to complete.
await writer.wait();
}

@@ -301,0 +314,0 @@ getFilePath(pathname, kind) {

@@ -114,3 +114,3 @@ "use strict";

let { port } = serverOptions;
process.title = `next-server (v${"15.2.0-canary.11"})`;
process.title = `next-server (v${"15.2.0-canary.12"})`;
let handlersReady = ()=>{};

@@ -117,0 +117,0 @@ let handlersError = ()=>{};

@@ -84,3 +84,3 @@ "use strict";

ciName: _ciinfo.isCI && _ciinfo.name || null,
nextVersion: "15.2.0-canary.11"
nextVersion: "15.2.0-canary.12"
};

@@ -87,0 +87,0 @@ return traits;

@@ -72,3 +72,3 @@ import type { TelemetryPlugin } from '../../build/webpack/plugins/telemetry-plugin';

export type EventBuildFeatureUsage = {
featureName: 'next/image' | 'next/legacy/image' | 'next/future/image' | 'next/script' | 'next/dynamic' | '@next/font/google' | '@next/font/local' | 'next/font/google' | 'next/font/local' | 'experimental/nextScriptWorkers' | 'experimental/optimizeCss' | 'experimental/ppr' | 'swcLoader' | 'swcRelay' | 'swcStyledComponents' | 'swcReactRemoveProperties' | 'swcExperimentalDecorators' | 'swcRemoveConsole' | 'swcImportSource' | 'swcEmotion' | `swc/target/${SWC_TARGET_TRIPLE}` | 'turbotrace' | 'build-lint' | 'vercelImageGeneration' | 'transpilePackages' | 'skipMiddlewareUrlNormalize' | 'skipTrailingSlashRedirect' | 'modularizeImports' | 'esmExternals';
featureName: 'next/image' | 'next/legacy/image' | 'next/future/image' | 'next/script' | 'next/dynamic' | '@next/font/google' | '@next/font/local' | 'next/font/google' | 'next/font/local' | 'experimental/nextScriptWorkers' | 'experimental/dynamicIO' | 'experimental/optimizeCss' | 'experimental/ppr' | 'swcLoader' | 'swcRelay' | 'swcStyledComponents' | 'swcReactRemoveProperties' | 'swcExperimentalDecorators' | 'swcRemoveConsole' | 'swcImportSource' | 'swcEmotion' | `swc/target/${SWC_TARGET_TRIPLE}` | 'turbotrace' | 'build-lint' | 'vercelImageGeneration' | 'transpilePackages' | 'skipMiddlewareUrlNormalize' | 'skipTrailingSlashRedirect' | 'modularizeImports' | 'esmExternals';
invocationCount: number;

@@ -75,0 +75,0 @@ };

@@ -14,7 +14,7 @@ "use strict";

// This should be an invariant, if it fails our build tooling is broken.
if (typeof "15.2.0-canary.11" !== 'string') {
if (typeof "15.2.0-canary.12" !== 'string') {
return [];
}
const payload = {
nextVersion: "15.2.0-canary.11",
nextVersion: "15.2.0-canary.12",
nodeVersion: process.version,

@@ -21,0 +21,0 @@ cliCommand: event.cliCommand,

@@ -39,3 +39,3 @@ "use strict";

// This should be an invariant, if it fails our build tooling is broken.
if (typeof "15.2.0-canary.11" !== 'string') {
if (typeof "15.2.0-canary.12" !== 'string') {
return [];

@@ -45,3 +45,3 @@ }

const payload = {
nextVersion: "15.2.0-canary.11",
nextVersion: "15.2.0-canary.12",
nodeVersion: process.version,

@@ -48,0 +48,0 @@ cliCommand: event.cliCommand,

{
"name": "next",
"version": "15.2.0-canary.11",
"version": "15.2.0-canary.12",
"description": "The React Framework",

@@ -102,3 +102,3 @@ "main": "./dist/server/next.js",

"dependencies": {
"@next/env": "15.2.0-canary.11",
"@next/env": "15.2.0-canary.12",
"@swc/counter": "0.1.3",

@@ -135,10 +135,10 @@ "@swc/helpers": "0.5.15",

"sharp": "^0.33.5",
"@next/swc-darwin-arm64": "15.2.0-canary.11",
"@next/swc-darwin-x64": "15.2.0-canary.11",
"@next/swc-linux-arm64-gnu": "15.2.0-canary.11",
"@next/swc-linux-arm64-musl": "15.2.0-canary.11",
"@next/swc-linux-x64-gnu": "15.2.0-canary.11",
"@next/swc-linux-x64-musl": "15.2.0-canary.11",
"@next/swc-win32-arm64-msvc": "15.2.0-canary.11",
"@next/swc-win32-x64-msvc": "15.2.0-canary.11"
"@next/swc-darwin-arm64": "15.2.0-canary.12",
"@next/swc-darwin-x64": "15.2.0-canary.12",
"@next/swc-linux-arm64-gnu": "15.2.0-canary.12",
"@next/swc-linux-arm64-musl": "15.2.0-canary.12",
"@next/swc-linux-x64-gnu": "15.2.0-canary.12",
"@next/swc-linux-x64-musl": "15.2.0-canary.12",
"@next/swc-win32-arm64-msvc": "15.2.0-canary.12",
"@next/swc-win32-x64-msvc": "15.2.0-canary.12"
},

@@ -177,7 +177,7 @@ "devDependencies": {

"@napi-rs/triples": "1.2.0",
"@next/font": "15.2.0-canary.11",
"@next/polyfill-module": "15.2.0-canary.11",
"@next/polyfill-nomodule": "15.2.0-canary.11",
"@next/react-refresh-utils": "15.2.0-canary.11",
"@next/swc": "15.2.0-canary.11",
"@next/font": "15.2.0-canary.12",
"@next/polyfill-module": "15.2.0-canary.12",
"@next/polyfill-nomodule": "15.2.0-canary.12",
"@next/react-refresh-utils": "15.2.0-canary.12",
"@next/swc": "15.2.0-canary.12",
"@opentelemetry/api": "1.6.0",

@@ -241,3 +241,3 @@ "@playwright/test": "1.41.2",

"async-sema": "3.0.0",
"babel-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124",
"babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112",
"babel-plugin-transform-define": "2.0.0",

@@ -244,0 +244,0 @@ "babel-plugin-transform-react-remove-prop-types": "0.4.24",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc