@odla-ai/chapter 0.42.1 → 0.42.3
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 +13 -1
- package/dist/{chunk-JXFYOUDL.js → chunk-4HS2JPE2.js} +11 -1
- package/dist/chunk-4HS2JPE2.js.map +1 -0
- package/dist/{chunk-MMDWXTJU.js → chunk-7MEVZEL2.js} +49 -3
- package/dist/chunk-7MEVZEL2.js.map +1 -0
- package/dist/{chunk-S7CND3R5.js → chunk-VWDEHUNI.js} +2 -2
- package/dist/{copy-context-BNUzbL5g.d.ts → copy-context-Bh1EZvCg.d.ts} +10 -2
- package/dist/index.cjs +98 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -4
- package/dist/index.d.ts +41 -4
- package/dist/index.js +98 -10
- package/dist/index.js.map +1 -1
- package/dist/ui/admin/index.d.ts +14 -3
- package/dist/ui/admin/index.js +4 -2
- package/dist/ui/index.d.ts +2 -2
- package/dist/ui/index.js +5 -3
- package/dist/ui/member/index.d.ts +2 -2
- package/dist/ui/member/index.js +2 -2
- package/dist/worker/index.cjs +551 -156
- package/dist/worker/index.cjs.map +1 -1
- package/dist/worker/index.d.cts +56 -3
- package/dist/worker/index.d.ts +56 -3
- package/dist/worker/index.js +527 -132
- package/dist/worker/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-JXFYOUDL.js.map +0 -1
- package/dist/chunk-MMDWXTJU.js.map +0 -1
- /package/dist/{chunk-S7CND3R5.js.map → chunk-VWDEHUNI.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -106,7 +106,7 @@ type TextFields$1<Key extends string> = {
|
|
|
106
106
|
[Field in Key]: string;
|
|
107
107
|
};
|
|
108
108
|
/** User-visible language for sharing, delivery state, and leader rollups. */
|
|
109
|
-
type AdminNetworkCopy = TextFields$1<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "recordTotals" | "noRecordTotals">;
|
|
109
|
+
type AdminNetworkCopy = TextFields$1<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "transportReachable" | "transportUnavailable" | "transportNotChecked" | "bindingTransport" | "urlTransport" | "activeConfiguration" | "noActiveConfiguration" | "publicSiteAvailable" | "publicSiteUnavailable" | "publicSiteNotChecked" | "recordTotals" | "noRecordTotals">;
|
|
110
110
|
|
|
111
111
|
/** Complete default language resolved beneath partial Chapter copy overrides. */
|
|
112
112
|
declare const DEFAULT_CHAPTER_COPY: ChapterCopy;
|
|
@@ -282,6 +282,9 @@ interface ChapterNetworkTarget {
|
|
|
282
282
|
/** Record types on which this leader permits remote lifecycle transitions.
|
|
283
283
|
* The follower must independently opt in and remains pipeline authority. */
|
|
284
284
|
stageTransitions?: readonly string[];
|
|
285
|
+
/** Allow package-owned desired admission decisions for existing leader CRM
|
|
286
|
+
* people to be delivered to this target. Omitted means default deny. */
|
|
287
|
+
admissionGrants?: boolean;
|
|
285
288
|
}
|
|
286
289
|
/** One signed peer allowed to browse a privacy-bounded projection of this
|
|
287
290
|
* site's CRM. The follower owns this allowlist; a leader target declaration
|
|
@@ -291,7 +294,7 @@ interface ChapterNetworkReader {
|
|
|
291
294
|
id: string;
|
|
292
295
|
/** Per-record-type field allowlist. Omitted types and fields never leave
|
|
293
296
|
* this site. Record id, name, stage, and timestamps are bounded metadata. */
|
|
294
|
-
fields
|
|
297
|
+
fields?: Record<string, readonly string[]>;
|
|
295
298
|
/** Record types on which this reader may append an explicitly shared note.
|
|
296
299
|
* Omitted by default: browse permission never silently grants write access.
|
|
297
300
|
* Shared notes land in the follower CRM activity feed. */
|
|
@@ -303,6 +306,9 @@ interface ChapterNetworkReader {
|
|
|
303
306
|
/** Local CRM record types on which this reader may request a lifecycle
|
|
304
307
|
* transition. Chapter still enforces the local pipeline and gates. */
|
|
305
308
|
stageTransitions?: readonly string[];
|
|
309
|
+
/** Accept signed desired admission decisions from this reader. Independent
|
|
310
|
+
* of record browsing; an admission-only reader may omit `fields`. */
|
|
311
|
+
admissionGrants?: boolean;
|
|
306
312
|
}
|
|
307
313
|
/** Leader/follower network configuration. A follower needs no code config to
|
|
308
314
|
* receive pushed records. It must explicitly declare `readers` before any peer
|
|
@@ -347,6 +353,7 @@ interface ResolvedNetworkTarget {
|
|
|
347
353
|
sharedNotes: readonly string[];
|
|
348
354
|
editableFields: Record<string, readonly string[]>;
|
|
349
355
|
stageTransitions: readonly string[];
|
|
356
|
+
admissionGrants?: boolean;
|
|
350
357
|
}
|
|
351
358
|
/** A validated follower-owned record projection for one signed reader. */
|
|
352
359
|
interface ResolvedNetworkReader {
|
|
@@ -355,6 +362,7 @@ interface ResolvedNetworkReader {
|
|
|
355
362
|
sharedNotes: readonly string[];
|
|
356
363
|
editableFields: Record<string, readonly string[]>;
|
|
357
364
|
stageTransitions: readonly string[];
|
|
365
|
+
admissionGrants?: boolean;
|
|
358
366
|
}
|
|
359
367
|
/** Fully-resolved leader network configuration. */
|
|
360
368
|
interface ResolvedNetwork {
|
|
@@ -956,7 +964,7 @@ declare function createChapterIntegration(chapter: Chapter, options?: ChapterInt
|
|
|
956
964
|
* read-only super-admin tier (default on for the `"claim"` ladder). A `"claim"`
|
|
957
965
|
* chapter therefore emits the reference namespace set — `applications`,
|
|
958
966
|
* `groups`, `meetings`, `emailLog`, `superAdmins` — with no `admins` table. */
|
|
959
|
-
declare function chapterDb(mode: ChapterMode, auth: ResolvedAuth, includeNetworkNotes?: boolean, application?: ResolvedApplication, includeSignupControl?: boolean, includeMemberContent?: boolean, includeBuilderLibrary?: boolean): {
|
|
967
|
+
declare function chapterDb(mode: ChapterMode, auth: ResolvedAuth, includeNetworkNotes?: boolean, application?: ResolvedApplication, includeSignupControl?: boolean, includeMemberContent?: boolean, includeBuilderLibrary?: boolean, includeLeaderAdmissions?: boolean): {
|
|
960
968
|
schema: DbSchema;
|
|
961
969
|
rules: DbRules;
|
|
962
970
|
};
|
|
@@ -1916,14 +1924,43 @@ interface NetworkSnapshot {
|
|
|
1916
1924
|
mode: string;
|
|
1917
1925
|
};
|
|
1918
1926
|
generatedAt: number;
|
|
1927
|
+
/** Active follower-owned receipt for the managed signup configuration.
|
|
1928
|
+
* Optional on the wire so a newer leader can still inspect an older follower. */
|
|
1929
|
+
configuration?: {
|
|
1930
|
+
activeRevision: number | null;
|
|
1931
|
+
digest?: string;
|
|
1932
|
+
};
|
|
1919
1933
|
types: TypeSummary[];
|
|
1920
1934
|
}
|
|
1935
|
+
/** Server-side route used for the signed follower snapshot. `reachable: null`
|
|
1936
|
+
* means the request could not be attempted (for example, a missing edge secret). */
|
|
1937
|
+
interface NetworkTargetTransportStatus {
|
|
1938
|
+
kind: "binding" | "url";
|
|
1939
|
+
binding?: string;
|
|
1940
|
+
reachable: boolean | null;
|
|
1941
|
+
error?: {
|
|
1942
|
+
code: "binding_unavailable" | "binding_request_failed" | "url_request_failed" | "edge_secret_missing";
|
|
1943
|
+
message: string;
|
|
1944
|
+
};
|
|
1945
|
+
}
|
|
1921
1946
|
/** One configured target's latest live result in a leader rollup. */
|
|
1922
1947
|
interface NetworkRollupTarget {
|
|
1923
1948
|
id: string;
|
|
1924
1949
|
name: string;
|
|
1925
1950
|
url: string;
|
|
1926
1951
|
available: boolean;
|
|
1952
|
+
/** Signed snapshot transport; independent of public-origin availability. */
|
|
1953
|
+
transport: NetworkTargetTransportStatus;
|
|
1954
|
+
/** Last active managed configuration reported by the authenticated follower. */
|
|
1955
|
+
configuration: {
|
|
1956
|
+
activeRevision: number | null;
|
|
1957
|
+
digest?: string;
|
|
1958
|
+
};
|
|
1959
|
+
/** `null` when a service binding was authoritative and the public origin was
|
|
1960
|
+
* deliberately not probed. */
|
|
1961
|
+
publicSite: {
|
|
1962
|
+
available: boolean | null;
|
|
1963
|
+
};
|
|
1927
1964
|
generatedAt?: number;
|
|
1928
1965
|
types?: TypeSummary[];
|
|
1929
1966
|
error?: string;
|
|
@@ -2889,4 +2926,4 @@ interface ChapterPromotionInput {
|
|
|
2889
2926
|
/** Export the provider-independent pieces of one exact active signup revision. */
|
|
2890
2927
|
declare function exportChapterPromotion(input: ChapterPromotionInput): Promise<PromotionAdapterResult>;
|
|
2891
2928
|
|
|
2892
|
-
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 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, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, MAX_GIFT_OFFERS, MEMBERSHIP_PAGE_RENDERER, MEMBER_CONTENT_CONTROL_PATH, MEMBER_CONTENT_PATH, MEMBER_CONTENT_SCHEMA_VERSION, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, 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 MemberPageAudience, type MemberPageNavigation, type MemberPageUpsell, type MemberPageUpsellOffer, type MemberPageUpsellOverride, type MemberSession, type MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, 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 NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type ProjectionDeps, type PublicGiftOffer, type ReconcileDecision, 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, 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, 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, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, membershipPageDocument, membershipTierPresentationFromMarkdown, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, paymentsReady, personInputFromApp, planDelivery, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, reconcileMeetings, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateGiftOfferCatalog, validateMemberContentDocument, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, webhookMutationId };
|
|
2929
|
+
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 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, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, MAX_GIFT_OFFERS, MEMBERSHIP_PAGE_RENDERER, MEMBER_CONTENT_CONTROL_PATH, MEMBER_CONTENT_PATH, MEMBER_CONTENT_SCHEMA_VERSION, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, 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 MemberPageAudience, type MemberPageNavigation, type MemberPageUpsell, type MemberPageUpsellOffer, type MemberPageUpsellOverride, type MemberSession, type MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, 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, type ReconcileDecision, 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, 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, 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, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, membershipPageDocument, membershipTierPresentationFromMarkdown, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, paymentsReady, personInputFromApp, planDelivery, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, reconcileMeetings, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateGiftOfferCatalog, validateMemberContentDocument, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, webhookMutationId };
|
package/dist/index.d.ts
CHANGED
|
@@ -106,7 +106,7 @@ type TextFields$1<Key extends string> = {
|
|
|
106
106
|
[Field in Key]: string;
|
|
107
107
|
};
|
|
108
108
|
/** User-visible language for sharing, delivery state, and leader rollups. */
|
|
109
|
-
type AdminNetworkCopy = TextFields$1<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "recordTotals" | "noRecordTotals">;
|
|
109
|
+
type AdminNetworkCopy = TextFields$1<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "transportReachable" | "transportUnavailable" | "transportNotChecked" | "bindingTransport" | "urlTransport" | "activeConfiguration" | "noActiveConfiguration" | "publicSiteAvailable" | "publicSiteUnavailable" | "publicSiteNotChecked" | "recordTotals" | "noRecordTotals">;
|
|
110
110
|
|
|
111
111
|
/** Complete default language resolved beneath partial Chapter copy overrides. */
|
|
112
112
|
declare const DEFAULT_CHAPTER_COPY: ChapterCopy;
|
|
@@ -282,6 +282,9 @@ interface ChapterNetworkTarget {
|
|
|
282
282
|
/** Record types on which this leader permits remote lifecycle transitions.
|
|
283
283
|
* The follower must independently opt in and remains pipeline authority. */
|
|
284
284
|
stageTransitions?: readonly string[];
|
|
285
|
+
/** Allow package-owned desired admission decisions for existing leader CRM
|
|
286
|
+
* people to be delivered to this target. Omitted means default deny. */
|
|
287
|
+
admissionGrants?: boolean;
|
|
285
288
|
}
|
|
286
289
|
/** One signed peer allowed to browse a privacy-bounded projection of this
|
|
287
290
|
* site's CRM. The follower owns this allowlist; a leader target declaration
|
|
@@ -291,7 +294,7 @@ interface ChapterNetworkReader {
|
|
|
291
294
|
id: string;
|
|
292
295
|
/** Per-record-type field allowlist. Omitted types and fields never leave
|
|
293
296
|
* this site. Record id, name, stage, and timestamps are bounded metadata. */
|
|
294
|
-
fields
|
|
297
|
+
fields?: Record<string, readonly string[]>;
|
|
295
298
|
/** Record types on which this reader may append an explicitly shared note.
|
|
296
299
|
* Omitted by default: browse permission never silently grants write access.
|
|
297
300
|
* Shared notes land in the follower CRM activity feed. */
|
|
@@ -303,6 +306,9 @@ interface ChapterNetworkReader {
|
|
|
303
306
|
/** Local CRM record types on which this reader may request a lifecycle
|
|
304
307
|
* transition. Chapter still enforces the local pipeline and gates. */
|
|
305
308
|
stageTransitions?: readonly string[];
|
|
309
|
+
/** Accept signed desired admission decisions from this reader. Independent
|
|
310
|
+
* of record browsing; an admission-only reader may omit `fields`. */
|
|
311
|
+
admissionGrants?: boolean;
|
|
306
312
|
}
|
|
307
313
|
/** Leader/follower network configuration. A follower needs no code config to
|
|
308
314
|
* receive pushed records. It must explicitly declare `readers` before any peer
|
|
@@ -347,6 +353,7 @@ interface ResolvedNetworkTarget {
|
|
|
347
353
|
sharedNotes: readonly string[];
|
|
348
354
|
editableFields: Record<string, readonly string[]>;
|
|
349
355
|
stageTransitions: readonly string[];
|
|
356
|
+
admissionGrants?: boolean;
|
|
350
357
|
}
|
|
351
358
|
/** A validated follower-owned record projection for one signed reader. */
|
|
352
359
|
interface ResolvedNetworkReader {
|
|
@@ -355,6 +362,7 @@ interface ResolvedNetworkReader {
|
|
|
355
362
|
sharedNotes: readonly string[];
|
|
356
363
|
editableFields: Record<string, readonly string[]>;
|
|
357
364
|
stageTransitions: readonly string[];
|
|
365
|
+
admissionGrants?: boolean;
|
|
358
366
|
}
|
|
359
367
|
/** Fully-resolved leader network configuration. */
|
|
360
368
|
interface ResolvedNetwork {
|
|
@@ -956,7 +964,7 @@ declare function createChapterIntegration(chapter: Chapter, options?: ChapterInt
|
|
|
956
964
|
* read-only super-admin tier (default on for the `"claim"` ladder). A `"claim"`
|
|
957
965
|
* chapter therefore emits the reference namespace set — `applications`,
|
|
958
966
|
* `groups`, `meetings`, `emailLog`, `superAdmins` — with no `admins` table. */
|
|
959
|
-
declare function chapterDb(mode: ChapterMode, auth: ResolvedAuth, includeNetworkNotes?: boolean, application?: ResolvedApplication, includeSignupControl?: boolean, includeMemberContent?: boolean, includeBuilderLibrary?: boolean): {
|
|
967
|
+
declare function chapterDb(mode: ChapterMode, auth: ResolvedAuth, includeNetworkNotes?: boolean, application?: ResolvedApplication, includeSignupControl?: boolean, includeMemberContent?: boolean, includeBuilderLibrary?: boolean, includeLeaderAdmissions?: boolean): {
|
|
960
968
|
schema: DbSchema;
|
|
961
969
|
rules: DbRules;
|
|
962
970
|
};
|
|
@@ -1916,14 +1924,43 @@ interface NetworkSnapshot {
|
|
|
1916
1924
|
mode: string;
|
|
1917
1925
|
};
|
|
1918
1926
|
generatedAt: number;
|
|
1927
|
+
/** Active follower-owned receipt for the managed signup configuration.
|
|
1928
|
+
* Optional on the wire so a newer leader can still inspect an older follower. */
|
|
1929
|
+
configuration?: {
|
|
1930
|
+
activeRevision: number | null;
|
|
1931
|
+
digest?: string;
|
|
1932
|
+
};
|
|
1919
1933
|
types: TypeSummary[];
|
|
1920
1934
|
}
|
|
1935
|
+
/** Server-side route used for the signed follower snapshot. `reachable: null`
|
|
1936
|
+
* means the request could not be attempted (for example, a missing edge secret). */
|
|
1937
|
+
interface NetworkTargetTransportStatus {
|
|
1938
|
+
kind: "binding" | "url";
|
|
1939
|
+
binding?: string;
|
|
1940
|
+
reachable: boolean | null;
|
|
1941
|
+
error?: {
|
|
1942
|
+
code: "binding_unavailable" | "binding_request_failed" | "url_request_failed" | "edge_secret_missing";
|
|
1943
|
+
message: string;
|
|
1944
|
+
};
|
|
1945
|
+
}
|
|
1921
1946
|
/** One configured target's latest live result in a leader rollup. */
|
|
1922
1947
|
interface NetworkRollupTarget {
|
|
1923
1948
|
id: string;
|
|
1924
1949
|
name: string;
|
|
1925
1950
|
url: string;
|
|
1926
1951
|
available: boolean;
|
|
1952
|
+
/** Signed snapshot transport; independent of public-origin availability. */
|
|
1953
|
+
transport: NetworkTargetTransportStatus;
|
|
1954
|
+
/** Last active managed configuration reported by the authenticated follower. */
|
|
1955
|
+
configuration: {
|
|
1956
|
+
activeRevision: number | null;
|
|
1957
|
+
digest?: string;
|
|
1958
|
+
};
|
|
1959
|
+
/** `null` when a service binding was authoritative and the public origin was
|
|
1960
|
+
* deliberately not probed. */
|
|
1961
|
+
publicSite: {
|
|
1962
|
+
available: boolean | null;
|
|
1963
|
+
};
|
|
1927
1964
|
generatedAt?: number;
|
|
1928
1965
|
types?: TypeSummary[];
|
|
1929
1966
|
error?: string;
|
|
@@ -2889,4 +2926,4 @@ interface ChapterPromotionInput {
|
|
|
2889
2926
|
/** Export the provider-independent pieces of one exact active signup revision. */
|
|
2890
2927
|
declare function exportChapterPromotion(input: ChapterPromotionInput): Promise<PromotionAdapterResult>;
|
|
2891
2928
|
|
|
2892
|
-
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 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, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, MAX_GIFT_OFFERS, MEMBERSHIP_PAGE_RENDERER, MEMBER_CONTENT_CONTROL_PATH, MEMBER_CONTENT_PATH, MEMBER_CONTENT_SCHEMA_VERSION, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, 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 MemberPageAudience, type MemberPageNavigation, type MemberPageUpsell, type MemberPageUpsellOffer, type MemberPageUpsellOverride, type MemberSession, type MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, 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 NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type ProjectionDeps, type PublicGiftOffer, type ReconcileDecision, 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, 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, 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, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, membershipPageDocument, membershipTierPresentationFromMarkdown, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, paymentsReady, personInputFromApp, planDelivery, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, reconcileMeetings, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateGiftOfferCatalog, validateMemberContentDocument, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, webhookMutationId };
|
|
2929
|
+
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 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, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, MAX_GIFT_OFFERS, MEMBERSHIP_PAGE_RENDERER, MEMBER_CONTENT_CONTROL_PATH, MEMBER_CONTENT_PATH, MEMBER_CONTENT_SCHEMA_VERSION, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, 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 MemberPageAudience, type MemberPageNavigation, type MemberPageUpsell, type MemberPageUpsellOffer, type MemberPageUpsellOverride, type MemberSession, type MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, 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, type ReconcileDecision, 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, 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, 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, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, membershipPageDocument, membershipTierPresentationFromMarkdown, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, paymentsReady, personInputFromApp, planDelivery, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, reconcileMeetings, refundedPatch, render, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateGiftOfferCatalog, validateMemberContentDocument, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, webhookMutationId };
|
package/dist/index.js
CHANGED
|
@@ -299,6 +299,50 @@ var admissionGrantRevisionsEntity = {
|
|
|
299
299
|
receivedAt: attr2("number", { indexed: true })
|
|
300
300
|
}
|
|
301
301
|
};
|
|
302
|
+
var leaderAdmissionAssignmentsEntity = {
|
|
303
|
+
attrs: {
|
|
304
|
+
id: id(),
|
|
305
|
+
targetId: attr2("string", { indexed: true }),
|
|
306
|
+
personId: attr2("string", { indexed: true }),
|
|
307
|
+
grantId: attr2("string", { indexed: true }),
|
|
308
|
+
decision: attr2("string", { indexed: true }),
|
|
309
|
+
note: attr2("string", { optional: true }),
|
|
310
|
+
expiresAt: attr2("number", { optional: true, indexed: true }),
|
|
311
|
+
active: attr2("boolean", { indexed: true }),
|
|
312
|
+
lastMutationId: attr2("string", { indexed: true }),
|
|
313
|
+
lastRequestDigest: attr2("string"),
|
|
314
|
+
createdAt: attr2("number", { indexed: true }),
|
|
315
|
+
createdBy: attr2("string", { indexed: true }),
|
|
316
|
+
updatedAt: attr2("number", { indexed: true }),
|
|
317
|
+
updatedBy: attr2("string", { indexed: true })
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
var leaderAdmissionDeliveriesEntity = {
|
|
321
|
+
attrs: {
|
|
322
|
+
id: id(),
|
|
323
|
+
targetId: attr2("string", { indexed: true }),
|
|
324
|
+
environment: attr2("string", { indexed: true }),
|
|
325
|
+
revision: attr2("number", { indexed: true }),
|
|
326
|
+
digest: attr2("string", { indexed: true }),
|
|
327
|
+
envelope: attr2("json"),
|
|
328
|
+
status: attr2("string", { indexed: true }),
|
|
329
|
+
attempts: attr2("number", { indexed: true }),
|
|
330
|
+
lastAttemptAt: attr2("number", { optional: true, indexed: true }),
|
|
331
|
+
lastError: attr2("string", { optional: true }),
|
|
332
|
+
acknowledgedAt: attr2("number", { optional: true, indexed: true }),
|
|
333
|
+
updatedAt: attr2("number", { indexed: true })
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
var leaderAdmissionMutationsEntity = {
|
|
337
|
+
attrs: {
|
|
338
|
+
id: id(),
|
|
339
|
+
targetId: attr2("string", { indexed: true }),
|
|
340
|
+
personId: attr2("string", { indexed: true }),
|
|
341
|
+
requestDigest: attr2("string", { indexed: true }),
|
|
342
|
+
revision: attr2("number", { indexed: true }),
|
|
343
|
+
createdAt: attr2("number", { indexed: true })
|
|
344
|
+
}
|
|
345
|
+
};
|
|
302
346
|
|
|
303
347
|
// src/schema-gifts.ts
|
|
304
348
|
var attr3 = (type, flags = {}) => ({
|
|
@@ -570,7 +614,7 @@ var emailLog = {
|
|
|
570
614
|
sentAt: attr4("number", { indexed: true })
|
|
571
615
|
}
|
|
572
616
|
};
|
|
573
|
-
function chapterDb(mode, auth, includeNetworkNotes = false, application = resolveApplication(void 0), includeSignupControl = false, includeMemberContent = false, includeBuilderLibrary = false) {
|
|
617
|
+
function chapterDb(mode, auth, includeNetworkNotes = false, application = resolveApplication(void 0), includeSignupControl = false, includeMemberContent = false, includeBuilderLibrary = false, includeLeaderAdmissions = false) {
|
|
574
618
|
const entities = {};
|
|
575
619
|
if (mode === "chapter") {
|
|
576
620
|
entities.applications = applicationsFor(application);
|
|
@@ -598,6 +642,11 @@ function chapterDb(mode, auth, includeNetworkNotes = false, application = resolv
|
|
|
598
642
|
entities.builderLibraryControls = builderLibraryControls;
|
|
599
643
|
entities.builderLibraryLocal = builderLibraryLocal;
|
|
600
644
|
}
|
|
645
|
+
if (includeLeaderAdmissions) {
|
|
646
|
+
entities.leaderAdmissionAssignments = leaderAdmissionAssignmentsEntity;
|
|
647
|
+
entities.leaderAdmissionDeliveries = leaderAdmissionDeliveriesEntity;
|
|
648
|
+
entities.leaderAdmissionMutations = leaderAdmissionMutationsEntity;
|
|
649
|
+
}
|
|
601
650
|
const schema = { entities, links: {} };
|
|
602
651
|
const rules = {};
|
|
603
652
|
for (const ns of Object.keys(entities)) {
|
|
@@ -1027,6 +1076,16 @@ var DEFAULT_ADMIN_COPY = {
|
|
|
1027
1076
|
followers: "Followers",
|
|
1028
1077
|
available: "available",
|
|
1029
1078
|
unavailable: "unavailable",
|
|
1079
|
+
transportReachable: "transport reachable",
|
|
1080
|
+
transportUnavailable: "transport unavailable",
|
|
1081
|
+
transportNotChecked: "transport not checked",
|
|
1082
|
+
bindingTransport: "service binding {binding}",
|
|
1083
|
+
urlTransport: "public URL transport",
|
|
1084
|
+
activeConfiguration: "active configuration r{revision}",
|
|
1085
|
+
noActiveConfiguration: "no active managed configuration",
|
|
1086
|
+
publicSiteAvailable: "public site reachable",
|
|
1087
|
+
publicSiteUnavailable: "public site unavailable",
|
|
1088
|
+
publicSiteNotChecked: "public site not probed",
|
|
1030
1089
|
recordTotals: "Portfolio records",
|
|
1031
1090
|
noRecordTotals: "No aggregate records are available yet."
|
|
1032
1091
|
},
|
|
@@ -1404,6 +1463,13 @@ function validateStageTransitions(opts) {
|
|
|
1404
1463
|
throw new Error(`${opts.path}: must contain unique, readable CRM types with pipelines`);
|
|
1405
1464
|
}
|
|
1406
1465
|
}
|
|
1466
|
+
function validateAdmissionCapability(path, enabled, crm) {
|
|
1467
|
+
if (!enabled) return;
|
|
1468
|
+
const person = crm.config.types.person;
|
|
1469
|
+
if (!person?.emailField || person.fields[person.emailField]?.type !== "email") {
|
|
1470
|
+
throw new Error(`${path}: requires a CRM person type with an emailField`);
|
|
1471
|
+
}
|
|
1472
|
+
}
|
|
1407
1473
|
function resolveNetwork(config, crm) {
|
|
1408
1474
|
const seen = /* @__PURE__ */ new Set();
|
|
1409
1475
|
const targets = [];
|
|
@@ -1477,6 +1543,11 @@ function resolveNetwork(config, crm) {
|
|
|
1477
1543
|
crm,
|
|
1478
1544
|
readable: readableFields
|
|
1479
1545
|
});
|
|
1546
|
+
validateAdmissionCapability(
|
|
1547
|
+
`defineChapter.network.targets.${target.id}.admissionGrants`,
|
|
1548
|
+
target.admissionGrants,
|
|
1549
|
+
crm
|
|
1550
|
+
);
|
|
1480
1551
|
targets.push({
|
|
1481
1552
|
id: target.id,
|
|
1482
1553
|
name: target.name?.trim() || target.id,
|
|
@@ -1486,7 +1557,8 @@ function resolveNetwork(config, crm) {
|
|
|
1486
1557
|
...fields ? { fields } : {},
|
|
1487
1558
|
sharedNotes,
|
|
1488
1559
|
editableFields,
|
|
1489
|
-
stageTransitions
|
|
1560
|
+
stageTransitions,
|
|
1561
|
+
...target.admissionGrants === true ? { admissionGrants: true } : {}
|
|
1490
1562
|
});
|
|
1491
1563
|
}
|
|
1492
1564
|
const readerIds = /* @__PURE__ */ new Set();
|
|
@@ -1499,9 +1571,12 @@ function resolveNetwork(config, crm) {
|
|
|
1499
1571
|
throw new Error(`defineChapter.network.readers: duplicate reader "${reader.id}"`);
|
|
1500
1572
|
}
|
|
1501
1573
|
readerIds.add(reader.id);
|
|
1502
|
-
const
|
|
1503
|
-
|
|
1504
|
-
|
|
1574
|
+
const readerFields = reader.fields ?? {};
|
|
1575
|
+
const entries = Object.entries(readerFields);
|
|
1576
|
+
if (entries.length === 0 && !reader.admissionGrants) {
|
|
1577
|
+
throw new Error(
|
|
1578
|
+
`defineChapter.network.readers.${reader.id}.fields: at least one CRM type is required unless this is an admission-only reader`
|
|
1579
|
+
);
|
|
1505
1580
|
}
|
|
1506
1581
|
for (const [type, names] of entries) {
|
|
1507
1582
|
if (!FIELD.test(type) || names.length === 0 || names.some((name) => !FIELD.test(name))) {
|
|
@@ -1531,23 +1606,35 @@ function resolveNetwork(config, crm) {
|
|
|
1531
1606
|
path: `defineChapter.network.readers.${reader.id}.sharedNotes`,
|
|
1532
1607
|
values: sharedNotes,
|
|
1533
1608
|
crm,
|
|
1534
|
-
fields:
|
|
1609
|
+
fields: readerFields
|
|
1535
1610
|
});
|
|
1536
1611
|
const editableFields = reader.editableFields ?? {};
|
|
1537
1612
|
validateEditableFields({
|
|
1538
1613
|
path: `defineChapter.network.readers.${reader.id}.editableFields`,
|
|
1539
1614
|
values: editableFields,
|
|
1540
1615
|
crm,
|
|
1541
|
-
readable:
|
|
1616
|
+
readable: readerFields
|
|
1542
1617
|
});
|
|
1543
1618
|
const stageTransitions = reader.stageTransitions ?? [];
|
|
1544
1619
|
validateStageTransitions({
|
|
1545
1620
|
path: `defineChapter.network.readers.${reader.id}.stageTransitions`,
|
|
1546
1621
|
values: stageTransitions,
|
|
1547
1622
|
crm,
|
|
1548
|
-
readable:
|
|
1623
|
+
readable: readerFields
|
|
1624
|
+
});
|
|
1625
|
+
validateAdmissionCapability(
|
|
1626
|
+
`defineChapter.network.readers.${reader.id}.admissionGrants`,
|
|
1627
|
+
reader.admissionGrants,
|
|
1628
|
+
crm
|
|
1629
|
+
);
|
|
1630
|
+
readers.push({
|
|
1631
|
+
id: reader.id,
|
|
1632
|
+
fields: readerFields,
|
|
1633
|
+
sharedNotes,
|
|
1634
|
+
editableFields,
|
|
1635
|
+
stageTransitions,
|
|
1636
|
+
...reader.admissionGrants === true ? { admissionGrants: true } : {}
|
|
1549
1637
|
});
|
|
1550
|
-
readers.push({ id: reader.id, fields: reader.fields, sharedNotes, editableFields, stageTransitions });
|
|
1551
1638
|
}
|
|
1552
1639
|
return { targets, readers };
|
|
1553
1640
|
}
|
|
@@ -1678,7 +1765,8 @@ function defineChapter(config) {
|
|
|
1678
1765
|
application,
|
|
1679
1766
|
Boolean(signupControl),
|
|
1680
1767
|
Boolean(memberContent),
|
|
1681
|
-
Boolean(builderLibrary)
|
|
1768
|
+
Boolean(builderLibrary),
|
|
1769
|
+
network.targets.some((target) => target.admissionGrants)
|
|
1682
1770
|
);
|
|
1683
1771
|
const services = config.services ?? ["db", "calendar", "o11y"];
|
|
1684
1772
|
const account = config.account ?? "none";
|