@arnaudjnn/billing-tools 21.6.1 → 21.7.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.
Files changed (57) hide show
  1. package/dist/bound-api.d.ts +9 -0
  2. package/dist/bound-api.d.ts.map +1 -1
  3. package/dist/bound-api.js +8 -6
  4. package/dist/bound-api.js.map +1 -1
  5. package/dist/create-billing.d.ts +15 -0
  6. package/dist/create-billing.d.ts.map +1 -1
  7. package/dist/create-billing.js +44 -2
  8. package/dist/create-billing.js.map +1 -1
  9. package/dist/entries/notifications.d.ts +2 -0
  10. package/dist/entries/notifications.d.ts.map +1 -0
  11. package/dist/entries/notifications.js +11 -0
  12. package/dist/entries/notifications.js.map +1 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +7 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/invitations.d.ts +9 -0
  18. package/dist/invitations.d.ts.map +1 -1
  19. package/dist/invitations.js +3 -2
  20. package/dist/invitations.js.map +1 -1
  21. package/dist/notifications/emit.d.ts +18 -0
  22. package/dist/notifications/emit.d.ts.map +1 -0
  23. package/dist/notifications/emit.js +79 -0
  24. package/dist/notifications/emit.js.map +1 -0
  25. package/dist/notifications/index.d.ts +171 -0
  26. package/dist/notifications/index.d.ts.map +1 -0
  27. package/dist/notifications/index.js +92 -0
  28. package/dist/notifications/index.js.map +1 -0
  29. package/dist/plan-model.d.ts +44 -1
  30. package/dist/plan-model.d.ts.map +1 -1
  31. package/dist/plan-model.js +14 -13
  32. package/dist/plan-model.js.map +1 -1
  33. package/dist/plan-request.d.ts +5 -0
  34. package/dist/plan-request.d.ts.map +1 -1
  35. package/dist/plan-request.js +19 -0
  36. package/dist/plan-request.js.map +1 -1
  37. package/dist/tools/management.d.ts +3 -0
  38. package/dist/tools/management.d.ts.map +1 -1
  39. package/dist/tools/management.js +5 -3
  40. package/dist/tools/management.js.map +1 -1
  41. package/dist/tools/register.d.ts +9 -0
  42. package/dist/tools/register.d.ts.map +1 -1
  43. package/dist/tools/register.js +2 -2
  44. package/dist/tools/register.js.map +1 -1
  45. package/dist/tools/subscription.d.ts +3 -0
  46. package/dist/tools/subscription.d.ts.map +1 -1
  47. package/dist/tools/subscription.js +2 -0
  48. package/dist/tools/subscription.js.map +1 -1
  49. package/dist/topup.d.ts +9 -4
  50. package/dist/topup.d.ts.map +1 -1
  51. package/dist/topup.js +45 -6
  52. package/dist/topup.js.map +1 -1
  53. package/dist/usage.d.ts +2 -35
  54. package/dist/usage.d.ts.map +1 -1
  55. package/dist/usage.js +5 -16
  56. package/dist/usage.js.map +1 -1
  57. package/package.json +6 -1
