@riverbankcms/sdk 0.78.0 → 0.78.2

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 (152) hide show
  1. package/README.md +45 -43
  2. package/dist/{PreviewEditorSidebar-RIKFQ72L.mjs → PreviewEditorSidebar-4DXLYX2V.mjs} +29 -21
  3. package/dist/{PreviewEditorUI-XO7TUWKK.mjs → PreviewEditorUI-CS5P4N3P.mjs} +4 -4
  4. package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -0
  6. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  7. package/dist/_dts/api/src/endpoints.d.ts +9 -0
  8. package/dist/_dts/api/src/index.d.ts +3 -3
  9. package/dist/_dts/api/src/public/types.d.ts +1 -1
  10. package/dist/_dts/api/src/request.d.ts +3 -11
  11. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +1 -0
  12. package/dist/_dts/api/src/sdkContracts.d.ts +7 -1
  13. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -0
  14. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -0
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +15 -19
  16. package/dist/_dts/api/src/types.d.ts +11 -26
  17. package/dist/_dts/block-form/src/fields/types.d.ts +6 -0
  18. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +3 -2
  19. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +6 -3
  20. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +8 -3
  21. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -1
  22. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +1 -0
  23. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +1 -0
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +7 -0
  25. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +1 -0
  26. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +3 -1
  27. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +1 -1
  28. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterLabelSource.d.ts +15 -0
  29. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +50 -0
  30. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +591 -0
  31. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +591 -0
  32. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +591 -0
  33. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +591 -0
  34. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +591 -0
  35. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +591 -0
  36. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +591 -0
  37. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -0
  38. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -0
  39. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +591 -0
  40. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +591 -0
  41. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +591 -0
  42. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  43. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +164 -0
  44. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
  45. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +1 -1
  46. package/dist/_dts/content-editor/src/index.d.ts +1 -1
  47. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -2
  48. package/dist/_dts/content-model/src/content-types/schema.d.ts +14 -0
  49. package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +3 -1
  50. package/dist/_dts/content-model/src/templates/bindingValidation.d.ts +10 -4
  51. package/dist/_dts/content-model/src/templates/fieldPaths.d.ts +20 -0
  52. package/dist/_dts/content-model/src/templates/manifestAdapter.d.ts +5 -2
  53. package/dist/_dts/core/src/branded.d.ts +108 -85
  54. package/dist/_dts/core/src/csv-types.d.ts +2 -2
  55. package/dist/_dts/core/src/editor-state.d.ts +7 -7
  56. package/dist/_dts/core/src/participants.d.ts +2 -2
  57. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +11 -0
  58. package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
  59. package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -1
  60. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -1
  61. package/dist/_dts/media-editor/src/fieldUi.d.ts +5 -0
  62. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  63. package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
  64. package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +2 -0
  65. package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +3 -3
  66. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +7 -0
  67. package/dist/_dts/sdk/src/cli/commands/push.d.ts +2 -0
  68. package/dist/_dts/sdk/src/cli/content/reader.d.ts +13 -0
  69. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -1
  70. package/dist/_dts/sdk/src/cli/helpers.d.ts +2 -0
  71. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +6 -6
  72. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +5 -0
  73. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +4 -0
  74. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +5 -2
  75. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +10 -1
  76. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +1 -1
  77. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -0
  78. package/dist/_dts/sdk/src/client/types.d.ts +2 -2
  79. package/dist/_dts/sdk/src/config/content-types.d.ts +7 -0
  80. package/dist/_dts/sdk/src/config/field-definitions.d.ts +2 -0
  81. package/dist/_dts/sdk/src/version.d.ts +1 -1
  82. package/dist/_dts/site-commands/src/commands.d.ts +3 -0
  83. package/dist/{altcha-B5XGSXP5.mjs → altcha-EKUEQ4RP.mjs} +1 -1
  84. package/dist/{chunk-NIDXI46P.mjs → chunk-4QEGTLK6.mjs} +1 -1
  85. package/dist/{chunk-TXDES5P2.mjs → chunk-6HYXHRAI.mjs} +5 -5
  86. package/dist/{chunk-SVMMM2NA.mjs → chunk-CR5HKAGU.mjs} +24 -5
  87. package/dist/{chunk-OECWLDHN.mjs → chunk-MCRQMPET.mjs} +1030 -588
  88. package/dist/{chunk-SXOLGNMX.mjs → chunk-OKMBEAXY.mjs} +1 -1
  89. package/dist/{chunk-XGB3TDIC.mjs → chunk-R7POPVJR.mjs} +2 -8
  90. package/dist/{chunk-F7RTCZYN.mjs → chunk-RGTOD4AJ.mjs} +20 -14
  91. package/dist/cli/index.mjs +681 -225
  92. package/dist/cli/init-docs/content/cli-reference.md +3 -2
  93. package/dist/cli/init-docs/content/content-management.md +2 -2
  94. package/dist/cli/init-docs/content/workflow-preview-mode.md +68 -2
  95. package/dist/client/{accordion-EVDEOUPR.mjs → accordion-PLYNJIIM.mjs} +2 -2
  96. package/dist/client/analytics.mjs +1 -1
  97. package/dist/client/{bookingForm-DIHBLC64.mjs → bookingForm-BXAP6AO7.mjs} +55 -48
  98. package/dist/client/bookings.mjs +62 -55
  99. package/dist/client/{carousel-FEBQHIWI.mjs → carousel-TRBXDHGF.mjs} +3 -3
  100. package/dist/client/{cart-7CKSXAE4.mjs → cart-Z7H3HJRS.mjs} +7 -7
  101. package/dist/client/{checkout-WKYCANLV.mjs → checkout-WAFCUBIX.mjs} +7 -7
  102. package/dist/client/{chunk-OFMSCGNY.mjs → chunk-75OUS5MT.mjs} +2 -2
  103. package/dist/client/{chunk-IVNCUVAV.mjs → chunk-AUJ5DBZJ.mjs} +18 -18
  104. package/dist/client/{chunk-36WJCERQ.mjs → chunk-CE7IBGVW.mjs} +3 -1
  105. package/dist/client/{chunk-RZDWX7QW.mjs → chunk-CWGTG37I.mjs} +1 -1
  106. package/dist/client/{chunk-YDSEG6GZ.mjs → chunk-DNRGY432.mjs} +2 -2
  107. package/dist/client/{chunk-RV6FX7UH.mjs → chunk-FUXW6VW2.mjs} +9 -9
  108. package/dist/client/{chunk-65F47D7Y.mjs → chunk-JGXPTEI2.mjs} +43 -36
  109. package/dist/client/{chunk-GUK2FPXQ.mjs → chunk-JRDUHZCT.mjs} +37 -15
  110. package/dist/client/{chunk-VPPMNXCF.mjs → chunk-UVQEJJTN.mjs} +2 -2
  111. package/dist/client/{chunk-F7LHOKEH.mjs → chunk-XSV6KW4D.mjs} +1 -1
  112. package/dist/client/{chunk-PD6NBCEY.mjs → chunk-ZFHRN6W2.mjs} +1 -1
  113. package/dist/client/{chunk-2SAVKN2M.mjs → chunk-ZI3LLBPZ.mjs} +2 -2
  114. package/dist/client/client.mjs +249 -160
  115. package/dist/client/{courseRegistration-5QF2PHKM.mjs → courseRegistration-AHFQHWIJ.mjs} +10 -10
  116. package/dist/client/{eventCalendar-4ZOSETDU.mjs → eventCalendar-LDXTV5R7.mjs} +9 -9
  117. package/dist/client/{eventCombined-WQGU7JUX.mjs → eventCombined-A4JGTNJO.mjs} +9 -9
  118. package/dist/client/{eventDetails-AYWVUJ5Y.mjs → eventDetails-4YXTZ7EG.mjs} +9 -9
  119. package/dist/client/{eventListing-NT7C6UT5.mjs → eventListing-P72TPFFM.mjs} +9 -9
  120. package/dist/client/{eventRegistration-OH24F4ZJ.mjs → eventRegistration-LSYJHGMT.mjs} +9 -9
  121. package/dist/client/{form-7L42SRBB.mjs → form-AOPYOKOW.mjs} +6 -3
  122. package/dist/client/{headerSection-OZRZNZ52.mjs → headerSection-5TFYDFVQ.mjs} +3 -3
  123. package/dist/client/hooks.mjs +78 -48
  124. package/dist/client/{locationMap-ZBXRPQ7C.mjs → locationMap-QSZ3ZVAZ.mjs} +3 -3
  125. package/dist/client/{newsletterForm-SNAGFF2I.mjs → newsletterForm-KTRHZY52.mjs} +2 -2
  126. package/dist/client/{productDetail-I46BOFGV.mjs → productDetail-N4E775RG.mjs} +7 -7
  127. package/dist/client/{productList-BOYHTYI6.mjs → productList-UGUQ2S45.mjs} +7 -7
  128. package/dist/client/rendering/client.mjs +173 -131
  129. package/dist/client/rendering/islands.mjs +19 -19
  130. package/dist/client/rendering.mjs +230 -150
  131. package/dist/client/{shop-XTXPZTKR.mjs → shop-VHSZEEQ2.mjs} +7 -7
  132. package/dist/preview-next/before-render.mjs +10 -1
  133. package/dist/preview-next/client/runtime.mjs +6 -6
  134. package/dist/preview-next/middleware.mjs +10 -1
  135. package/dist/preview-next/tailwind-sources.css +1 -0
  136. package/dist/sdk-runtime-WHPJEF5G.mjs +8 -0
  137. package/dist/server/components.mjs +101 -54
  138. package/dist/server/config-template-validation.mjs +221 -15
  139. package/dist/server/config-validation.mjs +76 -42
  140. package/dist/server/config.mjs +76 -42
  141. package/dist/server/data.mjs +77 -47
  142. package/dist/server/index.mjs +31 -10
  143. package/dist/server/next.mjs +133 -71
  144. package/dist/server/page-converter.mjs +60 -40
  145. package/dist/server/prebuild.mjs +1 -1
  146. package/dist/server/rendering/server.mjs +107 -60
  147. package/dist/server/rendering.mjs +111 -61
  148. package/dist/server/routing.mjs +93 -63
  149. package/dist/server/server.mjs +102 -57
  150. package/package.json +1 -1
  151. package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +0 -8
  152. package/dist/sdk-runtime-ZJLKC6DR.mjs +0 -8
