@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
@@ -1791,6 +1791,7 @@ export type Database = {
1791
1791
  status: string;
1792
1792
  stripe_customer_id: string;
1793
1793
  stripe_subscription_id: string;
1794
+ subscription_origin: string | null;
1794
1795
  trial_ends_at: string | null;
1795
1796
  updated_at: string;
1796
1797
  user_id: string;
@@ -1806,6 +1807,7 @@ export type Database = {
1806
1807
  status: string;
1807
1808
  stripe_customer_id: string;
1808
1809
  stripe_subscription_id: string;
1810
+ subscription_origin?: string | null;
1809
1811
  trial_ends_at?: string | null;
1810
1812
  updated_at?: string;
1811
1813
  user_id: string;
@@ -1821,6 +1823,7 @@ export type Database = {
1821
1823
  status?: string;
1822
1824
  stripe_customer_id?: string;
1823
1825
  stripe_subscription_id?: string;
1826
+ subscription_origin?: string | null;
1824
1827
  trial_ends_at?: string | null;
1825
1828
  updated_at?: string;
1826
1829
  user_id?: string;
@@ -4928,8 +4931,8 @@ export type Database = {
4928
4931
  entry_slot_id: string | null;
4929
4932
  id: string;
4930
4933
  owner_kind: Database["public"]["Enums"]["content_owner_kind"];
4931
- page_surface_id: string | null;
4932
4934
  page_id: string | null;
4935
+ page_surface_id: string | null;
4933
4936
  site_id: string;
4934
4937
  stage: Database["public"]["Enums"]["content_stage"];
4935
4938
  surface_slot_id: string | null;
@@ -4948,8 +4951,8 @@ export type Database = {
4948
4951
  entry_slot_id?: string | null;
4949
4952
  id?: string;
4950
4953
  owner_kind?: Database["public"]["Enums"]["content_owner_kind"];
4951
- page_surface_id?: string | null;
4952
4954
  page_id?: string | null;
4955
+ page_surface_id?: string | null;
4953
4956
  site_id: string;
4954
4957
  stage?: Database["public"]["Enums"]["content_stage"];
4955
4958
  surface_slot_id?: string | null;
@@ -4968,8 +4971,8 @@ export type Database = {
4968
4971
  entry_slot_id?: string | null;
4969
4972
  id?: string;
4970
4973
  owner_kind?: Database["public"]["Enums"]["content_owner_kind"];
4971
- page_surface_id?: string | null;
4972
4974
  page_id?: string | null;
4975
+ page_surface_id?: string | null;
4973
4976
  site_id?: string;
4974
4977
  stage?: Database["public"]["Enums"]["content_stage"];
4975
4978
  surface_slot_id?: string | null;
@@ -5007,17 +5010,17 @@ export type Database = {
5007
5010
  referencedColumns: ["id"];
5008
5011
  },
5009
5012
  {
5010
- foreignKeyName: "content_versions_page_surface_id_fkey";
5011
- columns: ["page_surface_id"];
5013
+ foreignKeyName: "content_versions_page_id_fkey";
5014
+ columns: ["page_id"];
5012
5015
  isOneToOne: false;
5013
- referencedRelation: "page_surfaces";
5016
+ referencedRelation: "pages";
5014
5017
  referencedColumns: ["id"];
5015
5018
  },
5016
5019
  {
5017
- foreignKeyName: "content_versions_page_id_fkey";
5018
- columns: ["page_id"];
5020
+ foreignKeyName: "content_versions_page_surface_id_fkey";
5021
+ columns: ["page_surface_id"];
5019
5022
  isOneToOne: false;
5020
- referencedRelation: "pages";
5023
+ referencedRelation: "page_surfaces";
5021
5024
  referencedColumns: ["id"];
5022
5025
  },
5023
5026
  {
@@ -7444,8 +7447,6 @@ export type Database = {
7444
7447
  reminder_sent_at: string | null;
7445
7448
  site_id: string;
7446
7449
  status: string;
7447
- ticket_type_id: string | null;
7448
- tickets_count: number;
7449
7450
  updated_at: string;
7450
7451
  waitlist_position: number | null;
7451
7452
  };
@@ -7470,8 +7471,6 @@ export type Database = {
7470
7471
  reminder_sent_at?: string | null;
7471
7472
  site_id: string;
7472
7473
  status?: string;
7473
- ticket_type_id?: string | null;
7474
- tickets_count?: number;
7475
7474
  updated_at?: string;
7476
7475
  waitlist_position?: number | null;
7477
7476
  };
@@ -7496,8 +7495,6 @@ export type Database = {
7496
7495
  reminder_sent_at?: string | null;
7497
7496
  site_id?: string;
7498
7497
  status?: string;
7499
- ticket_type_id?: string | null;
7500
- tickets_count?: number;
7501
7498
  updated_at?: string;
7502
7499
  waitlist_position?: number | null;
7503
7500
  };
@@ -7564,13 +7561,6 @@ export type Database = {
7564
7561
  isOneToOne: false;
7565
7562
  referencedRelation: "sites";
7566
7563
  referencedColumns: ["id"];
7567
- },
7568
- {
7569
- foreignKeyName: "event_attendees_ticket_type_id_fkey";
7570
- columns: ["ticket_type_id"];
7571
- isOneToOne: false;
7572
- referencedRelation: "event_ticket_types";
7573
- referencedColumns: ["id"];
7574
7564
  }
7575
7565
  ];
7576
7566
  };
@@ -13408,6 +13398,207 @@ export type Database = {
13408
13398
  }
13409
13399
  ];
13410
13400
  };
13401
+ site_billing_arrangement_changes: {
13402
+ Row: {
13403
+ changed_by: string;
13404
+ created_at: string;
13405
+ id: string;
13406
+ new_arrangement: string;
13407
+ new_cost_cents: number;
13408
+ new_manual_note: string | null;
13409
+ new_manual_reason: string | null;
13410
+ previous_arrangement: string;
13411
+ previous_cost_cents: number;
13412
+ previous_manual_note: string | null;
13413
+ previous_manual_reason: string | null;
13414
+ reason: string | null;
13415
+ site_id: string;
13416
+ subscription_action: string;
13417
+ subscription_action_result: Json;
13418
+ };
13419
+ Insert: {
13420
+ changed_by: string;
13421
+ created_at?: string;
13422
+ id?: string;
13423
+ new_arrangement: string;
13424
+ new_cost_cents: number;
13425
+ new_manual_note?: string | null;
13426
+ new_manual_reason?: string | null;
13427
+ previous_arrangement: string;
13428
+ previous_cost_cents: number;
13429
+ previous_manual_note?: string | null;
13430
+ previous_manual_reason?: string | null;
13431
+ reason?: string | null;
13432
+ site_id: string;
13433
+ subscription_action: string;
13434
+ subscription_action_result?: Json;
13435
+ };
13436
+ Update: {
13437
+ changed_by?: string;
13438
+ created_at?: string;
13439
+ id?: string;
13440
+ new_arrangement?: string;
13441
+ new_cost_cents?: number;
13442
+ new_manual_note?: string | null;
13443
+ new_manual_reason?: string | null;
13444
+ previous_arrangement?: string;
13445
+ previous_cost_cents?: number;
13446
+ previous_manual_note?: string | null;
13447
+ previous_manual_reason?: string | null;
13448
+ reason?: string | null;
13449
+ site_id?: string;
13450
+ subscription_action?: string;
13451
+ subscription_action_result?: Json;
13452
+ };
13453
+ Relationships: [
13454
+ {
13455
+ foreignKeyName: "site_billing_arrangement_changes_site_id_fkey";
13456
+ columns: ["site_id"];
13457
+ isOneToOne: false;
13458
+ referencedRelation: "sites";
13459
+ referencedColumns: ["id"];
13460
+ }
13461
+ ];
13462
+ };
13463
+ site_billing_manual_reviews: {
13464
+ Row: {
13465
+ billing_user_id: string | null;
13466
+ created_at: string;
13467
+ created_by: string | null;
13468
+ details: Json;
13469
+ id: string;
13470
+ reason: string;
13471
+ resolution_action: string | null;
13472
+ resolution_note: string | null;
13473
+ resolved_at: string | null;
13474
+ resolved_by: string | null;
13475
+ site_id: string;
13476
+ status: string;
13477
+ stripe_subscription_id: string | null;
13478
+ };
13479
+ Insert: {
13480
+ billing_user_id?: string | null;
13481
+ created_at?: string;
13482
+ created_by?: string | null;
13483
+ details?: Json;
13484
+ id?: string;
13485
+ reason: string;
13486
+ resolution_action?: string | null;
13487
+ resolution_note?: string | null;
13488
+ resolved_at?: string | null;
13489
+ resolved_by?: string | null;
13490
+ site_id: string;
13491
+ status?: string;
13492
+ stripe_subscription_id?: string | null;
13493
+ };
13494
+ Update: {
13495
+ billing_user_id?: string | null;
13496
+ created_at?: string;
13497
+ created_by?: string | null;
13498
+ details?: Json;
13499
+ id?: string;
13500
+ reason?: string;
13501
+ resolution_action?: string | null;
13502
+ resolution_note?: string | null;
13503
+ resolved_at?: string | null;
13504
+ resolved_by?: string | null;
13505
+ site_id?: string;
13506
+ status?: string;
13507
+ stripe_subscription_id?: string | null;
13508
+ };
13509
+ Relationships: [
13510
+ {
13511
+ foreignKeyName: "site_billing_manual_reviews_site_id_fkey";
13512
+ columns: ["site_id"];
13513
+ isOneToOne: false;
13514
+ referencedRelation: "sites";
13515
+ referencedColumns: ["id"];
13516
+ }
13517
+ ];
13518
+ };
13519
+ site_billing_transition_attempts: {
13520
+ Row: {
13521
+ billing_user_id: string | null;
13522
+ created_at: string;
13523
+ created_by: string | null;
13524
+ error_message: string | null;
13525
+ external_action_result: Json;
13526
+ finalized_at: string | null;
13527
+ id: string;
13528
+ previous_arrangement: string;
13529
+ previous_billing_starts_at: string | null;
13530
+ previous_cost_cents: number;
13531
+ previous_manual_note: string | null;
13532
+ previous_manual_reason: string | null;
13533
+ site_id: string;
13534
+ status: string;
13535
+ stripe_subscription_id: string | null;
13536
+ subscription_action: string;
13537
+ target_arrangement: string;
13538
+ target_billing_starts_at: string | null;
13539
+ target_cost_cents: number;
13540
+ target_manual_note: string | null;
13541
+ target_manual_reason: string | null;
13542
+ updated_at: string;
13543
+ };
13544
+ Insert: {
13545
+ billing_user_id?: string | null;
13546
+ created_at?: string;
13547
+ created_by?: string | null;
13548
+ error_message?: string | null;
13549
+ external_action_result?: Json;
13550
+ finalized_at?: string | null;
13551
+ id?: string;
13552
+ previous_arrangement: string;
13553
+ previous_billing_starts_at?: string | null;
13554
+ previous_cost_cents: number;
13555
+ previous_manual_note?: string | null;
13556
+ previous_manual_reason?: string | null;
13557
+ site_id: string;
13558
+ status?: string;
13559
+ stripe_subscription_id?: string | null;
13560
+ subscription_action: string;
13561
+ target_arrangement: string;
13562
+ target_billing_starts_at?: string | null;
13563
+ target_cost_cents: number;
13564
+ target_manual_note?: string | null;
13565
+ target_manual_reason?: string | null;
13566
+ updated_at?: string;
13567
+ };
13568
+ Update: {
13569
+ billing_user_id?: string | null;
13570
+ created_at?: string;
13571
+ created_by?: string | null;
13572
+ error_message?: string | null;
13573
+ external_action_result?: Json;
13574
+ finalized_at?: string | null;
13575
+ id?: string;
13576
+ previous_arrangement?: string;
13577
+ previous_billing_starts_at?: string | null;
13578
+ previous_cost_cents?: number;
13579
+ previous_manual_note?: string | null;
13580
+ previous_manual_reason?: string | null;
13581
+ site_id?: string;
13582
+ status?: string;
13583
+ stripe_subscription_id?: string | null;
13584
+ subscription_action?: string;
13585
+ target_arrangement?: string;
13586
+ target_billing_starts_at?: string | null;
13587
+ target_cost_cents?: number;
13588
+ target_manual_note?: string | null;
13589
+ target_manual_reason?: string | null;
13590
+ updated_at?: string;
13591
+ };
13592
+ Relationships: [
13593
+ {
13594
+ foreignKeyName: "site_billing_transition_attempts_site_id_fkey";
13595
+ columns: ["site_id"];
13596
+ isOneToOne: false;
13597
+ referencedRelation: "sites";
13598
+ referencedColumns: ["id"];
13599
+ }
13600
+ ];
13601
+ };
13411
13602
  site_briefs: {
13412
13603
  Row: {
13413
13604
  ai_summary: string | null;
@@ -14816,7 +15007,6 @@ export type Database = {
14816
15007
  billing_user_id: string | null;
14817
15008
  created_at: string | null;
14818
15009
  deployment_mode: Database["public"]["Enums"]["site_deployment_mode"];
14819
- domain: string | null;
14820
15010
  id: string;
14821
15011
  is_sdk_site: boolean | null;
14822
15012
  launched_at: string | null;
@@ -14825,6 +15015,9 @@ export type Database = {
14825
15015
  monthly_cost_cents: number;
14826
15016
  sdk_config: Json | null;
14827
15017
  sdk_config_updated_at: string | null;
15018
+ site_billing_arrangement: string | null;
15019
+ site_billing_manual_note: string | null;
15020
+ site_billing_manual_reason: string | null;
14828
15021
  slug: string;
14829
15022
  surface_id: string;
14830
15023
  timezone: string;
@@ -14837,7 +15030,6 @@ export type Database = {
14837
15030
  billing_user_id?: string | null;
14838
15031
  created_at?: string | null;
14839
15032
  deployment_mode?: Database["public"]["Enums"]["site_deployment_mode"];
14840
- domain?: string | null;
14841
15033
  id?: string;
14842
15034
  is_sdk_site?: boolean | null;
14843
15035
  launched_at?: string | null;
@@ -14846,6 +15038,9 @@ export type Database = {
14846
15038
  monthly_cost_cents?: number;
14847
15039
  sdk_config?: Json | null;
14848
15040
  sdk_config_updated_at?: string | null;
15041
+ site_billing_arrangement?: string | null;
15042
+ site_billing_manual_note?: string | null;
15043
+ site_billing_manual_reason?: string | null;
14849
15044
  slug: string;
14850
15045
  surface_id?: string;
14851
15046
  timezone?: string;
@@ -14858,7 +15053,6 @@ export type Database = {
14858
15053
  billing_user_id?: string | null;
14859
15054
  created_at?: string | null;
14860
15055
  deployment_mode?: Database["public"]["Enums"]["site_deployment_mode"];
14861
- domain?: string | null;
14862
15056
  id?: string;
14863
15057
  is_sdk_site?: boolean | null;
14864
15058
  launched_at?: string | null;
@@ -14867,6 +15061,9 @@ export type Database = {
14867
15061
  monthly_cost_cents?: number;
14868
15062
  sdk_config?: Json | null;
14869
15063
  sdk_config_updated_at?: string | null;
15064
+ site_billing_arrangement?: string | null;
15065
+ site_billing_manual_note?: string | null;
15066
+ site_billing_manual_reason?: string | null;
14870
15067
  slug?: string;
14871
15068
  surface_id?: string;
14872
15069
  timezone?: string;
@@ -16606,6 +16803,26 @@ export type Database = {
16606
16803
  participant_participation_id: string;
16607
16804
  }[];
16608
16805
  };
16806
+ begin_site_billing_transition_attempt_atomic: {
16807
+ Args: {
16808
+ p_billing_user_id?: string;
16809
+ p_created_by?: string;
16810
+ p_previous_arrangement?: string;
16811
+ p_previous_billing_starts_at?: string;
16812
+ p_previous_cost_cents?: number;
16813
+ p_previous_manual_note?: string;
16814
+ p_previous_manual_reason?: string;
16815
+ p_site_id: string;
16816
+ p_stripe_subscription_id?: string;
16817
+ p_subscription_action?: string;
16818
+ p_target_arrangement?: string;
16819
+ p_target_billing_starts_at?: string;
16820
+ p_target_cost_cents?: number;
16821
+ p_target_manual_note?: string;
16822
+ p_target_manual_reason?: string;
16823
+ };
16824
+ Returns: string;
16825
+ };
16609
16826
  booking_record_entry_key_version_counts: {
16610
16827
  Args: never;
16611
16828
  Returns: {
@@ -16922,8 +17139,8 @@ export type Database = {
16922
17139
  entry_slot_id: string;
16923
17140
  id: string;
16924
17141
  owner_kind: Database["public"]["Enums"]["content_owner_kind"];
16925
- page_surface_id: string;
16926
17142
  page_id: string;
17143
+ page_surface_id: string;
16927
17144
  stage: Database["public"]["Enums"]["content_stage"];
16928
17145
  surface_slot_id: string;
16929
17146
  updated_at: string;
@@ -17093,8 +17310,6 @@ export type Database = {
17093
17310
  p_payment_status: string;
17094
17311
  p_site_id: string;
17095
17312
  p_ticket_lines: Json;
17096
- p_ticket_type_id: string;
17097
- p_tickets_count: number;
17098
17313
  };
17099
17314
  Returns: {
17100
17315
  attendee_id: string;
@@ -17244,6 +17459,15 @@ export type Database = {
17244
17459
  count: number;
17245
17460
  }[];
17246
17461
  };
17462
+ finalize_site_billing_transition_attempt_atomic: {
17463
+ Args: {
17464
+ p_attempt_id: string;
17465
+ p_changed_by: string;
17466
+ p_reason?: string;
17467
+ p_subscription_action_result?: Json;
17468
+ };
17469
+ Returns: undefined;
17470
+ };
17247
17471
  finalize_site_invitation_resend: {
17248
17472
  Args: {
17249
17473
  p_actor_user_id: string;
@@ -17945,6 +18169,26 @@ export type Database = {
17945
18169
  };
17946
18170
  Returns: undefined;
17947
18171
  };
18172
+ update_site_billing_arrangement_atomic: {
18173
+ Args: {
18174
+ p_changed_by: string;
18175
+ p_next_arrangement: string;
18176
+ p_next_billing_starts_at?: string;
18177
+ p_next_cost_cents: number;
18178
+ p_next_manual_note?: string;
18179
+ p_next_manual_reason?: string;
18180
+ p_previous_arrangement?: string;
18181
+ p_previous_billing_starts_at?: string;
18182
+ p_previous_cost_cents?: number;
18183
+ p_previous_manual_note?: string;
18184
+ p_previous_manual_reason?: string;
18185
+ p_reason?: string;
18186
+ p_site_id: string;
18187
+ p_subscription_action?: string;
18188
+ p_subscription_action_result?: Json;
18189
+ };
18190
+ Returns: undefined;
18191
+ };
17948
18192
  use_admin_invite: {
17949
18193
  Args: {
17950
18194
  p_token: string;
@@ -18109,7 +18353,7 @@ export type Database = {
18109
18353
  billing_interval: "monthly" | "annual";
18110
18354
  cancellation_context_category: "customer_requested" | "schedule_conflict" | "duplicate_or_admin_error" | "non_payment" | "policy_or_eligibility" | "other" | "legacy_client_unspecified";
18111
18355
  content_entry_status: "draft" | "scheduled" | "published" | "archived";
18112
- content_owner_kind: "block" | "entry" | "page" | "entry_slot" | "page_surface" | "surface_slot";
18356
+ content_owner_kind: "block" | "entry" | "page" | "entry_slot" | "surface_slot" | "page_surface";
18113
18357
  content_stage: "draft" | "published";
18114
18358
  gsc_property_type: "domain" | "url_prefix";
18115
18359
  impersonation_scope: "read" | "write";
@@ -18851,7 +19095,7 @@ export declare const Constants: {
18851
19095
  readonly billing_interval: readonly ["monthly", "annual"];
18852
19096
  readonly cancellation_context_category: readonly ["customer_requested", "schedule_conflict", "duplicate_or_admin_error", "non_payment", "policy_or_eligibility", "other", "legacy_client_unspecified"];
18853
19097
  readonly content_entry_status: readonly ["draft", "scheduled", "published", "archived"];
18854
- readonly content_owner_kind: readonly ["block", "entry", "page", "entry_slot", "page_surface", "surface_slot"];
19098
+ readonly content_owner_kind: readonly ["block", "entry", "page", "entry_slot", "surface_slot", "page_surface"];
18855
19099
  readonly content_stage: readonly ["draft", "published"];
18856
19100
  readonly gsc_property_type: readonly ["domain", "url_prefix"];
18857
19101
  readonly impersonation_scope: readonly ["read", "write"];
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Mock implementation of next/cache for testing
3
3
  */
4
- import { vi } from 'vitest';
4
+ import { vi } from 'bun:test';
5
5
  export declare const revalidateTag: ReturnType<typeof vi.fn<(tag: string, profile?: string) => void>>;
6
6
  export declare const revalidatePath: ReturnType<typeof vi.fn<(path: string) => void>>;
7
7
  export declare const unstable_cache: <T extends (...args: never[]) => unknown>(fn: T) => T;
@@ -19,9 +19,22 @@
19
19
  * riverbankcms push --dry-run # Show what would be pushed
20
20
  */
21
21
  import { Command } from 'commander';
22
+ import { allEnvSucceeded, getOutputContext, runForEnvironments } from '../helpers';
23
+ import { executePushForEnv } from './push-execute';
24
+ import { emitPushVerificationResult, isPushVerificationClean, verifyPushNoopForEnv } from './push/verification';
22
25
  export { contentSummaryHasPushableContent, noContentFoundWarningDetails } from './push-execute';
23
26
  export { VALID_PUSH_SCOPES, isValidPushScope, type PushScope } from './push/consts';
24
27
  export { calculateMetadataUpdates, type MetadataUpdateFlags } from './push/metadata';
25
28
  export { filterLocalContent, type FilterResult } from './push/filter';
26
29
  export { checkForStaleContent, type StaleItem } from './push/stale';
30
+ export type PushCommandDeps = Readonly<{
31
+ getOutputContext: typeof getOutputContext;
32
+ runForEnvironments: typeof runForEnvironments;
33
+ allEnvSucceeded: typeof allEnvSucceeded;
34
+ executePushForEnv: typeof executePushForEnv;
35
+ verifyPushNoopForEnv: typeof verifyPushNoopForEnv;
36
+ emitPushVerificationResult: typeof emitPushVerificationResult;
37
+ isPushVerificationClean: typeof isPushVerificationClean;
38
+ }>;
39
+ export declare function createPushCommand(deps?: PushCommandDeps): Command;
27
40
  export declare const pushCommand: Command;
@@ -1,26 +1,13 @@
1
1
  import type { OutputContext } from '../output';
2
- import type { EntryMergeConflict, EntryMergeDecision } from './entryMerge';
2
+ import type { EntryMergeDecision } from './entryMerge';
3
3
  import type { RemoteEntryMergePlan } from './entryMergePlan';
4
- export type RemoteEntryMergeJsonReport = Readonly<{
5
- kind: 'push';
6
- scope: 'entries';
7
- mergeRemote: true;
8
- dryRun: boolean;
9
- summary: RemoteEntryMergePlan['summary'];
10
- decisions: readonly RemoteEntryMergeDecisionReport[];
11
- }>;
12
- export type RemoteEntryMergeDecisionReport = Readonly<{
13
- kind: EntryMergeDecision['kind'];
4
+ import { type RemoteMergeDecisionReport, type RemoteMergeJsonReport } from './sharedMergeReport';
5
+ type RemoteEntryMergeSubjectJson = Readonly<{
14
6
  contentType: string;
15
7
  identifier: string;
16
- localFieldPaths?: readonly string[];
17
- remoteFieldPaths?: readonly string[];
18
- conflict?: Readonly<{
19
- code: EntryMergeConflict['code'];
20
- fieldPath?: string;
21
- message: string;
22
- }>;
23
8
  }>;
9
+ export type RemoteEntryMergeDecisionReport = RemoteMergeDecisionReport<EntryMergeDecision, RemoteEntryMergeSubjectJson>;
10
+ export type RemoteEntryMergeJsonReport = RemoteMergeJsonReport<'entries', RemoteEntryMergePlan['summary'], EntryMergeDecision, RemoteEntryMergeSubjectJson>;
24
11
  export declare function remoteEntryMergeJsonReport(input: Readonly<{
25
12
  plan: RemoteEntryMergePlan;
26
13
  dryRun: boolean;
@@ -28,3 +15,4 @@ export declare function remoteEntryMergeJsonReport(input: Readonly<{
28
15
  export declare function writeRemoteEntryMergeHumanReport(output: Pick<OutputContext, 'info'>, plan: RemoteEntryMergePlan, options: Readonly<{
29
16
  dryRun: boolean;
30
17
  }>): void;
18
+ export {};
@@ -1,10 +1,8 @@
1
1
  import type { PulledEntries } from '../../client/management/types';
2
2
  import type { EntryForOutput, EnvTarget } from '../helpers';
3
3
  import type { LocalEntry } from '../content/reader';
4
- export type EntryBaseSnapshotTarget = Readonly<{
5
- env: EnvTarget;
6
- siteId: string;
7
- }>;
4
+ import { type BaseSnapshotTarget } from './sharedBaseSnapshots';
5
+ export type EntryBaseSnapshotTarget = BaseSnapshotTarget;
8
6
  export type EntryBaseSnapshotSubject = Readonly<{
9
7
  contentType: string;
10
8
  identifier: string;
@@ -1,25 +1,12 @@
1
1
  import type { OutputContext } from '../output';
2
- import type { PageMergeConflict, PageMergeDecision } from './pageMerge';
2
+ import type { PageMergeDecision } from './pageMerge';
3
3
  import type { RemotePageMergePlan } from './pageMergePlan';
4
- export type RemotePageMergeJsonReport = Readonly<{
5
- kind: 'push';
6
- scope: 'pages';
7
- mergeRemote: true;
8
- dryRun: boolean;
9
- summary: RemotePageMergePlan['summary'];
10
- decisions: readonly RemotePageMergeDecisionReport[];
11
- }>;
12
- export type RemotePageMergeDecisionReport = Readonly<{
13
- kind: PageMergeDecision['kind'];
4
+ import { type RemoteMergeDecisionReport, type RemoteMergeJsonReport } from './sharedMergeReport';
5
+ type RemotePageMergeSubjectJson = Readonly<{
14
6
  identifier: string;
15
- localFieldPaths?: readonly string[];
16
- remoteFieldPaths?: readonly string[];
17
- conflict?: Readonly<{
18
- code: PageMergeConflict['code'];
19
- fieldPath?: string;
20
- message: string;
21
- }>;
22
7
  }>;
8
+ export type RemotePageMergeDecisionReport = RemoteMergeDecisionReport<PageMergeDecision, RemotePageMergeSubjectJson>;
9
+ export type RemotePageMergeJsonReport = RemoteMergeJsonReport<'pages', RemotePageMergePlan['summary'], PageMergeDecision, RemotePageMergeSubjectJson>;
23
10
  export declare function remotePageMergeJsonReport(input: Readonly<{
24
11
  plan: RemotePageMergePlan;
25
12
  dryRun: boolean;
@@ -27,3 +14,4 @@ export declare function remotePageMergeJsonReport(input: Readonly<{
27
14
  export declare function writeRemotePageMergeHumanReport(output: Pick<OutputContext, 'info'>, plan: RemotePageMergePlan, options: Readonly<{
28
15
  dryRun: boolean;
29
16
  }>): void;
17
+ export {};
@@ -1,10 +1,8 @@
1
1
  import type { PulledPages } from '../../client/management/types';
2
2
  import type { EnvTarget } from '../helpers';
3
3
  import type { LocalPage } from '../content/reader';
4
- export type PageBaseSnapshotTarget = Readonly<{
5
- env: EnvTarget;
6
- siteId: string;
7
- }>;
4
+ import { type BaseSnapshotTarget } from './sharedBaseSnapshots';
5
+ export type PageBaseSnapshotTarget = BaseSnapshotTarget;
8
6
  export type PageBaseSnapshotSubject = Readonly<{
9
7
  identifier: string;
10
8
  }>;
@@ -0,0 +1,32 @@
1
+ import type { EnvTarget } from '../helpers';
2
+ export type BaseSnapshotTarget = Readonly<{
3
+ env: EnvTarget;
4
+ siteId: string;
5
+ }>;
6
+ export type BaseSnapshotStoredTarget = Readonly<{
7
+ env: EnvTarget;
8
+ siteIdHash: string;
9
+ }>;
10
+ export type WriteBaseSnapshotsInput<TItem, TSnapshot> = Readonly<{
11
+ contentDir: string;
12
+ rootDir: string;
13
+ snapshotDir: string;
14
+ items: readonly TItem[];
15
+ toSnapshot(item: TItem): TSnapshot;
16
+ fileNameForSnapshot(snapshot: TSnapshot): string;
17
+ cleanupMissing?: boolean;
18
+ }>;
19
+ export type WriteBaseSnapshotsResult = Readonly<{
20
+ rootDir: string;
21
+ count: number;
22
+ }>;
23
+ export declare function baseSnapshotRoot(contentDir: string, baseKind: string): string;
24
+ export declare function baseSnapshotStoredTarget(target: BaseSnapshotTarget): BaseSnapshotStoredTarget;
25
+ export declare function siteScopedSnapshotDir(input: Readonly<{
26
+ rootDir: string;
27
+ target: BaseSnapshotTarget;
28
+ leafDir: string;
29
+ }>): string;
30
+ export declare function writeBaseSnapshots<TItem, TSnapshot>(input: WriteBaseSnapshotsInput<TItem, TSnapshot>): Promise<WriteBaseSnapshotsResult>;
31
+ export declare function readBaseSnapshot<TSnapshot>(snapshotPath: string): Promise<TSnapshot | null>;
32
+ export declare function encodeSnapshotPathPart(value: string): string;