@@ -0,0 +1,79 @@
1
+ // Who gets told, and the one place that swallows a failed telling.
2
+ //
3
+ // Kept apart from `./index.ts` so the wire format (the event union, the signature, the
4
+ // transport) stays free of the adapter: a consumer's route imports that half to VERIFY a
5
+ // delivery, and has no business pulling the storage seam in to do it.
6
+ const ADMIN_ROLE = "admin";
7
+ /**
8
+ * Build the fire-and-forget `Notify` every call site inside the library holds.
9
+ *
10
+ * Two things happen here that deliberately do NOT happen at the call sites:
11
+ *
12
+ * 1. **Recipients are resolved.** A call site knows the workspace and, at most, a member id;
13
+ * turning that into addresses is a membership question, and answering it eight times is
14
+ * how eight answers drift. It also has to be async, and a call site that awaited it would
15
+ * be blocking a metered call on a WorkOS round trip to send an email.
16
+ * 2. **Failure is swallowed, once.** Every notification describes something that ALREADY
17
+ * happened — the invitation exists, the credit is granted, the call was metered. A
18
+ * delivery that fails must not undo it. One `.catch()` here beats eight, where the ninth
19
+ * call site is the one that forgets.
20
+ */
21
+ export function createEmitter(adapter, notifier, onError) {
22
+ if (!notifier)
23
+ return undefined;
24
+ const fail = (e) => {
25
+ try {
26
+ onError?.(e);
27
+ }
28
+ catch {
29
+ // A broken error handler is not worth a second failure.
30
+ }
31
+ };
32
+ return (event) => {
33
+ const audience = event.audience;
34
+ void (async () => {
35
+ const resolved = await withRecipients(adapter, event, audience);
36
+ // Nothing to tell anybody: an adapter that cannot list members, a workspace whose
37
+ // admins have no address on file. Sending to nobody is not an error, but it is not
38
+ // worth a round trip either.
39
+ if (!resolved.to.length)
40
+ return;
41
+ await notifier.deliver({ ...resolved, at: Date.now() });
42
+ })().catch(fail);
43
+ };
44
+ }
45
+ /** Fill `to` (and a member's email, where the event carries one) from the adapter. */
46
+ async function withRecipients(adapter, event, audience) {
47
+ if (!audience)
48
+ return event;
49
+ if (audience.kind === "email")
50
+ return { ...event, to: [audience.email] };
51
+ const members = await listOrgMembers(adapter, event.orgId);
52
+ const to = audience.kind === "admins"
53
+ ? members.filter((m) => m.roleSlug === ADMIN_ROLE).map((m) => m.email)
54
+ : members.filter((m) => m.userId === audience.memberId).map((m) => m.email);
55
+ // The member's own address, when the event names one and the caller could not. The same
56
+ // list answers both questions, so it is one lookup, not two.
57
+ const data = event.data;
58
+ const member = data && "member" in data && data.member && !data.member.email
59
+ ? members.find((m) => m.userId === data.member.id)
60
+ : null;
61
+ return {
62
+ ...event,
63
+ to: to.filter((e) => Boolean(e)),
64
+ ...(member ? { data: { ...event.data, member: { ...data.member, email: member.email } } } : {}),
65
+ };
66
+ }
67
+ async function listOrgMembers(adapter, orgId) {
68
+ if (!adapter.listMembers)
69
+ return [];
70
+ try {
71
+ return await adapter.listMembers(orgId);
72
+ }
73
+ catch (e) {
74
+ // An unreadable membership means nobody gets told, which is the same outcome as no
75
+ // notifier at all — never a thrown error into the thing that happened.
76
+ return [];
77
+ }
78
+ }
79
+ //# sourceMappingURL=emit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/notifications/emit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ /** Which allowance an alert is about, in the consumer's own words where the plan gave any. */
2
+ export interface NotifiedWindow {
3
+ every: string;
4
+ label: string | null;
5
+ used: number;
6
+ limit: number;
7
+ percent: number;
8
+ }
9
+ export interface NotifiedMember {
10
+ id: string;
11
+ email: string | null;
12
+ }
13
+ /** What happened. One variant per thing worth telling somebody about. */
14
+ export type BillingNotification =
15
+ /** A member was invited and the invitation record exists. `to` is the invitee. */
16
+ {
17
+ type: "invitation.created";
18
+ orgId: string;
19
+ to: string[];
20
+ data: {
21
+ invitationId: string;
22
+ email: string;
23
+ roleSlug: string;
24
+ acceptUrl: string;
25
+ organizationId: string;
26
+ inviterUserId?: string;
27
+ };
28
+ }
29
+ /** Somebody asked for more than their allowance. `to` is every admin of the workspace. */
30
+ | {
31
+ type: "topup.requested";
32
+ orgId: string;
33
+ to: string[];
34
+ data: {
35
+ requestId: string;
36
+ member: NotifiedMember;
37
+ credits: number;
38
+ /** The window that refused them, when the ask came from one. */
39
+ window: NotifiedWindow | null;
40
+ };
41
+ }
42
+ /** An admin answered — or granted unprompted. `to` is the member it is about. */
43
+ | {
44
+ type: "topup.resolved";
45
+ orgId: string;
46
+ to: string[];
47
+ data: {
48
+ requestId: string | null;
49
+ member: NotifiedMember;
50
+ credits: number;
51
+ outcome: "approved" | "denied" | "granted";
52
+ };
53
+ }
54
+ /** Somebody asked to move up a rung the money cannot buy (a seat, a plan). */
55
+ | {
56
+ type: "upgrade.requested";
57
+ orgId: string;
58
+ to: string[];
59
+ data: {
60
+ requestId: string;
61
+ member: NotifiedMember;
62
+ kind: "seat" | "plan";
63
+ /** The seat type or plan key they asked for. */
64
+ target: string;
65
+ };
66
+ }
67
+ /** An allowance crossed a threshold. Fired once per window per threshold per cycle. */
68
+ | {
69
+ type: "usage.threshold";
70
+ orgId: string;
71
+ to: string[];
72
+ data: {
73
+ /** Whose wall it is: one member's pack, or the workspace's own pool/ceiling. */
74
+ scope: "member" | "org";
75
+ member: NotifiedMember | null;
76
+ window: NotifiedWindow;
77
+ /** The threshold crossed (80, 100, …), not the exact percentage. */
78
+ threshold: number;
79
+ };
80
+ };
81
+ /** An event as a consumer receives it: what happened, plus how to not send it twice. */
82
+ export type DeliverableNotification = BillingNotification & {
83
+ /** Stable across retries and re-fires. Dedupe on this. */
84
+ id: string;
85
+ /** Epoch ms the event was emitted. */
86
+ at: number;
87
+ };
88
+ export interface Notifier {
89
+ deliver(notification: DeliverableNotification): Promise<void>;
90
+ }
91
+ /**
92
+ * Who the event is for, stated as a question rather than an answer.
93
+ *
94
+ * A call site knows the workspace and, at most, a member id. Turning that into addresses is
95
+ * a membership question, answered once in `createEmitter` — off the hot path, because a
96
+ * metered call must not wait on a WorkOS round trip to send an email.
97
+ */
98
+ export type Audience =
99
+ /** Every admin of the workspace. "Somebody is asking you for something." */
100
+ {
101
+ kind: "admins";
102
+ }
103
+ /** One member, by id. "Here is the answer to what you asked." */
104
+ | {
105
+ kind: "member";
106
+ memberId: string;
107
+ }
108
+ /** A literal address — an invitee, who is by definition not a member yet. */
109
+ | {
110
+ kind: "email";
111
+ email: string;
112
+ };
113
+ /**
114
+ * Fire an event. Returns immediately; failures are swallowed.
115
+ *
116
+ * This is the type every call site inside the library holds. `undefined` when no notifier is
117
+ * configured, which is why every site calls it as `notify?.(…)` — a deployment that wants no
118
+ * notifications pays nothing, not even the object.
119
+ */
120
+ export type Notify = (notification: BillingNotification & {
121
+ id: string;
122
+ audience?: Audience;
123
+ }) => void;
124
+ /** `v1,<base64 hmac>` over `<id>.<timestamp>.<body>` — the Svix scheme, because that is what
125
+ * a consumer's inbound route is most likely to already verify. */
126
+ export declare function signNotification(secret: string, id: string, timestamp: number, body: string): string;
127
+ /**
128
+ * Verify a signature the way a receiver should: constant-time, and inside a replay window.
129
+ *
130
+ * Exported so a consumer's route does not hand-roll it. The one that did (an inbound email
131
+ * webhook) got it right, and the second one to try would be the one that skipped the
132
+ * timestamp check.
133
+ */
134
+ export declare function verifyNotification(secret: string, headers: {
135
+ id?: string | null;
136
+ timestamp?: string | null;
137
+ signature?: string | null;
138
+ }, body: string, opts?: {
139
+ toleranceSec?: number;
140
+ now?: number;
141
+ }): boolean;
142
+ export interface WebhookNotifierOptions {
143
+ /** Where to POST. The consumer's own route, usually. */
144
+ endpoint: string;
145
+ /** Shared secret for the signature. Without one the POST is unsigned, which is only ever
146
+ * right for a localhost endpoint. */
147
+ secret?: string;
148
+ /** Per attempt. Default 5s — a notification must never hold anything open. */
149
+ timeoutMs?: number;
150
+ /** Attempts after the first. Default 2, backing off 250ms then 500ms. */
151
+ retries?: number;
152
+ /** Extra headers (an auth header for a gateway, say). */
153
+ headers?: Record<string, string>;
154
+ fetchImpl?: typeof fetch;
155
+ }
156
+ /**
157
+ * Deliver over HTTP, signed.
158
+ *
159
+ * Shipped rather than left to each consumer because the interesting parts are not the POST:
160
+ * they are the timeout (a hung endpoint must not hold a metered call open), the retry
161
+ * (a notification is worth one more try and not ten), and the signature (the receiver has to
162
+ * be able to tell the library from anyone else who learned the URL). Two consumers writing
163
+ * that twice is two chances to get the replay window wrong.
164
+ *
165
+ * 4xx is NOT retried: the receiver understood and refused, and repeating it just doubles the
166
+ * refusals. 5xx and network failures are.
167
+ */
168
+ export declare function webhookNotifier(opts: WebhookNotifierOptions): Notifier;
169
+ /** For a consumer that wants an id and has nothing stable to derive one from. */
170
+ export declare function notificationId(prefix: string): string;
171
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { createHmac, randomUUID, timingSafeEqual } from "node:crypto";
2
+ // ── The shipped transport ────────────────────────────────────────────────────
3
+ const SIGNATURE_VERSION = "v1";
4
+ /** `v1,<base64 hmac>` over `<id>.<timestamp>.<body>` — the Svix scheme, because that is what
5
+ * a consumer's inbound route is most likely to already verify. */
6
+ export function signNotification(secret, id, timestamp, body) {
7
+ const mac = createHmac("sha256", secret).update(`${id}.${timestamp}.${body}`).digest("base64");
8
+ return `${SIGNATURE_VERSION},${mac}`;
9
+ }
10
+ /**
11
+ * Verify a signature the way a receiver should: constant-time, and inside a replay window.
12
+ *
13
+ * Exported so a consumer's route does not hand-roll it. The one that did (an inbound email
14
+ * webhook) got it right, and the second one to try would be the one that skipped the
15
+ * timestamp check.
16
+ */
17
+ export function verifyNotification(secret, headers, body, opts = {}) {
18
+ const { id, timestamp, signature } = headers;
19
+ if (!id || !timestamp || !signature)
20
+ return false;
21
+ const ts = Number(timestamp);
22
+ if (!Number.isFinite(ts))
23
+ return false;
24
+ const now = opts.now ?? Date.now();
25
+ // A replay window, because a valid signature is valid for ever without one.
26
+ if (Math.abs(now - ts) > (opts.toleranceSec ?? 300) * 1000)
27
+ return false;
28
+ const expected = signNotification(secret, id, ts, body);
29
+ const a = Buffer.from(expected);
30
+ const b = Buffer.from(signature);
31
+ return a.length === b.length && timingSafeEqual(a, b);
32
+ }
33
+ /**
34
+ * Deliver over HTTP, signed.
35
+ *
36
+ * Shipped rather than left to each consumer because the interesting parts are not the POST:
37
+ * they are the timeout (a hung endpoint must not hold a metered call open), the retry
38
+ * (a notification is worth one more try and not ten), and the signature (the receiver has to
39
+ * be able to tell the library from anyone else who learned the URL). Two consumers writing
40
+ * that twice is two chances to get the replay window wrong.
41
+ *
42
+ * 4xx is NOT retried: the receiver understood and refused, and repeating it just doubles the
43
+ * refusals. 5xx and network failures are.
44
+ */
45
+ export function webhookNotifier(opts) {
46
+ const doFetch = opts.fetchImpl ?? fetch;
47
+ const retries = opts.retries ?? 2;
48
+ const timeoutMs = opts.timeoutMs ?? 5_000;
49
+ return {
50
+ async deliver(notification) {
51
+ const body = JSON.stringify(notification);
52
+ const at = notification.at;
53
+ const headers = {
54
+ "content-type": "application/json",
55
+ "billing-notification-id": notification.id,
56
+ "billing-notification-timestamp": String(at),
57
+ ...(opts.secret ? { "billing-notification-signature": signNotification(opts.secret, notification.id, at, body) } : {}),
58
+ ...opts.headers,
59
+ };
60
+ let lastError = null;
61
+ for (let attempt = 0; attempt <= retries; attempt++) {
62
+ if (attempt > 0)
63
+ await new Promise((r) => setTimeout(r, 250 * 2 ** (attempt - 1)));
64
+ try {
65
+ const res = await doFetch(opts.endpoint, {
66
+ method: "POST",
67
+ headers,
68
+ body,
69
+ signal: AbortSignal.timeout(timeoutMs),
70
+ });
71
+ if (res.ok)
72
+ return;
73
+ // The receiver understood and said no. Retrying cannot change its mind.
74
+ if (res.status >= 400 && res.status < 500)
75
+ return;
76
+ lastError = new Error(`notification endpoint answered ${res.status}`);
77
+ }
78
+ catch (e) {
79
+ lastError = e;
80
+ }
81
+ }
82
+ // Exhausted. Throwing here is correct — `emitter` below is what swallows it, and a
83
+ // consumer calling `deliver` directly (a test, a custom transport) deserves the error.
84
+ throw lastError ?? new Error("notification delivery failed");
85
+ },
86
+ };
87
+ }
88
+ /** For a consumer that wants an id and has nothing stable to derive one from. */
89
+ export function notificationId(prefix) {
90
+ return `${prefix}:${randomUUID()}`;
91
+ }
92
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Localized, type LocalizedList, type PartialMessages } from "./i18n.js";
1
+ import { type Localized, type LocaleOptions, type LocalizedList, type PartialMessages } from "./i18n.js";
2
2
  export type BillingInterval = "monthly" | "yearly";