@@ -1,3 +1,4 @@
1
+ import { type Result } from './result';
1
2
  /**
2
3
  * Branded ID types for domain entities.
3
4
  *
@@ -5,14 +6,22 @@
5
6
  * accidentally pass an EventInstanceId where a ProductId is expected.
6
7
  *
7
8
  * Usage:
8
- * const instanceId = asEventInstanceId('abc-123')
9
- * const productId = asProductId('def-456')
10
- * // instanceId cannot be assigned to productId — compile error
9
+ * const parsed = parseSiteId(input)
10
+ * const productId = unsafeAsProductId(validatedProductId)
11
+ * // parsed SiteId cannot be assigned to productId — compile error
11
12
  */
12
13
  declare const __brand: unique symbol;
13
14
  export type Brand<T, B extends string> = T & {
14
15
  readonly [__brand]: B;
15
16
  };
17
+ export type BrandedIdParseError = {
18
+ kind: 'not_string';
19
+ } | {
20
+ kind: 'empty_string';
21
+ } | {
22
+ kind: 'invalid_uuid';
23
+ };
24
+ export declare function expectParsedBrandedId<TBrand>(result: Result<TBrand, BrandedIdParseError>): TBrand;
16
25
  export type EventInstanceId = Brand<string, 'EventInstanceId'>;
17
26
  export type SiteId = Brand<string, 'SiteId'>;
18
27
  export type PageId = Brand<string, 'PageId'>;
@@ -115,99 +124,113 @@ export type EntryId = Brand<string, 'EntryId'>;
115
124
  export type PreviewEntryId = EntryId & {
116
125
  readonly __preview: true;
117
126
  };
118
- export declare const asEntryId: (id: string) => EntryId;
127
+ export declare const unsafeAsEntryId: (id: string) => EntryId;
119
128
  /**
120
129
  * Mint a preview-fixture entry id. Unsafe at the type level because the
121
130
  * function can't verify the input string is actually shaped as a preview
122
131
  * id — the predicate `isPreviewEntryId` is the recommended narrowing path.
123
132
  */
124
133
  export declare const unsafeAsPreviewEntryId: (id: string) => PreviewEntryId;
