@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.
- package/dist/{PreviewEditorSidebar-CG3SSJND.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
- package/dist/{PreviewEditorUI-RHNGKAAU.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
- package/dist/_dts/api/src/billing.d.ts +2 -0
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/endpoints.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/siteOperations.d.ts +65 -1
- package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
- package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
- package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
- package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/utils/date-formatting.d.ts +17 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +274 -30
- package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
- package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
- package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
- package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
- package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
- package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
- package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
- package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
- package/dist/_dts/sdk/src/client/index.d.ts +6 -0
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
- package/dist/_dts/sdk/src/next/types.d.ts +19 -0
- package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +6 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
- package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
- package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
- package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
- package/dist/_dts/sdk/src/test/env.d.ts +4 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +3 -3
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
- package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
- package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
- package/dist/{chunk-H24OU7WG.mjs → chunk-4HXF2QLH.mjs} +2 -2
- package/dist/{chunk-QPXE2OUZ.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
- package/dist/{chunk-PKDPQHB5.mjs → chunk-PM7HGDHM.mjs} +2 -2
- package/dist/{chunk-DBRI3PQF.mjs → chunk-XO34WBBP.mjs} +1383 -1143
- package/dist/{chunk-6WDBXCPX.mjs → chunk-YGTTEVUM.mjs} +7 -7
- package/dist/{chunk-V2BYFSPW.mjs → chunk-YWTCCOSF.mjs} +8 -0
- package/dist/cli/index.mjs +1010 -921
- package/dist/client/{accordion-Q2BDNL53.mjs → accordion-QSUEYL4L.mjs} +2 -2
- package/dist/client/{bookingForm-ZMP4P7EK.mjs → bookingForm-QYGAHPDP.mjs} +364 -300
- package/dist/client/bookings.mjs +697 -411
- package/dist/client/{carousel-LW3UXPWO.mjs → carousel-SM2LEWAU.mjs} +3 -3
- package/dist/client/{cart-Z6D3KS6K.mjs → cart-3N3SFKNQ.mjs} +7 -7
- package/dist/client/{checkout-YMT2QJQM.mjs → checkout-YFAYPKPZ.mjs} +7 -7
- package/dist/client/{chunk-XNTHVZ25.mjs → chunk-5DLGREUB.mjs} +1 -1
- package/dist/client/{chunk-SK2BMD22.mjs → chunk-CLZ7NBSP.mjs} +147 -75
- package/dist/client/{chunk-R4XK3CKR.mjs → chunk-CYJ3MUFP.mjs} +6 -5
- package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
- package/dist/client/{chunk-IEOECM7U.mjs → chunk-HPEQ4YWW.mjs} +28 -73
- package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
- package/dist/client/{chunk-KDP7ZRZV.mjs → chunk-IOAHWAQG.mjs} +2 -0
- package/dist/client/{chunk-26ZBRXFR.mjs → chunk-JTKBF3W2.mjs} +3 -3
- package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
- package/dist/client/{chunk-ET2MDQQT.mjs → chunk-R32M5HFS.mjs} +6 -6
- package/dist/client/{chunk-DRRQ7QSL.mjs → chunk-WEVT46PX.mjs} +3 -3
- package/dist/client/{chunk-HBQEAOG4.mjs → chunk-ZU65LTI3.mjs} +1 -1
- package/dist/client/client.mjs +1875 -1581
- package/dist/client/{courseRegistration-DGKCMC77.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
- package/dist/client/{eventCalendar-74Z2NNFM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
- package/dist/client/{eventCombined-GK2ODOX2.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
- package/dist/client/{eventDetails-MONAGT3N.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
- package/dist/client/{eventListing-SKGAO6PS.mjs → eventListing-TB623B6R.mjs} +9 -9
- package/dist/client/{eventRegistration-6KISGXRD.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
- package/dist/client/{form-FXPRTXHI.mjs → form-Y4U4IAXE.mjs} +3 -3
- package/dist/client/{headerSection-7NAN5WNB.mjs → headerSection-QSOVV5P7.mjs} +3 -3
- package/dist/client/hooks.mjs +115 -21
- package/dist/client/{locationMap-UERN74U4.mjs → locationMap-QYCAHH7H.mjs} +3 -3
- package/dist/client/{newsletterForm-SGWXMJ7U.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
- package/dist/client/{productDetail-HN3HWZQZ.mjs → productDetail-FYDMU2CE.mjs} +7 -7
- package/dist/client/{productList-YT22Z5UR.mjs → productList-D76CGACQ.mjs} +7 -7
- package/dist/client/rendering/client.mjs +1209 -975
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +1952 -1638
- package/dist/client/{shop-TKEDNWUS.mjs → shop-SOUACT5N.mjs} +7 -7
- package/dist/preview-next/before-render.mjs +8 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +8 -0
- package/dist/{sdk-runtime-LWNYCQF2.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
- package/dist/server/components.mjs +917 -765
- package/dist/server/config-validation.mjs +100 -19
- package/dist/server/config.mjs +100 -19
- package/dist/server/data.mjs +115 -21
- package/dist/server/index.mjs +59 -25
- package/dist/server/next.mjs +1017 -816
- package/dist/server/page-converter.mjs +92 -19
- package/dist/server/prebuild-loader.mjs +42 -23
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +932 -767
- package/dist/server/rendering.mjs +968 -776
- package/dist/server/routing.mjs +162 -36
- package/dist/server/server.mjs +156 -32
- package/dist/server/theme-bridge.mjs +597 -505
- package/dist/server/theme.mjs +5 -4
- package/dist/styles/index.css +499 -490
- package/package.json +6 -4
- 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-
|
|
4316
|
-
md: { padding: "0.875rem 1.75rem", fontSize: "text-
|
|
4317
|
-
lg: { padding: "1.125rem 2.25rem", fontSize: "text-
|
|
4318
|
-
xl: { padding: "1.25rem 2.75rem", fontSize: "text-
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
28376
|
-
|
|
28377
|
-
|
|
28378
|
-
|
|
28379
|
-
--
|
|
28380
|
-
--
|
|
28381
|
-
|
|
28382
|
-
|
|
28383
|
-
--
|
|
28384
|
-
--
|
|
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 (!
|
|
39
|
+
if (!fileSystem.existsSync(manifestPath)) {
|
|
36
40
|
return null;
|
|
37
41
|
}
|
|
38
42
|
try {
|
|
39
|
-
const content =
|
|
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 (!
|
|
55
|
+
if (!fileSystem.existsSync(filePath)) {
|
|
52
56
|
return null;
|
|
53
57
|
}
|
|
54
58
|
try {
|
|
55
|
-
const content =
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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).
|