@odla-ai/chapter 0.45.0 → 0.47.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/README.md +22 -2
- package/dist/{copy-context-CIxmneHI.d.ts → copy-context-20WFI5TI.d.ts} +17 -4
- package/dist/index.cjs +212 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +104 -10
- package/dist/index.d.ts +104 -10
- package/dist/index.js +212 -58
- package/dist/index.js.map +1 -1
- package/dist/ui/admin/index.d.ts +2 -2
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/member/index.d.ts +2 -2
- package/dist/worker/index.cjs +363 -60
- package/dist/worker/index.cjs.map +1 -1
- package/dist/worker/index.d.cts +17 -4
- package/dist/worker/index.d.ts +17 -4
- package/dist/worker/index.js +363 -60
- package/dist/worker/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -318,6 +318,10 @@ interface ChapterNetworkTarget {
|
|
|
318
318
|
/** Allow package-owned desired admission decisions for existing leader CRM
|
|
319
319
|
* people to be delivered to this target. Omitted means default deny. */
|
|
320
320
|
admissionGrants?: boolean;
|
|
321
|
+
/** Allow this leader to request a PII-free commercial parity snapshot from
|
|
322
|
+
* this follower. The follower must independently enable the same reader;
|
|
323
|
+
* omitted means no application or Stripe identifier digest crosses. */
|
|
324
|
+
commercialParity?: boolean;
|
|
321
325
|
}
|
|
322
326
|
/** One signed peer allowed to browse a privacy-bounded projection of this
|
|
323
327
|
* site's CRM. The follower owns this allowlist; a leader target declaration
|
|
@@ -342,6 +346,9 @@ interface ChapterNetworkReader {
|
|
|
342
346
|
/** Accept signed desired admission decisions from this reader. Independent
|
|
343
347
|
* of record browsing; an admission-only reader may omit `fields`. */
|
|
344
348
|
admissionGrants?: boolean;
|
|
349
|
+
/** Disclose a bounded, PII-free commercial parity snapshot to this signed
|
|
350
|
+
* reader. Identifiers leave only as edge-keyed, domain-separated HMACs. */
|
|
351
|
+
commercialParity?: boolean;
|
|
345
352
|
}
|
|
346
353
|
/** Leader/follower network configuration. A follower needs no code config to
|
|
347
354
|
* receive pushed records. It must explicitly declare `readers` before any peer
|
|
@@ -387,6 +394,7 @@ interface ResolvedNetworkTarget {
|
|
|
387
394
|
editableFields: Record<string, readonly string[]>;
|
|
388
395
|
stageTransitions: readonly string[];
|
|
389
396
|
admissionGrants?: boolean;
|
|
397
|
+
commercialParity?: boolean;
|
|
390
398
|
}
|
|
391
399
|
/** A validated follower-owned record projection for one signed reader. */
|
|
392
400
|
interface ResolvedNetworkReader {
|
|
@@ -396,6 +404,7 @@ interface ResolvedNetworkReader {
|
|
|
396
404
|
editableFields: Record<string, readonly string[]>;
|
|
397
405
|
stageTransitions: readonly string[];
|
|
398
406
|
admissionGrants?: boolean;
|
|
407
|
+
commercialParity?: boolean;
|
|
399
408
|
}
|
|
400
409
|
/** Fully-resolved leader network configuration. */
|
|
401
410
|
interface ResolvedNetwork {
|
|
@@ -595,7 +604,7 @@ interface ChapterScheduling {
|
|
|
595
604
|
*
|
|
596
605
|
* - `"claim"` reads a role ladder from a JWT claim (the member-site model:
|
|
597
606
|
* `provisional → member → admin`). Admin is the last (highest) rung; the
|
|
598
|
-
*
|
|
607
|
+
* Studio-managed super-admin tier sits above it.
|
|
599
608
|
* - `"table"` gates on the deny-all `admins` allowlist (the hub model):
|
|
600
609
|
* a binary "email is an admin or isn't", set only in odla Studio.
|
|
601
610
|
*
|
|
@@ -607,10 +616,13 @@ interface ChapterAuth {
|
|
|
607
616
|
/** Role ladder low→high, for `source: "claim"`. The last entry is admin.
|
|
608
617
|
* Default `["provisional", "member", "admin"]`. */
|
|
609
618
|
ladder?: readonly string[];
|
|
610
|
-
/**
|
|
611
|
-
* create/modify admins
|
|
612
|
-
* odla Studio. Default: `true` for `"claim"`, `false` for `"table"`. */
|
|
619
|
+
/** Enable the Studio-managed super-admin tier — the only tier that may
|
|
620
|
+
* create/modify admins. Default: `true` for `"claim"`, `false` for `"table"`. */
|
|
613
621
|
superAdmins?: boolean;
|
|
622
|
+
/** Authority behind the super-admin tier. `"table"` preserves the legacy
|
|
623
|
+
* app allowlist; `"odla"` reads protected `$users.role`. Default `"table"`
|
|
624
|
+
* for backward compatibility. */
|
|
625
|
+
superAdminSource?: "table" | "odla";
|
|
614
626
|
}
|
|
615
627
|
/** The fully-resolved auth policy (defaults applied) carried on the {@link Chapter}. */
|
|
616
628
|
interface ResolvedAuth {
|
|
@@ -620,6 +632,7 @@ interface ResolvedAuth {
|
|
|
620
632
|
/** The highest ladder rung (last entry) — the "admin" gate. */
|
|
621
633
|
adminRole: string;
|
|
622
634
|
superAdmins: boolean;
|
|
635
|
+
superAdminSource: "none" | "table" | "odla";
|
|
623
636
|
}
|
|
624
637
|
/** The application status pipeline. Which statuses exist, and the subsets a site
|
|
625
638
|
* allows a call to be booked from / an application approved from. Defaults to
|
|
@@ -978,6 +991,84 @@ declare function normalizeNetworkCommercialStripeEvent(input: unknown, digest: s
|
|
|
978
991
|
/** Deterministically rebuild the network commercial projection from its event log. */
|
|
979
992
|
declare function projectNetworkCommercialEvents(input: readonly NetworkCommercialFact[], sources: readonly NetworkCommercialSource[]): NetworkCommercialProjection;
|
|
980
993
|
|
|
994
|
+
type Row = Record<string, unknown>;
|
|
995
|
+
/** Exact chapter/runtime partition that binds every parity digest. */
|
|
996
|
+
interface CommercialParityPartition {
|
|
997
|
+
appId: string;
|
|
998
|
+
chapterId: string;
|
|
999
|
+
environment: string;
|
|
1000
|
+
dataEnvironment: string;
|
|
1001
|
+
runtime: string;
|
|
1002
|
+
}
|
|
1003
|
+
/** PII-free chapter membership identity and lifecycle disclosure. */
|
|
1004
|
+
interface ChapterCommercialParityRecord {
|
|
1005
|
+
applicationDigest: string;
|
|
1006
|
+
customerDigest: string | null;
|
|
1007
|
+
subscriptionDigest: string | null;
|
|
1008
|
+
status: string | null;
|
|
1009
|
+
canceled: boolean;
|
|
1010
|
+
}
|
|
1011
|
+
/** Bounded, signed-response payload produced by an opted-in chapter. */
|
|
1012
|
+
interface ChapterCommercialParitySnapshot {
|
|
1013
|
+
version: 1;
|
|
1014
|
+
site: {
|
|
1015
|
+
id: string;
|
|
1016
|
+
};
|
|
1017
|
+
partition: CommercialParityPartition;
|
|
1018
|
+
generatedAt: number;
|
|
1019
|
+
complete: boolean;
|
|
1020
|
+
truncated: boolean;
|
|
1021
|
+
counts: {
|
|
1022
|
+
scanned: number;
|
|
1023
|
+
eligible: number;
|
|
1024
|
+
returned: number;
|
|
1025
|
+
};
|
|
1026
|
+
records: ChapterCommercialParityRecord[];
|
|
1027
|
+
}
|
|
1028
|
+
/** Reconciliation exception categories that never expose raw identifiers. */
|
|
1029
|
+
type CommercialParityExceptionKind = "chapter_only" | "shadow_only" | "cancellation_mismatch" | "chapter_truncated" | "count_mismatch";
|
|
1030
|
+
/** One privacy-preserving mismatch between a chapter and its Stripe shadow. */
|
|
1031
|
+
interface CommercialParityException {
|
|
1032
|
+
kind: CommercialParityExceptionKind;
|
|
1033
|
+
applicationDigest?: string;
|
|
1034
|
+
detail: Record<string, string | number | boolean | null>;
|
|
1035
|
+
}
|
|
1036
|
+
/** Read-only result of comparing one chapter snapshot with one exact shadow partition. */
|
|
1037
|
+
interface CommercialParityResult {
|
|
1038
|
+
ok: boolean;
|
|
1039
|
+
complete: boolean;
|
|
1040
|
+
counts: {
|
|
1041
|
+
chapter: number;
|
|
1042
|
+
shadow: number;
|
|
1043
|
+
matched: number;
|
|
1044
|
+
};
|
|
1045
|
+
records: Array<ChapterCommercialParityRecord & {
|
|
1046
|
+
stripeStatus: string | null;
|
|
1047
|
+
stripeCanceled: boolean;
|
|
1048
|
+
}>;
|
|
1049
|
+
exceptions: CommercialParityException[];
|
|
1050
|
+
}
|
|
1051
|
+
/** Edge-keyed, domain-separated digest. Raw identifiers never enter a response. */
|
|
1052
|
+
declare function commercialParityDigest(secret: string, partition: CommercialParityPartition, kind: "application" | "customer" | "subscription", value: string): Promise<string>;
|
|
1053
|
+
/** Build the bounded disclosure from already-bounded local application rows. */
|
|
1054
|
+
declare function buildChapterCommercialParitySnapshot(input: {
|
|
1055
|
+
rows: readonly Row[];
|
|
1056
|
+
secret: string;
|
|
1057
|
+
partition: CommercialParityPartition;
|
|
1058
|
+
siteId: string;
|
|
1059
|
+
scanned: number;
|
|
1060
|
+
scanTruncated: boolean;
|
|
1061
|
+
maxRecords?: number;
|
|
1062
|
+
now?: number;
|
|
1063
|
+
}): Promise<ChapterCommercialParitySnapshot>;
|
|
1064
|
+
/** Compare one follower disclosure to the matching Stripe shadow partition. */
|
|
1065
|
+
declare function reconcileCommercialParitySnapshot(input: {
|
|
1066
|
+
projection: NetworkCommercialProjection;
|
|
1067
|
+
source: NetworkCommercialSource;
|
|
1068
|
+
snapshot: ChapterCommercialParitySnapshot;
|
|
1069
|
+
secret: string;
|
|
1070
|
+
}): Promise<CommercialParityResult>;
|
|
1071
|
+
|
|
981
1072
|
/** Options for {@link leaderCrmConfig}. */
|
|
982
1073
|
interface LeaderCrmOptions {
|
|
983
1074
|
/** Existing host CRM config to preserve. Defaults to Chapter's people +
|
|
@@ -1112,8 +1203,9 @@ declare function createChapterIntegration(chapter: Chapter, options?: ChapterInt
|
|
|
1112
1203
|
*
|
|
1113
1204
|
* Operational tables (`applications`/`groups`/`meetings`/`emailLog`) are added in
|
|
1114
1205
|
* `chapter` mode only. The auth tables follow {@link ResolvedAuth}: `source:
|
|
1115
|
-
* "table"` adds the `admins` allowlist (hub/BNF); `
|
|
1116
|
-
* read-only super-admin tier (
|
|
1206
|
+
* "table"` adds the `admins` allowlist (hub/BNF); `superAdminSource: "table"`
|
|
1207
|
+
* adds the legacy read-only super-admin tier (the backward-compatible default).
|
|
1208
|
+
* `superAdminSource: "odla"` uses reserved `$users` and adds no app namespace. A `"claim"`
|
|
1117
1209
|
* chapter therefore emits the reference namespace set — `applications`,
|
|
1118
1210
|
* `groups`, `meetings`, `emailLog`, `stripeEventReceipts`, `superAdmins` — with
|
|
1119
1211
|
* no `admins` table. */
|
|
@@ -1476,6 +1568,8 @@ declare function buildGroupSeed(config: ChapterConfig): Record<string, unknown>;
|
|
|
1476
1568
|
* Apply defaults + validate the auth config into a {@link ResolvedAuth}. Defaults
|
|
1477
1569
|
* by mode: `chapter` → the `provisional/member/admin` claim ladder with the
|
|
1478
1570
|
* `superAdmins` tier; `hub` → the `admins` allowlist table with no super tier.
|
|
1571
|
+
* Existing sites retain the legacy `superAdmins` table unless they explicitly
|
|
1572
|
+
* select protected odla user roles.
|
|
1479
1573
|
* Throws at import on a bad policy.
|
|
1480
1574
|
*/
|
|
1481
1575
|
declare function resolveAuth(mode: ChapterMode, auth: ChapterAuth | undefined): ResolvedAuth;
|
|
@@ -1485,7 +1579,7 @@ declare function roleFromClaim(payload: Record<string, unknown>, auth: ResolvedA
|
|
|
1485
1579
|
/** Does a role meet the admin bar (the highest ladder rung)? */
|
|
1486
1580
|
declare function isAdminRole(role: string, auth: ResolvedAuth): boolean;
|
|
1487
1581
|
/** Inputs to the role-change guard — resolved by the caller (route) from the
|
|
1488
|
-
* identity provider + the
|
|
1582
|
+
* identity provider + the configured Studio-managed super-admin authority. */
|
|
1489
1583
|
interface RoleChangeContext {
|
|
1490
1584
|
actorId: string;
|
|
1491
1585
|
actorIsSuper: boolean;
|
|
@@ -1509,8 +1603,8 @@ type GuardResult = {
|
|
|
1509
1603
|
* none re-derives it. Denies: an out-of-ladder role; changing your own role;
|
|
1510
1604
|
* touching a super-admin unless you are one; and (when a `superAdmins` tier
|
|
1511
1605
|
* exists) creating or altering an admin unless you are a super-admin. Note the
|
|
1512
|
-
* super-admin tier itself is never writable here — it
|
|
1513
|
-
*
|
|
1606
|
+
* super-admin tier itself is never writable here — it is set only in odla
|
|
1607
|
+
* Studio, either as a protected `$users.role` or in the legacy allowlist.
|
|
1514
1608
|
*/
|
|
1515
1609
|
declare function canChangeRole(ctx: RoleChangeContext): GuardResult;
|
|
1516
1610
|
/** Structural view of odla-db's tenant-vault read, so chapter takes no runtime
|
|
@@ -3270,4 +3364,4 @@ declare const SILVER_SALT_P0_FIXTURE: {
|
|
|
3270
3364
|
};
|
|
3271
3365
|
};
|
|
3272
3366
|
|
|
3273
|
-
export { 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_FLOW_FIELDS_SCHEMA_VERSION, CHAPTER_PROMOTION_ADAPTER, type Chapter, type ChapterApplication, type ChapterAuth, type ChapterBrand, type ChapterBuilderLibrary, type ChapterConfig, type ChapterCopy, type ChapterCopyInput, type ChapterDb, 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 ClerkUserInput, type ClerkUserRecord, type CommercialIdentity, type CommercialObjectKind, type CompiledChapterBrandTokens, DEFAULT_CHAPTER_COPY, DEFAULT_SHARE_FIELDS, type DashboardMetricData, type DashboardMetricSeries, type DbOp, type DbRules, type DbSchema, type DeliveryDecision, type EffectiveMemberContent, type EffectiveMemberContentPage, type EmailGroup, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, GIFT_OFFER_CATALOG_VERSION, type GiftOffer, type GiftOfferCatalog, type GiftOfferTarget, type GiftOfferValidation, type GuardResult, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, JOURNEY_ENDINGS, JOURNEY_STAGES, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type JourneyEnding, type JourneyStage, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, MAX_GIFT_OFFERS, 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_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 MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, type NetworkCommercialException, type NetworkCommercialFact, type NetworkCommercialProjectedRow, type NetworkCommercialProjection, type NetworkEditableField, type NetworkRecord, type NetworkRecordEdit, type NetworkRecordMutation, type NetworkRecordMutationResult, type NetworkRecordNote, type NetworkRecordPage, type NetworkRollup, type NetworkRollupTarget, type NetworkSharedNote, type NetworkSnapshot, type NetworkStageTransition, type NetworkTargetTransportStatus, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type ProjectionDeps, type PublicGiftOffer, REQUIRED_NOTICE_KINDS, type ReconcileDecision, 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 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, applicantProfile, applicationBookingUpdate, applicationFlowFields, applicationSummary, applyMembershipTierMarkdown, backfillCrm, bookingDecision, brandTokens, bucketSeries, buildBuilderLibraryManifest, buildGroupSeed, buildTierSeeds, builderLibraryDigest, canApprove, canBook, canChangeRole, canTransition, canViewBuilderLibraryResource, canceledPatch, canonicalBuilderLibrary, canonicalMemberContent, canonicalSignupControl, chapterBrandFromTokens, chapterDb, chapterFlowFieldContract, clampArray, classifyMemberStripeEvent, classifyMemberSystemWrite, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkSetRole, clerkUserRequest, composeMemberContent, createAdmissionGrantEnvelope, createBuilderLibraryEnvelope, createChapterIntegration, createClerkInvitation, createClerkUser, createMemberContentEnvelope, createSignupControlEnvelope, dashboardMetricData, defaultCrm, defineChapter, emailGroupFrom, endForSlot, exportChapterPromotion, findAdmissionGrant, findApplicationRef, findGiftOffer, findTier, firstPaymentPatch, formatChapterCopy, formationFields, formationFlowFields, getVaultSecret, giftOfferActive, hasDisclaimerAck, hydrateSignupControlTheme, injectSignupControlThemeHead, introIdempotencyKey, isAdminRole, isAlreadySent, isReconcilable, isSlotAvailable, isValidEmail, joinConfig, joinConfigTiers, leaderCrmConfig, listStripeObjects, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, memberSystemAvailability, memberSystemRollbackPlan, membershipPageDocument, membershipTierPresentationFromMarkdown, networkCommercialSourceKey, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeNetworkCommercialStripeEvent, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, paymentsReady, personInputFromApp, planDelivery, planMemberSystemEventReplay, planMemberSystemMigration, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectMemberSelf, projectNetworkCommercialEvents, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, reconcileMeetings, reconcileStripeSnapshot, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolveNetworkCommercialReadModel, resolveNetworkPersonRegistry, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateGiftOfferCatalog, validateMemberContentDocument, validateMemberSystemAuthority, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, webhookMutationId };
|
|
3367
|
+
export { 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_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 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 ClerkUserInput, type ClerkUserRecord, type CommercialIdentity, type CommercialObjectKind, type CommercialParityException, type CommercialParityExceptionKind, type CommercialParityPartition, type CommercialParityResult, type CompiledChapterBrandTokens, DEFAULT_CHAPTER_COPY, DEFAULT_SHARE_FIELDS, type DashboardMetricData, type DashboardMetricSeries, type DbOp, type DbRules, type DbSchema, type DeliveryDecision, type EffectiveMemberContent, type EffectiveMemberContentPage, type EmailGroup, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, GIFT_OFFER_CATALOG_VERSION, type GiftOffer, type GiftOfferCatalog, type GiftOfferTarget, type GiftOfferValidation, type GuardResult, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, JOURNEY_ENDINGS, JOURNEY_STAGES, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type JourneyEnding, type JourneyStage, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, MAX_GIFT_OFFERS, 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_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 MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, type NetworkCommercialException, type NetworkCommercialFact, type NetworkCommercialProjectedRow, type NetworkCommercialProjection, type NetworkEditableField, type NetworkRecord, type NetworkRecordEdit, type NetworkRecordMutation, type NetworkRecordMutationResult, type NetworkRecordNote, type NetworkRecordPage, type NetworkRollup, type NetworkRollupTarget, type NetworkSharedNote, type NetworkSnapshot, type NetworkStageTransition, type NetworkTargetTransportStatus, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type ProjectionDeps, type PublicGiftOffer, REQUIRED_NOTICE_KINDS, type ReconcileDecision, 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 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, applicantProfile, applicationBookingUpdate, applicationFlowFields, applicationSummary, applyMembershipTierMarkdown, backfillCrm, bookingDecision, brandTokens, bucketSeries, buildBuilderLibraryManifest, buildChapterCommercialParitySnapshot, buildGroupSeed, buildTierSeeds, builderLibraryDigest, canApprove, canBook, canChangeRole, canTransition, canViewBuilderLibraryResource, canceledPatch, canonicalBuilderLibrary, canonicalMemberContent, canonicalSignupControl, chapterBrandFromTokens, chapterDb, chapterFlowFieldContract, clampArray, classifyMemberStripeEvent, classifyMemberSystemWrite, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkSetRole, clerkUserRequest, commercialParityDigest, composeMemberContent, createAdmissionGrantEnvelope, createBuilderLibraryEnvelope, createChapterIntegration, createClerkInvitation, createClerkUser, createMemberContentEnvelope, createSignupControlEnvelope, dashboardMetricData, defaultCrm, defineChapter, emailGroupFrom, endForSlot, exportChapterPromotion, findAdmissionGrant, findApplicationRef, findGiftOffer, findTier, firstPaymentPatch, formatChapterCopy, formationFields, formationFlowFields, getVaultSecret, giftOfferActive, hasDisclaimerAck, hydrateSignupControlTheme, injectSignupControlThemeHead, introIdempotencyKey, isAdminRole, isAlreadySent, isReconcilable, isSlotAvailable, isValidEmail, joinConfig, joinConfigTiers, leaderCrmConfig, listStripeObjects, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, memberSystemAvailability, memberSystemRollbackPlan, membershipPageDocument, membershipTierPresentationFromMarkdown, networkCommercialSourceKey, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeNetworkCommercialStripeEvent, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, paymentsReady, personInputFromApp, planDelivery, planMemberSystemEventReplay, planMemberSystemMigration, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectMemberSelf, projectNetworkCommercialEvents, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, reconcileCommercialParitySnapshot, reconcileMeetings, reconcileStripeSnapshot, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolveNetworkCommercialReadModel, resolveNetworkPersonRegistry, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateGiftOfferCatalog, validateMemberContentDocument, validateMemberSystemAuthority, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, webhookMutationId };
|
package/dist/index.d.ts
CHANGED
|
@@ -318,6 +318,10 @@ interface ChapterNetworkTarget {
|
|
|
318
318
|
/** Allow package-owned desired admission decisions for existing leader CRM
|
|
319
319
|
* people to be delivered to this target. Omitted means default deny. */
|
|
320
320
|
admissionGrants?: boolean;
|
|
321
|
+
/** Allow this leader to request a PII-free commercial parity snapshot from
|
|
322
|
+
* this follower. The follower must independently enable the same reader;
|
|
323
|
+
* omitted means no application or Stripe identifier digest crosses. */
|
|
324
|
+
commercialParity?: boolean;
|
|
321
325
|
}
|
|
322
326
|
/** One signed peer allowed to browse a privacy-bounded projection of this
|
|
323
327
|
* site's CRM. The follower owns this allowlist; a leader target declaration
|
|
@@ -342,6 +346,9 @@ interface ChapterNetworkReader {
|
|
|
342
346
|
/** Accept signed desired admission decisions from this reader. Independent
|
|
343
347
|
* of record browsing; an admission-only reader may omit `fields`. */
|
|
344
348
|
admissionGrants?: boolean;
|
|
349
|
+
/** Disclose a bounded, PII-free commercial parity snapshot to this signed
|
|
350
|
+
* reader. Identifiers leave only as edge-keyed, domain-separated HMACs. */
|
|
351
|
+
commercialParity?: boolean;
|
|
345
352
|
}
|
|
346
353
|
/** Leader/follower network configuration. A follower needs no code config to
|
|
347
354
|
* receive pushed records. It must explicitly declare `readers` before any peer
|
|
@@ -387,6 +394,7 @@ interface ResolvedNetworkTarget {
|
|
|
387
394
|
editableFields: Record<string, readonly string[]>;
|
|
388
395
|
stageTransitions: readonly string[];
|
|
389
396
|
admissionGrants?: boolean;
|
|
397
|
+
commercialParity?: boolean;
|
|
390
398
|
}
|
|
391
399
|
/** A validated follower-owned record projection for one signed reader. */
|
|
392
400
|
interface ResolvedNetworkReader {
|
|
@@ -396,6 +404,7 @@ interface ResolvedNetworkReader {
|
|
|
396
404
|
editableFields: Record<string, readonly string[]>;
|
|
397
405
|
stageTransitions: readonly string[];
|
|
398
406
|
admissionGrants?: boolean;
|
|
407
|
+
commercialParity?: boolean;
|
|
399
408
|
}
|
|
400
409
|
/** Fully-resolved leader network configuration. */
|
|
401
410
|
interface ResolvedNetwork {
|
|
@@ -595,7 +604,7 @@ interface ChapterScheduling {
|
|
|
595
604
|
*
|
|
596
605
|
* - `"claim"` reads a role ladder from a JWT claim (the member-site model:
|
|
597
606
|
* `provisional → member → admin`). Admin is the last (highest) rung; the
|
|
598
|
-
*
|
|
607
|
+
* Studio-managed super-admin tier sits above it.
|
|
599
608
|
* - `"table"` gates on the deny-all `admins` allowlist (the hub model):
|
|
600
609
|
* a binary "email is an admin or isn't", set only in odla Studio.
|
|
601
610
|
*
|
|
@@ -607,10 +616,13 @@ interface ChapterAuth {
|
|
|
607
616
|
/** Role ladder low→high, for `source: "claim"`. The last entry is admin.
|
|
608
617
|
* Default `["provisional", "member", "admin"]`. */
|
|
609
618
|
ladder?: readonly string[];
|
|
610
|
-
/**
|
|
611
|
-
* create/modify admins
|
|
612
|
-
* odla Studio. Default: `true` for `"claim"`, `false` for `"table"`. */
|
|
619
|
+
/** Enable the Studio-managed super-admin tier — the only tier that may
|
|
620
|
+
* create/modify admins. Default: `true` for `"claim"`, `false` for `"table"`. */
|
|
613
621
|
superAdmins?: boolean;
|
|
622
|
+
/** Authority behind the super-admin tier. `"table"` preserves the legacy
|
|
623
|
+
* app allowlist; `"odla"` reads protected `$users.role`. Default `"table"`
|
|
624
|
+
* for backward compatibility. */
|
|
625
|
+
superAdminSource?: "table" | "odla";
|
|
614
626
|
}
|
|
615
627
|
/** The fully-resolved auth policy (defaults applied) carried on the {@link Chapter}. */
|
|
616
628
|
interface ResolvedAuth {
|
|
@@ -620,6 +632,7 @@ interface ResolvedAuth {
|
|
|
620
632
|
/** The highest ladder rung (last entry) — the "admin" gate. */
|
|
621
633
|
adminRole: string;
|
|
622
634
|
superAdmins: boolean;
|
|
635
|
+
superAdminSource: "none" | "table" | "odla";
|
|
623
636
|
}
|
|
624
637
|
/** The application status pipeline. Which statuses exist, and the subsets a site
|
|
625
638
|
* allows a call to be booked from / an application approved from. Defaults to
|
|
@@ -978,6 +991,84 @@ declare function normalizeNetworkCommercialStripeEvent(input: unknown, digest: s
|
|
|
978
991
|
/** Deterministically rebuild the network commercial projection from its event log. */
|
|
979
992
|
declare function projectNetworkCommercialEvents(input: readonly NetworkCommercialFact[], sources: readonly NetworkCommercialSource[]): NetworkCommercialProjection;
|
|
980
993
|
|
|
994
|
+
type Row = Record<string, unknown>;
|
|
995
|
+
/** Exact chapter/runtime partition that binds every parity digest. */
|
|
996
|
+
interface CommercialParityPartition {
|
|
997
|
+
appId: string;
|
|
998
|
+
chapterId: string;
|
|
999
|
+
environment: string;
|
|
1000
|
+
dataEnvironment: string;
|
|
1001
|
+
runtime: string;
|
|
1002
|
+
}
|
|
1003
|
+
/** PII-free chapter membership identity and lifecycle disclosure. */
|
|
1004
|
+
interface ChapterCommercialParityRecord {
|
|
1005
|
+
applicationDigest: string;
|
|
1006
|
+
customerDigest: string | null;
|
|
1007
|
+
subscriptionDigest: string | null;
|
|
1008
|
+
status: string | null;
|
|
1009
|
+
canceled: boolean;
|
|
1010
|
+
}
|
|
1011
|
+
/** Bounded, signed-response payload produced by an opted-in chapter. */
|
|
1012
|
+
interface ChapterCommercialParitySnapshot {
|
|
1013
|
+
version: 1;
|
|
1014
|
+
site: {
|
|
1015
|
+
id: string;
|
|
1016
|
+
};
|
|
1017
|
+
partition: CommercialParityPartition;
|
|
1018
|
+
generatedAt: number;
|
|
1019
|
+
complete: boolean;
|
|
1020
|
+
truncated: boolean;
|
|
1021
|
+
counts: {
|
|
1022
|
+
scanned: number;
|
|
1023
|
+
eligible: number;
|
|
1024
|
+
returned: number;
|
|
1025
|
+
};
|
|
1026
|
+
records: ChapterCommercialParityRecord[];
|
|
1027
|
+
}
|
|
1028
|
+
/** Reconciliation exception categories that never expose raw identifiers. */
|
|
1029
|
+
type CommercialParityExceptionKind = "chapter_only" | "shadow_only" | "cancellation_mismatch" | "chapter_truncated" | "count_mismatch";
|
|
1030
|
+
/** One privacy-preserving mismatch between a chapter and its Stripe shadow. */
|
|
1031
|
+
interface CommercialParityException {
|
|
1032
|
+
kind: CommercialParityExceptionKind;
|
|
1033
|
+
applicationDigest?: string;
|
|
1034
|
+
detail: Record<string, string | number | boolean | null>;
|
|
1035
|
+
}
|
|
1036
|
+
/** Read-only result of comparing one chapter snapshot with one exact shadow partition. */
|
|
1037
|
+
interface CommercialParityResult {
|
|
1038
|
+
ok: boolean;
|
|
1039
|
+
complete: boolean;
|
|
1040
|
+
counts: {
|
|
1041
|
+
chapter: number;
|
|
1042
|
+
shadow: number;
|
|
1043
|
+
matched: number;
|
|
1044
|
+
};
|
|
1045
|
+
records: Array<ChapterCommercialParityRecord & {
|
|
1046
|
+
stripeStatus: string | null;
|
|
1047
|
+
stripeCanceled: boolean;
|
|
1048
|
+
}>;
|
|
1049
|
+
exceptions: CommercialParityException[];
|
|
1050
|
+
}
|
|
1051
|
+
/** Edge-keyed, domain-separated digest. Raw identifiers never enter a response. */
|
|
1052
|
+
declare function commercialParityDigest(secret: string, partition: CommercialParityPartition, kind: "application" | "customer" | "subscription", value: string): Promise<string>;
|
|
1053
|
+
/** Build the bounded disclosure from already-bounded local application rows. */
|
|
1054
|
+
declare function buildChapterCommercialParitySnapshot(input: {
|
|
1055
|
+
rows: readonly Row[];
|
|
1056
|
+
secret: string;
|
|
1057
|
+
partition: CommercialParityPartition;
|
|
1058
|
+
siteId: string;
|
|
1059
|
+
scanned: number;
|
|
1060
|
+
scanTruncated: boolean;
|
|
1061
|
+
maxRecords?: number;
|
|
1062
|
+
now?: number;
|
|
1063
|
+
}): Promise<ChapterCommercialParitySnapshot>;
|
|
1064
|
+
/** Compare one follower disclosure to the matching Stripe shadow partition. */
|
|
1065
|
+
declare function reconcileCommercialParitySnapshot(input: {
|
|
1066
|
+
projection: NetworkCommercialProjection;
|
|
1067
|
+
source: NetworkCommercialSource;
|
|
1068
|
+
snapshot: ChapterCommercialParitySnapshot;
|
|
1069
|
+
secret: string;
|
|
1070
|
+
}): Promise<CommercialParityResult>;
|
|
1071
|
+
|
|
981
1072
|
/** Options for {@link leaderCrmConfig}. */
|
|
982
1073
|
interface LeaderCrmOptions {
|
|
983
1074
|
/** Existing host CRM config to preserve. Defaults to Chapter's people +
|
|
@@ -1112,8 +1203,9 @@ declare function createChapterIntegration(chapter: Chapter, options?: ChapterInt
|
|
|
1112
1203
|
*
|
|
1113
1204
|
* Operational tables (`applications`/`groups`/`meetings`/`emailLog`) are added in
|
|
1114
1205
|
* `chapter` mode only. The auth tables follow {@link ResolvedAuth}: `source:
|
|
1115
|
-
* "table"` adds the `admins` allowlist (hub/BNF); `
|
|
1116
|
-
* read-only super-admin tier (
|
|
1206
|
+
* "table"` adds the `admins` allowlist (hub/BNF); `superAdminSource: "table"`
|
|
1207
|
+
* adds the legacy read-only super-admin tier (the backward-compatible default).
|
|
1208
|
+
* `superAdminSource: "odla"` uses reserved `$users` and adds no app namespace. A `"claim"`
|
|
1117
1209
|
* chapter therefore emits the reference namespace set — `applications`,
|
|
1118
1210
|
* `groups`, `meetings`, `emailLog`, `stripeEventReceipts`, `superAdmins` — with
|
|
1119
1211
|
* no `admins` table. */
|
|
@@ -1476,6 +1568,8 @@ declare function buildGroupSeed(config: ChapterConfig): Record<string, unknown>;
|
|
|
1476
1568
|
* Apply defaults + validate the auth config into a {@link ResolvedAuth}. Defaults
|
|
1477
1569
|
* by mode: `chapter` → the `provisional/member/admin` claim ladder with the
|
|
1478
1570
|
* `superAdmins` tier; `hub` → the `admins` allowlist table with no super tier.
|
|
1571
|
+
* Existing sites retain the legacy `superAdmins` table unless they explicitly
|
|
1572
|
+
* select protected odla user roles.
|
|
1479
1573
|
* Throws at import on a bad policy.
|
|
1480
1574
|
*/
|
|
1481
1575
|
declare function resolveAuth(mode: ChapterMode, auth: ChapterAuth | undefined): ResolvedAuth;
|
|
@@ -1485,7 +1579,7 @@ declare function roleFromClaim(payload: Record<string, unknown>, auth: ResolvedA
|
|
|
1485
1579
|
/** Does a role meet the admin bar (the highest ladder rung)? */
|
|
1486
1580
|
declare function isAdminRole(role: string, auth: ResolvedAuth): boolean;
|
|
1487
1581
|
/** Inputs to the role-change guard — resolved by the caller (route) from the
|
|
1488
|
-
* identity provider + the
|
|
1582
|
+
* identity provider + the configured Studio-managed super-admin authority. */
|
|
1489
1583
|
interface RoleChangeContext {
|
|
1490
1584
|
actorId: string;
|
|
1491
1585
|
actorIsSuper: boolean;
|
|
@@ -1509,8 +1603,8 @@ type GuardResult = {
|
|
|
1509
1603
|
* none re-derives it. Denies: an out-of-ladder role; changing your own role;
|
|
1510
1604
|
* touching a super-admin unless you are one; and (when a `superAdmins` tier
|
|
1511
1605
|
* exists) creating or altering an admin unless you are a super-admin. Note the
|
|
1512
|
-
* super-admin tier itself is never writable here — it
|
|
1513
|
-
*
|
|
1606
|
+
* super-admin tier itself is never writable here — it is set only in odla
|
|
1607
|
+
* Studio, either as a protected `$users.role` or in the legacy allowlist.
|
|
1514
1608
|
*/
|
|
1515
1609
|
declare function canChangeRole(ctx: RoleChangeContext): GuardResult;
|
|
1516
1610
|
/** Structural view of odla-db's tenant-vault read, so chapter takes no runtime
|
|
@@ -3270,4 +3364,4 @@ declare const SILVER_SALT_P0_FIXTURE: {
|
|
|
3270
3364
|
};
|
|
3271
3365
|
};
|
|
3272
3366
|
|
|
3273
|
-
export { 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_FLOW_FIELDS_SCHEMA_VERSION, CHAPTER_PROMOTION_ADAPTER, type Chapter, type ChapterApplication, type ChapterAuth, type ChapterBrand, type ChapterBuilderLibrary, type ChapterConfig, type ChapterCopy, type ChapterCopyInput, type ChapterDb, 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 ClerkUserInput, type ClerkUserRecord, type CommercialIdentity, type CommercialObjectKind, type CompiledChapterBrandTokens, DEFAULT_CHAPTER_COPY, DEFAULT_SHARE_FIELDS, type DashboardMetricData, type DashboardMetricSeries, type DbOp, type DbRules, type DbSchema, type DeliveryDecision, type EffectiveMemberContent, type EffectiveMemberContentPage, type EmailGroup, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, GIFT_OFFER_CATALOG_VERSION, type GiftOffer, type GiftOfferCatalog, type GiftOfferTarget, type GiftOfferValidation, type GuardResult, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, JOURNEY_ENDINGS, JOURNEY_STAGES, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type JourneyEnding, type JourneyStage, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, MAX_GIFT_OFFERS, 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_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 MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, type NetworkCommercialException, type NetworkCommercialFact, type NetworkCommercialProjectedRow, type NetworkCommercialProjection, type NetworkEditableField, type NetworkRecord, type NetworkRecordEdit, type NetworkRecordMutation, type NetworkRecordMutationResult, type NetworkRecordNote, type NetworkRecordPage, type NetworkRollup, type NetworkRollupTarget, type NetworkSharedNote, type NetworkSnapshot, type NetworkStageTransition, type NetworkTargetTransportStatus, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type ProjectionDeps, type PublicGiftOffer, REQUIRED_NOTICE_KINDS, type ReconcileDecision, 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 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, applicantProfile, applicationBookingUpdate, applicationFlowFields, applicationSummary, applyMembershipTierMarkdown, backfillCrm, bookingDecision, brandTokens, bucketSeries, buildBuilderLibraryManifest, buildGroupSeed, buildTierSeeds, builderLibraryDigest, canApprove, canBook, canChangeRole, canTransition, canViewBuilderLibraryResource, canceledPatch, canonicalBuilderLibrary, canonicalMemberContent, canonicalSignupControl, chapterBrandFromTokens, chapterDb, chapterFlowFieldContract, clampArray, classifyMemberStripeEvent, classifyMemberSystemWrite, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkSetRole, clerkUserRequest, composeMemberContent, createAdmissionGrantEnvelope, createBuilderLibraryEnvelope, createChapterIntegration, createClerkInvitation, createClerkUser, createMemberContentEnvelope, createSignupControlEnvelope, dashboardMetricData, defaultCrm, defineChapter, emailGroupFrom, endForSlot, exportChapterPromotion, findAdmissionGrant, findApplicationRef, findGiftOffer, findTier, firstPaymentPatch, formatChapterCopy, formationFields, formationFlowFields, getVaultSecret, giftOfferActive, hasDisclaimerAck, hydrateSignupControlTheme, injectSignupControlThemeHead, introIdempotencyKey, isAdminRole, isAlreadySent, isReconcilable, isSlotAvailable, isValidEmail, joinConfig, joinConfigTiers, leaderCrmConfig, listStripeObjects, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, memberSystemAvailability, memberSystemRollbackPlan, membershipPageDocument, membershipTierPresentationFromMarkdown, networkCommercialSourceKey, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeNetworkCommercialStripeEvent, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, paymentsReady, personInputFromApp, planDelivery, planMemberSystemEventReplay, planMemberSystemMigration, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectMemberSelf, projectNetworkCommercialEvents, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, reconcileMeetings, reconcileStripeSnapshot, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolveNetworkCommercialReadModel, resolveNetworkPersonRegistry, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateGiftOfferCatalog, validateMemberContentDocument, validateMemberSystemAuthority, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, webhookMutationId };
|
|
3367
|
+
export { 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_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 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 ClerkUserInput, type ClerkUserRecord, type CommercialIdentity, type CommercialObjectKind, type CommercialParityException, type CommercialParityExceptionKind, type CommercialParityPartition, type CommercialParityResult, type CompiledChapterBrandTokens, DEFAULT_CHAPTER_COPY, DEFAULT_SHARE_FIELDS, type DashboardMetricData, type DashboardMetricSeries, type DbOp, type DbRules, type DbSchema, type DeliveryDecision, type EffectiveMemberContent, type EffectiveMemberContentPage, type EmailGroup, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, GIFT_OFFER_CATALOG_VERSION, type GiftOffer, type GiftOfferCatalog, type GiftOfferTarget, type GiftOfferValidation, type GuardResult, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, JOURNEY_ENDINGS, JOURNEY_STAGES, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type JourneyEnding, type JourneyStage, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, MAX_GIFT_OFFERS, 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_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 MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, type NetworkCommercialException, type NetworkCommercialFact, type NetworkCommercialProjectedRow, type NetworkCommercialProjection, type NetworkEditableField, type NetworkRecord, type NetworkRecordEdit, type NetworkRecordMutation, type NetworkRecordMutationResult, type NetworkRecordNote, type NetworkRecordPage, type NetworkRollup, type NetworkRollupTarget, type NetworkSharedNote, type NetworkSnapshot, type NetworkStageTransition, type NetworkTargetTransportStatus, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type ProjectionDeps, type PublicGiftOffer, REQUIRED_NOTICE_KINDS, type ReconcileDecision, 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 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, applicantProfile, applicationBookingUpdate, applicationFlowFields, applicationSummary, applyMembershipTierMarkdown, backfillCrm, bookingDecision, brandTokens, bucketSeries, buildBuilderLibraryManifest, buildChapterCommercialParitySnapshot, buildGroupSeed, buildTierSeeds, builderLibraryDigest, canApprove, canBook, canChangeRole, canTransition, canViewBuilderLibraryResource, canceledPatch, canonicalBuilderLibrary, canonicalMemberContent, canonicalSignupControl, chapterBrandFromTokens, chapterDb, chapterFlowFieldContract, clampArray, classifyMemberStripeEvent, classifyMemberSystemWrite, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkSetRole, clerkUserRequest, commercialParityDigest, composeMemberContent, createAdmissionGrantEnvelope, createBuilderLibraryEnvelope, createChapterIntegration, createClerkInvitation, createClerkUser, createMemberContentEnvelope, createSignupControlEnvelope, dashboardMetricData, defaultCrm, defineChapter, emailGroupFrom, endForSlot, exportChapterPromotion, findAdmissionGrant, findApplicationRef, findGiftOffer, findTier, firstPaymentPatch, formatChapterCopy, formationFields, formationFlowFields, getVaultSecret, giftOfferActive, hasDisclaimerAck, hydrateSignupControlTheme, injectSignupControlThemeHead, introIdempotencyKey, isAdminRole, isAlreadySent, isReconcilable, isSlotAvailable, isValidEmail, joinConfig, joinConfigTiers, leaderCrmConfig, listStripeObjects, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, memberSystemAvailability, memberSystemRollbackPlan, membershipPageDocument, membershipTierPresentationFromMarkdown, networkCommercialSourceKey, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeNetworkCommercialStripeEvent, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, paymentsReady, personInputFromApp, planDelivery, planMemberSystemEventReplay, planMemberSystemMigration, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectMemberSelf, projectNetworkCommercialEvents, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, reconcileCommercialParitySnapshot, reconcileMeetings, reconcileStripeSnapshot, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolveNetworkCommercialReadModel, resolveNetworkPersonRegistry, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateGiftOfferCatalog, validateMemberContentDocument, validateMemberSystemAuthority, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, webhookMutationId };
|