125
- export declare const asEventInstanceId: (id: string) => EventInstanceId;
126
- export declare const asSiteId: (id: string) => SiteId;
127
- export declare const asPageId: (id: string) => PageId;
128
- export declare const asOccurrenceId: (id: string) => OccurrenceId;
129
- export declare const asEventSeriesId: (id: string) => EventSeriesId;
130
- export declare const asTicketTypeId: (id: string) => TicketTypeId;
131
- export declare const asEventCategoryId: (id: string) => EventCategoryId;
132
- export declare const asVenueId: (id: string) => VenueId;
133
- export declare const asPricingOptionId: (id: string) => PricingOptionId;
134
- export declare const asMoneyDateString: (value: string) => MoneyDateString;
135
- export declare const asStripeCheckoutSessionId: (value: string) => StripeCheckoutSessionId;
136
- export declare const asProductId: (id: string) => ProductId;
137
- export declare const asProductVariantId: (id: string) => ProductVariantId;
138
- export declare const asProductCategoryId: (id: string) => ProductCategoryId;
139
- export declare const asMediaAssetId: (id: string) => MediaAssetId;
140
- export declare const asUploadSessionId: (id: string) => UploadSessionId;
141
- export declare const asStorageBucketName: (value: string) => StorageBucketName;
142
- export declare const asStoragePath: (value: string) => StoragePath;
134
+ export declare const unsafeAsEventInstanceId: (id: string) => EventInstanceId;
135
+ export declare const unsafeAsSiteId: (id: string) => SiteId;
136
+ export declare const unsafeAsPageId: (id: string) => PageId;
137
+ export declare const unsafeAsOccurrenceId: (id: string) => OccurrenceId;
138
+ export declare const unsafeAsEventSeriesId: (id: string) => EventSeriesId;
139
+ export declare const unsafeAsTicketTypeId: (id: string) => TicketTypeId;
140
+ export declare const unsafeAsEventCategoryId: (id: string) => EventCategoryId;
141
+ export declare const unsafeAsVenueId: (id: string) => VenueId;
142
+ export declare const unsafeAsPricingOptionId: (id: string) => PricingOptionId;
143
+ export declare const unsafeAsMoneyDateString: (value: string) => MoneyDateString;
144
+ export declare const unsafeAsStripeCheckoutSessionId: (value: string) => StripeCheckoutSessionId;
145
+ export declare const unsafeAsProductId: (id: string) => ProductId;
146
+ export declare const unsafeAsProductVariantId: (id: string) => ProductVariantId;
147
+ export declare const unsafeAsProductCategoryId: (id: string) => ProductCategoryId;
148
+ export declare const unsafeAsMediaAssetId: (id: string) => MediaAssetId;
149
+ export declare const unsafeAsUploadSessionId: (id: string) => UploadSessionId;
150
+ export declare const unsafeAsStorageBucketName: (value: string) => StorageBucketName;
151
+ export declare const unsafeAsStoragePath: (value: string) => StoragePath;
143
152
  export declare const unsafeAsRelativeStoragePath: (value: string) => RelativeStoragePath;
144
153
  export declare const unsafeAsSiteScopedStoragePath: (value: string) => SiteScopedStoragePath;
145
- /** @deprecated Use `unsafeAsRelativeStoragePath` to make the unchecked cast explicit. */
146
- export declare const asRelativeStoragePath: (value: string) => RelativeStoragePath;
147
- /** @deprecated Use `unsafeAsSiteScopedStoragePath` to make the unchecked cast explicit. */
148
- export declare const asSiteScopedStoragePath: (value: string) => SiteScopedStoragePath;
149
154
  export declare const unsafeAsFileChecksumSha256: (value: string) => FileChecksumSha256;
150
- export declare const asDetectedMimeType: (value: string) => DetectedMimeType;
151
- export declare const asDeclaredMimeType: (value: string) => DeclaredMimeType;
152
- export declare const asOriginalFilename: (value: string) => OriginalFilename;
155
+ export declare const unsafeAsDetectedMimeType: (value: string) => DetectedMimeType;
156
+ export declare const unsafeAsDeclaredMimeType: (value: string) => DeclaredMimeType;
157
+ export declare const unsafeAsOriginalFilename: (value: string) => OriginalFilename;
153
158
  export declare const unsafeAsSafeDownloadFilename: (value: string) => SafeDownloadFilename;
154
159
  export declare const unsafeAsPositiveByteCount: (value: number) => PositiveByteCount;
155
160
  export declare const unsafeAsPositiveSeconds: (value: number) => PositiveSeconds;
