@netlify/plugin-nextjs 5.9.2 → 5.9.3-background-debug-logs.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.
@@ -19,7 +19,7 @@ var nextResponseProxy = (res, requestContext) => {
19
19
  requestContext.didPagesRouterOnDemandRevalidate = true;
20
20
  const result = originalValue.apply(target, args);
21
21
  if (result && isPromise(result)) {
22
- requestContext.trackBackgroundWork(result);
22
+ requestContext.trackBackgroundWork(result, "res.revalidate");
23
23
  }
24
24
  return result;
25
25
  };
@@ -103,13 +103,22 @@ init_internal();
103
103
  // src/run/handlers/request-context.cts
104
104
  function createRequestContext(request, context) {
105
105
  const backgroundWorkPromises = [];
106
+ let backgroundWorkCounter = 0;
106
107
  return {
107
108
  captureServerTiming: request?.headers.has("x-next-debug-logging") ?? false,
108
- trackBackgroundWork: (promise) => {
109
+ trackBackgroundWork: (promise, description) => {
110
+ backgroundWorkCounter += 1;
111
+ const counter = backgroundWorkCounter;
112
+ const label = `background #${counter} - ${description ?? "unknown"} - ${context?.requestId}`;
113
+ const start = Date.now();
114
+ console.log(`Start ${label}`);
115
+ const trackedPromise = promise.finally(() => {
116
+ console.log(`End ${label} - ${(Date.now() - start) / 1e3}s`);
117
+ });
109
118
  if (context?.waitUntil) {
110
- context.waitUntil(promise);
119
+ context.waitUntil(trackedPromise);
111
120
  } else {
112
- backgroundWorkPromises.push(promise);
121
+ backgroundWorkPromises.push(trackedPromise);
113
122
  }
114
123
  },
115
124
  get backgroundWorkPromise() {
@@ -6,7 +6,7 @@
6
6
 
7
7
  import {
8
8
  getRequestContext
9
- } from "./chunk-LVXJQ2G2.js";
9
+ } from "./chunk-FB56KFLR.js";
10
10
  import {
11
11
  wrapTracer
12
12
  } from "./chunk-5QSXBV7L.js";
@@ -6,10 +6,10 @@
6
6
 
7
7
  import {
8
8
  getTracer
9
- } from "./chunk-NEZW7TGG.js";
9
+ } from "./chunk-PG4KVN6X.js";
10
10
  import {
11
11
  getRequestContext
12
- } from "./chunk-LVXJQ2G2.js";
12
+ } from "./chunk-FB56KFLR.js";
13
13
  import {
14
14
  getRegionalBlobStore
15
15
  } from "./chunk-K4RDUZYO.js";
@@ -490,7 +490,10 @@ ResponseCache.prototype.get = function get(...getArgs) {
490
490
  const workPromise = fn(...workFnArgs);
491
491
  const requestContext = getRequestContext();
492
492
  if (requestContext && workPromise instanceof Promise) {
493
- requestContext.trackBackgroundWork(workPromise);
493
+ requestContext.trackBackgroundWork(
494
+ workPromise,
495
+ `responseCache batcher ${JSON.stringify(key)}`
496
+ );
494
497
  }
495
498
  return await workPromise;
496
499
  };
@@ -505,7 +508,10 @@ ResponseCache.prototype.get = function get(...getArgs) {
505
508
  const workPromise = new Promise((_resolve) => {
506
509
  backgroundWork.set(key, _resolve);
507
510
  });
508
- requestContext.trackBackgroundWork(workPromise);
511
+ requestContext.trackBackgroundWork(
512
+ workPromise,
513
+ `responseCache pendingResponses ${JSON.stringify(key)}`
514
+ );
509
515
  }
510
516
  return originalPendingResponsesSet.call(this.pendingResponses, key, value);
511
517
  };
@@ -8,7 +8,7 @@ import "./chunk-OEQOKJGE.js";
8
8
 
