@netlify/plugin-nextjs 4.41.3 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -17
- package/dist/build/cache.js +15 -0
- package/dist/build/content/prerendered.js +16 -0
- package/dist/build/content/server.js +18 -0
- package/dist/build/content/static.js +20 -0
- package/dist/build/functions/edge.js +14 -0
- package/dist/build/functions/server.js +16 -0
- package/dist/build/plugin-context.js +17 -0
- package/dist/esm-chunks/chunk-4AJYXTWN.js +17 -0
- package/dist/esm-chunks/chunk-5N2CWXSJ.js +564 -0
- package/dist/esm-chunks/chunk-A22224GM.js +113 -0
- package/dist/esm-chunks/chunk-AVWFCGVE.js +5536 -0
- package/dist/esm-chunks/chunk-B6QMRLBH.js +255 -0
- package/dist/esm-chunks/chunk-G3GM7JNF.js +92 -0
- package/dist/esm-chunks/chunk-GGHAQM5D.js +28 -0
- package/dist/esm-chunks/chunk-NOX2JUQZ.js +89 -0
- package/dist/esm-chunks/chunk-R4NHZWGU.js +32 -0
- package/dist/esm-chunks/chunk-RSKIKBZH.js +44 -0
- package/dist/esm-chunks/chunk-UXLNY5XK.js +86 -0
- package/dist/esm-chunks/chunk-VP3PT3VV.js +119 -0
- package/dist/esm-chunks/chunk-YZXA5QBC.js +60 -0
- package/dist/esm-chunks/chunk-Z7ZMLVTM.js +78 -0
- package/dist/index.js +66 -0
- package/dist/run/config.js +18 -0
- package/dist/run/constants.js +15 -0
- package/dist/run/handlers/cache.cjs +852 -0
- package/dist/run/handlers/server.js +3297 -0
- package/dist/run/headers.js +19 -0
- package/dist/run/next.cjs +1058 -0
- package/dist/run/revalidate.js +13 -0
- package/dist/run/systemlog.js +15 -0
- package/edge-runtime/README.md +29 -0
- package/edge-runtime/lib/headers.ts +26 -0
- package/edge-runtime/lib/middleware.ts +60 -0
- package/edge-runtime/lib/next-request.ts +59 -0
- package/edge-runtime/lib/response.ts +145 -0
- package/{src/templates/edge-shared/next-utils.ts → edge-runtime/lib/routing.ts} +64 -20
- package/edge-runtime/lib/util.ts +26 -0
- package/edge-runtime/middleware.ts +53 -0
- package/edge-runtime/shim/index.js +11 -0
- package/{src/templates → edge-runtime}/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/index.ts +1 -1
- package/edge-runtime/vendor/import_map.json +13 -0
- package/edge-runtime/vendor.ts +18 -0
- package/manifest.yml +1 -1
- package/package.json +23 -60
- package/index.js +0 -1
- package/lib/constants.js +0 -56
- package/lib/helpers/analysis.js +0 -115
- package/lib/helpers/cache.js +0 -46
- package/lib/helpers/compiler.js +0 -119
- package/lib/helpers/config.js +0 -192
- package/lib/helpers/dev.js +0 -20
- package/lib/helpers/edge.js +0 -328
- package/lib/helpers/files.js +0 -335
- package/lib/helpers/flags.js +0 -46
- package/lib/helpers/functions.js +0 -437
- package/lib/helpers/functionsMetaData.js +0 -46
- package/lib/helpers/matchers.js +0 -41
- package/lib/helpers/middlewareWatcher.js +0 -12
- package/lib/helpers/pack.js +0 -41
- package/lib/helpers/redirects.js +0 -246
- package/lib/helpers/types.js +0 -2
- package/lib/helpers/utils.js +0 -226
- package/lib/helpers/verification.js +0 -182
- package/lib/index.js +0 -194
- package/lib/templates/blobStorage.js +0 -30
- package/lib/templates/getApiHandler.js +0 -120
- package/lib/templates/getHandler.js +0 -201
- package/lib/templates/getPageResolver.js +0 -54
- package/lib/templates/handlerUtils.js +0 -268
- package/lib/templates/ipx.js +0 -13
- package/lib/templates/requireHooks.js +0 -105
- package/lib/templates/server.js +0 -159
- package/lib/templates/vendor.js +0 -20
- package/src/templates/edge/bundle.js +0 -8
- package/src/templates/edge/function-runtime.ts +0 -24
- package/src/templates/edge/imageconfig.json +0 -3
- package/src/templates/edge/ipx.ts +0 -5
- package/src/templates/edge/middleware-runtime.ts +0 -62
- package/src/templates/edge/next-dev.js +0 -104
- package/src/templates/edge/rsc-data.ts +0 -5
- package/src/templates/edge/shims.js +0 -77
- package/src/templates/edge-shared/nextConfig.json +0 -3
- package/src/templates/edge-shared/prerender-manifest.json +0 -7
- package/src/templates/edge-shared/rsc-data.ts +0 -78
- package/src/templates/edge-shared/utils.test.ts +0 -114
- package/src/templates/edge-shared/utils.ts +0 -315
- package/src/templates/vendor/import_map.json +0 -13
- /package/{src/templates/edge → edge-runtime}/matchers.json +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.134.0/fmt/colors.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.134.0/testing/_diff.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.134.0/testing/asserts.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/_util/asserts.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/_util/os.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/abortable.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/deadline.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/debounce.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/deferred.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/delay.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/mod.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/mux_async_iterator.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/pool.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/retry.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/tee.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/bytes/index_of_needle.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/crypto/timing_safe_equal.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/datetime/to_imf.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/encoding/base64.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/encoding/base64url.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/flags/mod.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/fmt/colors.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/fmt/printf.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/http/cookie.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_core.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_events.d.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_events.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_global.d.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_next_tick.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_process/exiting.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_process/process.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_process/stdio.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_process/streams.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_stream.d.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_stream.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_util/_util_callbackify.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_utils.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/assert.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/assertion_error.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/async_hooks.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/buffer.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/events.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/buffer.d.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/buffer.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/crypto/_keys.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/crypto/constants.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/error_codes.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/errors.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/fixed_queue.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/hide_stack_frames.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/net.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/normalize_encoding.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/options.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/primordials.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/process/per_thread.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/readline/callbacks.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/readline/utils.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/streams/destroy.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/streams/end-of-stream.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/streams/utils.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util/comparisons.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util/debuglog.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util/inspect.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util/types.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/validators.mjs +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_libuv_winerror.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_listen.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_node.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_timingSafeEqual.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_utils.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_winerror.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/ares.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/async_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/buffer.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/cares_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/config.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/connection_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/constants.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/contextify.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/credentials.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/crypto.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/errors.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/fs.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/fs_dir.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/fs_event_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/handle_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/heap_utils.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/http_parser.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/icu.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/inspector.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/js_stream.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/messaging.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/mod.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/module_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/native_module.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/natives.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/node_file.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/node_options.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/options.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/os.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/performance.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/pipe_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/process_methods.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/report.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/serdes.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/signal_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/spawn_sync.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/stream_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/string_decoder.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/symbols.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/task_queue.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/tcp_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/timers.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/tls_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/trace_events.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/tty_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/types.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/udp_wrap.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/url.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/util.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/uv.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/v8.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/worker.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/zlib.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/process.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/stream.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/string_decoder.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/util/types.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/util.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/_constants.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/_interface.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/_util.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/common.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/glob.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/mod.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/posix.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/separator.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/win32.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/streams/write_all.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/testing/_diff.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/testing/_format.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/testing/asserts.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/types.d.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/asyncify.js +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.d.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.js +0 -0
- /package/{src/templates → edge-runtime}/vendor/deno.land/x/path_to_regexp@v6.2.1/index.ts +0 -0
- /package/{src/templates → edge-runtime}/vendor/esm.sh/v91/next@12.2.5/deno/dist/compiled/cookie.js +0 -0
- /package/{src/templates → edge-runtime}/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/request.js +0 -0
- /package/{src/templates → edge-runtime}/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/response.js +0 -0
- /package/{src/templates → edge-runtime}/vendor/raw.githubusercontent.com/worker-tools/resolvable-promise/master/index.ts +0 -0
package/lib/helpers/dev.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.onPreDev = void 0;
|
|
7
|
-
const path_1 = require("path");
|
|
8
|
-
const execa_1 = __importDefault(require("execa"));
|
|
9
|
-
const edge_1 = require("./edge");
|
|
10
|
-
// The types haven't been updated yet
|
|
11
|
-
const onPreDev = async ({ constants, netlifyConfig }) => {
|
|
12
|
-
var _a;
|
|
13
|
-
const base = (_a = netlifyConfig.build.base) !== null && _a !== void 0 ? _a : process.cwd();
|
|
14
|
-
await (0, edge_1.writeDevEdgeFunction)(constants);
|
|
15
|
-
// Don't await this or it will never finish
|
|
16
|
-
execa_1.default.node((0, path_1.resolve)(__dirname, '..', '..', 'lib', 'helpers', 'middlewareWatcher.js'), [base, process.env.NODE_ENV === 'test' ? '--once' : ''], {
|
|
17
|
-
stdio: 'inherit',
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
|
-
exports.onPreDev = onPreDev;
|
package/lib/helpers/edge.js
DELETED
|
@@ -1,328 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.writeEdgeFunctions = exports.getEdgeFunctionPatternForPage = exports.generateRscDataEdgeManifest = exports.writeDevEdgeFunction = exports.cleanupEdgeFunctions = exports.sanitizeEdgePath = exports.loadPrerenderManifest = exports.loadAppPathRoutesManifest = exports.loadMiddlewareManifest = exports.isAppDirRoute = void 0;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path_1 = require("path");
|
|
9
|
-
const chalk_1 = require("chalk");
|
|
10
|
-
const destr_1 = __importDefault(require("destr"));
|
|
11
|
-
const fs_extra_1 = require("fs-extra");
|
|
12
|
-
const outdent_1 = require("outdent");
|
|
13
|
-
const constants_1 = require("../constants");
|
|
14
|
-
const config_1 = require("./config");
|
|
15
|
-
const functionsMetaData_1 = require("./functionsMetaData");
|
|
16
|
-
const matchers_1 = require("./matchers");
|
|
17
|
-
const maybeLoadJson = (path) => {
|
|
18
|
-
if ((0, fs_1.existsSync)(path)) {
|
|
19
|
-
return (0, fs_extra_1.readJSON)(path);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
const isAppDirRoute = (route, appPathRoutesManifest) => Boolean(appPathRoutesManifest) && Object.values(appPathRoutesManifest).includes(route);
|
|
23
|
-
exports.isAppDirRoute = isAppDirRoute;
|
|
24
|
-
const loadMiddlewareManifest = (netlifyConfig) => maybeLoadJson((0, path_1.resolve)(netlifyConfig.build.publish, 'server', 'middleware-manifest.json'));
|
|
25
|
-
exports.loadMiddlewareManifest = loadMiddlewareManifest;
|
|
26
|
-
const loadAppPathRoutesManifest = (netlifyConfig) => maybeLoadJson((0, path_1.resolve)(netlifyConfig.build.publish, 'app-path-routes-manifest.json'));
|
|
27
|
-
exports.loadAppPathRoutesManifest = loadAppPathRoutesManifest;
|
|
28
|
-
const loadPrerenderManifest = (netlifyConfig) => (0, fs_extra_1.readJSON)((0, path_1.resolve)(netlifyConfig.build.publish, 'prerender-manifest.json'));
|
|
29
|
-
exports.loadPrerenderManifest = loadPrerenderManifest;
|
|
30
|
-
/**
|
|
31
|
-
* Convert the Next middleware name into a valid Edge Function name
|
|
32
|
-
*/
|
|
33
|
-
const sanitizeName = (name) => `next_${name.replace(/\W/g, '_')}`;
|
|
34
|
-
/**
|
|
35
|
-
* Convert the images path to strip the origin (until domain-level Edge functions are supported)
|
|
36
|
-
*/
|
|
37
|
-
const sanitizeEdgePath = (imagesPath) => new URL(imagesPath, process.env.URL || 'http://n').pathname;
|
|
38
|
-
exports.sanitizeEdgePath = sanitizeEdgePath;
|
|
39
|
-
// Slightly different spacing in different versions!
|
|
40
|
-
const IMPORT_UNSUPPORTED = [
|
|
41
|
-
`Object.defineProperty(globalThis,"__import_unsupported"`,
|
|
42
|
-
` Object.defineProperty(globalThis, "__import_unsupported"`,
|
|
43
|
-
];
|
|
44
|
-
/**
|
|
45
|
-
* Concatenates the Next edge function code with the required chunks and adds an export
|
|
46
|
-
*/
|
|
47
|
-
const getMiddlewareBundle = async ({ edgeFunctionDefinition, netlifyConfig, }) => {
|
|
48
|
-
const { publish } = netlifyConfig.build;
|
|
49
|
-
const shims = await fs_1.promises.readFile(getEdgeTemplatePath('shims.js'), 'utf8');
|
|
50
|
-
const chunks = [shims];
|
|
51
|
-
chunks.push(`export const _DEFINITION = ${JSON.stringify(edgeFunctionDefinition)}`);
|
|
52
|
-
if ('wasm' in edgeFunctionDefinition) {
|
|
53
|
-
for (const { name, filePath } of edgeFunctionDefinition.wasm) {
|
|
54
|
-
const wasm = await fs_1.promises.readFile((0, path_1.join)(publish, filePath));
|
|
55
|
-
chunks.push(`const ${name} = _base64Decode(${JSON.stringify(wasm.toString('base64'))}).buffer`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if ('assets' in edgeFunctionDefinition) {
|
|
59
|
-
chunks.push(`const _ASSETS = {}`);
|
|
60
|
-
for (const { name, filePath } of edgeFunctionDefinition.assets) {
|
|
61
|
-
const wasm = await fs_1.promises.readFile((0, path_1.join)(publish, filePath));
|
|
62
|
-
chunks.push(`_ASSETS[${JSON.stringify(name)}] = ${JSON.stringify(wasm.toString('base64'))}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
for (const file of edgeFunctionDefinition.files) {
|
|
66
|
-
const filePath = (0, path_1.join)(publish, file);
|
|
67
|
-
let data = await fs_1.promises.readFile(filePath, 'utf8');
|
|
68
|
-
// Next defines an immutable global variable, which is fine unless you have more than one in the bundle
|
|
69
|
-
// This adds a check to see if the global is already defined
|
|
70
|
-
data = IMPORT_UNSUPPORTED.reduce((acc, val) => acc.replace(val, `('__import_unsupported' in globalThis)||${val}`), data);
|
|
71
|
-
chunks.push('{', data, '}');
|
|
72
|
-
}
|
|
73
|
-
const exports = /* js */ `export default _ENTRIES["middleware_${edgeFunctionDefinition.name}"].default;`;
|
|
74
|
-
chunks.push(exports);
|
|
75
|
-
return chunks.join('\n');
|
|
76
|
-
};
|
|
77
|
-
const getEdgeTemplatePath = (file) => (0, path_1.join)(__dirname, '..', '..', 'src', 'templates', 'edge', file);
|
|
78
|
-
const copyEdgeSourceFile = ({ file, target, edgeFunctionDir, }) => fs_1.promises.copyFile(getEdgeTemplatePath(file), (0, path_1.join)(edgeFunctionDir, target !== null && target !== void 0 ? target : file));
|
|
79
|
-
const writeEdgeFunction = async ({ edgeFunctionDefinition, edgeFunctionRoot, netlifyConfig, functionName, matchers = [], middleware = false, }) => {
|
|
80
|
-
const edgeFunctionDir = (0, path_1.join)(edgeFunctionRoot, functionName);
|
|
81
|
-
const bundle = await getMiddlewareBundle({
|
|
82
|
-
edgeFunctionDefinition,
|
|
83
|
-
netlifyConfig,
|
|
84
|
-
});
|
|
85
|
-
await (0, fs_extra_1.ensureDir)(edgeFunctionDir);
|
|
86
|
-
await fs_1.promises.writeFile((0, path_1.join)(edgeFunctionDir, 'bundle.js'), bundle);
|
|
87
|
-
await copyEdgeSourceFile({
|
|
88
|
-
edgeFunctionDir,
|
|
89
|
-
file: middleware ? 'middleware-runtime.ts' : 'function-runtime.ts',
|
|
90
|
-
target: 'index.ts',
|
|
91
|
-
});
|
|
92
|
-
if (middleware) {
|
|
93
|
-
// Functions don't have complex matchers, so we can rely on the Netlify matcher
|
|
94
|
-
await (0, fs_extra_1.writeJson)((0, path_1.join)(edgeFunctionDir, 'matchers.json'), matchers);
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
const generateEdgeFunctionMiddlewareMatchers = ({ edgeFunctionDefinition, nextConfig, }) => {
|
|
98
|
-
// The v1 middleware manifest has a single regexp, but the v2 has an array of matchers
|
|
99
|
-
if ('regexp' in edgeFunctionDefinition) {
|
|
100
|
-
return [{ regexp: edgeFunctionDefinition.regexp }];
|
|
101
|
-
}
|
|
102
|
-
if (nextConfig.i18n) {
|
|
103
|
-
return edgeFunctionDefinition.matchers.map((matcher) => ({
|
|
104
|
-
...matcher,
|
|
105
|
-
regexp: (0, matchers_1.makeLocaleOptional)(matcher.regexp),
|
|
106
|
-
}));
|
|
107
|
-
}
|
|
108
|
-
return edgeFunctionDefinition.matchers;
|
|
109
|
-
};
|
|
110
|
-
const middlewareMatcherToEdgeFunctionDefinition = (matcher, name, generator, cache) => {
|
|
111
|
-
const pattern = (0, matchers_1.transformCaptureGroups)((0, matchers_1.stripLookahead)(matcher.regexp));
|
|
112
|
-
return { function: name, pattern, name, cache, generator };
|
|
113
|
-
};
|
|
114
|
-
const cleanupEdgeFunctions = ({ INTERNAL_EDGE_FUNCTIONS_SRC = '.netlify/edge-functions', }) => (0, fs_extra_1.emptyDir)(INTERNAL_EDGE_FUNCTIONS_SRC);
|
|
115
|
-
exports.cleanupEdgeFunctions = cleanupEdgeFunctions;
|
|
116
|
-
const writeDevEdgeFunction = async ({ INTERNAL_EDGE_FUNCTIONS_SRC = '.netlify/edge-functions', }) => {
|
|
117
|
-
const generator = await (0, functionsMetaData_1.getPluginVersion)();
|
|
118
|
-
const manifest = {
|
|
119
|
-
functions: [
|
|
120
|
-
{
|
|
121
|
-
function: 'next-dev',
|
|
122
|
-
name: 'netlify dev handler',
|
|
123
|
-
path: '/*',
|
|
124
|
-
generator,
|
|
125
|
-
},
|
|
126
|
-
],
|
|
127
|
-
version: 1,
|
|
128
|
-
import_map: 'vendor/import_map.json',
|
|
129
|
-
};
|
|
130
|
-
const edgeFunctionRoot = (0, path_1.resolve)(INTERNAL_EDGE_FUNCTIONS_SRC);
|
|
131
|
-
await (0, fs_extra_1.emptyDir)(edgeFunctionRoot);
|
|
132
|
-
await (0, fs_extra_1.writeJson)((0, path_1.join)(edgeFunctionRoot, 'manifest.json'), manifest);
|
|
133
|
-
await (0, fs_extra_1.copy)(getEdgeTemplatePath('../vendor'), (0, path_1.join)(edgeFunctionRoot, 'vendor'));
|
|
134
|
-
await (0, fs_extra_1.copy)(getEdgeTemplatePath('../edge-shared'), (0, path_1.join)(edgeFunctionRoot, 'edge-shared'));
|
|
135
|
-
const edgeFunctionDir = (0, path_1.join)(edgeFunctionRoot, 'next-dev');
|
|
136
|
-
await (0, fs_extra_1.ensureDir)(edgeFunctionDir);
|
|
137
|
-
await copyEdgeSourceFile({ edgeFunctionDir, file: 'next-dev.js', target: 'index.js' });
|
|
138
|
-
};
|
|
139
|
-
exports.writeDevEdgeFunction = writeDevEdgeFunction;
|
|
140
|
-
/**
|
|
141
|
-
* Writes an edge function that routes RSC data requests to the `.rsc` route
|
|
142
|
-
*/
|
|
143
|
-
const generateRscDataEdgeManifest = async ({ prerenderManifest, appPathRoutesManifest, packagePath = '', }) => {
|
|
144
|
-
const generator = await (0, functionsMetaData_1.getPluginVersion)();
|
|
145
|
-
if (!prerenderManifest || !appPathRoutesManifest) {
|
|
146
|
-
return [];
|
|
147
|
-
}
|
|
148
|
-
const staticAppdirRoutes = [];
|
|
149
|
-
for (const [path, route] of Object.entries(prerenderManifest.routes)) {
|
|
150
|
-
if ((0, exports.isAppDirRoute)(route.srcRoute, appPathRoutesManifest) && route.dataRoute) {
|
|
151
|
-
staticAppdirRoutes.push(path, route.dataRoute);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
const dynamicAppDirRoutes = [];
|
|
155
|
-
for (const [path, route] of Object.entries(prerenderManifest.dynamicRoutes)) {
|
|
156
|
-
if ((0, exports.isAppDirRoute)(path, appPathRoutesManifest) && route.dataRouteRegex) {
|
|
157
|
-
dynamicAppDirRoutes.push(route.routeRegex, route.dataRouteRegex);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
if (staticAppdirRoutes.length === 0 && dynamicAppDirRoutes.length === 0) {
|
|
161
|
-
return [];
|
|
162
|
-
}
|
|
163
|
-
const edgeFunctionDir = (0, path_1.resolve)(packagePath, '.netlify', 'edge-functions', 'rsc-data');
|
|
164
|
-
await (0, fs_extra_1.ensureDir)(edgeFunctionDir);
|
|
165
|
-
await copyEdgeSourceFile({ edgeFunctionDir, file: 'rsc-data.ts' });
|
|
166
|
-
return [
|
|
167
|
-
...staticAppdirRoutes.map((path) => ({
|
|
168
|
-
function: 'rsc-data',
|
|
169
|
-
name: 'RSC data routing',
|
|
170
|
-
path,
|
|
171
|
-
generator,
|
|
172
|
-
})),
|
|
173
|
-
...dynamicAppDirRoutes.map((pattern) => ({
|
|
174
|
-
function: 'rsc-data',
|
|
175
|
-
name: 'RSC data routing',
|
|
176
|
-
pattern,
|
|
177
|
-
generator,
|
|
178
|
-
})),
|
|
179
|
-
];
|
|
180
|
-
};
|
|
181
|
-
exports.generateRscDataEdgeManifest = generateRscDataEdgeManifest;
|
|
182
|
-
const getEdgeFunctionPatternForPage = ({ edgeFunctionDefinition, pageRegexMap, appPathRoutesManifest, }) => {
|
|
183
|
-
// We don't just use the matcher from the edge function definition, because it doesn't handle trailing slashes
|
|
184
|
-
var _a, _b;
|
|
185
|
-
// appDir functions have a name that _isn't_ the route name, but rather the route with `/page` appended
|
|
186
|
-
const regexp = pageRegexMap.get((_a = appPathRoutesManifest === null || appPathRoutesManifest === void 0 ? void 0 : appPathRoutesManifest[edgeFunctionDefinition.page]) !== null && _a !== void 0 ? _a : edgeFunctionDefinition.page);
|
|
187
|
-
if (regexp) {
|
|
188
|
-
return regexp;
|
|
189
|
-
}
|
|
190
|
-
if ('regexp' in edgeFunctionDefinition) {
|
|
191
|
-
return edgeFunctionDefinition.regexp.replace(/([^/])\$$/, '$1/?$');
|
|
192
|
-
}
|
|
193
|
-
// If we need to fall back to the matcher, we need to add an optional trailing slash
|
|
194
|
-
return (_b = edgeFunctionDefinition.matchers) === null || _b === void 0 ? void 0 : _b[0].regexp.replace(/([^/])\$$/, '$1/?$');
|
|
195
|
-
};
|
|
196
|
-
exports.getEdgeFunctionPatternForPage = getEdgeFunctionPatternForPage;
|
|
197
|
-
/**
|
|
198
|
-
* Writes Edge Functions for the Next middleware
|
|
199
|
-
*/
|
|
200
|
-
// eslint-disable-next-line max-lines-per-function
|
|
201
|
-
const writeEdgeFunctions = async ({ netlifyConfig, routesManifest, constants: { PACKAGE_PATH = '' }, }) => {
|
|
202
|
-
const generator = await (0, functionsMetaData_1.getPluginVersion)();
|
|
203
|
-
const manifest = {
|
|
204
|
-
functions: [],
|
|
205
|
-
layers: [],
|
|
206
|
-
version: 1,
|
|
207
|
-
};
|
|
208
|
-
const edgeFunctionRoot = (0, path_1.resolve)(PACKAGE_PATH, '.netlify', 'edge-functions');
|
|
209
|
-
await (0, fs_extra_1.emptyDir)(edgeFunctionRoot);
|
|
210
|
-
const { publish } = netlifyConfig.build;
|
|
211
|
-
const nextConfigFile = await (0, config_1.getRequiredServerFiles)(publish);
|
|
212
|
-
const nextConfig = nextConfigFile.config;
|
|
213
|
-
await (0, fs_extra_1.copy)(getEdgeTemplatePath('../vendor'), (0, path_1.join)(edgeFunctionRoot, 'vendor'));
|
|
214
|
-
await (0, fs_extra_1.copy)(getEdgeTemplatePath('../edge-shared'), (0, path_1.join)(edgeFunctionRoot, 'edge-shared'));
|
|
215
|
-
await (0, fs_extra_1.writeJSON)((0, path_1.join)(edgeFunctionRoot, 'edge-shared', 'nextConfig.json'), nextConfig);
|
|
216
|
-
await (0, fs_extra_1.copy)((0, path_1.join)(publish, 'prerender-manifest.json'), (0, path_1.join)(edgeFunctionRoot, 'edge-shared', 'prerender-manifest.json'));
|
|
217
|
-
// early return if edge is disabled
|
|
218
|
-
if ((0, destr_1.default)(process.env.NEXT_DISABLE_NETLIFY_EDGE)) {
|
|
219
|
-
console.log('Environment variable NEXT_DISABLE_NETLIFY_EDGE has been set, skipping Netlify Edge Function creation.');
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
const rscFunctions = await (0, exports.generateRscDataEdgeManifest)({
|
|
223
|
-
packagePath: PACKAGE_PATH,
|
|
224
|
-
prerenderManifest: await (0, exports.loadPrerenderManifest)(netlifyConfig),
|
|
225
|
-
appPathRoutesManifest: await (0, exports.loadAppPathRoutesManifest)(netlifyConfig),
|
|
226
|
-
});
|
|
227
|
-
manifest.functions.push(...rscFunctions);
|
|
228
|
-
const middlewareManifest = await (0, exports.loadMiddlewareManifest)(netlifyConfig);
|
|
229
|
-
if (!middlewareManifest) {
|
|
230
|
-
console.error("Couldn't find the middleware manifest");
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
let usesEdge = false;
|
|
234
|
-
for (const middleware of middlewareManifest.sortedMiddleware) {
|
|
235
|
-
usesEdge = true;
|
|
236
|
-
const edgeFunctionDefinition = middlewareManifest.middleware[middleware];
|
|
237
|
-
const functionName = sanitizeName(edgeFunctionDefinition.name);
|
|
238
|
-
const matchers = generateEdgeFunctionMiddlewareMatchers({
|
|
239
|
-
edgeFunctionDefinition,
|
|
240
|
-
edgeFunctionRoot,
|
|
241
|
-
nextConfig,
|
|
242
|
-
});
|
|
243
|
-
await writeEdgeFunction({
|
|
244
|
-
edgeFunctionDefinition,
|
|
245
|
-
edgeFunctionRoot,
|
|
246
|
-
netlifyConfig,
|
|
247
|
-
functionName,
|
|
248
|
-
matchers,
|
|
249
|
-
middleware: true,
|
|
250
|
-
});
|
|
251
|
-
manifest.functions.push(...matchers.map((matcher) => middlewareMatcherToEdgeFunctionDefinition(matcher, functionName, generator)));
|
|
252
|
-
}
|
|
253
|
-
// Functions (i.e. not middleware, but edge SSR and API routes)
|
|
254
|
-
if (typeof middlewareManifest.functions === 'object') {
|
|
255
|
-
// When using the app dir, we also need to check if the EF matches a page
|
|
256
|
-
const appPathRoutesManifest = await (0, exports.loadAppPathRoutesManifest)(netlifyConfig);
|
|
257
|
-
// A map of all route pages to their page regex. This is used for pages dir and appDir.
|
|
258
|
-
const pageRegexMap = new Map([...(routesManifest.dynamicRoutes || []), ...(routesManifest.staticRoutes || [])].map((route) => [
|
|
259
|
-
route.page,
|
|
260
|
-
route.regex,
|
|
261
|
-
]));
|
|
262
|
-
// Create a map of pages-dir routes to their data route regex (appDir uses the same route as the HTML)
|
|
263
|
-
const dataRoutesMap = new Map([...(routesManifest.dataRoutes || [])].map((route) => [route.page, route.dataRouteRegex]));
|
|
264
|
-
for (const edgeFunctionDefinition of Object.values(middlewareManifest.functions)) {
|
|
265
|
-
usesEdge = true;
|
|
266
|
-
const functionName = sanitizeName(edgeFunctionDefinition.name);
|
|
267
|
-
await writeEdgeFunction({
|
|
268
|
-
edgeFunctionDefinition,
|
|
269
|
-
edgeFunctionRoot,
|
|
270
|
-
netlifyConfig,
|
|
271
|
-
functionName,
|
|
272
|
-
});
|
|
273
|
-
const pattern = (0, exports.getEdgeFunctionPatternForPage)({
|
|
274
|
-
edgeFunctionDefinition,
|
|
275
|
-
pageRegexMap,
|
|
276
|
-
appPathRoutesManifest,
|
|
277
|
-
});
|
|
278
|
-
manifest.functions.push({
|
|
279
|
-
function: functionName,
|
|
280
|
-
name: edgeFunctionDefinition.name,
|
|
281
|
-
pattern,
|
|
282
|
-
cache: 'manual',
|
|
283
|
-
generator,
|
|
284
|
-
});
|
|
285
|
-
// pages-dir page routes also have a data route. If there's a match, add an entry mapping that to the function too
|
|
286
|
-
const dataRoute = dataRoutesMap.get(edgeFunctionDefinition.page);
|
|
287
|
-
if (dataRoute) {
|
|
288
|
-
manifest.functions.push({
|
|
289
|
-
function: functionName,
|
|
290
|
-
name: edgeFunctionDefinition.name,
|
|
291
|
-
pattern: dataRoute,
|
|
292
|
-
cache: 'manual',
|
|
293
|
-
generator,
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
if ((0, destr_1.default)(process.env.NEXT_FORCE_EDGE_IMAGES) &&
|
|
299
|
-
!(0, destr_1.default)(process.env.NEXT_DISABLE_EDGE_IMAGES) &&
|
|
300
|
-
!(0, destr_1.default)(process.env.DISABLE_IPX)) {
|
|
301
|
-
usesEdge = true;
|
|
302
|
-
console.log('Using Netlify Edge Functions for image format detection. Set env var "NEXT_DISABLE_EDGE_IMAGES=true" to disable.');
|
|
303
|
-
const edgeFunctionDir = (0, path_1.join)(edgeFunctionRoot, 'ipx');
|
|
304
|
-
await (0, fs_extra_1.ensureDir)(edgeFunctionDir);
|
|
305
|
-
await copyEdgeSourceFile({ edgeFunctionDir, file: 'ipx.ts', target: 'index.ts' });
|
|
306
|
-
await (0, fs_extra_1.copyFile)((0, path_1.join)('.netlify', 'functions-internal', constants_1.IMAGE_FUNCTION_NAME, 'imageconfig.json'), (0, path_1.join)(edgeFunctionDir, 'imageconfig.json'));
|
|
307
|
-
manifest.functions.push({
|
|
308
|
-
function: 'ipx',
|
|
309
|
-
name: 'next/image handler',
|
|
310
|
-
path: nextConfig.images.path ? (0, exports.sanitizeEdgePath)(nextConfig.images.path) : '/_next/image',
|
|
311
|
-
generator,
|
|
312
|
-
});
|
|
313
|
-
manifest.layers.push({
|
|
314
|
-
name: 'https://ipx-edge-function-layer.netlify.app/mod.ts',
|
|
315
|
-
flag: 'ipx-edge-function-layer-url',
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
console.log('You are not using Netlify Edge Functions for image format detection. Set env var "NEXT_FORCE_EDGE_IMAGES=true" to enable.');
|
|
320
|
-
}
|
|
321
|
-
if (usesEdge) {
|
|
322
|
-
console.log((0, outdent_1.outdent) `
|
|
323
|
-
✨ Deploying middleware and functions to ${(0, chalk_1.greenBright) `Netlify Edge Functions`} ✨
|
|
324
|
-
`);
|
|
325
|
-
}
|
|
326
|
-
await (0, fs_extra_1.writeJson)((0, path_1.join)(edgeFunctionRoot, 'manifest.json'), manifest);
|
|
327
|
-
};
|
|
328
|
-
exports.writeEdgeFunctions = writeEdgeFunctions;
|