@odla-ai/chapter 0.60.0 → 0.62.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.
package/dist/index.d.ts CHANGED
@@ -147,11 +147,26 @@ declare const CHAPTER_EMAIL_EVENTS: Readonly<Record<string, ChapterEmailEvent>>;
147
147
  /** Resolve the event inventory for the site's actual send surfaces. Hub mail uses its declared CRM templates. */
148
148
  declare function chapterEmailEvents(chapter: Chapter): Record<string, ChapterEmailEvent>;
149
149
 
150
- type TextFields$1<Key extends string> = {
150
+ type TextFields$2<Key extends string> = {
151
151
  [Field in Key]: string;
152
152
  };
153
153
  /** User-visible language for sharing, delivery state, and leader rollups. */
154
- type AdminNetworkCopy = TextFields$1<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "transportReachable" | "transportUnavailable" | "transportNotChecked" | "edgeUnpaired" | "edgeUnpairedHint" | "bindingTransport" | "urlTransport" | "activeConfiguration" | "noActiveConfiguration" | "publicSiteAvailable" | "publicSiteUnavailable" | "publicSiteNotChecked" | "recordTotals" | "noRecordTotals">;
154
+ type AdminNetworkCopy = TextFields$2<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "transportReachable" | "transportUnavailable" | "transportNotChecked" | "edgeUnpaired" | "edgeUnpairedHint" | "bindingTransport" | "urlTransport" | "activeConfiguration" | "noActiveConfiguration" | "publicSiteAvailable" | "publicSiteUnavailable" | "publicSiteNotChecked" | "recordTotals" | "noRecordTotals">;
155
+
156
+ type TextFields$1<Key extends string> = {
157
+ [Field in Key]: string;
158
+ };
159
+ /**
160
+ * Member portal language. Placeholders in braces are filled by
161
+ * `formatChapterCopy()`. Sites override any field through `copy.portal`.
162
+ */
163
+ interface PortalCopy {
164
+ shell: TextFields$1<"navLabel" | "welcomeBack" | "home" | "backHome" | "yourProfile" | "signedInAs" | "signOut" | "adminConsole" | "openMenu" | "closeMenu" | "locked" | "loading" | "loadFailed" | "notFound">;
165
+ pages: TextFields$1<"comingSoon" | "comingIn" | "includedWith" | "upgrade" | "comingToPortal" | "tagNew" | "tagSoon">;
166
+ profile: TextFields$1<"eyebrow" | "editProfile" | "saveProfile" | "saving" | "cancel" | "uploadPhoto" | "changePhoto" | "photoUploading" | "photoFailed" | "memberSince" | "promptsTitle" | "promptsNote" | "answerEmpty" | "addPrompt" | "howYouFoundUs" | "referredBy" | "referredByNote" | "introducedBy" | "introducedByPlaceholder" | "namePlaceholder" | "locationPlaceholder" | "saved" | "conflict" | "saveFailed">;
167
+ }
168
+ /** Neutral defaults; a site supplies its own voice. */
169
+ declare const DEFAULT_PORTAL_COPY: PortalCopy;
155
170
 
156
171
  /** Copy for the person record panels: lifecycle actions, comms, scheduling, billing and meetings. */
157
172
  type AdminRecordsCopy = {
@@ -201,11 +216,13 @@ interface ChapterCopy {
201
216
  members: {
202
217
  loadFailed: string;
203
218
  account: TextFields<"signOut" | "adminConsole">;
204
- provisional: TextFields<"cardLabel" | "applicationNeeded" | "applicationNeededBody" | "apply" | "refunded" | "refundedBody" | "active" | "renews" | "introductionCall" | "calendarInvite" | "joinCall" | "bookCall" | "bookCallBody" | "chooseTime">;
219
+ provisional: TextFields<"cardLabel" | "applicationNeeded" | "applicationNeededBody" | "apply" | "refunded" | "refundedBody" | "declined" | "declinedBody" | "active" | "renews" | "introductionCall" | "calendarInvite" | "joinCall" | "bookCall" | "bookCallBody" | "chooseTime">;
205
220
  full: TextFields<"welcome">;
206
221
  gifts: TextFields<"title" | "body" | "noneAvailable" | "paid" | "saveCode" | "purchases" | "noPurchases" | "pending" | "redeemed" | "expired" | "revoked" | "rotate" | "rotated" | "rotateFailed" | "redeemTitle" | "code" | "redeem" | "redeemFailed">;
207
222
  reschedule: TextFields<"changeTime" | "unavailable" | "loadFailed" | "slotGone" | "loading" | "noTimes" | "rescheduling" | "keepTime">;
208
223
  };
224
+ /** Signed-in member portal: shell, pages, profile. */
225
+ portal: PortalCopy;
209
226
  admin: {
210
227
  auth: TextFields<"checking" | "notAuthorized" | "accountNotAuthorized" | "thisAccount" | "signOut" | "loading" | "signInNotConfigured" | "missingPublishableKey" | "noWorkspaces" | "signInTagline">;
211
228
  shell: TextFields<"adminRole" | "adminConsole" | "adminName" | "navigationLabel">;
@@ -215,7 +232,7 @@ interface ChapterCopy {
215
232
  availability: TextFields<"loading" | "loadFailed" | "saved" | "title" | "days" | "startHour" | "endHour" | "slotMinutes" | "minNoticeHours" | "windowDays" | "timezone" | "summaryTemplate" | "save"> & {
216
233
  dayLabels: readonly string[];
217
234
  };
218
- email: TextFields<"loading" | "loadFailed" | "saved" | "sent" | "testFailed" | "delivery" | "notificationAddress" | "replyTo" | "fromName" | "fromNameHint" | "spamRisk" | "debugInbox" | "debugInboxHint" | "sendTest" | "enabled" | "subject" | "body" | "save" | "sendLog" | "sentColumn" | "templateColumn" | "statusColumn" | "toColumn" | "failed" | "redirected" | "delivered">;
235
+ email: TextFields<"loading" | "loadFailed" | "saved" | "sent" | "testFailed" | "delivery" | "notificationAddress" | "replyTo" | "fromName" | "fromNameHint" | "spamRisk" | "debugInbox" | "debugInboxHint" | "sendTest" | "enabled" | "subject" | "body" | "htmlBody" | "htmlBodyHint" | "save" | "sendLog" | "sentColumn" | "templateColumn" | "statusColumn" | "toColumn" | "failed" | "redirected" | "delivered">;
219
236
  meetings: TextFields<"loading" | "loadFailed" | "cancelConfirm" | "newStartPrompt" | "parseFailed" | "agenda" | "empty" | "unknown" | "drift" | "meet" | "reschedule" | "cancel">;
220
237
  admission: TextFields<"title" | "description" | "email" | "decision" | "expires" | "note" | "waive" | "require" | "add" | "ledger" | "loading" | "consumed" | "revoked" | "expired" | "active" | "local" | "parent" | "revoke">;
221
238
  network: AdminNetworkCopy;
@@ -268,6 +285,51 @@ interface ResolvedMemberContent {
268
285
  } | null;
269
286
  }
270
287
 
288
+ /** Invite links and referral credit for a chapter-mode site. */
289
+ interface ChapterMemberReferrals {
290
+ /** Public path that invite links live under; `<path>/<code>`. Defaults to `/join`. */
291
+ path?: string;
292
+ /** Where an invite link sends a visitor (absolute https URL or site path). `?ref=<code>` is appended. */
293
+ membershipUrl: string;
294
+ /** Lifetime of the first-party referral cookie, in days. Defaults to 90. */
295
+ cookieDays?: number;
296
+ /**
297
+ * Credit a dues-paying referrer earns when a friend they referred is approved
298
+ * on a dues-paying tier. Omit or `false` for invite links without credit.
299
+ */
300
+ credit?: {
301
+ valueCents: number;
302
+ } | false;
303
+ }
304
+ /** The signed-in member portal. Its navigation and access come from the member-content catalog. */
305
+ interface ChapterMemberPortal {
306
+ /** Prompts a member may answer on their profile, in display order. */
307
+ profilePrompts?: readonly string[];
308
+ /** How many prompts a member may answer. Defaults to 3. */
309
+ maxPrompts?: number;
310
+ /** Member profile photos in odla-db file storage. Defaults to true. */
311
+ photos?: boolean;
312
+ /** Cohort courses on one recurring Google Calendar event. Chapter mode only. */
313
+ courses?: boolean;
314
+ /** Personal invite links, Referred by, and optional credit. Chapter mode only. */
315
+ referrals?: ChapterMemberReferrals;
316
+ }
317
+ /** Resolved invite-link settings. */
318
+ interface ResolvedMemberReferrals {
319
+ path: string;
320
+ membershipUrl: string;
321
+ cookieDays: number;
322
+ creditCents: number | null;
323
+ }
324
+ /** Resolved member portal settings. */
325
+ interface ResolvedMemberPortal {
326
+ profilePrompts: readonly string[];
327
+ maxPrompts: number;
328
+ photos: boolean;
329
+ courses: boolean;
330
+ referrals: ResolvedMemberReferrals | null;
331
+ }
332
+
271
333
  /** Optional private Builder Library shared across Built Not Found and Chapters. */
272
334
  interface ChapterBuilderLibrary {
273
335
  /** Keep local admin authoring enabled. Defaults to true. */
@@ -484,6 +546,82 @@ interface ResolvedNetwork {
484
546
  readers: readonly ResolvedNetworkReader[];
485
547
  }
486
548
 
549
+ /** Brand identity and build-time tokens from the checked-in Chapter config. */
550
+ /** Typed semantic roles shared by the public site and application surfaces. */
551
+ interface ChapterBrandTokens {
552
+ background?: string;
553
+ surface?: string;
554
+ surface2?: string;
555
+ text?: string;
556
+ textMuted?: string;
557
+ textFaint?: string;
558
+ border?: string;
559
+ borderStrong?: string;
560
+ accent?: string;
561
+ accentStrong?: string;
562
+ accentSoft?: string;
563
+ onAccent?: string;
564
+ good?: string;
565
+ warn?: string;
566
+ danger?: string;
567
+ chart1?: string;
568
+ chart2?: string;
569
+ chart3?: string;
570
+ chart4?: string;
571
+ chart5?: string;
572
+ chart6?: string;
573
+ chartPositive?: string;
574
+ chartNegative?: string;
575
+ /** Admin/application content width, e.g. `"960px"`. */
576
+ contentWidth?: string;
577
+ panelRadius?: string;
578
+ panelShadow?: string;
579
+ masterDetailColumns?: string;
580
+ masterDetailMinHeight?: string;
581
+ /** Chapter-admin page padding shorthand. */
582
+ pagePadding?: string;
583
+ /** Chapter-admin workspace-tab padding shorthand. */
584
+ workspacePadding?: string;
585
+ }
586
+ /** Brand tokens that theme the site: theme, semantic roles, fonts, and logos. */
587
+ interface ChapterBrand {
588
+ /** Preloaded @odla-ai/ui theme name used by ThemeScope. */
589
+ theme?: string;
590
+ /** Named accent family supplied by the selected @odla-ai/ui theme. */
591
+ accent?: string;
592
+ /** Admin/application color mode. Explicit light is the safe default. */
593
+ colorScheme?: "light" | "dark" | "system";
594
+ tokens?: ChapterBrandTokens;
595
+ tokensDark?: ChapterBrandTokens;
596
+ /** Palette overrides written into styles.css :root (e.g. `{ moss: "#2F3E34" }`
597
+ * or `--ui-*` token names). Applies in BOTH light and dark unless overridden
598
+ * by {@link paletteDark}. */
599
+ palette?: Record<string, string>;
600
+ /** Dark-mode palette overrides. Same shape as {@link palette}; emitted under
601
+ * `:root[data-theme="dark"]` and `@media (prefers-color-scheme: dark)`, so a
602
+ * site brands both modes. */
603
+ paletteDark?: Record<string, string>;
604
+ /** Full token map for `.ui-invert` islands. A compiled custom theme normally
605
+ * uses its dark map here so inverted content never inherits stale composites. */
606
+ paletteInvert?: Record<string, string>;
607
+ fonts?: {
608
+ display?: string;
609
+ body?: string;
610
+ numeral?: string;
611
+ };
612
+ /** Short glyph used in compact admin chrome. Defaults to the first three
613
+ * letters of the chapter name. */
614
+ badge?: string;
615
+ wordmark?: string;
616
+ tagline?: string;
617
+ /** Header/footer nav sections for the web-component chrome: label → entries. */
618
+ nav?: Record<string, ReadonlyArray<{
619
+ label: string;
620
+ href: string;
621
+ }>>;
622
+ logos?: string;
623
+ }
624
+
487
625
  /**
488
626
  * Membership pricing for the group row (chapter mode).
489
627
  *
@@ -570,80 +708,18 @@ interface ChapterDb {
570
708
  secrets: {
571
709
  get(name: string): Promise<string>;
572
710
  };
573
- }
574
- /** Typed semantic roles shared by the public site and application surfaces. */
575
- interface ChapterBrandTokens {
576
- background?: string;
577
- surface?: string;
578
- surface2?: string;
579
- text?: string;
580
- textMuted?: string;
581
- textFaint?: string;
582
- border?: string;
583
- borderStrong?: string;
584
- accent?: string;
585
- accentStrong?: string;
586
- accentSoft?: string;
587
- onAccent?: string;
588
- good?: string;
589
- warn?: string;
590
- danger?: string;
591
- chart1?: string;
592
- chart2?: string;
593
- chart3?: string;
594
- chart4?: string;
595
- chart5?: string;
596
- chart6?: string;
597
- chartPositive?: string;
598
- chartNegative?: string;
599
- /** Admin/application content width, e.g. `"960px"`. */
600
- contentWidth?: string;
601
- panelRadius?: string;
602
- panelShadow?: string;
603
- masterDetailColumns?: string;
604
- masterDetailMinHeight?: string;
605
- /** Chapter-admin page padding shorthand. */
606
- pagePadding?: string;
607
- /** Chapter-admin workspace-tab padding shorthand. */
608
- workspacePadding?: string;
609
- }
610
- /** Brand tokens that theme the site: theme, semantic roles, fonts, and logos. */
611
- interface ChapterBrand {
612
- /** Preloaded @odla-ai/ui theme name used by ThemeScope. */
613
- theme?: string;
614
- /** Named accent family supplied by the selected @odla-ai/ui theme. */
615
- accent?: string;
616
- /** Admin/application color mode. Explicit light is the safe default. */
617
- colorScheme?: "light" | "dark" | "system";
618
- tokens?: ChapterBrandTokens;
619
- tokensDark?: ChapterBrandTokens;
620
- /** Palette overrides written into styles.css :root (e.g. `{ moss: "#2F3E34" }`
621
- * or `--ui-*` token names). Applies in BOTH light and dark unless overridden
622
- * by {@link paletteDark}. */
623
- palette?: Record<string, string>;
624
- /** Dark-mode palette overrides. Same shape as {@link palette}; emitted under
625
- * `:root[data-theme="dark"]` and `@media (prefers-color-scheme: dark)`, so a
626
- * site brands both modes. */
627
- paletteDark?: Record<string, string>;
628
- /** Full token map for `.ui-invert` islands. A compiled custom theme normally
629
- * uses its dark map here so inverted content never inherits stale composites. */
630
- paletteInvert?: Record<string, string>;
631
- fonts?: {
632
- display?: string;
633
- body?: string;
634
- numeral?: string;
711
+ /** odla-db file storage (present on the real client). Member photos use it. */
712
+ storage?: {
713
+ upload(path: string, data: BodyInit, contentType?: string, opts?: {
714
+ private?: boolean;
715
+ }): Promise<{
716
+ path: string;
717
+ size: number;
718
+ contentType: string;
719
+ }>;
720
+ sign(path: string, ttlSeconds?: number): Promise<string>;
721
+ delete(path: string): Promise<void>;
635
722
  };
636
- /** Short glyph used in compact admin chrome. Defaults to the first three
637
- * letters of the chapter name. */
638
- badge?: string;
639
- wordmark?: string;
640
- tagline?: string;
641
- /** Header/footer nav sections for the web-component chrome: label → entries. */
642
- nav?: Record<string, ReadonlyArray<{
643
- label: string;
644
- href: string;
645
- }>>;
646
- logos?: string;
647
723
  }
648
724
 
649
725
  /** One owner-editable transactional email template. Automatic sends require explicit `enabled: true`. */
@@ -705,6 +781,8 @@ interface ChapterAuth {
705
781
  * app allowlist; `"odla"` reads protected `$users.role` by exact subject ID.
706
782
  * Default `"odla"` for private Clerk mode, `"table"` for legacy modes. */
707
783
  superAdminSource?: "table" | "odla";
784
+ /** Require a second sign-in factor on admin routes: `off` (default), `report` (allow and log), `enforce`. */
785
+ adminSecondFactor?: "off" | "report" | "enforce";
708
786
  }
709
787
  /** The fully-resolved auth policy (defaults applied) carried on the {@link Chapter}. */
710
788
  interface ResolvedAuth {
@@ -715,6 +793,7 @@ interface ResolvedAuth {
715
793
  adminRole: string;
716
794
  superAdmins: boolean;
717
795
  superAdminSource: "none" | "table" | "odla";
796
+ adminSecondFactor: "off" | "report" | "enforce";
718
797
  }
719
798
  /** The application status pipeline. Which statuses exist, and the subsets a site
720
799
  * allows a call to be booked from / an application approved from. Defaults to
@@ -810,6 +889,8 @@ interface ChapterConfig {
810
889
  signupControl?: ChapterSignupControl;
811
890
  /** Authenticated parent + chapter member pages with server-enforced tier access. */
812
891
  memberContent?: ChapterMemberContent;
892
+ /** Signed-in member portal: profile, photos, courses, invite links and credit. */
893
+ memberPortal?: ChapterMemberPortal;
813
894
  /** Private docs, Brand asset references, and links for authorized site-building agents. */
814
895
  builderLibrary?: ChapterBuilderLibrary;
815
896
  /** Network-scoped canonical Person registry. Shadow mode is additive only:
@@ -915,6 +996,8 @@ interface Chapter {
915
996
  signupControl: ResolvedSignupControl | null;
916
997
  /** Null unless the standard authenticated member-content surface is enabled. */
917
998
  memberContent: ResolvedMemberContent | null;
999
+ /** Null unless the member portal is enabled. */
1000
+ memberPortal: ResolvedMemberPortal | null;
918
1001
  /** Null unless the private scoped Builder Library is enabled. */
919
1002
  builderLibrary: ResolvedBuilderLibrary | null;
920
1003
  /** Null unless this hub explicitly enables the shadow Person registry. */
@@ -1105,7 +1188,7 @@ declare function normalizeNetworkCommercialStripeEvent(input: unknown, digest: s
1105
1188
  /** Deterministically rebuild the network commercial projection from its event log. */
1106
1189
  declare function projectNetworkCommercialEvents(input: readonly NetworkCommercialFact[], sources: readonly NetworkCommercialSource[]): NetworkCommercialProjection;
1107
1190
 
1108
- type Row = Record<string, unknown>;
1191
+ type Row$2 = Record<string, unknown>;
1109
1192
  /** Exact chapter/runtime partition that binds every parity digest. */
1110
1193
  interface CommercialParityPartition {
1111
1194
  appId: string;
@@ -1166,7 +1249,7 @@ interface CommercialParityResult {
1166
1249
  declare function commercialParityDigest(secret: string, partition: CommercialParityPartition, kind: "application" | "customer" | "subscription", value: string): Promise<string>;
1167
1250
  /** Build the bounded disclosure from already-bounded local application rows. */
1168
1251
  declare function buildChapterCommercialParitySnapshot(input: {
1169
- rows: readonly Row[];
1252
+ rows: readonly Row$2[];
1170
1253
  secret: string;
1171
1254
  partition: CommercialParityPartition;
1172
1255
  siteId: string;
@@ -1993,13 +2076,78 @@ declare const membershipAuthorityEntities: Record<string, Entity>;
1993
2076
  /** Backend-only authority; browser roles, including a network admin, cannot directly change these rows. */
1994
2077
  declare const membershipAuthorityRules: DbRules;
1995
2078
 
2079
+ /**
2080
+ * Member catalog schema version 2: ordered navigation sections, page kinds,
2081
+ * navigation tags and icons. Version 1 documents remain valid and keep their
2082
+ * alphabetical section order; every field here requires `schemaVersion: 2`.
2083
+ */
2084
+ /** Packaged member features a catalog page can stand for. */
2085
+ declare const MEMBER_PAGE_FEATURES: readonly ["course", "share"];
2086
+ /** A packaged member feature: `course` (cohort course) or `share` (invite kit). */
2087
+ type MemberPageFeatureName = typeof MEMBER_PAGE_FEATURES[number];
2088
+ /** Fixed icon vocabulary. Content never carries SVG, URLs or markup. */
2089
+ declare const MEMBER_PAGE_ICONS: readonly ["home", "course", "library", "deals", "training", "events", "members", "share", "profile", "document", "calendar", "chat", "star"];
2090
+ /** One icon from {@link MEMBER_PAGE_ICONS}. */
2091
+ type MemberPageIcon = typeof MEMBER_PAGE_ICONS[number];
2092
+ /** Authored navigation tags. "Soon" and year tags are derived from placeholder pages. */
2093
+ declare const MEMBER_PAGE_TAGS: readonly ["new"];
2094
+ /** One tag from {@link MEMBER_PAGE_TAGS}. */
2095
+ type MemberPageTag = typeof MEMBER_PAGE_TAGS[number];
2096
+ /** How a page renders: authored Markdown, a not-yet-open placeholder, or a packaged feature. */
2097
+ type MemberPageKind = "markdown" | "placeholder" | "feature";
2098
+ /**
2099
+ * A page that is announced but not open. Without `availableYear` it reads as
2100
+ * "Coming soon"; with one, as "Coming in <year>".
2101
+ */
2102
+ interface MemberPagePlaceholder {
2103
+ /** Calendar year the page is expected to open. */
2104
+ availableYear?: number;
2105
+ /** Replaces the derived "Coming soon" / "Coming in <year>" badge text. */
2106
+ badge?: string;
2107
+ /** Label of a disabled call to action, e.g. "Investor form opens in 2027". */
2108
+ actionLabel?: string;
2109
+ }
2110
+ /** A catalog page backed by a packaged feature, gated by the page's audience. */
2111
+ interface MemberPageFeature {
2112
+ name: MemberPageFeatureName;
2113
+ /** Feature-specific identity, e.g. the course id for `course`. */
2114
+ ref?: string;
2115
+ }
2116
+ /**
2117
+ * One navigation group. A section without a label renders without a heading.
2118
+ * Section order is the order of the document's `sections` array.
2119
+ */
2120
+ interface MemberContentSection {
2121
+ id: string;
2122
+ label?: string;
2123
+ }
2124
+ interface SectionedDocument {
2125
+ sections?: readonly MemberContentSection[];
2126
+ }
2127
+ interface SectionedPage {
2128
+ navigation: {
2129
+ section: string;
2130
+ };
2131
+ }
2132
+ /**
2133
+ * Resolve display order for composed sections. Chapter-declared sections come
2134
+ * first, in the chapter's order (a chapter may list a parent section id to
2135
+ * place it, inheriting the parent's label when it gives none). Parent-declared
2136
+ * sections follow in the parent's order. Sections named only by pages (version
2137
+ * 1 labels, or documents without `sections`) follow alphabetically, which is
2138
+ * exactly the version 1 order. Sections without pages are dropped.
2139
+ */
2140
+ declare function composeMemberSections(parent: SectionedDocument | null | undefined, chapter: SectionedDocument | null | undefined, pages: readonly SectionedPage[]): MemberContentSection[];
2141
+
1996
2142
  /** Validate one complete parent or chapter authoring layer with actionable paths. */
1997
2143
  declare function validateMemberContentDocument(input: unknown, options?: MemberContentValidationOptions): MemberContentValidationResult;
1998
2144
  /** Validate or fail closed with every actionable document error. */
1999
2145
  declare function memberContentDocument(input: unknown, options?: MemberContentValidationOptions): MemberContentDocument;
2000
2146
 
2001
- /** Versioned contract for authenticated member content. */
2002
- declare const MEMBER_CONTENT_SCHEMA_VERSION: 1;
2147
+ /** Latest version of the authenticated member-content contract. Version 1 documents remain valid. */
2148
+ declare const MEMBER_CONTENT_SCHEMA_VERSION: 2;
2149
+ /** Every member-content schema version this release validates. */
2150
+ type MemberContentSchemaVersion = 1 | 2;
2003
2151
  /** Authenticated member projection endpoint. */
2004
2152
  declare const MEMBER_CONTENT_PATH: "/api/member-content";
2005
2153
  /** Dedicated signed Parent → Chapter content-delivery endpoint. */
@@ -2018,9 +2166,14 @@ interface MemberContentTarget {
2018
2166
  }
2019
2167
  /** Navigation is data, so agents do not have to coordinate route code. */
2020
2168
  interface MemberPageNavigation {
2169
+ /** A section id declared in `sections`, or (without `sections`) the section's display label. */
2021
2170
  section: string;
2022
2171
  order: number;
2023
2172
  parentId?: string;
2173
+ /** Schema version 2. */
2174
+ tag?: MemberPageTag;
2175
+ /** Schema version 2. */
2176
+ icon?: MemberPageIcon;
2024
2177
  }
2025
2178
  /** Explicit sets avoid unsafe assumptions that commercial tiers form a ladder. */
2026
2179
  type MemberPageAudience = {
@@ -2054,9 +2207,15 @@ interface MemberContentPage {
2054
2207
  audience: MemberPageAudience;
2055
2208
  /** Safe Markdown shown while the body is withheld. */
2056
2209
  teaserMarkdown?: string;
2057
- /** Never serialized to a viewer whose audience does not match. */
2058
- bodyMarkdown: string;
2210
+ /** Never serialized to a viewer whose audience does not match. Required for Markdown pages. */
2211
+ bodyMarkdown?: string;
2059
2212
  upsell?: MemberPageUpsell;
2213
+ /** Schema version 2; defaults to `markdown`. */
2214
+ kind?: MemberPageKind;
2215
+ /** Schema version 2; present exactly when `kind` is `placeholder`. */
2216
+ placeholder?: MemberPagePlaceholder;
2217
+ /** Schema version 2; present exactly when `kind` is `feature`. */
2218
+ feature?: MemberPageFeature;
2060
2219
  }
2061
2220
  /** Chapter-owned offer attached to a Parent page that delegated offer authority. */
2062
2221
  interface MemberPageUpsellOverride {
@@ -2065,13 +2224,15 @@ interface MemberPageUpsellOverride {
2065
2224
  }
2066
2225
  /** One complete source layer. Parent and Chapter layers are stored independently. */
2067
2226
  interface MemberContentDocument {
2068
- schemaVersion: typeof MEMBER_CONTENT_SCHEMA_VERSION;
2227
+ schemaVersion: MemberContentSchemaVersion;
2069
2228
  revision: number;
2070
2229
  generatedAt: number;
2071
2230
  source: MemberContentSource;
2072
2231
  target?: MemberContentTarget;
2073
2232
  pages: readonly MemberContentPage[];
2074
2233
  upsellOverrides?: readonly MemberPageUpsellOverride[];
2234
+ /** Schema version 2: navigation groups in display order. */
2235
+ sections?: readonly MemberContentSection[];
2075
2236
  }
2076
2237
  /** Provider-neutral tier facts used to validate access and resolve safe offers. */
2077
2238
  interface MemberContentTierAuthority {
@@ -2102,6 +2263,8 @@ interface EffectiveMemberContentPage extends MemberContentPage {
2102
2263
  /** Deterministically ordered parent and chapter layers with their source revisions. */
2103
2264
  interface EffectiveMemberContent {
2104
2265
  pages: readonly EffectiveMemberContentPage[];
2266
+ /** Navigation groups in display order; only groups that have pages. Always set by `composeMemberContent`. */
2267
+ sections?: readonly MemberContentSection[];
2105
2268
  parentRevision: number | null;
2106
2269
  chapterRevision: number | null;
2107
2270
  }
@@ -2125,6 +2288,10 @@ interface MemberContentPageProjection {
2125
2288
  audience: MemberPageAudience;
2126
2289
  source: MemberContentSource;
2127
2290
  access: "allowed" | "locked";
2291
+ /** Always sent by the server; a hand-built preview may omit it to mean `markdown`. */
2292
+ kind?: MemberPageKind;
2293
+ placeholder?: MemberPagePlaceholder;
2294
+ feature?: MemberPageFeature;
2128
2295
  teaserMarkdown?: string;
2129
2296
  bodyMarkdown?: string;
2130
2297
  upsell?: ResolvedMemberPageUpsell;
@@ -2132,6 +2299,8 @@ interface MemberContentPageProjection {
2132
2299
  /** Complete viewer-safe member navigation and revision projection. */
2133
2300
  interface MemberContentProjection {
2134
2301
  pages: readonly MemberContentPageProjection[];
2302
+ /** Always sent by the server; a hand-built preview may omit it. */
2303
+ sections?: readonly MemberContentSection[];
2135
2304
  viewer: {
2136
2305
  tierId: string | null;
2137
2306
  admin: boolean;
@@ -2160,6 +2329,17 @@ type MemberContentRejection = "invalid_document" | "invalid_digest" | "wrong_sou
2160
2329
 
2161
2330
  /** Compose immutable Parent content with independently stored Chapter content. */
2162
2331
  declare function composeMemberContent(parent: MemberContentDocument | null | undefined, chapter: MemberContentDocument | null | undefined): EffectiveMemberContent;
2332
+ /**
2333
+ * The single member-content access decision. A page's lock in the catalog and
2334
+ * the API routes of the feature it stands for both come from this function.
2335
+ */
2336
+ declare const memberPageAllowed: (page: MemberContentPage, viewer: MemberContentViewer) => boolean;
2337
+ /**
2338
+ * Whether a viewer may use a packaged feature. A feature is enabled only by a
2339
+ * catalog page of kind `feature` naming it (and `ref`, when given); access is
2340
+ * that page's audience. No page means the feature is off for everyone.
2341
+ */
2342
+ declare function memberFeatureAccess(content: Pick<EffectiveMemberContent, "pages">, viewer: MemberContentViewer, name: MemberPageFeatureName, ref?: string): "allowed" | "locked" | "absent";
2163
2343
  /** Restricted bodies are omitted and authored offers are joined to live tier authority. */
2164
2344
  declare function projectMemberContent(content: EffectiveMemberContent, viewer: MemberContentViewer, tiers: readonly MemberContentTierAuthority[]): MemberContentProjection;
2165
2345
 
@@ -2335,6 +2515,129 @@ declare function createBuilderLibraryEnvelope(document: BuilderLibraryDocument):
2335
2515
  digest: string;
2336
2516
  }>;
2337
2517
 
2518
+ /**
2519
+ * Validate the member portal. Courses and invite links are chapter-mode
2520
+ * features and need the member-content catalog, whose feature pages switch
2521
+ * them on and decide who may use them.
2522
+ */
2523
+ declare function resolveMemberPortal(mode: ChapterMode, input: ChapterMemberPortal | undefined, hasMemberContent: boolean): ResolvedMemberPortal | null;
2524
+
2525
+ /** Namespaces the configured member portal needs. All are deny-all to clients. */
2526
+ declare function memberPortalEntities(mode: ChapterMode, portal: ResolvedMemberPortal | null, hasMemberContent: boolean): Record<string, Entity>;
2527
+
2528
+ type Row$1 = Record<string, unknown>;
2529
+ /**
2530
+ * The signed-in person as a member of this site, independent of mode. In a
2531
+ * chapter the member is their application and access is the membership
2532
+ * authority's answer; in a hub the member is an active admin grant and there
2533
+ * are no tiers. Administrative roles never make someone a member.
2534
+ */
2535
+ interface PortalMember {
2536
+ /** Stable key for portal rows: the application id, or the hub grant id. */
2537
+ memberId: string;
2538
+ source: "application" | "hub-grant";
2539
+ email: string;
2540
+ firstName?: string;
2541
+ lastName?: string;
2542
+ tierId: string | null;
2543
+ /** When membership began (epoch ms), for "Member since". */
2544
+ memberSince: number | null;
2545
+ row: Row$1;
2546
+ }
2547
+ /** `member` only for someone with current member access. */
2548
+ type PortalMemberResult = {
2549
+ status: "member";
2550
+ member: PortalMember;
2551
+ } | {
2552
+ status: "not-member";
2553
+ row?: Row$1;
2554
+ } | {
2555
+ status: "unavailable";
2556
+ };
2557
+ /** The member's own identity block, as `/api/me` returns it under `portal`. */
2558
+ interface PortalIdentity {
2559
+ memberId: string;
2560
+ tier: {
2561
+ id: string;
2562
+ name: string;
2563
+ } | null;
2564
+ memberSince: number | null;
2565
+ displayName: string;
2566
+ firstName: string | null;
2567
+ initials: string;
2568
+ location: string | null;
2569
+ photoUrl: string | null;
2570
+ }
2571
+ /** First letters of the first and last words, uppercased: "Jane Morgan" → "JM". */
2572
+ declare function initialsOf(name: string): string;
2573
+
2574
+ /**
2575
+ * Profile fields a member edits, each mapped to the authority contract row
2576
+ * that permits it. A field the contract stops listing becomes read-only here.
2577
+ */
2578
+ declare const MEMBER_PROFILE_FIELDS: {
2579
+ readonly preferredName: "person.preferredName";
2580
+ readonly location: "person.region";
2581
+ readonly prompts: "person.profilePrompts";
2582
+ readonly introducedByText: "person.introducedByText";
2583
+ };
2584
+ /** One editable profile field name. */
2585
+ type MemberProfileField = keyof typeof MEMBER_PROFILE_FIELDS;
2586
+ /** One answered prompt. */
2587
+ interface MemberProfilePrompt {
2588
+ prompt: string;
2589
+ answer: string;
2590
+ }
2591
+ /** A validated profile edit. Absent keys are left as they are. */
2592
+ interface MemberProfilePatch {
2593
+ preferredName?: string | null;
2594
+ location?: string | null;
2595
+ prompts?: MemberProfilePrompt[];
2596
+ introducedByText?: string | null;
2597
+ }
2598
+ /** Answers are short and plain; control characters never reach storage. */
2599
+ declare const MAX_PROMPT_ANSWER = 280;
2600
+ /** Validate a member's PUT body against the contract and the site's prompt list. */
2601
+ declare function validateProfilePatch(body: Record<string, unknown>, portal: Pick<ResolvedMemberPortal, "profilePrompts" | "maxPrompts">): {
2602
+ ok: true;
2603
+ patch: MemberProfilePatch;
2604
+ } | {
2605
+ ok: false;
2606
+ errors: string[];
2607
+ };
2608
+ /** Normalize a person's name for exact matching: case, spacing and surrounding punctuation ignored. */
2609
+ declare const nameKey: (value: string) => string;
2610
+ /** "Maria Lopez" → "Maria L.": how a member sees another member's name. */
2611
+ declare function shortName(firstName: unknown, lastName: unknown): string;
2612
+
2613
+ /** The signed-in member's own profile. */
2614
+ declare const MEMBER_PROFILE_PATH = "/api/member/profile";
2615
+ /** Upload (POST) the member's own photo as a raw JPEG or PNG body. */
2616
+ declare const MEMBER_PHOTO_PATH = "/api/member/profile/photo";
2617
+ /** The largest photo accepted, before cleaning. */
2618
+ declare const MAX_PHOTO_BYTES: number;
2619
+ /** Photos are resized in the browser; the stored image is at most this many pixels a side. */
2620
+ declare const PHOTO_SIZE = 400;
2621
+
2622
+ /** Admin roster for a hub's members. A grant is member access only; it never touches admin roles. */
2623
+ declare const HUB_MEMBERS_PATH = "/api/admin/hub-members";
2624
+
2625
+ /**
2626
+ * Byte-level image hygiene for member photos, with no decoder: identify JPEG or
2627
+ * PNG by magic bytes, read dimensions, and rebuild the file keeping only what
2628
+ * is needed to draw it. EXIF (including GPS), XMP, ICC-free comments and PNG
2629
+ * text chunks never reach storage.
2630
+ */
2631
+ interface CleanImage {
2632
+ contentType: "image/jpeg" | "image/png";
2633
+ extension: "jpg" | "png";
2634
+ width: number;
2635
+ height: number;
2636
+ bytes: Uint8Array;
2637
+ }
2638
+ /** Identify and clean a JPEG or PNG. Anything else, or a malformed file, is null. */
2639
+ declare function cleanImage(bytes: Uint8Array): CleanImage | null;
2640
+
2338
2641
  /** The default shared CRM graph: people (with the application/member pipeline)
2339
2642
  * plus businesses and the `works_at` relation, in both modes. */
2340
2643
  declare function defaultCrm(mode: ChapterMode): CrmConfig;
@@ -2400,10 +2703,31 @@ interface SecretStore {
2400
2703
  */
2401
2704
  declare function getVaultSecret(db: SecretStore, name: string): Promise<string | undefined>;
2402
2705
 
2403
- /** One owner-editable template row on the group. Automatic sends require `enabled:true`. */
2706
+ /** `{{placeholder}}` substitution with `{{#name}} … {{/name}}` sections; unknown placeholders render empty. */
2707
+ declare function render(template: string, vars: Record<string, string>): string;
2708
+ /** Largest HTML body a template may carry; a full table-based email is well under this. */
2709
+ declare const HTML_BODY_LIMIT = 200000;
2710
+ /**
2711
+ * Render a template's HTML body: the same placeholders and sections as the text,
2712
+ * every value HTML-escaped, and line breaks inside a value (the refund policy,
2713
+ * the commitment) kept as `<br>`. Markup belongs to the template, never to a value.
2714
+ */
2715
+ declare function renderHtmlBody(template: string, vars: Record<string, string>): string;
2716
+ /** Problems in an HTML body: size, unbalanced sections, placeholders the event does not supply, and missing values. */
2717
+ declare function htmlBodyIssues(html: string, options: {
2718
+ allowedVariables?: readonly string[];
2719
+ optionalVariables?: readonly string[];
2720
+ values?: Record<string, string>;
2721
+ }): EmailCopyIssue[];
2722
+
2723
+ /** One owner-editable template row on the group. Automatic sends require `enabled:true`.
2724
+ * `text` is always sent and is the copy the pipeline validates and records; `html`, when
2725
+ * present, is sent beside it as the rich alternative (mail clients pick one). */
2404
2726
  interface EmailTemplateRow {
2405
2727
  subject: string;
2406
2728
  text: string;
2729
+ /** Optional HTML body with the same placeholders and sections; values are escaped when rendered. */
2730
+ html?: string;
2407
2731
  enabled?: boolean;
2408
2732
  }
2409
2733
  /** The `groups`-row fields the email pipeline reads. */
@@ -2420,8 +2744,7 @@ interface EmailGroup {
2420
2744
  normsText?: string;
2421
2745
  emailTemplates: Record<string, EmailTemplateRow>;
2422
2746
  }
2423
- /** `{{placeholder}}` substitution; unknown placeholders render empty. */
2424
- declare function render(template: string, vars: Record<string, string>): string;
2747
+
2425
2748
  /**
2426
2749
  * Re-render a template's body for history/preview (E4): the CRM comms history
2427
2750
  * reads back emails whose body predates `emailLog.body` by rendering the current
@@ -2451,6 +2774,8 @@ type DeliveryDecision = {
2451
2774
  to: string;
2452
2775
  subject: string;
2453
2776
  text: string;
2777
+ /** The rendered HTML alternative, when the template carries its own HTML body. */
2778
+ html?: string;
2454
2779
  /** True when redirected to the non-prod debug inbox. */
2455
2780
  redirected: boolean;
2456
2781
  };
@@ -2505,6 +2830,7 @@ declare function validateEmailReadiness(input: {
2505
2830
  templates: Record<string, {
2506
2831
  subject?: unknown;
2507
2832
  text?: unknown;
2833
+ html?: unknown;
2508
2834
  enabled?: unknown;
2509
2835
  }>;
2510
2836
  groupValues: Record<string, string>;
@@ -2549,7 +2875,7 @@ interface NotifyDeps {
2549
2875
  from?: string;
2550
2876
  /** Runtime-local non-production inbox; never changes the shared chapter setting. */
2551
2877
  debugEmail?: string;
2552
- /** The HTML alternative sent beside the text part: {@link textToHtml} by default, a host renderer, or `false` for text-only mail. */
2878
+ /** The HTML alternative sent beside the text part when the template has no `html` body of its own: {@link textToHtml} by default, a host renderer, or `false` for text-only mail. */
2553
2879
  renderHtml?: ((text: string) => string) | false;
2554
2880
  now: () => number;
2555
2881
  newId: () => string;
@@ -2618,6 +2944,25 @@ declare function normalizeChapterEmail(email: string): string;
2618
2944
  */
2619
2945
  declare function textToHtml(text: string): string;
2620
2946
 
2947
+ type Row = Record<string, unknown>;
2948
+ /** Money and tier facts frozen at checkout; every field is blank without a checkout. */
2949
+ interface CheckoutVariables {
2950
+ /** `$900.00`, or "" for a free tier / no checkout. */
2951
+ paymentAmount: string;
2952
+ /** ` of $900.00`, so copy reads "payment of $900.00" or just "payment". */
2953
+ paymentAmountSummary: string;
2954
+ /** The tier's display name. */
2955
+ tierName: string;
2956
+ /** `paid` or `included` when the checkout carried a gift seat for another person, else "" (so `{{#namedSeat}}` hides). */
2957
+ namedSeat: string;
2958
+ /** The gift recipient's name as entered at checkout; "" without a seat. */
2959
+ namedSeatRecipientName: string;
2960
+ }
2961
+ /** Read the frozen checkout intent (the exact terms the applicant consented to). */
2962
+ declare function frozenCheckoutVariables(db: ChapterDb, app: Row): Promise<CheckoutVariables>;
2963
+ /** Frozen checkout facts; the tier name falls back to the catalog when no checkout exists yet. */
2964
+ declare function checkoutVariables(db: ChapterDb, group: Row, app: Row): Promise<CheckoutVariables>;
2965
+
2621
2966
  /**
2622
2967
  * Signals in one template's copy that mailbox filters weight against the sender:
2623
2968
  * shouting or over-punctuated subjects, fake reply prefixes, trigger phrases, insecure
@@ -2627,6 +2972,7 @@ declare function textToHtml(text: string): string;
2627
2972
  declare function emailSpamSignals(copy: {
2628
2973
  subject?: unknown;
2629
2974
  text?: unknown;
2975
+ html?: unknown;
2630
2976
  }): EmailCopyIssue[];
2631
2977
  /**
2632
2978
  * Sender-setup signals that apply to every message a site sends: a no-reply From
@@ -4458,4 +4804,4 @@ declare function createMembershipAuthorityIntegration(): {
4458
4804
  seeds: never[];
4459
4805
  };
4460
4806
 
4461
- export { ADMINISTRATOR_AUDIENCE, ADMISSION_GRANTS_PATH, ADMISSION_GRANTS_SCHEMA_VERSION, type AccountModel, type AdminNotificationTrigger, type AdmissionDecision, type AdmissionGrantDocument, type AdmissionGrantEnvelope, type AdmissionGrantInput, type AdmissionGrantReceipt, type AdmissionGrantRejection, type AdmissionGrantRevisionRow, type AdmissionGrantRow, type AdmissionGrantValidation, type Applicant, type ApplicationBookingPatch, type ApplicationRecord, type ApplicationSummary, type Attr, type AttrType, BUILDER_LIBRARY_ADMIN_PATH, BUILDER_LIBRARY_CONTROL_PATH, BUILDER_LIBRARY_MANIFEST_PATH, BUILDER_LIBRARY_PROMOTE_PATH, BUILDER_LIBRARY_SCHEMA_VERSION, type BuilderLibraryBrandAssetRef, type BuilderLibraryDocument, type BuilderLibraryEnvelope, type BuilderLibraryManifest, type BuilderLibraryPromotionProvenance, type BuilderLibraryReceipt, type BuilderLibraryResource, type BuilderLibraryResourceKind, type BuilderLibraryResourceProvenance, type BuilderLibraryResourceStatus, type BuilderLibraryScope, type BuilderLibrarySource, type BuilderLibrarySourceType, type BuilderLibraryTarget, type BuilderLibraryValidationOptions, type BuilderLibraryValidationResult, type BuilderLibraryViewer, type BuyerGiftClaim, CHAPTER_EMAIL_EVENTS, CHAPTER_FLOW_FIELDS_SCHEMA_VERSION, CHAPTER_PROMOTION_ADAPTER, type Chapter, type ChapterApplication, type ChapterAuth, type ChapterBrand, type ChapterBuilderLibrary, type ChapterCommercialParityRecord, type ChapterCommercialParitySnapshot, type ChapterConfig, type ChapterCopy, type ChapterCopyInput, type ChapterDb, type ChapterEmailEvent, type ChapterEmailIdentity, type ChapterEmails, type ChapterFieldFlow, type ChapterFlowField, type ChapterFlowFieldContract, type ChapterIntegrationDescriptor, type ChapterIntegrationOptions, type ChapterMemberContent, type ChapterMode, type ChapterNetwork, type ChapterNetworkReader, type ChapterNetworkTarget, type ChapterOperations, type ChapterPipeline, type ChapterPolicy, type ChapterPrices, type ChapterPromotionInput, type ChapterRunbookHints, type ChapterScheduling, type ChapterSends, type ChapterSignupControl, type ChapterTier, type ChapterTierConfig, type ClerkInviteInput, type ClerkMetadataInput, type ClerkResult, type ClerkRoleMetadata, type ClerkUserInput, type ClerkUserRecord, type CommercialIdentity, type CommercialObjectKind, type CommercialParityException, type CommercialParityExceptionKind, type CommercialParityPartition, type CommercialParityResult, type CompiledChapterBrandTokens, type ConfirmMembershipPaymentInput, DEFAULT_CHAPTER_COPY, DEFAULT_SHARE_FIELDS, type DashboardMetricData, type DashboardMetricSeries, type DbOp, type DbRules, type DbSchema, type DeliveryDecision, EDGE_UNPAIRED, type EdgeUnpaired, type EffectiveMemberContent, type EffectiveMemberContentPage, type EmailEventReadiness, type EmailGroup, type EmailReadiness, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, type FederationEdge, GIFT_OFFER_CATALOG_VERSION, type GiftOffer, type GiftOfferCatalog, type GiftOfferTarget, type GiftOfferValidation, type GuardResult, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, type IssuedMembershipOffer, JOURNEY_ENDINGS, JOURNEY_STAGES, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type JourneyEnding, type JourneyStage, type LeaderCrmOptions, type LeaderFormationConfig, type LifecycleDeliveryResolution, type LiveEvent, MAX_GIFT_OFFERS, MEMBERSHIP_AUTHORITY_COLLECTIONS, MEMBERSHIP_AUTHORITY_PATH, MEMBERSHIP_PAGE_RENDERER, MEMBER_CONTENT_CONTROL_PATH, MEMBER_CONTENT_PATH, MEMBER_CONTENT_SCHEMA_VERSION, MEMBER_SELF_EDITABLE_FIELDS, MEMBER_SELF_READABLE_FIELDS, MEMBER_SYSTEM_AUTHORITY_MATRIX, MEMBER_SYSTEM_CONTRACT_VERSION, MEMBER_SYSTEM_RECORD_OWNERS, MEMBER_SYSTEM_RECOVERY_OBJECTIVES, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, type MemberAuthorityValidation, type MemberContentDocument, type MemberContentEnvelope, type MemberContentPage, type MemberContentPageProjection, type MemberContentProjection, type MemberContentReceipt, type MemberContentRejection, type MemberContentSource, type MemberContentSourceType, type MemberContentTarget, type MemberContentTierAuthority, type MemberContentValidationOptions, type MemberContentValidationResult, type MemberContentViewer, type MemberFieldAuthority, type MemberFieldSelfAccess, type MemberFieldSensitivity, type MemberPageAudience, type MemberPageNavigation, type MemberPageUpsell, type MemberPageUpsellOffer, type MemberPageUpsellOverride, type MemberSession, type MemberStripeDisposition, type MemberStripeIdentity, type MemberStripeTarget, type MemberSystemAvailability, type MemberSystemAvailabilityInput, type MemberSystemEventReceiptInput, type MemberSystemEventReplayPlan, type MemberSystemMigrationPlan, type MemberSystemMigrationRow, type MemberSystemProjection, type MemberSystemRecoveryObjectives, type MemberSystemRollbackPlan, type MemberSystemScope, type MemberSystemWriteDisposition, type MemberSystemWriteIntent, type MemberSystemWriter, type MembershipAccessReceipt, type MembershipAuthorityHandlerOptions, type MembershipAuthorityPeer, type MembershipChapterEffect, type MembershipChapterEffectData, type MembershipCheckoutBinding, type MembershipCheckoutBindingInput, type MembershipCommercialOffer, type MembershipDiscountPolicyVersion, type MembershipEffectScope, type MembershipOfferIssuer, type MembershipOfferPreview, type MembershipOfferPreviewRequest, type MembershipOfferPreviewScope, type MembershipOfferRequest, type MembershipOfferingVersion, type MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipPaymentReceipt, type MembershipQuoteTarget, type MembershipRefundReceipt, type MembershipRenewalReceipt, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, type NamedSeatCheckoutReceipt, type NamedSeatCheckoutRequest, type NamedSeatEvidenceRequest, type NamedSeatInvitation, type NamedSeatInvitationRequest, type NamedSeatOffer, type NamedSeatOfferSeat, type NamedSeatRecipientReceipt, type NamedSeatRefundReceipt, type NamedSeatRegiftReceipt, type NetworkCommercialException, type NetworkCommercialFact, type NetworkCommercialProjectedRow, type NetworkCommercialProjection, type NetworkEditableField, type NetworkRecord, type NetworkRecordEdit, type NetworkRecordMutation, type NetworkRecordMutationResult, type NetworkRecordNote, type NetworkRecordPage, type NetworkRecordSort, type NetworkRollup, type NetworkRollupTarget, type NetworkSharedNote, type NetworkSnapshot, type NetworkStageTransition, type NetworkTargetTransportStatus, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type PrivateRoleMigrationInput, type PrivateRoleRuntimeProof, type ProjectionDeps, type PublicGiftOffer, REQUIRED_NOTICE_KINDS, type ReconcileDecision, type RequestMembershipOfferOptions, type RequiredNoticeKind, type ResolvedApplication, type ResolvedAuth, type ResolvedBuilderLibrary, type ResolvedLeaderFormation, type ResolvedMemberContent, type ResolvedMemberPageUpsell, type ResolvedNetwork, type ResolvedNetworkReader, type ResolvedNetworkTarget, type ResolvedOperations, type ResolvedPipeline, type ResolvedScheduling, type ResolvedSends, type ResolvedSignupControl, type RoleChangeContext, type Rule, SCHEDULING_DEFAULTS, SIGNUP_CONTROL_PATH, SIGNUP_CONTROL_SCHEMA_VERSION, SIGNUP_CONTROL_THEME_MARKER, SIGNUP_CONTROL_THEME_STYLE_ID, SILVER_SALT_P0_FIXTURE, type SchedulingErrors, type SecretMode, type SecretStore, type SessionUser, type SharedBusiness, type SharedPerson, type SharedRecord, type SharedRecordV1, type SharedRecordV2, type SignupControlApplication, type SignupControlDocument, type SignupControlEnvelope, type SignupControlPolicy, type SignupControlReceipt, type SignupControlRejection, type SignupControlRuntimeTarget, type SignupControlTheme, type SignupControlThemeHead, type SignupControlThemeMetadata, type SignupControlThemeOptions, type SignupControlThemeRevision, type SignupControlThemeStyleTarget, type SignupControlTier, type SignupControlValidation, type StripeEvent, type StripeResult, type SubmitResult, type TierGroup, type TierGroupRow, type WebhookEvent, addMembershipCalendarMonths, applicantProfile, applicationBookingUpdate, applicationFlowFields, applicationSummary, applyMembershipTierMarkdown, approveNetworkMembership, backfillCrm, bindMembershipCheckout, bookingDecision, brandTokens, bucketSeries, buildBuilderLibraryManifest, buildChapterCommercialParitySnapshot, buildGroupSeed, buildTierSeeds, builderLibraryDigest, canApprove, canBook, canChangeRole, canTransition, canViewBuilderLibraryResource, canceledPatch, canonicalBuilderLibrary, canonicalMemberContent, canonicalSignupControl, chapterBrandFromTokens, chapterDb, chapterEmailEvents, chapterFlowFieldContract, clampArray, classifyMemberStripeEvent, classifyMemberSystemWrite, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkRoleMetadata, clerkSetRole, clerkUserRequest, commercialParityDigest, composeMemberContent, confirmMembershipPayment, createAdmissionGrantEnvelope, createBuilderLibraryEnvelope, createChapterIntegration, createClerkInvitation, createClerkUser, createMemberContentEnvelope, createMembershipAuthorityHandler, createMembershipAuthorityIntegration, createMembershipCommercialOffer, createSignupControlEnvelope, dashboardMetricData, defaultCrm, defineChapter, deliverabilityHeaders, drainMembershipEffects, edgeUnpaired, emailGroupFrom, emailSenderWarnings, emailSpamSignals, endForSlot, exportChapterPromotion, findAdmissionGrant, findApplicationRef, findGiftOffer, findTier, firstPaymentPatch, formatChapterCopy, formationFields, formationFlowFields, getVaultSecret, giftOfferActive, hasDisclaimerAck, hydrateSignupControlTheme, injectSignupControlThemeHead, introIdempotencyKey, isAdminRole, isAlreadySent, isRecipientFacing, isReconcilable, isSlotAvailable, isValidEmail, issueMembershipCommercialOffer, joinConfig, joinConfigTiers, leaderCrmConfig, listStripeObjects, listUnsubscribeHeader, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, memberSystemAvailability, memberSystemRollbackPlan, membershipAuthorityEntities, membershipAuthorityRules, membershipCheckoutBindingId, membershipDiscountCouponId, membershipDiscountPolicyVersion, membershipOfferEntities, membershipOfferIdForRequest, membershipOfferRules, membershipOfferingVersion, membershipPageDocument, membershipTierPresentationFromMarkdown, namedSeatOfferDigest, networkCommercialSourceKey, networkMembershipId, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeNetworkCommercialStripeEvent, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, pairingCommand, paymentsReady, personInputFromApp, planDelivery, planMemberSystemEventReplay, planMemberSystemMigration, planPrivateRoleMigration, previewMembershipCommercialOffer, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectMemberSelf, projectNetworkCommercialEvents, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, readMembershipAccess, readMembershipChapterEffect, readNamedSeatAccess, readNamedSeatInvitation, readNamedSeatOffer, reconcileCommercialParitySnapshot, reconcileLifecycleDelivery, reconcileMeetings, reconcileMembershipBilling, reconcileMembershipRenewal, reconcileStripeSnapshot, refundNetworkMembership, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, requestMembershipAccess, requestMembershipApproval, requestMembershipCancellation, requestMembershipChapterEffect, requestMembershipCheckoutBinding, requestMembershipCommercialOffer, requestMembershipOfferPreview, requestMembershipPayment, requestMembershipRefund, requestMembershipRenewal, requestMembershipRestart, requestNamedSeatAcceptance, requestNamedSeatAccess, requestNamedSeatApproval, requestNamedSeatCheckout, requestNamedSeatDecline, requestNamedSeatInvitation, requestNamedSeatOffer, requestNamedSeatOperatorRefund, requestNamedSeatPayment, requestNamedSeatRefund, requestNamedSeatRegift, requestNamedSeatReservation, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolveNetworkCommercialReadModel, resolveNetworkPersonRegistry, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, seatPurchaseDeadline, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, textToHtml, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateEmailReadiness, validateGiftOfferCatalog, validateMemberContentDocument, validateMemberSystemAuthority, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, verifyIssuedMembershipOffer, verifyMembershipAccessReceipt, verifyMembershipCheckoutBinding, verifyMembershipPaymentReceipt, webhookMutationId };
4807
+ export { ADMINISTRATOR_AUDIENCE, ADMISSION_GRANTS_PATH, ADMISSION_GRANTS_SCHEMA_VERSION, type AccountModel, type AdminNotificationTrigger, type AdmissionDecision, type AdmissionGrantDocument, type AdmissionGrantEnvelope, type AdmissionGrantInput, type AdmissionGrantReceipt, type AdmissionGrantRejection, type AdmissionGrantRevisionRow, type AdmissionGrantRow, type AdmissionGrantValidation, type Applicant, type ApplicationBookingPatch, type ApplicationRecord, type ApplicationSummary, type Attr, type AttrType, BUILDER_LIBRARY_ADMIN_PATH, BUILDER_LIBRARY_CONTROL_PATH, BUILDER_LIBRARY_MANIFEST_PATH, BUILDER_LIBRARY_PROMOTE_PATH, BUILDER_LIBRARY_SCHEMA_VERSION, type BuilderLibraryBrandAssetRef, type BuilderLibraryDocument, type BuilderLibraryEnvelope, type BuilderLibraryManifest, type BuilderLibraryPromotionProvenance, type BuilderLibraryReceipt, type BuilderLibraryResource, type BuilderLibraryResourceKind, type BuilderLibraryResourceProvenance, type BuilderLibraryResourceStatus, type BuilderLibraryScope, type BuilderLibrarySource, type BuilderLibrarySourceType, type BuilderLibraryTarget, type BuilderLibraryValidationOptions, type BuilderLibraryValidationResult, type BuilderLibraryViewer, type BuyerGiftClaim, CHAPTER_EMAIL_EVENTS, CHAPTER_FLOW_FIELDS_SCHEMA_VERSION, CHAPTER_PROMOTION_ADAPTER, type Chapter, type ChapterApplication, type ChapterAuth, type ChapterBrand, type ChapterBuilderLibrary, type ChapterCommercialParityRecord, type ChapterCommercialParitySnapshot, type ChapterConfig, type ChapterCopy, type ChapterCopyInput, type ChapterDb, type ChapterEmailEvent, type ChapterEmailIdentity, type ChapterEmails, type ChapterFieldFlow, type ChapterFlowField, type ChapterFlowFieldContract, type ChapterIntegrationDescriptor, type ChapterIntegrationOptions, type ChapterMemberContent, type ChapterMode, type ChapterNetwork, type ChapterNetworkReader, type ChapterNetworkTarget, type ChapterOperations, type ChapterPipeline, type ChapterPolicy, type ChapterPrices, type ChapterPromotionInput, type ChapterRunbookHints, type ChapterScheduling, type ChapterSends, type ChapterSignupControl, type ChapterTier, type ChapterTierConfig, type CheckoutVariables, type CleanImage, type ClerkInviteInput, type ClerkMetadataInput, type ClerkResult, type ClerkRoleMetadata, type ClerkUserInput, type ClerkUserRecord, type CommercialIdentity, type CommercialObjectKind, type CommercialParityException, type CommercialParityExceptionKind, type CommercialParityPartition, type CommercialParityResult, type CompiledChapterBrandTokens, type ConfirmMembershipPaymentInput, DEFAULT_CHAPTER_COPY, DEFAULT_PORTAL_COPY, DEFAULT_SHARE_FIELDS, type DashboardMetricData, type DashboardMetricSeries, type DbOp, type DbRules, type DbSchema, type DeliveryDecision, EDGE_UNPAIRED, type EdgeUnpaired, type EffectiveMemberContent, type EffectiveMemberContentPage, type EmailEventReadiness, type EmailGroup, type EmailReadiness, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, type FederationEdge, GIFT_OFFER_CATALOG_VERSION, type GiftOffer, type GiftOfferCatalog, type GiftOfferTarget, type GiftOfferValidation, type GuardResult, HTML_BODY_LIMIT, HUB_MEMBERS_PATH, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, type IssuedMembershipOffer, JOURNEY_ENDINGS, JOURNEY_STAGES, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type JourneyEnding, type JourneyStage, type LeaderCrmOptions, type LeaderFormationConfig, type LifecycleDeliveryResolution, type LiveEvent, MAX_GIFT_OFFERS, MAX_PHOTO_BYTES, MAX_PROMPT_ANSWER, MEMBERSHIP_AUTHORITY_COLLECTIONS, MEMBERSHIP_AUTHORITY_PATH, MEMBERSHIP_PAGE_RENDERER, MEMBER_CONTENT_CONTROL_PATH, MEMBER_CONTENT_PATH, MEMBER_CONTENT_SCHEMA_VERSION, MEMBER_PAGE_FEATURES, MEMBER_PAGE_ICONS, MEMBER_PAGE_TAGS, MEMBER_PHOTO_PATH, MEMBER_PROFILE_FIELDS, MEMBER_PROFILE_PATH, MEMBER_SELF_EDITABLE_FIELDS, MEMBER_SELF_READABLE_FIELDS, MEMBER_SYSTEM_AUTHORITY_MATRIX, MEMBER_SYSTEM_CONTRACT_VERSION, MEMBER_SYSTEM_RECORD_OWNERS, MEMBER_SYSTEM_RECOVERY_OBJECTIVES, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, type MemberAuthorityValidation, type MemberContentDocument, type MemberContentEnvelope, type MemberContentPage, type MemberContentPageProjection, type MemberContentProjection, type MemberContentReceipt, type MemberContentRejection, type MemberContentSchemaVersion, type MemberContentSection, type MemberContentSource, type MemberContentSourceType, type MemberContentTarget, type MemberContentTierAuthority, type MemberContentValidationOptions, type MemberContentValidationResult, type MemberContentViewer, type MemberFieldAuthority, type MemberFieldSelfAccess, type MemberFieldSensitivity, type MemberPageAudience, type MemberPageFeature, type MemberPageFeatureName, type MemberPageIcon, type MemberPageKind, type MemberPageNavigation, type MemberPagePlaceholder, type MemberPageTag, type MemberPageUpsell, type MemberPageUpsellOffer, type MemberPageUpsellOverride, type MemberProfileField, type MemberProfilePatch, type MemberProfilePrompt, type MemberSession, type MemberStripeDisposition, type MemberStripeIdentity, type MemberStripeTarget, type MemberSystemAvailability, type MemberSystemAvailabilityInput, type MemberSystemEventReceiptInput, type MemberSystemEventReplayPlan, type MemberSystemMigrationPlan, type MemberSystemMigrationRow, type MemberSystemProjection, type MemberSystemRecoveryObjectives, type MemberSystemRollbackPlan, type MemberSystemScope, type MemberSystemWriteDisposition, type MemberSystemWriteIntent, type MemberSystemWriter, type MembershipAccessReceipt, type MembershipAuthorityHandlerOptions, type MembershipAuthorityPeer, type MembershipChapterEffect, type MembershipChapterEffectData, type MembershipCheckoutBinding, type MembershipCheckoutBindingInput, type MembershipCommercialOffer, type MembershipDiscountPolicyVersion, type MembershipEffectScope, type MembershipOfferIssuer, type MembershipOfferPreview, type MembershipOfferPreviewRequest, type MembershipOfferPreviewScope, type MembershipOfferRequest, type MembershipOfferingVersion, type MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipPaymentReceipt, type MembershipQuoteTarget, type MembershipRefundReceipt, type MembershipRenewalReceipt, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, type NamedSeatCheckoutReceipt, type NamedSeatCheckoutRequest, type NamedSeatEvidenceRequest, type NamedSeatInvitation, type NamedSeatInvitationRequest, type NamedSeatOffer, type NamedSeatOfferSeat, type NamedSeatRecipientReceipt, type NamedSeatRefundReceipt, type NamedSeatRegiftReceipt, type NetworkCommercialException, type NetworkCommercialFact, type NetworkCommercialProjectedRow, type NetworkCommercialProjection, type NetworkEditableField, type NetworkRecord, type NetworkRecordEdit, type NetworkRecordMutation, type NetworkRecordMutationResult, type NetworkRecordNote, type NetworkRecordPage, type NetworkRecordSort, type NetworkRollup, type NetworkRollupTarget, type NetworkSharedNote, type NetworkSnapshot, type NetworkStageTransition, type NetworkTargetTransportStatus, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, PHOTO_SIZE, type PaymentsGroup, type PortalCopy, type PortalIdentity, type PortalMember, type PortalMemberResult, type PrivateRoleMigrationInput, type PrivateRoleRuntimeProof, type ProjectionDeps, type PublicGiftOffer, REQUIRED_NOTICE_KINDS, type ReconcileDecision, type RequestMembershipOfferOptions, type RequiredNoticeKind, type ResolvedApplication, type ResolvedAuth, type ResolvedBuilderLibrary, type ResolvedLeaderFormation, type ResolvedMemberContent, type ResolvedMemberPageUpsell, type ResolvedNetwork, type ResolvedNetworkReader, type ResolvedNetworkTarget, type ResolvedOperations, type ResolvedPipeline, type ResolvedScheduling, type ResolvedSends, type ResolvedSignupControl, type RoleChangeContext, type Rule, SCHEDULING_DEFAULTS, SIGNUP_CONTROL_PATH, SIGNUP_CONTROL_SCHEMA_VERSION, SIGNUP_CONTROL_THEME_MARKER, SIGNUP_CONTROL_THEME_STYLE_ID, SILVER_SALT_P0_FIXTURE, type SchedulingErrors, type SecretMode, type SecretStore, type SessionUser, type SharedBusiness, type SharedPerson, type SharedRecord, type SharedRecordV1, type SharedRecordV2, type SignupControlApplication, type SignupControlDocument, type SignupControlEnvelope, type SignupControlPolicy, type SignupControlReceipt, type SignupControlRejection, type SignupControlRuntimeTarget, type SignupControlTheme, type SignupControlThemeHead, type SignupControlThemeMetadata, type SignupControlThemeOptions, type SignupControlThemeRevision, type SignupControlThemeStyleTarget, type SignupControlTier, type SignupControlValidation, type StripeEvent, type StripeResult, type SubmitResult, type TierGroup, type TierGroupRow, type WebhookEvent, addMembershipCalendarMonths, applicantProfile, applicationBookingUpdate, applicationFlowFields, applicationSummary, applyMembershipTierMarkdown, approveNetworkMembership, backfillCrm, bindMembershipCheckout, bookingDecision, brandTokens, bucketSeries, buildBuilderLibraryManifest, buildChapterCommercialParitySnapshot, buildGroupSeed, buildTierSeeds, builderLibraryDigest, canApprove, canBook, canChangeRole, canTransition, canViewBuilderLibraryResource, canceledPatch, canonicalBuilderLibrary, canonicalMemberContent, canonicalSignupControl, chapterBrandFromTokens, chapterDb, chapterEmailEvents, chapterFlowFieldContract, checkoutVariables, clampArray, classifyMemberStripeEvent, classifyMemberSystemWrite, cleanImage, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkRoleMetadata, clerkSetRole, clerkUserRequest, commercialParityDigest, composeMemberContent, composeMemberSections, confirmMembershipPayment, createAdmissionGrantEnvelope, createBuilderLibraryEnvelope, createChapterIntegration, createClerkInvitation, createClerkUser, createMemberContentEnvelope, createMembershipAuthorityHandler, createMembershipAuthorityIntegration, createMembershipCommercialOffer, createSignupControlEnvelope, dashboardMetricData, defaultCrm, defineChapter, deliverabilityHeaders, drainMembershipEffects, edgeUnpaired, emailGroupFrom, emailSenderWarnings, emailSpamSignals, endForSlot, exportChapterPromotion, findAdmissionGrant, findApplicationRef, findGiftOffer, findTier, firstPaymentPatch, formatChapterCopy, formationFields, formationFlowFields, frozenCheckoutVariables, getVaultSecret, giftOfferActive, hasDisclaimerAck, htmlBodyIssues, hydrateSignupControlTheme, initialsOf, injectSignupControlThemeHead, introIdempotencyKey, isAdminRole, isAlreadySent, isRecipientFacing, isReconcilable, isSlotAvailable, isValidEmail, issueMembershipCommercialOffer, joinConfig, joinConfigTiers, leaderCrmConfig, listStripeObjects, listUnsubscribeHeader, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberFeatureAccess, memberPageAllowed, memberPortalEntities, memberSession, memberSystemAvailability, memberSystemRollbackPlan, membershipAuthorityEntities, membershipAuthorityRules, membershipCheckoutBindingId, membershipDiscountCouponId, membershipDiscountPolicyVersion, membershipOfferEntities, membershipOfferIdForRequest, membershipOfferRules, membershipOfferingVersion, membershipPageDocument, membershipTierPresentationFromMarkdown, nameKey, namedSeatOfferDigest, networkCommercialSourceKey, networkMembershipId, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeNetworkCommercialStripeEvent, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, pairingCommand, paymentsReady, personInputFromApp, planDelivery, planMemberSystemEventReplay, planMemberSystemMigration, planPrivateRoleMigration, previewMembershipCommercialOffer, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectMemberSelf, projectNetworkCommercialEvents, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, readMembershipAccess, readMembershipChapterEffect, readNamedSeatAccess, readNamedSeatInvitation, readNamedSeatOffer, reconcileCommercialParitySnapshot, reconcileLifecycleDelivery, reconcileMeetings, reconcileMembershipBilling, reconcileMembershipRenewal, reconcileStripeSnapshot, refundNetworkMembership, refundedPatch, render, renderHtmlBody, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, requestMembershipAccess, requestMembershipApproval, requestMembershipCancellation, requestMembershipChapterEffect, requestMembershipCheckoutBinding, requestMembershipCommercialOffer, requestMembershipOfferPreview, requestMembershipPayment, requestMembershipRefund, requestMembershipRenewal, requestMembershipRestart, requestNamedSeatAcceptance, requestNamedSeatAccess, requestNamedSeatApproval, requestNamedSeatCheckout, requestNamedSeatDecline, requestNamedSeatInvitation, requestNamedSeatOffer, requestNamedSeatOperatorRefund, requestNamedSeatPayment, requestNamedSeatRefund, requestNamedSeatRegift, requestNamedSeatReservation, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolveMemberPortal, resolveNetworkCommercialReadModel, resolveNetworkPersonRegistry, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, seatPurchaseDeadline, sendTemplated, sharedPersonInput, sharedRecordFromCrm, shortName, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, textToHtml, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateEmailReadiness, validateGiftOfferCatalog, validateMemberContentDocument, validateMemberSystemAuthority, validateMembershipPageDocument, validateProfilePatch, validateScheduling, validateSignupControlDocument, verifyIssuedMembershipOffer, verifyMembershipAccessReceipt, verifyMembershipCheckoutBinding, verifyMembershipPaymentReceipt, webhookMutationId };