@netlify/plugin-nextjs 4.41.3 → 5.0.0-beta.0
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-62KDS27E.js +77 -0
- package/dist/esm-chunks/chunk-AVWFCGVE.js +5536 -0
- package/dist/esm-chunks/chunk-B6QMRLBH.js +255 -0
- package/dist/esm-chunks/chunk-G2VRYWGL.js +107 -0
- package/dist/esm-chunks/chunk-G3GM7JNF.js +92 -0
- package/dist/esm-chunks/chunk-GGHAQM5D.js +28 -0
- package/dist/esm-chunks/chunk-HPGTYMVD.js +113 -0
- package/dist/esm-chunks/chunk-PEBUKFKH.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-XD5TSLZO.js +85 -0
- package/dist/esm-chunks/chunk-ZBX3SNQG.js +561 -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 +849 -0
- package/dist/run/handlers/server.js +3289 -0
- package/dist/run/headers.js +19 -0
- package/dist/run/next.cjs +1055 -0
- package/dist/run/revalidate.js +13 -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/edge-runtime/lib/util.ts +26 -0
- package/edge-runtime/middleware.ts +40 -0
- package/edge-runtime/shim/index.js +8 -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/matchers.json +0 -1
- 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/next-utils.ts +0 -407
- 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-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
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
|
|
2
|
+
const require = await (async () => {
|
|
3
|
+
const { createRequire } = await import("node:module");
|
|
4
|
+
return createRequire(import.meta.url);
|
|
5
|
+
})();
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
__commonJS,
|
|
9
|
+
__require,
|
|
10
|
+
__toESM
|
|
11
|
+
} from "./chunk-RSKIKBZH.js";
|
|
12
|
+
|
|
13
|
+
// node_modules/is-promise/index.js
|
|
14
|
+
var require_is_promise = __commonJS({
|
|
15
|
+
"node_modules/is-promise/index.js"(exports, module) {
|
|
16
|
+
module.exports = isPromise;
|
|
17
|
+
module.exports.default = isPromise;
|
|
18
|
+
function isPromise(obj) {
|
|
19
|
+
return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// node_modules/@netlify/functions/dist/lib/consts.js
|
|
25
|
+
var require_consts = __commonJS({
|
|
26
|
+
"node_modules/@netlify/functions/dist/lib/consts.js"(exports) {
|
|
27
|
+
"use strict";
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.METADATA_VERSION = exports.HTTP_STATUS_OK = exports.HTTP_STATUS_METHOD_NOT_ALLOWED = exports.BUILDER_FUNCTIONS_FLAG = void 0;
|
|
30
|
+
var BUILDER_FUNCTIONS_FLAG = true;
|
|
31
|
+
exports.BUILDER_FUNCTIONS_FLAG = BUILDER_FUNCTIONS_FLAG;
|
|
32
|
+
var HTTP_STATUS_METHOD_NOT_ALLOWED = 405;
|
|
33
|
+
exports.HTTP_STATUS_METHOD_NOT_ALLOWED = HTTP_STATUS_METHOD_NOT_ALLOWED;
|
|
34
|
+
var HTTP_STATUS_OK = 200;
|
|
35
|
+
exports.HTTP_STATUS_OK = HTTP_STATUS_OK;
|
|
36
|
+
var METADATA_VERSION = 1;
|
|
37
|
+
exports.METADATA_VERSION = METADATA_VERSION;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
// node_modules/@netlify/functions/dist/lib/builder.js
|
|
42
|
+
var require_builder = __commonJS({
|
|
43
|
+
"node_modules/@netlify/functions/dist/lib/builder.js"(exports) {
|
|
44
|
+
"use strict";
|
|
45
|
+
var __importDefault = exports && exports.__importDefault || function(mod) {
|
|
46
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
47
|
+
};
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
exports.builder = void 0;
|
|
50
|
+
var is_promise_1 = __importDefault(require_is_promise());
|
|
51
|
+
var consts_js_1 = require_consts();
|
|
52
|
+
var augmentResponse = (response) => {
|
|
53
|
+
if (!response) {
|
|
54
|
+
return response;
|
|
55
|
+
}
|
|
56
|
+
const metadata = { version: consts_js_1.METADATA_VERSION, builder_function: consts_js_1.BUILDER_FUNCTIONS_FLAG, ttl: response.ttl || 0 };
|
|
57
|
+
return {
|
|
58
|
+
...response,
|
|
59
|
+
metadata
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
var wrapHandler = (handler) => (
|
|
63
|
+
// eslint-disable-next-line promise/prefer-await-to-callbacks
|
|
64
|
+
(event, context, callback) => {
|
|
65
|
+
if (event.httpMethod !== "GET" && event.httpMethod !== "HEAD") {
|
|
66
|
+
return Promise.resolve({
|
|
67
|
+
body: "Method Not Allowed",
|
|
68
|
+
statusCode: consts_js_1.HTTP_STATUS_METHOD_NOT_ALLOWED
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
const modifiedEvent = {
|
|
72
|
+
...event,
|
|
73
|
+
multiValueQueryStringParameters: {},
|
|
74
|
+
queryStringParameters: {}
|
|
75
|
+
};
|
|
76
|
+
const wrappedCallback = (error, response) => (
|
|
77
|
+
// eslint-disable-next-line promise/prefer-await-to-callbacks
|
|
78
|
+
callback ? callback(error, augmentResponse(response)) : null
|
|
79
|
+
);
|
|
80
|
+
const execution = handler(modifiedEvent, context, wrappedCallback);
|
|
81
|
+
if ((0, is_promise_1.default)(execution)) {
|
|
82
|
+
return execution.then(augmentResponse);
|
|
83
|
+
}
|
|
84
|
+
return execution;
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
exports.builder = wrapHandler;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// node_modules/@netlify/functions/dist/lib/purge_cache.js
|
|
92
|
+
var require_purge_cache = __commonJS({
|
|
93
|
+
"node_modules/@netlify/functions/dist/lib/purge_cache.js"(exports) {
|
|
94
|
+
"use strict";
|
|
95
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
96
|
+
exports.purgeCache = void 0;
|
|
97
|
+
var process_1 = __require("process");
|
|
98
|
+
var purgeCache2 = async (options = {}) => {
|
|
99
|
+
if (globalThis.fetch === void 0) {
|
|
100
|
+
throw new Error("`fetch` is not available. Please ensure you're using Node.js version 18.0.0 or above. Refer to https://ntl.fyi/functions-runtime for more information.");
|
|
101
|
+
}
|
|
102
|
+
const payload = {
|
|
103
|
+
cache_tags: options.tags,
|
|
104
|
+
deploy_alias: options.deployAlias
|
|
105
|
+
};
|
|
106
|
+
const token = process_1.env.NETLIFY_PURGE_API_TOKEN || options.token;
|
|
107
|
+
if ("siteSlug" in options) {
|
|
108
|
+
payload.site_slug = options.siteSlug;
|
|
109
|
+
} else if ("domain" in options) {
|
|
110
|
+
payload.domain = options.domain;
|
|
111
|
+
} else {
|
|
112
|
+
const siteID = options.siteID || process_1.env.SITE_ID;
|
|
113
|
+
if (!siteID) {
|
|
114
|
+
throw new Error("The Netlify site ID was not found in the execution environment. Please supply it manually using the `siteID` property.");
|
|
115
|
+
}
|
|
116
|
+
payload.site_id = siteID;
|
|
117
|
+
}
|
|
118
|
+
if (!token) {
|
|
119
|
+
throw new Error("The cache purge API token was not found in the execution environment. Please supply it manually using the `token` property.");
|
|
120
|
+
}
|
|
121
|
+
const apiURL = options.apiURL || "https://api.netlify.com";
|
|
122
|
+
const response = await fetch(`${apiURL}/api/v1/purge`, {
|
|
123
|
+
method: "POST",
|
|
124
|
+
headers: {
|
|
125
|
+
"Content-Type": "application/json; charset=utf8",
|
|
126
|
+
Authorization: `Bearer ${token}`
|
|
127
|
+
},
|
|
128
|
+
body: JSON.stringify(payload)
|
|
129
|
+
});
|
|
130
|
+
if (!response.ok) {
|
|
131
|
+
throw new Error(`Cache purge API call returned an unexpected status code: ${response.status}`);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
exports.purgeCache = purgeCache2;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
// node_modules/@netlify/functions/dist/lib/schedule.js
|
|
139
|
+
var require_schedule = __commonJS({
|
|
140
|
+
"node_modules/@netlify/functions/dist/lib/schedule.js"(exports) {
|
|
141
|
+
"use strict";
|
|
142
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
143
|
+
exports.schedule = void 0;
|
|
144
|
+
var schedule = (cron, handler) => handler;
|
|
145
|
+
exports.schedule = schedule;
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// node_modules/@netlify/functions/dist/lib/stream.js
|
|
150
|
+
var require_stream = __commonJS({
|
|
151
|
+
"node_modules/@netlify/functions/dist/lib/stream.js"(exports) {
|
|
152
|
+
"use strict";
|
|
153
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
154
|
+
exports.stream = void 0;
|
|
155
|
+
var node_stream_1 = __require("node:stream");
|
|
156
|
+
var node_util_1 = __require("node:util");
|
|
157
|
+
var pipeline = (0, node_util_1.promisify)(node_stream_1.pipeline);
|
|
158
|
+
var stream = (handler) => awslambda.streamifyResponse(async (event, responseStream, context) => {
|
|
159
|
+
const { body, ...httpResponseMetadata } = await handler(event, context);
|
|
160
|
+
const responseBody = awslambda.HttpResponseStream.from(responseStream, httpResponseMetadata);
|
|
161
|
+
if (typeof body === "undefined") {
|
|
162
|
+
responseBody.end();
|
|
163
|
+
} else if (typeof body === "string") {
|
|
164
|
+
responseBody.write(body);
|
|
165
|
+
responseBody.end();
|
|
166
|
+
} else {
|
|
167
|
+
await pipeline(body, responseBody);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
exports.stream = stream;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// node_modules/@netlify/functions/dist/function/index.js
|
|
175
|
+
var require_function = __commonJS({
|
|
176
|
+
"node_modules/@netlify/functions/dist/function/index.js"(exports) {
|
|
177
|
+
"use strict";
|
|
178
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
// node_modules/@netlify/functions/dist/main.js
|
|
183
|
+
var require_main = __commonJS({
|
|
184
|
+
"node_modules/@netlify/functions/dist/main.js"(exports) {
|
|
185
|
+
"use strict";
|
|
186
|
+
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
187
|
+
if (k2 === void 0)
|
|
188
|
+
k2 = k;
|
|
189
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
190
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
191
|
+
desc = { enumerable: true, get: function() {
|
|
192
|
+
return m[k];
|
|
193
|
+
} };
|
|
194
|
+
}
|
|
195
|
+
Object.defineProperty(o, k2, desc);
|
|
196
|
+
} : function(o, m, k, k2) {
|
|
197
|
+
if (k2 === void 0)
|
|
198
|
+
k2 = k;
|
|
199
|
+
o[k2] = m[k];
|
|
200
|
+
});
|
|
201
|
+
var __exportStar = exports && exports.__exportStar || function(m, exports2) {
|
|
202
|
+
for (var p in m)
|
|
203
|
+
if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p))
|
|
204
|
+
__createBinding(exports2, m, p);
|
|
205
|
+
};
|
|
206
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
207
|
+
exports.stream = exports.schedule = exports.purgeCache = exports.builder = void 0;
|
|
208
|
+
var builder_js_1 = require_builder();
|
|
209
|
+
Object.defineProperty(exports, "builder", { enumerable: true, get: function() {
|
|
210
|
+
return builder_js_1.builder;
|
|
211
|
+
} });
|
|
212
|
+
var purge_cache_js_1 = require_purge_cache();
|
|
213
|
+
Object.defineProperty(exports, "purgeCache", { enumerable: true, get: function() {
|
|
214
|
+
return purge_cache_js_1.purgeCache;
|
|
215
|
+
} });
|
|
216
|
+
var schedule_js_1 = require_schedule();
|
|
217
|
+
Object.defineProperty(exports, "schedule", { enumerable: true, get: function() {
|
|
218
|
+
return schedule_js_1.schedule;
|
|
219
|
+
} });
|
|
220
|
+
var stream_js_1 = require_stream();
|
|
221
|
+
Object.defineProperty(exports, "stream", { enumerable: true, get: function() {
|
|
222
|
+
return stream_js_1.stream;
|
|
223
|
+
} });
|
|
224
|
+
__exportStar(require_function(), exports);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
// src/run/revalidate.ts
|
|
229
|
+
var import_functions = __toESM(require_main(), 1);
|
|
230
|
+
var nextResponseProxy = (res) => {
|
|
231
|
+
return new Proxy(res, {
|
|
232
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
233
|
+
get(target, key) {
|
|
234
|
+
const originalValue = target[key];
|
|
235
|
+
if (key === "revalidate") {
|
|
236
|
+
return async function newRevalidate(...args) {
|
|
237
|
+
try {
|
|
238
|
+
console.debug("Purging cache for:", [args[0]]);
|
|
239
|
+
await (0, import_functions.purgeCache)({ tags: [`_N_T_${args[0]}`] });
|
|
240
|
+
} catch {
|
|
241
|
+
throw new Error(
|
|
242
|
+
`An internal error occurred while trying to purge cache for ${args[0]}}`
|
|
243
|
+
);
|
|
244
|
+
}
|
|
245
|
+
return originalValue?.apply(target, args);
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
return originalValue;
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
export {
|
|
254
|
+
nextResponseProxy
|
|
255
|
+
};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
|
|
2
|
+
const require = await (async () => {
|
|
3
|
+
const { createRequire } = await import("node:module");
|
|
4
|
+
return createRequire(import.meta.url);
|
|
5
|
+
})();
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
require_out
|
|
9
|
+
} from "./chunk-AVWFCGVE.js";
|
|
10
|
+
import {
|
|
11
|
+
__toESM
|
|
12
|
+
} from "./chunk-RSKIKBZH.js";
|
|
13
|
+
|
|
14
|
+
// src/build/content/server.ts
|
|
15
|
+
var import_fast_glob = __toESM(require_out(), 1);
|
|
16
|
+
import { existsSync } from "node:fs";
|
|
17
|
+
import { cp, mkdir, readFile, readdir, readlink, symlink, writeFile } from "node:fs/promises";
|
|
18
|
+
import { dirname, join } from "node:path";
|
|
19
|
+
var copyNextServerCode = async (ctx) => {
|
|
20
|
+
const srcDir = join(ctx.publishDir, "standalone/.next");
|
|
21
|
+
const destDir = join(ctx.serverHandlerDir, ".next");
|
|
22
|
+
const paths = await (0, import_fast_glob.default)([`*`, `server/*`, `server/chunks/*`, `server/+(app|pages)/**/*.js`], {
|
|
23
|
+
cwd: srcDir,
|
|
24
|
+
extglob: true
|
|
25
|
+
});
|
|
26
|
+
await Promise.all(
|
|
27
|
+
paths.map(async (path) => {
|
|
28
|
+
const destPath = join(destDir, path);
|
|
29
|
+
if (path === "server/middleware-manifest.json") {
|
|
30
|
+
await mkdir(dirname(destPath), { recursive: true });
|
|
31
|
+
await writeFile(destPath, getEmptyMiddlewareManifest());
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
await cp(join(srcDir, path), destPath, { recursive: true });
|
|
35
|
+
})
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
async function recreateNodeModuleSymlinks(src, dest, org) {
|
|
39
|
+
const dirents = await readdir(join(src, org || ""), { withFileTypes: true });
|
|
40
|
+
await Promise.all(
|
|
41
|
+
dirents.map(async (dirent) => {
|
|
42
|
+
if (dirent.name.startsWith("@")) {
|
|
43
|
+
return recreateNodeModuleSymlinks(src, dest, dirent.name);
|
|
44
|
+
}
|
|
45
|
+
if (dirent.isSymbolicLink()) {
|
|
46
|
+
const symlinkSrc = join(dest, org || "", dirent.name);
|
|
47
|
+
const symlinkTarget = await readlink(join(src, org || "", dirent.name));
|
|
48
|
+
const symlinkDest = join(dest, org || "", symlinkTarget);
|
|
49
|
+
if (existsSync(symlinkDest) && !existsSync(symlinkSrc)) {
|
|
50
|
+
if (org) {
|
|
51
|
+
await mkdir(join(dest, org), { recursive: true });
|
|
52
|
+
}
|
|
53
|
+
await symlink(symlinkDest, symlinkSrc);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
var copyNextDependencies = async (ctx) => {
|
|
60
|
+
const srcDir = join(ctx.publishDir, "standalone/node_modules");
|
|
61
|
+
const destDir = join(ctx.serverHandlerDir, "node_modules");
|
|
62
|
+
await cp(srcDir, destDir, { recursive: true });
|
|
63
|
+
await recreateNodeModuleSymlinks(ctx.resolve("node_modules"), destDir);
|
|
64
|
+
};
|
|
65
|
+
var writeTagsManifest = async (ctx) => {
|
|
66
|
+
const manifest = await ctx.getPrerenderManifest();
|
|
67
|
+
const routes = Object.entries(manifest.routes).map(async ([route, definition]) => {
|
|
68
|
+
let tags;
|
|
69
|
+
if (definition.dataRoute?.endsWith(".rsc")) {
|
|
70
|
+
const path = join(ctx.publishDir, `server/app/${route === "/" ? "/index" : route}.meta`);
|
|
71
|
+
try {
|
|
72
|
+
const file = await readFile(path, "utf-8");
|
|
73
|
+
const meta = JSON.parse(file);
|
|
74
|
+
tags = meta.headers["x-next-cache-tags"];
|
|
75
|
+
} catch {
|
|
76
|
+
console.log(`Unable to read cache tags for: ${path}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (definition.dataRoute?.endsWith(".json")) {
|
|
80
|
+
tags = `_N_T_${route}`;
|
|
81
|
+
}
|
|
82
|
+
if (definition.dataRoute === null) {
|
|
83
|
+
tags = definition.initialHeaders?.["x-next-cache-tags"];
|
|
84
|
+
}
|
|
85
|
+
return [route, tags];
|
|
86
|
+
});
|
|
87
|
+
await writeFile(
|
|
88
|
+
join(ctx.serverHandlerDir, ".netlify/tags-manifest.json"),
|
|
89
|
+
JSON.stringify(Object.fromEntries(await Promise.all(routes))),
|
|
90
|
+
"utf-8"
|
|
91
|
+
);
|
|
92
|
+
};
|
|
93
|
+
var getEmptyMiddlewareManifest = () => {
|
|
94
|
+
const manifest = {
|
|
95
|
+
sortedMiddleware: [],
|
|
96
|
+
middleware: {},
|
|
97
|
+
functions: {},
|
|
98
|
+
version: 2
|
|
99
|
+
};
|
|
100
|
+
return JSON.stringify(manifest);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export {
|
|
104
|
+
copyNextServerCode,
|
|
105
|
+
copyNextDependencies,
|
|
106
|
+
writeTagsManifest
|
|
107
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
|
|
2
|
+
const require = await (async () => {
|
|
3
|
+
const { createRequire } = await import("node:module");
|
|
4
|
+
return createRequire(import.meta.url);
|
|
5
|
+
})();
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
require_out
|
|
9
|
+
} from "./chunk-AVWFCGVE.js";
|
|
10
|
+
import {
|
|
11
|
+
__toESM
|
|
12
|
+
} from "./chunk-RSKIKBZH.js";
|
|
13
|
+
|
|
14
|
+
// src/build/content/prerendered.ts
|
|
15
|
+
var import_fast_glob = __toESM(require_out(), 1);
|
|
16
|
+
import { existsSync } from "node:fs";
|
|
17
|
+
import { readFile } from "node:fs/promises";
|
|
18
|
+
import { join } from "node:path";
|
|
19
|
+
var routeToFilePath = (path) => path.replace(/^\//, "") || "index";
|
|
20
|
+
var buildPagesCacheValue = async (path) => ({
|
|
21
|
+
kind: "PAGE",
|
|
22
|
+
html: await readFile(`${path}.html`, "utf-8"),
|
|
23
|
+
pageData: JSON.parse(await readFile(`${path}.json`, "utf-8"))
|
|
24
|
+
});
|
|
25
|
+
var buildAppCacheValue = async (path) => ({
|
|
26
|
+
kind: "PAGE",
|
|
27
|
+
html: await readFile(`${path}.html`, "utf-8"),
|
|
28
|
+
pageData: await readFile(`${path}.rsc`, "utf-8"),
|
|
29
|
+
...JSON.parse(await readFile(`${path}.meta`, "utf-8"))
|
|
30
|
+
});
|
|
31
|
+
var buildRouteCacheValue = async (path) => ({
|
|
32
|
+
kind: "ROUTE",
|
|
33
|
+
body: await readFile(`${path}.body`, "utf-8"),
|
|
34
|
+
...JSON.parse(await readFile(`${path}.meta`, "utf-8"))
|
|
35
|
+
});
|
|
36
|
+
var buildFetchCacheValue = async (path) => ({
|
|
37
|
+
kind: "FETCH",
|
|
38
|
+
...JSON.parse(await readFile(path, "utf-8"))
|
|
39
|
+
});
|
|
40
|
+
var copyPrerenderedContent = async (ctx) => {
|
|
41
|
+
try {
|
|
42
|
+
const manifest = await ctx.getPrerenderManifest();
|
|
43
|
+
await Promise.all(
|
|
44
|
+
Object.entries(manifest.routes).map(async ([route, meta]) => {
|
|
45
|
+
const key = routeToFilePath(route);
|
|
46
|
+
let value;
|
|
47
|
+
switch (true) {
|
|
48
|
+
case meta.dataRoute?.endsWith(".json"):
|
|
49
|
+
value = await buildPagesCacheValue(join(ctx.publishDir, "server/pages", key));
|
|
50
|
+
break;
|
|
51
|
+
case meta.dataRoute?.endsWith(".rsc"):
|
|
52
|
+
value = await buildAppCacheValue(join(ctx.publishDir, "server/app", key));
|
|
53
|
+
break;
|
|
54
|
+
case meta.dataRoute === null:
|
|
55
|
+
value = await buildRouteCacheValue(join(ctx.publishDir, "server/app", key));
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
throw new Error(`Unrecognized content: ${route}`);
|
|
59
|
+
}
|
|
60
|
+
await ctx.writeCacheEntry(key, value);
|
|
61
|
+
})
|
|
62
|
+
);
|
|
63
|
+
if (existsSync(join(ctx.publishDir, `server/app/_not-found.html`))) {
|
|
64
|
+
const key = "404";
|
|
65
|
+
const value = await buildAppCacheValue(join(ctx.publishDir, "server/app/_not-found"));
|
|
66
|
+
await ctx.writeCacheEntry(key, value);
|
|
67
|
+
}
|
|
68
|
+
} catch (error) {
|
|
69
|
+
ctx.failBuild("Failed assembling prerendered content for upload", error);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
var copyFetchContent = async (ctx) => {
|
|
73
|
+
try {
|
|
74
|
+
const paths = await (0, import_fast_glob.default)(["!(*.*)"], {
|
|
75
|
+
cwd: join(ctx.publishDir, "cache/fetch-cache"),
|
|
76
|
+
extglob: true
|
|
77
|
+
});
|
|
78
|
+
await Promise.all(
|
|
79
|
+
paths.map(async (key) => {
|
|
80
|
+
const value = await buildFetchCacheValue(join(ctx.publishDir, "cache/fetch-cache", key));
|
|
81
|
+
await ctx.writeCacheEntry(key, value);
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
} catch (error) {
|
|
85
|
+
ctx.failBuild("Failed assembling fetch content for upload", error);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export {
|
|
90
|
+
copyPrerenderedContent,
|
|
91
|
+
copyFetchContent
|
|
92
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
const require = await (async () => {
|
|
3
|
+
const { createRequire } = await import("node:module");
|
|
4
|
+
return createRequire(import.meta.url);
|
|
5
|
+
})();
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
// src/build/cache.ts
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
var saveBuildCache = async (ctx) => {
|
|
11
|
+
if (await ctx.utils.cache.save(join(ctx.publishDir, "cache"))) {
|
|
12
|
+
console.log("Next.js cache saved.");
|
|
13
|
+
} else {
|
|
14
|
+
console.log("No Next.js cache to save.");
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var restoreBuildCache = async (ctx) => {
|
|
18
|
+
if (await ctx.utils.cache.restore(join(ctx.publishDir, "cache"))) {
|
|
19
|
+
console.log("Next.js cache restored.");
|
|
20
|
+
} else {
|
|
21
|
+
console.log("No Next.js cache to restore.");
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
saveBuildCache,
|
|
27
|
+
restoreBuildCache
|
|
28
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
|
|
2
|
+
const require = await (async () => {
|
|
3
|
+
const { createRequire } = await import("node:module");
|
|
4
|
+
return createRequire(import.meta.url);
|
|
5
|
+
})();
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
// src/build/plugin-context.ts
|
|
9
|
+
import { Buffer } from "node:buffer";
|
|
10
|
+
import { readFileSync } from "node:fs";
|
|
11
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
12
|
+
import { dirname, join, resolve } from "node:path";
|
|
13
|
+
import { fileURLToPath } from "node:url";
|
|
14
|
+
var MODULE_DIR = fileURLToPath(new URL(".", import.meta.url));
|
|
15
|
+
var PLUGIN_DIR = join(MODULE_DIR, "../..");
|
|
16
|
+
var SERVER_HANDLER_NAME = "___netlify-server-handler";
|
|
17
|
+
var EDGE_HANDLER_NAME = "___netlify-edge-handler";
|
|
18
|
+
var PluginContext = class {
|
|
19
|
+
utils;
|
|
20
|
+
pluginName;
|
|
21
|
+
pluginVersion;
|
|
22
|
+
constants;
|
|
23
|
+
packageJSON;
|
|
24
|
+
/** Absolute path of the next runtime plugin directory */
|
|
25
|
+
pluginDir = PLUGIN_DIR;
|
|
26
|
+
/** Absolute path of the publish directory */
|
|
27
|
+
get publishDir() {
|
|
28
|
+
return resolve(this.constants.PUBLISH_DIR);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Absolute path of the directory that is published and deployed to the Netlify CDN
|
|
32
|
+
* Will be swapped with the publish directory
|
|
33
|
+
* `.netlify/static`
|
|
34
|
+
*/
|
|
35
|
+
get staticDir() {
|
|
36
|
+
return this.resolve(".netlify/static");
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Absolute path of the directory that will be deployed to the blob store
|
|
40
|
+
* `.netlify/blobs/deploy`
|
|
41
|
+
*/
|
|
42
|
+
get blobDir() {
|
|
43
|
+
return this.resolve(".netlify/blobs/deploy");
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Absolute path of the directory containing the files for the serverless lambda function
|
|
47
|
+
* `.netlify/functions-internal`
|
|
48
|
+
*/
|
|
49
|
+
get serverFunctionsDir() {
|
|
50
|
+
return this.resolve(".netlify/functions-internal");
|
|
51
|
+
}
|
|
52
|
+
/** Absolute path of the server handler */
|
|
53
|
+
get serverHandlerDir() {
|
|
54
|
+
return join(this.serverFunctionsDir, SERVER_HANDLER_NAME);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Absolute path of the directory containing the files for deno edge functions
|
|
58
|
+
* `.netlify/edge-functions`
|
|
59
|
+
*/
|
|
60
|
+
get edgeFunctionsDir() {
|
|
61
|
+
return this.resolve(".netlify/edge-functions");
|
|
62
|
+
}
|
|
63
|
+
/** Absolute path of the edge handler */
|
|
64
|
+
get edgeHandlerDir() {
|
|
65
|
+
return join(this.edgeFunctionsDir, EDGE_HANDLER_NAME);
|
|
66
|
+
}
|
|
67
|
+
constructor(options) {
|
|
68
|
+
this.packageJSON = JSON.parse(readFileSync(join(PLUGIN_DIR, "package.json"), "utf-8"));
|
|
69
|
+
this.pluginName = this.packageJSON.name;
|
|
70
|
+
this.pluginVersion = this.packageJSON.version;
|
|
71
|
+
this.constants = options.constants;
|
|
72
|
+
this.utils = options.utils;
|
|
73
|
+
}
|
|
74
|
+
/** Resolves a path correctly with mono repository awareness */
|
|
75
|
+
resolve(...args) {
|
|
76
|
+
return resolve(this.constants.PACKAGE_PATH || "", ...args);
|
|
77
|
+
}
|
|
78
|
+
/** Get the next prerender-manifest.json */
|
|
79
|
+
async getPrerenderManifest() {
|
|
80
|
+
return JSON.parse(await readFile(join(this.publishDir, "prerender-manifest.json"), "utf-8"));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get Next.js middleware config from the build output
|
|
84
|
+
*/
|
|
85
|
+
async getMiddlewareManifest() {
|
|
86
|
+
return JSON.parse(
|
|
87
|
+
await readFile(join(this.publishDir, "server/middleware-manifest.json"), "utf-8")
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Write a cache entry to the blob upload directory using
|
|
92
|
+
* base64 keys to avoid collisions with directories
|
|
93
|
+
*/
|
|
94
|
+
async writeCacheEntry(key, value) {
|
|
95
|
+
const path = join(this.blobDir, Buffer.from(key).toString("base64"));
|
|
96
|
+
const entry = JSON.stringify({
|
|
97
|
+
lastModified: Date.now(),
|
|
98
|
+
value
|
|
99
|
+
});
|
|
100
|
+
await mkdir(dirname(path), { recursive: true });
|
|
101
|
+
await writeFile(path, entry, "utf-8");
|
|
102
|
+
}
|
|
103
|
+
/** Fails a build with a message and an optional error */
|
|
104
|
+
failBuild(message, error) {
|
|
105
|
+
return this.utils.build.failBuild(message, error instanceof Error ? { error } : void 0);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export {
|
|
110
|
+
SERVER_HANDLER_NAME,
|
|
111
|
+
EDGE_HANDLER_NAME,
|
|
112
|
+
PluginContext
|
|
113
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
|
|
2
|
+
const require = await (async () => {
|
|
3
|
+
const { createRequire } = await import("node:module");
|
|
4
|
+
return createRequire(import.meta.url);
|
|
5
|
+
})();
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
copyNextDependencies,
|
|
9
|
+
copyNextServerCode,
|
|
10
|
+
writeTagsManifest
|
|
11
|
+
} from "./chunk-G2VRYWGL.js";
|
|
12
|
+
import {
|
|
13
|
+
require_out
|
|
14
|
+
} from "./chunk-AVWFCGVE.js";
|
|
15
|
+
import {
|
|
16
|
+
SERVER_HANDLER_NAME
|
|
17
|
+
} from "./chunk-HPGTYMVD.js";
|
|
18
|
+
import {
|
|
19
|
+
__toESM
|
|
20
|
+
} from "./chunk-RSKIKBZH.js";
|
|
21
|
+
|
|
22
|
+
// src/build/functions/server.ts
|
|
23
|
+
var import_fast_glob = __toESM(require_out(), 1);
|
|
24
|
+
import { cp, mkdir, rm, writeFile } from "fs/promises";
|
|
25
|
+
import { join } from "node:path";
|
|
26
|
+
var copyHandlerDependencies = async (ctx) => {
|
|
27
|
+
const fileList = await (0, import_fast_glob.glob)("dist/**/*", { cwd: ctx.pluginDir });
|
|
28
|
+
await Promise.all(
|
|
29
|
+
[...fileList].map(
|
|
30
|
+
(path) => cp(join(ctx.pluginDir, path), join(ctx.serverHandlerDir, path), { recursive: true })
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
var writeHandlerManifest = async (ctx) => {
|
|
35
|
+
await writeFile(
|
|
36
|
+
join(ctx.serverHandlerDir, `${SERVER_HANDLER_NAME}.json`),
|
|
37
|
+
JSON.stringify({
|
|
38
|
+
config: {
|
|
39
|
+
name: "Next.js Server Handler",
|
|
40
|
+
generator: `${ctx.pluginName}@${ctx.pluginVersion}`,
|
|
41
|
+
nodeBundler: "none",
|
|
42
|
+
includedFiles: [
|
|
43
|
+
`${SERVER_HANDLER_NAME}*`,
|
|
44
|
+
"package.json",
|
|
45
|
+
"dist/**",
|
|
46
|
+
".next/**",
|
|
47
|
+
".netlify/**",
|
|
48
|
+
"node_modules/**"
|
|
49
|
+
],
|
|
50
|
+
includedFilesBasePath: ctx.serverHandlerDir
|
|
51
|
+
},
|
|
52
|
+
version: 1
|
|
53
|
+
}),
|
|
54
|
+
"utf-8"
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
var writePackageMetadata = async (ctx) => {
|
|
58
|
+
await writeFile(join(ctx.serverHandlerDir, "package.json"), JSON.stringify({ type: "module" }));
|
|
59
|
+
};
|
|
60
|
+
var writeHandlerFile = async (ctx) => {
|
|
61
|
+
await writeFile(
|
|
62
|
+
join(ctx.serverHandlerDir, `${SERVER_HANDLER_NAME}.js`),
|
|
63
|
+
`
|
|
64
|
+
import handler from './dist/run/handlers/server.js';
|
|
65
|
+
export default handler;
|
|
66
|
+
export const config = {
|
|
67
|
+
path: '/*',
|
|
68
|
+
preferStatic: true
|
|
69
|
+
};
|
|
70
|
+
`
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
var createServerHandler = async (ctx) => {
|
|
74
|
+
await rm(ctx.serverFunctionsDir, { recursive: true, force: true });
|
|
75
|
+
await mkdir(join(ctx.serverHandlerDir, ".netlify"), { recursive: true });
|
|
76
|
+
await Promise.all([
|
|
77
|
+
copyNextServerCode(ctx),
|
|
78
|
+
copyNextDependencies(ctx),
|
|
79
|
+
writeTagsManifest(ctx),
|
|
80
|
+
copyHandlerDependencies(ctx),
|
|
81
|
+
writeHandlerManifest(ctx),
|
|
82
|
+
writePackageMetadata(ctx),
|
|
83
|
+
writeHandlerFile(ctx)
|
|
84
|
+
]);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export {
|
|
88
|
+
createServerHandler
|
|
89
|
+
};
|