@riverbankcms/sdk 0.60.6 → 0.60.7

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 (92) hide show
  1. package/dist/_dts/api/src/appointmentSetup.d.ts +2 -2
  2. package/dist/_dts/api/src/bookingConfig.d.ts +6 -0
  3. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +45 -3
  4. package/dist/_dts/api/src/bookingOperations.d.ts +40 -3
  5. package/dist/_dts/api/src/courses.d.ts +1 -5
  6. package/dist/_dts/api/src/endpoints.d.ts +80 -1
  7. package/dist/_dts/api/src/index.d.ts +3 -2
  8. package/dist/_dts/api/src/navigation/contracts.d.ts +9 -9
  9. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  10. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -1
  11. package/dist/_dts/api/src/resources.d.ts +1 -1
  12. package/dist/_dts/api/src/siteBanner.d.ts +8 -8
  13. package/dist/_dts/api/src/siteOnboarding.d.ts +1 -0
  14. package/dist/_dts/api/src/teamMembers.d.ts +27 -0
  15. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +35 -29
  16. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +1 -5
  17. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +40 -34
  18. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -5
  19. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +1 -1
  20. package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +2 -2
  21. package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +9 -9
  22. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +24 -0
  23. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +18 -8
  24. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +201 -201
  28. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -2
  29. package/dist/_dts/blocks/src/system/node/schema.d.ts +5 -5
  30. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +4 -4
  32. package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +3 -3
  34. package/dist/_dts/content-model/src/content-types/schema.d.ts +8 -8
  35. package/dist/_dts/content-model/src/metadataConfig.d.ts +1 -0
  36. package/dist/_dts/core/src/branded.d.ts +2 -0
  37. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +124 -8
  38. package/dist/_dts/db/src/schemas/forms.d.ts +61 -61
  39. package/dist/_dts/sdk/src/client/types.d.ts +9 -2
  40. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  41. package/dist/_dts/sdk/src/config/validation.d.ts +40 -37
  42. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +17 -8
  43. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +1 -1
  44. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +19 -19
  45. package/dist/_dts/sdk/src/public-api/contracts.d.ts +87 -69
  46. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  47. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -5
  48. package/dist/_dts/sdk/src/version.d.ts +1 -1
  49. package/dist/_dts/theme-core/src/accordions/types.d.ts +11 -11
  50. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +10 -10
  51. package/dist/_dts/theme-core/src/buttons/types.d.ts +27 -27
  52. package/dist/_dts/theme-core/src/cards/types.d.ts +17 -17
  53. package/dist/_dts/theme-core/src/inputs/types.d.ts +14 -14
  54. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +2 -2
  55. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +438 -438
  56. package/dist/_dts/theme-core/src/navigation/types.d.ts +16 -16
  57. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +15 -15
  58. package/dist/_dts/theme-core/src/schema.d.ts +662 -662
  59. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +4 -4
  60. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +15 -15
  61. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +7 -7
  62. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  63. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +5 -5
  64. package/dist/_dts/ui/src/badge.d.ts +1 -1
  65. package/dist/_dts/ui/src/button-group.d.ts +1 -1
  66. package/dist/_dts/ui/src/button.d.ts +2 -2
  67. package/dist/_dts/ui/src/callout.d.ts +1 -1
  68. package/dist/_dts/ui/src/card.d.ts +1 -1
  69. package/dist/_dts/ui/src/surface.d.ts +2 -2
  70. package/dist/_dts/ui/src/toggle.d.ts +4 -4
  71. package/dist/cli/index.mjs +276 -24
  72. package/dist/client/client.mjs +607 -306
  73. package/dist/client/hooks.mjs +272 -23
  74. package/dist/client/rendering/client.mjs +179 -130
  75. package/dist/client/rendering/islands.mjs +68 -43
  76. package/dist/client/rendering.mjs +646 -363
  77. package/dist/preview-next/before-render.mjs +147 -1
  78. package/dist/preview-next/client/runtime.mjs +338 -43
  79. package/dist/preview-next/middleware.mjs +147 -1
  80. package/dist/server/components.mjs +727 -470
  81. package/dist/server/config-validation.mjs +488 -254
  82. package/dist/server/config.mjs +488 -254
  83. package/dist/server/data.mjs +272 -23
  84. package/dist/server/index.mjs +168 -2
  85. package/dist/server/next.mjs +476 -185
  86. package/dist/server/page-converter.mjs +335 -249
  87. package/dist/server/prebuild.mjs +1 -1
  88. package/dist/server/rendering/server.mjs +742 -469
  89. package/dist/server/rendering.mjs +742 -469
  90. package/dist/server/routing.mjs +274 -24
  91. package/dist/server/server.mjs +291 -24
  92. package/package.json +1 -1