9
9
  // package.json
10
10
  var name = "@netlify/plugin-nextjs";
11
- var version = "5.9.2";
11
+ var version = "5.9.3-background-debug-logs.0";
12
12
  var description = "Run Next.js seamlessly on Netlify";
13
13
  var main = "./dist/index.js";
14
14
  var type = "module";
package/dist/index.js CHANGED
@@ -4,18 +4,9 @@
4
4
  return createRequire(import.meta.url);
5
5
  })();
6
6
 
7
- import {
8
- clearStaleEdgeHandlers,
9
- createEdgeHandlers
10
- } from "./esm-chunks/chunk-HGXG447M.js";
11
- import {
12
- clearStaleServerHandlers,
13
- createServerHandler
14
- } from "./esm-chunks/chunk-DLVROEVU.js";
15
7
  import {
16
8
  copyPrerenderedContent
17
9
  } from "./esm-chunks/chunk-J4D25YDX.js";
18
- import "./esm-chunks/chunk-IJZEDP6B.js";
19
10
  import {
20
11
  copyStaticAssets,
21
12
  copyStaticContent,
@@ -23,6 +14,15 @@ import {
23
14
  publishStaticDir,
24
15
  unpublishStaticDir
25
16
  } from "./esm-chunks/chunk-NTLBFRPA.js";
17
+ import {
18
+ clearStaleEdgeHandlers,
19
+ createEdgeHandlers
20
+ } from "./esm-chunks/chunk-HGXG447M.js";
21
+ import {
22
+ clearStaleServerHandlers,
23
+ createServerHandler
24
+ } from "./esm-chunks/chunk-DLVROEVU.js";
25
+ import "./esm-chunks/chunk-IJZEDP6B.js";
26
26
  import {
27
27
  wrapTracer
28
28
  } from "./esm-chunks/chunk-5QSXBV7L.js";
@@ -203,7 +203,7 @@ var import_constants = require("next/dist/lib/constants.js");
203
203
 
204
204
  // package.json
205
205
  var name = "@netlify/plugin-nextjs";
206
- var version = "5.9.2";
206
+ var version = "5.9.3-background-debug-logs.0";
207
207
 
208
208
  // src/shared/cache-types.cts
209
209
  var isCachedPageValue = (value) => value.kind === "PAGE" || value.kind === "PAGES";
@@ -2022,7 +2022,8 @@ var NetlifyCacheHandler = class {
2022
2022
  requestContext.trackBackgroundWork(
2023
2023
  purgeCache({ tags, userAgent: purgeCacheUserAgent }).catch((error) => {
2024
2024
  getLogger().withError(error).error(`[NetlifyCacheHandler]: Purging the cache for tag ${tag} failed`);
2025
- })
2025
+ }),
2026
+ `cdn purge after page router .revalidate ${tag}`
2026
2027
  );
2027
2028
  }
2028
2029
  }
@@ -2033,7 +2034,10 @@ var NetlifyCacheHandler = class {
2033
2034
  const revalidateTagPromise = this.doRevalidateTag(tagOrTags, ...args);
2034
2035
  const requestContext = getRequestContext();
2035
2036
  if (requestContext) {
2036
- requestContext.trackBackgroundWork(revalidateTagPromise);
2037
+ requestContext.trackBackgroundWork(
2038
+ revalidateTagPromise,
2039
+ `revalidateTag ${JSON.stringify(tagOrTags)}`
2040
+ );
2037
2041
  }
2038
2042
  return revalidateTagPromise;
2039
2043
  }
@@ -123,13 +123,22 @@ init_internal();
123
123
  // src/run/handlers/request-context.cts
