@riverbankcms/sdk 0.98.0 → 0.99.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.
Files changed (120) hide show
  1. package/dist/{PreviewEditorSidebar-CG3SSJND.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-RHNGKAAU.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
  3. package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
  5. package/dist/_dts/api/src/billing.d.ts +2 -0
  6. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
  7. package/dist/_dts/api/src/endpoints.d.ts +8 -0
  8. package/dist/_dts/api/src/index.d.ts +1 -1
  9. package/dist/_dts/api/src/siteOperations.d.ts +65 -1
  10. package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
  11. package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
  12. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
  13. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -0
  14. package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
  15. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
  16. package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
  17. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
  18. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
  19. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
  20. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
  21. package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
  22. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
  23. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  24. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  25. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +17 -1
  26. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +274 -30
  27. package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
  28. package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
  29. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
  30. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
  31. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
  32. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
  33. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
  34. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
  35. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
  36. package/dist/_dts/sdk/src/client/index.d.ts +6 -0
  37. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
  38. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  39. package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
  40. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  41. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
  42. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +6 -0
  43. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
  44. package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
  45. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
  46. package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
  47. package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
  48. package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
  49. package/dist/_dts/sdk/src/test/env.d.ts +4 -0
  50. package/dist/_dts/sdk/src/version.d.ts +1 -1
  51. package/dist/_dts/site-commands/src/commands.d.ts +3 -3
  52. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  53. package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
  54. package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
  55. package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
  56. package/dist/{chunk-H24OU7WG.mjs → chunk-4HXF2QLH.mjs} +2 -2
  57. package/dist/{chunk-QPXE2OUZ.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
  58. package/dist/{chunk-PKDPQHB5.mjs → chunk-PM7HGDHM.mjs} +2 -2
  59. package/dist/{chunk-DBRI3PQF.mjs → chunk-XO34WBBP.mjs} +1383 -1143
  60. package/dist/{chunk-6WDBXCPX.mjs → chunk-YGTTEVUM.mjs} +7 -7
  61. package/dist/{chunk-V2BYFSPW.mjs → chunk-YWTCCOSF.mjs} +8 -0
  62. package/dist/cli/index.mjs +1010 -921
  63. package/dist/client/{accordion-Q2BDNL53.mjs → accordion-QSUEYL4L.mjs} +2 -2
  64. package/dist/client/{bookingForm-ZMP4P7EK.mjs → bookingForm-QYGAHPDP.mjs} +364 -300
  65. package/dist/client/bookings.mjs +697 -411
  66. package/dist/client/{carousel-LW3UXPWO.mjs → carousel-SM2LEWAU.mjs} +3 -3
  67. package/dist/client/{cart-Z6D3KS6K.mjs → cart-3N3SFKNQ.mjs} +7 -7
  68. package/dist/client/{checkout-YMT2QJQM.mjs → checkout-YFAYPKPZ.mjs} +7 -7
  69. package/dist/client/{chunk-XNTHVZ25.mjs → chunk-5DLGREUB.mjs} +1 -1
  70. package/dist/client/{chunk-SK2BMD22.mjs → chunk-CLZ7NBSP.mjs} +147 -75
  71. package/dist/client/{chunk-R4XK3CKR.mjs → chunk-CYJ3MUFP.mjs} +6 -5
  72. package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
  73. package/dist/client/{chunk-IEOECM7U.mjs → chunk-HPEQ4YWW.mjs} +28 -73
  74. package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
  75. package/dist/client/{chunk-KDP7ZRZV.mjs → chunk-IOAHWAQG.mjs} +2 -0
  76. package/dist/client/{chunk-26ZBRXFR.mjs → chunk-JTKBF3W2.mjs} +3 -3
  77. package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
  78. package/dist/client/{chunk-ET2MDQQT.mjs → chunk-R32M5HFS.mjs} +6 -6
  79. package/dist/client/{chunk-DRRQ7QSL.mjs → chunk-WEVT46PX.mjs} +3 -3
  80. package/dist/client/{chunk-HBQEAOG4.mjs → chunk-ZU65LTI3.mjs} +1 -1
  81. package/dist/client/client.mjs +1875 -1581
  82. package/dist/client/{courseRegistration-DGKCMC77.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
  83. package/dist/client/{eventCalendar-74Z2NNFM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
  84. package/dist/client/{eventCombined-GK2ODOX2.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
  85. package/dist/client/{eventDetails-MONAGT3N.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
  86. package/dist/client/{eventListing-SKGAO6PS.mjs → eventListing-TB623B6R.mjs} +9 -9
  87. package/dist/client/{eventRegistration-6KISGXRD.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
  88. package/dist/client/{form-FXPRTXHI.mjs → form-Y4U4IAXE.mjs} +3 -3
  89. package/dist/client/{headerSection-7NAN5WNB.mjs → headerSection-QSOVV5P7.mjs} +3 -3
  90. package/dist/client/hooks.mjs +115 -21
  91. package/dist/client/{locationMap-UERN74U4.mjs → locationMap-QYCAHH7H.mjs} +3 -3
  92. package/dist/client/{newsletterForm-SGWXMJ7U.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
  93. package/dist/client/{productDetail-HN3HWZQZ.mjs → productDetail-FYDMU2CE.mjs} +7 -7
  94. package/dist/client/{productList-YT22Z5UR.mjs → productList-D76CGACQ.mjs} +7 -7
  95. package/dist/client/rendering/client.mjs +1209 -975
  96. package/dist/client/rendering/islands.mjs +19 -19
  97. package/dist/client/rendering.mjs +1952 -1638
  98. package/dist/client/{shop-TKEDNWUS.mjs → shop-SOUACT5N.mjs} +7 -7
  99. package/dist/preview-next/before-render.mjs +8 -0
  100. package/dist/preview-next/client/runtime.mjs +5 -5
  101. package/dist/preview-next/middleware.mjs +8 -0
  102. package/dist/{sdk-runtime-LWNYCQF2.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
  103. package/dist/server/components.mjs +917 -765
  104. package/dist/server/config-validation.mjs +100 -19
  105. package/dist/server/config.mjs +100 -19
  106. package/dist/server/data.mjs +115 -21
  107. package/dist/server/index.mjs +59 -25
  108. package/dist/server/next.mjs +1017 -816
  109. package/dist/server/page-converter.mjs +92 -19
  110. package/dist/server/prebuild-loader.mjs +42 -23
  111. package/dist/server/prebuild.mjs +1 -1
  112. package/dist/server/rendering/server.mjs +932 -767
  113. package/dist/server/rendering.mjs +968 -776
  114. package/dist/server/routing.mjs +162 -36
  115. package/dist/server/server.mjs +156 -32
  116. package/dist/server/theme-bridge.mjs +597 -505
  117. package/dist/server/theme.mjs +5 -4
  118. package/dist/styles/index.css +499 -490
  119. package/package.json +6 -4
  120. package/dist/SdkPreviewModeRuntime-OV5PNJBB.mjs +0 -8
@@ -4307,15 +4307,16 @@ var joyStamp = defineButtonPersonality({
4307
4307
  // 700, matching the mockup's chunky button labels.
4308
4308
  typography: "heading",
4309
4309
  fontWeight: 700,
4310
+ fontSize: "text-lg",
4310
4311
  borderWidth: 2,
4311
4312
  hoverTransform: "none",
4312
4313
  hoverColor: "none"
4313
4314
  },
4314
4315
  sizes: {
4315
- sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
4316
- md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
4317
- lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
4318
- xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
4316
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-base" },
4317
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-lg" },
4318
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-xl" },
4319
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-2xl" }
4319
4320
  },
4320
4321
  variants: [
4321
4322
  {
@@ -28231,6 +28232,34 @@ ${root} {
28231
28232
  /* Order summary */
28232
28233
  --er-summary-bg: rgba(var(--tb-primary), 0.1);
28233
28234
  --er-summary-border: rgb(var(--tb-border));
28235
+
28236
+ /* Shared registration-surface mappings (issue 1174).
28237
+ Route the shared --rb-reg-* contract through this block's documented
28238
+ Tier 3 vars so existing --er-* overrides keep working unchanged. */
28239
+ --rb-reg-radius: var(--er-radius);
28240
+ --rb-reg-border: var(--er-border);
28241
+ --rb-reg-border-hover: var(--er-border-hover);
28242
+ --rb-reg-border-selected: var(--er-border-selected);
28243
+ --rb-reg-bg-selected: var(--er-payment-bg-selected);
28244
+ --rb-reg-option-bg: var(--er-control-bg);
28245
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
28246
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
28247
+ --rb-reg-on-surface: var(--er-on-surface);
28248
+ --rb-reg-on-surface-muted: var(--er-on-surface-muted);
28249
+ --rb-reg-on-surface-subtle: var(--er-on-surface-subtle);
28250
+ --rb-reg-on-surface-faint: var(--er-on-surface-faint);
28251
+ --rb-reg-check-bg: var(--er-check-bg);
28252
+ --rb-reg-check-text: var(--er-check-text);
28253
+ --rb-reg-step-active: var(--er-step-active);
28254
+ --rb-reg-step-completed: var(--er-step-completed);
28255
+ --rb-reg-step-inactive: var(--er-step-inactive);
28256
+ --rb-reg-step-text: var(--er-step-text);
28257
+ --rb-reg-step-text-active: var(--er-step-text-active);
28258
+ --rb-reg-step-connector: var(--er-step-connector);
28259
+ --rb-reg-summary-bg: var(--er-surface-muted);
28260
+ --rb-reg-summary-border: var(--er-border);
28261
+ --rb-reg-focus-ring: var(--er-focus-ring);
28262
+ --rb-reg-shell-line: var(--er-shell-line);
28234
28263
  }
28235
28264
  `;
28236
28265
  }
@@ -28363,25 +28392,40 @@ ${root} {
28363
28392
  --ab-info-bg: rgba(var(--tb-info), 0.1);
28364
28393
  --ab-info-text: rgb(var(--tb-info));
28365
28394
 
28366
- /* Loading/muted states */
28395
+ /* Muted summary state */
28367
28396
  --ab-muted-bg: rgba(var(--tb-text), 0.05);
28368
- --ab-muted-text: rgba(var(--tb-text), 0.6);
28369
- --ab-spinner-color: rgb(var(--tb-primary));
28370
28397
 
28371
- /* Form elements */
28372
- --ab-input-border: rgb(var(--tb-border));
28398
+ /* Focus ring used by shared registration-surface controls */
28373
28399
  --ab-input-focus-ring: rgba(var(--tb-primary), 0.3);
28374
28400
 
28375
- /* Buttons */
28376
- --ab-btn-primary-bg: rgb(var(--tb-primary));
28377
- --ab-btn-primary-text: rgb(var(--tb-background));
28378
- --ab-btn-primary-hover: rgba(var(--tb-primary), 0.9);
28379
- --ab-btn-secondary-border: rgb(var(--tb-border));
28380
- --ab-btn-secondary-hover: rgba(var(--tb-text), 0.05);
28381
-
28382
- /* Text opacity levels */
28383
- --ab-text-muted-opacity: 0.6;
28384
- --ab-text-faint-opacity: 0.4;
28401
+ /* Shared registration-surface mappings (issue 1174).
28402
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
28403
+ (palette tokens where no --ab-* var exists) so --ab-* overrides keep
28404
+ working as the block adopts the shared classes. */
28405
+ --rb-reg-radius: var(--ab-card-radius, var(--rb-block-radius));
28406
+ --rb-reg-border: var(--ab-card-border);
28407
+ --rb-reg-border-hover: var(--ab-card-border-hover);
28408
+ --rb-reg-border-selected: var(--ab-card-border-selected);
28409
+ --rb-reg-bg-selected: var(--ab-card-bg-selected);
28410
+ --rb-reg-option-bg: transparent;
28411
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
28412
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
28413
+ --rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
28414
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
28415
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
28416
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
28417
+ --rb-reg-check-bg: var(--ab-check-bg);
28418
+ --rb-reg-check-text: var(--ab-check-text);
28419
+ --rb-reg-step-active: rgb(var(--tb-primary));
28420
+ --rb-reg-step-completed: rgb(var(--tb-success));
28421
+ --rb-reg-step-inactive: rgb(var(--tb-mutedText));
28422
+ --rb-reg-step-text: rgb(255 255 255);
28423
+ --rb-reg-step-text-active: rgb(var(--tb-primaryText, 255 255 255));
28424
+ --rb-reg-step-connector: rgba(var(--tb-border), 0.5);
28425
+ --rb-reg-summary-bg: var(--ab-muted-bg);
28426
+ --rb-reg-summary-border: var(--ab-card-border);
28427
+ --rb-reg-focus-ring: var(--ab-input-focus-ring);
28428
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
28385
28429
  }
28386
28430
  `;
28387
28431
  }
@@ -28672,6 +28716,35 @@ ${root} {
28672
28716
  /* Summary */
28673
28717
  --cr-summary-bg: rgba(var(--tb-primary), 0.1);
28674
28718
  --cr-summary-border: rgb(var(--tb-border));
28719
+
28720
+ /* Shared registration-surface mappings (issue 1174).
28721
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
28722
+ (palette tokens where no --cr-* var exists) so existing --cr-* overrides
28723
+ keep working unchanged. */
28724
+ --rb-reg-radius: var(--rb-block-radius);
28725
+ --rb-reg-border: var(--cr-border);
28726
+ --rb-reg-border-hover: var(--cr-border-hover);
28727
+ --rb-reg-border-selected: var(--cr-border-selected);
28728
+ --rb-reg-bg-selected: var(--cr-payment-bg-selected);
28729
+ --rb-reg-option-bg: rgb(var(--tb-background));
28730
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
28731
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
28732
+ --rb-reg-on-surface: var(--cr-on-surface);
28733
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
28734
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
28735
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
28736
+ --rb-reg-check-bg: var(--cr-check-bg);
28737
+ --rb-reg-check-text: var(--cr-check-text);
28738
+ --rb-reg-step-active: var(--cr-step-active);
28739
+ --rb-reg-step-completed: var(--cr-step-completed);
28740
+ --rb-reg-step-inactive: var(--cr-step-inactive);
28741
+ --rb-reg-step-text: var(--cr-step-text);
28742
+ --rb-reg-step-text-active: var(--cr-step-text-active);
28743
+ --rb-reg-step-connector: var(--cr-step-connector);
28744
+ --rb-reg-summary-bg: var(--cr-summary-bg);
28745
+ --rb-reg-summary-border: var(--cr-summary-border);
28746
+ --rb-reg-focus-ring: var(--cr-focus-ring);
28747
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
28675
28748
  }
28676
28749
  `;
28677
28750
  }
@@ -26,33 +26,37 @@ function isPrebuildManifest(value) {
26
26
  if (typeof value.totalSize !== "number") return false;
27
27
  return true;
28
28
  }
29
+ var nodePrebuildFileSystem = {
30
+ existsSync: fs.existsSync,
31
+ readFileSync: (filePath, encoding) => fs.readFileSync(filePath, encoding)
32
+ };
29
33
  var cachedManifest = null;
30
- function loadManifest(prebuildDir) {
31
- if (cachedManifest?.dir === prebuildDir) {
34
+ function loadManifest(prebuildDir, fileSystem) {
35
+ if (cachedManifest?.dir === prebuildDir && cachedManifest.fileSystem === fileSystem) {
32
36
  return cachedManifest.manifest;
33
37
  }
34
38
  const manifestPath = path.join(prebuildDir, "manifest.json");
35
- if (!fs.existsSync(manifestPath)) {
39
+ if (!fileSystem.existsSync(manifestPath)) {
36
40
  return null;
37
41
  }
38
42
  try {
39
- const content = fs.readFileSync(manifestPath, "utf-8");
43
+ const content = fileSystem.readFileSync(manifestPath, "utf-8");
40
44
  const parsed = JSON.parse(content);
41
45
  if (!isPrebuildManifest(parsed)) return null;
42
46
  const manifest = parsed;
43
- cachedManifest = { manifest, dir: prebuildDir };
47
+ cachedManifest = { manifest, dir: prebuildDir, fileSystem };
44
48
  return manifest;
45
49
  } catch {
46
50
  return null;
47
51
  }
48
52
  }
49
- function loadJsonFile(prebuildDir, relativePath) {
53
+ function loadJsonFile(prebuildDir, relativePath, fileSystem) {
50
54
  const filePath = path.join(prebuildDir, relativePath);
51
- if (!fs.existsSync(filePath)) {
55
+ if (!fileSystem.existsSync(filePath)) {
52
56
  return null;
53
57
  }
54
58
  try {
55
- const content = fs.readFileSync(filePath, "utf-8");
59
+ const content = fileSystem.readFileSync(filePath, "utf-8");
56
60
  return JSON.parse(content);
57
61
  } catch {
58
62
  return null;
@@ -66,12 +70,12 @@ function getPrebuildAgeSec(manifest) {
66
70
  const ageMs = Date.now() - new Date(manifest.generatedAt).getTime();
67
71
  return Math.floor(ageMs / 1e3);
68
72
  }
69
- function canUsePrebuild() {
73
+ function canUsePrebuild(fileSystem = nodePrebuildFileSystem) {
70
74
  if (typeof process === "undefined" || !process.versions?.node) {
71
75
  return false;
72
76
  }
73
77
  try {
74
- return typeof fs.existsSync === "function";
78
+ return typeof fileSystem.existsSync === "function";
75
79
  } catch {
76
80
  return false;
77
81
  }
@@ -80,15 +84,16 @@ var PrebuildLoader = class {
80
84
  constructor(config) {
81
85
  this.prebuildDir = config.prebuildDir ?? DEFAULT_PREBUILD_DIR;
82
86
  this.maxPrebuildAgeSec = config.maxPrebuildAgeSec ?? DEFAULT_MAX_PREBUILD_AGE_SEC;
87
+ this.fileSystem = config.fileSystem ?? nodePrebuildFileSystem;
83
88
  }
84
89
  /**
85
90
  * Check if prebuild is available and not expired.
86
91
  */
87
92
  isAvailable() {
88
- if (!canUsePrebuild()) {
93
+ if (!canUsePrebuild(this.fileSystem)) {
89
94
  return false;
90
95
  }
91
- const manifest = loadManifest(this.prebuildDir);
96
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
92
97
  if (!manifest) {
93
98
  return false;
94
99
  }
@@ -98,11 +103,15 @@ var PrebuildLoader = class {
98
103
  * Load site data from prebuild cache.
99
104
  */
100
105
  loadSite(siteId) {
101
- const manifest = loadManifest(this.prebuildDir);
106
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
102
107
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
103
108
  return null;
104
109
  }
105
- const cacheFile = loadJsonFile(this.prebuildDir, "site.json");
110
+ const cacheFile = loadJsonFile(
111
+ this.prebuildDir,
112
+ "site.json",
113
+ this.fileSystem
114
+ );
106
115
  if (!cacheFile || cacheFile.data.site.id !== siteId) {
107
116
  return null;
108
117
  }
@@ -115,7 +124,7 @@ var PrebuildLoader = class {
115
124
  * Load page data from prebuild cache.
116
125
  */
117
126
  loadPage(siteId, pagePath) {
118
- const manifest = loadManifest(this.prebuildDir);
127
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
119
128
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
120
129
  return null;
121
130
  }
@@ -124,7 +133,11 @@ var PrebuildLoader = class {
124
133
  if (!relativePath) {
125
134
  return null;
126
135
  }
127
- const cacheFile = loadJsonFile(this.prebuildDir, relativePath);
136
+ const cacheFile = loadJsonFile(
137
+ this.prebuildDir,
138
+ relativePath,
139
+ this.fileSystem
140
+ );
128
141
  if (!cacheFile) {
129
142
  return null;
130
143
  }
@@ -146,7 +159,7 @@ var PrebuildLoader = class {
146
159
  if (params.mode === "manual" && params.entryIds?.length) {
147
160
  return null;
148
161
  }
149
- const manifest = loadManifest(this.prebuildDir);
162
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
150
163
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
151
164
  return null;
152
165
  }
@@ -155,7 +168,11 @@ var PrebuildLoader = class {
155
168
  if (!relativePath) {
156
169
  return null;
157
170
  }
158
- const cacheFile = loadJsonFile(this.prebuildDir, relativePath);
171
+ const cacheFile = loadJsonFile(
172
+ this.prebuildDir,
173
+ relativePath,
174
+ this.fileSystem
175
+ );
159
176
  if (!cacheFile) {
160
177
  return null;
161
178
  }
@@ -206,13 +223,14 @@ var PrebuildLoader = class {
206
223
  * Load navigation data from prebuild cache.
207
224
  */
208
225
  loadNavigation() {
209
- const manifest = loadManifest(this.prebuildDir);
226
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
210
227
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
211
228
  return null;
212
229
  }
213
230
  const cacheFile = loadJsonFile(
214
231
  this.prebuildDir,
215
- "navigation/menus.json"
232
+ "navigation/menus.json",
233
+ this.fileSystem
216
234
  );
217
235
  if (!cacheFile) {
218
236
  return null;
@@ -226,13 +244,14 @@ var PrebuildLoader = class {
226
244
  * Load forms data from prebuild cache.
227
245
  */
228
246
  loadForms() {
229
- const manifest = loadManifest(this.prebuildDir);
247
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
230
248
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
231
249
  return null;
232
250
  }
233
251
  const cacheFile = loadJsonFile(
234
252
  this.prebuildDir,
235
- "forms/forms.json"
253
+ "forms/forms.json",
254
+ this.fileSystem
236
255
  );
237
256
  if (!cacheFile) {
238
257
  return null;
@@ -246,7 +265,7 @@ var PrebuildLoader = class {
246
265
  * Get the manifest for inspection.
247
266
  */
248
267
  getManifest() {
249
- return loadManifest(this.prebuildDir);
268
+ return loadManifest(this.prebuildDir, this.fileSystem);
250
269
  }
251
270
  /**
252
271
  * Clear the cached manifest (for testing).
@@ -4,7 +4,7 @@ import * as path from "path";
4
4
  import * as crypto from "crypto";
5
5
 
6
6
  // src/version.ts
7
- var SDK_VERSION = "0.98.0";
7
+ var SDK_VERSION = "0.99.0";
8
8
 
9
9
  // src/constants.ts
10
10
  var PREBUILD_PAGE_SIZE = 50;