156
- export declare const asBookingSessionId: (id: string) => BookingSessionId;
157
- export declare const asEntitlementId: (id: string) => EntitlementId;
158
- export declare const asSiteFontId: (id: string) => SiteFontId;
159
- export declare const asUserId: (id: string) => UserId;
160
- export declare const asFormId: (id: string) => FormId;
161
- export declare const asFormSubmissionId: (id: string) => FormSubmissionId;
162
- export declare const asPassId: (id: string) => PassId;
163
- export declare const asMembershipId: (id: string) => MembershipId;
164
- export declare const asCourseId: (id: string) => CourseId;
165
- export declare const asCustomerId: (id: string) => CustomerId;
166
- export declare const asOrderId: (id: string) => OrderId;
167
- export declare const asOrderItemId: (id: string) => OrderItemId;
168
- export declare const asCheckoutLineId: (id: string) => CheckoutLineId;
169
- export declare const asAttendeeId: (id: string) => AttendeeId;
170
- export declare const asCustomerPassId: (id: string) => CustomerPassId;
171
- export declare const asCustomerMembershipId: (id: string) => CustomerMembershipId;
172
- export declare const asEnrollmentId: (id: string) => EnrollmentId;
173
- export declare const asAppointmentId: (id: string) => AppointmentId;
174
- export declare const asAppointmentServiceId: (id: string) => AppointmentServiceId;
175
- export declare const asAppointmentResourceId: (id: string) => AppointmentResourceId;
176
- export declare const asStaffMemberId: (id: string) => StaffMemberId;
177
- export declare const asBookingCalendarFeedTokenId: (id: string) => BookingCalendarFeedTokenId;
178
- export declare const asBookingCalendarFeedTokenPublicId: (id: string) => BookingCalendarFeedTokenPublicId;
179
- export declare const asBookingCalendarFeedTokenSecret: (value: string) => BookingCalendarFeedTokenSecret;
180
- export declare const asBookingCalendarFeedTokenSecretHash: (value: string) => BookingCalendarFeedTokenSecretHash;
181
- export declare const asContentEntryId: (id: string) => ContentEntryId;
182
- export declare const asStripeInvoiceId: (id: string) => StripeInvoiceId;
183
- export declare const asNewsletterSubscriberId: (id: string) => NewsletterSubscriberId;
184
- export declare const asEmailAuditRowId: (id: string) => EmailAuditRowId;
185
- export declare const asWaitlistEntryId: (id: string) => WaitlistEntryId;
186
- export declare const asWaitlistHoldId: (id: string) => WaitlistHoldId;
187
- export declare const asShipmentId: (id: string) => ShipmentId;
188
- export declare const asActivityLogEntryId: (id: string) => ActivityLogEntryId;
189
- export declare const asDemoBlueprintId: (id: string) => DemoBlueprintId;
190
- export declare const asDemoBlueprintVersionId: (id: string) => DemoBlueprintVersionId;
191
- export declare const asDemoInstanceId: (id: string) => DemoInstanceId;
192
- export declare const asDemoClaimId: (id: string) => DemoClaimId;
193
- export declare const asDemoLifecycleAuditEventId: (id: string) => DemoLifecycleAuditEventId;
194
- export declare const asDemoRuntimeId: (id: string) => DemoRuntimeId;
195
- export declare const asDemoCapability: (value: string) => DemoCapability;
196
- export declare const asDemoPaymentFlowId: (id: string) => DemoPaymentFlowId;
161
+ export declare const unsafeAsBookingSessionId: (id: string) => BookingSessionId;
162
+ export declare const unsafeAsEntitlementId: (id: string) => EntitlementId;
163
+ export declare const unsafeAsSiteFontId: (id: string) => SiteFontId;
164
+ export declare const unsafeAsUserId: (id: string) => UserId;
165
+ export declare const unsafeAsFormId: (id: string) => FormId;
166
+ export declare const unsafeAsFormSubmissionId: (id: string) => FormSubmissionId;
167
+ export declare const unsafeAsPassId: (id: string) => PassId;
168
+ export declare const unsafeAsMembershipId: (id: string) => MembershipId;
169
+ export declare const unsafeAsCourseId: (id: string) => CourseId;
170
+ export declare const unsafeAsCustomerId: (id: string) => CustomerId;
171
+ export declare const unsafeAsOrderId: (id: string) => OrderId;
172
+ export declare const unsafeAsOrderItemId: (id: string) => OrderItemId;
173
+ export declare const unsafeAsCheckoutLineId: (id: string) => CheckoutLineId;
174
+ export declare const unsafeAsAttendeeId: (id: string) => AttendeeId;
175
+ export declare const unsafeAsCustomerPassId: (id: string) => CustomerPassId;
176
+ export declare const unsafeAsCustomerMembershipId: (id: string) => CustomerMembershipId;
177
+ export declare const unsafeAsEnrollmentId: (id: string) => EnrollmentId;
178
+ export declare const unsafeAsAppointmentId: (id: string) => AppointmentId;
179
+ export declare const unsafeAsAppointmentServiceId: (id: string) => AppointmentServiceId;
180
+ export declare const unsafeAsAppointmentResourceId: (id: string) => AppointmentResourceId;
181
+ export declare const unsafeAsStaffMemberId: (id: string) => StaffMemberId;
182
+ export declare const unsafeAsBookingCalendarFeedTokenId: (id: string) => BookingCalendarFeedTokenId;
183
+ export declare const unsafeAsBookingCalendarFeedTokenPublicId: (id: string) => BookingCalendarFeedTokenPublicId;
184
+ export declare const unsafeAsBookingCalendarFeedTokenSecret: (value: string) => BookingCalendarFeedTokenSecret;
185
+ export declare const unsafeAsBookingCalendarFeedTokenSecretHash: (value: string) => BookingCalendarFeedTokenSecretHash;
186
+ export declare const unsafeAsContentEntryId: (id: string) => ContentEntryId;
187
+ export declare const unsafeAsStripeInvoiceId: (id: string) => StripeInvoiceId;
188
+ export declare const unsafeAsNewsletterSubscriberId: (id: string) => NewsletterSubscriberId;
189
+ export declare const unsafeAsEmailAuditRowId: (id: string) => EmailAuditRowId;
190
+ export declare const unsafeAsWaitlistEntryId: (id: string) => WaitlistEntryId;
191
+ export declare const unsafeAsWaitlistHoldId: (id: string) => WaitlistHoldId;
192
+ export declare const unsafeAsShipmentId: (id: string) => ShipmentId;
193
+ export declare const unsafeAsActivityLogEntryId: (id: string) => ActivityLogEntryId;
194
+ export declare const unsafeAsDemoBlueprintId: (id: string) => DemoBlueprintId;
195
+ export declare const unsafeAsDemoBlueprintVersionId: (id: string) => DemoBlueprintVersionId;
196
+ export declare const unsafeAsDemoInstanceId: (id: string) => DemoInstanceId;
197
+ export declare const unsafeAsDemoClaimId: (id: string) => DemoClaimId;
198
+ export declare const unsafeAsDemoLifecycleAuditEventId: (id: string) => DemoLifecycleAuditEventId;
199
+ export declare const unsafeAsDemoRuntimeId: (id: string) => DemoRuntimeId;
200
+ export declare const unsafeAsDemoCapability: (value: string) => DemoCapability;
201
+ export declare const unsafeAsDemoPaymentFlowId: (id: string) => DemoPaymentFlowId;
197
202
  export declare const unsafeAsDemoClaimTtlHours: (value: number) => DemoClaimTtlHours;
198
- export declare const asGiftingOfferId: (id: string) => GiftingOfferId;
199
- export declare const asGiftingInstrumentId: (id: string) => GiftingInstrumentId;
200
- export declare const asBookingRequirementId: (id: string) => BookingRequirementId;
201
- export declare const asBookingRequirementEvidenceId: (id: string) => BookingRequirementEvidenceId;
202
- export declare const asBookingRequirementDocumentUploadId: (id: string) => BookingRequirementDocumentUploadId;
203
- export declare const asBookingRequirementEvidenceAttachmentId: (id: string) => BookingRequirementEvidenceAttachmentId;
204
- export declare const asParticipantId: (id: string) => ParticipantId;
205
- export declare const asParticipantParticipationId: (id: string) => ParticipantParticipationId;
206
- export declare const asParticipantRosterAssertionJobId: (id: string) => ParticipantRosterAssertionJobId;
207
- export declare const asParticipantBookingQuestionsTaskId: (id: string) => ParticipantBookingQuestionsTaskId;
208
- export declare const asEventAttendeeGuestId: (id: string) => EventAttendeeGuestId;
209
- export declare const asPersonRecordId: (id: string) => PersonRecordId;
210
- export declare const asEncounterRecordId: (id: string) => EncounterRecordId;
211
- export declare const asRecordEntryId: (id: string) => RecordEntryId;
212
- export declare const asProtectedPayloadKeyVersion: (id: string) => ProtectedPayloadKeyVersion;
203
+ export declare const unsafeAsGiftingOfferId: (id: string) => GiftingOfferId;
204
+ export declare const unsafeAsGiftingInstrumentId: (id: string) => GiftingInstrumentId;
205
+ export declare const unsafeAsBookingRequirementId: (id: string) => BookingRequirementId;
206
+ export declare const unsafeAsBookingRequirementEvidenceId: (id: string) => BookingRequirementEvidenceId;
207
+ export declare const unsafeAsBookingRequirementDocumentUploadId: (id: string) => BookingRequirementDocumentUploadId;
208
+ export declare const unsafeAsBookingRequirementEvidenceAttachmentId: (id: string) => BookingRequirementEvidenceAttachmentId;
209
+ export declare const unsafeAsParticipantId: (id: string) => ParticipantId;
210
+ export declare const unsafeAsParticipantParticipationId: (id: string) => ParticipantParticipationId;
211
+ export declare const unsafeAsParticipantRosterAssertionJobId: (id: string) => ParticipantRosterAssertionJobId;
212
+ export declare const unsafeAsParticipantBookingQuestionsTaskId: (id: string) => ParticipantBookingQuestionsTaskId;
213
+ export declare const unsafeAsEventAttendeeGuestId: (id: string) => EventAttendeeGuestId;
214
+ export declare const unsafeAsPersonRecordId: (id: string) => PersonRecordId;
215
+ export declare const unsafeAsEncounterRecordId: (id: string) => EncounterRecordId;
216
+ export declare const unsafeAsRecordEntryId: (id: string) => RecordEntryId;
217
+ export declare const unsafeAsProtectedPayloadKeyVersion: (id: string) => ProtectedPayloadKeyVersion;
218
+ export declare const parseSiteId: (value: unknown) => Result<SiteId, BrandedIdParseError>;
219
+ export declare const parseOccurrenceId: (value: unknown) => Result<OccurrenceId, BrandedIdParseError>;
220
+ export declare const parseTicketTypeId: (value: unknown) => Result<TicketTypeId, BrandedIdParseError>;
221
+ export declare const parsePricingOptionId: (value: unknown) => Result<PricingOptionId, BrandedIdParseError>;
222
+ export declare const parseUserId: (value: unknown) => Result<UserId, BrandedIdParseError>;
223
+ export declare const parseProductId: (value: unknown) => Result<ProductId, BrandedIdParseError>;
224
+ export declare const parseProductVariantId: (value: unknown) => Result<ProductVariantId, BrandedIdParseError>;
225
+ export declare const parseProductCategoryId: (value: unknown) => Result<ProductCategoryId, BrandedIdParseError>;
226
+ export declare const parseMediaAssetId: (value: unknown) => Result<MediaAssetId, BrandedIdParseError>;
227
+ export declare const parseContentEntryId: (value: unknown) => Result<ContentEntryId, BrandedIdParseError>;
228
+ export declare const parsePassId: (value: unknown) => Result<PassId, BrandedIdParseError>;
229
+ export declare const parseMembershipId: (value: unknown) => Result<MembershipId, BrandedIdParseError>;
230
+ export declare const parseCourseId: (value: unknown) => Result<CourseId, BrandedIdParseError>;
231
+ export declare const parseAppointmentId: (value: unknown) => Result<AppointmentId, BrandedIdParseError>;
232
+ export declare const parseAttendeeId: (value: unknown) => Result<AttendeeId, BrandedIdParseError>;
233
+ export declare const parseCustomerId: (value: unknown) => Result<CustomerId, BrandedIdParseError>;
234
+ export declare const parseCustomerMembershipId: (value: unknown) => Result<CustomerMembershipId, BrandedIdParseError>;
235
+ export declare const parseEventSeriesId: (value: unknown) => Result<EventSeriesId, BrandedIdParseError>;
213
236
  export {};