124
124
  function createRequestContext(request, context) {
125
125
  const backgroundWorkPromises = [];
126
+ let backgroundWorkCounter = 0;
126
127
  return {
127
128
  captureServerTiming: request?.headers.has("x-next-debug-logging") ?? false,
128
- trackBackgroundWork: (promise) => {
129
+ trackBackgroundWork: (promise, description) => {
130
+ backgroundWorkCounter += 1;
131
+ const counter = backgroundWorkCounter;
132
+ const label = `background #${counter} - ${description ?? "unknown"} - ${context?.requestId}`;
133
+ const start = Date.now();
134
+ console.log(`Start ${label}`);
135
+ const trackedPromise = promise.finally(() => {
136
+ console.log(`End ${label} - ${(Date.now() - start) / 1e3}s`);
137
+ });
129
138
  if (context?.waitUntil) {
130
- context.waitUntil(promise);
139
+ context.waitUntil(trackedPromise);
131
140
  } else {
132
- backgroundWorkPromises.push(promise);
141
+ backgroundWorkPromises.push(trackedPromise);
133
142
  }
134
143
  },
135
144
  get backgroundWorkPromise() {
@@ -6,12 +6,12 @@
6
6
 
7
7
  import {
8
8
  getTracer
9
- } from "../../esm-chunks/chunk-NEZW7TGG.js";
9
+ } from "../../esm-chunks/chunk-PG4KVN6X.js";
10
10
  import {
11
11
  createRequestContext,
12
12
  getLogger,
13
13
  getRequestContext
14
- } from "../../esm-chunks/chunk-LVXJQ2G2.js";
14
+ } from "../../esm-chunks/chunk-FB56KFLR.js";
15
15
  import {
16
16
  adjustDateHeader,
17
17
  setCacheControlHeaders,
@@ -22,7 +22,7 @@ import {
22
22
  import "../../esm-chunks/chunk-K4RDUZYO.js";
23
23
  import {
24
24
  nextResponseProxy
25
- } from "../../esm-chunks/chunk-XS27YRA5.js";
25
+ } from "../../esm-chunks/chunk-5N54G5SN.js";
26
26
  import "../../esm-chunks/chunk-5QSXBV7L.js";
27
27
  import "../../esm-chunks/chunk-GNGHTHMQ.js";
28
28
  import "../../esm-chunks/chunk-TYCYFZ22.js";
@@ -3118,13 +3118,16 @@ function setupWaitUntil() {
3118
3118
  ;
3119
3119
  globalThis[NEXT_REQUEST_CONTEXT_SYMBOL] = {
3120
3120
  get() {
3121
- return { waitUntil: getRequestContext()?.trackBackgroundWork };
3121
+ const trackBackgroundWork = getRequestContext()?.trackBackgroundWork;
3122
+ return {
3123
+ waitUntil: trackBackgroundWork ? (promise) => trackBackgroundWork(promise, "after()") : void 0
3124
+ };
3122
3125
  }
3123
3126
  };
3124
3127
  }
3125
3128
 
3126
3129
  // src/run/handlers/server.ts
3127
- var nextImportPromise = import("../../esm-chunks/next-H2VMRX5P.js");
3130
+ var nextImportPromise = import("../../esm-chunks/next-FWMVEHSM.js");
3128
3131
  setupWaitUntil();
3129
3132
  var nextHandler;
3130
3133
  var nextConfig;
@@ -3141,7 +3144,10 @@ var disableFaultyTransferEncodingHandling = (res) => {
3141
3144
  return originalStoreHeader.call(this, firstLine, headers);
3142
3145
  };
3143
3146
  };
3144
- var server_default = async (request) => {
3147
+ var server_default = async (request, context) => {
3148
+ const label = `response - ${request.url} - ${context.requestId}`;
3149
+ const start = Date.now();
3150
+ console.log(`Start ${label}`);
3145
3151
  const tracer = getTracer();
3146
3152
  if (!nextHandler) {
3147
3153
  await tracer.withActiveSpan("initialize next server", async () => {
@@ -3196,6 +3202,7 @@ var server_default = async (request) => {
3196
3202
  const keepOpenUntilNextFullyRendered = new TransformStream({
3197
3203
  async flush() {
3198
3204
  await nextHandlerPromise;
3205
+ console.log(`End ${label} - ${(Date.now() - start) / 1e3}s`);
3199
3206
  res.emit("close");
3200
3207
  await requestContext.backgroundWorkPromise;
3201
3208
  }
@@ -6,7 +6,7 @@
6
6
 
7
7
  import {
8
8
  getLogger
9
- } from "../../esm-chunks/chunk-LVXJQ2G2.js";
9
+ } from "../../esm-chunks/chunk-FB56KFLR.js";
10
10
  import {
11
11
  esm_exports,
12
12
  init_esm
@@ -68868,7 +68868,7 @@ var import_sdk_trace_node = __toESM(require_src20(), 1);
68868
68868
  var import_semantic_conventions = __toESM(require_src(), 1);
68869
68869
  var {
68870
68870
  default: { version, name }
68871
- } = await import("../../esm-chunks/package-36IBNZ37.js");
68871
+ } = await import("../../esm-chunks/package-W4QAAZFL.js");
68872
68872
  var sdk = new import_sdk_node.NodeSDK({
68873
68873
  resource: new import_resources.Resource({
68874
68874
  [import_semantic_conventions.SEMRESATTRS_SERVICE_NAME]: name,
@@ -143,7 +143,10 @@ function setupWaitUntil() {
143
143
  ;
144
144
  globalThis[NEXT_REQUEST_CONTEXT_SYMBOL] = {
145
145
  get() {
146
- return { waitUntil: getRequestContext()?.trackBackgroundWork };
146
+ const trackBackgroundWork = getRequestContext()?.trackBackgroundWork;
147
+ return {
148
+ waitUntil: trackBackgroundWork ? (promise) => trackBackgroundWork(promise, "after()") : void 0
149
+ };
147
150
  }
148
151
  };
149
152
  }
package/dist/run/next.cjs CHANGED
@@ -2119,7 +2119,10 @@ ResponseCache.prototype.get = function get(...getArgs) {
2119
2119
  const workPromise = fn(...workFnArgs);
2120
2120
  const requestContext = getRequestContext();
2121
2121
  if (requestContext && workPromise instanceof Promise) {
2122
- requestContext.trackBackgroundWork(workPromise);
2122
+ requestContext.trackBackgroundWork(
2123
+ workPromise,
2124
+ `responseCache batcher ${JSON.stringify(key)}`
2125
+ );
2123
2126
  }
2124
2127
  return await workPromise;
2125
2128
  };
@@ -2134,7 +2137,10 @@ ResponseCache.prototype.get = function get(...getArgs) {
2134
2137
  const workPromise = new Promise((_resolve) => {
2135
2138
  backgroundWork.set(key, _resolve);
2136
2139
  });
2137
- requestContext.trackBackgroundWork(workPromise);
2140
+ requestContext.trackBackgroundWork(
2141
+ workPromise,
2142
+ `responseCache pendingResponses ${JSON.stringify(key)}`
2143
+ );
2138
2144
  }
2139
2145
  return originalPendingResponsesSet.call(this.pendingResponses, key, value);
2140
2146
  };
@@ -6,7 +6,7 @@
6
6
 
7
7
  import {
8
8
  nextResponseProxy
9
- } from "../esm-chunks/chunk-XS27YRA5.js";
9
+ } from "../esm-chunks/chunk-5N54G5SN.js";
10
10
  import "../esm-chunks/chunk-OEQOKJGE.js";
11
11
  export {
12
12
  nextResponseProxy
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netlify/plugin-nextjs",
3
- "version": "5.9.2",
3
+ "version": "5.9.3-background-debug-logs.0",
4
4
  "description": "Run Next.js seamlessly on Netlify",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",