@codelitdev/billing 0.1.0-alpha.1 → 0.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Provider-neutral billing engine for CodeLit products. It runs **inside** your API process against **your** PostgreSQL database. It is not a hosted billing service.
4
4
 
5
- Version **0.1.0-alpha.1**. Workflows, action grants, operator services, and lifecycle hooks are **experimental**. There is no v1 cutover until a second consumer (CourseLit) proves the same contracts.
5
+ Version **0.1.0-alpha.2**. Workflows, action grants, operator services, and lifecycle hooks are **experimental**. There is no v1 cutover until a second consumer (CourseLit) proves the same contracts.
6
6
 
7
7
  ## Purpose
8
8
 
@@ -21,15 +21,45 @@ Your product still owns:
21
21
 
22
22
  - Who is billed (organization, school, …)
23
23
  - Plan names, entitlements, quotas, trials, grace, availability
24
+ - Whether a plan change is immediate or at renewal, and how it is prorated
24
25
  - Auth, CSRF, recent-auth tokens, HTTP routes, UI
25
26
  - Schema migrations, backfills, encryption keys, audit storage, alerts
26
27
 
27
28
  The package never runs DDL on install, import, or process startup.
28
29
 
30
+ ## Consumer guidelines
31
+
32
+ The engine is mechanical. It will not infer product policy from plan names.
33
+
34
+ **You decide, then pass in:**
35
+
36
+ | Decision | How you tell the engine |
37
+ | -------------------- | -------------------------------------------------------------------------------------------------------- |
38
+ | Paid offers | `offers` + `requiredOfferKeys` at `createBilling`; exact set, no `"free"` in `planIds` |
39
+ | Trial eligibility | `trialDays` on checkout (0 if ineligible). Claims, HMAC, school trials stay in your tables |
40
+ | Upgrade vs downgrade | `startPlanChange({ effectiveAt, prorationMode })`. The package does not rank Pro/Business |
41
+ | What a plan unlocks | Your entitlements resolver. `commercialState()` is paid snapshot only |
42
+ | Entity lifecycle | `getBillableEntityBillingBlockers` / `getPayerBillingResponsibilities`; you choose the user-facing error |
43
+ | Product side effects | `afterProjection` on the **engine transaction** (`store.getTransaction() ?? db`) |
44
+
45
+ **Plan-change flags the engine understands:**
46
+
47
+ - `effectiveAt`: `immediately` \| `next_billing_date`
48
+ - `prorationMode`: `prorated_immediately` \| `do_not_bill`
49
+
50
+ A typical SaaS split (what SendLit does, not required): upgrades → immediate + prorate; downgrades → next invoice + do not bill. Until a webhook/reconciliation snapshot actually shows the new product, `commercialState().activePaidPlan` stays on the current plan and `pendingPlanChange` is set. Your UI should disable a second change and say “being confirmed” vs “scheduled,” not pretend the plan already flipped.
51
+
52
+ **Do not:**
53
+
54
+ - Put application Free/OSS/trial into generated `planIds`
55
+ - Hold an app `db.transaction()` across a provider call, or nest `db.transaction()` on the root pool inside `afterProjection`
56
+ - Treat checkout redirect, `payment.succeeded`, or a toast as entitlement
57
+ - Re-interpret provider SDK errors in routes; map `BillingWorkflowError.code` only
58
+
29
59
  ## Install
30
60
 
