@arnaudjnn/billing-tools 0.38.0 → 0.39.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.
@@ -0,0 +1,31 @@
1
+ export type CheckLevel = "ok" | "warn" | "error";
2
+ export type Check = {
3
+ level: CheckLevel;
4
+ title: string;
5
+ detail: string;
6
+ /** What to do about it, when there is something to do. */
7
+ fix?: string;
8
+ };
9
+ export type DoctorResult = {
10
+ livemode: boolean;
11
+ checks: Check[];
12
+ /** True when no check failed at `error`. */
13
+ healthy: boolean;
14
+ };
15
+ /**
16
+ * Inspect a Stripe environment for the misconfigurations that fail silently.
17
+ *
18
+ * @param webhookUrl - the endpoint you expect to be registered. Omit to skip the
19
+ * webhook checks (correct for a local machine, which has none by design).
20
+ */
21
+ export declare function checkBillingSetup(opts?: {
22
+ webhookUrl?: string;
23
+ /** Skip Stripe Tax checks if you deliberately don't use automatic_tax. */
24
+ expectTax?: boolean;
25
+ }): Promise<DoctorResult>;
26
+ /** Render a DoctorResult for a terminal. Returns the exit code to use. */
27
+ export declare function formatDoctorResult(result: DoctorResult): {
28
+ text: string;
29
+ exitCode: number;
30
+ };
31
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAgBA,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;CAChB,GAAG,OAAO,CAAC,YAAY,CAAC,CA8H7B;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 ADDED
@@ -0,0 +1,125 @@
1
+ import { getStripe } from "./billing.js";
2
+ import { BILLING_WEBHOOK_EVENTS } from "./webhook-setup.js";
3
+ /**
4
+ * Inspect a Stripe environment for the misconfigurations that fail silently.
5
+ *
6
+ * @param webhookUrl - the endpoint you expect to be registered. Omit to skip the
7
+ * webhook checks (correct for a local machine, which has none by design).
8
+ */
9
+ export async function checkBillingSetup(opts = {}) {
10
+ const stripe = getStripe();
11
+ const checks = [];
12
+ const expectTax = opts.expectTax ?? true;
13
+ const account = await stripe.accounts.retrieve();
14
+ const livemode = !(process.env.STRIPE_SECRET_KEY ?? "").startsWith("sk_test");
15
+ checks.push({
16
+ level: "ok",
17
+ title: "Stripe account",
18
+ detail: `${account.id} (${account.country ?? "?"}) — ${livemode ? "LIVE" : "test"} mode`,
19
+ });
20
+ if (expectTax) {
21
+ // The silent one: with no registration Stripe Tax returns ZERO tax rather
22
+ // than an error, so the checkout total simply drops to the pre-tax amount.
23
+ const settings = await stripe.tax.settings.retrieve();
24
+ const registrations = await stripe.tax.registrations.list({ status: "active", limit: 100 });
25
+ const active = registrations.data.map((r) => r.country);
26
+ checks.push(settings.status === "active"
27
+ ? { level: "ok", title: "Stripe Tax settings", detail: "active" }
28
+ : {
29
+ level: "error",
30
+ title: "Stripe Tax settings",
31
+ detail: `status=${settings.status}, missing: ${settings.status_details?.pending?.missing_fields?.join(", ") || "unknown"}`,
32
+ fix: "Set the head office: stripe.tax.settings.update({ head_office: { address: { country } } })",
33
+ });
34
+ checks.push(active.length
35
+ ? { level: "ok", title: "Tax registrations", detail: active.join(", ") }
36
+ : {
37
+ level: "error",
38
+ title: "Tax registrations",
39
+ detail: "none active — Stripe Tax will compute ZERO tax, silently",
40
+ fix: "Register each jurisdiction you collect in: Dashboard → Tax → Registrations (per mode)",
41
+ });
42
+ // `unspecified` is refused by Stripe Tax, and the account default
43
+ // `inferred_by_currency` reads EUR as tax-INCLUSIVE — which turns a
44
+ // "€X + VAT" price into "€X including VAT" without any error.
45
+ const prices = await stripe.prices.list({ active: true, limit: 100 });
46
+ const managed = prices.data.filter((p) => p.metadata?.managedBy === "billing-tools");
47
+ const unspecified = managed.filter((p) => p.tax_behavior === "unspecified");
48
+ checks.push(unspecified.length === 0
49
+ ? {
50
+ level: "ok",
51
+ title: "Price tax_behavior",
52
+ detail: `${managed.length} managed price(s), all specified`,
53
+ }
54
+ : {
55
+ level: "error",
56
+ title: "Price tax_behavior",
57
+ detail: `${unspecified.length} managed price(s) are 'unspecified': ${unspecified
58
+ .map((p) => p.lookup_key ?? p.id)
59
+ .join(", ")}`,
60
+ fix: "Run ensurePlans() — it backfills tax_behavior on existing prices",
61
+ });
62
+ }
63
+ if (opts.webhookUrl) {
64
+ const all = (await stripe.webhookEndpoints.list({ limit: 100 })).data;
65
+ const matches = all.filter((e) => e.url === opts.webhookUrl);
66
+ if (matches.length === 0) {
67
+ checks.push({
68
+ level: "error",
69
+ title: "Webhook endpoint",
70
+ detail: `nothing registered for ${opts.webhookUrl}`,
71
+ fix: "ensureWebhookEndpoint({ url }) — payments are delivered by webhook",
72
+ });
73
+ }
74
+ else {
75
+ const missing = BILLING_WEBHOOK_EVENTS.filter((e) => !matches[0].enabled_events.includes(e) && !matches[0].enabled_events.includes("*"));
76
+ checks.push(missing.length === 0
77
+ ? { level: "ok", title: "Webhook events", detail: BILLING_WEBHOOK_EVENTS.join(", ") }
78
+ : {
79
+ level: "error",
80
+ title: "Webhook events",
81
+ detail: `endpoint is missing: ${missing.join(", ")}`,
82
+ fix: "ensureWebhookEndpoint({ url }) adds them without removing your own",
83
+ });
84
+ checks.push(matches[0].status === "enabled"
85
+ ? { level: "ok", title: "Webhook status", detail: "enabled" }
86
+ : {
87
+ level: "error",
88
+ title: "Webhook status",
89
+ detail: `endpoint is ${matches[0].status} — Stripe disables endpoints after ~3 days of failures`,
90
+ fix: "Fix the failures, then re-enable it in the Dashboard",
91
+ });
92
+ if (matches.length > 1) {
93
+ checks.push({
94
+ level: "warn",
95
+ title: "Duplicate endpoints",
96
+ detail: `${matches.length} endpoints share this URL; Stripe delivers to every one`,
97
+ fix: "ensureWebhookEndpoint({ url, pruneDuplicates: true })",
98
+ });
99
+ }
100
+ }
101
+ checks.push(process.env.STRIPE_WEBHOOK_SECRET
102
+ ? { level: "ok", title: "Signing secret", detail: "STRIPE_WEBHOOK_SECRET is set" }
103
+ : {
104
+ level: "error",
105
+ title: "Signing secret",
106
+ detail: "STRIPE_WEBHOOK_SECRET is unset — deliveries will be rejected with 503",
107
+ fix: "Take it from ensureWebhookEndpoint's output, or from `stripe listen` when developing",
108
+ });
109
+ }
110
+ return { livemode, checks, healthy: !checks.some((c) => c.level === "error") };
111
+ }
112
+ /** Render a DoctorResult for a terminal. Returns the exit code to use. */
113
+ export function formatDoctorResult(result) {
114
+ const icon = { ok: "✓", warn: "!", error: "✗" };
115
+ const lines = result.checks.map((c) => {
116
+ const head = `${icon[c.level]} ${c.title}: ${c.detail}`;
117
+ return c.fix && c.level !== "ok" ? `${head}\n → ${c.fix}` : head;
118
+ });
119
+ const failed = result.checks.filter((c) => c.level === "error").length;
120
+ lines.push("", failed === 0
121
+ ? `All good (${result.livemode ? "LIVE" : "test"} mode).`
122
+ : `${failed} problem(s) in ${result.livemode ? "LIVE" : "test"} mode.`);
123
+ return { text: lines.join("\n"), exitCode: failed === 0 ? 0 : 1 };
124
+ }
125
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -22,6 +22,7 @@ export { createToolListHandler, createToolDispatchHandler, type Dispatcher } fro
22
22
  export { createMcpTransport, type McpTransportOptions } from "./routes/mcp.js";