@@ -111,6 +111,6 @@ export type MoneyExportCurrencyPolicy = Readonly<{
111
111
  }> | Readonly<{
112
112
  kind: 'reject_mixed_currency';
113
113
  }>;
114
- export declare function asCsvExportId(value: string): CsvExportId;
115
- export declare function asCsvColumnKey(value: string): CsvColumnKey;
114
+ export declare function unsafeAsCsvExportId(value: string): CsvExportId;
115
+ export declare function unsafeAsCsvColumnKey(value: string): CsvColumnKey;
116
116
  export declare function asExportRowLimit(value: number): ExportRowLimit;
@@ -3,17 +3,17 @@ export type EditorSiteId = Brand<string, 'EditorSiteId'>;
3
3
  export type EditorPageId = Brand<string, 'EditorPageId'>;
4
4
  export type EditorEntryId = Brand<string, 'EditorEntryId'>;
5
5
  export type EditorBlockId = Brand<string, 'EditorBlockId'>;
6
- export declare const asEditorSiteId: (value: string) => EditorSiteId;
7
- export declare const asEditorPageId: (value: string) => EditorPageId;
8
- export declare const asEditorEntryId: (value: string) => EditorEntryId;
9
- export declare const asEditorBlockId: (value: string) => EditorBlockId;
6
+ export declare const unsafeAsEditorSiteId: (value: string) => EditorSiteId;
7
+ export declare const unsafeAsEditorPageId: (value: string) => EditorPageId;
8
+ export declare const unsafeAsEditorEntryId: (value: string) => EditorEntryId;
9
+ export declare const unsafeAsEditorBlockId: (value: string) => EditorBlockId;
10
10
  export type EditorValueRecord = Readonly<Record<string, unknown>>;
11
11
  export type EditorMetadataValues = Brand<EditorValueRecord, 'EditorMetadataValues'>;
12
12
  export type EditorContentValues = Brand<EditorValueRecord, 'EditorContentValues'>;
13
13
  export type EditorBlockValues = Brand<EditorValueRecord, 'EditorBlockValues'>;
