@riverbankcms/sdk 0.84.2 → 0.85.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.
@@ -55,7 +55,7 @@ export type { RouteMetadataPayload, RouteMetadataResponse } from "./routes";
55
55
  export { getBookingSettingsRequest, updateBookingSettingsRequest, createAppointmentRequest, createCourseRequest, updateCourseRequest, deleteCourseRequest, deleteCourseProgramRequest, duplicateCourseRequest, addCourseEnrollmentRequest, addEventOccurrenceAttendeeRequest, updateCourseEnrollmentRequest, } from "./bookings";
56
56
  export type { AppointmentService, AppointmentServiceOnlineDetails, AppointmentServiceOnlineDetailsInput, } from "./bookingOperations";
57
57
  export type { BookingPricing } from "./bookingConfig";
58
- export { DEFAULT_APPOINTMENT_STAFF_DIGEST_LOCAL_SEND_TIME } from "./bookingConfig";
58
+ export { DEFAULT_APPOINTMENT_STAFF_DIGEST_LOCAL_SEND_TIME, DIRECT_CHECKOUT_COLLECTION_OPTION_KINDS, } from "./bookingConfig";
59
59
  export { BOOKING_LEDGER_CANCELLATION_MODE_VALUES, BOOKING_LEDGER_DATE_BASIS_VALUES, BOOKING_LEDGER_KIND_VALUES, BOOKING_LEDGER_PERIOD_PRESET_VALUES, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES, BOOKING_QUESTION_ANSWER_EXPORT_SCOPE_VALUES, CUSTOMER_MEMBERSHIP_STATUS_VALUES, CUSTOMER_PASS_STATUS_VALUES, } from "./bookingRecords";
60
60
  export type { BookingQuestionAnswerExportScopeKind, ExportBookingQuestionAnswersCsvRequest, } from "./bookingRecords";
61
61
  export { getEmailSettingsRequest, updateEmailSettingsRequest, sendTestEmailRequest, previewEmailTemplateRequest, } from "./emailSettings";
@@ -17364,13 +17364,13 @@ export type Enums<DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["En
17364
17364
  } ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"] : never = never> = DefaultSchemaEnumNameOrOptions extends {
17365
17365
  schema: keyof DatabaseWithoutInternals;
17366
17366
  } ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName] : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"] ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions] : never;
17367
- export type CompositeTypes<PublicCompositeTypeNameOrOptions extends {
17367
+ export type CompositeTypes<PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"] | {
17368
17368
  schema: keyof DatabaseWithoutInternals;
17369
17369
  }, CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
17370
17370
  schema: keyof DatabaseWithoutInternals;
17371
17371
  } ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"] : never = never> = PublicCompositeTypeNameOrOptions extends {
17372
17372
  schema: keyof DatabaseWithoutInternals;
