@riverbankcms/sdk 0.60.9 → 0.60.12

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 (45) hide show
  1. package/dist/_dts/api/src/accessAdmin.d.ts +102 -0
  2. package/dist/_dts/api/src/common/envelope.d.ts +1 -1
  3. package/dist/_dts/api/src/domains.d.ts +14 -13
  4. package/dist/_dts/api/src/endpoints.d.ts +32 -0
  5. package/dist/_dts/api/src/index.d.ts +4 -3
  6. package/dist/_dts/api/src/navigation/linkValue.d.ts +15 -2
  7. package/dist/_dts/api/src/navigation.d.ts +2 -0
  8. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +15 -1
  9. package/dist/_dts/blocks/src/index.d.ts +1 -1
  10. package/dist/_dts/blocks/src/system/node/fragments/ctaButton.d.ts +2 -2
  11. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
  12. package/dist/_dts/blocks/src/system/types/link.d.ts +7 -1
  13. package/dist/_dts/core/src/participant-identity.d.ts +72 -0
  14. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +96 -60
  15. package/dist/_dts/db/src/schemas/forms.d.ts +135 -24
  16. package/dist/_dts/sdk/src/contracts/content.d.ts +7 -1
  17. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
  18. package/dist/_dts/sdk/src/version.d.ts +1 -1
  19. package/dist/_dts/theme-core/src/buttons/classNames.d.ts +21 -0
  20. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  21. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -0
  22. package/dist/cli/index.mjs +188 -9
  23. package/dist/client/bookings.mjs +808 -149
  24. package/dist/client/client.mjs +553 -130
  25. package/dist/client/hooks.mjs +119 -0
  26. package/dist/client/rendering/client.mjs +412 -113
  27. package/dist/client/rendering/islands.mjs +4605 -4361
  28. package/dist/client/rendering.mjs +580 -157
  29. package/dist/preview-next/before-render.mjs +57 -0
  30. package/dist/preview-next/client/runtime.mjs +580 -151
  31. package/dist/preview-next/middleware.mjs +57 -0
  32. package/dist/server/components.mjs +293 -45
  33. package/dist/server/config-validation.mjs +119 -0
  34. package/dist/server/config.mjs +119 -0
  35. package/dist/server/data.mjs +119 -0
  36. package/dist/server/index.mjs +120 -1
  37. package/dist/server/next.mjs +300 -52
  38. package/dist/server/page-converter.mjs +62 -0
  39. package/dist/server/prebuild.mjs +1 -1
  40. package/dist/server/rendering/server.mjs +293 -45
  41. package/dist/server/rendering.mjs +293 -45
  42. package/dist/server/routing.mjs +159 -29
  43. package/dist/server/server.mjs +120 -1
  44. package/package.json +1 -1
  45. package/dist/_dts/blocks/src/system/runtime/shared/themedButtonClass.d.ts +0 -11