14
- export declare const asEditorMetadataValues: (value: EditorValueRecord) => EditorMetadataValues;
15
- export declare const asEditorContentValues: (value: EditorValueRecord) => EditorContentValues;
16
- export declare const asEditorBlockValues: (value: EditorValueRecord) => EditorBlockValues;
14
+ export declare const unsafeAsEditorMetadataValues: (value: EditorValueRecord) => EditorMetadataValues;
15
+ export declare const unsafeAsEditorContentValues: (value: EditorValueRecord) => EditorContentValues;
16
+ export declare const unsafeAsEditorBlockValues: (value: EditorValueRecord) => EditorBlockValues;
17
17
  export type EditorSyncState = {
18
18
  kind: 'baseline';
19
19
  } | {
@@ -34,8 +34,8 @@ export type ProvisionalParticipantIdentityParseError = {
34
34
  } | {
35
35
  kind: 'missing_slot_key';
36
36
  };
37
- export declare function asParticipantSlotKey(value: string): ParticipantSlotKey;
38
- export declare function asParticipantCount(value: number): ParticipantCount;
37
+ export declare function unsafeAsParticipantSlotKey(value: string): ParticipantSlotKey;
38
+ export declare function unsafeAsParticipantCount(value: number): ParticipantCount;
39
39
  /**
40
40
  * Canonicalizes an optional participant email for equality checks.
41
41
  *
@@ -4154,6 +4154,7 @@ export type Database = {
4154
4154
  draft_version_id: string | null;
4155
4155
  id: string;
4156
4156
  identifier: string;
4157
+ manual_order: number;
4157
4158
  published_version_id: string | null;
4158
4159
  route_id: string | null;
4159
4160
  sdk_content_hash: string | null;
@@ -4172,6 +4173,7 @@ export type Database = {
4172
4173
  draft_version_id?: string | null;
4173
4174
  id?: string;
4174
4175
  identifier: string;
4176
+ manual_order?: number;
4175
4177
  published_version_id?: string | null;
4176
4178
  route_id?: string | null;
4177
4179
  sdk_content_hash?: string | null;
@@ -4190,6 +4192,7 @@ export type Database = {
4190
4192
  draft_version_id?: string | null;
4191
4193
  id?: string;
4192
4194
  identifier?: string;
4195
+ manual_order?: number;
4193
4196
  published_version_id?: string | null;
4194
4197
  route_id?: string | null;
4195
4198
  sdk_content_hash?: string | null;
@@ -16159,6 +16162,14 @@ export type Database = {
16159
16162
  };
16160
16163
  Returns: boolean;
16161
16164
  };
16165
+ update_content_entry_manual_order_batch: {
16166
+ Args: {
16167
+ p_content_type_id: string;
16168
+ p_site_id: string;
16169
+ p_updates: Json;
16170
+ };
16171
+ Returns: undefined;
16172
+ };
16162
16173
  use_admin_invite: {
16163
16174
  Args: {
16164
16175
  p_token: string;
@@ -5,7 +5,7 @@ export type ManifestFieldIssue = {
5
5
  path: string;
6
6
  segments: string[];
7
7
  message: string;
8
- code: z.ZodIssue['code'];
8
+ code: string;
9
9
  };
10
10
  export type BlockContentPayloadResult<TValues extends Record<string, unknown> = Record<string, unknown>> = {
11
11
  data: TValues | null;
@@ -19,8 +19,10 @@ export type MediaEditorProps = {
19
19
  fullWidth?: boolean;
20
20
  previewVariant?: 'default' | 'thumbnail';
21
21
  showRemoveAction?: boolean;
22
+ previewMaxWidth?: 'xs' | 'sm' | 'md' | 'none';
23
+ preventPreviewUpscale?: boolean;
22
24
  uploadIntent?: UploadIntentResolver;
23
25
  videoPrepIntent?: VideoPrepIntentResolver;
24
26
  videoSelectionIntent?: VideoPrepIntent;
25
27
  };
26
- export declare const MediaEditor: ({ value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, uploadIntent, videoPrepIntent, videoSelectionIntent, }: MediaEditorProps) => import("react/jsx-runtime").JSX.Element;
28
+ export declare const MediaEditor: ({ value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, previewMaxWidth, preventPreviewUpscale, uploadIntent, videoPrepIntent, videoSelectionIntent, }: MediaEditorProps) => import("react/jsx-runtime").JSX.Element;
@@ -10,5 +10,7 @@ export type MediaPreviewProps = {
10
10
  variant?: 'default' | 'thumbnail';
11
11
  showRemoveAction?: boolean;
12
12
  showActionOverlay?: boolean;
13
+ previewMaxWidth?: 'xs' | 'sm' | 'md' | 'none';
14
+ preventUpscale?: boolean;
13
15
  };
14
- export declare const MediaPreview: ({ value, previewAspectRatio, onReplace, onEditCrop, onEditDetails, onRemove, fullWidth, variant, showRemoveAction, showActionOverlay, }: MediaPreviewProps) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const MediaPreview: ({ value, previewAspectRatio, onReplace, onEditCrop, onEditDetails, onRemove, fullWidth, variant, showRemoveAction, showActionOverlay, previewMaxWidth, preventUpscale, }: MediaPreviewProps) => import("react/jsx-runtime").JSX.Element;
@@ -7,6 +7,8 @@ type MediaEditorFieldUi = {
7
7
  mediaPickerAutoOpen?: boolean;
8
8
  showMediaPreview?: boolean;
9
9
  showMediaOverlayActions?: boolean;
10
+ mediaPreviewMaxWidth?: 'xs' | 'sm' | 'md' | 'none';
11
+ preventMediaPreviewUpscale?: boolean;
10
12
  } & Record<string, unknown>;
11
13
  type MediaEditorFieldLike = {
12
14
  type?: string;
@@ -17,4 +19,7 @@ export declare function withRepeaterThumbnailMediaFieldUi<T extends MediaEditorF
17
19
  }): (T & {
18
20
  ui: MediaEditorFieldUi;
19
21
  }) | null;
22
+ export declare function withRepeaterStackMediaFieldUi<T extends MediaEditorFieldLike>(field: T): T & {
23
+ ui: MediaEditorFieldUi;
24
+ };
20
25
  export {};
@@ -13,6 +13,6 @@ export { MediaEditorContextProvider, useMediaEditor, useMediaEditorOptional, typ
13
13
  export { MediaEditorProvider } from './provider';
14
14
  export type { MediaEditorProviderProps } from './provider';
15
15
  export { createMediaEditorProvider } from './createMediaEditorProvider';
16
- export { withRepeaterThumbnailMediaFieldUi } from './fieldUi';
16
+ export { withRepeaterStackMediaFieldUi, withRepeaterThumbnailMediaFieldUi } from './fieldUi';
17
17
  export type { MediaValue, MediaTransform, MediaHotspot } from './types';
18
18
  export { DEFAULT_HOTSPOT } from './utils';
@@ -1,3 +1,3 @@
1
- export declare const VALID_PUSH_SCOPES: readonly ["entries", "pages", "navigation", "forms", "theme", "footer", "venues", "event-categories", "events", "courses", "all"];
1
+ export declare const VALID_PUSH_SCOPES: readonly ["entries", "pages", "navigation", "forms", "settings", "theme", "footer", "venues", "event-categories", "events", "courses", "all"];
2
2
  export type PushScope = (typeof VALID_PUSH_SCOPES)[number];
3
3
  export declare function isValidPushScope(scope: string): scope is PushScope;
@@ -12,6 +12,8 @@ export interface MetadataUpdateFlags {
12
12
  willUpdateNavigation: boolean;
13
13
  /** Whether forms metadata should be updated (zero failures + some synced) */
14
14
  willUpdateForms: boolean;
15
+ /** Whether settings metadata should be updated (zero failures + settings synced) */
16
+ willUpdateSettings: boolean;
15
17
  /** Whether any metadata should be updated (at least one content type qualifies) */
16
18
  shouldUpdateMetadata: boolean;
17
19
  }
@@ -1,6 +1,6 @@
1
- import type { EntryMetadata, PagesMetadata, NavigationMetadata, FormsMetadata, LocalContent } from '../../content/reader';
1
+ import type { EntryMetadata, PagesMetadata, NavigationMetadata, FormsMetadata, LocalContent, SettingsMetadata } from '../../content/reader';
2
2
  import type { PulledContent } from '../../../client/management/types';
