@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.
Files changed (241) hide show
  1. package/README.md +61 -17
  2. package/dist/build/cache.js +15 -0
  3. package/dist/build/content/prerendered.js +16 -0
  4. package/dist/build/content/server.js +18 -0
  5. package/dist/build/content/static.js +20 -0
  6. package/dist/build/functions/edge.js +14 -0
  7. package/dist/build/functions/server.js +16 -0
  8. package/dist/build/plugin-context.js +17 -0
  9. package/dist/esm-chunks/chunk-4AJYXTWN.js +17 -0
  10. package/dist/esm-chunks/chunk-5N2CWXSJ.js +564 -0
  11. package/dist/esm-chunks/chunk-A22224GM.js +113 -0
  12. package/dist/esm-chunks/chunk-AVWFCGVE.js +5536 -0
  13. package/dist/esm-chunks/chunk-B6QMRLBH.js +255 -0
  14. package/dist/esm-chunks/chunk-G3GM7JNF.js +92 -0
  15. package/dist/esm-chunks/chunk-GGHAQM5D.js +28 -0
  16. package/dist/esm-chunks/chunk-NOX2JUQZ.js +89 -0
  17. package/dist/esm-chunks/chunk-R4NHZWGU.js +32 -0
  18. package/dist/esm-chunks/chunk-RSKIKBZH.js +44 -0
  19. package/dist/esm-chunks/chunk-UXLNY5XK.js +86 -0
  20. package/dist/esm-chunks/chunk-VP3PT3VV.js +119 -0
  21. package/dist/esm-chunks/chunk-YZXA5QBC.js +60 -0
  22. package/dist/esm-chunks/chunk-Z7ZMLVTM.js +78 -0
  23. package/dist/index.js +66 -0
  24. package/dist/run/config.js +18 -0
  25. package/dist/run/constants.js +15 -0
  26. package/dist/run/handlers/cache.cjs +852 -0
  27. package/dist/run/handlers/server.js +3297 -0
  28. package/dist/run/headers.js +19 -0
  29. package/dist/run/next.cjs +1058 -0
  30. package/dist/run/revalidate.js +13 -0
  31. package/dist/run/systemlog.js +15 -0
  32. package/edge-runtime/README.md +29 -0
  33. package/edge-runtime/lib/headers.ts +26 -0
  34. package/edge-runtime/lib/middleware.ts +60 -0
  35. package/edge-runtime/lib/next-request.ts +59 -0
  36. package/edge-runtime/lib/response.ts +145 -0
  37. package/{src/templates/edge-shared/next-utils.ts → edge-runtime/lib/routing.ts} +64 -20
  38. package/edge-runtime/lib/util.ts +26 -0
  39. package/edge-runtime/middleware.ts +53 -0
  40. package/edge-runtime/shim/index.js +11 -0
  41. package/{src/templates → edge-runtime}/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/index.ts +1 -1
  42. package/edge-runtime/vendor/import_map.json +13 -0
  43. package/edge-runtime/vendor.ts +18 -0
  44. package/manifest.yml +1 -1
  45. package/package.json +23 -60
  46. package/index.js +0 -1
  47. package/lib/constants.js +0 -56
  48. package/lib/helpers/analysis.js +0 -115
  49. package/lib/helpers/cache.js +0 -46
  50. package/lib/helpers/compiler.js +0 -119
  51. package/lib/helpers/config.js +0 -192
  52. package/lib/helpers/dev.js +0 -20
  53. package/lib/helpers/edge.js +0 -328
  54. package/lib/helpers/files.js +0 -335
  55. package/lib/helpers/flags.js +0 -46
  56. package/lib/helpers/functions.js +0 -437
  57. package/lib/helpers/functionsMetaData.js +0 -46
  58. package/lib/helpers/matchers.js +0 -41
  59. package/lib/helpers/middlewareWatcher.js +0 -12
  60. package/lib/helpers/pack.js +0 -41
  61. package/lib/helpers/redirects.js +0 -246
  62. package/lib/helpers/types.js +0 -2
  63. package/lib/helpers/utils.js +0 -226
  64. package/lib/helpers/verification.js +0 -182
  65. package/lib/index.js +0 -194
  66. package/lib/templates/blobStorage.js +0 -30
  67. package/lib/templates/getApiHandler.js +0 -120
  68. package/lib/templates/getHandler.js +0 -201
  69. package/lib/templates/getPageResolver.js +0 -54
  70. package/lib/templates/handlerUtils.js +0 -268
  71. package/lib/templates/ipx.js +0 -13
  72. package/lib/templates/requireHooks.js +0 -105
  73. package/lib/templates/server.js +0 -159
  74. package/lib/templates/vendor.js +0 -20
  75. package/src/templates/edge/bundle.js +0 -8
  76. package/src/templates/edge/function-runtime.ts +0 -24
  77. package/src/templates/edge/imageconfig.json +0 -3
  78. package/src/templates/edge/ipx.ts +0 -5
  79. package/src/templates/edge/middleware-runtime.ts +0 -62
  80. package/src/templates/edge/next-dev.js +0 -104
  81. package/src/templates/edge/rsc-data.ts +0 -5
  82. package/src/templates/edge/shims.js +0 -77
  83. package/src/templates/edge-shared/nextConfig.json +0 -3
  84. package/src/templates/edge-shared/prerender-manifest.json +0 -7
  85. package/src/templates/edge-shared/rsc-data.ts +0 -78
  86. package/src/templates/edge-shared/utils.test.ts +0 -114
  87. package/src/templates/edge-shared/utils.ts +0 -315
  88. package/src/templates/vendor/import_map.json +0 -13
  89. /package/{src/templates/edge → edge-runtime}/matchers.json +0 -0
  90. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.134.0/fmt/colors.ts +0 -0
  91. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.134.0/testing/_diff.ts +0 -0
  92. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.134.0/testing/asserts.ts +0 -0
  93. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/_util/asserts.ts +0 -0
  94. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/_util/os.ts +0 -0
  95. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/abortable.ts +0 -0
  96. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/deadline.ts +0 -0
  97. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/debounce.ts +0 -0
  98. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/deferred.ts +0 -0
  99. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/delay.ts +0 -0
  100. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/mod.ts +0 -0
  101. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/mux_async_iterator.ts +0 -0
  102. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/pool.ts +0 -0
  103. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/retry.ts +0 -0
  104. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/async/tee.ts +0 -0
  105. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/bytes/index_of_needle.ts +0 -0
  106. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/crypto/timing_safe_equal.ts +0 -0
  107. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/datetime/to_imf.ts +0 -0
  108. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/encoding/base64.ts +0 -0
  109. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/encoding/base64url.ts +0 -0
  110. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/flags/mod.ts +0 -0
  111. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/fmt/colors.ts +0 -0
  112. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/fmt/printf.ts +0 -0
  113. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/http/cookie.ts +0 -0
  114. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_core.ts +0 -0
  115. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_events.d.ts +0 -0
  116. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_events.mjs +0 -0
  117. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_global.d.ts +0 -0
  118. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_next_tick.ts +0 -0
  119. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_process/exiting.ts +0 -0
  120. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_process/process.ts +0 -0
  121. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_process/stdio.mjs +0 -0
  122. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_process/streams.mjs +0 -0
  123. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_stream.d.ts +0 -0
  124. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_stream.mjs +0 -0
  125. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_util/_util_callbackify.ts +0 -0
  126. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/_utils.ts +0 -0
  127. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/assert.ts +0 -0
  128. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/assertion_error.ts +0 -0
  129. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/async_hooks.ts +0 -0
  130. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/buffer.ts +0 -0
  131. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/events.ts +0 -0
  132. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/buffer.d.ts +0 -0
  133. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/buffer.mjs +0 -0
  134. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/crypto/_keys.ts +0 -0
  135. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/crypto/constants.ts +0 -0
  136. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/error_codes.ts +0 -0
  137. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/errors.ts +0 -0
  138. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/fixed_queue.ts +0 -0
  139. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/hide_stack_frames.ts +0 -0
  140. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/net.ts +0 -0
  141. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/normalize_encoding.mjs +0 -0
  142. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/options.ts +0 -0
  143. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/primordials.mjs +0 -0
  144. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/process/per_thread.mjs +0 -0
  145. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/readline/callbacks.mjs +0 -0
  146. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/readline/utils.mjs +0 -0
  147. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/streams/destroy.mjs +0 -0
  148. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/streams/end-of-stream.mjs +0 -0
  149. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/streams/utils.mjs +0 -0
  150. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util/comparisons.ts +0 -0
  151. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util/debuglog.ts +0 -0
  152. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util/inspect.mjs +0 -0
  153. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util/types.ts +0 -0
  154. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/util.mjs +0 -0
  155. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal/validators.mjs +0 -0
  156. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_libuv_winerror.ts +0 -0
  157. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_listen.ts +0 -0
  158. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_node.ts +0 -0
  159. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_timingSafeEqual.ts +0 -0
  160. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_utils.ts +0 -0
  161. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/_winerror.ts +0 -0
  162. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/ares.ts +0 -0
  163. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/async_wrap.ts +0 -0
  164. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/buffer.ts +0 -0
  165. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/cares_wrap.ts +0 -0
  166. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/config.ts +0 -0
  167. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/connection_wrap.ts +0 -0
  168. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/constants.ts +0 -0
  169. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/contextify.ts +0 -0
  170. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/credentials.ts +0 -0
  171. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/crypto.ts +0 -0
  172. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/errors.ts +0 -0
  173. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/fs.ts +0 -0
  174. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/fs_dir.ts +0 -0
  175. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/fs_event_wrap.ts +0 -0
  176. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/handle_wrap.ts +0 -0
  177. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/heap_utils.ts +0 -0
  178. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/http_parser.ts +0 -0
  179. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/icu.ts +0 -0
  180. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/inspector.ts +0 -0
  181. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/js_stream.ts +0 -0
  182. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/messaging.ts +0 -0
  183. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/mod.ts +0 -0
  184. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/module_wrap.ts +0 -0
  185. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/native_module.ts +0 -0
  186. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/natives.ts +0 -0
  187. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/node_file.ts +0 -0
  188. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/node_options.ts +0 -0
  189. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/options.ts +0 -0
  190. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/os.ts +0 -0
  191. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/performance.ts +0 -0
  192. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/pipe_wrap.ts +0 -0
  193. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/process_methods.ts +0 -0
  194. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/report.ts +0 -0
  195. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/serdes.ts +0 -0
  196. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/signal_wrap.ts +0 -0
  197. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/spawn_sync.ts +0 -0
  198. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/stream_wrap.ts +0 -0
  199. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/string_decoder.ts +0 -0
  200. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/symbols.ts +0 -0
  201. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/task_queue.ts +0 -0
  202. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/tcp_wrap.ts +0 -0
  203. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/timers.ts +0 -0
  204. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/tls_wrap.ts +0 -0
  205. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/trace_events.ts +0 -0
  206. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/tty_wrap.ts +0 -0
  207. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/types.ts +0 -0
  208. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/udp_wrap.ts +0 -0
  209. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/url.ts +0 -0
  210. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/util.ts +0 -0
  211. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/uv.ts +0 -0
  212. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/v8.ts +0 -0
  213. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/worker.ts +0 -0
  214. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/internal_binding/zlib.ts +0 -0
  215. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/process.ts +0 -0
  216. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/stream.ts +0 -0
  217. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/string_decoder.ts +0 -0
  218. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/util/types.ts +0 -0
  219. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/node/util.ts +0 -0
  220. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/_constants.ts +0 -0
  221. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/_interface.ts +0 -0
  222. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/_util.ts +0 -0
  223. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/common.ts +0 -0
  224. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/glob.ts +0 -0
  225. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/mod.ts +0 -0
  226. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/posix.ts +0 -0
  227. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/separator.ts +0 -0
  228. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/path/win32.ts +0 -0
  229. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/streams/write_all.ts +0 -0
  230. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/testing/_diff.ts +0 -0
  231. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/testing/_format.ts +0 -0
  232. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/testing/asserts.ts +0 -0
  233. /package/{src/templates → edge-runtime}/vendor/deno.land/std@0.175.0/types.d.ts +0 -0
  234. /package/{src/templates → edge-runtime}/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/asyncify.js +0 -0
  235. /package/{src/templates → edge-runtime}/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.d.ts +0 -0
  236. /package/{src/templates → edge-runtime}/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.js +0 -0
  237. /package/{src/templates → edge-runtime}/vendor/deno.land/x/path_to_regexp@v6.2.1/index.ts +0 -0
  238. /package/{src/templates → edge-runtime}/vendor/esm.sh/v91/next@12.2.5/deno/dist/compiled/cookie.js +0 -0
  239. /package/{src/templates → edge-runtime}/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/request.js +0 -0
  240. /package/{src/templates → edge-runtime}/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/response.js +0 -0
  241. /package/{src/templates → edge-runtime}/vendor/raw.githubusercontent.com/worker-tools/resolvable-promise/master/index.ts +0 -0