31
61
  ```bash
32
- pnpm add @codelitdev/billing@0.1.0-alpha.1
62
+ pnpm add @codelitdev/billing@0.1.0-alpha.2
33
63
  # or: pnpm add @codelitdev/billing@alpha
34
64
  # Dodo is an optional peer of the Dodo adapter
35
65
  pnpm add dodopayments
@@ -37,17 +67,17 @@ pnpm add dodopayments
37
67
 
38
68
  Public imports (do not import `src/`):
39
69
 
40
- | Subpath | Use |
41
- | --- | --- |
42
- | `@codelitdev/billing/config` | `defineBillingConfig` |
43
- | `@codelitdev/billing/drizzle` | `createDrizzleBillingStore` |
44
- | `@codelitdev/billing/workflows` | `createBilling` (experimental) |
45
- | `@codelitdev/billing/operations` | Operator inspect / retry / cancel |
46
- | `@codelitdev/billing/providers` | Registry, fake, contract types |
47
- | `@codelitdev/billing/providers/dodo` | `createDodoBillingProvider` |
48
- | `@codelitdev/billing/core` | Statuses, money, errors, clock |
49
- | `@codelitdev/billing/catalog` | Offer validation / public catalog |
50
- | `@codelitdev/billing/testing` | Provider contract + workflow harness |
70
+ | Subpath | Use |
71
+ | ------------------------------------ | ------------------------------------ |
72
+ | `@codelitdev/billing/config` | `defineBillingConfig` |
73
+ | `@codelitdev/billing/drizzle` | `createDrizzleBillingStore` |
74
+ | `@codelitdev/billing/workflows` | `createBilling` (experimental) |
75
+ | `@codelitdev/billing/operations` | Operator inspect / retry / cancel |
76
+ | `@codelitdev/billing/providers` | Registry, fake, contract types |
77
+ | `@codelitdev/billing/providers/dodo` | `createDodoBillingProvider` |
78
+ | `@codelitdev/billing/core` | Statuses, money, errors, clock |
79
+ | `@codelitdev/billing/catalog` | Offer validation / public catalog |
80
+ | `@codelitdev/billing/testing` | Provider contract + workflow harness |
51
81
 
52
82
  CLI:
53
83
 
@@ -84,37 +114,37 @@ Same idea as Better Auth: the package owns the canonical model; you check in gen
84
114
  import { defineBillingConfig } from "@codelitdev/billing/config";
85
115
 
86
116
  export default defineBillingConfig({
87
- dialect: "postgresql",
88
- adapter: "drizzle",
89
- output: "./src/db/schema/billing.generated.ts",
90
- billableEntity: {
91
- modelName: "organization",
92
- tableImport: "./organizations",
93
- tableExport: "organizations",
94
- idColumn: "id",
95
- idType: "uuid",
96
- onDelete: "restrict",
97
- },
98
- payer: {
99
- modelName: "user",
100
- tableImport: "./auth",
101
- tableExport: "user",
102
- idColumn: "id",
103
- idType: "text",
104
- onDelete: "restrict",
105
- },
106
- planIds: ["pro", "business"],
107
- requiredOfferKeys: [
108
- "pro_month",
109
- "pro_year",
110
- "business_month",
111
- "business_year",
112
- ],
113
- additionalFields: {
114
- checkoutAttempts: {
115
- pendingTeamName: { type: "text", nullable: true },
117
+ dialect: "postgresql",
118
+ adapter: "drizzle",
119
+ output: "./src/db/schema/billing.generated.ts",
120
+ billableEntity: {
121
+ modelName: "organization",
122
+ tableImport: "./organizations",
123
+ tableExport: "organizations",
124
+ idColumn: "id",
125
+ idType: "uuid",
126
+ onDelete: "restrict",
127
+ },
128
+ payer: {
129
+ modelName: "user",
130
+ tableImport: "./auth",
131
+ tableExport: "user",
132
+ idColumn: "id",
133
+ idType: "text",
134
+ onDelete: "restrict",
135
+ },
136
+ planIds: ["pro", "business"],
137
+ requiredOfferKeys: [
138
+ "pro_month",
139
+ "pro_year",
140
+ "business_month",
141
+ "business_year",
142
+ ],
143
+ additionalFields: {
144
+ checkoutAttempts: {
145
+ pendingTeamName: { type: "text", nullable: true },
146
+ },
116
147
  },
117
- },
118
148
  });
119
149
  ```
120
150
 
@@ -146,49 +176,57 @@ import * as billingSchema from "./db/billing.generated";
146
176
 
147
177
  const clock = systemClock;
148
178
  const store = createDrizzleBillingStore(db, {
149
- schema: billingSchema,
150
- clock,
151
- planStateDefaults: { plan: "free", rampStage: 0, rampCleanStageDays: 0 },
152
- checkoutApplicationFields: {
153
- toColumns: (fields) => ({
154
- pendingTeamName:
155
- typeof fields.pendingTeamName === "string"
156
- ? fields.pendingTeamName
157
- : null,
158
- }),
159
- fromRow: (row) => ({ pendingTeamName: row.pendingTeamName ?? null }),
160
- },
179
+ schema: billingSchema,
180
+ clock,
181
+ planStateDefaults: { plan: "free", rampStage: 0, rampCleanStageDays: 0 },
182
+ checkoutApplicationFields: {
183
+ toColumns: (fields) => ({
184
+ pendingTeamName:
185
+ typeof fields.pendingTeamName === "string"
186
+ ? fields.pendingTeamName
187
+ : null,
188
+ }),
189
+ fromRow: (row) => ({ pendingTeamName: row.pendingTeamName ?? null }),
190
+ },
161
191
  });
162
192
 
