@arnaudjnn/billing-tools 0.61.0 → 0.62.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,27 @@
1
- import { type CycleWindow, type PlanCatalog, type PlanModel } from "./plan-model.js";
1
+ import { type CycleWindow, type Every, type PlanCatalog, type PlanModel } from "./plan-model.js";
2
2
  import type { BillingAdapter, ResolvedConfig } from "./types.js";
3
3
  import { type FundingSource, type UsageLedger } from "./usage-ledger.js";
4
+ /** One declared rate limit, with the window it is being measured over. */
5
+ export interface LimitState {
6
+ every: Every;
7
+ scope: "org" | "caller";
8
+ /** From the config; null when the plan didn't label it. */
9
+ label: string | null;
10
+ size: number;
11
+ used: number;
12
+ remaining: number;
13
+ /** The aligned window. `end` is always known, so a UI can count down to it. */
14
+ window: CycleWindow;
15
+ }
4
16
  export interface AllowanceState {
5
17
  plan: string | null;
6
18
  cycle: CycleWindow;
19
+ /**
20
+ * Every rate limit that applies right now, in config order. A call must fit
21
+ * inside ALL of them; unlike pool/pack/wallet these fund nothing, they only
22
+ * refuse.
23
+ */
24
+ limits: LimitState[];
7
25
  /** The org-wide included window, when the plan has one. */
8
26
  pool: {
9
27
  size: number;
@@ -39,6 +57,9 @@ export interface AllowanceInput {
39
57
  ledger?: UsageLedger;
40
58
  /** Skip the wallet read — for a caller that only needs the entitlement. */
41
59
  skipWallet?: boolean;
60
+ /** Pin the clock. Every rate window is derived from it, so a test can place
61
+ * itself inside a window instead of waiting for one. Defaults to now. */
62
+ now?: number;
42
63
  }
43
64
  /**
44
65
  * Everything needed to decide whether a call is allowed, read in as few round
@@ -50,11 +71,13 @@ export interface AllowanceInput {
50
71
  * with no subscription, which is what this library always did.
51
72
  */
52
73
  export declare function resolveAllowance(adapter: BillingAdapter, config: ResolvedConfig, input: AllowanceInput): Promise<AllowanceState>;
53
- export type DenialReason = "pool_exhausted" | "seat_allowance_reached" | "insufficient_balance";
74
+ export type DenialReason = "rate_limit_reached" | "pool_exhausted" | "seat_allowance_reached" | "insufficient_balance";
54
75
  export interface FundingDecision {
55
76
  ok: boolean;
56
77
  source: FundingSource | null;
57
78
  reason?: DenialReason;
79
+ /** Which limit refused, when the reason is `rate_limit_reached`. */
80
+ limit?: LimitState;
58
81
  }
59
82
  /**
60
83
  * Which allowance pays for `cost` — or why nothing does.
@@ -77,5 +100,5 @@ export declare function fundingFor(state: AllowanceState, model: PlanModel | nul
77
100
  seatType?: string;
78
101
  }): FundingDecision;
79
102
  /** Human-readable, for a 402 body or a tool result. */
80
- export declare function describeDenial(reason: DenialReason, state: AllowanceState): string;
103
+ export declare function describeDenial(reason: DenialReason, state: AllowanceState, limit?: LimitState): string;
81
104
  //# sourceMappingURL=allowance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"allowance.d.ts","sourceRoot":"","sources":["../src/allowance.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAA4B,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWnG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,2DAA2D;IAC3D,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,kFAAkF;IAClF,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,yDAAyD;QACzD,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,cAAc,CAAC,CA2DzB;AAmBD,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,eAAe,CAmBjB;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CASlF"}
1
+ {"version":3,"file":"allowance.d.ts","sourceRoot":"","sources":["../src/allowance.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAA4B,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWnG,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC;IACxB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB;;;;OAIG;IACH,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,2DAA2D;IAC3D,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,kFAAkF;IAClF,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,yDAAyD;QACzD,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;8EAC0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,cAAc,CAAC,CA6FzB;AAwBD,MAAM,MAAM,YAAY,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,oEAAoE;IACpE,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,eAAe,CA+BjB;AAYD,uDAAuD;AACvD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,CAAC,EAAE,UAAU,GACjB,MAAM,CAeR"}
package/dist/allowance.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getBillingCustomerId, getTokenBalance } from "./billing.js";
2
- import { cycleWindowFor, exhaustedPolicy, packSizeOf, planModel, poolSizeOf, } from "./plan-model.js";
2
+ import { cycleWindowFor, exhaustedPolicy, packSizeOf, planModel, poolSizeOf, rateLimitsOf, rateWindowFor, } from "./plan-model.js";
3
3
  import { extraAllowance } from "./topup.js";
4
4
  import { stripeBalanceUsageLedger } from "./usage-ledger.js";
5
5
  /**
@@ -13,16 +13,46 @@ import { stripeBalanceUsageLedger } from "./usage-ledger.js";
13
13
  */
14
14
  export async function resolveAllowance(adapter, config, input) {
15
15
  const model = planModel(input.plans, input.plan ?? null);
16
+ const now = input.now ?? Date.now();
16
17
  const customerId = input.customerId ?? (await getBillingCustomerId(adapter, input.orgId));
17
18
  const period = await subscriptionPeriod(adapter, input.orgId, model);
18
- const cycle = input.cycle ?? cycleWindowFor(model, period);
19
+ const cycle = input.cycle ?? cycleWindowFor(model, period, now);
19
20
  const ledger = input.ledger ?? stripeBalanceUsageLedger();
20
21
  if (!customerId) {
21
- return { plan: model?.key ?? null, cycle, pool: null, pack: null, wallet: 0 };
22
+ return { plan: model?.key ?? null, cycle, limits: [], pool: null, pack: null, wallet: 0 };
22
23
  }
23
24
  const poolSize = poolSizeOf(model);
24
25
  const packSize = packSizeOf(model, input.caller?.seatType);
25
- const [wallet, poolUsed, packUsed, extra] = await Promise.all([
26
+ // Each applicable limit is one more summed read over its own window. They go
27
+ // in the same round of parallel reads as the pool and the pack, so a plan with
28
+ // an hourly + weekly + monthly limit costs the meter latency, not four times it.
29
+ const rateLimits = rateLimitsOf(model, input.caller);
30
+ const limitReads = rateLimits.map((limit) => {
31
+ const scope = limit.scope ?? "org";
32
+ const window = rateWindowFor(limit.every, now, cycle);
33
+ return ledger
34
+ .total({
35
+ orgId: input.orgId,
36
+ customerId,
37
+ start: window.start,
38
+ end: window.end ?? undefined,
39
+ filter: scope === "caller"
40
+ ? input.caller?.kind === "api"
41
+ ? { callerKind: "api" }
42
+ : { callerKind: "user", callerId: input.caller?.id }
43
+ : undefined,
44
+ })
45
+ .then((used) => ({
46
+ every: limit.every,
47
+ scope,
48
+ label: limit.label ?? null,
49
+ size: limit.tokens,
50
+ used,
51
+ remaining: Math.max(0, limit.tokens - used),
52
+ window,
53
+ }));
54
+ });
55
+ const [wallet, poolUsed, packUsed, extra, limits] = await Promise.all([
26
56
  input.skipWallet ? Promise.resolve(0) : getTokenBalance(customerId, config.currency),
27
57
  poolSize == null
28
58
  ? Promise.resolve(0)
@@ -45,10 +75,12 @@ export async function resolveAllowance(adapter, config, input) {
45
75
  packSize == null || input.caller?.kind !== "user" || !input.caller.id
46
76
  ? Promise.resolve(0)
47
77
  : extraAllowance(adapter, input.orgId, input.caller.id, cycle.key),
78
+ Promise.all(limitReads),
48
79
  ]);
49
80
  return {
50
81
  plan: model?.key ?? null,
51
82
  cycle,
83
+ limits,
52
84
  pool: poolSize == null
53
85
  ? null
54
86
  : { size: poolSize, used: poolUsed, remaining: Math.max(0, poolSize - poolUsed) },
@@ -67,7 +99,12 @@ export async function resolveAllowance(adapter, config, input) {
67
99
  /** The subscription's current period, when the adapter can tell us and the plan
68
100
  * actually needs it (only a window does). */
69
101
  async function subscriptionPeriod(adapter, orgId, model) {
70
- if (!model || model.cap.kind === "wallet")
102
+ if (!model)
103
+ return null;
104
+ // A `cycle` rate limit needs the period just as much as a cap does; without
105
+ // this it would silently fall back to the calendar month.
106
+ const needsPeriod = model.cap.kind !== "wallet" || model.limits.rate.some((l) => l.every === "cycle");
107
+ if (!needsPeriod)
71
108
  return null;
72
109
  if (!adapter.getSubscription)
73
110
  return null;
@@ -98,6 +135,17 @@ async function subscriptionPeriod(adapter, orgId, model) {
98
135
  export function fundingFor(state, model, cost, caller) {
99
136
  if (cost <= 0)
100
137
  return { ok: true, source: null };
138
+ // Rate limits come FIRST and are absolute. They are not a funding source and
139
+ // nothing overrides them: no wallet fallthrough (a limit a top-up could lift is
140
+ // not a limit) and no exemption for a shared seat, because the thing being
141
+ // protected is the product, not the customer's money. The tightest window that
142
+ // refuses is the one reported, so the message names a week rather than a month
143
+ // when the week is what ran out.
144
+ for (const limit of state.limits) {
145
+ if (limit.remaining < cost) {
146
+ return { ok: false, source: null, reason: "rate_limit_reached", limit };
147
+ }
148
+ }
101
149
  if (state.pool) {
102
150
  if (state.pool.remaining >= cost)
103
151
  return { ok: true, source: "pool" };
@@ -116,9 +164,24 @@ export function fundingFor(state, model, cost, caller) {
116
164
  return { ok: true, source: "wallet" };
117
165
  return { ok: false, source: null, reason: "insufficient_balance" };
118
166
  }
167
+ /** Window names for the library's own English messages. A UI localises from
168
+ * `every` (or the plan's `label`) instead of parsing these. */
169
+ const WINDOW_NAMES = {
170
+ hour: "hour",
171
+ day: "day",
172
+ week: "week",
173
+ month: "month",
174
+ cycle: "billing cycle",
175
+ };
119
176
  /** Human-readable, for a 402 body or a tool result. */
120
- export function describeDenial(reason, state) {
177
+ export function describeDenial(reason, state, limit) {
121
178
  switch (reason) {
179
+ case "rate_limit_reached": {
180
+ const l = limit ?? state.limits.find((x) => x.remaining <= 0);
181
+ const name = l?.label ?? (l ? WINDOW_NAMES[l.every] : "window");
182
+ const resets = l?.window.end ? ` Resets ${new Date(l.window.end).toISOString()}.` : "";
183
+ return `Usage limit reached for this ${name} (${l?.size ?? 0}).${resets}`;
184
+ }
122
185
  case "pool_exhausted":
123
186
  return `Plan allowance used up for this cycle (${state.pool?.size ?? 0} tokens). Contact us to extend the package.`;
124
187
  case "seat_allowance_reached":
@@ -1 +1 @@
1
- {"version":3,"file":"allowance.js","sourceRoot":"","sources":["../src/allowance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"allowance.js","sourceRoot":"","sources":["../src/allowance.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { type AgentAuthBranding, type AgentAuthPaths, type AgentAuthPolicy, type
5
5
  import type { ClaimStore } from "./agent-auth/claim-store.js";
6
6
  import { type MachinePaymentOptions } from "./machine-payment/index.js";
7
7
  import { type OAuthProxyOptions } from "./oauth-proxy/index.js";
8
+ import type { UsageLedger } from "./usage-ledger.js";
8
9
  import type { PlanCatalog } from "./plans.js";
9
10
  export interface CreateBillingOptions {
10
11
  /** Storage adapter (WorkOSOrgAdapter or your own). */
@@ -74,6 +75,18 @@ export interface CreateBillingOptions {
74
75
  /** Cycle window (unix s) + key. Default: 1st-of-month UTC / "YYYY-MM". */
75
76
  cycleStart?: () => number;
76
77
  cycleKey?: () => string;
78
+ /**
79
+ * Where usage is COUNTED. Default: the balance-transaction ledger.
80
+ *
81
+ * Pass one whenever any plan has a `cap` or a `limits.rate`. The default
82
+ * ledger is the debits themselves, and an included call moves no money, so
83
+ * it writes no transaction to count: a pool or a per-seat pack read through
84
+ * it is permanently 0, which means the cap never bites and a usage screen
85
+ * reads 0% forever. `stripeMeterUsageLedger()` sees included usage but
86
+ * aggregates one dimension, so it cannot answer per-caller — a product that
87
+ * needs per-member figures wants its own store behind this seam.
88
+ */
89
+ ledger?: UsageLedger;
77
90
  };
78
91
  }
79
92
  export declare function createBilling(opts: CreateBillingOptions): {
@@ -1 +1 @@
1
- {"version":3,"file":"create-billing.d.ts","sourceRoot":"","sources":["../src/create-billing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-billing.d.ts","sourceRoot":"","sources":["../src/create-billing.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { CLAIM_GRANT_TYPE, createAgentAuth, } from "./agent-auth/index.js";
8
8
  import { createMachinePaymentHandler, createPaymentMd } from "./machine-payment/index.js";
9
9
  import { createOAuthProxy } from "./oauth-proxy/index.js";
10
10
  import { createMeter, createApiMeterGuard } from "./metering.js";
11
+ import { normalizePlans } from "./plan-model.js";
11
12
  export function createBilling(opts) {
12
13
  const resolved = resolveConfig(opts.config);
13
14
  // MCP OAuth 2.1 + DCR proxy (opt-in). Built first so agentAuth can advertise
@@ -94,6 +95,19 @@ export function createBilling(opts) {
94
95
  currency: opts.machinePayment.currency ?? resolved.currency,
95
96
  })
96
97
  : undefined;
98
+ // A cap or a rate limit counted by the DEFAULT ledger is counted by nothing:
99
+ // the default ledger IS the debits, and included usage moves no money. The
100
+ // failure is silent and looks like generosity (every window reads 0%, nothing
101
+ // is ever refused), so it is worth one line at boot.
102
+ if (opts.meter && !opts.meter.ledger && opts.plans) {
103
+ const counted = normalizePlans(opts.plans).filter((m) => m.cap.kind !== "wallet" || m.limits.rate.length > 0);
104
+ if (counted.length) {
105
+ console.warn(`[billing] plans ${counted.map((m) => m.key).join(", ")} declare an included window or a rate ` +
106
+ "limit, but no `meter.ledger` was passed. The default ledger can only see wallet-funded " +
107
+ "calls, so that usage counts as 0 and the limits never apply. Pass a ledger " +
108
+ "(stripeMeterUsageLedger(), or your own store for per-caller figures).");
109
+ }
110
+ }
97
111
  // Bound call-site meter + API route guard (opt-in). Plan resolution defaults to
98
112
  // the org's `plan` metadata so the common case needs no resolver.
99
113
  const meter = opts.meter
@@ -106,6 +120,7 @@ export function createBilling(opts) {
106
120
  planCacheTtlMs: opts.meter.planCacheTtlMs,
107
121
  cycleStart: opts.meter.cycleStart,
108
122
  cycleKey: opts.meter.cycleKey,
123
+ ledger: opts.meter.ledger,
109
124
  })
110
125
  : undefined;
111
126
  const meterRequest = meter
@@ -1 +1 @@
1
- {"version":3,"file":"create-billing.js","sourceRoot":"","sources":["../src/create-billing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-billing.js","sourceRoot":"","sources":["../src/create-billing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAgB/E,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,GAAE;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;4EACwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;wBACoB;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC,YAAY,CAAC,CA8M7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CA2EjE;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAc3F"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAgB/E,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,GAAE;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;4EACwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;wBACoB;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC,YAAY,CAAC,CA8M7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAmHjE;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAc3F"}
package/dist/doctor.js CHANGED
@@ -217,6 +217,46 @@ export function checkPlansConfig(plans) {
217
217
  "which is counted rather than credited. Keep `grant` only for a plan that literally sells credit",
218
218
  });
219
219
  }
220
+ // Rate limits: the two ways a plausible-looking declaration silently refuses
221
+ // everything, and the one way a set of them contradicts itself.
222
+ for (const l of m.limits.rate) {
223
+ if (l.tokens <= 0) {
224
+ checks.push({
225
+ level: "error",
226
+ title: `Plan "${m.key}" has a zero ${l.every} limit`,
227
+ detail: `a rate limit of ${l.tokens} refuses every call in that window`,
228
+ fix: "Set `tokens` above 0, or drop the limit",
229
+ });
230
+ }
231
+ if ((l.scope ?? "org") === "org" && l.seatType) {
232
+ checks.push({
233
+ level: "warn",
234
+ title: `Plan "${m.key}" scopes an org limit to a seat type`,
235
+ detail: `the ${l.every} limit sets \`seatType: ${l.seatType}\` but its scope is org-wide, so the seat type is ignored`,
236
+ fix: 'Add `scope: "caller"`, or remove `seatType`',
237
+ });
238
+ }
239
+ }
240
+ // A wider window that is tighter than a narrower one can never be reached:
241
+ // the narrow one refuses first, every time. Ordering is by window length, so
242
+ // this catches "300 a week" sitting under "1000 a day".
243
+ const lengths = { hour: 1, day: 2, week: 3, month: 4, cycle: 5 };
244
+ const sorted = [...m.limits.rate].sort((a, b) => lengths[a.every] - lengths[b.every]);
245
+ for (let i = 1; i < sorted.length; i++) {
246
+ const narrow = sorted[i - 1];
247
+ const wide = sorted[i];
248
+ if ((narrow.scope ?? "org") !== (wide.scope ?? "org"))
249
+ continue;
250
+ if (wide.tokens <= narrow.tokens) {
251
+ checks.push({
252
+ level: "warn",
253
+ title: `Plan "${m.key}" has an unreachable ${wide.every} limit`,
254
+ detail: `the ${wide.every} limit (${wide.tokens}) is no larger than the ${narrow.every} one ` +
255
+ `(${narrow.tokens}), so the ${narrow.every} window always refuses first`,
256
+ fix: `Raise the ${wide.every} limit above the ${narrow.every} one, or drop one of them`,
257
+ });
258
+ }
259
+ }
220
260
  if (m.cap.kind === "pool" && poolSizeOf(m) === 0) {
221
261
  checks.push({
222
262
  level: "warn",
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,10 +4,11 @@ export { authContext, runWithAuth, runWithResolvedOrg, enforceAccess, enforceTok
4
4
  export { getWorkOS } from "./workos.js";
5
5
  export { createWorkOSOrgMirror, ALL_MEMBERSHIP_STATUSES, type WorkOSOrgMirror, type WorkOSOrgMirrorOptions, } from "./org-mirror.js";
6
6
  export { getStripe, stripeConfigured, ensureStripeCustomer, getBillingCustomerId, getOrgSubscription, getTokenBalance, deductTokens, creditTokens, usageSince, createTokenCheckoutSession, createBillingPortalSession, getAutoReloadSettings, setAutoReloadSettings, tryAutoReload, listInvoices, getInvoice, invoicePdfUrl, listOrgInvoices, getOrgInvoice, orgInvoicePdfUrl, listSubscriptionPrices, resolveSubscriptionPrice, type InvoiceEntry, type StripePrice, } from "./billing.js";
7
- export { ensurePlans, resolvePlanPrices, invalidatePlanPrices, migrateSubscriptions, planPriceId, planForPriceId, seatTypeForPriceId, seatLimit, seatTypeLimit, planSale, definePlans, isLegacyPlan, normalizePlan, normalizePlans, planModel, plansWhere, selfServePlans, defaultBasket, validateBasket, describeBasketProblem, grantFor, poolSizeOf, packSizeOf, exhaustedPolicy, cycleWindowFor, includedTokens, includedTokensByType, lookupKeyFor, DEFAULT_SEAT_TYPES, type PlanDef, type SeatTypeDef, type PlansConfig, type BillingInterval, type EnsuredPrice, type PlanPrices, type MigratedSubscription, type MigrateSubscriptionsResult, type PlanCatalog, type PlanSpec, type PlanModel, type PlanDisplay, type PlanLimits, type SeatTypeSpec, type SeatTypeDisplay, type NormalSeatType, type Sells, type Grant, type Cap, type Exhausted, type Replenish, type Sale, type Money, type IntervalPrice, type Quantities as PlanQuantities, type BasketProblem, type CycleWindow, } from "./plans.js";
7
+ export { ensurePlans, resolvePlanPrices, invalidatePlanPrices, migrateSubscriptions, planPriceId, planForPriceId, seatTypeForPriceId, seatLimit, seatTypeLimit, planSale, definePlans, isLegacyPlan, normalizePlan, normalizePlans, planModel, plansWhere, selfServePlans, defaultBasket, validateBasket, describeBasketProblem, grantFor, poolSizeOf, packSizeOf, exhaustedPolicy, cycleWindowFor, rateWindowFor, rateLimitsOf, includedTokens, includedTokensByType, lookupKeyFor, DEFAULT_SEAT_TYPES, type PlanDef, type SeatTypeDef, type PlansConfig, type BillingInterval, type EnsuredPrice, type PlanPrices, type MigratedSubscription, type MigrateSubscriptionsResult, type PlanCatalog, type PlanSpec, type PlanModel, type PlanDisplay, type PlanLimits, type SeatTypeSpec, type SeatTypeDisplay, type NormalSeatType, type Sells, type Grant, type Cap, type Every, type RateLimit, type Exhausted, type Replenish, type Sale, type Money, type IntervalPrice, type Quantities as PlanQuantities, type BasketProblem, type CycleWindow, } from "./plans.js";
8
8
  export { changePlan, cancelPlan, planActions, planRank, PlanChangeError, type PlanChangeResult, type PlanChangeKind, type PlanChangeTiming, type PlanChangeErrorCode, type ProrationPolicy, type PlanActions, } from "./subscription.js";
9
9
  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";
10
- export { resolveAllowance, fundingFor, describeDenial, type AllowanceState, type AllowanceInput, type FundingDecision, type DenialReason, } from "./allowance.js";
10
+ export { resolveAllowance, fundingFor, describeDenial, type AllowanceState, type AllowanceInput, type FundingDecision, type DenialReason, type LimitState, } from "./allowance.js";
11
+ export { usageSummary, memberUsage, type UsageSummary, type UsageSummaryInput, type UsageWindow, type MemberUsage, } from "./usage.js";
11
12
  export { stripeBalanceUsageLedger, stripeMeterUsageLedger, ensureMeters, invalidateMeters, USAGE_METER_EVENT, type UsageLedger, type UsageEvent, type UsageQuery, type FundingSource, } from "./usage-ledger.js";
12
13
  export { meterUsage, createMeter, createApiMeterGuard, type MeterCaller, type MeterInput, type MeterResult, type MeterConfig, type MeterCallOpts, type Meter, type ApiMeterGuard, } from "./metering.js";
13
14
  export { requestTopUp, listTopUpRequests, approveTopUp, denyTopUp, extraAllowance, type TopUpRequest, } from "./topup.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
@@ -17,7 +17,7 @@ export { ensurePlans, resolvePlanPrices, invalidatePlanPrices, migrateSubscripti
17
17
  // The plan model: five independent axes (what it sells, what it credits, what
18
18
  // it includes, how it's replenished, whether it can be bought) + presentation.
19
19
  // The legacy PlanDef keeps working — `normalizePlans` maps it.
20
- definePlans, isLegacyPlan, normalizePlan, normalizePlans, planModel, plansWhere, selfServePlans, defaultBasket, validateBasket, describeBasketProblem, grantFor, poolSizeOf, packSizeOf, exhaustedPolicy, cycleWindowFor, includedTokens, includedTokensByType, lookupKeyFor, DEFAULT_SEAT_TYPES, } from "./plans.js";
20
+ definePlans, isLegacyPlan, normalizePlan, normalizePlans, planModel, plansWhere, selfServePlans, defaultBasket, validateBasket, describeBasketProblem, grantFor, poolSizeOf, packSizeOf, exhaustedPolicy, cycleWindowFor, rateWindowFor, rateLimitsOf, includedTokens, includedTokensByType, lookupKeyFor, DEFAULT_SEAT_TYPES, } from "./plans.js";
21
21
  // The subscription lifecycle: one entry point for up, down and off. Before this,
22
22
  // every plan or seat change opened a fresh Checkout Session and created a SECOND
23
23
  // subscription, so the customer was billed twice.
@@ -35,6 +35,9 @@ defineCompare, deriveCompareTable, compareRowLabels, } from "./pricing.js";
35
35
  // as credit — a Stripe credit balance auto-applies to the next invoice, so
36
36
  // crediting a plan's own included tokens discounts its own renewal.
37
37
  export { resolveAllowance, fundingFor, describeDenial, } from "./allowance.js";
38
+ // The read side of the same arithmetic: what a usage screen shows, per window and
39
+ // per member, from the numbers the meter itself enforces.
40
+ export { usageSummary, memberUsage, } from "./usage.js";
38
41
  // Counting usage separately from moving money — the seam an included window needs.
39
42
  export { stripeBalanceUsageLedger, stripeMeterUsageLedger, ensureMeters, invalidateMeters, USAGE_METER_EVENT, } from "./usage-ledger.js";
40
43
  // Per-execution metering engine (prepaid balance; per-seat packs or a global
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -43,8 +43,13 @@ export type MeterResult = {
43
43
  /** `pool_exhausted` is new: an org whose included package is used up used
44
44
  * to be told "insufficient balance", which pointed at the wrong problem
45
45
  * and the wrong remedy. */
46
- reason: "no_billing" | "insufficient_balance" | "seat_allowance_reached" | "pool_exhausted";
46
+ reason: "no_billing" | "insufficient_balance" | "seat_allowance_reached" | "pool_exhausted"
47
+ /** A declared per-window limit (hour/day/week/month) refused it. Distinct
48
+ * from an exhausted cap: waiting fixes this one, buying does not. */
49
+ | "rate_limit_reached";
47
50
  message: string;
51
+ /** When a rate limit refused: epoch ms at which it resets. */
52
+ retryAt?: number;
48
53
  };
49
54
  export declare function meterUsage(adapter: BillingAdapter, config: ResolvedConfig, input: MeterInput): Promise<MeterResult>;
50
55
  export interface MeterConfig<R extends Record<string, number> = Record<string, number>> {
@@ -1 +1 @@
1
- {"version":3,"file":"metering.d.ts","sourceRoot":"","sources":["../src/metering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metering.d.ts","sourceRoot":"","sources":["../src/metering.ts"],"names":[],"mappings":"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"}
package/dist/metering.js CHANGED
@@ -47,10 +47,13 @@ export async function meterUsage(adapter, config, input) {
47
47
  // package is told exactly that, instead of being told its balance is short.
48
48
  const funding = fundingFor(state, model, cost, caller);
49
49
  if (!funding.ok) {
50
+ const reason = funding.reason ?? "insufficient_balance";
50
51
  return {
51
52
  ok: false,
52
- reason: funding.reason ?? "insufficient_balance",
53
- message: describeDenial(funding.reason ?? "insufficient_balance", state),
53
+ reason,
54
+ message: describeDenial(reason, state, funding.limit),
55
+ // A rate limit is the one denial that fixes itself, so say when.
56
+ ...(funding.limit?.window.end ? { retryAt: funding.limit.window.end } : {}),
54
57
  };
55
58
  }
56
59
  // Count every call; charge only the ones the wallet funds. Included usage was