17373
- } ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] : never;
17373
+ } ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"] ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions] : never;
17374
17374
  export declare const Constants: {
17375
17375
  readonly graphql_public: {
17376
17376
  readonly Enums: {};
@@ -0,0 +1,53 @@
1
+ import type { PulledContent } from '../client/management';
2
+ import type { LocalContent } from './content/reader';
3
+ export declare const CANONICAL_EVENT_ENTRY_TYPE = "event";
4
+ export declare const EVENT_MIGRATION_COMMAND = "riverbankcms migrate events";
5
+ export declare const EVENT_PUSH_COMMAND = "riverbankcms push events";
6
+ export declare const EVENT_PULL_COMMAND = "riverbankcms pull events";
7
+ export type CanonicalEntrySurface = typeof CANONICAL_EVENT_ENTRY_TYPE;
8
+ export type CanonicalEntryOperation = 'push' | 'pull';
9
+ export type CanonicalEntryPolicy = Readonly<{
10
+ contentType: CanonicalEntrySurface;
11
+ migrationCommand: string;
12
+ commands: Readonly<Record<CanonicalEntryOperation, string>>;
13
+ }>;
14
+ export type CanonicalEntryScopeViolation = Readonly<{
15
+ contentType: CanonicalEntrySurface;
16
+ message: string;
17
+ suggestion: string;
18
+ }>;
19
+ export type CanonicalEntrySyncDecision = Readonly<{
20
+ tag: 'allow';
21
+ }> | Readonly<{
22
+ tag: 'reject';
23
+ violation: CanonicalEntryScopeViolation;
24
+ }> | Readonly<{
25
+ tag: 'allow-with-canonical-exclusions';
26
+ policies: readonly CanonicalEntryPolicy[];
27
+ }>;
28
+ export type CanonicalEntryFilterResult<TContent> = Readonly<{
29
+ content: TContent;
30
+ removedEntryCount: number;
31
+ removedContentTypes: readonly CanonicalEntrySurface[];
32
+ }>;
33
+ export declare function isCanonicalEventEntryType(contentType: string | undefined): contentType is CanonicalEntrySurface;
34
+ export declare function getCanonicalEntryPolicy(contentType: string | undefined): CanonicalEntryPolicy | null;
35
+ export declare function getCanonicalEntrySyncDecision(input: {
36
+ scope: string;
37
+ contentType?: string;
38
+ operation: CanonicalEntryOperation;
39
+ }): CanonicalEntrySyncDecision;
40
+ export declare function getCanonicalEntryScopeViolation(input: {
41
+ scope: string;
42
+ contentType?: string;
43
+ operation: CanonicalEntryOperation;
44
+ }): CanonicalEntryScopeViolation | null;
45
+ export declare function shouldExcludeCanonicalEntries(decision: CanonicalEntrySyncDecision): boolean;
46
+ export declare function filterGenericEntryContentTypes(contentTypes: readonly string[]): string[];
47
+ export declare function stripCanonicalEventEntriesFromLocalContent(content: LocalContent): CanonicalEntryFilterResult<LocalContent>;
48
+ export declare function stripCanonicalEventEntriesFromPulledContent(content: PulledContent): CanonicalEntryFilterResult<PulledContent>;
49
+ export declare function findLegacyEventEntryFiles(contentDir: string): Promise<string[]>;
50
+ export declare function formatLegacyEventEntryWarning(files: readonly string[]): Readonly<{
51
+ files: readonly string[];
52
+ suggestion: string;
53
+ }>;
@@ -5,6 +5,7 @@
5
5
  *
6
6
  * Usage:
7
7
  * riverbankcms migrate entries [contentType] [--content-dir <dir>] [--dry-run] [--force] [--yes]
8
+ * riverbankcms migrate events [--content-dir <dir>] [--dry-run] [--yes]
8
9
  */
9
10
  import { Command } from 'commander';
10
11
  export declare const migrateCommand: Command;
@@ -15,12 +15,18 @@
15
15
  * riverbankcms pull footer # Pull footer content
16
16
  */
17
17
  import { Command } from 'commander';
18
- import type { PulledContent } from '../../client/management';
18
+ import type { ManagementClient, PulledContent } from '../../client/management';
19
+ import type { OutputContext } from '../output';
19
20
  import type { EntryBaseSnapshotTarget } from '../merge-remote/entrySnapshots';
20
21
  export declare function entryBaseSnapshotTargetForPull(input: Readonly<{
21
22
  isRemote: boolean;
22
23
  siteId: string;
23
24
  }>): EntryBaseSnapshotTarget;
25
+ /**
26
+ * Fetch broad generic content, including paginated entry payloads when needed,
27
+ * then remove canonical/owner-managed entry types before diffing or writing.
28
+ */
29
+ export declare function pullAllContentWithCanonicalEntryPolicy(client: ManagementClient, output: OutputContext): Promise<PulledContent>;
24
30
  export declare function createScopedPullContent(meta: PulledContent['meta'], overrides: Partial<Omit<PulledContent, 'meta'>>): PulledContent;
25
31
  /**
26
32
  * Determines whether the pull command should prompt for overwrite confirmation.
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import type { NavigationAuthoringLinkInput, NavigationLocalItemInput } from '../../../../api/src/navigation';
8
8
  import type { SdkEventPricingInput } from '../../../../api/src/sdk-event-pricing';
9
+ import type { EventPaymentTermsInput } from '../../client/management/types';
9
10
  import type { Theme } from '../../contracts';
10
11
  export interface LocalEntry {
11
12
  identifier: string;
@@ -172,6 +173,7 @@ export interface LocalEvent {
172
173
  schedule?: LocalEventSchedule;
173
174
  capacity?: number | null;
174
175
  pricing?: LocalEventPricing;
176
+ paymentTerms?: EventPaymentTermsInput;
175
177
  venueRef?: string | null;
176
178
  categoryRef?: string | null;
177
179
  content?: LocalEventContent;
@@ -0,0 +1,73 @@
1
+ import type { LocalEvent } from '../content/reader';
2
+ export type EventMigrationPlanItem = Readonly<{
3
+ tag: 'mergeLegacyIntoEvent';
4
+ legacyFilePath: string;
5
+ eventFilePath: string;
6
+ eventIdentifier: string;
7
+ mergedEvent: LocalEvent;
8
+ mergedFields: readonly string[];
9
+ }> | Readonly<{
10
+ tag: 'archiveLegacyOnly';
11
+ legacyFilePath: string;
12
+ eventFilePath: string;
13
+ eventIdentifier: string;
14
+ reason: string;
15
+ }> | Readonly<{
16
+ tag: 'conflict';
17
+ legacyFilePath: string;
18
+ eventIdentifier: string;
19
+ conflicts: readonly string[];
20
+ }> | Readonly<{
21
+ tag: 'ambiguousMatch';
22
+ legacyFilePath: string;
23
+ candidateEventIdentifiers: readonly string[];
24
+ }> | Readonly<{
25
+ tag: 'unmappableLegacyFields';
26
+ legacyFilePath: string;
27
+ eventIdentifier?: string;
28
+ fields: readonly string[];
29
+ }> | Readonly<{
30
+ tag: 'orphanedLegacy';
31
+ legacyFilePath: string;
32
+ legacyIdentifier: string;
33
+ reason: string;
34
+ }> | Readonly<{
35
+ tag: 'invalidLegacyShape';
36
+ legacyFilePath: string;
37
+ reason: string;
38
+ }>;
39
+ export type WritableEventMigrationPlanItem = Extract<EventMigrationPlanItem, {
40
+ tag: 'mergeLegacyIntoEvent' | 'archiveLegacyOnly';
41
+ }>;
42
+ export type BlockedEventMigrationPlanItem = Exclude<EventMigrationPlanItem, WritableEventMigrationPlanItem>;
43
+ export type EventMigrationPlan = Readonly<{
44
+ tag: 'writable';
45
+ contentDir: string;
46
+ items: readonly WritableEventMigrationPlanItem[];
47
+ }> | Readonly<{
48
+ tag: 'blocked';
49
+ contentDir: string;
50
+ items: readonly EventMigrationPlanItem[];
51
+ blockers: readonly BlockedEventMigrationPlanItem[];
52
+ }>;
53
+ export type MigrateEventsResult = Readonly<{
54
+ status: 'writable' | 'blocked';
55
+ legacyFilesFound: number;
56
+ eventsToWrite: number;
57
+ legacyFilesToArchive: number;
58
+ merged: number;
59
+ archiveOnly: number;
60
+ conflicts: number;
61
+ ambiguous: number;
62
+ unmappable: number;
63
+ orphaned: number;
64
+ invalid: number;
65
+ dryRun: boolean;
66
+ items: readonly EventMigrationPlanItem[];
67
+ }>;
68
+ export type MigrateEventsOptions = Readonly<{
69
+ contentDir: string;
70
+ dryRun?: boolean;
71
+ }>;
72
+ export declare function planEventMigration(contentDir: string): Promise<EventMigrationPlan>;
73
+ export declare function migrateEvents(options: MigrateEventsOptions): Promise<MigrateEventsResult>;
@@ -8,4 +8,4 @@
8
8
  * 1. This constant
9
9
  * 2. The "version" field in package.json
10
10
  */
11
- export declare const SDK_VERSION = "0.84.2";
11
+ export declare const SDK_VERSION = "0.85.0";
@@ -457,6 +457,24 @@ export declare const upsertEventSeriesCommandSchema: z.ZodObject<{
457
457
  }, z.core.$strict>, z.ZodObject<{
458
458
  kind: z.ZodLiteral<"ticket_types">;
459
459
  currency: z.ZodOptional<z.ZodString>;
460
+ ticketTypes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
461
+ identifier: z.ZodString;
462
+ cmsTicketTypeId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
463
+ name: z.ZodString;
464
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
465
+ priceAmount: z.ZodNumber;
466
+ priceCurrency: z.ZodOptional<z.ZodString>;
467
+ isActive: z.ZodOptional<z.ZodBoolean>;
468
+ sortOrder: z.ZodOptional<z.ZodNumber>;
469
+ capacityLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
470
+ attendanceScope: z.ZodOptional<z.ZodEnum<{
471
+ both: "both";
472
+ in_person: "in_person";
473
+ online: "online";
474
+ }>>;
475
+ saleStartsAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
476
+ saleEndsAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
477
+ }, z.core.$strict>>>>;
460
478
  }, z.core.$strict>, z.ZodObject<{
461
479
  kind: z.ZodLiteral<"manual_payment">;
462
480
  instructions: z.ZodOptional<z.ZodString>;
@@ -493,6 +511,7 @@ export declare const upsertEventSeriesCommandSchema: z.ZodObject<{
493
511
  contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
494
512
  }, z.core.$strict>>;
495
513
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
514
+ paymentTerms: z.ZodOptional<z.ZodUnknown>;
496
515
  presentation: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
497
516
  tags: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
498
517
  staffRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<StaffRef, string>>>>>;
@@ -1398,6 +1417,24 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1398
1417
  }, z.core.$strict>, z.ZodObject<{
1399
1418
  kind: z.ZodLiteral<"ticket_types">;
1400
1419
  currency: z.ZodOptional<z.ZodString>;
1420
+ ticketTypes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
1421
+ identifier: z.ZodString;
1422
+ cmsTicketTypeId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1423
+ name: z.ZodString;
1424
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1425
+ priceAmount: z.ZodNumber;
1426
+ priceCurrency: z.ZodOptional<z.ZodString>;
1427
+ isActive: z.ZodOptional<z.ZodBoolean>;
1428
+ sortOrder: z.ZodOptional<z.ZodNumber>;
1429
+ capacityLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1430
+ attendanceScope: z.ZodOptional<z.ZodEnum<{
1431
+ both: "both";
1432
+ in_person: "in_person";
1433
+ online: "online";
1434
+ }>>;
1435
+ saleStartsAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1436
+ saleEndsAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1437
+ }, z.core.$strict>>>>;
1401
1438
  }, z.core.$strict>, z.ZodObject<{
1402
1439
  kind: z.ZodLiteral<"manual_payment">;
1403
1440
  instructions: z.ZodOptional<z.ZodString>;
@@ -1434,6 +1471,7 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1434
1471
  contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
1435
1472
  }, z.core.$strict>>;