@@ -1,315 +0,0 @@
1
- import type { Context } from 'https://edge.netlify.com'
2
- import { ElementHandlers, HTMLRewriter } from '../vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/index.ts'
3
-
4
- export interface FetchEventResult {
5
- response: Response
6
- waitUntil: Promise<any>
7
- }
8
-
9
- type NextDataTransform = <T>(data: T) => T
10
-
11
- function normalizeDataUrl(redirect: string) {
12
- // If the redirect is a data URL, we need to normalize it.
13
- // next.js code reference: https://github.com/vercel/next.js/blob/canary/packages/next/src/shared/lib/router/utils/get-next-pathname-info.ts#L46
14
- if (redirect.startsWith('/_next/data/') && redirect.includes('.json')) {
15
- const paths = redirect
16
- .replace(/^\/_next\/data\//, '')
17
- .replace(/\.json/, '')
18
- .split('/')
19
-
20
- const buildId = paths[0]
21
- redirect = paths[1] !== 'index' ? `/${paths.slice(1).join('/')}` : '/'
22
- }
23
-
24
- return redirect
25
- }
26
-
27
- /**
28
- * This is how Next handles rewritten URLs.
29
- */
30
- export function relativizeURL(url: string | string, base: string | URL) {
31
- const baseURL = typeof base === 'string' ? new URL(base) : base
32
- const relative = new URL(url, base)
33
- const origin = `${baseURL.protocol}//${baseURL.host}`
34
- return `${relative.protocol}//${relative.host}` === origin
35
- ? relative.toString().replace(origin, '')
36
- : relative.toString()
37
- }
38
-
39
- export const addMiddlewareHeaders = async (
40
- originResponse: Promise<Response> | Response,
41
- middlewareResponse: Response,
42
- ) => {
43
- // If there are extra headers, we need to add them to the response.
44
- if ([...middlewareResponse.headers.keys()].length === 0) {
45
- return originResponse
46
- }
47
- // We need to await the response to get the origin headers, then we can add the ones from middleware.
48
- const res = await originResponse
49
- const response = new Response(res.body, res)
50
- middlewareResponse.headers.forEach((value, key) => {
51
- if (key === 'set-cookie') {
52
- response.headers.append(key, value)
53
- } else {
54
- response.headers.set(key, value)
55
- }
56
- })
57
- return response
58
- }
59
-
60
- interface ResponseCookies {
61
- // This is non-standard that Next.js adds.
62
- // See github.com/vercel/next.js/blob/de08f8b3d31ef45131dad97a7d0e95fa01001167/packages/next/src/compiled/@edge-runtime/cookies/index.js#L158
63
- readonly _headers: Headers
64
- }
65
-
66
- interface MiddlewareResponse extends Response {
67
- originResponse: Response
68
- dataTransforms: NextDataTransform[]
69
- elementHandlers: Array<[selector: string, handlers: ElementHandlers]>
70
- get cookies(): ResponseCookies
71
- }
72
-
73
- interface MiddlewareRequest {
74
- request: Request
75
- context: Context
76
- originalRequest: Request
77
- next(): Promise<MiddlewareResponse>
78
- rewrite(destination: string | URL, init?: ResponseInit): Response
79
- }
80
-
81
- export interface I18NConfig {
82
- defaultLocale: string
83
- localeDetection?: false
84
- locales: string[]
85
- }
86
-
87
- export interface RequestData {
88
- geo?: {
89
- city?: string
90
- country?: string
91
- region?: string
92
- latitude?: string
93
- longitude?: string
94
- timezone?: string
95
- }
96
- headers: Record<string, string>
97
- ip?: string
98
- method: string
99
- nextConfig?: {
100
- basePath?: string
101
- i18n?: I18NConfig | null
102
- trailingSlash?: boolean
103
- }
104
- page?: {
105
- name?: string
106
- params?: { [key: string]: string }
107
- }
108
- url: string
109
- body?: ReadableStream<Uint8Array>
110
- }
111
-
112
- function isMiddlewareRequest(response: Response | MiddlewareRequest): response is MiddlewareRequest {
113
- return 'originalRequest' in response
114
- }
115
-
116
- function isMiddlewareResponse(response: Response | MiddlewareResponse): response is MiddlewareResponse {
117
- return 'dataTransforms' in response
118
- }
119
-
120
- // Next 13 supports request header mutations and has the side effect of prepending header values with 'x-middleware-request'
121
- // as part of invoking NextResponse.next() in the middleware. We need to remove that before sending the response the user
122
- // as the code that removes it in Next isn't run based on how we handle the middleware
123
- //
124
- // Related Next.js code:
125
- // * https://github.com/vercel/next.js/blob/68d06fe015b28d8f81da52ca107a5f4bd72ab37c/packages/next/server/next-server.ts#L1918-L1928
126
- // * https://github.com/vercel/next.js/blob/43c9d8940dc42337dd2f7d66aa90e6abf952278e/packages/next/server/web/spec-extension/response.ts#L10-L27
127
- export function updateModifiedHeaders(requestHeaders: Headers, responseHeaders: Headers) {
128
- const overriddenHeaders = responseHeaders.get('x-middleware-override-headers')
129
-
130
- if (!overriddenHeaders) {
131
- return
132
- }
133
-
134
- const headersToUpdate = overriddenHeaders.split(',').map((header) => header.trim())
135
-
136
- for (const header of headersToUpdate) {
137
- const oldHeaderKey = 'x-middleware-request-' + header
138
- const headerValue = responseHeaders.get(oldHeaderKey) || ''
139
-
140
- requestHeaders.set(header, headerValue)
141
- responseHeaders.delete(oldHeaderKey)
142
- }
143
- responseHeaders.delete('x-middleware-override-headers')
144
- }
145
-
146
- export const buildNextRequest = (
147
- request: Request,
148
- context: Context,
149
- nextConfig?: RequestData['nextConfig'],
150
- ): RequestData => {
151
- const { url, method, body, headers } = request
152
-
153
- const { country, subdivision, city, latitude, longitude, timezone } = context.geo
154
-
155
- const geo: RequestData['geo'] = {
156
- country: country?.code,
157
- region: subdivision?.code,
158
- city,
159
- latitude: latitude?.toString(),
160
- longitude: longitude?.toString(),
161
- timezone,
162
- }
163
-
164
- return {
165
- headers: Object.fromEntries(headers.entries()),
166
- geo,
167
- url,
168
- method,
169
- ip: context.ip,
170
- body: body ?? undefined,
171
- nextConfig,
172
- }
173
- }
174
- export const buildResponse = async ({
175
- result,
176
- request,
177
- context,
178
- }: {
179
- result: FetchEventResult
180
- request: Request
181
- context: Context
182
- }) => {
183
- updateModifiedHeaders(request.headers, result.response.headers)
184
-
185
- // They've returned the MiddlewareRequest directly, so we'll call `next()` for them.
186
- if (isMiddlewareRequest(result.response)) {
187
- result.response = await result.response.next()
188
- }
189
- if (isMiddlewareResponse(result.response)) {
190
- const { response } = result
191
- if (request.method === 'HEAD' || request.method === 'OPTIONS') {
192
- return response.originResponse
193
- }
194
-
195
- // NextResponse doesn't set cookies onto the originResponse, so we need to copy them over
196
- // In some cases, it's possible there are no headers set. See https://github.com/netlify/pod-ecosystem-frameworks/issues/475
197
- if (response.cookies._headers?.has('set-cookie')) {
198
- response.originResponse.headers.set('set-cookie', response.cookies._headers.get('set-cookie')!)
199
- }
200
-
201
- // If it's JSON we don't need to use the rewriter, we can just parse it
202
- if (response.originResponse.headers.get('content-type')?.includes('application/json')) {
203
- const props = await response.originResponse.json()
204
- const transformed = response.dataTransforms.reduce((prev, transform) => {
205
- return transform(prev)
206
- }, props)
207
- const body = JSON.stringify(transformed)
208
- const headers = new Headers(response.headers)
209
- headers.set('content-length', String(body.length))
210
- return new Response(body, { ...response, headers })
211
- }
212
- // This var will hold the contents of the script tag
213
- let buffer = ''
214
- // Create an HTMLRewriter that matches the Next data script tag
215
- const rewriter = new HTMLRewriter()
216
-
217
- if (response.dataTransforms.length > 0) {
218
- rewriter.on('script[id="__NEXT_DATA__"]', {
219
- text(textChunk) {
220
- // Grab all the chunks in the Next data script tag
221
- buffer += textChunk.text
222
- if (textChunk.lastInTextNode) {
223
- try {
224
- // When we have all the data, try to parse it as JSON
225
- const data = JSON.parse(buffer.trim())
226
- // Apply all of the transforms to the props
227
- const props = response.dataTransforms.reduce((prev, transform) => transform(prev), data.props)
228
- // Replace the data with the transformed props
229
- // With `html: true` the input is treated as raw HTML
230
- // @see https://developers.cloudflare.com/workers/runtime-apis/html-rewriter/#global-types
231
- textChunk.replace(JSON.stringify({ ...data, props }), { html: true })
232
- } catch (err) {
233
- console.log('Could not parse', err)
234
- }
235
- } else {
236
- // Remove the chunk after we've appended it to the buffer
237
- textChunk.remove()
238
- }
239
- },
240
- })
241
- }
242
-
243
- if (response.elementHandlers.length > 0) {
244
- response.elementHandlers.forEach(([selector, handlers]) => rewriter.on(selector, handlers))
245
- }
246
- return rewriter.transform(response.originResponse)
247
- }
248
- const res = new Response(result.response.body, result.response)
249
- request.headers.set('x-nf-next-middleware', 'skip')
250
-
251
- const rewrite = res.headers.get('x-middleware-rewrite')
252
-
253
- // Data requests (i.e. requests for /_next/data ) need special handling
254
- const isDataReq = request.headers.get('x-nextjs-data')
255
-
256
- if (rewrite) {
257
- const rewriteUrl = new URL(rewrite, request.url)
258
- const baseUrl = new URL(request.url)
259
- const relativeUrl = relativizeURL(rewrite, request.url)
260
-
261
- // Data requests might be rewritten to an external URL
262
- // This header tells the client router the redirect target, and if it's external then it will do a full navigation
263
- if (isDataReq) {
264
- res.headers.set('x-nextjs-rewrite', relativeUrl)
265
- }
266
- if (rewriteUrl.hostname !== baseUrl.hostname) {
267
- // Netlify Edge Functions don't support proxying to external domains, but Next middleware does
268
- const proxied = fetch(new Request(rewriteUrl.toString(), request))
269
- return addMiddlewareHeaders(proxied, res)
270
- }
271
- res.headers.set('x-middleware-rewrite', relativeUrl)
272
-
273
- request.headers.set('x-original-path', new URL(request.url, `http://n`).pathname)
274
- request.headers.set('x-middleware-rewrite', rewrite)
275
-
276
- return addMiddlewareHeaders(context.rewrite(rewrite), res)
277
- }
278
-
279
- const redirect = res.headers.get('Location')
280
-
281
- // Data requests shouldn;t automatically redirect in the browser (they might be HTML pages): they're handled by the router
282
- if (redirect && isDataReq) {
283
- res.headers.delete('location')
284
- res.headers.set('x-nextjs-redirect', relativizeURL(redirect, request.url))
285
- }
286
-
287
- const nextRedirect = res.headers.get('x-nextjs-redirect')
288
-
289
- if (nextRedirect && isDataReq) {
290
- res.headers.set('x-nextjs-redirect', normalizeDataUrl(nextRedirect))
291
- }
292
-
293
- if (res.headers.get('x-middleware-next') === '1') {
294
- return addMiddlewareHeaders(context.next(), res)
295
- }
296
- return res
297
- }
298
-
299
- export const redirectTrailingSlash = (url: URL, trailingSlash: boolean): Response | undefined => {
300
- const { pathname } = url
301
- if (pathname === '/') {
302
- return
303
- }
304
- if (!trailingSlash && pathname.endsWith('/')) {
305
- url.pathname = pathname.slice(0, -1)
306
- return Response.redirect(url, 308)
307
- }
308
- // Add a slash, unless there's a file extension
309
- if (trailingSlash && !pathname.endsWith('/') && !pathname.split('/').pop()?.includes('.')) {
310
- url.pathname = `${pathname}/`
311
- return Response.redirect(url, 308)
312
- }
313
- }
314
-
315
- export const isFunction = (f: unknown) => Boolean(f) && typeof f === 'function'
@@ -1,13 +0,0 @@
1
- {
2
- "scopes": {
3
- "../": {
4
- "https://ghuc.cc/worker-tools/resolvable-promise/index.ts": "./raw.githubusercontent.com/worker-tools/resolvable-promise/master/index.ts",
5
- "https://deno.land/": "./deno.land/",
6
- "https://esm.sh/": "./esm.sh/",
7
- "https://raw.githubusercontent.com/": "./raw.githubusercontent.com/"
8
- },
9
- "./esm.sh/": {
10
- "/v91/next@12.2.5/deno/dist/compiled/cookie.js": "./esm.sh/v91/next@12.2.5/deno/dist/compiled/cookie.js"
11
- }
12
- }
13
- }