163
193
  export const billing = createBilling({
164
- database: store,
165
- providers: [
166
- createDodoBillingProvider({
167
- apiKey: process.env.DODO_PAYMENTS_API_KEY!,
168
- environment: "test_mode", // or "live_mode"
169
- webhookSecrets: [
170
- { version: "current", secret: process.env.DODO_PAYMENTS_WEBHOOK_KEY_CURRENT! },
171
- ],
172
- clock,
173
- }),
174
- ],
175
- clock,
176
- authorization: yourGrantPort, // consume-once BillingAuthorizationPort
177
- sensitiveValues: yourEncryptPort,
178
- hooks: {
179
- audit: yourAuditHook,
180
- lifecycle: {
181
- afterProjection: (input) =>
182
- applyProductEffects(input, store.getTransaction() ?? db),
194
+ database: store,
195
+ providers: [
196
+ createDodoBillingProvider({
197
+ apiKey: process.env.DODO_PAYMENTS_API_KEY!,
198
+ environment: "test_mode", // or "live_mode"
199
+ webhookSecrets: [
200
+ {
201
+ version: "current",
202
+ secret: process.env.DODO_PAYMENTS_WEBHOOK_KEY_CURRENT!,
203
+ },
204
+ ],
205
+ clock,
206
+ }),
207
+ ],
208
+ clock,
209
+ authorization: yourGrantPort, // consume-once BillingAuthorizationPort
210
+ sensitiveValues: yourEncryptPort,
211
+ hooks: {
212
+ audit: yourAuditHook,
213
+ lifecycle: {
214
+ afterProjection: (input) =>
215
+ applyProductEffects(input, store.getTransaction() ?? db),
216
+ },
183
217
  },
184
- },
185
- mode: "cloud", // "oss" forbids providers, offers, and catalog revision
186
- checkoutProvider: "dodo",
187
- requestedRevision: 1,
188
- requiredOfferKeys: ["pro_month", "pro_year", "business_month", "business_year"],
189
- offers: yourOffers, // must match requiredOfferKeys exactly
190
- returnUrlValidator: (url) =>
191
- new URL(url).origin === new URL(process.env.WEB_CLIENT!).origin,
218
+ mode: "cloud", // "oss" forbids providers, offers, and catalog revision
219
+ checkoutProvider: "dodo",
220
+ requestedRevision: 1,
221
+ requiredOfferKeys: [
222
+ "pro_month",
223
+ "pro_year",
224
+ "business_month",
225
+ "business_year",
226
+ ],
227
+ offers: yourOffers, // must match requiredOfferKeys exactly
228
+ returnUrlValidator: (url) =>
229
+ new URL(url).origin === new URL(process.env.WEB_CLIENT!).origin,
192
230
  });
193
231
  ```
194
232
 
@@ -216,20 +254,34 @@ Your app authenticates the user, proves recent auth / CSRF however you like, the
216
254
 
217
255
  ```ts
218
256
  const { checkoutUrl } = await billing.startCheckout({
219
- grant,
220
- entity: { kind: "organization", id: organizationId },
221
- payer: { id: userId, email, name },
222
- offerKey: "pro_month",
223
- catalogRevision: displayedRevision, // the revision the UI showed
224
- returnUrl,
225
- trialDays: 14, // 0 if ineligible; the package does not decide eligibility
226
- applicationFields: { pendingTeamName: "Acme Team" },
257
+ grant,
258
+ entity: { kind: "organization", id: organizationId },
259
+ payer: { id: userId, email, name },
260
+ offerKey: "pro_month",
261
+ catalogRevision: displayedRevision, // the revision the UI showed
262
+ returnUrl,
263
+ trialDays: 14, // 0 if ineligible; the package does not decide eligibility
264
+ applicationFields: { pendingTeamName: "Acme Team" },
227
265
  });
228
266
  ```
229
267
 
230
- Other grant actions: `startPortal`, `startPlanChange`, `cancel`. Submit the catalog revision the user saw; a stale revision fails with `catalog_changed` and may include the current public catalog.
268
+ Other grant actions: `startPortal`, `cancel`, and plan change:
231
269
 
232
- Redirect is not payment. Entitlement changes from webhook projection or reconciliation.
270
+ ```ts
271
+ await billing.startPlanChange({
272
+ grant,
273
+ entity: { kind: "organization", id: organizationId },
274
+ payer: { id: userId, email, name },
275
+ offerKey: "business_month",
276
+ catalogRevision: displayedRevision,
277
+ effectiveAt: "immediately", // or "next_billing_date"
278
+ prorationMode: "prorated_immediately", // or "do_not_bill"
279
+ });
280
+ ```
281
+
282
+ Submit the catalog revision the user saw; a stale revision fails with `catalog_changed` and may include the current public catalog.
283
+
284
+ Redirect is not payment. Entitlement changes from webhook projection or reconciliation. A scheduled plan change does not rewrite the subscription until the provider’s current snapshot matches the pending attempt.
233
285
 
234
286
  ## 5. Webhooks and workers
235
287
 
@@ -237,8 +289,8 @@ Preserve the **raw** body. Return 2xx after the event is durably inserted (dupli
237
289
 
238
290
  ```ts
239
291
  const ingested = await billing.ingestWebhook({
240
- provider: "dodo",
241
- raw: { body, headers },
292
+ provider: "dodo",
293
+ raw: { body, headers },
242
294
  });
243
295
  res.status(ingested.duplicate ? 200 : 202).json({ accepted: true });
244
296
  void billing.runWebhookInboxBatch({ workerId: `billing-${process.pid}` });
@@ -246,13 +298,13 @@ void billing.runWebhookInboxBatch({ workerId: `billing-${process.pid}` });
246
298
 
247
299
  The package does not start timers. Your scheduler should call, with unique `workerId`s:
248
300
 
249
- | Unit | Job |
250
- | --- | --- |
251
- | `runWebhookInboxBatch` | Drain verified events (retrieve + project) |
252
- | `runReconciliationBatch` | Stuck customers/checkouts/changes/subscriptions |
253
- | `runDeadlineBatch` | Expire open checkouts; drop elapsed paid-through entitlement |
254
- | `purgeExpiredSensitiveValues` | Drop old encrypted checkout URLs / replay payloads |
255
- | `verifyRequestedCatalog` | Finish a pending catalog revision |
301
+ | Unit | Job |
302
+ | ----------------------------- | ------------------------------------------------------------ |
303
+ | `runWebhookInboxBatch` | Drain verified events (retrieve + project) |
304
+ | `runReconciliationBatch` | Stuck customers/checkouts/changes/subscriptions |
305
+ | `runDeadlineBatch` | Expire open checkouts; drop elapsed paid-through entitlement |
306
+ | `purgeExpiredSensitiveValues` | Drop old encrypted checkout URLs / replay payloads |
307
+ | `verifyRequestedCatalog` | Finish a pending catalog revision |
256
308
 
257
309
  Multi-instance safety is database leases, not a process-local mutex. Never hold an app transaction across a provider call.
258
310
 
@@ -277,26 +329,33 @@ Workflow failures are `BillingWorkflowError` with stable codes (`catalog_changed
277
329
 
278
330
  ## 7. Operator CLI
279
331
 
280
- Product CLIs call `createOperations`. Every mutation needs `OperatorContext` (`actorId`, bounded `reason`, optional ticket) and hits the audit hook.
332
+ Product CLIs call `createOperations`. Every mutation needs `OperatorContext` (`actorId`, bounded `reason`, optional ticket) and hits the audit hook. The package does not ship an org/school CLI.
281
333
 
282
334
  ```ts
283
335
  import { createOperations } from "@codelitdev/billing/operations";
284
336
 
285
337
  const ops = createOperations({
286
- billing,
287
- clock,
288
- requestedRevision: 1,
289
- checkoutProvider: "dodo",
290
- sensitiveValues,
338
+ billing,
339
+ clock,
340
+ requestedRevision: 1,
341
+ checkoutProvider: "dodo",
342
+ sensitiveValues,
291
343
  });
292
344
 
293
345
  await ops.health();
294
- await ops.retryWebhook(ctx, providerEventId, "preserve_attempts");
295
- await ops.reconcileSubscription(ctx, subscriptionId);
346
+ await ops.inspectWebhook(providerEventId);
347
+ await ops.retryWebhook(ctx, providerEventId, "preserve_attempts"); // also drains the inbox
348
+ await ops.reconcileEntity(ctx, billableEntityId); // requires a local entitlement row
349
+ await ops.projectProviderSubscription(ctx, {
350
+ providerSubscriptionId, // e.g. from the checkout return URL
351
+ checkoutAttemptId, // optional; defaults to snapshot metadata
352
+ });
296
353
  await ops.requestCancellation(ctx, subscriptionId);
297
- const payload = await ops.decryptReplay(ctx, ciphertext); // separately audited
354
+ const payload = await ops.inspectWebhookReplay(ctx, providerEventId);
298
355
  ```
299
356
 
357
+ `reconcileEntity` cannot invent a subscription from a paid-but-unprojected checkout. Use `projectProviderSubscription` when the provider already has a subscription id and local entitlement is still missing.
358
+
300
359
  Do not `UPDATE billing_webhook_events SET status = 'pending'` by hand. Retry either preserves the attempt counter or starts `new_budget`.
301
360
 
302
361
  Procedures: [`docs/runbooks.md`](docs/runbooks.md).
@@ -304,7 +363,10 @@ Procedures: [`docs/runbooks.md`](docs/runbooks.md).
304
363
  ## 8. Tests
305
364
 
306
365
  ```ts
307
- import { runBillingProviderContract, createWorkflowHarness } from "@codelitdev/billing/testing";
366
+ import {
367
+ runBillingProviderContract,
368
+ createWorkflowHarness,
369
+ } from "@codelitdev/billing/testing";
308
370
  ```
309
371
 
310
372
  - `runBillingProviderContract(adapter)` — every adapter, including Dodo in CI against the fake and gated sandbox tests against Dodo test mode.
@@ -8,13 +8,33 @@ export type OperationsDeps = {
8
8
  checkoutProvider?: string;
9
9
  sensitiveValues?: SensitiveValuePort;
10
10
  };
11
+ export type WebhookInspectView = {
12
+ id: string;
13
+ provider: string;
14
+ providerEventId: string;
15
+ eventType: string;
16
+ status: string;
17
+ lastError: string | null;
18
+ subscriptionId: string | null;
19
+ checkoutAttemptId: string | null;
20
+ processingAttempts: number;
21
+ occurredAt: Date;
22
+ hasPayload: boolean;
23
+ };
11
24
  export declare function createOperations(deps: OperationsDeps): {
12
25
  inspectEntity(entityId: string): Promise<import("../workflows/engine.js").CommercialBillingState>;
13
26
  health(): Promise<import("../maintenance/health.js").BillingHealthFacts>;
14
- reconcileSubscription(context: OperatorContext, subscriptionId: string): Promise<void>;
27
+ reconcileSubscription: (context: OperatorContext, subscriptionId: string) => Promise<void>;
28
+ reconcileEntity(context: OperatorContext, entityId: string): Promise<void>;
29
+ inspectWebhook(providerEventId: string): Promise<WebhookInspectView>;
30
+ inspectWebhookReplay(context: OperatorContext, providerEventId: string): Promise<string>;
15
31
  retryWebhook(context: OperatorContext, providerEventId: string, mode: "preserve_attempts" | "new_budget"): Promise<void>;
32
+ projectProviderSubscription(context: OperatorContext, input: {
33
+ providerSubscriptionId: string;
34
+ checkoutAttemptId?: string;
35
+ }): Promise<import("../persistence/memory.js").ProjectionWrite>;
16
36
  requestCancellation(context: OperatorContext, subscriptionId: string): Promise<void>;
17
- decryptReplay(context: OperatorContext, ciphertext: string): Promise<string>;
37
+ decryptReplay: (context: OperatorContext, ciphertext: string) => Promise<string>;
18
38
  catalog(): Promise<import("../catalog/types.js").PublicBillingCatalog | null>;
19
39
  catalogRevisions(): import("../persistence/store.js").CatalogRevisionRow[] | Promise<import("../persistence/store.js").CatalogRevisionRow[]>;
20
40
  recordRequestedCatalog(): Promise<import("../persistence/store.js").CatalogRevisionRow | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAiBF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc;4BAGrB,MAAM;;mCAYjB,eAAe,kBACR,MAAM;0BA+Bb,eAAe,mBACP,MAAM,QACjB,mBAAmB,GAAG,YAAY;iCAuC/B,eAAe,kBACR,MAAM;2BAKb,eAAe,cACZ,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;;;;;;;;;qCA6Be,eAAe;EAKvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAiBF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc;4BAsDrB,MAAM;;qCA9BrB,eAAe,kBACR,MAAM;6BAyCS,eAAe,YAAY,MAAM;oCAO3C,MAAM,GACxB,OAAO,CAAC,kBAAkB,CAAC;kCAmBjB,eAAe,mBACP,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC;0BASL,eAAe,mBACP,MAAM,QACjB,mBAAmB,GAAG,YAAY;yCA0C/B,eAAe,SACjB;QACH,sBAAsB,EAAE,MAAM,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC9B;iCAiBQ,eAAe,kBACR,MAAM;6BAtKjB,eAAe,cACZ,MAAM,KACnB,OAAO,CAAC,MAAM,CAAC;;;;;;;;;qCAqLmB,eAAe;EAKvD"}
@@ -14,6 +14,37 @@ function digest(value) {
14
14
  }
15
15
  export function createOperations(deps) {
16
16
  let decryptSequence = 0;
17
+ async function decryptReplay(context, ciphertext) {
18
+ if (!deps.sensitiveValues) {
19
+ throw new BillingWorkflowError("composition_invalid");
20
+ }
21
+ assertOperatorContext(context);
22
+ await deps.billing.recordOperatorAudit(context, `operator:decrypt-replay:${digest(ciphertext)}:${context.actorId}:${++decryptSequence}`, null, { requested: "decrypt_replay" });
23
+ return deps.sensitiveValues.decrypt(ciphertext, {
24
+ operatorActorId: context.actorId,
25
+ reason: context.reason,
26
+ });
27
+ }
28
+ async function reconcileSubscription(context, subscriptionId) {
29
+ assertOperatorContext(context);
30
+ await deps.billing.store.withTransaction(async () => {
31
+ const sub = await deps.billing.store.findSubscriptionById(subscriptionId);
32
+ if (!sub)
33
+ throw new BillingWorkflowError("subscription_required");
34
+ const previous = await deps.billing.store.findLiveJob({
35
+ provider: sub.provider,
36
+ subscriptionId: sub.id,
37
+ });
38
+ const job = await deps.billing.enqueueJob({
39
+ provider: sub.provider,
40
+ subscriptionId: sub.id,
41
+ });
42
+ await deps.billing.recordOperatorAudit(context, `operator:reconcile:${job.id}:${context.actorId}`, previous ?? null, { requested: "reconcile" }, { subscriptionId: sub.id });
43
+ });
44
+ await deps.billing.runReconciliationBatch({
45
+ workerId: `ops:${context.actorId}`,
46
+ });
47
+ }
17
48
  return {
18
49
  inspectEntity(entityId) {
19
50
  return deps.billing.commercialState(entityId);
@@ -21,25 +52,37 @@ export function createOperations(deps) {
21
52
  health() {
22
53
  return healthFacts(deps.billing.store, deps.clock, deps.requestedRevision, deps.checkoutProvider);
23
54
  },
24
- async reconcileSubscription(context, subscriptionId) {
25
- assertOperatorContext(context);
26
- await deps.billing.store.withTransaction(async () => {
27
- const sub = await deps.billing.store.findSubscriptionById(subscriptionId);
28
- if (!sub)
29
- throw new BillingWorkflowError("subscription_required");
30
- const previous = await deps.billing.store.findLiveJob({
31
- provider: sub.provider,
32
- subscriptionId: sub.id,
33
- });
34
- const job = await deps.billing.enqueueJob({
35
- provider: sub.provider,
36
- subscriptionId: sub.id,
37
- });
38
- await deps.billing.recordOperatorAudit(context, `operator:reconcile:${job.id}:${context.actorId}`, previous ?? null, { requested: "reconcile" }, { subscriptionId: sub.id });
39
- });
40
- await deps.billing.runReconciliationBatch({
41
- workerId: `ops:${context.actorId}`,
42
- });
55
+ reconcileSubscription,
56
+ async reconcileEntity(context, entityId) {
57
+ const sub = await deps.billing.store.findEntitlementSubscription(entityId);
58
+ if (!sub)
59
+ throw new BillingWorkflowError("subscription_required");
60
+ await reconcileSubscription(context, sub.id);
61
+ },
62
+ async inspectWebhook(providerEventId) {
63
+ const row = await deps.billing.store.findWebhookByEventId(providerEventId);
64
+ if (!row)
65
+ throw new BillingWorkflowError("operation_conflicted");
66
+ return {
67
+ id: row.id,
68
+ provider: row.provider,
69
+ providerEventId: row.providerEventId,
70
+ eventType: row.eventType,
71
+ status: row.status,
72
+ lastError: row.lastError,
73
+ subscriptionId: row.subscriptionId,
74
+ checkoutAttemptId: row.checkoutAttemptId,
75
+ processingAttempts: row.processingAttempts,
76
+ occurredAt: row.occurredAt,
77
+ hasPayload: Boolean(row.payloadEncrypted),
78
+ };
79
+ },
80
+ async inspectWebhookReplay(context, providerEventId) {
81
+ const row = await deps.billing.store.findWebhookByEventId(providerEventId);
82
+ if (!row?.payloadEncrypted) {
83
+ throw new BillingWorkflowError("operation_conflicted");
84
+ }
85
+ return decryptReplay(context, row.payloadEncrypted);
43
86
  },
44
87
  async retryWebhook(context, providerEventId, mode) {
45
88
  assertOperatorContext(context);
@@ -69,22 +112,23 @@ export function createOperations(deps) {
69
112
  mode,
70
113
  }, { providerEventId: row.providerEventId });
71
114
  });
115
+ await deps.billing.runWebhookInboxBatch({
116
+ workerId: `ops:${context.actorId}`,
117
+ });
72
118
  },
73
- async requestCancellation(context, subscriptionId) {
74
- await deps.billing.operatorCancel(context, subscriptionId);
75
- },
76
- async decryptReplay(context, ciphertext) {
77
- if (!deps.sensitiveValues) {
78
- throw new BillingWorkflowError("composition_invalid");
79
- }
119
+ async projectProviderSubscription(context, input) {
80
120
  assertOperatorContext(context);
81
- await deps.billing.recordOperatorAudit(context, `operator:decrypt-replay:${digest(ciphertext)}:${context.actorId}:${++decryptSequence}`, null, { requested: "decrypt_replay" });
82
- const plaintext = await deps.sensitiveValues.decrypt(ciphertext, {
83
- operatorActorId: context.actorId,
84
- reason: context.reason,
121
+ const write = await deps.billing.projectFromProvider(input);
122
+ await deps.billing.recordOperatorAudit(context, `operator:project-provider:${input.providerSubscriptionId}:${context.actorId}`, null, write.subscription, {
123
+ subscriptionId: write.subscription.id,
124
+ billableEntityId: write.subscription.billableEntityId,
85
125
  });
86
- return plaintext;
126
+ return write;
127
+ },
128
+ async requestCancellation(context, subscriptionId) {
129
+ await deps.billing.operatorCancel(context, subscriptionId);
87
130
  },
131
+ decryptReplay,
88
132
  catalog() {
89
133
  return deps.billing.publicCatalog();
90
134
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"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"}
@@ -82,6 +82,10 @@ export declare function createBillingFrom(store: MemoryBillingStore, fake: FakeB
82
82
  projectSnapshot: (snapshot: import("../core/subscription.js").SubscriptionSnapshot, correlation: {
83
83
  checkoutAttemptId?: string;
84
84
  }, reconcile?: boolean) => Promise<import("../persistence/memory.js").ProjectionWrite>;
85
+ projectFromProvider: (input: {
86
+ providerSubscriptionId: string;
87
+ checkoutAttemptId?: string;
88
+ }) => Promise<import("../persistence/memory.js").ProjectionWrite>;
85
89
  getBillableEntityBillingBlockers: (entity: import("../core/ids.js").BillableEntityRef, now: Date) => Promise<import("../ports/lifecycle.js").BillingBlocker[]>;
86
90
  getPayerBillingResponsibilities: (payer: import("../core/ids.js").PayerRef, now: Date) => Promise<import("../ports/lifecycle.js").PayerResponsibility[]>;
87
91
  commercialState: (entityId: string) => Promise<import("../workflows/engine.js").CommercialBillingState>;
@@ -187,6 +191,10 @@ export declare function createWorkflowHarness(now?: Date, options?: {
187
191
  projectSnapshot: (snapshot: import("../core/subscription.js").SubscriptionSnapshot, correlation: {
188
192
  checkoutAttemptId?: string;
189
193
  }, reconcile?: boolean) => Promise<import("../persistence/memory.js").ProjectionWrite>;
194
+ projectFromProvider: (input: {
195
+ providerSubscriptionId: string;
196
+ checkoutAttemptId?: string;
197
+ }) => Promise<import("../persistence/memory.js").ProjectionWrite>;
190
198
  getBillableEntityBillingBlockers: (entity: import("../core/ids.js").BillableEntityRef, now: Date) => Promise<import("../ports/lifecycle.js").BillingBlocker[]>;
191
199
  getPayerBillingResponsibilities: (payer: import("../core/ids.js").PayerRef, now: Date) => Promise<import("../ports/lifecycle.js").PayerResponsibility[]>;
192
200
  commercialState: (entityId: string) => Promise<import("../workflows/engine.js").CommercialBillingState>;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-harness.d.ts","sourceRoot":"","sources":["../../src/testing/workflow-harness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,YAAY,EAAE,EACtB,MAAM,GAAE;IACJ,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC;CACtB;;;;;;;;;iBAgEi1sB,CAAC;yBAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAkg0C,CAAC;;;;aAA25B,CAAC;;;aAA2oD,CAAC;;;;aAA4mF,CAAC;;;;;;;;aAA1mJ,CAAC;;;yBAArmd,CAAC;;;;;;;;;;;;;;;;;yBAA3o5B,CAAC;2BAA4C,CAAC;sBAAuC,CAAC;0BAA2C,CAAC;iBAAkC,CAAC;;;;;;EAjDp2rB;AAED,wBAAgB,qBAAqB,CACjC,GAAG,OAAuC,EAC1C,OAAO,GAAE;IACL,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACtB;;;;;;;;;;qBA0Ci1sB,CAAC;6BAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAkg0C,CAAC;;;;iBAA25B,CAAC;;;iBAA2oD,CAAC;;;;iBAA4mF,CAAC;;;;;;;;iBAA1mJ,CAAC;;;6BAArmd,CAAC;;;;;;;;;;;;;;;;;6BAA3o5B,CAAC;+BAA4C,CAAC;0BAAuC,CAAC;8BAA2C,CAAC;qBAAkC,CAAC;;;;;;;;;;;;;;EADp2rB"}
1
+ {"version":3,"file":"workflow-harness.d.ts","sourceRoot":"","sources":["../../src/testing/workflow-harness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,YAAY,EAAE,EACtB,MAAM,GAAE;IACJ,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC;CACtB;;;;;;;;;iBAgEi1sB,CAAC;yBAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAkg0C,CAAC;;;;aAA25B,CAAC;;;aAA2oD,CAAC;;;;aAA4mF,CAAC;;;;;;;;aAA1mJ,CAAC;;;yBAArmd,CAAC;;;;yBAA8g0C,CAAC;;;;;;;;;;;;;;;;;yBAA1ptE,CAAC;2BAA4C,CAAC;sBAAuC,CAAC;0BAA2C,CAAC;iBAAkC,CAAC;;;;;;EAjDp2rB;AAED,wBAAgB,qBAAqB,CACjC,GAAG,OAAuC,EAC1C,OAAO,GAAE;IACL,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACtB;;;;;;;;;;qBA0Ci1sB,CAAC;6BAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAkg0C,CAAC;;;;iBAA25B,CAAC;;;iBAA2oD,CAAC;;;;iBAA4mF,CAAC;;;;;;;;iBAA1mJ,CAAC;;;6BAArmd,CAAC;;;;6BAA8g0C,CAAC;;;;;;;;;;;;;;;;;6BAA1ptE,CAAC;+BAA4C,CAAC;0BAAuC,CAAC;8BAA2C,CAAC;qBAAkC,CAAC;;;;;;;;;;;;;;EADp2rB"}
@@ -127,6 +127,10 @@ export declare function createBilling(options: CreateBillingOptions): {
127
127
  projectSnapshot: (snapshot: SubscriptionSnapshot, correlation: {
128
128
  checkoutAttemptId?: string;
129
129
  }, reconcile?: boolean) => Promise<import("../persistence/memory.js").ProjectionWrite>;
130
+ projectFromProvider: (input: {
131
+ providerSubscriptionId: string;
132
+ checkoutAttemptId?: string;
133
+ }) => Promise<import("../persistence/memory.js").ProjectionWrite>;
130
134
  getBillableEntityBillingBlockers: (entity: BillableEntityRef, now: Date) => Promise<BillingBlocker[]>;
131
135
  getPayerBillingResponsibilities: (payer: PayerRef, now: Date) => Promise<PayerResponsibility[]>;
132
136
  commercialState: (entityId: string) => Promise<CommercialBillingState>;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflows/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflows/engine.ts"],"names":[],"mappings":"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"}
@@ -1874,6 +1874,23 @@ export function createBilling(options) {
1874
1874
  return catalog.revision;
1875
1875
  });
1876
1876
  }
1877
+ async function projectFromProvider(input) {
1878
+ if (options.mode === "oss" || !options.checkoutProvider) {
1879
+ throw new BillingWorkflowError("unsupported_operation");
1880
+ }
1881
+ if (!isBoundedOpaqueId(input.providerSubscriptionId)) {
1882
+ throw new BillingWorkflowError("operation_quarantined");
1883
+ }
1884
+ if (input.checkoutAttemptId !== undefined &&
1885
+ !isBoundedOpaqueId(input.checkoutAttemptId)) {
1886
+ throw new BillingWorkflowError("operation_quarantined");
1887
+ }
1888
+ const adapter = provider(options.checkoutProvider);
1889
+ const snapshot = await callProvider(() => adapter.retrieveSubscription(input.providerSubscriptionId));
1890
+ return projectSnapshot(snapshot, {
1891
+ checkoutAttemptId: input.checkoutAttemptId ?? snapshot.metadata.checkoutAttemptId,
1892
+ });
1893
+ }
1877
1894
  return {
1878
1895
  store,
1879
1896
  startCheckout,
@@ -1888,6 +1905,7 @@ export function createBilling(options) {
1888
1905
  purgeExpiredSensitiveValues,
1889
1906
  claimReconciliationJobs,
1890
1907
  projectSnapshot,
1908
+ projectFromProvider,
1891
1909
  getBillableEntityBillingBlockers,
1892
1910
  getPayerBillingResponsibilities,
1893
1911
  commercialState,
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/workflows/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/workflows/engine.ts"],"names":[],"mappings":"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"}
package/docs/runbooks.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Status: package-owned procedures for `@codelitdev/billing`
4
4
  Audience: SendLit and CourseLit operators composing product-authenticated commands over `createOperations` and maintenance units
5
- Package version: 0.1.0-alpha.1 (experimental workflows; not a v1 cutover)
5
+ Package version: 0.1.0-alpha.2 (experimental workflows; not a v1 cutover)
6
6
 
7
7
  These runbooks name package units, not HTTP routes. Product CLIs and admin screens must supply `OperatorContext`, persist audit rows, and keep product nouns (organisation, school, trial, availability) outside canonical billing tables.
8
8
 
@@ -17,7 +17,7 @@ Bounded work units (the package does not start timers):
17
17
  - `runReconciliationBatch` / `claimReconciliationJobs`
18
18
  - `runDeadlineBatch`
19
19
  - `purgeExpiredSensitiveValues`
20
- - operations: `inspectEntity`, `health`, `reconcileSubscription`, `retryWebhook`, `requestCancellation`, `decryptReplay`
20
+ - operations: `inspectEntity`, `health`, `inspectWebhook`, `inspectWebhookReplay`, `retryWebhook`, `reconcileEntity`, `reconcileSubscription`, `projectProviderSubscription`, `requestCancellation`, `decryptReplay`
21
21
 
22
22
  Multi-instance safety comes from database claims. Never hold an application transaction across a provider call.
23
23
 
@@ -30,6 +30,7 @@ Multi-instance safety comes from database claims. Never hold an application tran
30
30
  3. Replay from the provider dashboard or stored ciphertext only through `decryptReplay` plus provider replay. Do not re-post unverified bodies.
31
31
  4. Drain with `runWebhookInboxBatch`. Duplicate `providerEventId` values must no-op.
32
32
  5. If events quarantine, inspect metadata (not raw SDK text) and either `retryWebhook(..., "preserve_attempts")` or start `new_budget` with an audit reason.
33
+ 6. If payment succeeded at the provider but no local entitlement row exists, `reconcileEntity` will fail with `subscription_required`. Catch up with `projectProviderSubscription` using the provider subscription id (return URL or provider dashboard) and the open checkout attempt id.
33
34
 
34
35
  ## Catalog mismatch at startup
35
36
 
@@ -129,7 +130,7 @@ Multi-instance safety comes from database claims. Never hold an application tran
129
130
 
130
131
  ## Canary checklist (consumer-owned)
131
132
 
132
- Until both products complete this list, keep `@codelitdev/billing@0.1.0-alpha.1` and treat workflows as experimental:
133
+ Until both products complete this list, keep `@codelitdev/billing@0.1.0-alpha.2` and treat workflows as experimental:
133
134
 
134
135
  - Feature-flag or percentage canary in SendLit first.
135
136
  - `generate --check` clean; reviewed Drizzle migration applied by the product job.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codelitdev/billing",
3
- "version": "0.1.0-alpha.1",
3
+ "version": "0.1.0-alpha.2",
4
4
  "description": "Provider-neutral billing engine for CodeLit products",
5
5
  "author": "CodeLit",
6
6
  "type": "module",