1436
1473
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1474
+ paymentTerms: z.ZodOptional<z.ZodUnknown>;
1437
1475
  presentation: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1438
1476
  tags: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1439
1477
  staffRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<StaffRef, string>>>>>;
@@ -2254,6 +2292,24 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
2254
2292
  }, z.core.$strict>, z.ZodObject<{
2255
2293
  kind: z.ZodLiteral<"ticket_types">;
2256
2294
  currency: z.ZodOptional<z.ZodString>;
2295
+ ticketTypes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
2296
+ identifier: z.ZodString;
2297
+ cmsTicketTypeId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2298
+ name: z.ZodString;
2299
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2300
+ priceAmount: z.ZodNumber;
2301
+ priceCurrency: z.ZodOptional<z.ZodString>;
2302
+ isActive: z.ZodOptional<z.ZodBoolean>;
2303
+ sortOrder: z.ZodOptional<z.ZodNumber>;
2304
+ capacityLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2305
+ attendanceScope: z.ZodOptional<z.ZodEnum<{
2306
+ both: "both";
2307
+ in_person: "in_person";
2308
+ online: "online";
2309
+ }>>;
2310
+ saleStartsAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2311
+ saleEndsAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2312
+ }, z.core.$strict>>>>;
2257
2313
  }, z.core.$strict>, z.ZodObject<{
2258
2314
  kind: z.ZodLiteral<"manual_payment">;
2259
2315
  instructions: z.ZodOptional<z.ZodString>;
@@ -2290,6 +2346,7 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
2290
2346
  contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
2291
2347
  }, z.core.$strict>>;
2292
2348
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2349
+ paymentTerms: z.ZodOptional<z.ZodUnknown>;
2293
2350
  presentation: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2294
2351
  tags: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
2295
2352
  staffRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<StaffRef, string>>>>>;
@@ -61,4 +61,16 @@ export declare function buildSurfaceAwareSiteOrigin(input: Readonly<{
61
61
  baseSiteOrigin: string;
62
62
  requestOrigin: string;
63
63
  }>): string | null;
64
+ export declare function buildSurfaceSiteHostname(input: Readonly<{
65
+ siteSlug: string | null | undefined;
66
+ surfaceId: SurfaceId;
67
+ tier: SurfaceTier;
68
+ }>): string | null;
69
+ export declare function buildSurfaceSiteOrigin(input: Readonly<{
70
+ siteSlug: string | null | undefined;
71
+ surfaceId: SurfaceId;
72
+ tier: SurfaceTier;
73
+ protocol?: "http" | "https";
74
+ port?: string | null;
75
+ }>): string | null;
64
76
  export declare function extractSurfaceAwareSiteSlug(value: string | URL | null | undefined): string | null;