@wular/pnext 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/bin/pnext +1 -1
- package/config/lint/base.js +7 -7
- package/config/ts/base.json +2 -4
- package/config/ts/react.json +2 -6
- package/package.json +23 -2
- package/reference/compat.md +1 -1
- package/reference/config.md +2 -2
- package/reference/css.md +13 -9
- package/reference/dev.md +1 -1
- package/reference/metadata.md +7 -7
- package/reference/navigation.md +35 -28
- package/reference/performance.md +70 -70
- package/reference/rendering.md +17 -17
- package/reference/routing.md +17 -17
- package/reference/typegen.md +12 -8
- package/src/api/cache.ts +36 -37
- package/src/api/client-cache.ts +2 -2
- package/src/api/client-navigation.ts +113 -109
- package/src/api/dynamic.tsx +58 -55
- package/src/api/link.tsx +49 -52
- package/src/api/navigation.ts +59 -58
- package/src/api/server.ts +152 -144
- package/src/api/suspense.ts +4 -4
- package/src/cli/adapters/vercel-warm.ts +126 -121
- package/src/cli/adapters/vercel.ts +437 -443
- package/src/cli/analyze.ts +333 -144
- package/src/cli/{named-bin.ts → boot/named-bin.ts} +37 -37
- package/src/cli/{boot-trace.ts → boot/trace.ts} +10 -10
- package/src/cli/build.ts +976 -978
- package/src/cli/create.ts +71 -63
- package/src/cli/dev.ts +116 -116
- package/src/cli/index.ts +88 -85
- package/src/cli/migrate/package-json.ts +73 -71
- package/src/cli/migrate/report.ts +32 -33
- package/src/cli/migrate/{index.ts → run.ts} +48 -49
- package/src/cli/migrate/scan.ts +46 -46
- package/src/cli/migrate/spinner.ts +9 -9
- package/src/cli/migrate/tsconfig.ts +35 -35
- package/src/cli/{server-entry.ts → serve/entry.ts} +57 -57
- package/src/cli/{request-pipeline.ts → serve/pipeline.ts} +386 -394
- package/src/cli/{serve-ui.ts → serve/ui.ts} +47 -47
- package/src/cli/start.ts +65 -66
- package/src/{typegen.ts → cli/typegen.ts} +59 -59
- package/src/client/build.ts +794 -768
- package/src/client/chunk-fold.ts +245 -240
- package/src/client/{paths.ts → chunk-name.ts} +6 -6
- package/src/client/entry.ts +162 -147
- package/src/client/prebuilt.ts +231 -223
- package/src/client/profile.ts +29 -29
- package/src/client/react-compiler.ts +20 -15
- package/src/client/{compat-surface.ts → react-tier.ts} +64 -64
- package/src/client/reference-stub.ts +51 -51
- package/src/client/reference.ts +19 -19
- package/src/{api → client}/router/events.ts +17 -17
- package/src/{api → client}/router/history.ts +16 -16
- package/src/{api → client}/router/hub.ts +52 -53
- package/src/{api/router.ts → client/router/index.ts} +61 -60
- package/src/{api → client}/router/policies.ts +24 -24
- package/src/{api → client}/router/runtime.ts +1988 -1992
- package/src/{api → client}/router/types.ts +93 -98
- package/src/compat/actions/client-plugin.ts +42 -43
- package/src/compat/actions/client-stub.ts +14 -14
- package/src/compat/actions/{action-client.ts → client.ts} +194 -193
- package/src/compat/actions/config.ts +63 -64
- package/src/compat/actions/detect.ts +68 -68
- package/src/compat/actions/discovery.ts +105 -105
- package/src/compat/actions/{action-dispatch.ts → dispatch.ts} +277 -274
- package/src/compat/actions/early-submit.ts +1 -1
- package/src/compat/actions/endpoint.ts +198 -198
- package/src/compat/actions/extensions.ts +811 -0
- package/src/compat/actions/flight.ts +23 -23
- package/src/compat/actions/form-state.ts +34 -34
- package/src/compat/actions/hoist.ts +382 -236
- package/src/compat/actions/ids.ts +7 -12
- package/src/compat/actions/index.ts +8 -8
- package/src/compat/actions/instances.ts +46 -46
- package/src/compat/actions/origin.ts +47 -48
- package/src/compat/actions/protocol.ts +22 -22
- package/src/compat/actions/registry.ts +19 -19
- package/src/compat/{misc/action-return.ts → actions/return.ts} +60 -57
- package/src/compat/actions/rewrite.ts +125 -125
- package/src/compat/actions/{action-router.ts → router.ts} +10 -10
- package/src/compat/actions/serve.ts +132 -136
- package/src/compat/actions/server-tag.ts +4 -4
- package/src/compat/actions/{action-shared.ts → shared.ts} +34 -34
- package/src/compat/actions/unrecognized-error.ts +4 -4
- package/src/compat/{index.ts → aliases.ts} +112 -109
- package/src/compat/bundler/bun-externals.ts +18 -18
- package/src/compat/bundler/cjs-exports.ts +271 -223
- package/src/compat/bundler/config.ts +116 -111
- package/src/compat/bundler/externals.ts +12 -12
- package/src/compat/bundler/import-meta-url.ts +19 -19
- package/src/compat/bundler/modularize-imports.ts +36 -33
- package/src/compat/bundler/new-url-asset.ts +22 -24
- package/src/compat/bundler/optimize-package-imports.ts +111 -107
- package/src/compat/bundler/polyfill.ts +28 -28
- package/src/compat/bundler/react-compiler.ts +35 -29
- package/src/compat/bundler/react-profiler.tsx +11 -11
- package/src/compat/bundler/relay-transform.ts +48 -47
- package/src/compat/bundler/require-context.ts +119 -113
- package/src/compat/bundler/resolve-extensions.ts +19 -19
- package/src/compat/bundler/source-cache.ts +25 -25
- package/src/compat/bundler/static-imports.ts +7 -7
- package/src/compat/bundler/symlink-imports.ts +46 -46
- package/src/compat/bundler/tsconfig-paths.ts +13 -15
- package/src/compat/bundler/wasm.ts +58 -60
- package/src/compat/bundler/webpack-loaders.ts +254 -241
- package/src/compat/bundler/worker.ts +101 -104
- package/src/compat/cache/build-flags.ts +29 -29
- package/src/compat/cache/build-prerender-errors.ts +40 -44
- package/src/compat/cache/custom-handler.ts +60 -53
- package/src/compat/cache/fetch-patch.ts +240 -240
- package/src/compat/cache/handler.ts +27 -31
- package/src/compat/cache/modern-handler.ts +148 -126
- package/src/compat/cache/resume-data-cache.ts +47 -45
- package/src/compat/cache/revalidate.ts +233 -232
- package/src/compat/cache/runtime-error.ts +35 -35
- package/src/compat/cache/use-cache-transform.ts +442 -417
- package/src/compat/cache/use-cache.ts +650 -614
- package/src/compat/cache-control.ts +140 -142
- package/src/compat/client/base-path.ts +21 -20
- package/src/compat/client/css-order.ts +18 -18
- package/src/compat/client/errors/bare-boundary.ts +11 -11
- package/src/compat/client/errors/control-flow.ts +23 -23
- package/src/compat/client/errors/error-boundary.ts +61 -61
- package/src/compat/client/errors/global-error.ts +101 -91
- package/src/compat/client/errors/install.ts +71 -72
- package/src/compat/client/errors/lazy.ts +23 -23
- package/src/compat/client/errors/primitive-throw.ts +47 -45
- package/src/compat/client/errors/soft-refresh.ts +4 -4
- package/src/compat/client/link-status.ts +33 -33
- package/src/compat/client/{nav-compat-runtime.ts → nav-runtime.ts} +20 -20
- package/src/compat/client/{nav-compat.ts → nav.ts} +12 -13
- package/src/compat/client/navigation-scroll.ts +63 -63
- package/src/compat/client/optimistic-routing.ts +93 -88
- package/src/compat/client/prefetch-cache.ts +23 -24
- package/src/compat/client/route-announcer.ts +35 -35
- package/src/compat/client/segment-cache-policy.ts +20 -20
- package/src/compat/client/segment-cache.ts +309 -315
- package/src/compat/client/segment-prefetch.ts +127 -132
- package/src/compat/client/trailing-slash.ts +5 -4
- package/src/compat/css/chunking.ts +113 -116
- package/src/compat/css/inline-css.ts +21 -21
- package/src/compat/css/lightningcss.ts +37 -38
- package/src/compat/css/modules.ts +161 -175
- package/src/compat/css/nonce.ts +7 -7
- package/src/compat/css/sass-plugin.ts +18 -21
- package/src/compat/css/sass.ts +150 -152
- package/src/compat/css/styled-jsx-runtime.ts +27 -27
- package/src/compat/css/styled-jsx.ts +21 -21
- package/src/compat/edge-runtime.ts +27 -27
- package/src/compat/{adapter → export}/build-complete.ts +72 -75
- package/src/compat/export/client.ts +29 -31
- package/src/compat/export/{index.ts → emit.ts} +111 -110
- package/src/compat/export/standalone.ts +62 -54
- package/src/compat/image-optimizer/cache.ts +51 -49
- package/src/compat/image-optimizer/detect.ts +52 -52
- package/src/compat/image-optimizer/{index.ts → optimize.ts} +189 -194
- package/src/compat/image-optimizer/source.ts +77 -80
- package/src/compat/lifecycle/after-scope.ts +26 -26
- package/src/compat/lifecycle/after.ts +48 -45
- package/src/compat/lifecycle/error-funnel.ts +98 -102
- package/src/compat/lifecycle/error-serialize.ts +30 -26
- package/src/compat/lifecycle/error-ui.ts +67 -32
- package/src/compat/lifecycle/instrumentation-client.ts +36 -38
- package/src/compat/lifecycle/instrumentation.ts +85 -85
- package/src/compat/lifecycle/node-console.ts +11 -11
- package/src/compat/lifecycle/testmode.ts +160 -132
- package/src/compat/mdx/compile.ts +60 -57
- package/src/compat/mdx/plugin.ts +11 -11
- package/src/compat/mdx/{next-mdx-stub.ts → stub.ts} +5 -5
- package/src/compat/{metadata-route-artifacts.ts → metadata-artifacts.ts} +195 -191
- package/src/compat/metadata.ts +75 -81
- package/src/compat/next/cache.ts +68 -69
- package/src/compat/next/canonical-url.ts +9 -9
- package/src/compat/next/client-cache.ts +19 -19
- package/src/compat/next/client-navigation.ts +112 -116
- package/src/compat/next/client-only.ts +1 -1
- package/src/compat/next/client-script.tsx +99 -93
- package/src/compat/next/client-server.ts +10 -10
- package/src/compat/next/config-loader.ts +176 -173
- package/src/compat/next/config.ts +7 -7
- package/src/compat/next/constants.cjs +6 -6
- package/src/compat/next/constants.ts +6 -6
- package/src/compat/next/custom-server.ts +26 -24
- package/src/compat/next/dist/client/components/app-router-headers.ts +21 -21
- package/src/compat/next/dist/server/app-render/work-unit-async-storage.external.cjs +3 -4
- package/src/compat/next/dist/server/web/spec-extension/revalidate.ts +1 -1
- package/src/compat/next/dist/server/web/spec-extension/unstable-cache.ts +1 -1
- package/src/compat/next/dist/server/web/spec-extension/unstable-no-store.ts +1 -1
- package/src/compat/next/dynamic.tsx +21 -18
- package/src/compat/next/error.tsx +52 -52
- package/src/compat/next/font/cache.ts +74 -74
- package/src/compat/next/font/google.ts +2 -2
- package/src/compat/next/font/index.ts +1 -1
- package/src/compat/next/font/local.ts +3 -3
- package/src/compat/next/font/runtime-client.ts +17 -15
- package/src/compat/next/font/runtime.ts +443 -408
- package/src/compat/next/font/shared.ts +120 -108
- package/src/compat/next/form.tsx +63 -63
- package/src/compat/next/head.tsx +2 -2
- package/src/compat/next/headers.ts +103 -95
- package/src/compat/next/image/client.tsx +220 -0
- package/src/compat/next/image/config.ts +56 -58
- package/src/compat/next/image/optimizer.ts +40 -36
- package/src/compat/next/image/patterns.ts +37 -40
- package/src/compat/next/{image-props.ts → image/props.ts} +208 -202
- package/src/compat/next/image/shared.ts +65 -57
- package/src/compat/next/image/static-metadata.ts +98 -107
- package/src/compat/next/image/validate.ts +79 -88
- package/src/compat/next/image.tsx +19 -23
- package/src/compat/next/index.ts +1 -1
- package/src/compat/next/legacy-image.tsx +59 -60
- package/src/compat/next/{link-validation-transform.ts → link-transform.ts} +95 -96
- package/src/compat/next/link.tsx +158 -158
- package/src/compat/next/navigation.cjs +12 -3
- package/src/compat/next/navigation.ts +48 -50
- package/src/compat/next/offline.ts +27 -27
- package/src/compat/next/og.ts +121 -124
- package/src/compat/next/preferred-region.ts +13 -14
- package/src/compat/next/redirects.ts +58 -56
- package/src/compat/next/resource-hints.ts +73 -76
- package/src/compat/next/rewrites.ts +130 -133
- package/src/compat/next/root-params.ts +45 -45
- package/src/compat/next/{optimistic-route-state.ts → route-state.ts} +52 -52
- package/src/compat/next/router.cjs +4 -2
- package/src/compat/next/router.ts +58 -61
- package/src/compat/next/script.tsx +108 -108
- package/src/compat/next/server-only.ts +1 -1
- package/src/compat/next/server.ts +19 -19
- package/src/compat/next/svgr.ts +18 -17
- package/src/compat/next/telemetry.ts +24 -24
- package/src/compat/next/{image-usage.ts → usage.ts} +70 -39
- package/src/compat/next/user-agent.ts +53 -49
- package/src/compat/next/web-vitals.ts +22 -24
- package/src/compat/otel/api.ts +41 -41
- package/src/compat/otel/client-trace-metadata.ts +25 -27
- package/src/compat/otel/fetch-span.ts +29 -29
- package/src/compat/otel/tracer.ts +331 -331
- package/src/compat/pages/api.ts +456 -0
- package/src/compat/pages/client-plugin.ts +36 -36
- package/src/compat/pages/router-state.ts +34 -34
- package/src/compat/pages/{index.ts → router.ts} +130 -135
- package/src/compat/ppr/io.ts +12 -12
- package/src/compat/ppr/missing-root-params.ts +34 -38
- package/src/compat/ppr/root-params-scan.ts +66 -66
- package/src/compat/ppr/root-params-transform.ts +24 -26
- package/src/compat/ppr/root-params.ts +30 -30
- package/src/compat/ppr/segment-config-incompat.ts +6 -7
- package/src/compat/protocol.ts +71 -70
- package/src/compat/react/action-state.ts +47 -48
- package/src/compat/react/client-lite.ts +15 -15
- package/src/compat/react/client.ts +4 -4
- package/src/compat/react/compiler-runtime.ts +11 -11
- package/src/compat/react/dom-client.ts +44 -44
- package/src/compat/react/dom-react-server.ts +10 -16
- package/src/compat/react/dom-server.ts +10 -10
- package/src/compat/react/dom.ts +52 -52
- package/src/compat/react/hooks-extra.ts +34 -35
- package/src/compat/react/parity.ts +64 -61
- package/src/compat/react/preact.ts +81 -82
- package/src/compat/react/react-server.ts +28 -28
- package/src/compat/react/router-shim.ts +1 -1
- package/src/compat/react/server-component-use.ts +8 -8
- package/src/compat/react/server-inserted-html.ts +30 -31
- package/src/compat/react/server.ts +53 -55
- package/src/compat/react/use.ts +32 -32
- package/src/compat/react/view-transition.ts +20 -20
- package/src/compat/register/actions.ts +35 -824
- package/src/compat/register/boot.ts +41 -41
- package/src/compat/register/build-tier.ts +5 -5
- package/src/compat/register/build.ts +74 -70
- package/src/compat/register/bundler.ts +161 -156
- package/src/compat/register/cache.ts +20 -20
- package/src/compat/register/client-errors.ts +3 -3
- package/src/compat/register/config.ts +6 -6
- package/src/compat/register/css-extras.ts +30 -34
- package/src/compat/register/edge-runtime.ts +3 -3
- package/src/compat/register/errors.ts +10 -12
- package/src/compat/register/export.ts +16 -16
- package/src/compat/register/font.ts +11 -11
- package/src/compat/register/hooks.ts +2 -2
- package/src/compat/register/image.ts +40 -40
- package/src/compat/register/index.ts +59 -62
- package/src/compat/register/instrumentation-client.ts +10 -10
- package/src/compat/register/lifecycle.ts +25 -28
- package/src/compat/register/mdx.ts +10 -10
- package/src/compat/register/middleware.ts +226 -16
- package/src/compat/register/otel.ts +80 -88
- package/src/compat/register/pages-api.ts +10 -463
- package/src/compat/register/ppr.ts +16 -16
- package/src/compat/register/protocol.ts +17 -18
- package/src/compat/register/proxy.ts +49 -51
- package/src/compat/register/render.ts +79 -76
- package/src/compat/register/routing.ts +162 -159
- package/src/compat/register/segment.ts +24 -1897
- package/src/compat/register/static-image.ts +3 -3
- package/src/compat/register/{misc.ts → taint.ts} +9 -9
- package/src/compat/register/typed-routes.ts +14 -14
- package/src/compat/register/{usecache.ts → use-cache.ts} +39 -39
- package/src/compat/register/validation.ts +18 -18
- package/src/compat/segment/loading-boundary.ts +43 -45
- package/src/compat/segment/page-slot.ts +69 -69
- package/src/compat/segment/serve.ts +1884 -0
- package/src/compat/segment/tree.ts +113 -112
- package/src/compat/segment/vary-key.ts +38 -38
- package/src/compat/segment/vary-params.ts +138 -142
- package/src/compat/static-params.ts +14 -12
- package/src/compat/tsconfig-defaults.ts +87 -91
- package/src/compat/typecheck/{index.ts → check.ts} +234 -212
- package/src/compat/typecheck/worker.ts +15 -12
- package/src/compat/typed-routes/{index.ts → generate.ts} +36 -36
- package/src/compat/typed-routes/manifest.ts +174 -170
- package/src/compat/typed-routes/typegen.ts +127 -110
- package/src/compat/validation/errors.ts +16 -19
- package/src/compat/validation/prerender-diagnostics.ts +521 -504
- package/src/compat/validation/{index.ts → validate.ts} +647 -648
- package/src/compat-bootstrap.ts +16 -16
- package/src/config.ts +69 -69
- package/src/css/build.ts +230 -227
- package/src/css/postcss.ts +79 -80
- package/src/css/worker.ts +14 -15
- package/src/dev/client-actions.ts +10 -10
- package/src/dev/client-chunk-store.ts +27 -27
- package/src/dev/{client-key-cache.ts → restart/client-key.ts} +76 -76
- package/src/dev/{restart-cache.ts → restart/enabled.ts} +1 -1
- package/src/dev/{global-css-cache.ts → restart/global-css.ts} +91 -83
- package/src/dev/{node-module-bundle-cache.ts → restart/node-modules.ts} +24 -24
- package/src/dev/{route-bundle-key-cache.ts → restart/route-bundle-key.ts} +53 -53
- package/src/dev/{route-facts-cache.ts → restart/route-facts.ts} +82 -82
- package/src/dev/server.ts +804 -820
- package/src/env.ts +46 -43
- package/src/extensions.ts +491 -478
- package/src/index.ts +8 -8
- package/src/internal.ts +20 -23
- package/src/{islands → render}/boundary-error.ts +3 -3
- package/src/render/hooks.ts +71 -71
- package/src/render/island-context.ts +14 -14
- package/src/render/metadata.ts +310 -310
- package/src/{ppr-postpone.ts → render/postpone.ts} +5 -5
- package/src/{ppr.ts → render/ppr.ts} +244 -245
- package/src/render/renderer.ts +2076 -2082
- package/src/render/resource-hints.ts +16 -17
- package/src/render/slots.tsx +224 -235
- package/src/{islands → render}/static-children.ts +9 -12
- package/src/{islands → render}/static-slots.ts +37 -37
- package/src/{cache/context.ts → request/cache.ts} +20 -20
- package/src/request/context.ts +107 -107
- package/src/{dynamic/source.ts → resolve/dynamic.ts} +139 -139
- package/src/resolve/engine.ts +90 -77
- package/src/resolve/imports.ts +475 -463
- package/src/resolve/scan-facts.ts +318 -296
- package/src/resolve/source-text.ts +37 -37
- package/src/{dynamic → resolve}/tree-shake.ts +132 -128
- package/src/routing/forwarded.ts +19 -19
- package/src/routing/handler.ts +84 -91
- package/src/routing/href.ts +69 -70
- package/src/routing/{metadata.ts → metadata-files.ts} +403 -401
- package/src/{proxy.ts → routing/proxy.ts} +306 -312
- package/src/routing/{request-runtime.ts → request-environment.ts} +10 -10
- package/src/routing/routes.ts +827 -815
- package/src/routing/slots.ts +164 -160
- package/src/runtime/loader.ts +952 -0
- package/src/{dev → runtime}/module-cache.ts +309 -287
- package/src/{dev → runtime}/module-generations.ts +9 -9
- package/src/{dev → runtime}/module-transform.ts +81 -72
- package/src/{dev/imports.ts → runtime/modules.ts} +934 -847
- package/src/runtime/{server.ts → vendor-build.ts} +848 -1696
- package/src/runtime/vendor.ts +425 -404
- package/src/styles.d.ts +9 -0
- package/src/types.ts +320 -335
- package/src/utils/ansi.ts +5 -5
- package/src/utils/{source.ts → code.ts} +15 -12
- package/src/utils/content-type.ts +3 -3
- package/src/utils/decode.ts +2 -2
- package/src/utils/dev-profile.ts +13 -13
- package/src/utils/error-log.ts +6 -6
- package/src/utils/esbuild.ts +18 -18
- package/src/utils/fs-cache.ts +13 -13
- package/src/utils/fs.ts +57 -49
- package/src/utils/html.ts +20 -24
- package/src/utils/native-require.ts +8 -8
- package/src/utils/serialize.ts +139 -146
- package/src/utils/verbose.ts +18 -18
- package/src/cli/analyze-print.ts +0 -181
- package/src/compat/middleware/manifest.ts +0 -210
- package/src/compat/next/image-client.tsx +0 -215
- package/src/compat/next/link-usage.ts +0 -29
- package/src/css/index.ts +0 -2
- package/src/render/index.ts +0 -1
- package/src/style-modules.d.ts +0 -9
|
@@ -6,31 +6,31 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
function serverOnly(name: string): never {
|
|
9
|
-
throw new Error(`${name} can only be called from a Server Component or server function.`)
|
|
9
|
+
throw new Error(`${name} can only be called from a Server Component or server function.`)
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export function revalidatePath(_path: string, _type?: 'page' | 'layout') {
|
|
13
|
-
serverOnly('revalidatePath')
|
|
13
|
+
serverOnly('revalidatePath')
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export function revalidateTag(_tag: string) {
|
|
17
|
-
serverOnly('revalidateTag')
|
|
17
|
+
serverOnly('revalidateTag')
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export const unstable_expirePath = revalidatePath
|
|
21
|
-
export const unstable_expireTag = revalidateTag
|
|
22
|
-
export const expirePath = revalidatePath
|
|
23
|
-
export const expireTag = revalidateTag
|
|
24
|
-
export const updateTag = revalidateTag
|
|
20
|
+
export const unstable_expirePath = revalidatePath
|
|
21
|
+
export const unstable_expireTag = revalidateTag
|
|
22
|
+
export const expirePath = revalidatePath
|
|
23
|
+
export const expireTag = revalidateTag
|
|
24
|
+
export const updateTag = revalidateTag
|
|
25
25
|
|
|
26
26
|
export function refresh() {
|
|
27
|
-
serverOnly('refresh')
|
|
27
|
+
serverOnly('refresh')
|
|
28
28
|
}
|
|
29
|
-
export const unstable_refresh = refresh
|
|
29
|
+
export const unstable_refresh = refresh
|
|
30
30
|
|
|
31
31
|
export interface UnstableCacheOptions {
|
|
32
|
-
revalidate?: number | false
|
|
33
|
-
tags?: string[]
|
|
32
|
+
revalidate?: number | false
|
|
33
|
+
tags?: string[]
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export function unstable_cache<Args extends unknown[], Result>(
|
|
@@ -38,20 +38,20 @@ export function unstable_cache<Args extends unknown[], Result>(
|
|
|
38
38
|
_keyParts?: string[],
|
|
39
39
|
_options: UnstableCacheOptions = {},
|
|
40
40
|
): (...args: Args) => Promise<Result> {
|
|
41
|
-
return fn
|
|
41
|
+
return fn
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export function unstable_noStore() {
|
|
45
|
-
return undefined
|
|
45
|
+
return undefined
|
|
46
46
|
}
|
|
47
47
|
export function io(): Promise<void> {
|
|
48
|
-
return Promise.resolve()
|
|
48
|
+
return Promise.resolve()
|
|
49
49
|
}
|
|
50
50
|
export function cacheTag(..._tags: string[]) {
|
|
51
|
-
return undefined
|
|
51
|
+
return undefined
|
|
52
52
|
}
|
|
53
53
|
export function cacheLife(_profile: string | Record<string, unknown>) {
|
|
54
|
-
return undefined
|
|
54
|
+
return undefined
|
|
55
55
|
}
|
|
56
|
-
export const unstable_cacheTag = cacheTag
|
|
57
|
-
export const unstable_cacheLife = cacheLife
|
|
56
|
+
export const unstable_cacheTag = cacheTag
|
|
57
|
+
export const unstable_cacheLife = cacheLife
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { useContext } from 'preact/hooks'
|
|
1
|
+
import { useContext } from 'preact/hooks'
|
|
2
2
|
import {
|
|
3
3
|
ReadonlyURLSearchParams,
|
|
4
4
|
useParams as usePNextParams,
|
|
5
5
|
usePathname,
|
|
6
6
|
useRouter as usePNextRouter,
|
|
7
7
|
useSearchParams,
|
|
8
|
-
} from '../../api/client-navigation'
|
|
8
|
+
} from '../../api/client-navigation'
|
|
9
9
|
import {
|
|
10
10
|
LayoutSegmentContext,
|
|
11
11
|
type LayoutSegmentSnapshot,
|
|
12
12
|
RouteParamsContext,
|
|
13
|
-
} from '../../render/island-context'
|
|
14
|
-
import { blockJavascriptUrl } from '../../
|
|
15
|
-
import { isUnrecognizedActionError } from '../actions/unrecognized-error'
|
|
13
|
+
} from '../../render/island-context'
|
|
14
|
+
import { blockJavascriptUrl } from '../../client/router'
|
|
15
|
+
import { isUnrecognizedActionError } from '../actions/unrecognized-error'
|
|
16
16
|
import {
|
|
17
17
|
forbidden,
|
|
18
18
|
notFound,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
PNextUnauthorizedError,
|
|
23
23
|
unauthorized,
|
|
24
24
|
type RedirectStatus,
|
|
25
|
-
} from '../../api/navigation'
|
|
25
|
+
} from '../../api/navigation'
|
|
26
26
|
|
|
27
27
|
export {
|
|
28
28
|
forbidden,
|
|
@@ -35,120 +35,120 @@ export {
|
|
|
35
35
|
ReadonlyURLSearchParams,
|
|
36
36
|
usePathname,
|
|
37
37
|
useSearchParams,
|
|
38
|
-
}
|
|
39
|
-
export type { RedirectStatus }
|
|
38
|
+
}
|
|
39
|
+
export type { RedirectStatus }
|
|
40
40
|
|
|
41
41
|
export const RedirectType = {
|
|
42
42
|
push: 'push',
|
|
43
43
|
replace: 'replace',
|
|
44
|
-
} as const
|
|
44
|
+
} as const
|
|
45
45
|
|
|
46
|
-
export type RedirectType = (typeof RedirectType)[keyof typeof RedirectType]
|
|
46
|
+
export type RedirectType = (typeof RedirectType)[keyof typeof RedirectType]
|
|
47
47
|
|
|
48
|
-
let pendingRedirectHref: string | undefined
|
|
48
|
+
let pendingRedirectHref: string | undefined
|
|
49
49
|
|
|
50
50
|
export function redirect(location: string, type: RedirectType = RedirectType.replace): never {
|
|
51
|
-
redirectInBrowser(location, type)
|
|
52
|
-
return undefined as never
|
|
51
|
+
redirectInBrowser(location, type)
|
|
52
|
+
return undefined as never
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
export function permanentRedirect(
|
|
56
56
|
location: string,
|
|
57
57
|
type: RedirectType = RedirectType.replace,
|
|
58
58
|
): never {
|
|
59
|
-
redirectInBrowser(location, type)
|
|
60
|
-
return undefined as never
|
|
59
|
+
redirectInBrowser(location, type)
|
|
60
|
+
return undefined as never
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
function redirectInBrowser(location: string, mode: RedirectType) {
|
|
64
|
-
if (!process.browser && typeof window === 'undefined') return
|
|
64
|
+
if (!process.browser && typeof window === 'undefined') return
|
|
65
65
|
|
|
66
|
-
const href = new URL(location, window.location.href).href
|
|
67
|
-
if (pendingRedirectHref === href) return
|
|
68
|
-
pendingRedirectHref = href
|
|
69
|
-
if (mode === RedirectType.push) window.location.assign(href)
|
|
70
|
-
else window.location.replace(href)
|
|
66
|
+
const href = new URL(location, window.location.href).href
|
|
67
|
+
if (pendingRedirectHref === href) return
|
|
68
|
+
pendingRedirectHref = href
|
|
69
|
+
if (mode === RedirectType.push) window.location.assign(href)
|
|
70
|
+
else window.location.replace(href)
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
export interface NavigateOptions {
|
|
74
|
-
scroll?: boolean
|
|
74
|
+
scroll?: boolean
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
export interface PrefetchOptions {
|
|
78
|
-
kind?: 'auto' | 'full'
|
|
79
|
-
onInvalidate?: () => void
|
|
78
|
+
kind?: 'auto' | 'full'
|
|
79
|
+
onInvalidate?: () => void
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
export interface AppRouterInstance {
|
|
83
|
-
push(href: string, options?: NavigateOptions): void
|
|
84
|
-
replace(href: string, options?: NavigateOptions): void
|
|
85
|
-
prefetch(href: string, options?: PrefetchOptions): void
|
|
86
|
-
refresh(): void
|
|
87
|
-
back(): void
|
|
88
|
-
forward(): void
|
|
83
|
+
push(href: string, options?: NavigateOptions): void
|
|
84
|
+
replace(href: string, options?: NavigateOptions): void
|
|
85
|
+
prefetch(href: string, options?: PrefetchOptions): void
|
|
86
|
+
refresh(): void
|
|
87
|
+
back(): void
|
|
88
|
+
forward(): void
|
|
89
89
|
/**
|
|
90
90
|
* React Gesture Transitions (`experimental.gestureTransition`): commit the target route OPTIMISTICALLY
|
|
91
91
|
* while a gesture is still in flight, ahead of the canonical `push` the gesture's completion issues.
|
|
92
92
|
* pnext has no partially-committed render state, so the optimistic commit is the same soft navigation
|
|
93
93
|
* - the canonical push that follows re-renders the already current URL.
|
|
94
94
|
*/
|
|
95
|
-
experimental_gesturePush(href: string, options?: NavigateOptions): void
|
|
96
|
-
bfcacheId: string
|
|
95
|
+
experimental_gesturePush(href: string, options?: NavigateOptions): void
|
|
96
|
+
bfcacheId: string
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
// Next's useRouter returns a stable instance across renders. The wrapper is
|
|
100
100
|
// stateless (it delegates to core's singleton router), so build it once and
|
|
101
101
|
// reuse it — callers rely on referential identity (deps arrays, memoization).
|
|
102
|
-
let cachedRouter: AppRouterInstance | undefined
|
|
103
|
-
let refreshSuppressed = false
|
|
102
|
+
let cachedRouter: AppRouterInstance | undefined
|
|
103
|
+
let refreshSuppressed = false
|
|
104
104
|
|
|
105
105
|
function suppressSameTickRefresh() {
|
|
106
|
-
refreshSuppressed = true
|
|
106
|
+
refreshSuppressed = true
|
|
107
107
|
queueMicrotask(() => {
|
|
108
|
-
refreshSuppressed = false
|
|
109
|
-
})
|
|
108
|
+
refreshSuppressed = false
|
|
109
|
+
})
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
export function useRouter(): AppRouterInstance {
|
|
113
|
-
const router = usePNextRouter()
|
|
114
|
-
const pathname = usePathname()
|
|
115
|
-
const snapshot = useContext(LayoutSegmentContext)
|
|
116
|
-
const bfcacheId = scopedBfcacheId(pathname, snapshot, router.bfcacheId)
|
|
113
|
+
const router = usePNextRouter()
|
|
114
|
+
const pathname = usePathname()
|
|
115
|
+
const snapshot = useContext(LayoutSegmentContext)
|
|
116
|
+
const bfcacheId = scopedBfcacheId(pathname, snapshot, router.bfcacheId)
|
|
117
117
|
cachedRouter ??= {
|
|
118
118
|
push: (href, options) => {
|
|
119
|
-
if (blockJavascriptUrl(href)) return
|
|
120
|
-
suppressSameTickRefresh()
|
|
121
|
-
router.push(href as never, options as never)
|
|
119
|
+
if (blockJavascriptUrl(href)) return
|
|
120
|
+
suppressSameTickRefresh()
|
|
121
|
+
router.push(href as never, options as never)
|
|
122
122
|
},
|
|
123
123
|
replace: (href, options) => {
|
|
124
|
-
if (blockJavascriptUrl(href)) return
|
|
125
|
-
suppressSameTickRefresh()
|
|
126
|
-
router.replace(href as never, options as never)
|
|
124
|
+
if (blockJavascriptUrl(href)) return
|
|
125
|
+
suppressSameTickRefresh()
|
|
126
|
+
router.replace(href as never, options as never)
|
|
127
127
|
},
|
|
128
128
|
prefetch: (href, options) => {
|
|
129
|
-
if (blockJavascriptUrl(href)) return
|
|
130
|
-
router.prefetch(href as never, options as never)
|
|
129
|
+
if (blockJavascriptUrl(href)) return
|
|
130
|
+
router.prefetch(href as never, options as never)
|
|
131
131
|
},
|
|
132
132
|
refresh: () => {
|
|
133
|
-
if (refreshSuppressed) return
|
|
134
|
-
router.refresh()
|
|
133
|
+
if (refreshSuppressed) return
|
|
134
|
+
router.refresh()
|
|
135
135
|
},
|
|
136
136
|
back: () => router.back(),
|
|
137
137
|
forward: () => router.forward(),
|
|
138
138
|
experimental_gesturePush: (href, options) => {
|
|
139
|
-
if (blockJavascriptUrl(href)) return
|
|
140
|
-
suppressSameTickRefresh()
|
|
139
|
+
if (blockJavascriptUrl(href)) return
|
|
140
|
+
suppressSameTickRefresh()
|
|
141
141
|
// A gesture commits the target route optimistically: the address bar moves as soon as the gesture
|
|
142
142
|
// starts, ahead of the render landing. Start the navigation FIRST (its synchronous prologue reads
|
|
143
143
|
// the current location to key the departing route), as a `replace` so the entry pushed just below
|
|
144
144
|
// is the one it commits into - one new history entry, showing the target URL immediately.
|
|
145
|
-
router.replace(href as never, options as never)
|
|
146
|
-
pushOptimisticEntry(href)
|
|
145
|
+
router.replace(href as never, options as never)
|
|
146
|
+
pushOptimisticEntry(href)
|
|
147
147
|
},
|
|
148
148
|
bfcacheId: '',
|
|
149
|
-
}
|
|
150
|
-
cachedRouter.bfcacheId = bfcacheId
|
|
151
|
-
return cachedRouter
|
|
149
|
+
}
|
|
150
|
+
cachedRouter.bfcacheId = bfcacheId
|
|
151
|
+
return cachedRouter
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
// The optimistic history entry a gesture push commits before its render lands.
|
|
@@ -156,11 +156,11 @@ export function useRouter(): AppRouterInstance {
|
|
|
156
156
|
// committed one (and the patched pushState broadcasts the location change, so
|
|
157
157
|
// usePathname/useSearchParams see the target route right away).
|
|
158
158
|
function pushOptimisticEntry(href: string) {
|
|
159
|
-
if (!process.browser && typeof window === 'undefined') return
|
|
160
|
-
const target = new URL(href, window.location.href)
|
|
161
|
-
if (target.origin !== window.location.origin) return
|
|
162
|
-
if (target.href === window.location.href) return
|
|
163
|
-
window.history.pushState(window.history.state, '', target.href)
|
|
159
|
+
if (!process.browser && typeof window === 'undefined') return
|
|
160
|
+
const target = new URL(href, window.location.href)
|
|
161
|
+
if (target.origin !== window.location.origin) return
|
|
162
|
+
if (target.href === window.location.href) return
|
|
163
|
+
window.history.pushState(window.history.state, '', target.href)
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
export function useParams<
|
|
@@ -170,25 +170,25 @@ export function useParams<
|
|
|
170
170
|
// own params (route params + the slot's dynamic/catch-all captures) via
|
|
171
171
|
// RouteParamsContext — window.__PNEXT_ROUTE__.params only carries the global
|
|
172
172
|
// route params. Prefer the island-scoped snapshot when present.
|
|
173
|
-
const scoped = useContext(RouteParamsContext)
|
|
174
|
-
const params = usePNextParams()
|
|
175
|
-
return (scoped ?? params) as T
|
|
173
|
+
const scoped = useContext(RouteParamsContext)
|
|
174
|
+
const params = usePNextParams()
|
|
175
|
+
return (scoped ?? params) as T
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
interface DocumentNavState {
|
|
179
|
-
children?: string
|
|
180
|
-
slots?: Record<string, string
|
|
179
|
+
children?: string
|
|
180
|
+
slots?: Record<string, string>
|
|
181
181
|
/** Children rendered `default.*` (Next's `__DEFAULT__`) — no selected segment. */
|
|
182
|
-
childrenDefault?: boolean
|
|
182
|
+
childrenDefault?: boolean
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
export function useSelectedLayoutSegment(parallelRoutesKey?: string): string | null {
|
|
186
|
-
const segments = clientSelectedSegments(parallelRoutesKey)
|
|
187
|
-
return segments[parallelRoutesKey ? segments.length - 1 : 0] ?? null
|
|
186
|
+
const segments = clientSelectedSegments(parallelRoutesKey)
|
|
187
|
+
return segments[parallelRoutesKey ? segments.length - 1 : 0] ?? null
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
export function useSelectedLayoutSegments(parallelRoutesKey?: string): string[] {
|
|
191
|
-
return clientSelectedSegments(parallelRoutesKey)
|
|
191
|
+
return clientSelectedSegments(parallelRoutesKey)
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
/**
|
|
@@ -208,75 +208,75 @@ export function useSelectedLayoutSegments(parallelRoutesKey?: string): string[]
|
|
|
208
208
|
* falls back to deriving segments from the server-embedded nav state.
|
|
209
209
|
*/
|
|
210
210
|
function clientSelectedSegments(parallelRoutesKey?: string): string[] {
|
|
211
|
-
usePathname()
|
|
212
|
-
const snapshot = useContext(LayoutSegmentContext)
|
|
211
|
+
usePathname()
|
|
212
|
+
const snapshot = useContext(LayoutSegmentContext)
|
|
213
213
|
|
|
214
214
|
if (!process.browser && typeof window === 'undefined') {
|
|
215
215
|
if (snapshot) {
|
|
216
|
-
return parallelRoutesKey ? (snapshot.slots[parallelRoutesKey] ?? []) : snapshot.segments
|
|
216
|
+
return parallelRoutesKey ? (snapshot.slots[parallelRoutesKey] ?? []) : snapshot.segments
|
|
217
217
|
}
|
|
218
|
-
return []
|
|
218
|
+
return []
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
const navState = documentNavState()
|
|
221
|
+
const navState = documentNavState()
|
|
222
222
|
// A defaulted children slot (Next's `__DEFAULT__`) selects nothing: the URL's
|
|
223
223
|
// segments were matched by a PARALLEL slot, not by children.
|
|
224
224
|
const childrenSegments = () =>
|
|
225
225
|
navState.childrenDefault
|
|
226
226
|
? []
|
|
227
|
-
: routePatternSegments(navState.children ?? window.location.pathname)
|
|
227
|
+
: routePatternSegments(navState.children ?? window.location.pathname)
|
|
228
228
|
|
|
229
229
|
if (snapshot) {
|
|
230
|
-
if (parallelRoutesKey) return pathSegments(slotPath(parallelRoutesKey) ?? '')
|
|
231
|
-
return childrenSegments().slice(snapshot.depth)
|
|
230
|
+
if (parallelRoutesKey) return pathSegments(slotPath(parallelRoutesKey) ?? '')
|
|
231
|
+
return childrenSegments().slice(snapshot.depth)
|
|
232
232
|
}
|
|
233
233
|
|
|
234
|
-
if (parallelRoutesKey) return pathSegments(slotPath(parallelRoutesKey) ?? '')
|
|
235
|
-
return childrenSegments()
|
|
234
|
+
if (parallelRoutesKey) return pathSegments(slotPath(parallelRoutesKey) ?? '')
|
|
235
|
+
return childrenSegments()
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
function routePatternSegments(pathname: string): string[] {
|
|
239
|
-
const pattern = window.__PNEXT_ROUTE__?.route
|
|
240
|
-
const segments = pathSegments(pathname)
|
|
241
|
-
if (!pattern) return segments
|
|
242
|
-
const patternSegments = pattern.split('/').filter(Boolean)
|
|
239
|
+
const pattern = window.__PNEXT_ROUTE__?.route
|
|
240
|
+
const segments = pathSegments(pathname)
|
|
241
|
+
if (!pattern) return segments
|
|
242
|
+
const patternSegments = pattern.split('/').filter(Boolean)
|
|
243
243
|
// Colon form: a catch-all segment is `:slug*` (both `[...slug]` and
|
|
244
244
|
// `[[...slug]]` collapse the trailing group the same way here).
|
|
245
|
-
const catchAllIndex = patternSegments.findIndex(part => /^:[\w$]+\*$/.test(part))
|
|
246
|
-
if (catchAllIndex === -1) return segments
|
|
247
|
-
const head = segments.slice(0, catchAllIndex)
|
|
248
|
-
const tail = segments.slice(catchAllIndex)
|
|
249
|
-
return tail.length > 0 ? [...head, tail.join('/')] : head
|
|
245
|
+
const catchAllIndex = patternSegments.findIndex(part => /^:[\w$]+\*$/.test(part))
|
|
246
|
+
if (catchAllIndex === -1) return segments
|
|
247
|
+
const head = segments.slice(0, catchAllIndex)
|
|
248
|
+
const tail = segments.slice(catchAllIndex)
|
|
249
|
+
return tail.length > 0 ? [...head, tail.join('/')] : head
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
function pathSegments(pathname: string): string[] {
|
|
253
|
-
return pathname.split('/').filter(Boolean).map(decodeSegment)
|
|
253
|
+
return pathname.split('/').filter(Boolean).map(decodeSegment)
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
function slotPath(parallelRoutesKey: string): string | undefined {
|
|
257
|
-
const slotName = `@${parallelRoutesKey}
|
|
257
|
+
const slotName = `@${parallelRoutesKey}`
|
|
258
258
|
for (const [dir, pathname] of Object.entries(documentNavState().slots ?? {})) {
|
|
259
|
-
const parts = dir.split(/[\\/]/)
|
|
260
|
-
if (parts[parts.length - 1] === slotName) return pathname
|
|
259
|
+
const parts = dir.split(/[\\/]/)
|
|
260
|
+
if (parts[parts.length - 1] === slotName) return pathname
|
|
261
261
|
}
|
|
262
|
-
return undefined
|
|
262
|
+
return undefined
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
function documentNavState(): DocumentNavState {
|
|
266
|
-
const text = document.getElementById('__PNEXT_NAV_STATE__')?.textContent
|
|
267
|
-
if (!text) return {}
|
|
266
|
+
const text = document.getElementById('__PNEXT_NAV_STATE__')?.textContent
|
|
267
|
+
if (!text) return {}
|
|
268
268
|
try {
|
|
269
|
-
return JSON.parse(text) as DocumentNavState
|
|
269
|
+
return JSON.parse(text) as DocumentNavState
|
|
270
270
|
} catch {
|
|
271
|
-
return {}
|
|
271
|
+
return {}
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
function decodeSegment(segment: string): string {
|
|
276
276
|
try {
|
|
277
|
-
return decodeURIComponent(segment)
|
|
277
|
+
return decodeURIComponent(segment)
|
|
278
278
|
} catch {
|
|
279
|
-
return segment
|
|
279
|
+
return segment
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
|
|
@@ -287,21 +287,17 @@ function decodeSegment(segment: string): string {
|
|
|
287
287
|
// defeating the whole point of the scope. Instead the layout's id is derived purely from its own scope
|
|
288
288
|
// (the path segments it actually owns), stable across siblings and naturally different when the
|
|
289
289
|
// scope's own segment changes.
|
|
290
|
-
function scopedBfcacheId(
|
|
291
|
-
|
|
292
|
-
snapshot
|
|
293
|
-
|
|
294
|
-
)
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
const segments = pathname.split('/').filter(Boolean);
|
|
298
|
-
if (!segments.length) return baseId;
|
|
299
|
-
const scope = segments.slice(0, Math.min(snapshot.depth, segments.length)).join('/');
|
|
300
|
-
return scope ? `layout:${scope}` : baseId;
|
|
290
|
+
function scopedBfcacheId(pathname: string, snapshot: LayoutSegmentSnapshot | null, baseId: string) {
|
|
291
|
+
if (!baseId) return ''
|
|
292
|
+
if (!snapshot || snapshot.depth <= 0) return baseId
|
|
293
|
+
const segments = pathname.split('/').filter(Boolean)
|
|
294
|
+
if (!segments.length) return baseId
|
|
295
|
+
const scope = segments.slice(0, Math.min(snapshot.depth, segments.length)).join('/')
|
|
296
|
+
return scope ? `layout:${scope}` : baseId
|
|
301
297
|
}
|
|
302
298
|
|
|
303
|
-
export { useLinkStatus } from './link'
|
|
304
|
-
export { useServerInsertedHTML } from '../react/server-inserted-html'
|
|
299
|
+
export { useLinkStatus } from './link'
|
|
300
|
+
export { useServerInsertedHTML } from '../react/server-inserted-html'
|
|
305
301
|
|
|
306
302
|
/**
|
|
307
303
|
* True for the error a server-action dispatch throws when the server no longer
|
|
@@ -309,5 +305,5 @@ export { useServerInsertedHTML } from '../react/server-inserted-html';
|
|
|
309
305
|
* action endpoint sends for an unknown id.
|
|
310
306
|
*/
|
|
311
307
|
export function unstable_isUnrecognizedActionError(error: unknown): boolean {
|
|
312
|
-
return isUnrecognizedActionError(error)
|
|
308
|
+
return isUnrecognizedActionError(error)
|
|
313
309
|
}
|