3
3
  /** Minor units (cents). 1 credit = 1 minor unit, throughout this library. */
4
4
  export type Money = number;
@@ -151,6 +151,49 @@ export type Exhausted =
151
151
  * actually means. It is the only way to say that: the pack size cannot express it,
152
152
  * since the size is a number and the period is the window.
153
153
  */
154
+ /**
155
+ * Which seat the caller holds, and the plan's own words for it.
156
+ *
157
+ * On the PURE module: resolving a seat's name is a lookup in the catalogue plus a locale
158
+ * choice, and it was reachable only through `usage.ts` — which imports the allowance engine,
159
+ * which imports Stripe. So a seat picker or a pricing card, the two screens that most want a
160
+ * seat's name, had to pull the whole engine through the root barrel to get a string. That is
161
+ * the mistake `CREDITS_PER_UNIT` already made once, at the cost of every page in a consumer.
162
+ */
163
+ export interface UsageSeat {
164
+ /** Seat type key: a sold seat type, the plan's implicit seat, or `api`. */
165
+ type: string;
166
+ /**
167
+ * `display.badge`, else `display.label`, resolved for the requested locale —
168
+ * null when the config gave that seat no display at all. The badge form wins
169
+ * because this is the pill on a usage screen, not a pricing card.
170
+ */
171
+ label: string | null;
172
+ /**
173
+ * The FULL form on its own — `display.label`, null when the config gave none.
174
+ *
175
+ * `label` above is the PILL value and collapses the two, so a caller writing a sentence
176
+ * ("Passa a Posto Premium") could not get the long name back once a badge existed — one
177
+ * reached into `model.seatTypes.find(...)?.display?.label` itself to recover it, which is a
178
+ * consumer reading the catalogue shape to answer a question the resolver is for.
179
+ */
180
+ name: string | null;
181
+ /**
182
+ * The SHORT form on its own — `display.badge`, null when the config gave none.
183
+ *
184
+ * `label` collapses the two, which is right for a pill and wrong for everything else: a
185
+ * consumer needing the short word where the long one already carries a noun ("Posto
186
+ * Premium" in a row that says "posto") was reduced to stripping the noun with a regex, in
187
+ * two files. Both forms are the config's, so both are reported and the caller picks.
188
+ */
189
+ badge: string | null;
190
+ }
191
+ /**
192
+ * How a plan presents one seat type: a sold seat type first, then the implicit
193
+ * seat of a plan that sells none. Exported because a members list wants the same
194
+ * pill as a usage screen, and reimplementing this lookup is how the two drift.
195
+ */
196
+ export declare function resolveSeat(model: PlanModel | null, type: string, locale?: LocaleOptions): UsageSeat;
154
197
  /**
155
198
  * Credits per unit of currency — 100, i.e. one credit per cent.
156
199
  *
@@ -1 +1 @@
1
- {"version":3,"file":"plan-model.d.ts","sourceRoot":"","sources":["../src/plan-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-model.d.ts","sourceRoot":"","sources":["../src/plan-model.ts"],"names":[],"mappings":"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"}
@@ -38,25 +38,26 @@
38
38
  // An included allowance is therefore a `cap`: a window that usage is COUNTED
39
39
  // against, with no money moving. Credit stays what it is actually for —
40
40
  // PURCHASED credits (a top-up), which the customer really can spend.
41
- import { formatMessage, resolveMessages, } from "./i18n.js";
41
+ import { formatMessage, resolveLocalized, resolveMessages, } from "./i18n.js";
42
42
  export const INTERVALS = ["monthly", "yearly"];
43
43
  // ── Axis 1: what Stripe SELLS ───────────────────────────────────────────────
44
44
  /** The seat type a member is assumed to hold when nothing says otherwise. */