23
23
  export { createStripeWebhookHandler, type WebhookOptions } from "./routes/webhook.js";
24
24
  export { ensureWebhookEndpoint, BILLING_WEBHOOK_EVENTS, type EnsureWebhookResult, } from "./webhook-setup.js";
25
+ export { checkBillingSetup, formatDoctorResult, type Check, type CheckLevel, type DoctorResult, } from "./doctor.js";
25
26
  export { registerBillingCommands } from "./cli/commands.js";
26
27
  export { callTool, listTools, type ApiClientConfig } from "./cli/client.js";
27
28
  export { type CliOptions, type CliConfig, configPath, readConfig, writeConfig, resolveBaseUrl, resolveApiKey, } from "./cli/config.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
@@ -47,6 +47,9 @@ export { createMcpTransport } from "./routes/mcp.js";
47
47
  export { createStripeWebhookHandler } from "./routes/webhook.js";
48
48
  // Register the endpoint from a deploy script instead of the Dashboard.
49
49
  export { ensureWebhookEndpoint, BILLING_WEBHOOK_EVENTS, } from "./webhook-setup.js";
50
+ // Preflight for the misconfigurations that fail silently (zero tax, unspecified
51
+ // tax_behavior, a missing or disabled endpoint, duplicates).
52
+ export { checkBillingSetup, formatDoctorResult, } from "./doctor.js";
50
53
  // CLI factory
51
54
  export { registerBillingCommands } from "./cli/commands.js";
52
55
  export { callTool, listTools } from "./cli/client.js";
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arnaudjnn/billing-tools",
3
- "version": "0.38.0",
3
+ "version": "0.39.0",
4
4
  "description": "The get-paid engine for Stripe + WorkOS apps, for humans and AI agents. Drop-in API-key auth, token/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",