next 15.1.1-canary.11 → 15.1.1-canary.12
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.
Potentially problematic release.
This version of next might be problematic. Click here for more details.
- package/dist/bin/next +1 -1
- package/dist/build/index.d.ts +5 -0
- package/dist/build/index.js +5 -2
- package/dist/build/index.js.map +1 -1
- package/dist/build/swc/index.js +1 -1
- package/dist/build/webpack-config.js +2 -2
- package/dist/client/app-bootstrap.js +1 -1
- package/dist/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.d.ts +18 -0
- package/dist/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.js +92 -0
- package/dist/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.d.ts +7 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.js +120 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.js +19 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.js +30 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.d.ts +10 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.js +86 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.d.ts +7 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.js +29 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.d.ts +7 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.js +29 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.d.ts +7 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.js +29 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.d.ts +5 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.js +47 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.js +30 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.d.ts +10 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js +178 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.js +32 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.js +30 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.d.ts +8 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.js +62 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.js +62 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.js +19 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.d.ts +3 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.js +2749 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.js +30 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.d.ts +4 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.js +42 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.d.ts +10 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.js +67 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.d.ts +5 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.js +108 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.js +19 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.js +30 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.d.ts +7 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.js +36 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.js +32 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.js +30 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.d.ts +9 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.js +103 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.js +32 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.js +30 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.d.ts +7 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js +230 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.d.ts +5 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.js +74 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.d.ts +3 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.js +119 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/BuildError.d.ts +8 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/BuildError.js +100 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/BuildError.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/Errors.d.ts +19 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/Errors.js +392 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/Errors.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.d.ts +4 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.js +91 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.d.ts +4 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.js +116 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.d.ts +56 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.js +243 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.d.ts +6 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.js +92 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.d.ts +4 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.js +56 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.d.ts +8 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.js +59 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.js +51 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.d.ts +10 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.js +52 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.js +35 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.js +164 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.d.ts +11 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.js +50 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.js +38 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.js +83 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.js +33 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.d.ts +20 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.js +104 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.js +407 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.d.ts +4 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.js +88 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.js +25 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.d.ts +8 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.js +99 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.js +54 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.d.ts +3 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.js +21 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.d.ts +11 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.js +140 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.js +57 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.d.ts +4 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.js +121 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.d.ts +5 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.js +37 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.d.ts +5 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.js +129 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.d.ts +12 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.js +50 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.test.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.js +46 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.d.ts +2 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.js +46 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.d.ts +3 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.js +43 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.js +34 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/Base.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/Base.js +37 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/Base.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.js +55 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.d.ts +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.js +37 -0
- package/dist/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.js.map +1 -0
- package/dist/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.d.ts +9 -0
- package/dist/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.js +59 -0
- package/dist/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.js.map +1 -0
- package/dist/client/components/react-dev-overlay/app/OldReactDevOverlay.d.ts +18 -0
- package/dist/client/components/react-dev-overlay/app/OldReactDevOverlay.js +92 -0
- package/dist/client/components/react-dev-overlay/app/OldReactDevOverlay.js.map +1 -0
- package/dist/client/components/react-dev-overlay/app/ReactDevOverlay.d.ts +3 -18
- package/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js +4 -74
- package/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js.map +1 -1
- package/dist/client/components/react-dev-overlay/pages/OldReactDevOverlay.d.ts +9 -0
- package/dist/client/components/react-dev-overlay/pages/OldReactDevOverlay.js +59 -0
- package/dist/client/components/react-dev-overlay/pages/OldReactDevOverlay.js.map +1 -0
- package/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.d.ts +3 -9
- package/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.js +5 -42
- package/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.js.map +1 -1
- package/dist/client/components/react-dev-overlay/pages/hooks.d.ts +1 -1
- package/dist/client/components/react-dev-overlay/pages/hooks.js.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +2 -2
- package/dist/compiled/next-server/app-page-experimental.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/app-page.runtime.dev.js +2 -2
- package/dist/compiled/next-server/app-page.runtime.dev.js.map +1 -1
- package/dist/esm/build/index.js +5 -2
- package/dist/esm/build/index.js.map +1 -1
- package/dist/esm/build/swc/index.js +1 -1
- package/dist/esm/build/webpack-config.js +2 -2
- package/dist/esm/client/app-bootstrap.js +1 -1
- package/dist/esm/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.js +76 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.js +102 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.js +3 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.js +15 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.js +70 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.js +13 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.js +13 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.js +13 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.js +7 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.js +15 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js +162 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.js +4 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.js +15 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.js +45 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.js +34 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.js +3 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.js +2732 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.js +15 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.js +25 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.js +50 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.js +90 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.js +3 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.js +15 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.js +19 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.js +4 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.js +15 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.js +75 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.js +4 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.js +15 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js +213 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.js +57 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.js +103 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/BuildError.js +71 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/BuildError.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/Errors.js +364 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/Errors.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.js +75 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.js +99 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.js +275 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.js +63 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.js +39 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.js +42 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.js +35 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.js +20 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.js +20 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.js +147 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.js +34 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.js +22 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.js +66 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.js +17 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.js +73 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.js +391 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.js +60 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.js +9 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.js +83 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.js +38 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.js +5 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.js +112 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.js +40 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.js +88 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.js +21 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.js +93 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.js +31 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.js +29 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.js +30 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.js +27 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.js +18 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/Base.js +20 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/Base.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.js +39 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.js +20 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.js +42 -0
- package/dist/esm/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/app/OldReactDevOverlay.js +76 -0
- package/dist/esm/client/components/react-dev-overlay/app/OldReactDevOverlay.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/app/ReactDevOverlay.js +3 -74
- package/dist/esm/client/components/react-dev-overlay/app/ReactDevOverlay.js.map +1 -1
- package/dist/esm/client/components/react-dev-overlay/pages/OldReactDevOverlay.js +42 -0
- package/dist/esm/client/components/react-dev-overlay/pages/OldReactDevOverlay.js.map +1 -0
- package/dist/esm/client/components/react-dev-overlay/pages/ReactDevOverlay.js +3 -40
- package/dist/esm/client/components/react-dev-overlay/pages/ReactDevOverlay.js.map +1 -1
- package/dist/esm/client/components/react-dev-overlay/pages/hooks.js.map +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/server/config.js +1 -1
- package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/esm/server/lib/app-info-log.js +1 -1
- package/dist/esm/server/lib/start-server.js +1 -1
- package/dist/server/config.js +1 -1
- package/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/server/lib/app-info-log.js +1 -1
- package/dist/server/lib/start-server.js +1 -1
- package/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/telemetry/events/session-stopped.js +2 -2
- package/dist/telemetry/events/version.js +2 -2
- package/package.json +15 -15
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getFrameSource } from '../../helpers/stack-frame';
|
|
3
|
+
import { useOpenInEditor } from '../../helpers/use-open-in-editor';
|
|
4
|
+
import { HotlinkedText } from '../../components/hot-linked-text';
|
|
5
|
+
export const CallStackFrame = function CallStackFrame(param) {
|
|
6
|
+
let { frame } = param;
|
|
7
|
+
var _frame_originalStackFrame;
|
|
8
|
+
// TODO: ability to expand resolved frames
|
|
9
|
+
// TODO: render error or external indicator
|
|
10
|
+
const f = (_frame_originalStackFrame = frame.originalStackFrame) != null ? _frame_originalStackFrame : frame.sourceStackFrame;
|
|
11
|
+
const hasSource = Boolean(frame.originalCodeFrame);
|
|
12
|
+
const open = useOpenInEditor(hasSource ? {
|
|
13
|
+
file: f.file,
|
|
14
|
+
lineNumber: f.lineNumber,
|
|
15
|
+
column: f.column
|
|
16
|
+
} : undefined);
|
|
17
|
+
// Format method to strip out the webpack layer prefix.
|
|
18
|
+
// e.g. (app-pages-browser)/./app/page.tsx -> ./app/page.tsx
|
|
19
|
+
const formattedMethod = f.methodName.replace(/^\([\w-]+\)\//, '');
|
|
20
|
+
// Formatted file source could be empty. e.g. <anonymous> will be formatted to empty string,
|
|
21
|
+
// we'll skip rendering the frame in this case.
|
|
22
|
+
const fileSource = getFrameSource(f);
|
|
23
|
+
if (!fileSource) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
27
|
+
"data-nextjs-call-stack-frame": true,
|
|
28
|
+
children: [
|
|
29
|
+
/*#__PURE__*/ _jsx("h3", {
|
|
30
|
+
"data-nextjs-frame-expanded": !frame.ignored,
|
|
31
|
+
children: /*#__PURE__*/ _jsx(HotlinkedText, {
|
|
32
|
+
text: formattedMethod
|
|
33
|
+
})
|
|
34
|
+
}),
|
|
35
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
36
|
+
"data-has-source": hasSource ? 'true' : undefined,
|
|
37
|
+
"data-no-source": hasSource ? undefined : 'true',
|
|
38
|
+
tabIndex: hasSource ? 10 : undefined,
|
|
39
|
+
role: hasSource ? 'link' : undefined,
|
|
40
|
+
onClick: open,
|
|
41
|
+
title: hasSource ? 'Click to open in your editor' : undefined,
|
|
42
|
+
children: [
|
|
43
|
+
/*#__PURE__*/ _jsx("span", {
|
|
44
|
+
children: fileSource
|
|
45
|
+
}),
|
|
46
|
+
/*#__PURE__*/ _jsxs("svg", {
|
|
47
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
48
|
+
viewBox: "0 0 24 24",
|
|
49
|
+
fill: "none",
|
|
50
|
+
stroke: "currentColor",
|
|
51
|
+
strokeWidth: "2",
|
|
52
|
+
strokeLinecap: "round",
|
|
53
|
+
strokeLinejoin: "round",
|
|
54
|
+
children: [
|
|
55
|
+
/*#__PURE__*/ _jsx("path", {
|
|
56
|
+
d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
|
|
57
|
+
}),
|
|
58
|
+
/*#__PURE__*/ _jsx("polyline", {
|
|
59
|
+
points: "15 3 21 3 21 9"
|
|
60
|
+
}),
|
|
61
|
+
/*#__PURE__*/ _jsx("line", {
|
|
62
|
+
x1: "10",
|
|
63
|
+
y1: "14",
|
|
64
|
+
x2: "21",
|
|
65
|
+
y2: "3"
|
|
66
|
+
})
|
|
67
|
+
]
|
|
68
|
+
})
|
|
69
|
+
]
|
|
70
|
+
})
|
|
71
|
+
]
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=CallStackFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.tsx"],"sourcesContent":["import type { StackFrame } from 'next/dist/compiled/stacktrace-parser'\nimport {\n getFrameSource,\n type OriginalStackFrame,\n} from '../../helpers/stack-frame'\nimport { useOpenInEditor } from '../../helpers/use-open-in-editor'\nimport { HotlinkedText } from '../../components/hot-linked-text'\n\nexport const CallStackFrame: React.FC<{\n frame: OriginalStackFrame\n}> = function CallStackFrame({ frame }) {\n // TODO: ability to expand resolved frames\n // TODO: render error or external indicator\n\n const f: StackFrame = frame.originalStackFrame ?? frame.sourceStackFrame\n const hasSource = Boolean(frame.originalCodeFrame)\n const open = useOpenInEditor(\n hasSource\n ? {\n file: f.file,\n lineNumber: f.lineNumber,\n column: f.column,\n }\n : undefined\n )\n\n // Format method to strip out the webpack layer prefix.\n // e.g. (app-pages-browser)/./app/page.tsx -> ./app/page.tsx\n const formattedMethod = f.methodName.replace(/^\\([\\w-]+\\)\\//, '')\n\n // Formatted file source could be empty. e.g. <anonymous> will be formatted to empty string,\n // we'll skip rendering the frame in this case.\n const fileSource = getFrameSource(f)\n if (!fileSource) {\n return null\n }\n\n return (\n <div data-nextjs-call-stack-frame>\n <h3 data-nextjs-frame-expanded={!frame.ignored}>\n <HotlinkedText text={formattedMethod} />\n </h3>\n <div\n data-has-source={hasSource ? 'true' : undefined}\n data-no-source={hasSource ? undefined : 'true'}\n tabIndex={hasSource ? 10 : undefined}\n role={hasSource ? 'link' : undefined}\n onClick={open}\n title={hasSource ? 'Click to open in your editor' : undefined}\n >\n <span>{fileSource}</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path>\n <polyline points=\"15 3 21 3 21 9\"></polyline>\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line>\n </svg>\n </div>\n </div>\n )\n}\n"],"names":["getFrameSource","useOpenInEditor","HotlinkedText","CallStackFrame","frame","f","originalStackFrame","sourceStackFrame","hasSource","Boolean","originalCodeFrame","open","file","lineNumber","column","undefined","formattedMethod","methodName","replace","fileSource","div","data-nextjs-call-stack-frame","h3","data-nextjs-frame-expanded","ignored","text","data-has-source","data-no-source","tabIndex","role","onClick","title","span","svg","xmlns","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","path","d","polyline","points","line","x1","y1","x2","y2"],"mappings":";AACA,SACEA,cAAc,QAET,4BAA2B;AAClC,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,aAAa,QAAQ,mCAAkC;AAEhE,OAAO,MAAMC,iBAER,SAASA,eAAe,KAAS;IAAT,IAAA,EAAEC,KAAK,EAAE,GAAT;QAILA;IAHtB,0CAA0C;IAC1C,2CAA2C;IAE3C,MAAMC,IAAgBD,CAAAA,4BAAAA,MAAME,kBAAkB,YAAxBF,4BAA4BA,MAAMG,gBAAgB;IACxE,MAAMC,YAAYC,QAAQL,MAAMM,iBAAiB;IACjD,MAAMC,OAAOV,gBACXO,YACI;QACEI,MAAMP,EAAEO,IAAI;QACZC,YAAYR,EAAEQ,UAAU;QACxBC,QAAQT,EAAES,MAAM;IAClB,IACAC;IAGN,uDAAuD;IACvD,4DAA4D;IAC5D,MAAMC,kBAAkBX,EAAEY,UAAU,CAACC,OAAO,CAAC,iBAAiB;IAE9D,4FAA4F;IAC5F,+CAA+C;IAC/C,MAAMC,aAAanB,eAAeK;IAClC,IAAI,CAACc,YAAY;QACf,OAAO;IACT;IAEA,qBACE,MAACC;QAAIC,8BAA4B;;0BAC/B,KAACC;gBAAGC,8BAA4B,CAACnB,MAAMoB,OAAO;0BAC5C,cAAA,KAACtB;oBAAcuB,MAAMT;;;0BAEvB,MAACI;gBACCM,mBAAiBlB,YAAY,SAASO;gBACtCY,kBAAgBnB,YAAYO,YAAY;gBACxCa,UAAUpB,YAAY,KAAKO;gBAC3Bc,MAAMrB,YAAY,SAASO;gBAC3Be,SAASnB;gBACToB,OAAOvB,YAAY,iCAAiCO;;kCAEpD,KAACiB;kCAAMb;;kCACP,MAACc;wBACCC,OAAM;wBACNC,SAAQ;wBACRC,MAAK;wBACLC,QAAO;wBACPC,aAAY;wBACZC,eAAc;wBACdC,gBAAe;;0CAEf,KAACC;gCAAKC,GAAE;;0CACR,KAACC;gCAASC,QAAO;;0CACjB,KAACC;gCAAKC,IAAG;gCAAKC,IAAG;gCAAKC,IAAG;gCAAKC,IAAG;;;;;;;;AAK3C,EAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useOpenInEditor } from '../../helpers/use-open-in-editor';
|
|
4
|
+
import { HotlinkedText } from '../../components/hot-linked-text';
|
|
5
|
+
function EditorLink(param) {
|
|
6
|
+
let { children, componentStackFrame: { file, column, lineNumber } } = param;
|
|
7
|
+
const open = useOpenInEditor({
|
|
8
|
+
file,
|
|
9
|
+
column,
|
|
10
|
+
lineNumber
|
|
11
|
+
});
|
|
12
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
13
|
+
tabIndex: 10,
|
|
14
|
+
role: 'link',
|
|
15
|
+
onClick: open,
|
|
16
|
+
title: 'Click to open in your editor',
|
|
17
|
+
children: [
|
|
18
|
+
children,
|
|
19
|
+
/*#__PURE__*/ _jsxs("svg", {
|
|
20
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
21
|
+
viewBox: "0 0 24 24",
|
|
22
|
+
fill: "none",
|
|
23
|
+
stroke: "currentColor",
|
|
24
|
+
strokeWidth: "2",
|
|
25
|
+
strokeLinecap: "round",
|
|
26
|
+
strokeLinejoin: "round",
|
|
27
|
+
children: [
|
|
28
|
+
/*#__PURE__*/ _jsx("path", {
|
|
29
|
+
d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
|
|
30
|
+
}),
|
|
31
|
+
/*#__PURE__*/ _jsx("polyline", {
|
|
32
|
+
points: "15 3 21 3 21 9"
|
|
33
|
+
}),
|
|
34
|
+
/*#__PURE__*/ _jsx("line", {
|
|
35
|
+
x1: "10",
|
|
36
|
+
y1: "14",
|
|
37
|
+
x2: "21",
|
|
38
|
+
y2: "3"
|
|
39
|
+
})
|
|
40
|
+
]
|
|
41
|
+
})
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function formatLineNumber(lineNumber, column) {
|
|
46
|
+
if (!column) {
|
|
47
|
+
return lineNumber;
|
|
48
|
+
}
|
|
49
|
+
return lineNumber + ":" + column;
|
|
50
|
+
}
|
|
51
|
+
function LocationLine(param) {
|
|
52
|
+
let { componentStackFrame } = param;
|
|
53
|
+
const { file, lineNumber, column } = componentStackFrame;
|
|
54
|
+
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
55
|
+
children: [
|
|
56
|
+
file,
|
|
57
|
+
" ",
|
|
58
|
+
lineNumber ? "(" + formatLineNumber(lineNumber, column) + ")" : ''
|
|
59
|
+
]
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function SourceLocation(param) {
|
|
63
|
+
let { componentStackFrame } = param;
|
|
64
|
+
const { file, canOpenInEditor } = componentStackFrame;
|
|
65
|
+
if (file && canOpenInEditor) {
|
|
66
|
+
return /*#__PURE__*/ _jsx(EditorLink, {
|
|
67
|
+
componentStackFrame: componentStackFrame,
|
|
68
|
+
children: /*#__PURE__*/ _jsx("span", {
|
|
69
|
+
children: /*#__PURE__*/ _jsx(LocationLine, {
|
|
70
|
+
componentStackFrame: componentStackFrame
|
|
71
|
+
})
|
|
72
|
+
})
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
76
|
+
children: /*#__PURE__*/ _jsx(LocationLine, {
|
|
77
|
+
componentStackFrame: componentStackFrame
|
|
78
|
+
})
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
export function ComponentStackFrameRow(param) {
|
|
82
|
+
let { componentStackFrame } = param;
|
|
83
|
+
const { component } = componentStackFrame;
|
|
84
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
85
|
+
"data-nextjs-component-stack-frame": true,
|
|
86
|
+
children: [
|
|
87
|
+
/*#__PURE__*/ _jsx("h3", {
|
|
88
|
+
children: /*#__PURE__*/ _jsx(HotlinkedText, {
|
|
89
|
+
text: component
|
|
90
|
+
})
|
|
91
|
+
}),
|
|
92
|
+
/*#__PURE__*/ _jsx(SourceLocation, {
|
|
93
|
+
componentStackFrame: componentStackFrame
|
|
94
|
+
})
|
|
95
|
+
]
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=ComponentStackFrameRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.tsx"],"sourcesContent":["import React from 'react'\nimport type { ComponentStackFrame } from '../../helpers/parse-component-stack'\nimport { useOpenInEditor } from '../../helpers/use-open-in-editor'\nimport { HotlinkedText } from '../../components/hot-linked-text'\n\nfunction EditorLink({\n children,\n componentStackFrame: { file, column, lineNumber },\n}: {\n children: React.ReactNode\n componentStackFrame: ComponentStackFrame\n}) {\n const open = useOpenInEditor({\n file,\n column,\n lineNumber,\n })\n\n return (\n <div\n tabIndex={10} // match CallStackFrame\n role={'link'}\n onClick={open}\n title={'Click to open in your editor'}\n >\n {children}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path>\n <polyline points=\"15 3 21 3 21 9\"></polyline>\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line>\n </svg>\n </div>\n )\n}\n\nfunction formatLineNumber(lineNumber: number, column: number | undefined) {\n if (!column) {\n return lineNumber\n }\n\n return `${lineNumber}:${column}`\n}\n\nfunction LocationLine({\n componentStackFrame,\n}: {\n componentStackFrame: ComponentStackFrame\n}) {\n const { file, lineNumber, column } = componentStackFrame\n return (\n <>\n {file} {lineNumber ? `(${formatLineNumber(lineNumber, column)})` : ''}\n </>\n )\n}\n\nfunction SourceLocation({\n componentStackFrame,\n}: {\n componentStackFrame: ComponentStackFrame\n}) {\n const { file, canOpenInEditor } = componentStackFrame\n\n if (file && canOpenInEditor) {\n return (\n <EditorLink componentStackFrame={componentStackFrame}>\n <span>\n <LocationLine componentStackFrame={componentStackFrame} />\n </span>\n </EditorLink>\n )\n }\n\n return (\n <div>\n <LocationLine componentStackFrame={componentStackFrame} />\n </div>\n )\n}\n\nexport function ComponentStackFrameRow({\n componentStackFrame,\n}: {\n componentStackFrame: ComponentStackFrame\n}) {\n const { component } = componentStackFrame\n\n return (\n <div data-nextjs-component-stack-frame>\n <h3>\n <HotlinkedText text={component} />\n </h3>\n <SourceLocation componentStackFrame={componentStackFrame} />\n </div>\n )\n}\n"],"names":["React","useOpenInEditor","HotlinkedText","EditorLink","children","componentStackFrame","file","column","lineNumber","open","div","tabIndex","role","onClick","title","svg","xmlns","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","path","d","polyline","points","line","x1","y1","x2","y2","formatLineNumber","LocationLine","SourceLocation","canOpenInEditor","span","ComponentStackFrameRow","component","data-nextjs-component-stack-frame","h3","text"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,aAAa,QAAQ,mCAAkC;AAEhE,SAASC,WAAW,KAMnB;IANmB,IAAA,EAClBC,QAAQ,EACRC,qBAAqB,EAAEC,IAAI,EAAEC,MAAM,EAAEC,UAAU,EAAE,EAIlD,GANmB;IAOlB,MAAMC,OAAOR,gBAAgB;QAC3BK;QACAC;QACAC;IACF;IAEA,qBACE,MAACE;QACCC,UAAU;QACVC,MAAM;QACNC,SAASJ;QACTK,OAAO;;YAENV;0BACD,MAACW;gBACCC,OAAM;gBACNC,SAAQ;gBACRC,MAAK;gBACLC,QAAO;gBACPC,aAAY;gBACZC,eAAc;gBACdC,gBAAe;;kCAEf,KAACC;wBAAKC,GAAE;;kCACR,KAACC;wBAASC,QAAO;;kCACjB,KAACC;wBAAKC,IAAG;wBAAKC,IAAG;wBAAKC,IAAG;wBAAKC,IAAG;;;;;;AAIzC;AAEA,SAASC,iBAAiBxB,UAAkB,EAAED,MAA0B;IACtE,IAAI,CAACA,QAAQ;QACX,OAAOC;IACT;IAEA,OAAO,AAAGA,aAAW,MAAGD;AAC1B;AAEA,SAAS0B,aAAa,KAIrB;IAJqB,IAAA,EACpB5B,mBAAmB,EAGpB,GAJqB;IAKpB,MAAM,EAAEC,IAAI,EAAEE,UAAU,EAAED,MAAM,EAAE,GAAGF;IACrC,qBACE;;YACGC;YAAK;YAAEE,aAAa,AAAC,MAAGwB,iBAAiBxB,YAAYD,UAAQ,MAAK;;;AAGzE;AAEA,SAAS2B,eAAe,KAIvB;IAJuB,IAAA,EACtB7B,mBAAmB,EAGpB,GAJuB;IAKtB,MAAM,EAAEC,IAAI,EAAE6B,eAAe,EAAE,GAAG9B;IAElC,IAAIC,QAAQ6B,iBAAiB;QAC3B,qBACE,KAAChC;YAAWE,qBAAqBA;sBAC/B,cAAA,KAAC+B;0BACC,cAAA,KAACH;oBAAa5B,qBAAqBA;;;;IAI3C;IAEA,qBACE,KAACK;kBACC,cAAA,KAACuB;YAAa5B,qBAAqBA;;;AAGzC;AAEA,OAAO,SAASgC,uBAAuB,KAItC;IAJsC,IAAA,EACrChC,mBAAmB,EAGpB,GAJsC;IAKrC,MAAM,EAAEiC,SAAS,EAAE,GAAGjC;IAEtB,qBACE,MAACK;QAAI6B,mCAAiC;;0BACpC,KAACC;0BACC,cAAA,KAACtC;oBAAcuC,MAAMH;;;0BAEvB,KAACJ;gBAAe7B,qBAAqBA;;;;AAG3C"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createElement as _createElement } from "react";
|
|
3
|
+
import { useMemo, Fragment, useState } from 'react';
|
|
4
|
+
import { CollapseIcon } from '../../icons/CollapseIcon';
|
|
5
|
+
function getAdjacentProps(isAdj) {
|
|
6
|
+
return {
|
|
7
|
+
'data-nextjs-container-errors-pseudo-html--tag-adjacent': isAdj
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* Format component stack into pseudo HTML
|
|
13
|
+
* component stack is an array of strings, e.g.: ['p', 'p', 'Page', ...]
|
|
14
|
+
*
|
|
15
|
+
* For html tags mismatch, it will render it for the code block
|
|
16
|
+
*
|
|
17
|
+
* ```
|
|
18
|
+
* <pre>
|
|
19
|
+
* <code>{`
|
|
20
|
+
* <Page>
|
|
21
|
+
* <p red>
|
|
22
|
+
* <p red>
|
|
23
|
+
* `}</code>
|
|
24
|
+
* </pre>
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* For text mismatch, it will render it for the code block
|
|
28
|
+
*
|
|
29
|
+
* ```
|
|
30
|
+
* <pre>
|
|
31
|
+
* <code>{`
|
|
32
|
+
* <Page>
|
|
33
|
+
* <p>
|
|
34
|
+
* "Server Text" (green)
|
|
35
|
+
* "Client Text" (red)
|
|
36
|
+
* </p>
|
|
37
|
+
* </Page>
|
|
38
|
+
* `}</code>
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* For bad text under a tag it will render it for the code block,
|
|
42
|
+
* e.g. "Mismatched Text" under <p>
|
|
43
|
+
*
|
|
44
|
+
* ```
|
|
45
|
+
* <pre>
|
|
46
|
+
* <code>{`
|
|
47
|
+
* <Page>
|
|
48
|
+
* <div>
|
|
49
|
+
* <p>
|
|
50
|
+
* "Mismatched Text" (red)
|
|
51
|
+
* </p>
|
|
52
|
+
* </div>
|
|
53
|
+
* </Page>
|
|
54
|
+
* `}</code>
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
*/ export function PseudoHtmlDiff(param) {
|
|
58
|
+
let { componentStackFrames, firstContent, secondContent, hydrationMismatchType, reactOutputComponentDiff, ...props } = param;
|
|
59
|
+
const isHtmlTagsWarning = hydrationMismatchType === 'tag';
|
|
60
|
+
const isReactHydrationDiff = !!reactOutputComponentDiff;
|
|
61
|
+
// For text mismatch, mismatched text will take 2 rows, so we display 4 rows of component stack
|
|
62
|
+
const MAX_NON_COLLAPSED_FRAMES = isHtmlTagsWarning ? 6 : 4;
|
|
63
|
+
const [isHtmlCollapsed, toggleCollapseHtml] = useState(true);
|
|
64
|
+
const htmlComponents = useMemo(()=>{
|
|
65
|
+
const componentStacks = [];
|
|
66
|
+
// React 19 unified mismatch
|
|
67
|
+
if (isReactHydrationDiff) {
|
|
68
|
+
let currentComponentIndex = componentStackFrames.length - 1;
|
|
69
|
+
const reactComponentDiffLines = reactOutputComponentDiff.split('\n');
|
|
70
|
+
const diffHtmlStack = [];
|
|
71
|
+
reactComponentDiffLines.forEach((line, index)=>{
|
|
72
|
+
let trimmedLine = line.trim();
|
|
73
|
+
const isDiffLine = trimmedLine[0] === '+' || trimmedLine[0] === '-';
|
|
74
|
+
const spaces = ' '.repeat(Math.max(componentStacks.length * 2, 1));
|
|
75
|
+
if (isDiffLine) {
|
|
76
|
+
const sign = trimmedLine[0];
|
|
77
|
+
trimmedLine = trimmedLine.slice(1).trim() // trim spaces after sign
|
|
78
|
+
;
|
|
79
|
+
diffHtmlStack.push(/*#__PURE__*/ _jsxs("span", {
|
|
80
|
+
"data-nextjs-container-errors-pseudo-html--diff": sign === '+' ? 'add' : 'remove',
|
|
81
|
+
children: [
|
|
82
|
+
sign,
|
|
83
|
+
spaces,
|
|
84
|
+
trimmedLine,
|
|
85
|
+
'\n'
|
|
86
|
+
]
|
|
87
|
+
}, 'comp-diff' + index));
|
|
88
|
+
} else if (currentComponentIndex >= 0) {
|
|
89
|
+
const isUserLandComponent = trimmedLine.startsWith('<' + componentStackFrames[currentComponentIndex].component);
|
|
90
|
+
// If it's matched userland component or it's ... we will keep the component stack in diff
|
|
91
|
+
if (isUserLandComponent || trimmedLine === '...') {
|
|
92
|
+
currentComponentIndex--;
|
|
93
|
+
componentStacks.push(/*#__PURE__*/ _jsxs("span", {
|
|
94
|
+
children: [
|
|
95
|
+
spaces,
|
|
96
|
+
trimmedLine,
|
|
97
|
+
'\n'
|
|
98
|
+
]
|
|
99
|
+
}, 'comp-diff' + index));
|
|
100
|
+
} else if (!isHtmlCollapsed) {
|
|
101
|
+
componentStacks.push(/*#__PURE__*/ _jsxs("span", {
|
|
102
|
+
children: [
|
|
103
|
+
spaces,
|
|
104
|
+
trimmedLine,
|
|
105
|
+
'\n'
|
|
106
|
+
]
|
|
107
|
+
}, 'comp-diff' + index));
|
|
108
|
+
}
|
|
109
|
+
} else if (!isHtmlCollapsed) {
|
|
110
|
+
// In general, if it's not collapsed, show the whole diff
|
|
111
|
+
componentStacks.push(/*#__PURE__*/ _jsxs("span", {
|
|
112
|
+
children: [
|
|
113
|
+
spaces,
|
|
114
|
+
trimmedLine,
|
|
115
|
+
'\n'
|
|
116
|
+
]
|
|
117
|
+
}, 'comp-diff' + index));
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return componentStacks.concat(diffHtmlStack);
|
|
121
|
+
}
|
|
122
|
+
const nestedHtmlStack = [];
|
|
123
|
+
const tagNames = isHtmlTagsWarning ? [
|
|
124
|
+
firstContent.replace(/<|>/g, ''),
|
|
125
|
+
secondContent.replace(/<|>/g, '')
|
|
126
|
+
] : [];
|
|
127
|
+
let lastText = '';
|
|
128
|
+
const componentStack = componentStackFrames.map((frame)=>frame.component).reverse();
|
|
129
|
+
// [child index, parent index]
|
|
130
|
+
const matchedIndex = [
|
|
131
|
+
-1,
|
|
132
|
+
-1
|
|
133
|
+
];
|
|
134
|
+
if (isHtmlTagsWarning) {
|
|
135
|
+
// Reverse search for the child tag
|
|
136
|
+
for(let i = componentStack.length - 1; i >= 0; i--){
|
|
137
|
+
if (componentStack[i] === tagNames[0]) {
|
|
138
|
+
matchedIndex[0] = i;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Start searching parent tag from child tag above
|
|
143
|
+
for(let i = matchedIndex[0] - 1; i >= 0; i--){
|
|
144
|
+
if (componentStack[i] === tagNames[1]) {
|
|
145
|
+
matchedIndex[1] = i;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
componentStack.forEach((component, index, componentList)=>{
|
|
151
|
+
const spaces = ' '.repeat(nestedHtmlStack.length * 2);
|
|
152
|
+
// When component is the server or client tag name, highlight it
|
|
153
|
+
const isHighlightedTag = isHtmlTagsWarning ? index === matchedIndex[0] || index === matchedIndex[1] : tagNames.includes(component);
|
|
154
|
+
const isAdjacentTag = isHighlightedTag || Math.abs(index - matchedIndex[0]) <= 1 || Math.abs(index - matchedIndex[1]) <= 1;
|
|
155
|
+
const isLastFewFrames = !isHtmlTagsWarning && index >= componentList.length - 6;
|
|
156
|
+
const adjProps = getAdjacentProps(isAdjacentTag);
|
|
157
|
+
if (isHtmlTagsWarning && isAdjacentTag || isLastFewFrames) {
|
|
158
|
+
const codeLine = /*#__PURE__*/ _jsxs("span", {
|
|
159
|
+
children: [
|
|
160
|
+
spaces,
|
|
161
|
+
/*#__PURE__*/ _jsx("span", {
|
|
162
|
+
...adjProps,
|
|
163
|
+
...isHighlightedTag ? {
|
|
164
|
+
'data-nextjs-container-errors-pseudo-html--tag-error': true
|
|
165
|
+
} : undefined,
|
|
166
|
+
children: "<" + component + ">\n"
|
|
167
|
+
})
|
|
168
|
+
]
|
|
169
|
+
});
|
|
170
|
+
lastText = component;
|
|
171
|
+
const wrappedCodeLine = /*#__PURE__*/ _jsxs(Fragment, {
|
|
172
|
+
children: [
|
|
173
|
+
codeLine,
|
|
174
|
+
isHighlightedTag && /*#__PURE__*/ _jsx("span", {
|
|
175
|
+
"data-nextjs-container-errors-pseudo-html--hint": true,
|
|
176
|
+
children: spaces + '^'.repeat(component.length + 2) + '\n'
|
|
177
|
+
})
|
|
178
|
+
]
|
|
179
|
+
}, nestedHtmlStack.length);
|
|
180
|
+
nestedHtmlStack.push(wrappedCodeLine);
|
|
181
|
+
} else {
|
|
182
|
+
if (nestedHtmlStack.length >= MAX_NON_COLLAPSED_FRAMES && isHtmlCollapsed) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (!isHtmlCollapsed || isLastFewFrames) {
|
|
186
|
+
nestedHtmlStack.push(/*#__PURE__*/ _createElement("span", {
|
|
187
|
+
...adjProps,
|
|
188
|
+
key: nestedHtmlStack.length,
|
|
189
|
+
children: [
|
|
190
|
+
spaces,
|
|
191
|
+
'<' + component + '>\n'
|
|
192
|
+
]
|
|
193
|
+
}));
|
|
194
|
+
} else if (isHtmlCollapsed && lastText !== '...') {
|
|
195
|
+
lastText = '...';
|
|
196
|
+
nestedHtmlStack.push(/*#__PURE__*/ _createElement("span", {
|
|
197
|
+
...adjProps,
|
|
198
|
+
key: nestedHtmlStack.length,
|
|
199
|
+
children: [
|
|
200
|
+
spaces,
|
|
201
|
+
'...\n'
|
|
202
|
+
]
|
|
203
|
+
}));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
// Hydration mismatch: text or text-tag
|
|
208
|
+
if (!isHtmlTagsWarning) {
|
|
209
|
+
const spaces = ' '.repeat(nestedHtmlStack.length * 2);
|
|
210
|
+
let wrappedCodeLine;
|
|
211
|
+
if (hydrationMismatchType === 'text') {
|
|
212
|
+
// hydration type is "text", represent [server content, client content]
|
|
213
|
+
wrappedCodeLine = /*#__PURE__*/ _jsxs(Fragment, {
|
|
214
|
+
children: [
|
|
215
|
+
/*#__PURE__*/ _jsx("span", {
|
|
216
|
+
"data-nextjs-container-errors-pseudo-html--diff": "remove",
|
|
217
|
+
children: spaces + ('"' + firstContent + '"\n')
|
|
218
|
+
}),
|
|
219
|
+
/*#__PURE__*/ _jsx("span", {
|
|
220
|
+
"data-nextjs-container-errors-pseudo-html--diff": "add",
|
|
221
|
+
children: spaces + ('"' + secondContent + '"\n')
|
|
222
|
+
})
|
|
223
|
+
]
|
|
224
|
+
}, nestedHtmlStack.length);
|
|
225
|
+
} else if (hydrationMismatchType === 'text-in-tag') {
|
|
226
|
+
// hydration type is "text-in-tag", represent [parent tag, mismatch content]
|
|
227
|
+
wrappedCodeLine = /*#__PURE__*/ _jsxs(Fragment, {
|
|
228
|
+
children: [
|
|
229
|
+
/*#__PURE__*/ _jsx("span", {
|
|
230
|
+
"data-nextjs-container-errors-pseudo-html--tag-adjacent": true,
|
|
231
|
+
children: spaces + ("<" + secondContent + ">\n")
|
|
232
|
+
}),
|
|
233
|
+
/*#__PURE__*/ _jsx("span", {
|
|
234
|
+
"data-nextjs-container-errors-pseudo-html--diff": "remove",
|
|
235
|
+
children: spaces + (' "' + firstContent + '"\n')
|
|
236
|
+
})
|
|
237
|
+
]
|
|
238
|
+
}, nestedHtmlStack.length);
|
|
239
|
+
}
|
|
240
|
+
nestedHtmlStack.push(wrappedCodeLine);
|
|
241
|
+
}
|
|
242
|
+
return nestedHtmlStack;
|
|
243
|
+
}, [
|
|
244
|
+
componentStackFrames,
|
|
245
|
+
isHtmlCollapsed,
|
|
246
|
+
firstContent,
|
|
247
|
+
secondContent,
|
|
248
|
+
isHtmlTagsWarning,
|
|
249
|
+
hydrationMismatchType,
|
|
250
|
+
MAX_NON_COLLAPSED_FRAMES,
|
|
251
|
+
isReactHydrationDiff,
|
|
252
|
+
reactOutputComponentDiff
|
|
253
|
+
]);
|
|
254
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
255
|
+
"data-nextjs-container-errors-pseudo-html": true,
|
|
256
|
+
children: [
|
|
257
|
+
/*#__PURE__*/ _jsx("button", {
|
|
258
|
+
tabIndex: 10,
|
|
259
|
+
"data-nextjs-container-errors-pseudo-html-collapse": true,
|
|
260
|
+
onClick: ()=>toggleCollapseHtml(!isHtmlCollapsed),
|
|
261
|
+
children: /*#__PURE__*/ _jsx(CollapseIcon, {
|
|
262
|
+
collapsed: isHtmlCollapsed
|
|
263
|
+
})
|
|
264
|
+
}),
|
|
265
|
+
/*#__PURE__*/ _jsx("pre", {
|
|
266
|
+
...props,
|
|
267
|
+
children: /*#__PURE__*/ _jsx("code", {
|
|
268
|
+
children: htmlComponents
|
|
269
|
+
})
|
|
270
|
+
})
|
|
271
|
+
]
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
//# sourceMappingURL=component-stack-pseudo-html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.tsx"],"sourcesContent":["import { useMemo, Fragment, useState } from 'react'\nimport type { ComponentStackFrame } from '../../helpers/parse-component-stack'\nimport { CollapseIcon } from '../../icons/CollapseIcon'\n\nfunction getAdjacentProps(isAdj: boolean) {\n return { 'data-nextjs-container-errors-pseudo-html--tag-adjacent': isAdj }\n}\n\n/**\n *\n * Format component stack into pseudo HTML\n * component stack is an array of strings, e.g.: ['p', 'p', 'Page', ...]\n *\n * For html tags mismatch, it will render it for the code block\n *\n * ```\n * <pre>\n * <code>{`\n * <Page>\n * <p red>\n * <p red>\n * `}</code>\n * </pre>\n * ```\n *\n * For text mismatch, it will render it for the code block\n *\n * ```\n * <pre>\n * <code>{`\n * <Page>\n * <p>\n * \"Server Text\" (green)\n * \"Client Text\" (red)\n * </p>\n * </Page>\n * `}</code>\n * ```\n *\n * For bad text under a tag it will render it for the code block,\n * e.g. \"Mismatched Text\" under <p>\n *\n * ```\n * <pre>\n * <code>{`\n * <Page>\n * <div>\n * <p>\n * \"Mismatched Text\" (red)\n * </p>\n * </div>\n * </Page>\n * `}</code>\n * ```\n *\n */\nexport function PseudoHtmlDiff({\n componentStackFrames,\n firstContent,\n secondContent,\n hydrationMismatchType,\n reactOutputComponentDiff,\n ...props\n}: {\n componentStackFrames: ComponentStackFrame[]\n firstContent: string\n secondContent: string\n reactOutputComponentDiff: string | undefined\n hydrationMismatchType: 'tag' | 'text' | 'text-in-tag'\n} & React.HTMLAttributes<HTMLPreElement>) {\n const isHtmlTagsWarning = hydrationMismatchType === 'tag'\n const isReactHydrationDiff = !!reactOutputComponentDiff\n\n // For text mismatch, mismatched text will take 2 rows, so we display 4 rows of component stack\n const MAX_NON_COLLAPSED_FRAMES = isHtmlTagsWarning ? 6 : 4\n const [isHtmlCollapsed, toggleCollapseHtml] = useState(true)\n\n const htmlComponents = useMemo(() => {\n const componentStacks: React.ReactNode[] = []\n // React 19 unified mismatch\n if (isReactHydrationDiff) {\n let currentComponentIndex = componentStackFrames.length - 1\n const reactComponentDiffLines = reactOutputComponentDiff.split('\\n')\n const diffHtmlStack: React.ReactNode[] = []\n reactComponentDiffLines.forEach((line, index) => {\n let trimmedLine = line.trim()\n const isDiffLine = trimmedLine[0] === '+' || trimmedLine[0] === '-'\n const spaces = ' '.repeat(Math.max(componentStacks.length * 2, 1))\n\n if (isDiffLine) {\n const sign = trimmedLine[0]\n trimmedLine = trimmedLine.slice(1).trim() // trim spaces after sign\n diffHtmlStack.push(\n <span\n key={'comp-diff' + index}\n data-nextjs-container-errors-pseudo-html--diff={\n sign === '+' ? 'add' : 'remove'\n }\n >\n {sign}\n {spaces}\n {trimmedLine}\n {'\\n'}\n </span>\n )\n } else if (currentComponentIndex >= 0) {\n const isUserLandComponent = trimmedLine.startsWith(\n '<' + componentStackFrames[currentComponentIndex].component\n )\n // If it's matched userland component or it's ... we will keep the component stack in diff\n if (isUserLandComponent || trimmedLine === '...') {\n currentComponentIndex--\n componentStacks.push(\n <span key={'comp-diff' + index}>\n {spaces}\n {trimmedLine}\n {'\\n'}\n </span>\n )\n } else if (!isHtmlCollapsed) {\n componentStacks.push(\n <span key={'comp-diff' + index}>\n {spaces}\n {trimmedLine}\n {'\\n'}\n </span>\n )\n }\n } else if (!isHtmlCollapsed) {\n // In general, if it's not collapsed, show the whole diff\n componentStacks.push(\n <span key={'comp-diff' + index}>\n {spaces}\n {trimmedLine}\n {'\\n'}\n </span>\n )\n }\n })\n return componentStacks.concat(diffHtmlStack)\n }\n\n const nestedHtmlStack: React.ReactNode[] = []\n const tagNames = isHtmlTagsWarning\n ? // tags could have < or > in the name, so we always remove them to match\n [firstContent.replace(/<|>/g, ''), secondContent.replace(/<|>/g, '')]\n : []\n\n let lastText = ''\n\n const componentStack = componentStackFrames\n .map((frame) => frame.component)\n .reverse()\n\n // [child index, parent index]\n const matchedIndex = [-1, -1]\n if (isHtmlTagsWarning) {\n // Reverse search for the child tag\n for (let i = componentStack.length - 1; i >= 0; i--) {\n if (componentStack[i] === tagNames[0]) {\n matchedIndex[0] = i\n break\n }\n }\n // Start searching parent tag from child tag above\n for (let i = matchedIndex[0] - 1; i >= 0; i--) {\n if (componentStack[i] === tagNames[1]) {\n matchedIndex[1] = i\n break\n }\n }\n }\n\n componentStack.forEach((component, index, componentList) => {\n const spaces = ' '.repeat(nestedHtmlStack.length * 2)\n\n // When component is the server or client tag name, highlight it\n const isHighlightedTag = isHtmlTagsWarning\n ? index === matchedIndex[0] || index === matchedIndex[1]\n : tagNames.includes(component)\n const isAdjacentTag =\n isHighlightedTag ||\n Math.abs(index - matchedIndex[0]) <= 1 ||\n Math.abs(index - matchedIndex[1]) <= 1\n\n const isLastFewFrames =\n !isHtmlTagsWarning && index >= componentList.length - 6\n\n const adjProps = getAdjacentProps(isAdjacentTag)\n\n if ((isHtmlTagsWarning && isAdjacentTag) || isLastFewFrames) {\n const codeLine = (\n <span>\n {spaces}\n <span\n {...adjProps}\n {...{\n ...(isHighlightedTag\n ? {\n 'data-nextjs-container-errors-pseudo-html--tag-error':\n true,\n }\n : undefined),\n }}\n >\n {`<${component}>\\n`}\n </span>\n </span>\n )\n lastText = component\n\n const wrappedCodeLine = (\n <Fragment key={nestedHtmlStack.length}>\n {codeLine}\n {/* Add ^^^^ to the target tags used for snapshots but not displayed for users */}\n {isHighlightedTag && (\n <span data-nextjs-container-errors-pseudo-html--hint>\n {spaces + '^'.repeat(component.length + 2) + '\\n'}\n </span>\n )}\n </Fragment>\n )\n nestedHtmlStack.push(wrappedCodeLine)\n } else {\n if (\n nestedHtmlStack.length >= MAX_NON_COLLAPSED_FRAMES &&\n isHtmlCollapsed\n ) {\n return\n }\n\n if (!isHtmlCollapsed || isLastFewFrames) {\n nestedHtmlStack.push(\n <span {...adjProps} key={nestedHtmlStack.length}>\n {spaces}\n {'<' + component + '>\\n'}\n </span>\n )\n } else if (isHtmlCollapsed && lastText !== '...') {\n lastText = '...'\n nestedHtmlStack.push(\n <span {...adjProps} key={nestedHtmlStack.length}>\n {spaces}\n {'...\\n'}\n </span>\n )\n }\n }\n })\n // Hydration mismatch: text or text-tag\n if (!isHtmlTagsWarning) {\n const spaces = ' '.repeat(nestedHtmlStack.length * 2)\n let wrappedCodeLine\n if (hydrationMismatchType === 'text') {\n // hydration type is \"text\", represent [server content, client content]\n wrappedCodeLine = (\n <Fragment key={nestedHtmlStack.length}>\n <span data-nextjs-container-errors-pseudo-html--diff=\"remove\">\n {spaces + `\"${firstContent}\"\\n`}\n </span>\n <span data-nextjs-container-errors-pseudo-html--diff=\"add\">\n {spaces + `\"${secondContent}\"\\n`}\n </span>\n </Fragment>\n )\n } else if (hydrationMismatchType === 'text-in-tag') {\n // hydration type is \"text-in-tag\", represent [parent tag, mismatch content]\n wrappedCodeLine = (\n <Fragment key={nestedHtmlStack.length}>\n <span data-nextjs-container-errors-pseudo-html--tag-adjacent>\n {spaces + `<${secondContent}>\\n`}\n </span>\n <span data-nextjs-container-errors-pseudo-html--diff=\"remove\">\n {spaces + ` \"${firstContent}\"\\n`}\n </span>\n </Fragment>\n )\n }\n nestedHtmlStack.push(wrappedCodeLine)\n }\n\n return nestedHtmlStack\n }, [\n componentStackFrames,\n isHtmlCollapsed,\n firstContent,\n secondContent,\n isHtmlTagsWarning,\n hydrationMismatchType,\n MAX_NON_COLLAPSED_FRAMES,\n isReactHydrationDiff,\n reactOutputComponentDiff,\n ])\n\n return (\n <div data-nextjs-container-errors-pseudo-html>\n <button\n tabIndex={10} // match CallStackFrame\n data-nextjs-container-errors-pseudo-html-collapse\n onClick={() => toggleCollapseHtml(!isHtmlCollapsed)}\n >\n <CollapseIcon collapsed={isHtmlCollapsed} />\n </button>\n <pre {...props}>\n <code>{htmlComponents}</code>\n </pre>\n </div>\n )\n}\n"],"names":["useMemo","Fragment","useState","CollapseIcon","getAdjacentProps","isAdj","PseudoHtmlDiff","componentStackFrames","firstContent","secondContent","hydrationMismatchType","reactOutputComponentDiff","props","isHtmlTagsWarning","isReactHydrationDiff","MAX_NON_COLLAPSED_FRAMES","isHtmlCollapsed","toggleCollapseHtml","htmlComponents","componentStacks","currentComponentIndex","length","reactComponentDiffLines","split","diffHtmlStack","forEach","line","index","trimmedLine","trim","isDiffLine","spaces","repeat","Math","max","sign","slice","push","span","data-nextjs-container-errors-pseudo-html--diff","isUserLandComponent","startsWith","component","concat","nestedHtmlStack","tagNames","replace","lastText","componentStack","map","frame","reverse","matchedIndex","i","componentList","isHighlightedTag","includes","isAdjacentTag","abs","isLastFewFrames","adjProps","codeLine","undefined","wrappedCodeLine","data-nextjs-container-errors-pseudo-html--hint","key","data-nextjs-container-errors-pseudo-html--tag-adjacent","div","data-nextjs-container-errors-pseudo-html","button","tabIndex","data-nextjs-container-errors-pseudo-html-collapse","onClick","collapsed","pre","code"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { _ as _tagged_template_literal_loose } from "@swc/helpers/_/_tagged_template_literal_loose";
|
|
2
|
+
function _templateObject() {
|
|
3
|
+
const data = _tagged_template_literal_loose([
|
|
4
|
+
"\n [data-nextjs-call-stack-frame]:not(:last-child),\n [data-nextjs-component-stack-frame]:not(:last-child) {\n margin-bottom: var(--size-gap-double);\n }\n\n [data-expand-ignore-button]:focus:not(:focus-visible),\n [data-expand-ignore-button] {\n background: none;\n border: none;\n color: var(--color-font);\n cursor: pointer;\n font-size: var(--size-font);\n margin: var(--size-gap) 0;\n padding: 0;\n text-decoration: underline;\n outline: none;\n }\n\n [data-nextjs-data-runtime-error-copy-button],\n [data-nextjs-data-runtime-error-copy-button]:focus:not(:focus-visible) {\n position: relative;\n margin-left: var(--size-gap);\n padding: 0;\n border: none;\n background: none;\n outline: none;\n }\n [data-nextjs-data-runtime-error-copy-button] > svg {\n vertical-align: middle;\n }\n .nextjs-data-runtime-error-copy-button {\n color: inherit;\n }\n .nextjs-data-runtime-error-copy-button--initial:hover {\n cursor: pointer;\n }\n .nextjs-data-runtime-error-copy-button[aria-disabled='true'] {\n opacity: 0.3;\n cursor: not-allowed;\n }\n .nextjs-data-runtime-error-copy-button--error,\n .nextjs-data-runtime-error-copy-button--error:hover {\n color: var(--color-ansi-red);\n }\n .nextjs-data-runtime-error-copy-button--success {\n color: var(--color-ansi-green);\n }\n\n [data-nextjs-call-stack-frame] > h3,\n [data-nextjs-component-stack-frame] > h3 {\n margin-top: 0;\n margin-bottom: 0;\n font-family: var(--font-stack-monospace);\n font-size: var(--size-font);\n }\n [data-nextjs-call-stack-frame] > h3[data-nextjs-frame-expanded='false'] {\n color: #666;\n display: inline-block;\n }\n [data-nextjs-call-stack-frame] > div,\n [data-nextjs-component-stack-frame] > div {\n display: flex;\n align-items: center;\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\n font-size: var(--size-font-small);\n color: #999;\n }\n [data-nextjs-call-stack-frame] > div > svg,\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\n width: auto;\n height: var(--size-font-small);\n margin-left: var(--size-gap);\n flex-shrink: 0;\n display: none;\n }\n\n [data-nextjs-call-stack-frame] > div[data-has-source],\n [data-nextjs-component-stack-frame] > [role='link'] {\n cursor: pointer;\n }\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover,\n [data-nextjs-component-stack-frame] > [role='link']:hover {\n text-decoration: underline dotted;\n }\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg,\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\n display: unset;\n }\n\n [data-nextjs-call-stack-framework-icon] {\n margin-right: var(--size-gap);\n }\n [data-nextjs-call-stack-framework-icon='next'] > mask {\n mask-type: alpha;\n }\n [data-nextjs-call-stack-framework-icon='react'] {\n color: rgb(20, 158, 202);\n }\n [data-nextjs-collapsed-call-stack-details][open]\n [data-nextjs-call-stack-chevron-icon] {\n transform: rotate(90deg);\n }\n [data-nextjs-collapsed-call-stack-details] summary {\n display: flex;\n align-items: center;\n margin-bottom: var(--size-gap);\n list-style: none;\n }\n [data-nextjs-collapsed-call-stack-details] summary::-webkit-details-marker {\n display: none;\n }\n\n [data-nextjs-collapsed-call-stack-details] h3 {\n color: #666;\n }\n [data-nextjs-collapsed-call-stack-details] [data-nextjs-call-stack-frame] {\n margin-bottom: var(--size-gap-double);\n }\n\n [data-nextjs-container-errors-pseudo-html] {\n position: relative;\n }\n [data-nextjs-container-errors-pseudo-html-collapse] {\n position: absolute;\n left: 10px;\n top: 10px;\n color: inherit;\n background: none;\n border: none;\n padding: 0;\n }\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\n color: var(--color-ansi-green);\n }\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\n color: var(--color-ansi-red);\n }\n [data-nextjs-container-errors-pseudo-html--tag-error] {\n color: var(--color-ansi-red);\n font-weight: bold;\n }\n /* hide but text are still accessible in DOM */\n [data-nextjs-container-errors-pseudo-html--hint] {\n display: inline-block;\n font-size: 0;\n }\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\n color: var(--color-accents-1);\n }\n"
|
|
5
|
+
]);
|
|
6
|
+
_templateObject = function() {
|
|
7
|
+
return data;
|
|
8
|
+
};
|
|
9
|
+
return data;
|
|
10
|
+
}
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
import { CodeFrame } from '../../components/CodeFrame';
|
|
14
|
+
import { noop as css } from '../../helpers/noop-template';
|
|
15
|
+
import { CallStackFrame } from './CallStackFrame';
|
|
16
|
+
export function RuntimeError(param) {
|
|
17
|
+
let { error } = param;
|
|
18
|
+
const [isIgnoredExpanded, setIsIgnoredExpanded] = React.useState(false);
|
|
19
|
+
const { firstFrame, allLeadingFrames, trailingCallStackFrames, displayedFramesCount } = React.useMemo(()=>{
|
|
20
|
+
const filteredFrames = error.frames.filter((frame)=>isIgnoredExpanded ? true : !frame.ignored);
|
|
21
|
+
const firstFirstPartyFrameIndex = filteredFrames.findIndex((entry)=>!entry.ignored && Boolean(entry.originalCodeFrame) && Boolean(entry.originalStackFrame));
|
|
22
|
+
var _filteredFrames_firstFirstPartyFrameIndex;
|
|
23
|
+
return {
|
|
24
|
+
displayedFramesCount: filteredFrames.length,
|
|
25
|
+
firstFrame: (_filteredFrames_firstFirstPartyFrameIndex = filteredFrames[firstFirstPartyFrameIndex]) != null ? _filteredFrames_firstFirstPartyFrameIndex : null,
|
|
26
|
+
allLeadingFrames: firstFirstPartyFrameIndex < 0 ? [] : filteredFrames.slice(0, firstFirstPartyFrameIndex),
|
|
27
|
+
trailingCallStackFrames: filteredFrames.slice(firstFirstPartyFrameIndex + 1)
|
|
28
|
+
};
|
|
29
|
+
}, [
|
|
30
|
+
error.frames,
|
|
31
|
+
isIgnoredExpanded
|
|
32
|
+
]);
|
|
33
|
+
return /*#__PURE__*/ _jsxs(React.Fragment, {
|
|
34
|
+
children: [
|
|
35
|
+
firstFrame ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
36
|
+
children: [
|
|
37
|
+
/*#__PURE__*/ _jsx("h2", {
|
|
38
|
+
children: "Source"
|
|
39
|
+
}),
|
|
40
|
+
allLeadingFrames.map((frame, frameIndex)=>/*#__PURE__*/ _jsx(CallStackFrame, {
|
|
41
|
+
frame: frame
|
|
42
|
+
}, "call-stack-leading-" + frameIndex)),
|
|
43
|
+
/*#__PURE__*/ _jsx(CodeFrame, {
|
|
44
|
+
stackFrame: firstFrame.originalStackFrame,
|
|
45
|
+
codeFrame: firstFrame.originalCodeFrame
|
|
46
|
+
})
|
|
47
|
+
]
|
|
48
|
+
}) : undefined,
|
|
49
|
+
trailingCallStackFrames.map((frame, frameIndex)=>/*#__PURE__*/ _jsx(CallStackFrame, {
|
|
50
|
+
frame: frame
|
|
51
|
+
}, "call-stack-leading-" + frameIndex)),
|
|
52
|
+
// if the default displayed ignored frames count is equal equal to the total frames count, hide the button
|
|
53
|
+
displayedFramesCount === error.frames.length && !isIgnoredExpanded ? null : /*#__PURE__*/ _jsx("button", {
|
|
54
|
+
"data-expand-ignore-button": isIgnoredExpanded,
|
|
55
|
+
onClick: ()=>setIsIgnoredExpanded(!isIgnoredExpanded),
|
|
56
|
+
children: "" + (isIgnoredExpanded ? 'Hide' : 'Show') + " ignored frames"
|
|
57
|
+
})
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export const styles = css(_templateObject());
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.tsx"],"sourcesContent":["import * as React from 'react'\nimport { CodeFrame } from '../../components/CodeFrame'\nimport type { ReadyRuntimeError } from '../../helpers/get-error-by-type'\nimport { noop as css } from '../../helpers/noop-template'\nimport { CallStackFrame } from './CallStackFrame'\n\nexport type RuntimeErrorProps = { error: ReadyRuntimeError }\n\nexport function RuntimeError({ error }: RuntimeErrorProps) {\n const [isIgnoredExpanded, setIsIgnoredExpanded] = React.useState(false)\n const {\n firstFrame,\n allLeadingFrames,\n trailingCallStackFrames,\n displayedFramesCount,\n } = React.useMemo(() => {\n const filteredFrames = error.frames.filter((frame) =>\n isIgnoredExpanded ? true : !frame.ignored\n )\n\n const firstFirstPartyFrameIndex = filteredFrames.findIndex(\n (entry) =>\n !entry.ignored &&\n Boolean(entry.originalCodeFrame) &&\n Boolean(entry.originalStackFrame)\n )\n\n return {\n displayedFramesCount: filteredFrames.length,\n firstFrame: filteredFrames[firstFirstPartyFrameIndex] ?? null,\n allLeadingFrames:\n firstFirstPartyFrameIndex < 0\n ? []\n : filteredFrames.slice(0, firstFirstPartyFrameIndex),\n trailingCallStackFrames: filteredFrames.slice(\n firstFirstPartyFrameIndex + 1\n ),\n }\n }, [error.frames, isIgnoredExpanded])\n\n return (\n <React.Fragment>\n {firstFrame ? (\n <>\n <h2>Source</h2>\n {allLeadingFrames.map((frame, frameIndex) => (\n <CallStackFrame\n key={`call-stack-leading-${frameIndex}`}\n frame={frame}\n />\n ))}\n <CodeFrame\n stackFrame={firstFrame.originalStackFrame!}\n codeFrame={firstFrame.originalCodeFrame!}\n />\n </>\n ) : undefined}\n\n {trailingCallStackFrames.map((frame, frameIndex) => (\n <CallStackFrame\n key={`call-stack-leading-${frameIndex}`}\n frame={frame}\n />\n ))}\n {\n // if the default displayed ignored frames count is equal equal to the total frames count, hide the button\n displayedFramesCount === error.frames.length &&\n !isIgnoredExpanded ? null : (\n <button\n data-expand-ignore-button={isIgnoredExpanded}\n onClick={() => setIsIgnoredExpanded(!isIgnoredExpanded)}\n >\n {`${isIgnoredExpanded ? 'Hide' : 'Show'} ignored frames`}\n </button>\n )\n }\n </React.Fragment>\n )\n}\n\nexport const styles = css`\n [data-nextjs-call-stack-frame]:not(:last-child),\n [data-nextjs-component-stack-frame]:not(:last-child) {\n margin-bottom: var(--size-gap-double);\n }\n\n [data-expand-ignore-button]:focus:not(:focus-visible),\n [data-expand-ignore-button] {\n background: none;\n border: none;\n color: var(--color-font);\n cursor: pointer;\n font-size: var(--size-font);\n margin: var(--size-gap) 0;\n padding: 0;\n text-decoration: underline;\n outline: none;\n }\n\n [data-nextjs-data-runtime-error-copy-button],\n [data-nextjs-data-runtime-error-copy-button]:focus:not(:focus-visible) {\n position: relative;\n margin-left: var(--size-gap);\n padding: 0;\n border: none;\n background: none;\n outline: none;\n }\n [data-nextjs-data-runtime-error-copy-button] > svg {\n vertical-align: middle;\n }\n .nextjs-data-runtime-error-copy-button {\n color: inherit;\n }\n .nextjs-data-runtime-error-copy-button--initial:hover {\n cursor: pointer;\n }\n .nextjs-data-runtime-error-copy-button[aria-disabled='true'] {\n opacity: 0.3;\n cursor: not-allowed;\n }\n .nextjs-data-runtime-error-copy-button--error,\n .nextjs-data-runtime-error-copy-button--error:hover {\n color: var(--color-ansi-red);\n }\n .nextjs-data-runtime-error-copy-button--success {\n color: var(--color-ansi-green);\n }\n\n [data-nextjs-call-stack-frame] > h3,\n [data-nextjs-component-stack-frame] > h3 {\n margin-top: 0;\n margin-bottom: 0;\n font-family: var(--font-stack-monospace);\n font-size: var(--size-font);\n }\n [data-nextjs-call-stack-frame] > h3[data-nextjs-frame-expanded='false'] {\n color: #666;\n display: inline-block;\n }\n [data-nextjs-call-stack-frame] > div,\n [data-nextjs-component-stack-frame] > div {\n display: flex;\n align-items: center;\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\n font-size: var(--size-font-small);\n color: #999;\n }\n [data-nextjs-call-stack-frame] > div > svg,\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\n width: auto;\n height: var(--size-font-small);\n margin-left: var(--size-gap);\n flex-shrink: 0;\n display: none;\n }\n\n [data-nextjs-call-stack-frame] > div[data-has-source],\n [data-nextjs-component-stack-frame] > [role='link'] {\n cursor: pointer;\n }\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover,\n [data-nextjs-component-stack-frame] > [role='link']:hover {\n text-decoration: underline dotted;\n }\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg,\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\n display: unset;\n }\n\n [data-nextjs-call-stack-framework-icon] {\n margin-right: var(--size-gap);\n }\n [data-nextjs-call-stack-framework-icon='next'] > mask {\n mask-type: alpha;\n }\n [data-nextjs-call-stack-framework-icon='react'] {\n color: rgb(20, 158, 202);\n }\n [data-nextjs-collapsed-call-stack-details][open]\n [data-nextjs-call-stack-chevron-icon] {\n transform: rotate(90deg);\n }\n [data-nextjs-collapsed-call-stack-details] summary {\n display: flex;\n align-items: center;\n margin-bottom: var(--size-gap);\n list-style: none;\n }\n [data-nextjs-collapsed-call-stack-details] summary::-webkit-details-marker {\n display: none;\n }\n\n [data-nextjs-collapsed-call-stack-details] h3 {\n color: #666;\n }\n [data-nextjs-collapsed-call-stack-details] [data-nextjs-call-stack-frame] {\n margin-bottom: var(--size-gap-double);\n }\n\n [data-nextjs-container-errors-pseudo-html] {\n position: relative;\n }\n [data-nextjs-container-errors-pseudo-html-collapse] {\n position: absolute;\n left: 10px;\n top: 10px;\n color: inherit;\n background: none;\n border: none;\n padding: 0;\n }\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\n color: var(--color-ansi-green);\n }\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\n color: var(--color-ansi-red);\n }\n [data-nextjs-container-errors-pseudo-html--tag-error] {\n color: var(--color-ansi-red);\n font-weight: bold;\n }\n /* hide but text are still accessible in DOM */\n [data-nextjs-container-errors-pseudo-html--hint] {\n display: inline-block;\n font-size: 0;\n }\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\n color: var(--color-accents-1);\n }\n`\n"],"names":["React","CodeFrame","noop","css","CallStackFrame","RuntimeError","error","isIgnoredExpanded","setIsIgnoredExpanded","useState","firstFrame","allLeadingFrames","trailingCallStackFrames","displayedFramesCount","useMemo","filteredFrames","frames","filter","frame","ignored","firstFirstPartyFrameIndex","findIndex","entry","Boolean","originalCodeFrame","originalStackFrame","length","slice","Fragment","h2","map","frameIndex","stackFrame","codeFrame","undefined","button","data-expand-ignore-button","onClick","styles"],"mappings":";;;;;;;;;;;AAAA,YAAYA,WAAW,QAAO;AAC9B,SAASC,SAAS,QAAQ,6BAA4B;AAEtD,SAASC,QAAQC,GAAG,QAAQ,8BAA6B;AACzD,SAASC,cAAc,QAAQ,mBAAkB;AAIjD,OAAO,SAASC,aAAa,KAA4B;IAA5B,IAAA,EAAEC,KAAK,EAAqB,GAA5B;IAC3B,MAAM,CAACC,mBAAmBC,qBAAqB,GAAGR,MAAMS,QAAQ,CAAC;IACjE,MAAM,EACJC,UAAU,EACVC,gBAAgB,EAChBC,uBAAuB,EACvBC,oBAAoB,EACrB,GAAGb,MAAMc,OAAO,CAAC;QAChB,MAAMC,iBAAiBT,MAAMU,MAAM,CAACC,MAAM,CAAC,CAACC,QAC1CX,oBAAoB,OAAO,CAACW,MAAMC,OAAO;QAG3C,MAAMC,4BAA4BL,eAAeM,SAAS,CACxD,CAACC,QACC,CAACA,MAAMH,OAAO,IACdI,QAAQD,MAAME,iBAAiB,KAC/BD,QAAQD,MAAMG,kBAAkB;YAKtBV;QAFd,OAAO;YACLF,sBAAsBE,eAAeW,MAAM;YAC3ChB,YAAYK,CAAAA,4CAAAA,cAAc,CAACK,0BAA0B,YAAzCL,4CAA6C;YACzDJ,kBACES,4BAA4B,IACxB,EAAE,GACFL,eAAeY,KAAK,CAAC,GAAGP;YAC9BR,yBAAyBG,eAAeY,KAAK,CAC3CP,4BAA4B;QAEhC;IACF,GAAG;QAACd,MAAMU,MAAM;QAAET;KAAkB;IAEpC,qBACE,MAACP,MAAM4B,QAAQ;;YACZlB,2BACC;;kCACE,KAACmB;kCAAG;;oBACHlB,iBAAiBmB,GAAG,CAAC,CAACZ,OAAOa,2BAC5B,KAAC3B;4BAECc,OAAOA;2BADF,AAAC,wBAAqBa;kCAI/B,KAAC9B;wBACC+B,YAAYtB,WAAWe,kBAAkB;wBACzCQ,WAAWvB,WAAWc,iBAAiB;;;iBAGzCU;YAEHtB,wBAAwBkB,GAAG,CAAC,CAACZ,OAAOa,2BACnC,KAAC3B;oBAECc,OAAOA;mBADF,AAAC,wBAAqBa;YAK7B,0GAA0G;YAC1GlB,yBAAyBP,MAAMU,MAAM,CAACU,MAAM,IAC5C,CAACnB,oBAAoB,qBACnB,KAAC4B;gBACCC,6BAA2B7B;gBAC3B8B,SAAS,IAAM7B,qBAAqB,CAACD;0BAEpC,AAAC,KAAEA,CAAAA,oBAAoB,SAAS,MAAK,IAAE;;;;AAMpD;AAEA,OAAO,MAAM+B,SAASnC,uBAsJrB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Toast } from '../components/Toast';
|
|
4
|
+
import { LightningBolt } from '../icons/LightningBolt';
|
|
5
|
+
import { CloseIcon } from '../icons/CloseIcon';
|
|
6
|
+
export function StaticIndicator(param) {
|
|
7
|
+
let { dispatcher } = param;
|
|
8
|
+
return /*#__PURE__*/ _jsxs(Toast, {
|
|
9
|
+
role: "status",
|
|
10
|
+
className: "nextjs-static-indicator-toast-wrapper",
|
|
11
|
+
children: [
|
|
12
|
+
/*#__PURE__*/ _jsx("div", {
|
|
13
|
+
className: "nextjs-static-indicator-toast-icon",
|
|
14
|
+
children: /*#__PURE__*/ _jsx(LightningBolt, {})
|
|
15
|
+
}),
|
|
16
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
17
|
+
className: "nextjs-static-indicator-toast-text",
|
|
18
|
+
children: [
|
|
19
|
+
"Static route",
|
|
20
|
+
/*#__PURE__*/ _jsx("button", {
|
|
21
|
+
onClick: ()=>{
|
|
22
|
+
var _localStorage;
|
|
23
|
+
// When dismissed, we hide the indicator for 1 hour. Store the
|
|
24
|
+
// timestamp for when to show it again.
|
|
25
|
+
const oneHourAway = Date.now() + 1 * 60 * 60 * 1000;
|
|
26
|
+
(_localStorage = localStorage) == null ? void 0 : _localStorage.setItem('__NEXT_DISMISS_PRERENDER_INDICATOR', oneHourAway.toString());
|
|
27
|
+
dispatcher == null ? void 0 : dispatcher.onStaticIndicator(false);
|
|
28
|
+
},
|
|
29
|
+
className: "nextjs-toast-hide-button",
|
|
30
|
+
"aria-label": "Hide static indicator",
|
|
31
|
+
children: /*#__PURE__*/ _jsx(CloseIcon, {})
|
|
32
|
+
})
|
|
33
|
+
]
|
|
34
|
+
})
|
|
35
|
+
]
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=StaticIndicator.js.map
|