45
45
  export const DEFAULT_SEAT_TYPE = "standard";
46
46
  /**
47
- * The window a `cap` is measured over.
48
- *
49
- * `cycle` (the default, and the historical behaviour) is the SUBSCRIPTION period:
50
- * a plan billed annually gets one window a year. That is right for a committed
51
- * package — a year's worth, bought up front — and wrong for anything a customer
52
- * is told they get "per month", because an annual subscriber would receive twelve
53
- * months' allowance on day one and nothing after it ran out.
54
- *
55
- * `month` measures the same allowance over the calendar month whatever the
56
- * billing interval, which is what "1 000 per seat per month, billed annually"
57
- * actually means. It is the only way to say that: the pack size cannot express it,
58
- * since the size is a number and the period is the window.
47
+ * How a plan presents one seat type: a sold seat type first, then the implicit
48
+ * seat of a plan that sells none. Exported because a members list wants the same
49
+ * pill as a usage screen, and reimplementing this lookup is how the two drift.
59
50
  */
51
+ export function resolveSeat(model, type, locale) {
52
+ const display = model?.seatTypes.find((s) => s.key === type)?.display ??
53
+ (model?.seat?.key === type ? model.seat.display : null);
54
+ return {
55
+ type,
56
+ label: display ? (resolveLocalized(display.badge ?? display.label, locale) ?? null) : null,
57
+ name: display?.label ? (resolveLocalized(display.label, locale) ?? null) : null,
58
+ badge: display?.badge ? (resolveLocalized(display.badge, locale) ?? null) : null,
59
+ };
60
+ }
60
61
  /**
61
62
  * Credits per unit of currency — 100, i.e. one credit per cent.
62
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"plan-model.js","sourceRoot":"","sources":["../src/plan-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-model.js","sourceRoot":"","sources":["../src/plan-model.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0BAA0B;AAC1B,EAAE;AACF,gFAAgF;AAChF,mEAAmE;AACnE,yEAAyE;AACzE,6EAA6E;AAC7E,6EAA6E;AAC7E,2CAA2C;AAC3C,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,oFAAoF;AACpF,EAAE;AACF,qEAAqE;AACrE,yEAAyE;AACzE,uEAAuE;AACvE,8EAA8E;AAC9E,iFAAiF;AACjF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,4DAA4D;AAC5D,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,mEAAmE;AACnE,EAAE;AACF,6EAA6E;AAC7E,wEAAwE;AACxE,qEAAqE;AAErE,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,GAKhB,MAAM,WAAW,CAAC;AAcnB,MAAM,CAAC,MAAM,SAAS,GAA+B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAwD3E,+EAA+E;AAE/E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AA+H5C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,KAAuB,EACvB,IAAY,EACZ,MAAsB;IAEtB,MAAM,OAAO,GACX,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,OAAO;QACrD,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1F,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/E,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACjF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC;AACpD,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC;AAChD,CAAC;AA6ID;wEACwE;AACxE,MAAM,UAAU,cAAc,CAAC,KAAuB;IACpD,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,oBAAoB;QAC3D,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,oBAAoB;KAC5D,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,aAAa,CAAC,KAAuB;IAMnD,MAAM,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;IACnC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,uBAAuB;QAC9C,UAAU,EAAE,CAAC,EAAE,UAAU,IAAI,mBAAmB;QAChD,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,uBAAuB;QAC9C,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,oBAAoB;KACtC,CAAC;AACJ,CAAC;AAED;0DAC0D;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAC5C,wFAAwF;AACxF,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AA0IvC;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAqC,KAAQ;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAqCD,SAAS,kBAAkB,CAAC,SAAuC;IACjE,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,GAAG;QACH,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC;QAC1C,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;QAClB,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC;AAED;+BAC+B;AAC/B,SAAS,aAAa,CACpB,QAAgD,EAChD,KAA2B,EAC3B,SAAoC;IAEpC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,CAAC,CAAkB,EAAE,EAAE,CACjC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,IAAc;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC3E,OAAO;QACL,GAAG;QACH,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;QACrC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC9E,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE;QAChF,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;QACpD,SAAS;QACT,IAAI,EACF,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;YACvC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;QACrF,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAkB,EAAE,GAA8B;IAC1E,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED;iFACiF;AACjF,MAAM,UAAU,UAAU,CACxB,KAAkB,EAClB,SAAwC;IAExC,OAAO,cAAc,CAAC,KAAK,CAAC;SACzB,MAAM,CAAC,SAAS,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAkB,EAAY,EAAE,CAC7D,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAoClF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,CAAC,SAAoC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7E,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnD,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACvD,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACjD,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;QAC3C,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;QAC9C,8EAA8E;QAC9E,6EAA6E;QAC7E,0EAA0E;QAC1E,2EAA2E;QAC3E,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC;AAMD;oFACoF;AACpF,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC5C,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS;QAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IACvD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IAChD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAkB,EAClB,IAOC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,UAAU,CAAC;IAC3D,IAAI,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAElD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,IAAI,CAAC;YAAE,SAAS;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QACD,KAAK,IAAI,GAAG,CAAC;QACb,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,GAAG,GAAG;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;IACzC,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,GAAG;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IACrC,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAsB,EACtB,QAA0B;IAE1B,MAAM,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,cAAc;YACjB,OAAO,CAAC,CAAC,WAAW,CAAC;QACvB,KAAK,iBAAiB;YACpB,OAAO,aAAa,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,KAAK,eAAe;YAClB,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9E,KAAK,YAAY;YACf,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9E,KAAK,iBAAiB;YACpB,OAAO,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE;gBACtC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;QACL,KAAK,cAAc;YACjB,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChF,KAAK,sBAAsB;YACzB,OAAO,aAAa,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E;8DAC8D;AAC9D,MAAM,UAAU,QAAQ,CACtB,KAAuB,EACvB,GAAsD;IAEtD,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IACrB,QAAQ,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7B,KAAK,YAAY;YACf,oEAAoE;YACpE,mDAAmD;YACnD,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;QACjE,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;YACpC,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS;gBAAE,GAAG,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,UAAU,CACxB,KAAuB,EACvB,KAAuC;IAEvC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC;IAE9B,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS;gBAAE,GAAG,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,2EAA2E;YAC3E,sEAAsE;YACtE,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC,EAC5C,MAAM,CAAC,iBAAiB,CACzB,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,KAAK,GACT,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK;YAChC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACnB,OAAO,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACxD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;sDACsD;AACtD,MAAM,UAAU,aAAa,CAAC,KAAuB;IACnD,OAAO,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;AACjE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,UAAU,CAAC,KAAuB,EAAE,QAA4B;IAC9E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAuB,EACvB,MAAqD;IAErD,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,IAAI,MAAM,EAAE,IAAI,KAAK,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,EAAE,QAAQ;QAC3B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,IAAI,EAAE,MAAM;QAAE,OAAO,QAAQ,CAAC;IAClC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC;IACvE,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC;IAC3E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,KAAuB,EACvB,MAAqD;IAErD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,MAAM,GACV,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnG,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,MAAM,EAAE,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,EAAE,QAAQ;QAC3B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AACvB,CAAC;AAaD,MAAM,eAAe,GAAG,CAAC,GAAW,EAAU,EAAE;IAC9C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAY,EACZ,MAAc,IAAI,CAAC,GAAG,EAAE,EACxB,KAAmB;IAEnB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAChF,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACnC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QACjF,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,8DAA8D;YAC9D,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;YAC1C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QACrF,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACpF,CAAC;QACD,KAAK,OAAO;YACV,OAAO,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAChI,CAAC;AACH,CAAC;AA0BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,MAAM,QAAQ,GAAG,CAAC,IAAgC,EAAW,EAAE;QAC7D,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9C,2EAA2E;QAC3E,6EAA6E;QAC7E,8CAA8C;QAC9C,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,OAAO;QACL,WAAW,EACT,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;QAC1F,cAAc,EACZ,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU;YAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAC3F;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,MAA4B,EAC5B,MAAsB;IAEtB,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,cAAc;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAuB,EACvB,MAA4D;IAE5D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;QAC/B,IAAI,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,EAAE,QAAQ,KAAK,CAAC,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChE,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/E,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,IAAI;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAuB,EACvB,MAA+E,EAC/E,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,MAAM,EAAE,GAAG,CAAC,CAAqC,EAAiB,EAAE,CAClE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACvE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC3E,yEAAyE;IACzE,gFAAgF;IAChF,iFAAiF;IACjF,6EAA6E;IAC7E,+EAA+E;IAC/E,4DAA4D;IAC5D,MAAM,OAAO,GACX,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;QAC9D,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC;IAE/B,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACrF,CAAC;IACD,6EAA6E;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,sDAAsD;IACtD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC1F,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type PlanRequest } from "./ladder.js";
2
+ import type { Notify } from "./notifications/index.js";
2
3
  import { type PlanCatalog } from "./plan-model.js";
3
4
  import type { BillingAdapter } from "./types.js";
4
5
  export { defaultSeatOf, isSatisfied, isTopSeat, nextSeatUp, nextUsageAsk, seatLadder, seatRank, seatTypeExists, usageAction, type PlanRequest, type UsageAction, } from "./ladder.js";
@@ -26,6 +27,8 @@ export declare function pendingPlanRequest(adapter: BillingAdapter, orgId: strin
26
27
  export declare function requestSeatChange(adapter: BillingAdapter, orgId: string, input: {
27
28
  memberId: string;
28
29
  plans: PlanCatalog;
30
+ /** Say that they asked. See `notifications/`. */
31
+ notify?: Notify;
29
32
  currentPlan?: string | null;
30
33
  currentSeatType?: string | null;
31
34
  /** Defaults to the next seat up. */
@@ -50,6 +53,8 @@ export declare function requestSeatChange(adapter: BillingAdapter, orgId: string
50
53
  export declare function requestPlanChange(adapter: BillingAdapter, orgId: string, input: {
51
54
  memberId: string;
52
55
  plans: PlanCatalog;
56
+ /** Say that they asked. See `notifications/`. */
57
+ notify?: Notify;
53
58
  currentPlan?: string | null;
54
59
  /** Defaults to the next plan up. */
55
60
  plan?: string;