@@ -8163,7 +8163,19 @@ var init_teamMember = __esm({
8163
8163
  bind("photo")
8164
8164
  )
8165
8165
  ]),
8166
- text({ as: "h3" }, bind("name")),
8166
+ link(
8167
+ {
8168
+ href: { $bind: { from: "profilePath" } },
8169
+ className: "rb-team-member-name-link"
8170
+ },
8171
+ [text({ as: "h3" }, bind("name"))],
8172
+ when("profilePath")
8173
+ ),
8174
+ text(
8175
+ { as: "h3" },
8176
+ when("profilePath", { not: true }),
8177
+ bind("name")
8178
+ ),
8167
8179
  text({ as: "p", className: "rb-team-member-role" }, when("role"), bind("role")),
8168
8180
  richText(
8169
8181
  { className: "rb-prose rb-max-w-none" },
@@ -8800,7 +8812,9 @@ var init_schemas = __esm({
8800
8812
  courseTeamMemberSummarySchema = z.object({
8801
8813
  id: z.string(),
8802
8814
  name: z.string(),
8803
- summary: z.string().nullable()
8815
+ roleLabel: z.string().nullable(),
8816
+ summary: z.string().nullable(),
8817
+ profilePath: z.string().nullable()
8804
8818
  });
8805
8819
  coursePricingOptionSchema = z.object({
8806
8820
  id: z.string(),
@@ -8911,7 +8925,9 @@ var init_schemas2 = __esm({
8911
8925
  publicTeamMemberSummarySchema = z.object({
8912
8926
  id: z.string(),
8913
8927
  name: z.string(),
8914
- summary: z.string().nullable()
8928
+ roleLabel: z.string().nullable(),
8929
+ summary: z.string().nullable(),
8930
+ profilePath: z.string().nullable()
8915
8931
  });
8916
8932
  publicEventSchema = z.object({
8917
8933
  kind: z.enum(["event", "course_session"]).optional(),
@@ -14948,13 +14964,150 @@ var ENDPOINT_DEFINITIONS = {
14948
14964
  "server:internal_error"
14949
14965
  ]
14950
14966
  },
14951
- deleteAppointmentResource: {
14967
+ removeAppointmentResource: {
14952
14968
  path: "/sites/{siteId}/bookings/resources/{resourceId}",
14953
14969
  method: "DELETE",
14954
14970
  auth: "user",
14955
14971
  responseKind: "json",
14956
14972
  errors: ["resource:not_found", "server:internal_error"]
14957
14973
  },
14974
+ createTeamMemberProfile: {
14975
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
14976
+ method: "POST",
14977
+ auth: "user",
14978
+ responseKind: "json",
14979
+ errors: [
14980
+ "validation:invalid_input",
14981
+ "resource:not_found",
14982
+ "resource:conflict",
14983
+ "server:internal_error"
14984
+ ]
14985
+ },
14986
+ updateTeamMemberProfilePolicy: {
14987
+ path: "/sites/{siteId}/bookings/resources/profile-policy",
14988
+ method: "PUT",
14989
+ auth: "user",
14990
+ responseKind: "json",
14991
+ errors: ["validation:invalid_input", "server:internal_error"]
14992
+ },
14993
+ updateTeamMemberProfileContent: {
14994
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
14995
+ method: "PUT",
14996
+ tags: [
14997
+ "site-{siteId}",
14998
+ "content-{siteId}-team-member",
14999
+ "content-entry-{entryId}"
15000
+ ],
15001
+ auth: "user",
15002
+ responseKind: "json",
15003
+ errors: [
15004
+ "validation:invalid_input",
15005
+ "resource:not_found",
15006
+ "resource:conflict",
15007
+ "server:internal_error"
15008
+ ]
15009
+ },
15010
+ publishTeamMemberProfile: {
15011
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
15012
+ method: "POST",
15013
+ tags: [
15014
+ "site-{siteId}",
15015
+ "content-{siteId}-team-member",
15016
+ "content-entry-{entryId}"
15017
+ ],
15018
+ auth: "user",
15019
+ responseKind: "json",
15020
+ errors: [
15021
+ "validation:invalid_input",
15022
+ "resource:not_found",
15023
+ "server:internal_error"
15024
+ ]
15025
+ },
15026
+ discardTeamMemberProfileDraft: {
15027
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
15028
+ method: "POST",
15029
+ tags: [
15030
+ "site-{siteId}",
15031
+ "content-{siteId}-team-member",
15032
+ "content-entry-{entryId}"
15033
+ ],
15034
+ auth: "user",
15035
+ responseKind: "json",
15036
+ errors: [
15037
+ "validation:invalid_input",
15038
+ "resource:not_found",
15039
+ "resource:conflict",
15040
+ "server:internal_error"
15041
+ ]
15042
+ },
15043
+ unpublishTeamMemberProfile: {
15044
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
15045
+ method: "POST",
15046
+ tags: [
15047
+ "site-{siteId}",
15048
+ "content-{siteId}-team-member",
15049
+ "content-entry-{entryId}"
15050
+ ],
15051
+ auth: "user",
15052
+ responseKind: "json",
15053
+ errors: [
15054
+ "validation:invalid_input",
15055
+ "resource:not_found",
15056
+ "resource:conflict",
15057
+ "server:internal_error"
15058
+ ]
15059
+ },
15060
+ scheduleTeamMemberProfile: {
15061
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
15062
+ method: "POST",
15063
+ tags: [
15064
+ "site-{siteId}",
15065
+ "content-{siteId}-team-member",
15066
+ "content-entry-{entryId}"
15067
+ ],
15068
+ auth: "user",
15069
+ responseKind: "json",
15070
+ errors: [
15071
+ "validation:invalid_input",
15072
+ "resource:not_found",
15073
+ "resource:conflict",
15074
+ "server:internal_error"
15075
+ ]
15076
+ },
15077
+ cancelScheduledTeamMemberProfile: {
15078
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
15079
+ method: "DELETE",
15080
+ tags: [
15081
+ "site-{siteId}",
15082
+ "content-{siteId}-team-member",
15083
+ "content-entry-{entryId}"
15084
+ ],
15085
+ auth: "user",
15086
+ responseKind: "json",
15087
+ errors: [
15088
+ "validation:invalid_input",
15089
+ "resource:not_found",
15090
+ "resource:conflict",
15091
+ "server:internal_error"
15092
+ ]
15093
+ },
15094
+ updateTeamMemberProfileRouteMetadata: {
15095
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
15096
+ method: "PATCH",
15097
+ tags: [
15098
+ TAG_TEMPLATES.siteCollection,
15099
+ TAG_TEMPLATES.siteRoutableContent,
15100
+ TAG_TEMPLATES.routeById
15101
+ ],
15102
+ auth: "user",
15103
+ responseKind: "json",
15104
+ errors: [
15105
+ "validation:invalid_input",
15106
+ "resource:not_found",
15107
+ "resource:conflict",
15108
+ "server:internal_error"
15109
+ ]
15110
+ },
14958
15111
  listAppointmentServices: {
14959
15112
  path: "/sites/{siteId}/bookings/services",
14960
15113
  method: "GET",
@@ -17328,6 +17481,15 @@ var ENDPOINT_DEFINITIONS = {
17328
17481
  auth: "public",
17329
17482
  responseKind: "json"
17330
17483
  },
17484
+ listPublicTeamMembers: {
17485
+ path: "/public/sites/{siteId}/team-members",
17486
+ method: "GET",
17487
+ revalidate: 60,
17488
+ tags: ["public-team-members-{siteId}"],
17489
+ errors: [],
17490
+ auth: "public",
17491
+ responseKind: "json"
17492
+ },
17331
17493
  getPublicCourse: {
17332
17494
  path: "/public/sites/{siteId}/courses/{courseId}",
17333
17495
  method: "GET",
@@ -19703,6 +19865,7 @@ var SUPPORTED_LOADER_ENDPOINTS = [
19703
19865
  "listPublicEvents",
19704
19866
  "getPublicEventDetails",
19705
19867
  "listPublicCourses",
19868
+ "listPublicTeamMembers",
19706
19869
  "listPublicProducts",
19707
19870
  "listPublicPasses",
19708
19871
  "listPublicMemberships",
@@ -29077,7 +29240,25 @@ init_schema2();
29077
29240
  init_defineBlock();
29078
29241
  init_builder();
29079
29242
  init_fragments();
29243
+ init_media();
29080
29244
  var ITEM_NAME2 = "member";
29245
+ var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
29246
+ message: "Team member photos must be image media"
29247
+ }).nullable();
29248
+ var teamMemberDataSchema = z.object({
29249
+ _type: z.literal("teamMember"),
29250
+ id: z.string(),
29251
+ name: z.string(),
29252
+ role: z.string().nullable(),
29253
+ roleLabel: z.string().nullable(),
29254
+ bio: z.string().nullable(),
29255
+ summary: z.string().nullable(),
29256
+ photo: teamMemberPhotoSchema,
29257
+ profilePath: z.string().nullable()
29258
+ });
29259
+ var teamMembersDataSchema = z.array(teamMemberDataSchema);
29260
+ var dynamicSourceWhen = { equals: "site_staff" };
29261
+ var manualSourceWhen = { equals: "site_staff", not: true };
29081
29262
  var headingNode = text(
29082
29263
  { as: "h2" },
29083
29264
  bind("content.heading"),
@@ -29167,7 +29348,15 @@ var teamMemberStackLayout = el(
29167
29348
  ]
29168
29349
  ),
29169
29350
  stack({ gap: "sm", className: "rb-team-member-body rb-flex-1 rb-min-w-0" }, [
29170
- text({ as: "h3" }, bind("name")),
29351
+ link(
29352
+ {
29353
+ href: { $bind: { from: "profilePath" } },
29354
+ className: "rb-team-member-name-link"
29355
+ },
29356
+ [text({ as: "h3" }, bind("name"))],
29357
+ when("profilePath")
29358
+ ),
29359
+ text({ as: "h3" }, when("profilePath", { not: true }), bind("name")),
29171
29360
  text(
29172
29361
  { as: "p", className: "rb-team-member-role" },
29173
29362
  when("role"),
@@ -29181,12 +29370,18 @@ var teamMemberStackLayout = el(
29181
29370
  ])
29182
29371
  ]
29183
29372
  );
29184
- var gridMembersNode = repeaterFragmentLayout({
29373
+ var manualGridMembersNode = when("content.source", manualSourceWhen)(repeaterFragmentLayout({
29185
29374
  collectionPath: "content.members",
29186
29375
  itemName: ITEM_NAME2,
29187
29376
  fragments: { teamMember: teamMemberFragment },
29188
29377
  itemGap: "sm"
29189
- });
29378
+ }));
29379
+ var dynamicGridMembersNode = when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
29380
+ collectionPath: "data.members",
29381
+ itemName: ITEM_NAME2,
29382
+ fragments: { teamMember: teamMemberFragment },
29383
+ itemGap: "sm"
29384
+ }));
29190
29385
  var gridVariant = wrapVariant3(
29191
29386
  el(
29192
29387
  "grid",
@@ -29200,22 +29395,29 @@ var gridVariant = wrapVariant3(
29200
29395
  },
29201
29396
  gap: { $bind: { from: "content.gap", fallback: "medium" } }
29202
29397
  },
29203
- [gridMembersNode]
29398
+ [manualGridMembersNode, dynamicGridMembersNode]
29204
29399
  )
29205
29400
  );
29206
- var stackMembersNode = repeaterFragmentLayout({
29401
+ var manualStackMembersNode = when("content.source", manualSourceWhen)(repeaterFragmentLayout({
29207
29402
  collectionPath: "content.members",
29208
29403
  itemName: ITEM_NAME2,
29209
29404
  fragments: { teamMember: teamMemberFragment },
29210
29405
  layoutOverrides: { teamMember: teamMemberStackLayout },
29211
29406
  itemGap: "sm"
29212
- });
29407
+ }));
29408
+ var dynamicStackMembersNode = when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
29409
+ collectionPath: "data.members",
29410
+ itemName: ITEM_NAME2,
29411
+ fragments: { teamMember: teamMemberFragment },
29412
+ layoutOverrides: { teamMember: teamMemberStackLayout },
29413
+ itemGap: "sm"
29414
+ }));
29213
29415
  var stackVariant = wrapVariant3({
29214
29416
  type: "stack",
29215
29417
  props: {
29216
29418
  gap: { $bind: { from: "content.gap", fallback: "medium" } }
29217
29419
  },
29218
- children: [stackMembersNode]
29420
+ children: [manualStackMembersNode, dynamicStackMembersNode]
29219
29421
  });
29220
29422
  var teamMembersManifest = createBlockManifest({
29221
29423
  id: "block.team-members",
@@ -29230,6 +29432,18 @@ var teamMembersManifest = createBlockManifest({
29230
29432
  required: false,
29231
29433
  maxLength: 120
29232
29434
  }),
29435
+ parseFieldDefinition({
29436
+ id: "source",
29437
+ type: "select",
29438
+ label: "Team members",
29439
+ description: "Choose whether to use the site-wide team or a hand-picked list.",
29440
+ defaultValue: "manual",
29441
+ options: [
29442
+ { value: "manual", label: "Choose manually" },
29443
+ { value: "site_staff", label: "Use all site team members" }
29444
+ ],
29445
+ ui: { intent: "behavior" }
29446
+ }),
29233
29447
  parseFieldDefinition({
29234
29448
  id: "layoutAlign",
29235
29449
  type: "select",
@@ -29332,18 +29546,24 @@ var teamMembersManifest = createBlockManifest({
29332
29546
  ],
29333
29547
  ui: { intent: "display" }
29334
29548
  }),
29335
- fragmentsToRepeaterField(
29336
- "members",
29337
- "Team members",
29338
- { teamMember: teamMemberFragment },
29339
- {
29340
- minItems: 0,
29341
- maxItems: 50,
29342
- itemLabel: "Team member",
29343
- itemLabelSource: "name",
29344
- description: "Add people to this section."
29549
+ {
29550
+ ...fragmentsToRepeaterField(
29551
+ "members",
29552
+ "Team members",
29553
+ { teamMember: teamMemberFragment },
29554
+ {
29555
+ minItems: 0,
29556
+ maxItems: 50,
29557
+ itemLabel: "Team member",
29558
+ itemLabelSource: "name",
29559
+ description: "Add people to this section."
29560
+ }
29561
+ ),
29562
+ ui: {
29563
+ intent: "content",
29564
+ visibleWhen: { field: "source", equals: "manual" }
29345
29565
  }
29346
- )
29566
+ }
29347
29567
  ],
29348
29568
  layout: gridVariant,
29349
29569
  variants: {
@@ -29369,7 +29589,20 @@ var teamMembersManifest = createBlockManifest({
29369
29589
  styleTokens: { spacing: "lg" }
29370
29590
  });
29371
29591
  var teamMembersBlockDefinition = {
29372
- manifest: teamMembersManifest
29592
+ manifest: teamMembersManifest,
29593
+ dataSchemas: {
29594
+ members: teamMembersDataSchema
29595
+ },
29596
+ dataLoaders: {
29597
+ members: {
29598
+ endpoint: "listPublicTeamMembers",
29599
+ params: {
29600
+ siteId: { $bind: { from: "$root.siteId" } },
29601
+ stage: { $bind: { from: "$root.previewStage", fallback: "published" } }
29602
+ },
29603
+ mode: "server"
29604
+ }
29605
+ }
29373
29606
  };
29374
29607
 
29375
29608
  // ../blocks/src/system/blocks/location-map.ts
@@ -32412,6 +32645,7 @@ var SUPPORTED_LOADER_ENDPOINTS2 = [
32412
32645
  "getPublishedEntryPreview",
32413
32646
  "listPublicEvents",
32414
32647
  "listPublicCourses",
32648
+ "listPublicTeamMembers",
32415
32649
  "listPublicProducts",
32416
32650
  "listPublicPasses",
32417
32651
  "listPublicMemberships",
@@ -44876,7 +45110,7 @@ var SimpleCache = class {
44876
45110
  };
44877
45111
 
44878
45112
  // src/version.ts
44879
- var SDK_VERSION = "0.60.6";
45113
+ var SDK_VERSION = "0.60.7";
44880
45114
 
44881
45115
  // src/client/error.ts
44882
45116
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -45915,6 +46149,24 @@ function createRiverbankClient(config2) {
45915
46149
  return await apiClient({ endpoint: "listPublicCourses", params: apiParams, options: { signal: sig } });
45916
46150
  }, { signal });
45917
46151
  },
46152
+ async listPublicTeamMembers(params) {
46153
+ const { siteId, stage, signal } = params;
46154
+ if (!siteId) {
46155
+ throw new Error("listPublicTeamMembers() requires siteId");
46156
+ }
46157
+ const cacheKey = `public-team-members:${siteId}:${stage ?? ""}`;
46158
+ return resilientFetch(cacheKey, async (sig) => {
46159
+ const apiParams = {
46160
+ siteId,
46161
+ ...stage && { stage }
46162
+ };
46163
+ return await apiClient({
46164
+ endpoint: "listPublicTeamMembers",
46165
+ params: apiParams,
46166
+ options: { signal: sig }
46167
+ });
46168
+ }, { signal });
46169
+ },
45918
46170
  async listPublicProducts(params) {
45919
46171
  const { siteId, stage, categorySelector, signal } = params;
45920
46172
  if (!siteId) {