@odla-ai/chapter 0.25.8 → 0.26.1
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 +148 -15
- package/dist/{chunk-4FW35E3P.js → chunk-4QZEAWQL.js} +170 -45
- package/dist/chunk-4QZEAWQL.js.map +1 -0
- package/dist/{chunk-WGQO4WDJ.js → chunk-OIWCKF2G.js} +20 -3
- package/dist/chunk-OIWCKF2G.js.map +1 -0
- package/dist/{chunk-WHA3MUDQ.js → chunk-QBTFQUDL.js} +2 -2
- package/dist/{copy-context-DI21CYQ3.d.ts → copy-context-Vof2eTMt.d.ts} +78 -42
- package/dist/index.cjs +335 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +175 -58
- package/dist/index.d.ts +175 -58
- package/dist/index.js +329 -20
- package/dist/index.js.map +1 -1
- package/dist/ui/admin/index.d.ts +8 -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 +552 -216
- package/dist/worker/index.cjs.map +1 -1
- package/dist/worker/index.d.cts +78 -42
- package/dist/worker/index.d.ts +78 -42
- package/dist/worker/index.js +557 -216
- package/dist/worker/index.js.map +1 -1
- package/package.json +3 -3
- package/runbooks/adopt-existing.md +12 -1
- package/runbooks/greenfield.md +27 -6
- package/dist/chunk-4FW35E3P.js.map +0 -1
- package/dist/chunk-WGQO4WDJ.js.map +0 -1
- /package/dist/{chunk-WHA3MUDQ.js.map → chunk-QBTFQUDL.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import { CrmConfig, Crm, CrmRecord } from '@odla-ai/crm';
|
|
1
|
+
import { CrmConfig, Crm, FieldDef, TypeSummary, CrmRecord } from '@odla-ai/crm';
|
|
2
|
+
|
|
3
|
+
type TextFields$1<Key extends string> = {
|
|
4
|
+
[Field in Key]: string;
|
|
5
|
+
};
|
|
6
|
+
/** User-visible language for sharing, delivery state, and leader rollups. */
|
|
7
|
+
type AdminNetworkCopy = TextFields$1<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "recordTotals" | "noRecordTotals">;
|
|
2
8
|
|
|
3
9
|
/** Complete default language resolved beneath partial Chapter copy overrides. */
|
|
4
10
|
declare const DEFAULT_CHAPTER_COPY: ChapterCopy;
|
|
@@ -10,12 +16,7 @@ declare function formatChapterCopy(template: string, values: Readonly<Record<str
|
|
|
10
16
|
type TextFields<Key extends string> = {
|
|
11
17
|
[Field in Key]: string;
|
|
12
18
|
};
|
|
13
|
-
/**
|
|
14
|
-
* Complete user-visible language owned by Chapter's packaged surfaces.
|
|
15
|
-
*
|
|
16
|
-
* Copy is serializable text; use render slots when presentation needs markup and
|
|
17
|
-
* `formatChapterCopy()` for typed placeholders.
|
|
18
|
-
*/
|
|
19
|
+
/** Complete serializable language for Chapter surfaces; use render slots for markup and `formatChapterCopy()` for placeholders. */
|
|
19
20
|
interface ChapterCopy {
|
|
20
21
|
common: TextFields<"loading" | "saved" | "unknown">;
|
|
21
22
|
join: {
|
|
@@ -41,7 +42,7 @@ interface ChapterCopy {
|
|
|
41
42
|
admin: {
|
|
42
43
|
auth: TextFields<"checking" | "notAuthorized" | "accountNotAuthorized" | "thisAccount" | "signOut" | "loading" | "signInNotConfigured" | "missingPublishableKey" | "noWorkspaces" | "signInTagline">;
|
|
43
44
|
shell: TextFields<"adminRole" | "adminConsole" | "adminName" | "navigationLabel">;
|
|
44
|
-
workspaces: TextFields<"dashboard" | "overview" | "billing" | "people" | "settings" | "calendar" | "email" | "dashboardViewsLabel" | "settingsViewsLabel" | "collectionsLabel">;
|
|
45
|
+
workspaces: TextFields<"dashboard" | "overview" | "billing" | "people" | "portfolio" | "settings" | "calendar" | "email" | "chapters" | "formations" | "dealFlow" | "dashboardViewsLabel" | "settingsViewsLabel" | "collectionsLabel" | "portfolioViewsLabel">;
|
|
45
46
|
dashboard: TextFields<"loading" | "loadFailed" | "upcomingCalls" | "callsNeedAttention" | "noUpcomingCalls" | "drift" | "open" | "meet" | "applications" | "newMembers" | "newMembersUnavailable" | "revenueAdded" | "revenue" | "revenueUnavailable" | "pipeline" | "pipelineLabel" | "thisWeek" | "noChange" | "activeMemberships" | "annualRunRate" | "testMode">;
|
|
46
47
|
billing: TextFields<"loading" | "loadFailed" | "notConfigured" | "active" | "annualized" | "renewingSoon" | "pastDue" | "subscriptions" | "testMode" | "truncated" | "name" | "email" | "application" | "subscription" | "cancelling" | "amount" | "renews">;
|
|
47
48
|
availability: TextFields<"loading" | "loadFailed" | "saved" | "title" | "days" | "startHour" | "endHour" | "slotMinutes" | "minNoticeHours" | "windowDays" | "timezone" | "summaryTemplate" | "save"> & {
|
|
@@ -49,7 +50,7 @@ interface ChapterCopy {
|
|
|
49
50
|
};
|
|
50
51
|
email: TextFields<"loading" | "loadFailed" | "saved" | "sent" | "testFailed" | "delivery" | "notificationAddress" | "replyTo" | "debugInbox" | "debugInboxHint" | "sendTest" | "enabled" | "subject" | "body" | "save" | "sendLog" | "sentColumn" | "templateColumn" | "statusColumn" | "toColumn" | "failed" | "redirected" | "delivered">;
|
|
51
52
|
meetings: TextFields<"loading" | "loadFailed" | "cancelConfirm" | "newStartPrompt" | "parseFailed" | "agenda" | "empty" | "unknown" | "drift" | "meet" | "reschedule" | "cancel">;
|
|
52
|
-
network:
|
|
53
|
+
network: AdminNetworkCopy;
|
|
53
54
|
records: TextFields<"workflowMissing" | "comms" | "commsHistory" | "scheduling" | "billing" | "notes" | "access" | "sharing" | "lifecycle" | "role" | "superAdminHint" | "noAccount" | "approve" | "refund" | "approved" | "refunded" | "roleSet" | "messageSent" | "messageNotSent" | "loadingTemplates" | "template" | "chooseTemplate" | "sending" | "send" | "noMessages" | "message" | "newStartPrompt" | "parseFailed" | "cancelConfirm" | "callCancelled" | "callRescheduled" | "noApplication" | "loadingMeetings" | "noMeetings" | "joinMeeting" | "openCalendar" | "reschedule" | "cancel">;
|
|
54
55
|
};
|
|
55
56
|
}
|
|
@@ -59,6 +60,71 @@ type DeepPartial<T> = T extends readonly (infer Item)[] ? readonly Item[] : T ex
|
|
|
59
60
|
/** Recursively partial copy overrides accepted by `defineChapter({ copy })`. */
|
|
60
61
|
type ChapterCopyInput = DeepPartial<ChapterCopy>;
|
|
61
62
|
|
|
63
|
+
/** One follower site a leader can push CRM records to. The secret VALUE never
|
|
64
|
+
* lives in config: `secretName` names the leader tenant's vaulted copy of the
|
|
65
|
+
* follower's `network_share_secret`. */
|
|
66
|
+
interface ChapterNetworkTarget {
|
|
67
|
+
/** Stable lowercase slug used by the UI, audit tags, and default secret name. */
|
|
68
|
+
id: string;
|
|
69
|
+
/** Human-facing site name. Defaults to `id`. */
|
|
70
|
+
name?: string;
|
|
71
|
+
/** Absolute follower origin, e.g. `https://chapter.example.com`. */
|
|
72
|
+
url: string;
|
|
73
|
+
/** Optional Cloudflare service-binding name for Worker-to-Worker delivery.
|
|
74
|
+
* The URL still defines the signed request origin; the binding only supplies
|
|
75
|
+
* the transport when a `workers.dev` subrequest cannot enter another Worker. */
|
|
76
|
+
binding?: string;
|
|
77
|
+
/** Leader-vault key holding this follower's share secret. Defaults to
|
|
78
|
+
* `network_share_<id-with-underscores>`. */
|
|
79
|
+
secretName?: string;
|
|
80
|
+
/** Per-record-type field allowlist. If present, omitted types cannot be sent
|
|
81
|
+
* to this target. Without it, package-safe person/company defaults apply. */
|
|
82
|
+
fields?: Record<string, readonly string[]>;
|
|
83
|
+
}
|
|
84
|
+
/** Leader/follower network configuration. Followers need no code config to
|
|
85
|
+
* receive records; they only vault `network_share_secret`. */
|
|
86
|
+
interface ChapterNetwork {
|
|
87
|
+
targets?: readonly ChapterNetworkTarget[];
|
|
88
|
+
}
|
|
89
|
+
/** Public chapter-formation intake backed by one CRM record type. The host owns
|
|
90
|
+
* the branded form; Chapter owns the bounded, idempotent write contract. */
|
|
91
|
+
interface LeaderFormationConfig {
|
|
92
|
+
/** CRM type receiving submissions. Default `"chapter_application"`. */
|
|
93
|
+
type?: string;
|
|
94
|
+
/** Public fields that must be non-empty strings. */
|
|
95
|
+
required?: readonly string[];
|
|
96
|
+
/** Additional public fields accepted by the route. */
|
|
97
|
+
optional?: readonly string[];
|
|
98
|
+
maxLen?: Record<string, number>;
|
|
99
|
+
/** Per-string cap when `maxLen` has no field override. Default 4000. */
|
|
100
|
+
defaultMaxLen?: number;
|
|
101
|
+
/** Maximum JSON request size in characters. Default 32768. */
|
|
102
|
+
bodyCap?: number;
|
|
103
|
+
}
|
|
104
|
+
/** Fully resolved formation intake policy. */
|
|
105
|
+
interface ResolvedLeaderFormation {
|
|
106
|
+
enabled: boolean;
|
|
107
|
+
type: string;
|
|
108
|
+
required: readonly string[];
|
|
109
|
+
optional: readonly string[];
|
|
110
|
+
maxLen: Record<string, number>;
|
|
111
|
+
defaultMaxLen: number;
|
|
112
|
+
bodyCap: number;
|
|
113
|
+
}
|
|
114
|
+
/** A validated network target carried on the resolved chapter engine. */
|
|
115
|
+
interface ResolvedNetworkTarget {
|
|
116
|
+
id: string;
|
|
117
|
+
name: string;
|
|
118
|
+
url: string;
|
|
119
|
+
binding?: string;
|
|
120
|
+
secretName: string;
|
|
121
|
+
fields?: Record<string, readonly string[]>;
|
|
122
|
+
}
|
|
123
|
+
/** Fully-resolved leader network configuration. */
|
|
124
|
+
interface ResolvedNetwork {
|
|
125
|
+
targets: readonly ResolvedNetworkTarget[];
|
|
126
|
+
}
|
|
127
|
+
|
|
62
128
|
/** Which feature profile a site runs. `chapter` is the full public member site
|
|
63
129
|
* (join, Stripe membership, booking, member area, admin, CRM); `hub` is
|
|
64
130
|
* admin-only and CRM-focused (a directory/registry over the same CRM). */
|
|
@@ -186,40 +252,6 @@ interface ChapterBrand {
|
|
|
186
252
|
}>>;
|
|
187
253
|
logos?: string;
|
|
188
254
|
}
|
|
189
|
-
/** One follower site a leader can push CRM records to. The secret VALUE never
|
|
190
|
-
* lives in config: `secretName` names the leader tenant's vaulted copy of the
|
|
191
|
-
* follower's `network_share_secret`. */
|
|
192
|
-
interface ChapterNetworkTarget {
|
|
193
|
-
/** Stable lowercase slug used by the UI, audit tags, and default secret name. */
|
|
194
|
-
id: string;
|
|
195
|
-
/** Human-facing site name. Defaults to `id`. */
|
|
196
|
-
name?: string;
|
|
197
|
-
/** Absolute follower origin, e.g. `https://chapter.example.com`. */
|
|
198
|
-
url: string;
|
|
199
|
-
/** Leader-vault key holding this follower's share secret. Defaults to
|
|
200
|
-
* `network_share_<id-with-underscores>`. */
|
|
201
|
-
secretName?: string;
|
|
202
|
-
/** Per-record-type field allowlist. If present, omitted types cannot be sent
|
|
203
|
-
* to this target. Without it, package-safe person/company defaults apply. */
|
|
204
|
-
fields?: Record<string, readonly string[]>;
|
|
205
|
-
}
|
|
206
|
-
/** Leader/follower network configuration. Followers need no code config to
|
|
207
|
-
* receive records; they only vault `network_share_secret`. */
|
|
208
|
-
interface ChapterNetwork {
|
|
209
|
-
targets?: readonly ChapterNetworkTarget[];
|
|
210
|
-
}
|
|
211
|
-
/** A validated network target carried on the resolved chapter engine. */
|
|
212
|
-
interface ResolvedNetworkTarget {
|
|
213
|
-
id: string;
|
|
214
|
-
name: string;
|
|
215
|
-
url: string;
|
|
216
|
-
secretName: string;
|
|
217
|
-
fields?: Record<string, readonly string[]>;
|
|
218
|
-
}
|
|
219
|
-
/** Fully-resolved leader network configuration. */
|
|
220
|
-
interface ResolvedNetwork {
|
|
221
|
-
targets: readonly ResolvedNetworkTarget[];
|
|
222
|
-
}
|
|
223
255
|
/** Membership pricing for the group row (chapter mode). */
|
|
224
256
|
interface ChapterPrices {
|
|
225
257
|
standardCents: number;
|
|
@@ -376,6 +408,8 @@ interface ChapterConfig {
|
|
|
376
408
|
/** Leader → follower delivery targets. Secret values stay in the leader
|
|
377
409
|
* tenant vault; see {@link ChapterNetworkTarget}. */
|
|
378
410
|
network?: ChapterNetwork;
|
|
411
|
+
/** Enable a public, host-rendered formation application workflow. */
|
|
412
|
+
formation?: LeaderFormationConfig;
|
|
379
413
|
thesis?: unknown;
|
|
380
414
|
/** Required in `chapter` mode. */
|
|
381
415
|
prices?: ChapterPrices;
|
|
@@ -466,6 +500,8 @@ interface Chapter {
|
|
|
466
500
|
copy: ChapterCopy;
|
|
467
501
|
/** Validated follower targets for leader-driven record pushes. */
|
|
468
502
|
network: ResolvedNetwork;
|
|
503
|
+
/** Resolved public formation intake contract (disabled when omitted). */
|
|
504
|
+
formation: ResolvedLeaderFormation;
|
|
469
505
|
/** Resolved CRM engine (from `defineCrm`). */
|
|
470
506
|
crm: Crm;
|
|
471
507
|
/** Resolved auth policy (source, claim, ladder, super-admin tier). */
|
|
@@ -496,6 +532,30 @@ interface Chapter {
|
|
|
496
532
|
*/
|
|
497
533
|
declare function defineChapter(config: ChapterConfig): Chapter;
|
|
498
534
|
|
|
535
|
+
/** Options for {@link leaderCrmConfig}. */
|
|
536
|
+
interface LeaderCrmOptions {
|
|
537
|
+
/** Existing host CRM config to preserve. Defaults to Chapter's people +
|
|
538
|
+
* businesses graph for hub mode. */
|
|
539
|
+
base?: CrmConfig;
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Add generic chapter-formation, portfolio, and deal-flow records to an
|
|
543
|
+
* existing CRM. Collisions fail through `composeCrmConfigs`, so this preset
|
|
544
|
+
* never silently replaces a host's people pipeline or templates.
|
|
545
|
+
*/
|
|
546
|
+
declare function leaderCrmConfig(options?: LeaderCrmOptions): CrmConfig;
|
|
547
|
+
|
|
548
|
+
/** Resolve and validate the public chapter-formation intake contract. */
|
|
549
|
+
declare function resolveLeaderFormation(input: LeaderFormationConfig | undefined, crm: Crm): ResolvedLeaderFormation;
|
|
550
|
+
/** Public, presentational field metadata for a host-owned intake form. */
|
|
551
|
+
declare function formationFields(crm: Crm, formation: ResolvedLeaderFormation): Array<{
|
|
552
|
+
id: string;
|
|
553
|
+
label: string;
|
|
554
|
+
type: FieldDef["type"];
|
|
555
|
+
required: boolean;
|
|
556
|
+
options?: readonly string[];
|
|
557
|
+
}>;
|
|
558
|
+
|
|
499
559
|
/** Options for {@link createChapterIntegration}. */
|
|
500
560
|
interface ChapterIntegrationOptions {
|
|
501
561
|
/** CRM route mount point. Default "/api/crm". */
|
|
@@ -935,7 +995,7 @@ interface JoinConfigGroup {
|
|
|
935
995
|
declare function joinConfig(group: JoinConfigGroup, paymentsReady: boolean): Record<string, unknown>;
|
|
936
996
|
|
|
937
997
|
/** The contact data the hub shares for a prospect. `hubRecordId` is the stable
|
|
938
|
-
*
|
|
998
|
+
* idempotency key (the hub's crm_record id). */
|
|
939
999
|
interface SharedPerson {
|
|
940
1000
|
email: string;
|
|
941
1001
|
name?: string;
|
|
@@ -958,39 +1018,96 @@ interface SharedBusiness {
|
|
|
958
1018
|
}
|
|
959
1019
|
/** Versioned generic wire shape. `input` is validated against the follower's
|
|
960
1020
|
* own CRM type before any write, so a leader cannot smuggle undeclared fields. */
|
|
961
|
-
interface
|
|
1021
|
+
interface SharedRecordV1 {
|
|
962
1022
|
version: 1;
|
|
963
1023
|
type: string;
|
|
964
1024
|
hubRecordId: string;
|
|
965
1025
|
input: Record<string, unknown>;
|
|
966
1026
|
}
|
|
967
|
-
/**
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
1027
|
+
/** Current wire envelope. `source.siteId` prevents records from two leaders
|
|
1028
|
+
* with the same local id from colliding in a follower CRM. */
|
|
1029
|
+
interface SharedRecordV2 {
|
|
1030
|
+
version: 2;
|
|
1031
|
+
source: {
|
|
1032
|
+
siteId: string;
|
|
1033
|
+
recordId: string;
|
|
1034
|
+
};
|
|
1035
|
+
type: string;
|
|
1036
|
+
input: Record<string, unknown>;
|
|
1037
|
+
}
|
|
1038
|
+
/** Accepted generic share envelopes. Version 1 remains readable for migration. */
|
|
1039
|
+
type SharedRecord = SharedRecordV1 | SharedRecordV2;
|
|
1040
|
+
/** Privacy-bounded follower status returned to an authenticated leader. */
|
|
1041
|
+
interface NetworkSnapshot {
|
|
1042
|
+
version: 1;
|
|
1043
|
+
site: {
|
|
1044
|
+
id: string;
|
|
1045
|
+
name: string;
|
|
1046
|
+
mode: string;
|
|
1047
|
+
};
|
|
1048
|
+
generatedAt: number;
|
|
1049
|
+
types: TypeSummary[];
|
|
1050
|
+
}
|
|
1051
|
+
/** One configured target's latest live result in a leader rollup. */
|
|
1052
|
+
interface NetworkRollupTarget {
|
|
1053
|
+
id: string;
|
|
1054
|
+
name: string;
|
|
1055
|
+
url: string;
|
|
1056
|
+
available: boolean;
|
|
1057
|
+
generatedAt?: number;
|
|
1058
|
+
types?: TypeSummary[];
|
|
1059
|
+
error?: string;
|
|
1060
|
+
}
|
|
1061
|
+
/** Cross-target totals returned to the local leader admin. */
|
|
1062
|
+
interface NetworkRollup {
|
|
1063
|
+
configured: number;
|
|
1064
|
+
available: number;
|
|
1065
|
+
totalRecords: number;
|
|
1066
|
+
types: Array<{
|
|
1067
|
+
type: string;
|
|
1068
|
+
total: number;
|
|
1069
|
+
stages: Record<string, number>;
|
|
1070
|
+
}>;
|
|
1071
|
+
targets: NetworkRollupTarget[];
|
|
1072
|
+
}
|
|
1073
|
+
interface NormalizedSharedRecord {
|
|
1074
|
+
version: 1 | 2;
|
|
1075
|
+
sourceId: string;
|
|
1076
|
+
sourceRecordId: string;
|
|
1077
|
+
type: string;
|
|
1078
|
+
input: Record<string, unknown>;
|
|
1079
|
+
}
|
|
1080
|
+
/** Dependencies for applying a shared projection. */
|
|
974
1081
|
interface ProjectionDeps {
|
|
975
1082
|
crm: Crm;
|
|
976
1083
|
db: ChapterDb;
|
|
977
1084
|
now: () => number;
|
|
978
1085
|
newId: () => string;
|
|
979
1086
|
}
|
|
980
|
-
/**
|
|
981
|
-
declare
|
|
1087
|
+
/** Safe defaults when a target does not declare an explicit field allowlist. */
|
|
1088
|
+
declare const DEFAULT_SHARE_FIELDS: Readonly<Record<string, readonly string[]>>;
|
|
1089
|
+
|
|
1090
|
+
/** Map a shared prospect to a crm `person` input (only the fields the default
|
|
1091
|
+
* person type accepts). Name falls back to first+last, then the email. */
|
|
1092
|
+
declare function sharedPersonInput(person: SharedPerson): Record<string, unknown>;
|
|
1093
|
+
/** Backward-compatible display tag retained while structured origin rows are
|
|
1094
|
+
* the durable leader-id → local-record mapping. */
|
|
1095
|
+
declare function networkSourceTag(type: string, hubRecordId: string, sourceId?: string): string;
|
|
982
1096
|
/** Normalize the backwards-compatible person/business shapes into the versioned
|
|
983
1097
|
* generic record envelope the receiver writes. */
|
|
984
|
-
declare function normalizeSharedRecord(record: SharedPerson | SharedBusiness | SharedRecord):
|
|
1098
|
+
declare function normalizeSharedRecord(record: SharedPerson | SharedBusiness | SharedRecord, fallbackSourceId?: string): NormalizedSharedRecord;
|
|
985
1099
|
/** Build the allowlisted payload sent from one leader CRM record to a target.
|
|
986
1100
|
* A target with an explicit `fields` map only accepts the types it lists. */
|
|
987
|
-
declare function sharedRecordFromCrm(crm: Crm, record: CrmRecord, target: ResolvedNetworkTarget): SharedRecord;
|
|
1101
|
+
declare function sharedRecordFromCrm(crm: Crm, record: CrmRecord, target: ResolvedNetworkTarget, sourceId?: string): SharedRecord;
|
|
988
1102
|
/**
|
|
989
1103
|
* Upsert a leader-shared CRM record into this follower. Accepts the original
|
|
990
1104
|
* person wire shape plus the versioned generic shape. Re-shares resolve through
|
|
991
1105
|
* a durable provenance tag; people/businesses also converge by natural key.
|
|
992
1106
|
*/
|
|
993
|
-
declare function projectSharedRecord(deps: ProjectionDeps, shared: SharedPerson | SharedBusiness | SharedRecord
|
|
1107
|
+
declare function projectSharedRecord(deps: ProjectionDeps, shared: SharedPerson | SharedBusiness | SharedRecord, options?: {
|
|
1108
|
+
sourceId?: string;
|
|
1109
|
+
sourceUrl?: string;
|
|
1110
|
+
}): Promise<{
|
|
994
1111
|
recordId: string;
|
|
995
1112
|
}>;
|
|
996
1113
|
/** An arriving applicant, as far as the CRM projection cares. `extra` carries the
|
|
@@ -1519,4 +1636,4 @@ type ApplicationBookingPatch = {
|
|
|
1519
1636
|
* already there (never backward). */
|
|
1520
1637
|
declare function applicationBookingUpdate(currentStatus: string, startAt: number, htmlLink?: string | null): ApplicationBookingPatch;
|
|
1521
1638
|
|
|
1522
|
-
export { type AccountModel, type AdminNotificationTrigger, type Applicant, type ApplicationBookingPatch, type ApplicationRecord, type ApplicationSummary, type Attr, type AttrType, type Chapter, type ChapterApplication, type ChapterAuth, type ChapterBrand, type ChapterConfig, type ChapterCopy, type ChapterCopyInput, type ChapterDb, type ChapterEmails, type ChapterIntegrationDescriptor, type ChapterIntegrationOptions, type ChapterMode, type ChapterNetwork, type ChapterNetworkTarget, type ChapterOperations, type ChapterPipeline, type ChapterPolicy, type ChapterPrices, type ChapterRunbookHints, type ChapterScheduling, type ChapterSends, 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 EmailGroup, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, type GuardResult, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, type JoinConfigGroup, type LiveEvent, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, type MemberSession, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type ProjectionDeps, type ReconcileDecision, type ResolvedApplication, type ResolvedAuth, type ResolvedNetwork, type ResolvedNetworkTarget, type ResolvedOperations, type ResolvedPipeline, type ResolvedScheduling, type ResolvedSends, type RoleChangeContext, type Rule, SCHEDULING_DEFAULTS, type SchedulingErrors, type SecretMode, type SecretStore, type SessionUser, type SharedBusiness, type SharedPerson, type SharedRecord, type StripeEvent, type StripeResult, type SubmitResult, type WebhookEvent, applicantProfile, applicationBookingUpdate, applicationSummary, backfillCrm, bookingDecision, brandTokens, bucketSeries, buildGroupSeed, canApprove, canBook, canChangeRole, canTransition, canceledPatch, chapterBrandFromTokens, chapterDb, clampArray, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkSetRole, clerkUserRequest, createChapterIntegration, createClerkInvitation, createClerkUser, dashboardMetricData, defaultCrm, defineChapter, emailGroupFrom, endForSlot, findApplicationRef, firstPaymentPatch, formatChapterCopy, getVaultSecret, hasDisclaimerAck, introIdempotencyKey, isAdminRole, isAlreadySent, isReconcilable, isSlotAvailable, isValidEmail, joinConfig, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberSession, networkSourceTag, normalizeSharedRecord, normalizeWebhookEvent, paymentsReady, personInputFromApp, planDelivery, projectApplicant, projectSharedRecord, reconcileMeetings, refundedPatch, render, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveChapterCopy, resolvePipeline, resolveScheduling, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, slotWindow, stageIndex, stripeCall, stripeForm, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateScheduling, verifyStripeSignature, webhookMutationId };
|
|
1639
|
+
export { type AccountModel, type AdminNotificationTrigger, type Applicant, type ApplicationBookingPatch, type ApplicationRecord, type ApplicationSummary, type Attr, type AttrType, type Chapter, type ChapterApplication, type ChapterAuth, type ChapterBrand, type ChapterConfig, type ChapterCopy, type ChapterCopyInput, type ChapterDb, type ChapterEmails, type ChapterIntegrationDescriptor, type ChapterIntegrationOptions, type ChapterMode, type ChapterNetwork, type ChapterNetworkTarget, type ChapterOperations, type ChapterPipeline, type ChapterPolicy, type ChapterPrices, type ChapterRunbookHints, type ChapterScheduling, type ChapterSends, 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 EmailGroup, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, type GuardResult, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, type JoinConfigGroup, type LeaderCrmOptions, type LeaderFormationConfig, type LiveEvent, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, type MemberSession, type NetworkRollup, type NetworkRollupTarget, type NetworkSnapshot, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type ProjectionDeps, type ReconcileDecision, type ResolvedApplication, type ResolvedAuth, type ResolvedLeaderFormation, type ResolvedNetwork, type ResolvedNetworkTarget, type ResolvedOperations, type ResolvedPipeline, type ResolvedScheduling, type ResolvedSends, type RoleChangeContext, type Rule, SCHEDULING_DEFAULTS, type SchedulingErrors, type SecretMode, type SecretStore, type SessionUser, type SharedBusiness, type SharedPerson, type SharedRecord, type SharedRecordV1, type SharedRecordV2, type StripeEvent, type StripeResult, type SubmitResult, type WebhookEvent, applicantProfile, applicationBookingUpdate, applicationSummary, backfillCrm, bookingDecision, brandTokens, bucketSeries, buildGroupSeed, canApprove, canBook, canChangeRole, canTransition, canceledPatch, chapterBrandFromTokens, chapterDb, clampArray, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkSetRole, clerkUserRequest, createChapterIntegration, createClerkInvitation, createClerkUser, dashboardMetricData, defaultCrm, defineChapter, emailGroupFrom, endForSlot, findApplicationRef, firstPaymentPatch, formatChapterCopy, formationFields, getVaultSecret, hasDisclaimerAck, introIdempotencyKey, isAdminRole, isAlreadySent, isReconcilable, isSlotAvailable, isValidEmail, joinConfig, leaderCrmConfig, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberSession, networkSourceTag, normalizeSharedRecord, normalizeWebhookEvent, paymentsReady, personInputFromApp, planDelivery, projectApplicant, projectSharedRecord, reconcileMeetings, refundedPatch, render, renderSummary, renderTemplateBody, renewalPatch, resolveApplication, resolveAuth, resolveChapterCopy, resolveLeaderFormation, resolvePipeline, resolveScheduling, roleFromClaim, sendTemplated, sharedPersonInput, sharedRecordFromCrm, slotWindow, stageIndex, stripeCall, stripeForm, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateScheduling, verifyStripeSignature, webhookMutationId };
|