@@ -2083,6 +2083,63 @@ var init_endpoints = __esm({
2083
2083
  auth: "user",
2084
2084
  responseKind: "json"
2085
2085
  },
2086
+ updateRegisteredDomainContact: {
2087
+ path: "/domains/{domainId}/registrar/contact",
2088
+ method: "POST",
2089
+ errors: [
2090
+ "validation:invalid_input",
2091
+ "resource:not_found",
2092
+ "auth:forbidden",
2093
+ "external:service_error",
2094
+ "external:registrar_orphaned_contact_profile",
2095
+ "server:internal_error"
2096
+ ],
2097
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
2098
+ auth: "user",
2099
+ responseKind: "json"
2100
+ },
2101
+ setRegisteredDomainPrivacy: {
2102
+ path: "/domains/{domainId}/registrar/privacy",
2103
+ method: "POST",
2104
+ errors: [
2105
+ "validation:invalid_input",
2106
+ "resource:not_found",
2107
+ "auth:forbidden",
2108
+ "external:service_error",
2109
+ "server:internal_error"
2110
+ ],
2111
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
2112
+ auth: "user",
2113
+ responseKind: "json"
2114
+ },
2115
+ setRegisteredDomainAutoRenew: {
2116
+ path: "/domains/{domainId}/registrar/auto-renew",
2117
+ method: "POST",
2118
+ errors: [
2119
+ "validation:invalid_input",
2120
+ "resource:not_found",
2121
+ "auth:forbidden",
2122
+ "external:service_error",
2123
+ "server:internal_error"
2124
+ ],
2125
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
2126
+ auth: "user",
2127
+ responseKind: "json"
2128
+ },
2129
+ getRegisteredDomainRenewalPosture: {
2130
+ path: "/domains/{domainId}/registrar/renewal",
2131
+ method: "GET",
2132
+ errors: [
2133
+ "validation:invalid_input",
2134
+ "resource:not_found",
2135
+ "auth:forbidden",
2136
+ "external:service_error",
2137
+ "server:internal_error"
2138
+ ],
2139
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
2140
+ auth: "user",
2141
+ responseKind: "json"
2142
+ },
2086
2143
  retryDomainVercel: {
2087
2144
  path: "/domains/{domainId}/vercel",
2088
2145
  method: "POST",
@@ -5970,10 +6027,71 @@ var init_participants = __esm({
5970
6027
  });
5971
6028
 
5972
6029
  // ../core/src/participant-identity.ts
6030
+ var PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD, PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATIONS;
5973
6031
  var init_participant_identity = __esm({
5974
6032
  "../core/src/participant-identity.ts"() {
5975
6033
  "use strict";
5976
6034
  init_assertNever();
6035
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD = {
6036
+ participant_id: {
6037
+ field: "participant_id",
6038
+ role: "canonical_link",
6039
+ canonicalSource: "booking_participants.id",
6040
+ contractAction: "tighten_in_839",
6041
+ notes: "Canonical person-subject link for a participation. #839 should enforce this once preflight is clean."
6042
+ },
6043
+ display_name: {
6044
+ field: "display_name",
6045
+ role: "contextual_snapshot",
6046
+ canonicalSource: "booking_participants.display_name for live identity",
6047
+ contractAction: "retain_as_snapshot",
6048
+ notes: "Participation-time display context. Readers must not treat it as mutable live participant identity."
6049
+ },
6050
+ email: {
6051
+ field: "email",
6052
+ role: "contextual_snapshot",
6053
+ canonicalSource: "booking_participants.email_normalized for live email identity",
6054
+ contractAction: "retain_as_snapshot",
6055
+ notes: "Participation-time contact snapshot used for notifications/context. Live identity belongs to the participant row."
6056
+ },
6057
+ email_normalized: {
6058
+ field: "email_normalized",
6059
+ role: "contextual_snapshot",
6060
+ canonicalSource: "booking_participants.email_normalized for live email identity",
6061
+ contractAction: "retain_as_snapshot",
6062
+ notes: "Normalized snapshot/dedupe helper for the participation slot, not live person authority."
6063
+ },
6064
+ phone: {
6065
+ field: "phone",
6066
+ role: "contextual_snapshot",
6067
+ canonicalSource: "booking_participants.phone for live phone identity",
6068
+ contractAction: "retain_as_snapshot",
6069
+ notes: "Participation-time phone context. Live identity belongs to the participant row."
6070
+ },
6071
+ identity_state: {
6072
+ field: "identity_state",
6073
+ role: "materialization_state",
6074
+ canonicalSource: "booking_participants.identity_state for subject state",
6075
+ contractAction: "review_for_later_contract_cleanup",
6076
+ notes: "Slot materialization state: booker_supplied, contactable, portal_claimed, or staff_verified."
6077
+ },
6078
+ event_attendee_guest_id: {
6079
+ field: "event_attendee_guest_id",
6080
+ role: "compatibility_projection",
6081
+ canonicalSource: "canonical participant slot plus #838 event guest compatibility projection",
6082
+ contractAction: "retain_as_projection",
6083
+ notes: "Compatibility FK for event guest read models. It is not person identity authority."
6084
+ }
6085
+ };
6086
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATIONS = [
6087
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.participant_id,
6088
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.display_name,
6089
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email,
6090
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email_normalized,
6091
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.phone,
6092
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.identity_state,
6093
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.event_attendee_guest_id
6094
+ ];
5977
6095
  }
5978
6096
  });
5979
6097
 
@@ -8389,35 +8507,6 @@ var init_routableLink = __esm({
8389
8507
  }
8390
8508
  });
8391
8509
 
8392
- // ../api/src/navigation/matcher.ts
8393
- var init_matcher = __esm({
8394
- "../api/src/navigation/matcher.ts"() {
8395
- "use strict";
8396
- }
8397
- });
8398
-
8399
- // ../api/src/navigation.ts
8400
- var init_navigation = __esm({
8401
- "../api/src/navigation.ts"() {
8402
- "use strict";
8403
- init_envelope();
8404
- init_error_propagation();
8405
- init_navigationMenuValidation();
8406
- init_linkResolver();
8407
- init_routableLink();
8408
- init_matcher();
8409
- }
8410
- });
8411
-
8412
- // ../api/src/navigation/visibility.ts
8413
- var init_visibility = __esm({
8414
- "../api/src/navigation/visibility.ts"() {
8415
- "use strict";
8416
- init_types2();
8417
- init_isRecord();
8418
- }
8419
- });
8420
-
8421
8510
  // ../blocks/src/system/manifest/augmentManifest.ts
8422
8511
  function augmentManifest(manifest) {
8423
8512
  let augmentedFields = manifest.fields ?? [];
@@ -9706,6 +9795,14 @@ var init_media2 = __esm({
9706
9795
  }
9707
9796
  });
9708
9797
 
9798
+ // ../theme-core/src/buttons/classNames.ts
9799
+ var init_classNames = __esm({
9800
+ "../theme-core/src/buttons/classNames.ts"() {
9801
+ "use strict";
9802
+ init_types4();
9803
+ }
9804
+ });
9805
+
9709
9806
  // ../theme-core/src/tokens/resolver.ts
9710
9807
  var init_resolver = __esm({
9711
9808
  "../theme-core/src/tokens/resolver.ts"() {
@@ -9845,6 +9942,7 @@ var init_generateButtonCss = __esm({
9845
9942
  "../theme-core/src/buttons/generateButtonCss.ts"() {
9846
9943
  "use strict";
9847
9944
  init_types4();
9945
+ init_classNames();
9848
9946
  init_resolver();
9849
9947
  init_generateEffectsCSS();
9850
9948
  init_constants();
@@ -9879,6 +9977,7 @@ var init_buttons = __esm({
9879
9977
  "../theme-core/src/buttons/index.ts"() {
9880
9978
  "use strict";
9881
9979
  init_types4();
9980
+ init_classNames();
9882
9981
  init_generateButtonCss();
9883
9982
  init_generateDefaultButtonSystem();
9884
9983
  init_constants();
@@ -31184,7 +31283,38 @@ var init_data = __esm({
31184
31283
  var init_linkValue = __esm({
31185
31284
  "../api/src/navigation/linkValue.ts"() {
31186
31285
  "use strict";
31286
+ init_src();
31287
+ init_routableLink();
31288
+ }
31289
+ });
31290
+
31291
+ // ../api/src/navigation/matcher.ts
31292
+ var init_matcher = __esm({
31293
+ "../api/src/navigation/matcher.ts"() {
31294
+ "use strict";
31295
+ }
31296
+ });
31297
+
31298
+ // ../api/src/navigation.ts
31299
+ var init_navigation = __esm({
31300
+ "../api/src/navigation.ts"() {
31301
+ "use strict";
31302
+ init_envelope();
31303
+ init_error_propagation();
31304
+ init_navigationMenuValidation();
31305
+ init_linkResolver();
31187
31306
  init_routableLink();
31307
+ init_linkValue();
31308
+ init_matcher();
31309
+ }
31310
+ });
31311
+
31312
+ // ../api/src/navigation/visibility.ts
31313
+ var init_visibility = __esm({
31314
+ "../api/src/navigation/visibility.ts"() {
31315
+ "use strict";
31316
+ init_types2();
31317
+ init_isRecord();
31188
31318
  }
31189
31319
  });
31190
31320
 
@@ -2117,6 +2117,63 @@ var ENDPOINT_DEFINITIONS = {
2117
2117
  auth: "user",
2118
2118
  responseKind: "json"
2119
2119
  },
2120
+ updateRegisteredDomainContact: {
2121
+ path: "/domains/{domainId}/registrar/contact",
2122
+ method: "POST",
2123
+ errors: [
2124
+ "validation:invalid_input",
2125
+ "resource:not_found",
2126
+ "auth:forbidden",
2127
+ "external:service_error",
2128
+ "external:registrar_orphaned_contact_profile",
2129
+ "server:internal_error"
2130
+ ],
2131
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
2132
+ auth: "user",
2133
+ responseKind: "json"
2134
+ },
2135
+ setRegisteredDomainPrivacy: {
2136
+ path: "/domains/{domainId}/registrar/privacy",
2137
+ method: "POST",
2138
+ errors: [
2139
+ "validation:invalid_input",
2140
+ "resource:not_found",
2141
+ "auth:forbidden",
2142
+ "external:service_error",
2143
+ "server:internal_error"
2144
+ ],
2145
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
2146
+ auth: "user",
2147
+ responseKind: "json"
2148
+ },
2149
+ setRegisteredDomainAutoRenew: {
2150
+ path: "/domains/{domainId}/registrar/auto-renew",
2151
+ method: "POST",
2152
+ errors: [
2153
+ "validation:invalid_input",
2154
+ "resource:not_found",
2155
+ "auth:forbidden",
2156
+ "external:service_error",
2157
+ "server:internal_error"
2158
+ ],
2159
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
2160
+ auth: "user",
2161
+ responseKind: "json"
2162
+ },
2163
+ getRegisteredDomainRenewalPosture: {
2164
+ path: "/domains/{domainId}/registrar/renewal",
2165
+ method: "GET",
2166
+ errors: [
2167
+ "validation:invalid_input",
2168
+ "resource:not_found",
2169
+ "auth:forbidden",
2170
+ "external:service_error",
2171
+ "server:internal_error"
2172
+ ],
2173
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
2174
+ auth: "user",
2175
+ responseKind: "json"
2176
+ },
2120
2177
  retryDomainVercel: {
2121
2178
  path: "/domains/{domainId}/vercel",
2122
2179
  method: "POST",
@@ -6262,7 +6319,7 @@ var SimpleCache = class {
6262
6319
  };
6263
6320
 
6264
6321
  // src/version.ts
6265
- var SDK_VERSION = "0.60.9";
6322
+ var SDK_VERSION = "0.60.12";
6266
6323
 
6267
6324
  // src/client/error.ts
6268
6325
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -7553,6 +7610,68 @@ function toLocationCoordinates(value) {
7553
7610
  };
7554
7611
  }
7555
7612
 
7613
+ // ../core/src/participant-identity.ts
7614
+ var PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD = {
7615
+ participant_id: {
7616
+ field: "participant_id",
7617
+ role: "canonical_link",
7618
+ canonicalSource: "booking_participants.id",
7619
+ contractAction: "tighten_in_839",
7620
+ notes: "Canonical person-subject link for a participation. #839 should enforce this once preflight is clean."
7621
+ },
7622
+ display_name: {
7623
+ field: "display_name",
7624
+ role: "contextual_snapshot",
7625
+ canonicalSource: "booking_participants.display_name for live identity",
7626
+ contractAction: "retain_as_snapshot",
7627
+ notes: "Participation-time display context. Readers must not treat it as mutable live participant identity."
7628
+ },
7629
+ email: {
7630
+ field: "email",
7631
+ role: "contextual_snapshot",
7632
+ canonicalSource: "booking_participants.email_normalized for live email identity",
7633
+ contractAction: "retain_as_snapshot",
7634
+ notes: "Participation-time contact snapshot used for notifications/context. Live identity belongs to the participant row."
7635
+ },
7636
+ email_normalized: {
7637
+ field: "email_normalized",
7638
+ role: "contextual_snapshot",
7639
+ canonicalSource: "booking_participants.email_normalized for live email identity",
7640
+ contractAction: "retain_as_snapshot",
7641
+ notes: "Normalized snapshot/dedupe helper for the participation slot, not live person authority."
7642
+ },
7643
+ phone: {
7644
+ field: "phone",
7645
+ role: "contextual_snapshot",
7646
+ canonicalSource: "booking_participants.phone for live phone identity",
7647
+ contractAction: "retain_as_snapshot",
7648
+ notes: "Participation-time phone context. Live identity belongs to the participant row."
7649
+ },
7650
+ identity_state: {
7651
+ field: "identity_state",
7652
+ role: "materialization_state",
7653
+ canonicalSource: "booking_participants.identity_state for subject state",
7654
+ contractAction: "review_for_later_contract_cleanup",
7655
+ notes: "Slot materialization state: booker_supplied, contactable, portal_claimed, or staff_verified."
7656
+ },
7657
+ event_attendee_guest_id: {
7658
+ field: "event_attendee_guest_id",
7659
+ role: "compatibility_projection",
7660
+ canonicalSource: "canonical participant slot plus #838 event guest compatibility projection",
7661
+ contractAction: "retain_as_projection",
7662
+ notes: "Compatibility FK for event guest read models. It is not person identity authority."
7663
+ }
7664
+ };
7665
+ var PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATIONS = [
7666
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.participant_id,
7667
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.display_name,
7668
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email,
7669
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email_normalized,
7670
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.phone,
7671
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.identity_state,
7672
+ PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.event_attendee_guest_id
7673
+ ];
7674
+
7556
7675
  // ../media-core/src/transformRect.ts
7557
7676
  function isValidTransformRectStructure(rect) {
7558
7677
  if (!Array.isArray(rect) || rect.length !== 4) return false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riverbankcms/sdk",
3
- "version": "0.60.9",
3
+ "version": "0.60.12",
4
4
  "description": "Riverbank CMS SDK for headless content consumption",
5
5
  "main": "./dist/server/index.mjs",
6
6
  "module": "./dist/server/index.mjs",
@@ -1,11 +0,0 @@
1
- export type ThemedButtonVariant = 'primary' | 'secondary' | 'outline' | 'link';
2
- export type ThemedButtonSize = 'sm' | 'md' | 'lg' | 'xl';
3
- export type ThemedButtonClassName = string & {
4
- readonly __brand: 'ThemedButtonClassName';
5
- };
6
- export type ThemedButtonClassSpec = Readonly<{
7
- variant: ThemedButtonVariant;
8
- size: ThemedButtonSize;
9
- extraClassName?: string | null;
10
- }>;
11
- export declare function themedButtonClass(spec: ThemedButtonClassSpec): ThemedButtonClassName;