@arnaudjnn/billing-tools 15.23.0 → 15.24.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.
@@ -79,9 +79,9 @@ export declare function createBoundApi(deps: BoundApiDeps): {
79
79
  * trigger on an owner's behalf.
80
80
  */
81
81
  requests: {
82
- list: (orgId: string) => Promise<import("./plan-request.js").PlanRequest[]>;
82
+ list: (orgId: string) => Promise<import("./ladder.js").PlanRequest[]>;
83
83
  /** That member's open ask, or null once the workspace has reached the plan anyway. */
84
- pending: (orgId: string, memberId: string) => Promise<import("./plan-request.js").PlanRequest | null>;
84
+ pending: (orgId: string, memberId: string) => Promise<import("./ladder.js").PlanRequest | null>;
85
85
  ask: (orgId: string, memberId: string, opts?: {
86
86
  plan?: string;
87
87
  note?: string;
@@ -89,7 +89,7 @@ export declare function createBoundApi(deps: BoundApiDeps): {
89
89
  ok: boolean;
90
90
  id?: string;
91
91
  plan?: string;
92
- pending?: import("./plan-request.js").PlanRequest;
92
+ pending?: import("./ladder.js").PlanRequest;
93
93
  reason?: "no_upgrade" | "unknown_plan" | "already_pending" | "already_on_it" | "queue_full";
94
94
  }>;
95
95
  /** Ask for a bigger SEAT — the right ask while one exists above them. */
@@ -100,7 +100,7 @@ export declare function createBoundApi(deps: BoundApiDeps): {
100
100
  ok: boolean;
101
101
  id?: string;
102
102
  seatType?: string;
103
- pending?: import("./plan-request.js").PlanRequest;
103
+ pending?: import("./ladder.js").PlanRequest;
104
104
  reason?: "no_upgrade" | "unknown_plan" | "already_pending" | "already_on_it" | "queue_full";
105
105
  }>;
106
106
  /**
@@ -121,7 +121,7 @@ export declare function createBoundApi(deps: BoundApiDeps): {
121
121
  ask: "plan";
122
122
  to: string;
123
123
  } | null>;
124
- resolve: (orgId: string, requestId: string, decision: "done" | "denied") => Promise<import("./plan-request.js").PlanRequest | null>;
124
+ resolve: (orgId: string, requestId: string, decision: "done" | "denied") => Promise<import("./ladder.js").PlanRequest | null>;
125
125
  /** Has the workspace already reached what this asked for? */
126
126
  satisfied: (orgId: string, request: Parameters<typeof isSatisfied>[0]) => Promise<boolean>;
127
127
  };
@@ -187,8 +187,8 @@ export declare function createBilling(opts: CreateBillingOptions): {
187
187
  change: (orgId: string, to: Parameters<typeof import("./subscription.js").changePlan>[2]["to"], opts?: Omit<Parameters<typeof import("./subscription.js").changePlan>[2], "plans" | "to" | "config" | "currency">) => Promise<import("./subscription.js").PlanChangeResult>;
188
188
  preview: (orgId: string, to: Parameters<typeof import("./subscription.js").previewPlanChange>[2]["to"], opts?: Omit<Parameters<typeof import("./subscription.js").previewPlanChange>[2], "plans" | "to" | "currency">) => Promise<import("./subscription.js").PlanChangePreview>;
189
189
  requests: {
190
- list: (orgId: string) => Promise<import("./plan-request.js").PlanRequest[]>;
191
- pending: (orgId: string, memberId: string) => Promise<import("./plan-request.js").PlanRequest | null>;
190
+ list: (orgId: string) => Promise<import("./ladder.js").PlanRequest[]>;
191
+ pending: (orgId: string, memberId: string) => Promise<import("./ladder.js").PlanRequest | null>;
192
192
  ask: (orgId: string, memberId: string, opts?: {
193
193
  plan?: string;
194
194
  note?: string;
@@ -196,7 +196,7 @@ export declare function createBilling(opts: CreateBillingOptions): {
196
196
  ok: boolean;
197
197
  id?: string;
198
198
  plan?: string;
199
- pending?: import("./plan-request.js").PlanRequest;
199
+ pending?: import("./ladder.js").PlanRequest;
200
200
  reason?: "no_upgrade" | "unknown_plan" | "already_pending" | "already_on_it" | "queue_full";
201
201
  }>;
202
202
  askSeat: (orgId: string, memberId: string, opts?: {
@@ -206,7 +206,7 @@ export declare function createBilling(opts: CreateBillingOptions): {
206
206
  ok: boolean;
207
207
  id?: string;
208
208
  seatType?: string;
209
- pending?: import("./plan-request.js").PlanRequest;
209
+ pending?: import("./ladder.js").PlanRequest;
210
210
  reason?: "no_upgrade" | "unknown_plan" | "already_pending" | "already_on_it" | "queue_full";
211
211
  }>;
212
212
  next: (orgId: string, memberId: string) => Promise<{
@@ -220,8 +220,8 @@ export declare function createBilling(opts: CreateBillingOptions): {
220
220
  ask: "plan";
221
221
  to: string;
222
222
  } | null>;
223
- resolve: (orgId: string, requestId: string, decision: "done" | "denied") => Promise<import("./plan-request.js").PlanRequest | null>;
224
- satisfied: (orgId: string, request: Parameters<typeof import("./plan-request.js").isSatisfied>[0]) => Promise<boolean>;
223
+ resolve: (orgId: string, requestId: string, decision: "done" | "denied") => Promise<import("./ladder.js").PlanRequest | null>;
224
+ satisfied: (orgId: string, request: Parameters<typeof import("./ladder.js").isSatisfied>[0]) => Promise<boolean>;
225
225
  };
226
226
  cancel: (orgId: string, opts?: Omit<Parameters<typeof import("./subscription.js").cancelPlan>[2], "plans" | "currency">) => Promise<import("./subscription.js").PlanChangeResult>;
227
227
  };
@@ -1,4 +1,5 @@
1
1
  export * from "../plan-model.js";
2
+ export * from "../ladder.js";
2
3
  export * from "../i18n.js";
3
4
  export * from "../types.js";
4
5
  export { sellerRegime, type SellerRegime } from "../tax-regime.js";
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/entries/plans.ts"],"names":[],"mappings":"AA0BA,cAAc,kBAAkB,CAAC;AAKjC,cAAc,YAAY,CAAC;AAM3B,cAAc,aAAa,CAAC;AAM5B,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/entries/plans.ts"],"names":[],"mappings":"AA0BA,cAAc,kBAAkB,CAAC;AAUjC,cAAc,cAAc,CAAC;AAK7B,cAAc,YAAY,CAAC;AAM3B,cAAc,aAAa,CAAC;AAM5B,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -24,6 +24,15 @@
24
24
  // definePlans, planModel, normalizePlans, poolSizeOf, packSizeOf, capCovers,
25
25
  // rateLimitsOf, cycleWindowFor, validateBasket, toolCapabilities, …
26
26
  export * from "../plan-model.js";
27
+ // The RUNGS: which seat is better, which plan is better, and which ask to offer a member
28
+ // who is blocked (`seatLadder`, `defaultSeatOf`, `nextSeatUp`, `isTopSeat`, `planRank`,
29
+ // `planActions`, `nextUsageAsk`). Pure arithmetic over the catalogue, and it belongs on
30
+ // this leaf for the reason the leaf exists: the screens that need it most — a seat picker,
31
+ // a pricing table, the "you are blocked, here is the answer" control — are client
32
+ // components, and reaching a rung through the root barrel loads Stripe and the MCP SDK to
33
+ // compare two numbers. Half of this was unreachable from ANY entry point until now, which
34
+ // is exactly why consumers re-implemented the ordering rule per screen.
35
+ export * from "../ladder.js";
27
36
  // Localisation of app-authored strings (`Localized`, `resolveLocalized`) and the
28
37
  // library's own English defaults (`DEFAULT_MESSAGES`). A plan's display copy is
29
38
  // localised, so the plan model cannot be read without these.
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/entries/plans.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,qBAAqB;AACrB,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,yFAAyF;AACzF,8EAA8E;AAC9E,mFAAmF;AACnF,gEAAgE;AAChE,EAAE;AACF,iFAAiF;AACjF,yEAAyE;AACzE,kFAAkF;AAClF,uDAAuD;AACvD,EAAE;AACF,0BAA0B;AAC1B,8EAA8E;AAC9E,mEAAmE;AACnE,mFAAmF;AACnF,iFAAiF;AACjF,kBAAkB;AAClB,4CAA4C;AAE5C,uEAAuE;AACvE,6EAA6E;AAC7E,oEAAoE;AACpE,cAAc,kBAAkB,CAAC;AAEjC,iFAAiF;AACjF,gFAAgF;AAChF,6DAA6D;AAC7D,cAAc,YAAY,CAAC;AAE3B,4EAA4E;AAC5E,iFAAiF;AACjF,mFAAmF;AACnF,yCAAyC;AACzC,cAAc,aAAa,CAAC;AAE5B,uFAAuF;AACvF,uFAAuF;AACvF,qFAAqF;AACrF,uEAAuE;AACvE,OAAO,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/entries/plans.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,qBAAqB;AACrB,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,yFAAyF;AACzF,8EAA8E;AAC9E,mFAAmF;AACnF,gEAAgE;AAChE,EAAE;AACF,iFAAiF;AACjF,yEAAyE;AACzE,kFAAkF;AAClF,uDAAuD;AACvD,EAAE;AACF,0BAA0B;AAC1B,8EAA8E;AAC9E,mEAAmE;AACnE,mFAAmF;AACnF,iFAAiF;AACjF,kBAAkB;AAClB,4CAA4C;AAE5C,uEAAuE;AACvE,6EAA6E;AAC7E,oEAAoE;AACpE,cAAc,kBAAkB,CAAC;AAEjC,yFAAyF;AACzF,wFAAwF;AACxF,wFAAwF;AACxF,2FAA2F;AAC3F,kFAAkF;AAClF,0FAA0F;AAC1F,0FAA0F;AAC1F,wEAAwE;AACxE,cAAc,cAAc,CAAC;AAE7B,iFAAiF;AACjF,gFAAgF;AAChF,6DAA6D;AAC7D,cAAc,YAAY,CAAC;AAE3B,4EAA4E;AAC5E,iFAAiF;AACjF,mFAAmF;AACnF,yCAAyC;AACzC,cAAc,aAAa,CAAC;AAE5B,uFAAuF;AACvF,uFAAuF;AACvF,qFAAqF;AACrF,uEAAuE;AACvE,OAAO,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,20 +1,21 @@
1
1
  export * from "./entries/plans.js";
2
- export { authContext, runWithAuth, runWithResolvedOrg, runWithPrincipal, currentPrincipal, enforceAccess, enforceAdmin, type Principal, enforceCredits, enforceMember, } from "./auth.js";
2
+ export { authContext, runWithAuth, runWithResolvedOrg, runWithPrincipal, currentPrincipal, enforceAccess, enforceAdmin, type Principal, enforceCredits, enforceMember, isInternalOrg, } from "./auth.js";
3
3
  export { getWorkOS, __setWorkOSForTests } from "./workos.js";
4
4
  export { createWorkOSOrgMirror, ALL_MEMBERSHIP_STATUSES, type WorkOSOrgMirror, type WorkOSOrgMirrorOptions, } from "./org-mirror.js";
5
5
  export { getStripe, stripeConfigured, ensureStripeCustomer, getBillingCustomerId, getOrgSubscription, getCreditBalance, deductCredits, grantCredits, usageSince, createCreditCheckoutSession, quoteCreditPurchase, invalidateCreditQuotes, type CreditQuote, createBillingPortalSession, getAutoReloadSettings, setAutoReloadSettings, getSpendControls, setSpendControls, spendControlsOf, type SpendControls, tryAutoReload, autoReloadFor, type ChargeTax, type TopUpCheckoutOptions, listInvoices, getInvoice, invoicePdfUrl, listOrgInvoices, getOrgInvoice, orgInvoicePdfUrl, listSubscriptionPrices, resolveSubscriptionPrice, type InvoiceEntry, type StripePrice, } from "./billing.js";
6
6
  export { ensurePlans, resolvePlanPrices, invalidatePlanPrices, migrateSubscriptions, planPriceId, planForPriceId, seatTypeForPriceId, seatLimit, seatTypeLimit, planSale, includedCredits, includedCreditsByType, lookupKeyFor, type EnsuredPrice, type PlanPrices, type MigratedSubscription, type MigrateSubscriptionsResult, type Quantities as PlanQuantities, } from "./plans.js";
7
- export { changePlan, cancelPlan, planActions, planRank, previewPlanChange, PlanChangeError, type PlanChangePreview, type PlanChangeResult, type PlanChangeKind, type PlanChangeTiming, type PlanChangeErrorCode, type ProrationPolicy, type PlanActions, } from "./subscription.js";
7
+ export { changePlan, cancelPlan, previewPlanChange, PlanChangeError, type PlanChangePreview, type PlanChangeResult, type PlanChangeKind, type PlanChangeTiming, type PlanChangeErrorCode, type ProrationPolicy, } from "./subscription.js";
8
8
  export { derivePlanViews, derivePlanView, renderPlansMarkdown, renderRateCardMarkdown, defineCompare, deriveCompareTable, compareRowLabels, type PlanView, type PlanPriceView, type SeatRowView, type CtaView, type MoneyView, type DerivePlanViewsOptions, type MarkdownOptions, type CompareConfig, type CompareSection, type CompareGroup, type CompareRow, type CompareValue, type CompareSource, type CompareCell, type CompareTableView, type CompareSectionView, type CompareGroupView, type CompareRowView, type DeriveCompareOptions, } from "./pricing.js";
9
9
  export { resolveAllowance, fundingFor, topUpTargetOf, describeDenial, currentCycle, type AllowanceState, type AllowanceInput, type FundingDecision, type DenialReason, type LimitState, } from "./allowance.js";
10
- export { usageSummary, memberUsage, resolveSeat, type UsageSummary, type UsageSummaryInput, type UsageWindow, type UsageSeat, type MemberUsage, } from "./usage.js";
10
+ export { usageSummary, memberUsage, resolveSeat, callerWithSeat, type UsageSummary, type UsageSummaryInput, type UsageWindow, type UsageSeat, type MemberUsage, } from "./usage.js";
11
11
  export { stripeBalanceUsageLedger, stripeMeterUsageLedger, stripeUsageLedger, defaultUsageLedger, warnLedgerGaps, ensureMeters, invalidateMeters, USAGE_METER_EVENT, type UsageLedger, type UsageEvent, type UsageQuery, type FundingSource, } from "./usage-ledger.js";
12
12
  export { cachedUsageLedger, type UsageCacheOptions } from "./usage-cache.js";
13
13
  export { onUsageFault, resetUsageFaults, type UsageFault, type UsageFaultHandler, type UsageFaultOperation, type UsageFaultOutcome, } from "./usage-faults.js";
14
14
  export { stripeScopeUsageLedger, invalidateUsageScopes, scopeOf, scopesFor, SCOPE_METER_EVENT, USAGE_SCOPE_KIND, USAGE_SCOPE_KEY, type ScopeLedgerOptions, } from "./usage-scopes.js";
15
15
  export { meterUsage, createMeter, createApiMeterGuard, type MeterCaller, type MeterInput, type MeterResult, type MeterConfig, type MeterCallOpts, type Meter, type ApiMeterGuard, } from "./metering.js";
16
16
  export { requestTopUp, listTopUpRequests, approveTopUp, denyTopUp, grantTopUp, grantExtraAllowance, extraAllowance, trimRequestsToBudget, METADATA_VALUE_LIMIT, type TopUpRequest, pendingTopUpFor, requestExtraAllowance, DEFAULT_REQUEST_PERCENT, } from "./topup.js";
17
- export { assignSeatType, listSeatAssignments, getSeatType, } from "./seats.js";
17
+ export { assignSeatType, listSeatAssignments, getSeatType, seatAssignable, clearMemberRecords, } from "./seats.js";
18
+ export { listPlanRequests, pendingPlanRequest, requestPlanChange, requestSeatChange, resolvePlanRequest, } from "./plan-request.js";
18
19
  export { sendMagicAuth, verifyMagicAuth } from "./magic-auth.js";
19
20
  export { createWorkOSInvitations, type InvitationService, type Invitation, type InvitationHooks, type InvitationEmailContext, type WorkOSInvitationsOptions, } from "./invitations.js";
20
21
  export { pollStripeEvents, pollWorkOSEvents, type PollResult } from "./events.js";
@@ -33,7 +34,7 @@ export { createToolListHandler, createToolDispatchHandler, type Dispatcher } fro
33
34
  export { createMcpTransport, type McpTransportOptions } from "./routes/mcp.js";
34
35
  export { createStripeWebhookHandler, type WebhookOptions } from "./routes/webhook.js";
35
36
  export { ensureWebhookEndpoint, BILLING_WEBHOOK_EVENTS, type EnsureWebhookResult, } from "./webhook-setup.js";
36
- export { resolveTax, ensureStripeTaxRate, invalidateTaxRates, invalidateVatNumbers, taxRatesFor, updateCheckoutSessionTaxRates, taxFor, taxModeOf, originFor, invalidateTaxOrigin, type TaxMode, type TaxDecision, type TaxRegistration, type TaxNotes, noteFor, } from "./tax.js";
37
+ export { resolveTax, ensureStripeTaxRate, invalidateTaxRates, invalidateVatNumbers, taxRatesFor, updateCheckoutSessionTaxRates, taxFor, taxModeOf, originFor, invalidateTaxOrigin, type TaxMode, type TaxDecision, type TaxRegistration, type TaxNotes, noteFor, ApproximateTaxError, } from "./tax.js";
37
38
  export { ensureTaxSetup, type TaxRegistrationSpec, type TaxSetupResult, } from "./tax-setup.js";
38
39
  export { checkBillingSetup, checkWorkOSSetup, checkPlansConfig, formatDoctorResult, runBillingDoctor, type RunDoctorOptions, type Check, type CheckLevel, type DoctorResult, } from "./doctor.js";
39
40
  export { sellerRegime, type SellerRegime } from "./tax-regime.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,7 +8,10 @@
8
8
  // nothing that was not already intended public.
9
9
  export * from "./entries/plans.js";
10
10
  // Auth engine
11
- export { authContext, runWithAuth, runWithResolvedOrg, runWithPrincipal, currentPrincipal, enforceAccess, enforceAdmin, enforceCredits, enforceMember, } from "./auth.js";
11
+ export { authContext, runWithAuth, runWithResolvedOrg, runWithPrincipal, currentPrincipal, enforceAccess, enforceAdmin, enforceCredits, enforceMember,
12
+ // Is this org one of ours (an `internalDomains` match)? The metering gate asks it on
13
+ // every call; a consumer deciding whether to show a paywall could not ask it at all.
14
+ isInternalOrg, } from "./auth.js";
12
15
  // The two SDK clients. Both are memoised singletons that read the env lazily,
13
16
  // and they are the only constructors anywhere — including in consuming apps.
14
17
  // A second `new WorkOS(...)` in a route handler is a second client (and, per
@@ -27,7 +30,7 @@ ensurePlans, resolvePlanPrices, invalidatePlanPrices, migrateSubscriptions, plan
27
30
  // The subscription lifecycle: one entry point for up, down and off. Before this,
28
31
  // every plan or seat change opened a fresh Checkout Session and created a SECOND
29
32
  // subscription, so the customer was billed twice.
30
- export { changePlan, cancelPlan, planActions, planRank,
33
+ export { changePlan, cancelPlan,
31
34
  // The READ side of the same arithmetic, and it was missing from this barrel:
32
35
  // `preview_plan_change` used it internally, so an agent could quote a change and
33
36
  // a server action could not. That is the parity rule inverted — a confirm dialog
@@ -52,7 +55,10 @@ export { resolveAllowance, fundingFor, topUpTargetOf, describeDenial,
52
55
  currentCycle, } from "./allowance.js";
53
56
  // The read side of the same arithmetic: what a usage screen shows, per window and
54
57
  // per member, from the numbers the meter itself enforces.
55
- export { usageSummary, memberUsage, resolveSeat, } from "./usage.js";
58
+ export { usageSummary, memberUsage, resolveSeat,
59
+ // Which seat a caller draws, resolved the way the METER resolves it — the answer an
60
+ // allowance read and a badge must agree on. Reachable only through `api.usage.*` before.
61
+ callerWithSeat, } from "./usage.js";
56
62
  // Counting usage separately from moving money — the seam an included window needs.
57
63
  export { stripeBalanceUsageLedger, stripeMeterUsageLedger, stripeUsageLedger, defaultUsageLedger, warnLedgerGaps, ensureMeters, invalidateMeters, USAGE_METER_EVENT, } from "./usage-ledger.js";
58
64
  // The per-caller leg, and the reason this library ships no store at all any more:
@@ -81,7 +87,19 @@ export { meterUsage, createMeter, createApiMeterGuard, } from "./metering.js";
81
87
  // a metadata value actually holds. See the note at the top of topup.ts.
82
88
  export { requestTopUp, listTopUpRequests, approveTopUp, denyTopUp, grantTopUp, grantExtraAllowance, extraAllowance, trimRequestsToBudget, METADATA_VALUE_LIMIT, pendingTopUpFor, requestExtraAllowance, DEFAULT_REQUEST_PERCENT, } from "./topup.js";
83
89
  // Seat-type assignments (per-member seat, stored in org metadata)
84
- export { assignSeatType, listSeatAssignments, getSeatType, } from "./seats.js";
90
+ export { assignSeatType, listSeatAssignments, getSeatType,
91
+ // The ceiling: is this seat purchased, and is the type at its own max. It gates
92
+ // `assign_seat_type` and `api.seats.assign`, and until now a consumer could not ask the
93
+ // question before offering the control — so a picker offered seats the write refused.
94
+ seatAssignable,
95
+ // Everything this member holds in one org, cleared when they leave it.
96
+ clearMemberRecords, } from "./seats.js";
97
+ // The queued ask for a bigger seat or a higher plan. The RUNGS (`nextUsageAsk`,
98
+ // `nextSeatUp`, `isSatisfied`, …) arrive from the pure `/plans` leaf; these five need the
99
+ // adapter because they read and write the queue. The whole module was reachable only as a
100
+ // method on `createBoundApi(...)` — so a consumer holding an adapter could not list, raise
101
+ // or resolve a request without going through the bound API it may not have built.
102
+ export { listPlanRequests, pendingPlanRequest, requestPlanChange, requestSeatChange, resolvePlanRequest, } from "./plan-request.js";
85
103
  // WorkOS magic-auth
86
104
  export { sendMagicAuth, verifyMagicAuth } from "./magic-auth.js";
87
105
  // WorkOS organization invitations (shared, hook-configurable)
@@ -130,7 +148,11 @@ taxFor, taxModeOf,
130
148
  // else the Stripe account's own country. Nothing else may read `tax.origin` — it
131
149
  // decides domestic vs cross-border, which is the whole question a VAT rate turns
132
150
  // on, so a second copy of it is a second answer.
133
- originFor, invalidateTaxOrigin, noteFor, } from "./tax.js";
151
+ originFor, invalidateTaxOrigin, noteFor,
152
+ // Thrown when a charge would carry a rate the library knows to be wrong. A
153
+ // consumer has to be able to CATCH it — an error class reachable from no entry
154
+ // point can only be caught by matching its message, which is not a contract.
155
+ ApproximateTaxError, } from "./tax.js";
134
156
  // Stripe Tax configuration as code (origin address, defaults, registrations).
135
157
  export { ensureTaxSetup, } from "./tax-setup.js";
136
158
  // Preflight for the misconfigurations that fail silently (zero tax, unspecified
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,+EAA+E;AAC/E,kFAAkF;AAClF,mFAAmF;AACnF,mFAAmF;AACnF,6EAA6E;AAC7E,iFAAiF;AACjF,gDAAgD;AAChD,cAAc,oBAAoB,CAAC;AAEnC,cAAc;AACd,OAAO,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EAEZ,cAAc,EACd,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7D,6EAA6E;AAC7E,6EAA6E;AAC7E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GAGxB,MAAM,iBAAiB,CAAC;AAEzB,+BAA+B;AAC/B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EAEtB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAEf,aAAa,EACb,aAAa,EAGb,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,GAGzB,MAAM,cAAc,CAAC;AAEtB,wEAAwE;AACxE,OAAO;AACL,gFAAgF;AAChF,4EAA4E;AAC5E,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,aAAa,EACb,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,YAAY,GAOb,MAAM,YAAY,CAAC;AAEpB,iFAAiF;AACjF,iFAAiF;AACjF,kDAAkD;AAClD,OAAO,EACL,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ;AACR,6EAA6E;AAC7E,iFAAiF;AACjF,iFAAiF;AACjF,mFAAmF;AACnF,2EAA2E;AAC3E,iBAAiB,EACjB,eAAe,GAQhB,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,8EAA8E;AAC9E,wEAAwE;AACxE,8BAA8B;AAC9B,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,sBAAsB;AACtB,+EAA+E;AAC/E,gFAAgF;AAChF,oDAAoD;AACpD,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GAoBjB,MAAM,cAAc,CAAC;AAEtB,kFAAkF;AAClF,2EAA2E;AAC3E,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,cAAc;AACd,8EAA8E;AAC9E,4EAA4E;AAC5E,YAAY,GAMb,MAAM,gBAAgB,CAAC;AACxB,kFAAkF;AAClF,0DAA0D;AAC1D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,GAMZ,MAAM,YAAY,CAAC;AACpB,mFAAmF;AACnF,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,GAKlB,MAAM,mBAAmB,CAAC;AAE3B,kFAAkF;AAClF,kFAAkF;AAClF,kFAAkF;AAClF,mFAAmF;AACnF,wDAAwD;AACxD,EAAE;AACF,mFAAmF;AACnF,sEAAsE;AACtE,iFAAiF;AACjF,gFAAgF;AAChF,kFAAkF;AAClF,8EAA8E;AAC9E,OAAO,EAAE,iBAAiB,EAA0B,MAAM,kBAAkB,CAAC;AAE7E,kFAAkF;AAClF,iEAAiE;AACjE,OAAO,EACL,YAAY,EACZ,gBAAgB,GAKjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,6EAA6E;AAC7E,iFAAiF;AACjF,OAAO,EACL,UAAU,EACV,WAAW,EACX,mBAAmB,GAQpB,MAAM,eAAe,CAAC;AAEvB,gFAAgF;AAChF,gFAAgF;AAChF,kFAAkF;AAClF,wEAAwE;AACxE,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EAEpB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,kEAAkE;AAClE,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEjE,8DAA8D;AAC9D,OAAO,EACL,uBAAuB,GAMxB,MAAM,kBAAkB,CAAC;AAE1B,sEAAsE;AACtE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AAElF,gFAAgF;AAChF,OAAO,EACL,iBAAiB,EACjB,eAAe;AACf,2EAA2E;AAC3E,oDAAoD;AACpD,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,GAIjB,MAAM,WAAW,CAAC;AAEnB,4EAA4E;AAC5E,OAAO,EACL,YAAY,GAKb,MAAM,aAAa,CAAC;AAErB,oBAAoB;AACpB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAG7B,uBAAuB;AACvB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAmB,MAAM,eAAe,CAAC;AAEvF,oEAAoE;AACpE,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC/E,6EAA6E;AAC7E,kFAAkF;AAClF,mFAAmF;AACnF,+EAA+E;AAC/E,iCAAiC;AACjC,OAAO,EAAE,cAAc,EAAsC,MAAM,gBAAgB,CAAC;AAEpF,2EAA2E;AAC3E,OAAO,EACL,eAAe,EACf,gBAAgB,GAMjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,GAInB,MAAM,6BAA6B,CAAC;AAErC,8DAA8D;AAC9D,OAAO,EACL,2BAA2B,EAC3B,eAAe,GAMhB,MAAM,4BAA4B,CAAC;AAEpC,gEAAgE;AAChE,gDAAgD;AAChD,OAAO,EACL,gBAAgB,GAKjB,MAAM,wBAAwB,CAAC;AAEhC,uBAAuB;AACvB,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAmB,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAA4B,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAuB,MAAM,qBAAqB,CAAC;AACtF,uEAAuE;AACvE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAC5B,uFAAuF;AACvF,mEAAmE;AACnE,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,6BAA6B;AAC7B,0EAA0E;AAC1E,MAAM,EACN,SAAS;AACT,iFAAiF;AACjF,iFAAiF;AACjF,iFAAiF;AACjF,iDAAiD;AACjD,SAAS,EACT,mBAAmB,EAKnB,OAAO,GACR,MAAM,UAAU,CAAC;AAClB,8EAA8E;AAC9E,OAAO,EACL,cAAc,GAGf,MAAM,gBAAgB,CAAC;AACxB,gFAAgF;AAChF,6DAA6D;AAC7D,OAAO,EACL,iBAAiB;AACjB,gFAAgF;AAChF,wEAAwE;AACxE,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB;AAClB,iFAAiF;AACjF,8EAA8E;AAC9E,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AACrB,kFAAkF;AAClF,mFAAmF;AACnF,gDAAgD;AAChD,uFAAuF;AACvF,qFAAqF;AACrF,kFAAkF;AAClF,OAAO,EAAE,YAAY,EAAqB,MAAM,iBAAiB,CAAC;AAElE,oFAAoF;AACpF,4EAA4E;AAC5E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAA2B,MAAM,gBAAgB,CAAC;AAE5F,sFAAsF;AACtF,wFAAwF;AACxF,mFAAmF;AACnF,yEAAyE;AACzE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAE9B,mFAAmF;AACnF,iFAAiF;AACjF,0EAA0E;AAC1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,iBAAiB;AACjB,iFAAiF;AACjF,qDAAqD;AACrD,aAAa,GAKd,MAAM,YAAY,CAAC;AAEpB,cAAc;AACd,OAAO,EAAE,uBAAuB,EAAoB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAGL,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,0EAA0E;AAC1E,6EAA6E;AAC7E,kDAAkD;AAClD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,EAC9B,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,kFAAkF;AAClF,kEAAkE;AAClE,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,GAE/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAG5F,OAAO,EACL,cAAc,EACd,yBAAyB,GAG1B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { type PlanCatalog, type PlanModel } from "./plan-model.js";
2
+ /**
3
+ * The seat types a member can BE on, cheapest first.
4
+ *
5
+ * `shared` types are excluded: they are the pool an API caller or a guest draws from, not a
6
+ * rung a person climbs, and including them made "the next seat up" point at something no
7
+ * human can be assigned.
8
+ *
9
+ * This ordering — non-shared, by monthly price — is the definition of "better seat" used by
10
+ * every function below. It is exported because a UI that renders the ladder has to sort it
11
+ * the same way, and the only alternative to publishing the rule is each caller guessing it.
12
+ */
13
+ export declare function seatLadder(model: PlanModel): PlanModel["seatTypes"];
14
+ /**
15
+ * The seat a member holds when nobody has assigned them one: the cheapest non-shared type.
16
+ *
17
+ * An UNASSIGNED member is not on "no seat" — they draw the plan's entry-level pack, which is
18
+ * what the meter measures them against and what their badge says. Treating absent as zero
19
+ * made the ladder offer a Standard member the Standard seat they were already effectively on,
20
+ * which is how this was caught: the button read "Assegna Posto Standard".
21
+ */
22
+ export declare function defaultSeatOf(model: PlanModel): string | null;
23
+ /** What a seat costs per month — the ordering "a better seat" means. An absent assignment
24
+ * resolves to the default seat, not to nothing. */
25
+ export declare function seatRank(model: PlanModel, seatType: string | null): number;
26
+ /** The next seat type up, or null when they are already on the best one. */
27
+ export declare function nextSeatUp(model: PlanModel, seatType: string | null): string | null;
28
+ /**
29
+ * Is this the best seat the plan sells?
30
+ *
31
+ * `nextSeatUp(...) === null` already answered it, but only to a reader who knows that is what
32
+ * null means there. A screen deciding whether to offer an upgrade, and an agent asking the
33
+ * same question over the API, should not both have to know.
34
+ */
35
+ export declare function isTopSeat(model: PlanModel, seatType: string | null): boolean;
36
+ /**
37
+ * Does THIS plan sell that seat type?
38
+ *
39
+ * Against the org's own model, which is the check that was missing: the `assign_seat_type`
40
+ * tool validated against the union of seat keys across every plan in the catalogue, so a
41
+ * Premium key was "valid" for a workspace on a plan that does not sell it, and the write
42
+ * went through to a seat the meter then could not price.
43
+ *
44
+ * `shared` types count — an API caller genuinely holds one — so this is a wider question
45
+ * than `seatLadder`.
46
+ */
47
+ export declare function seatTypeExists(model: PlanModel, seatType: string): boolean;
48
+ /** What a plan costs a month at its default basket — the ordering "a better plan" means.
49
+ * A quote-only plan ranks above everything priced, because nothing self-serve exceeds it. */
50
+ export declare function planRank(model: PlanModel): number;
51
+ export interface PlanActions {
52
+ /** The next plan up, or null when already at the top. */
53
+ upgradeTo: string | null;
54
+ /** The next plan down, or null when already at the bottom. */
55
+ downgradeTo: string | null;
56
+ /** Whether there is a paid subscription to end. False on a free plan — there
57
+ * is nothing to cancel, so the action shouldn't be offered. */
58
+ canCancel: boolean;
59
+ /** The plan a cancellation lands on. */
60
+ cancelTo: string | null;
61
+ }
62
+ /**
63
+ * Which of upgrade / downgrade / cancel apply to an org on `currentPlan`.
64
+ *
65
+ * Pure, so a UI can hide what doesn't apply instead of offering an action that
66
+ * will be refused: no "upgrade" on the top plan, no "cancel" on a free one.
67
+ */
68
+ export declare function planActions(plans: PlanCatalog, currentPlan: string | null): PlanActions;
69
+ export interface PlanRequest {
70
+ id: string;
71
+ /** WorkOS user id of whoever asked. */
72
+ memberId: string;
73
+ /**
74
+ * WHAT they are asking to move: the workspace's plan, or their own seat.
75
+ *
76
+ * They are different asks with different prices and different approvers' reasoning — a
77
+ * seat upgrade costs one seat's difference and affects one person, a plan change moves
78
+ * everybody — but they queue in the same place, because to an owner they are one list of
79
+ * people waiting.
80
+ *
81
+ * Absent means "plan": the field was added after the queue existed, and a stored record
82
+ * without it is a plan request.
83
+ */
84
+ kind?: "plan" | "seat";
85
+ /** The target — a plan key, or a seat-type key when `kind` is "seat". */
86
+ plan: string;
87
+ status: "pending" | "done" | "denied";
88
+ createdAt: string;
89
+ /** Why they are asking, in their words. Optional, capped at 140 chars by the caller. */
90
+ note?: string;
91
+ }
92
+ /** Has the workspace already reached (or passed) what this request asked for? */
93
+ export declare function isSatisfied(request: PlanRequest, plans: PlanCatalog, currentPlan: string | null,
94
+ /** The asker's seat type now — needed only for a seat request. */
95
+ currentSeatType?: string | null): boolean;
96
+ /**
97
+ * WHICH ask to offer someone who is out of usage. One decision, in one place.
98
+ *
99
+ * The ladder climbs the cheapest, most targeted rung first, and each rung exists because the
100
+ * one below it cannot help:
101
+ *
102
+ * 1. a better SEAT — their pack is what their seat includes, so the way to have more of it
103
+ * is a bigger seat. A Standard member should be offered this, never a top-up: topping
104
+ * up buys them a few days and leaves them in the same place next week.
105
+ * 2. CREDITS, where money can actually lift the wall: a `covers: "included"` window paces
106
+ * only what the plan gives away, and a pack whose plan overflows to the wallet is the
107
+ * same statement. Paying works, permanently and without anybody's permission, so
108
+ * asking an owner for a free exception would be the worse of two available answers.
109
+ * 3. extra USAGE on the blocked window — the answer where money CANNOT help: a
110
+ * `covers: "all"` window is the product's own pace and no purchase touches it, so an
111
+ * exception somebody grants is the only door.
112
+ * 4. a PLAN change — for a plan with no per-member allowance at all. A pooled plan's
113
+ * windows belong to the workspace, so there is nothing personal to raise and
114
+ * `grant_top_up` refuses it outright.
115
+ *
116
+ * Rungs 2 and 3 were ONE rung, and it was wrong in whichever direction the deployment went.
117
+ * A plan whose card says pay-as-you-go sent a blocked member to ask an owner for something
118
+ * they could have bought in a click; a plan pacing the product offered credits that lift
119
+ * nothing, taking money for a wall that would still be there. Which of the two applies is
120
+ * not a preference — it is what `covers` says, so it is read rather than configured again.
121
+ *
122
+ * Returns null when nothing is blocked, which is when nothing should be offered — a control
123
+ * permanently on screen asks a question nobody at 40% can answer.
124
+ */
125
+ export declare function nextUsageAsk(model: PlanModel | null, input: {
126
+ /** From `topUpTargetOf` — what, if anything, is refusing them, and whether paying lifts it. */
127
+ blocked: {
128
+ kind: "rate" | "pack";
129
+ covers?: "all" | "included";
130
+ } | null;
131
+ seatType?: string | null;
132
+ plans: PlanCatalog;
133
+ currentPlan?: string | null;
134
+ }): {
135
+ ask: "seat";
136
+ to: string;
137
+ } | {
138
+ ask: "credits";
139
+ } | {
140
+ ask: "usage";
141
+ } | {
142
+ ask: "plan";
143
+ to: string;
144
+ } | null;
145
+ //# sourceMappingURL=ladder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ladder.d.ts","sourceRoot":"","sources":["../src/ladder.ts"],"names":[],"mappings":"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"}
package/dist/ladder.js ADDED
@@ -0,0 +1,196 @@
1
+ import { defaultBasket, exhaustedPolicy, normalizePlans, planModel, } from "./plan-model.js";
2
+ // The RUNGS: what "a better seat" and "a better plan" mean, and which one to offer a
3
+ // member who is blocked.
4
+ //
5
+ // ── Why this is its own module ──────────────────────────────────────────────
6
+ //
7
+ // All of it is arithmetic over the catalogue — a plain object in, a key out, no adapter,
8
+ // no Stripe, no WorkOS. It used to live half in `subscription.ts` (which imports Stripe to
9
+ // move a subscription) and half in `plan-request.ts` (which needs an adapter to queue an
10
+ // ask), so a pricing page, a seat picker or a config file could not reach a single rung
11
+ // without loading the engine. Neither module could put it on the `/plans` leaf, and the
12
+ // leaf is asserted pure — so the ordering rule got re-implemented in consumer UIs instead,
13
+ // once per screen, which is how a seat picker and the meter can disagree about which seat
14
+ // somebody is on.
15
+ //
16
+ // Both former homes re-export from here, so nothing internal moved.
17
+ // ── Seats ───────────────────────────────────────────────────────────────────
18
+ /**
19
+ * The seat types a member can BE on, cheapest first.
20
+ *
21
+ * `shared` types are excluded: they are the pool an API caller or a guest draws from, not a
22
+ * rung a person climbs, and including them made "the next seat up" point at something no
23
+ * human can be assigned.
24
+ *
25
+ * This ordering — non-shared, by monthly price — is the definition of "better seat" used by
26
+ * every function below. It is exported because a UI that renders the ladder has to sort it
27
+ * the same way, and the only alternative to publishing the rule is each caller guessing it.
28
+ */
29
+ export function seatLadder(model) {
30
+ return [...model.seatTypes]
31
+ .filter((s) => !s.shared)
32
+ .sort((a, b) => a.price.monthly - b.price.monthly);
33
+ }
34
+ /**
35
+ * The seat a member holds when nobody has assigned them one: the cheapest non-shared type.
36
+ *
37
+ * An UNASSIGNED member is not on "no seat" — they draw the plan's entry-level pack, which is
38
+ * what the meter measures them against and what their badge says. Treating absent as zero
39
+ * made the ladder offer a Standard member the Standard seat they were already effectively on,
40
+ * which is how this was caught: the button read "Assegna Posto Standard".
41
+ */
42
+ export function defaultSeatOf(model) {
43
+ return seatLadder(model)[0]?.key ?? null;
44
+ }
45
+ /** What a seat costs per month — the ordering "a better seat" means. An absent assignment
46
+ * resolves to the default seat, not to nothing. */
47
+ export function seatRank(model, seatType) {
48
+ const key = seatType ?? defaultSeatOf(model);
49
+ if (!key)
50
+ return 0;
51
+ return model.seatTypes.find((s) => s.key === key)?.price.monthly ?? 0;
52
+ }
53
+ /** The next seat type up, or null when they are already on the best one. */
54
+ export function nextSeatUp(model, seatType) {
55
+ const above = seatLadder(model).filter((s) => s.price.monthly > seatRank(model, seatType));
56
+ return above[0]?.key ?? null;
57
+ }
58
+ /**
59
+ * Is this the best seat the plan sells?
60
+ *
61
+ * `nextSeatUp(...) === null` already answered it, but only to a reader who knows that is what
62
+ * null means there. A screen deciding whether to offer an upgrade, and an agent asking the
63
+ * same question over the API, should not both have to know.
64
+ */
65
+ export function isTopSeat(model, seatType) {
66
+ return seatLadder(model).length > 0 && nextSeatUp(model, seatType) === null;
67
+ }
68
+ /**
69
+ * Does THIS plan sell that seat type?
70
+ *
71
+ * Against the org's own model, which is the check that was missing: the `assign_seat_type`
72
+ * tool validated against the union of seat keys across every plan in the catalogue, so a
73
+ * Premium key was "valid" for a workspace on a plan that does not sell it, and the write
74
+ * went through to a seat the meter then could not price.
75
+ *
76
+ * `shared` types count — an API caller genuinely holds one — so this is a wider question
77
+ * than `seatLadder`.
78
+ */
79
+ export function seatTypeExists(model, seatType) {
80
+ return model.seatTypes.some((s) => s.key === seatType);
81
+ }
82
+ // ── Plans ───────────────────────────────────────────────────────────────────
83
+ /** What a plan costs a month at its default basket — the ordering "a better plan" means.
84
+ * A quote-only plan ranks above everything priced, because nothing self-serve exceeds it. */
85
+ export function planRank(model) {
86
+ if (model.sale === "quote")
87
+ return Number.MAX_SAFE_INTEGER;
88
+ const basket = defaultBasket(model);
89
+ if (model.sells.kind === "flat")
90
+ return model.sells.price.monthly;
91
+ return model.seatTypes.reduce((sum, s) => sum + (basket[s.key] ?? 0) * s.price.monthly, 0);
92
+ }
93
+ /**
94
+ * Which of upgrade / downgrade / cancel apply to an org on `currentPlan`.
95
+ *
96
+ * Pure, so a UI can hide what doesn't apply instead of offering an action that
97
+ * will be refused: no "upgrade" on the top plan, no "cancel" on a free one.
98
+ */
99
+ export function planActions(plans, currentPlan) {
100
+ const models = normalizePlans(plans)
101
+ .filter((m) => m.sale !== "legacy" && !m.display?.hidden)
102
+ .sort((a, b) => planRank(a) - planRank(b));
103
+ const free = models.find((m) => m.sale === "free") ?? null;
104
+ const current = currentPlan ? models.find((m) => m.key === currentPlan) : null;
105
+ // No recorded plan behaves as the free tier: nothing is being billed.
106
+ const rank = current ? planRank(current) : (free ? planRank(free) : 0);
107
+ const above = models.filter((m) => planRank(m) > rank);
108
+ const below = models.filter((m) => planRank(m) < rank);
109
+ const isPaid = current ? current.sells.kind !== "nothing" && current.sale !== "free" : false;
110
+ return {
111
+ upgradeTo: above[0]?.key ?? null,
112
+ downgradeTo: below[below.length - 1]?.key ?? null,
113
+ canCancel: isPaid,
114
+ cancelTo: free?.key ?? null,
115
+ };
116
+ }
117
+ /** Has the workspace already reached (or passed) what this request asked for? */
118
+ export function isSatisfied(request, plans, currentPlan,
119
+ /** The asker's seat type now — needed only for a seat request. */
120
+ currentSeatType) {
121
+ if (request.kind === "seat") {
122
+ const model = currentPlan ? planModel(plans, currentPlan) : null;
123
+ if (!model)
124
+ return false;
125
+ return seatRank(model, currentSeatType ?? null) >= seatRank(model, request.plan);
126
+ }
127
+ const want = planModel(plans, request.plan);
128
+ const have = currentPlan ? planModel(plans, currentPlan) : null;
129
+ if (!want || !have)
130
+ return false;
131
+ return planRank(have) >= planRank(want);
132
+ }
133
+ /**
134
+ * WHICH ask to offer someone who is out of usage. One decision, in one place.
135
+ *
136
+ * The ladder climbs the cheapest, most targeted rung first, and each rung exists because the
137
+ * one below it cannot help:
138
+ *
139
+ * 1. a better SEAT — their pack is what their seat includes, so the way to have more of it
140
+ * is a bigger seat. A Standard member should be offered this, never a top-up: topping
141
+ * up buys them a few days and leaves them in the same place next week.
142
+ * 2. CREDITS, where money can actually lift the wall: a `covers: "included"` window paces
143
+ * only what the plan gives away, and a pack whose plan overflows to the wallet is the
144
+ * same statement. Paying works, permanently and without anybody's permission, so
145
+ * asking an owner for a free exception would be the worse of two available answers.
146
+ * 3. extra USAGE on the blocked window — the answer where money CANNOT help: a
147
+ * `covers: "all"` window is the product's own pace and no purchase touches it, so an
148
+ * exception somebody grants is the only door.
149
+ * 4. a PLAN change — for a plan with no per-member allowance at all. A pooled plan's
150
+ * windows belong to the workspace, so there is nothing personal to raise and
151
+ * `grant_top_up` refuses it outright.
152
+ *
153
+ * Rungs 2 and 3 were ONE rung, and it was wrong in whichever direction the deployment went.
154
+ * A plan whose card says pay-as-you-go sent a blocked member to ask an owner for something
155
+ * they could have bought in a click; a plan pacing the product offered credits that lift
156
+ * nothing, taking money for a wall that would still be there. Which of the two applies is
157
+ * not a preference — it is what `covers` says, so it is read rather than configured again.
158
+ *
159
+ * Returns null when nothing is blocked, which is when nothing should be offered — a control
160
+ * permanently on screen asks a question nobody at 40% can answer.
161
+ */
162
+ export function nextUsageAsk(model, input) {
163
+ if (!input.blocked)
164
+ return null;
165
+ // Can the customer pay their own way past this? Two conditions, and both are necessary:
166
+ // the plan has to SELL credits, and the wall has to be one credits reach. A pack is
167
+ // reachable when the plan overflows to the wallet; a rate window only when it covers the
168
+ // included allowance alone.
169
+ const sellsCredits = Boolean(model?.replenish?.purchase || model?.replenish?.autoReload);
170
+ const payable = sellsCredits &&
171
+ (input.blocked.kind === "pack"
172
+ // Through `exhaustedPolicy`, not `cap.onExhausted`: an agent and a shared seat always
173
+ // overflow to the wallet whatever the cap declares, and a `cap: wallet` plan has no
174
+ // `onExhausted` field at all.
175
+ ? exhaustedPolicy(model, { seatType: input.seatType ?? undefined }) === "wallet"
176
+ : input.blocked.covers === "included");
177
+ if (model?.sells.kind === "seats") {
178
+ const better = nextSeatUp(model, input.seatType ?? null);
179
+ // The seat still comes first, even when credits would work: it raises the pack AND the
180
+ // pace every cycle, where credits are this week's answer bought again next week.
181
+ if (better)
182
+ return { ask: "seat", to: better };
183
+ // On the best seat: buy more if that is possible, otherwise ask for an exception.
184
+ return payable ? { ask: "credits" } : { ask: "usage" };
185
+ }
186
+ // A pooled plan has nothing personal to raise — but if it sells credits and the pool
187
+ // overflows to the wallet, paying is still a real answer and a better one than asking
188
+ // the workspace to change plan.
189
+ if (payable)
190
+ return { ask: "credits" };
191
+ // No seats, so nothing per-member to raise. The only route is the workspace buying more
192
+ // product — and if there is nothing above them, there is nothing to offer at all.
193
+ const up = planActions(input.plans, input.currentPlan ?? null).upgradeTo;
194
+ return up ? { ask: "plan", to: up } : null;
195
+ }
196
+ //# sourceMappingURL=ladder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ladder.js","sourceRoot":"","sources":["../src/ladder.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,7 @@
1
- import { type PlanCatalog, type PlanModel } from "./plan-model.js";
1
+ import { type PlanRequest } from "./ladder.js";
2
+ import { type PlanCatalog } from "./plan-model.js";
2
3
  import type { BillingAdapter } from "./types.js";
3
- export interface PlanRequest {
4
- id: string;
5
- /** WorkOS user id of whoever asked. */
6
- memberId: string;
7
- /**
8
- * WHAT they are asking to move: the workspace's plan, or their own seat.
9
- *
10
- * They are different asks with different prices and different approvers' reasoning — a
11
- * seat upgrade costs one seat's difference and affects one person, a plan change moves
12
- * everybody — but they queue in the same place, because to an owner they are one list of
13
- * "people who need more". Absent means `plan`, so records written before seats existed
14
- * still read.
15
- */
16
- kind?: "plan" | "seat";
17
- /** The plan, or the seat type, they are asking to move to. */
18
- plan: string;
19
- status: "pending" | "done" | "denied";
20
- createdAt: string;
21
- /** Free text from the asker, trimmed hard — this shares one metadata value. */
22
- note?: string;
23
- }
4
+ export { defaultSeatOf, isSatisfied, isTopSeat, nextSeatUp, nextUsageAsk, seatLadder, seatRank, seatTypeExists, type PlanRequest, } from "./ladder.js";
24
5
  /** Every request, newest first. */
25
6
  export declare function listPlanRequests(adapter: BillingAdapter, orgId: string): Promise<PlanRequest[]>;
26
7
  /**
@@ -34,24 +15,6 @@ export declare function pendingPlanRequest(adapter: BillingAdapter, orgId: strin
34
15
  currentPlan?: string | null;
35
16
  currentSeatType?: string | null;
36
17
  }): Promise<PlanRequest | null>;
37
- /** Has the workspace already reached (or passed) what this request asked for? */
38
- export declare function isSatisfied(request: PlanRequest, plans: PlanCatalog, currentPlan: string | null,
39
- /** The asker's seat type now — needed only for a seat request. */
40
- currentSeatType?: string | null): boolean;
41
- /**
42
- * The seat a member holds when nobody has assigned them one: the cheapest non-shared type.
43
- *
44
- * An UNASSIGNED member is not on "no seat" — they draw the plan's entry-level pack, which is
45
- * what the meter measures them against and what their badge says. Treating absent as zero
46
- * made the ladder offer a Standard member the Standard seat they were already effectively on,
47
- * which is how this was caught: the button read "Assegna Posto Standard".
48
- */
49
- export declare function defaultSeatOf(model: PlanModel): string | null;
50
- /** What a seat costs per month — the ordering "a better seat" means. An absent assignment
51
- * resolves to the default seat, not to nothing. */
52
- export declare function seatRank(model: PlanModel, seatType: string | null): number;
53
- /** The next seat type up, or null when they are already on the best one. */
54
- export declare function nextSeatUp(model: PlanModel, seatType: string | null): string | null;
55
18
  /**
56
19
  * Ask to move up a SEAT — the answer when a better seat exists.
57
20
  *
@@ -109,53 +72,4 @@ export declare function requestPlanChange(adapter: BillingAdapter, orgId: string
109
72
  * reading of "approve".
110
73
  */
111
74
  export declare function resolvePlanRequest(adapter: BillingAdapter, orgId: string, requestId: string, status: "done" | "denied"): Promise<PlanRequest | null>;
112
- /**
113
- * WHICH ask to offer someone who is out of usage. One decision, in one place.
114
- *
115
- * The ladder climbs the cheapest, most targeted rung first, and each rung exists because the
116
- * one below it cannot help:
117
- *
118
- * 1. a better SEAT — their pack is what their seat includes, so the way to have more of it
119
- * is a bigger seat. A Standard member should be offered this, never a top-up: topping
120
- * up buys them a few days and leaves them in the same place next week.
121
- * 2. CREDITS, where money can actually lift the wall: a `covers: "included"` window paces
122
- * only what the plan gives away, and a pack whose plan overflows to the wallet is the
123
- * same statement. Paying works, permanently and without anybody's permission, so
124
- * asking an owner for a free exception would be the worse of two available answers.
125
- * 3. extra USAGE on the blocked window — the answer where money CANNOT help: a
126
- * `covers: "all"` window is the product's own pace and no purchase touches it, so an
127
- * exception somebody grants is the only door.
128
- * 4. a PLAN change — for a plan with no per-member allowance at all. A pooled plan's
129
- * windows belong to the workspace, so there is nothing personal to raise and
130
- * `grant_top_up` refuses it outright.
131
- *
132
- * Rungs 2 and 3 were ONE rung, and it was wrong in whichever direction the deployment went.
133
- * A plan whose card says pay-as-you-go sent a blocked member to ask an owner for something
134
- * they could have bought in a click; a plan pacing the product offered credits that lift
135
- * nothing, taking money for a wall that would still be there. Which of the two applies is
136
- * not a preference — it is what `covers` says, so it is read rather than configured again.
137
- *
138
- * Returns null when nothing is blocked, which is when nothing should be offered — a control
139
- * permanently on screen asks a question nobody at 40% can answer.
140
- */
141
- export declare function nextUsageAsk(model: PlanModel | null, input: {
142
- /** From `topUpTargetOf` — what, if anything, is refusing them, and whether paying lifts it. */
143
- blocked: {
144
- kind: "rate" | "pack";
145
- covers?: "all" | "included";
146
- } | null;
147
- seatType?: string | null;
148
- plans: PlanCatalog;
149
- currentPlan?: string | null;
150
- }): {
151
- ask: "seat";
152
- to: string;
153
- } | {
154
- ask: "credits";
155
- } | {
156
- ask: "usage";
157
- } | {
158
- ask: "plan";
159
- to: string;
160
- } | null;
161
75
  //# sourceMappingURL=plan-request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-request.d.ts","sourceRoot":"","sources":["../src/plan-request.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA4BjD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAsDD,mCAAmC;AACnC,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAErG;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzF,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAI7B;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,MAAM,GAAG,IAAI;AAC1B,kEAAkE;AAClE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAUT;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAK7D;AAED;oDACoD;AACpD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAI1E;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMnF;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACA,OAAO,CAAC;IACT,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAAG,YAAY,CAAC;CAC7F,CAAC,CA4BD;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACA,OAAO,CAAC;IACT,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAAG,YAAY,CAAC;CAC7F,CAAC,CAsCD;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,QAAQ,GACxB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,KAAK,EAAE;IACL,+FAA+F;IAC/F,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,GACA;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmC1G"}
1
+ {"version":3,"file":"plan-request.d.ts","sourceRoot":"","sources":["../src/plan-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD,OAAO,EACL,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,cAAc,EACd,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AAgFrB,mCAAmC;AACnC,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAErG;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzF,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAI7B;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACA,OAAO,CAAC;IACT,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAAG,YAAY,CAAC;CAC7F,CAAC,CA4BD;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACA,OAAO,CAAC;IACT,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAAG,YAAY,CAAC;CAC7F,CAAC,CAsCD;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,QAAQ,GACxB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW7B"}
@@ -1,5 +1,9 @@
1
- import { planActions, planRank } from "./subscription.js";
2
- import { exhaustedPolicy, normalizePlans, planModel } from "./plan-model.js";
1
+ import { isSatisfied, nextSeatUp, planActions, seatRank, } from "./ladder.js";
2
+ import { normalizePlans, planModel } from "./plan-model.js";
3
+ // The rungs themselves are pure arithmetic and live in `ladder.ts`, which a pricing page or
4
+ // a seat picker can import without this module's adapter. Re-exported here so every existing
5
+ // import path keeps working.
6
+ export { defaultSeatOf, isSatisfied, isTopSeat, nextSeatUp, nextUsageAsk, seatLadder, seatRank, seatTypeExists, } from "./ladder.js";
3
7
  // "Can we move up a plan?" — the ask a member makes when extra allowance is not the answer.
4
8
  //
5
9
  // ── Why this is not a top-up ────────────────────────────────────────────────
@@ -91,52 +95,6 @@ export async function pendingPlanRequest(adapter, orgId, memberId, opts) {
91
95
  return null;
92
96
  return isSatisfied(open, opts.plans, opts.currentPlan ?? null, opts.currentSeatType ?? null) ? null : open;
93
97
  }
94
- /** Has the workspace already reached (or passed) what this request asked for? */
95
- export function isSatisfied(request, plans, currentPlan,
96
- /** The asker's seat type now — needed only for a seat request. */
97
- currentSeatType) {
98
- if (request.kind === "seat") {
99
- const model = currentPlan ? planModel(plans, currentPlan) : null;
100
- if (!model)
101
- return false;
102
- return seatRank(model, currentSeatType ?? null) >= seatRank(model, request.plan);
103
- }
104
- const want = planModel(plans, request.plan);
105
- const have = currentPlan ? planModel(plans, currentPlan) : null;
106
- if (!want || !have)
107
- return false;
108
- return planRank(have) >= planRank(want);
109
- }
110
- /**
111
- * The seat a member holds when nobody has assigned them one: the cheapest non-shared type.
112
- *
113
- * An UNASSIGNED member is not on "no seat" — they draw the plan's entry-level pack, which is
114
- * what the meter measures them against and what their badge says. Treating absent as zero
115
- * made the ladder offer a Standard member the Standard seat they were already effectively on,
116
- * which is how this was caught: the button read "Assegna Posto Standard".
117
- */
118
- export function defaultSeatOf(model) {
119
- const ladder = [...model.seatTypes]
120
- .filter((s) => !s.shared)
121
- .sort((a, b) => a.price.monthly - b.price.monthly);
122
- return ladder[0]?.key ?? null;
123
- }
124
- /** What a seat costs per month — the ordering "a better seat" means. An absent assignment
125
- * resolves to the default seat, not to nothing. */
126
- export function seatRank(model, seatType) {
127
- const key = seatType ?? defaultSeatOf(model);
128
- if (!key)
129
- return 0;
130
- return model.seatTypes.find((s) => s.key === key)?.price.monthly ?? 0;
131
- }
132
- /** The next seat type up, or null when they are already on the best one. */
133
- export function nextSeatUp(model, seatType) {
134
- const ladder = [...model.seatTypes]
135
- .filter((s) => !s.shared)
136
- .sort((a, b) => a.price.monthly - b.price.monthly);
137
- const above = ladder.filter((s) => s.price.monthly > seatRank(model, seatType));
138
- return above[0]?.key ?? null;
139
- }
140
98
  /**
141
99
  * Ask to move up a SEAT — the answer when a better seat exists.
142
100
  *
@@ -238,67 +196,4 @@ export async function resolvePlanRequest(adapter, orgId, requestId, status) {
238
196
  await write(adapter, orgId, list.map((r) => (r.id === requestId ? updated : r)));
239
197
  return updated;
240
198
  }
241
- /**
242
- * WHICH ask to offer someone who is out of usage. One decision, in one place.
243
- *
244
- * The ladder climbs the cheapest, most targeted rung first, and each rung exists because the
245
- * one below it cannot help:
246
- *
247
- * 1. a better SEAT — their pack is what their seat includes, so the way to have more of it
248
- * is a bigger seat. A Standard member should be offered this, never a top-up: topping
249
- * up buys them a few days and leaves them in the same place next week.
250
- * 2. CREDITS, where money can actually lift the wall: a `covers: "included"` window paces
251
- * only what the plan gives away, and a pack whose plan overflows to the wallet is the
252
- * same statement. Paying works, permanently and without anybody's permission, so
253
- * asking an owner for a free exception would be the worse of two available answers.
254
- * 3. extra USAGE on the blocked window — the answer where money CANNOT help: a
255
- * `covers: "all"` window is the product's own pace and no purchase touches it, so an
256
- * exception somebody grants is the only door.
257
- * 4. a PLAN change — for a plan with no per-member allowance at all. A pooled plan's
258
- * windows belong to the workspace, so there is nothing personal to raise and
259
- * `grant_top_up` refuses it outright.
260
- *
261
- * Rungs 2 and 3 were ONE rung, and it was wrong in whichever direction the deployment went.
262
- * A plan whose card says pay-as-you-go sent a blocked member to ask an owner for something
263
- * they could have bought in a click; a plan pacing the product offered credits that lift
264
- * nothing, taking money for a wall that would still be there. Which of the two applies is
265
- * not a preference — it is what `covers` says, so it is read rather than configured again.
266
- *
267
- * Returns null when nothing is blocked, which is when nothing should be offered — a control
268
- * permanently on screen asks a question nobody at 40% can answer.
269
- */
270
- export function nextUsageAsk(model, input) {
271
- if (!input.blocked)
272
- return null;
273
- // Can the customer pay their own way past this? Two conditions, and both are necessary:
274
- // the plan has to SELL credits, and the wall has to be one credits reach. A pack is
275
- // reachable when the plan overflows to the wallet; a rate window only when it covers the
276
- // included allowance alone.
277
- const sellsCredits = Boolean(model?.replenish?.purchase || model?.replenish?.autoReload);
278
- const payable = sellsCredits &&
279
- (input.blocked.kind === "pack"
280
- // Through `exhaustedPolicy`, not `cap.onExhausted`: an agent and a shared seat always
281
- // overflow to the wallet whatever the cap declares, and a `cap: wallet` plan has no
282
- // `onExhausted` field at all.
283
- ? exhaustedPolicy(model, { seatType: input.seatType ?? undefined }) === "wallet"
284
- : input.blocked.covers === "included");
285
- if (model?.sells.kind === "seats") {
286
- const better = nextSeatUp(model, input.seatType ?? null);
287
- // The seat still comes first, even when credits would work: it raises the pack AND the
288
- // pace every cycle, where credits are this week's answer bought again next week.
289
- if (better)
290
- return { ask: "seat", to: better };
291
- // On the best seat: buy more if that is possible, otherwise ask for an exception.
292
- return payable ? { ask: "credits" } : { ask: "usage" };
293
- }
294
- // A pooled plan has nothing personal to raise — but if it sells credits and the pool
295
- // overflows to the wallet, paying is still a real answer and a better one than asking
296
- // the workspace to change plan.
297
- if (payable)
298
- return { ask: "credits" };
299
- // No seats, so nothing per-member to raise. The only route is the workspace buying more
300
- // product — and if there is nothing above them, there is nothing to offer at all.
301
- const up = planActions(input.plans, input.currentPlan ?? null).upgradeTo;
302
- return up ? { ask: "plan", to: up } : null;
303
- }
304
199
  //# sourceMappingURL=plan-request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-request.js","sourceRoot":"","sources":["../src/plan-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-request.js","sourceRoot":"","sources":["../src/plan-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,UAAU,EACV,WAAW,EACX,QAAQ,GAET,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAG9E,4FAA4F;AAC5F,6FAA6F;AAC7F,6BAA6B;AAC7B,OAAO,EACL,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,cAAc,GAEf,MAAM,aAAa,CAAC;AAErB,4FAA4F;AAC5F,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,2FAA2F;AAC3F,oFAAoF;AACpF,4FAA4F;AAC5F,4FAA4F;AAC5F,oFAAoF;AACpF,EAAE;AACF,6FAA6F;AAC7F,4FAA4F;AAC5F,6FAA6F;AAC7F,mFAAmF;AACnF,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,4FAA4F;AAC5F,4FAA4F;AAC5F,wFAAwF;AACxF,4FAA4F;AAE5F,MAAM,YAAY,GAAG,gBAAgB,CAAC;AACtC,+FAA+F;AAC/F,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,KAAK,UAAU,IAAI,CAAC,OAAuB,EAAE,KAAa;IACxD,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,CAAkB,CAAC;QACrE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,IAAI,CAAC,IAAmB;IAC/B,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAC1E,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,IAAI,IAAI,GAAG,cAAc,CAAC;IAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAE3D,MAAM,KAAK,GAAG,CAAC,CAAc,EAAE,EAAE;QAC/B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,IAAmB,CAAC;IAC7B,CAAC,CAAC;IACF,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,SAAS,KAAK,CAAC,CAAC;YAAE,MAAM;QAC5B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW;QAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,OAAuB,EAAE,KAAa,EAAE,IAAmB;IAC9E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAuB,EAAE,KAAa;IAC3E,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAuB,EACvB,KAAa,EACb,QAAgB,EAChB,IAA0F;IAE1F,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACzG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7G,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,KAAa,EACb,KAUC;IAQD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvF,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC;IAClF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACxD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACjG,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACvF,IAAI,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAE9F,MAAM,OAAO,GAAgB;QAC3B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE;QACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;QAC1D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;IACF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,KAAa,EACb,KASC;IAQD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC;IAC7E,0FAA0F;IAC1F,4DAA4D;IAC5D,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACxD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAE7G,MAAM,IAAI,GAAgB;QACxB,EAAE,EAAE,EAAE;QACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,EAAE;KACd,CAAC;IACF,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAE7G,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,4FAA4F;IAC5F,oFAAoF;IACpF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACvF,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAClF,CAAC;IAED,MAAM,OAAO,GAAgB;QAC3B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE;QACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;QAC1D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;IACF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAuB,EACvB,KAAa,EACb,SAAiB,EACjB,MAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;IACrC,MAAM,KAAK,CACT,OAAO,EACP,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type BillingInterval, type PlanCatalog, type PlanModel, type Quantities } from "./plans.js";
1
+ import { type BillingInterval, type PlanCatalog, type Quantities } from "./plans.js";
2
2
  import type { BillingAdapter, ResolvedConfig } from "./types.js";
3
3
  export type PlanChangeTiming = "auto" | "now" | "period_end";
4
4
  export type ProrationPolicy = "next_invoice" | "invoice_now" | "none";
@@ -47,27 +47,7 @@ export declare class PlanChangeError extends Error {
47
47
  readonly detail?: unknown | undefined;
48
48
  constructor(code: PlanChangeErrorCode, message: string, detail?: unknown | undefined);
49
49
  }
50
- /** What a plan costs per month for its default basket — the ordering a UI means
51
- * by "higher" and "lower". A quoted plan sorts above every priced one. */
52
- export declare function planRank(model: PlanModel): number;
53
- export interface PlanActions {
54
- /** The next plan up, or null when already at the top. */
55
- upgradeTo: string | null;
56
- /** The next plan down, or null when already at the bottom. */
57
- downgradeTo: string | null;
58
- /** Whether there is a paid subscription to end. False on a free plan — there
59
- * is nothing to cancel, so the action shouldn't be offered. */
60
- canCancel: boolean;
61
- /** The plan a cancellation lands on. */
62
- cancelTo: string | null;
63
- }
64
- /**
65
- * Which of upgrade / downgrade / cancel apply to an org on `currentPlan`.
66
- *
67
- * Pure, so a UI can hide what doesn't apply instead of offering an action that
68
- * will be refused: no "upgrade" on the top plan, no "cancel" on a free one.
69
- */
70
- export declare function planActions(plans: PlanCatalog, currentPlan: string | null): PlanActions;
50
+ export { planActions, planRank, type PlanActions } from "./ladder.js";
71
51
  export declare function changePlan(adapter: BillingAdapter, orgId: string, opts: {
72
52
  plans: PlanCatalog;
73
53
  to: {
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
@@ -34,40 +34,11 @@ function periodEndOf(sub) {
34
34
  .filter((v) => !!v);
35
35
  return ends.length ? new Date(Math.max(...ends) * 1000).toISOString() : null;
36
36
  }
37
- /** What a plan costs per month for its default basket the ordering a UI means
38
- * by "higher" and "lower". A quoted plan sorts above every priced one. */
39
- export function planRank(model) {
40
- if (model.sale === "quote")
41
- return Number.MAX_SAFE_INTEGER;
42
- const basket = defaultBasket(model);
43
- if (model.sells.kind === "flat")
44
- return model.sells.price.monthly;
45
- return model.seatTypes.reduce((sum, s) => sum + (basket[s.key] ?? 0) * s.price.monthly, 0);
46
- }
47
- /**
48
- * Which of upgrade / downgrade / cancel apply to an org on `currentPlan`.
49
- *
50
- * Pure, so a UI can hide what doesn't apply instead of offering an action that
51
- * will be refused: no "upgrade" on the top plan, no "cancel" on a free one.
52
- */
53
- export function planActions(plans, currentPlan) {
54
- const models = normalizePlans(plans)
55
- .filter((m) => m.sale !== "legacy" && !m.display?.hidden)
56
- .sort((a, b) => planRank(a) - planRank(b));
57
- const free = models.find((m) => m.sale === "free") ?? null;
58
- const current = currentPlan ? models.find((m) => m.key === currentPlan) : null;
59
- // No recorded plan behaves as the free tier: nothing is being billed.
60
- const rank = current ? planRank(current) : (free ? planRank(free) : 0);
61
- const above = models.filter((m) => planRank(m) > rank);
62
- const below = models.filter((m) => planRank(m) < rank);
63
- const isPaid = current ? current.sells.kind !== "nothing" && current.sale !== "free" : false;
64
- return {
65
- upgradeTo: above[0]?.key ?? null,
66
- downgradeTo: below[below.length - 1]?.key ?? null,
67
- canCancel: isPaid,
68
- cancelTo: free?.key ?? null,
69
- };
70
- }
37
+ // `planRank` / `planActions` are pure catalogue arithmetic and now live in `ladder.ts`
38
+ // beside the seat rungs, so a pricing page can order plans without importing Stripe.
39
+ // Re-exported here because this is where every consumer has always imported them from.
40
+ export { planActions, planRank } from "./ladder.js";
41
+ import { planRank } from "./ladder.js";
71
42
  async function liveSubscriptions(customerId) {
72
43
  const out = [];
73
44
  for await (const sub of getStripe().subscriptions.list({
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arnaudjnn/billing-tools",
3
- "version": "15.23.0",
3
+ "version": "15.24.0",
4
4
  "description": "The get-paid engine for Stripe + WorkOS apps, for humans and AI agents. Drop-in API-key auth, credit + subscription billing, auth.md agent registration, and MPP machine payments, as MCP tools, a REST API, and a CLI. Framework-agnostic, storage-pluggable.",
5
5
  "license": "MIT",
6
6
  "author": "Arnaud Jeannin",
@@ -98,7 +98,7 @@
98
98
  "access": "public"
99
99
  },
100
100
  "scripts": {
101
- "build": "tsc",
101
+ "build": "npm run clean && tsc",
102
102
  "typecheck": "tsc --noEmit",
103
103
  "clean": "rm -rf dist",
104
104
  "prepublishOnly": "npm run build",