@lovable.dev/vite-tanstack-config 2.19.5 → 2.21.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/dist/index.cjs CHANGED
@@ -153,7 +153,7 @@ function bundledDevCssUrlShim() {
153
153
  //#endregion
154
154
  //#region package.json
155
155
  var name = "@lovable.dev/vite-tanstack-config";
156
- var version = "2.19.5";
156
+ var version = "2.21.0";
157
157
  //#endregion
158
158
  //#region src/logging.ts
159
159
  const PACKAGE_NAME = "@lovable.dev/vite-tanstack-config";
@@ -425,6 +425,23 @@ function pinPrerenderOptions(source, pins, label) {
425
425
  }
426
426
  return result;
427
427
  }
428
+ const PRERENDER_REPORT_MARKER_OPEN = "[lovable-prerender-report]";
429
+ const PRERENDER_REPORT_MARKER_CLOSE = "[/lovable-prerender-report]";
430
+ const MAX_REPORTED_ROUTES = 50;
431
+ const MAX_REPORTED_ROUTE_LENGTH = 200;
432
+ function boundRoutes(routes) {
433
+ return routes.slice(0, MAX_REPORTED_ROUTES).map((route) => route.slice(0, MAX_REPORTED_ROUTE_LENGTH));
434
+ }
435
+ function emitPrerenderReport(attempted, rendered, skipped) {
436
+ const payload = JSON.stringify({
437
+ attempted,
438
+ rendered,
439
+ skipped: boundRoutes(skipped)
440
+ });
441
+ try {
442
+ process.stderr.write(`\n${PRERENDER_REPORT_MARKER_OPEN}\n${payload}\n${PRERENDER_REPORT_MARKER_CLOSE}\n`);
443
+ } catch {}
444
+ }
428
445
  function pinPrerenderForLovableBuild(userOptions) {
429
446
  const attempted = /* @__PURE__ */ new Set();
430
447
  const rendered = /* @__PURE__ */ new Set();
@@ -458,6 +475,14 @@ function pinPrerenderForLovableBuild(userOptions) {
458
475
  prerender: pinned
459
476
  };
460
477
  });
478
+ const spa = userOptions.spa;
479
+ if (typeof spa?.prerender?.onSuccess === "function") startOptions.spa = {
480
+ ...spa,
481
+ prerender: {
482
+ ...spa.prerender,
483
+ onSuccess: withRenderTracking(spa.prerender.onSuccess)
484
+ }
485
+ };
461
486
  return {
462
487
  startOptions,
463
488
  skipReporter: {
@@ -467,7 +492,9 @@ function pinPrerenderForLovableBuild(userOptions) {
467
492
  buildApp: {
468
493
  order: "post",
469
494
  async handler() {
495
+ if (attempted.size === 0) return;
470
496
  const skipped = [...attempted].filter((route) => !rendered.has(route));
497
+ emitPrerenderReport(attempted.size, rendered.size, skipped);
471
498
  if (skipped.length === 0) return;
472
499
  logWarning(`Prerender skipped ${skipped.length} route(s) that failed to render; they fall back to SSR: ${skipped.join(", ")}`);
473
500
  }
package/dist/index.js CHANGED
@@ -129,7 +129,7 @@ function bundledDevCssUrlShim() {
129
129
  //#endregion
130
130
  //#region package.json
131
131
  var name = "@lovable.dev/vite-tanstack-config";
132
- var version = "2.19.5";
132
+ var version = "2.21.0";
133
133
  //#endregion
134
134
  //#region src/logging.ts
135
135
  const PACKAGE_NAME = "@lovable.dev/vite-tanstack-config";
@@ -401,6 +401,23 @@ function pinPrerenderOptions(source, pins, label) {
401
401
  }
402
402
  return result;
403
403
  }
404
+ const PRERENDER_REPORT_MARKER_OPEN = "[lovable-prerender-report]";
405
+ const PRERENDER_REPORT_MARKER_CLOSE = "[/lovable-prerender-report]";
406
+ const MAX_REPORTED_ROUTES = 50;
407
+ const MAX_REPORTED_ROUTE_LENGTH = 200;
408
+ function boundRoutes(routes) {
409
+ return routes.slice(0, MAX_REPORTED_ROUTES).map((route) => route.slice(0, MAX_REPORTED_ROUTE_LENGTH));
410
+ }
411
+ function emitPrerenderReport(attempted, rendered, skipped) {
412
+ const payload = JSON.stringify({
413
+ attempted,
414
+ rendered,
415
+ skipped: boundRoutes(skipped)
416
+ });
417
+ try {
418
+ process.stderr.write(`\n${PRERENDER_REPORT_MARKER_OPEN}\n${payload}\n${PRERENDER_REPORT_MARKER_CLOSE}\n`);
419
+ } catch {}
420
+ }
404
421
  function pinPrerenderForLovableBuild(userOptions) {
405
422
  const attempted = /* @__PURE__ */ new Set();
406
423
  const rendered = /* @__PURE__ */ new Set();
@@ -434,6 +451,14 @@ function pinPrerenderForLovableBuild(userOptions) {
434
451
  prerender: pinned
435
452
  };
436
453
  });
454
+ const spa = userOptions.spa;
455
+ if (typeof spa?.prerender?.onSuccess === "function") startOptions.spa = {
456
+ ...spa,
457
+ prerender: {
458
+ ...spa.prerender,
459
+ onSuccess: withRenderTracking(spa.prerender.onSuccess)
460
+ }
461
+ };
437
462
  return {
438
463
  startOptions,
439
464
  skipReporter: {
@@ -443,7 +468,9 @@ function pinPrerenderForLovableBuild(userOptions) {
443
468
  buildApp: {
444
469
  order: "post",
445
470
  async handler() {
471
+ if (attempted.size === 0) return;
446
472
  const skipped = [...attempted].filter((route) => !rendered.has(route));
473
+ emitPrerenderReport(attempted.size, rendered.size, skipped);
447
474
  if (skipped.length === 0) return;
448
475
  logWarning(`Prerender skipped ${skipped.length} route(s) that failed to render; they fall back to SSR: ${skipped.join(", ")}`);
449
476
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovable.dev/vite-tanstack-config",
3
- "version": "2.19.5",
3
+ "version": "2.21.0",
4
4
  "description": "Vite config wrapper for Lovable TanStack Start projects",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",