3
- export type StaleScope = 'entries' | 'pages' | 'navigation' | 'forms';
3
+ export type StaleScope = 'entries' | 'pages' | 'navigation' | 'settings' | 'forms';
4
4
  export interface StaleItem {
5
5
  scope: StaleScope;
6
6
  /** Only set for entries — the content type slug */
@@ -14,4 +14,4 @@ export interface StaleItem {
14
14
  * Check for stale content (remote is newer than local base)
15
15
  * @internal Exported for testing
16
16
  */
17
- export declare function checkForStaleContent(localContent: LocalContent, localMeta: Map<string, EntryMetadata>, pagesMeta: PagesMetadata | null, navigationMeta: NavigationMetadata | null, formsMeta: FormsMetadata | null, remoteContent: PulledContent): StaleItem[];
17
+ export declare function checkForStaleContent(localContent: LocalContent, localMeta: Map<string, EntryMetadata>, pagesMeta: PagesMetadata | null, navigationMeta: NavigationMetadata | null, formsMeta: FormsMetadata | null, remoteContent: PulledContent, settingsMeta?: SettingsMetadata | null): StaleItem[];
@@ -1,11 +1,18 @@
1
1
  import { type EnvTarget } from '../helpers';
2
2
  import type { OutputContext } from '../output';
3
+ import type { ContentSummary } from '../content/reader';
3
4
  import { type JsonDiffMode } from '../sync';
4
5
  import type { PushOptions } from './push/options';
5
6
  import { type PushScope } from './push/consts';
6
7
  export interface PushExecutionResult {
7
8
  success: boolean;
8
9
  }
10
+ export declare function noContentFoundWarningDetails(contentDir: string): Readonly<{
11
+ contentDir: string;
12
+ expectedFiles: readonly string[];
13
+ suggestion: string;
14
+ }>;
15
+ export declare function contentSummaryHasPushableContent(summary: ContentSummary): boolean;
9
16
  type MergeRemoteValidationInput = Readonly<{
10
17
  target: EnvTarget;
11
18
  pushScope: PushScope;
@@ -11,6 +11,7 @@
11
11
  * riverbankcms push pages # Push pages with blocks
12
12
  * riverbankcms push pages home # Push specific page with blocks
13
13
  * riverbankcms push navigation # Push navigation menus
14
+ * riverbankcms push settings # Push site settings
14
15
  * riverbankcms push footer # Push footer content
15
16
  * riverbankcms push theme # Push activeTheme from config (or 'current')
16
17
  * riverbankcms push theme modern # Push specific theme file
@@ -18,6 +19,7 @@
18
19
  * riverbankcms push --dry-run # Show what would be pushed
19
20
  */
20
21
  import { Command } from 'commander';
22
+ export { contentSummaryHasPushableContent, noContentFoundWarningDetails } from './push-execute';
21
23
  export { VALID_PUSH_SCOPES, isValidPushScope, type PushScope } from './push/consts';
22
24
  export { calculateMetadataUpdates, type MetadataUpdateFlags } from './push/metadata';
23
25
  export { filterLocalContent, type FilterResult } from './push/filter';
@@ -12,6 +12,7 @@ export interface LocalEntry {
12
12
  status?: 'draft' | 'published';
13
13
  hasUnpublishedChanges?: boolean;
14
14
  slug?: string;
15
+ manualOrder?: number;
15
16
  }
16
17
  export declare class LegacyEntryTitleError extends Error {
17
18
  readonly filePath: string;
@@ -376,6 +377,7 @@ export interface ContentSummary {
376
377
  export declare function getContentSummary(contentDir: string): Promise<ContentSummary>;
377
378
  export interface EntryMetadata {
378
379
  pulledAt: string;
380
+ manualOrder?: string[];
379
381
  entries: Record<string, {
380
382
  id?: string;
381
383
  createdAt?: string;
@@ -397,6 +399,10 @@ export interface NavigationMetadata {
397
399
  updatedAt?: string;
398
400
  }>;
399
401
  }
402
+ export interface SettingsMetadata {
403
+ pulledAt: string;
404
+ updatedAt: string | null;
405
+ }
400
406
  /**
401
407
  * Read metadata for a content type from .meta/ directory
402
408
  *
@@ -412,6 +418,13 @@ export declare function readEntriesMeta(contentDir: string, contentType: string)
412
418
  * @returns Map of content type to metadata
413
419
  */
414
420
  export declare function readAllMeta(contentDir: string): Promise<Map<string, EntryMetadata>>;
421
+ /**
422
+ * Read settings metadata from .meta/settings.json
423
+ *
424
+ * @param contentDir - Base content directory
425
+ * @returns Settings metadata or null if not found
426
+ */
427
+ export declare function readSettingsMeta(contentDir: string): Promise<SettingsMetadata | null>;
415
428
  /**
416
429
  * Read pages metadata from .meta/pages.json
417
430
  *
@@ -50,7 +50,7 @@ export declare function writeNavigation(contentDir: string, pulledNavigation: Pu
50
50
  *
51
51
  * Format: content/settings.json
52
52
  */
53
- export declare function writeSettings(contentDir: string, pulledSettings: PulledSettings): Promise<string>;
53
+ export declare function writeSettings(contentDir: string, pulledSettings: PulledSettings, options?: WriterOptions): Promise<string>;
54
54
  /**
55
55
  * Write forms to content directory
56
56
  *
@@ -195,6 +195,7 @@ export declare function updateMetadataAfterPush(contentDir: string, remoteConten
195
195
  updatedAt: string;
196
196
  createdAt?: string;
197
197
  }>;
198
+ settingsUpdatedAt?: string | null;
198
199
  forms?: Array<{
199
200
  slug: string;
200
201
  updatedAt: string;
@@ -97,6 +97,7 @@ export interface PulledEntryOutput {
97
97
  slug?: string;
98
98
  /** Resolved title (routable title when present, otherwise content title) */
99
99
  title: string;
100
+ manualOrder?: number;
100
101
  }
101
102
  /**
102
103
  * Map an entry from API response to pull output format.
@@ -109,6 +110,7 @@ export declare function mapEntryForOutput<T extends {
109
110
  hasUnpublishedChanges: boolean;
110
111
  slug?: string;
111
112
  title: string;
113
+ manualOrder?: number;
112
114
  }>(entry: T): PulledEntryOutput;
113
115
  /**
114
116
  * Parse pagination options from command flags.
@@ -5,9 +5,9 @@ export type CliPageIdentifier = Brand<string, 'SdkCliPageIdentifier'>;
5
5
  export type CliBlockIdentifier = Brand<string, 'SdkCliBlockIdentifier'>;
6
6
  export type CliFormSlug = Brand<string, 'SdkCliFormSlug'>;
7
7
  export type CliNavigationMenuName = Brand<string, 'SdkCliNavigationMenuName'>;
8
- export declare const asCliContentTypeKey: (value: string) => CliContentTypeKey;
9
- export declare const asCliEntryIdentifier: (value: string) => CliEntryIdentifier;
10
- export declare const asCliPageIdentifier: (value: string) => CliPageIdentifier;
11
- export declare const asCliBlockIdentifier: (value: string) => CliBlockIdentifier;
12
- export declare const asCliFormSlug: (value: string) => CliFormSlug;
13
- export declare const asCliNavigationMenuName: (value: string) => CliNavigationMenuName;
8
+ export declare const unsafeAsCliContentTypeKey: (value: string) => CliContentTypeKey;
9
+ export declare const unsafeAsCliEntryIdentifier: (value: string) => CliEntryIdentifier;
10
+ export declare const unsafeAsCliPageIdentifier: (value: string) => CliPageIdentifier;
11
+ export declare const unsafeAsCliBlockIdentifier: (value: string) => CliBlockIdentifier;
12
+ export declare const unsafeAsCliFormSlug: (value: string) => CliFormSlug;
13
+ export declare const unsafeAsCliNavigationMenuName: (value: string) => CliNavigationMenuName;
@@ -68,6 +68,11 @@ export type CliCommandOutcome<TSubject> = Readonly<{
68
68
  identifier: string;
69
69
  message: string;
70
70
  subject?: TSubject;
71
+ }> | Readonly<{
72
+ status: 'preflight_failed';
73
+ identifier: string;
74
+ message: string;
75
+ subject?: TSubject;
71
76
  }>;
72
77
  export type CliCommandExecutionReport<TSubject> = Readonly<{
73
78
  outcomes: readonly CliCommandOutcome<TSubject>[];
@@ -19,9 +19,13 @@ export type CommandSurfaceDispatchInput = Readonly<{
19
19
  }>;
20
20
  export type CommandSurfaceDispatchDependencies = Readonly<{
21
21
  compileCommandSurface?: (surface: CommandSurface, input: CommandSurfaceDispatchInput) => CommandSurfaceCompileResult;
22
+ preflightCommandSurfaceAsReport?: (surface: CommandSurfaceCompileSuccess, input: CommandSurfaceDispatchInput) => CommandSurfaceExecutionReport;
22
23
  executeCommandSurfaceAsReport?: (surface: CommandSurfaceCompileSuccess, input: CommandSurfaceDispatchInput) => Promise<CommandSurfaceExecutionReport>;
23
24
  }>;
24
25
  export declare function compileContentPushExecutionPlan(plan: ContentPushExecutionPlan, input: CommandSurfaceDispatchInput, dependencies?: CommandSurfaceDispatchDependencies): Result<CompiledContentPushExecutionPlan, ContentPushExecutionReport>;
26
+ export declare function preflightContentPushExecutionPlan(steps: readonly CompiledContentPushExecutionStep[], input: CommandSurfaceDispatchInput, dependencies?: CommandSurfaceDispatchDependencies): ContentPushExecutionReport;
27
+ export declare function contentPushExecutionReportHasFailures(report: ContentPushExecutionReport): boolean;
25
28
  export declare function executeCommandSurfaceAsReport(surface: CommandSurfaceCompileSuccess, input: CommandSurfaceDispatchInput): Promise<CommandSurfaceExecutionReport>;
29
+ export declare function preflightCommandSurfaceAsReport(surface: CommandSurfaceCompileSuccess, input: CommandSurfaceDispatchInput): CommandSurfaceExecutionReport;
26
30
  export declare function skippedRemainingCommandReports(steps: readonly CompiledContentPushExecutionStep[]): CommandSurfaceExecutionReport[];
27
31
  export declare function commandSurfaceReportToSyncResult(report: CommandSurfaceExecutionReport): SyncResult;
@@ -53,7 +53,7 @@ export type PageCommandReportSubject = Readonly<{
53
53
  counter: BlockCommandSyncCounter;
54
54
  }>;
55
55
  export type PageCommandExecutionReport = CliCommandExecutionReport<PageCommandReportSubject>;
56
- type PageCommandCompiledPlan = Pick<CliPageCommandCompileSuccess, 'plan' | 'reportedCommands' | 'warnings'>;
56
+ export type PageCommandCompiledPlan = Pick<CliPageCommandCompileSuccess, 'plan' | 'reportedCommands' | 'warnings'>;
57
57
  export declare function compilePagePushCommands(input: CliPageCommandCompileInput): Result<CliPageCommandCompileSuccess, CliPageCommandCompileError>;
58
58
  export type PageCommandRoutingDecision = Readonly<{
59
59
  kind: 'no_page_changes';
@@ -75,5 +75,8 @@ export declare function pageCommandExecutionToReport(input: Readonly<{
75
75
  execution: CliPageCommandExecutionResult;
76
76
  compiledPlan: PageCommandCompiledPlan;
77
77
  }>): PageCommandExecutionReport;
78
+ export declare function preflightPageCommandPlanAsReport(input: Readonly<{
79
+ compiledPlan: PageCommandCompiledPlan;
80
+ blockFieldExtensions?: BlockFieldExtensionsMap;
81
+ }>): PageCommandExecutionReport;
78
82
  export declare function pageCommandReportToSyncResult(report: PageCommandExecutionReport): SyncResult;
79
- export {};
@@ -6,7 +6,7 @@ import type { OutputContext } from '../output';
6
6
  import { type ContentDiff, type SyncResult } from '../sync';
7
7
  import { type CommandSurfaceDispatchDependencies } from './commandSurfaceDispatch';
8
8
  import { planContentPushExecution } from './pushExecutionPlan';
9
- import type { CommandSurface, CommandSurfaceCompileResult, CommandSurfaceCompileSuccess, CommandSurfaceExecutionReport, ContentPushScope, ContentPushExecutionPlan, ContentPushExecutionReport, ContentPushExecutionStep } from './pushExecutionTypes';
9
+ import type { CommandSurface, CommandSurfaceCompileResult, CommandSurfaceCompileSuccess, CommandSurfaceExecutionReport, CompiledContentPushExecutionPlan, ContentPushScope, ContentPushExecutionPlan, ContentPushExecutionReport, ContentPushExecutionStep } from './pushExecutionTypes';
10
10
  import type { compilePagePushCommands } from './pageCommands';
11
11
  export { planContentPushExecution };
12
12
  export type { CommandSurface, CommandSurfaceCompileResult, CommandSurfaceCompileSuccess, CommandSurfaceExecutionReport, ContentPushScope, ContentPushExecutionPlan, ContentPushExecutionReport, ContentPushExecutionStep, };
@@ -26,4 +26,13 @@ export type ContentPushExecutionInput = Readonly<{
26
26
  }>;
27
27
  export declare function executeContentPushPlan(input: ContentPushExecutionInput): Promise<SyncResult>;
28
28
  export declare function executeContentPushPlanAsCommandReport(input: ContentPushExecutionInput, dependencies?: CommandSurfaceDispatchDependencies): Promise<ContentPushExecutionReport>;
29
+ export type ContentPushPreflightOutcome = Readonly<{
30
+ ok: true;
31
+ compiled: CompiledContentPushExecutionPlan;
32
+ report: ContentPushExecutionReport;
33
+ }> | Readonly<{
34
+ ok: false;
35
+ report: ContentPushExecutionReport;
36
+ }>;
37
+ export declare function preflightContentPushPlanAsCommandReport(input: ContentPushExecutionInput, dependencies?: CommandSurfaceDispatchDependencies): ContentPushPreflightOutcome;
29
38
  export declare function contentPushExecutionReportToSyncResult(report: ContentPushExecutionReport): SyncResult;