@arnaudjnn/billing-tools 2.11.0 → 2.13.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.
- package/README.md +8 -1
- package/dist/adapters/workos-org.d.ts +2 -0
- package/dist/adapters/workos-org.d.ts.map +1 -1
- package/dist/adapters/workos-org.js +40 -5
- package/dist/adapters/workos-org.js.map +1 -1
- package/dist/allowance.d.ts.map +1 -1
- package/dist/allowance.js +6 -2
- package/dist/allowance.js.map +1 -1
- package/dist/billing.d.ts.map +1 -1
- package/dist/billing.js +6 -5
- package/dist/billing.js.map +1 -1
- package/dist/checkout.d.ts +11 -3
- package/dist/checkout.d.ts.map +1 -1
- package/dist/checkout.js +16 -2
- package/dist/checkout.js.map +1 -1
- package/dist/create-billing.d.ts.map +1 -1
- package/dist/create-billing.js +8 -26
- package/dist/create-billing.js.map +1 -1
- package/dist/doctor.d.ts +39 -6
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +100 -51
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/metering.d.ts +11 -7
- package/dist/metering.d.ts.map +1 -1
- package/dist/metering.js +8 -3
- package/dist/metering.js.map +1 -1
- package/dist/plan-model.d.ts +84 -9
- package/dist/plan-model.d.ts.map +1 -1
- package/dist/plan-model.js +71 -6
- package/dist/plan-model.js.map +1 -1
- package/dist/plans.d.ts +2 -2
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +1 -1
- package/dist/plans.js.map +1 -1
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +23 -7
- package/dist/sync.js.map +1 -1
- package/dist/tax.d.ts +33 -0
- package/dist/tax.d.ts.map +1 -1
- package/dist/tax.js +90 -0
- package/dist/tax.js.map +1 -1
- package/dist/tools/billing.d.ts.map +1 -1
- package/dist/tools/billing.js +20 -4
- package/dist/tools/billing.js.map +1 -1
- package/dist/types.d.ts +39 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/usage-ledger.d.ts +38 -5
- package/dist/usage-ledger.d.ts.map +1 -1
- package/dist/usage-ledger.js +178 -23
- package/dist/usage-ledger.js.map +1 -1
- package/dist/usage.d.ts +27 -1
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +27 -4
- package/dist/usage.js.map +1 -1
- package/package.json +1 -1
package/dist/sync.js
CHANGED
|
@@ -75,12 +75,28 @@ const WORKOS_EVENTS = [
|
|
|
75
75
|
* subscription can hold items on different periods, so the window is the widest
|
|
76
76
|
* one — which is also the renewal date a customer is shown.
|
|
77
77
|
*/
|
|
78
|
-
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
78
|
+
/**
|
|
79
|
+
* Purchased seats BY SEAT TYPE. Sizes a `cap.perSeat` pool — the same breakdown the
|
|
80
|
+
* `purchased_seats` grant counts, and the only thing that can size a pool for a
|
|
81
|
+
* plan with more than one tier (`perSeat: "included"` multiplies each tier by its
|
|
82
|
+
* own allowance).
|
|
83
|
+
*
|
|
84
|
+
* Null when nothing is quantified, so the reader falls back to the active member
|
|
85
|
+
* count rather than to a pool of one seat.
|
|
86
|
+
*/
|
|
81
87
|
function purchasedSeatsOf(sub) {
|
|
82
|
-
const
|
|
83
|
-
|
|
88
|
+
const counts = {};
|
|
89
|
+
for (const item of sub.items?.data ?? []) {
|
|
90
|
+
const seatType = item.price?.metadata?.seatType;
|
|
91
|
+
const qty = item.quantity ?? 0;
|
|
92
|
+
if (!qty)
|
|
93
|
+
continue;
|
|
94
|
+
// An item with no seat type still counts toward the total — a `flat` plan has
|
|
95
|
+
// no seat types at all, and a pool sized per seat must not read zero there.
|
|
96
|
+
const key = seatType || "default";
|
|
97
|
+
counts[key] = (counts[key] ?? 0) + qty;
|
|
98
|
+
}
|
|
99
|
+
return Object.keys(counts).length ? counts : null;
|
|
84
100
|
}
|
|
85
101
|
function subscriptionPeriod(sub) {
|
|
86
102
|
const items = (sub.items?.data ?? []);
|
|
@@ -118,9 +134,9 @@ export function createStripeEventHandler(opts) {
|
|
|
118
134
|
subscriptionId: sub.id,
|
|
119
135
|
...subscriptionPeriod(sub),
|
|
120
136
|
// Recorded on every subscription event so a `cap.perSeat` pool resizes
|
|
121
|
-
// when seats are added or removed.
|
|
137
|
+
// when seats are added or removed. Broken down by seat type, the same way
|
|
122
138
|
// the `purchased_seats` grant counts them.
|
|
123
|
-
|
|
139
|
+
seatCounts: purchasedSeatsOf(sub),
|
|
124
140
|
});
|
|
125
141
|
return;
|
|
126
142
|
}
|
package/dist/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,QAAQ,EACR,cAAc,EACd,SAAS,GAEV,MAAM,YAAY,CAAC;AAIpB,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAuD5C,6EAA6E;AAC7E,SAAS,gBAAgB,CAAC,KAAkB;IAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,IAAI,OAAO;YAAE,OAAO;QACpB,MAAM,KAAK,CACT,8BAA8B,YAAY,wFAAwF,EAClI,EAAE,CACH,CAAC;QACF,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC,CAAC;IACF,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,MAAM;YACd,MAAM,MAAM,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,sBAAsB,YAAY,oBAAoB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACxF,OAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAA6B,IAAI,IAAI,CAAC;QAC3D,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM;YACtB,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO;YAC5B,MAAM,MAAM,EAAE,CAAC;YACf,MAAM,KAAK,CACT,eAAe,YAAY;4EACyC,EACpE,CAAC,MAAM,EAAE,MAAM,CAAC,CACjB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,gDAAgD;AAChD,EAAE;AACF,gFAAgF;AAChF,4EAA4E;AAC5E,+EAA+E;AAC/E,oEAAoE;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,4BAA4B;IAC5B,cAAc;IACd,wBAAwB;CACzB,CAAC;AAEF,0EAA0E;AAC1E,gFAAgF;AAChF,4EAA4E;AAC5E,gFAAgF;AAChF,yBAAyB;AACzB,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;CAChC,CAAC;AACF,MAAM,aAAa,GAAG;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,cAAc;CACf,CAAC;AAaF;;;;;;;;;;;;GAYG;AACH;;;;;;;;GAQG;AACH;;iFAEiF;AACjF,SAAS,gBAAgB,CAAC,GAAwB;IAChD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAwB;IAKlD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAA0B,CAAC;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,GAAG,GAAG,CAAC,IAAwB,EAAE,EAAE,CACvC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,OAAO;QACL,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAKxC;IACC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACxC,OAAO,KAAK,UAAU,YAAY,CAAC,KAAmB;QACpD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAA6B,CAAC;YACrD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,+BAA+B,EAAE,CAAC;gBACnD,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;oBACxC,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,UAAU;oBAClB,cAAc,EAAE,IAAI;oBACpB,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;gBACxC,IAAI,EAAE,IAAI,IAAI,SAAS;gBACvB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtB,GAAG,kBAAkB,CAAC,GAAG,CAAC;gBAC1B,uEAAuE;gBACvE,0EAA0E;gBAC1E,2CAA2C;gBAC3C,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC;aAC7B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,2EAA2E;QAC3E,sCAAsC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAiC,CAAC;YAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO;YACvC,MAAM,UAAU,GACd,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;YACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC;gBAAE,OAAO;YACxC,MAAM,YAAY,CAChB,UAAU,EACV,OAAO,EACP,aAAa,OAAO,uBAAuB,EAC3C,QAAQ,EACR,mBAAmB,OAAO,CAAC,EAAE,EAAE,CAChC,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAI1B,CAAC;YACF,IAAI,OAAO,CAAC,cAAc,KAAK,qBAAqB,IAAI,OAAO,CAAC,cAAc,KAAK,oBAAoB;gBAAE,OAAO;YAChH,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAAE,OAAO;YACvD,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,sEAAsE;YACtE,gDAAgD;YAChD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,2BAA2B;YAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE1C,wEAAwE;YACxE,4DAA4D;YAC5D,EAAE;YACF,yEAAyE;YACzE,yEAAyE;YACzE,2EAA2E;YAC3E,qEAAqE;YACrE,kEAAkE;YAClE,4EAA4E;YAC5E,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBAChD,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,MAAM,WAAW,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY;gBACpD,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvC,CAAC,CAAC,cAAc,CAAC;YACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,cAAc,IAAI,WAAW,CAAC;YAC5C,MAAM,WAAW,GAAG,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAE7D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,yEAAyE;gBACzE,sCAAsC;gBACtC,MAAM,YAAY,CAChB,OAAO,CAAC,QAAQ,EAChB,OAAO,EACP,qBAAqB,IAAI,KAAK,WAAW,GAAG,EAC5C,QAAQ,EACR,kBAAkB,OAAO,CAAC,EAAE,EAAE,CAC/B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAA2D,CAAC;YACvF,IAAI,CAAC,OAAO,CAAC,YAAY;gBAAE,OAAO,CAAC,kDAAkD;YACrF,MAAM,GAAG,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAE1E,CAAC;YACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;gBACxC,MAAM,EAAE,UAAU;gBAClB,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtB,SAAS,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;aACjG,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,wBAAwB,CAAC;QAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;IAEH,KAAK,UAAU,YAAY,CAAC,KAAuC;QACjE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAuB,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,EAAE;YAAE,OAAO;QACtB,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,sBAAsB;gBACzB,MAAM,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAA+B,CAAC,CAAC;gBAC7E,MAAM;YACR,KAAK,sBAAsB;gBACzB,MAAM,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAA+B,CAAC,CAAC;gBAC9E,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,MAAM,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3C,MAAM;QACV,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,wEAAwE;IACxE,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB;QACxC,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,mBAAmB,CAAC;QAC/C,CAAC,CAAC,gBAAgB,CAAC;IAErB,KAAK,UAAU,OAAO;QACpB,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC;YAC/B,KAAK,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjC,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC;YAC/B,KAAK,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjC,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,SAAS,KAAK,CAAC,OAAgE,EAAE;QAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;QAC7C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,OAAO,IAAI,OAAO;gBAAE,OAAO,CAAC,gBAAgB;YAChD,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;oBAC7B,OAAO,CAAC,KAAK,CAAC,kBAAmB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;oBAAS,CAAC;gBACT,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,mDAAmD;QAClD,MAAiC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7C,KAAK,IAAI,EAAE,CAAC,CAAC,uBAAuB;QACpC,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,IAAI,CAAC;YACf,aAAa,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED;;;;sCAIsC;AACtC,MAAM,UAAU,eAAe,CAC7B,IAAiB,EACjB,OAA4B,EAAE;IAE9B,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,GACR,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YACrF,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE;oBAC7D,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/tax.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BillingConfig } from "./types.js";
|
|
1
2
|
export type TaxDecision = {
|
|
2
3
|
/** e.g. 22 for 22%. Zero for reverse charge and out-of-scope sales. */
|
|
3
4
|
percent: number;
|
|
@@ -29,6 +30,38 @@ export declare function invalidateTaxRates(): void;
|
|
|
29
30
|
export declare function ensureStripeTaxRate(decision: TaxDecision, opts?: {
|
|
30
31
|
displayName?: string;
|
|
31
32
|
}): Promise<string | null>;
|
|
33
|
+
export type TaxMode =
|
|
34
|
+
/** This library: `resolveTax` (sales-tax + VIES) → an explicit Stripe TaxRate. */
|
|
35
|
+
"billing-tools"
|
|
36
|
+
/** Stripe Tax (`automatic_tax`). Requires registrations, or it computes 0%. */
|
|
37
|
+
| "stripe"
|
|
38
|
+
/** No tax on anything the library charges. */
|
|
39
|
+
| "none";
|
|
40
|
+
/**
|
|
41
|
+
* The declared mode, with the older fields folded in.
|
|
42
|
+
*
|
|
43
|
+
* `origin` alone means `"billing-tools"`: naming where you are established is the
|
|
44
|
+
* only thing that mode needs, so requiring a second field to say "yes, really"
|
|
45
|
+
* would be ceremony. `automatic: true` remains `"stripe"`. Nothing declared is
|
|
46
|
+
* `"none"` — the same silence that used to mean "untaxed", now spelled.
|
|
47
|
+
*/
|
|
48
|
+
export declare function taxModeOf(tax: BillingConfig["tax"] | undefined): TaxMode;
|
|
49
|
+
/**
|
|
50
|
+
* What to put on a charge, derived from `config.tax` alone.
|
|
51
|
+
*
|
|
52
|
+
* Returns the same `{ taxRates, automaticTax }` shape every charge site already
|
|
53
|
+
* takes, so wiring it is one line per site and an explicit argument still wins.
|
|
54
|
+
*
|
|
55
|
+
* Under `"billing-tools"` the rate comes from the CUSTOMER: their address decides
|
|
56
|
+
* domestic vs cross-border and their Stripe tax id decides reverse charge. A
|
|
57
|
+
* customer with no address on file is charged the DOMESTIC rate rather than
|
|
58
|
+
* nothing — the same direction `resolveTax` takes for an unverifiable VAT number,
|
|
59
|
+
* because over-charging is recoverable and under-charging means owing it yourself.
|
|
60
|
+
*/
|
|
61
|
+
export declare function taxFor(stripeCustomerId: string | null, tax: BillingConfig["tax"] | undefined): Promise<{
|
|
62
|
+
taxRates?: string[];
|
|
63
|
+
automaticTax?: boolean;
|
|
64
|
+
}>;
|
|
32
65
|
/** resolveTax + ensureStripeTaxRate: the ids to put on a session's line items. */
|
|
33
66
|
export declare function taxRatesFor(opts: {
|
|
34
67
|
originCountry: string;
|
package/dist/tax.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tax.d.ts","sourceRoot":"","sources":["../src/tax.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tax.d.ts","sourceRoot":"","sources":["../src/tax.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgBhD,MAAM,MAAM,WAAW,GAAG;IACxB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,OAAO,CAAC,WAAW,CAAC,CAavB;AAuBD;sCACsC;AACtC,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,WAAW,EACrB,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyCxB;AAeD,MAAM,MAAM,OAAO;AACjB,kFAAkF;AAChF,eAAe;AACjB,+EAA+E;GAC7E,QAAQ;AACV,8CAA8C;GAC5C,MAAM,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,OAAO,CAKxE;AAMD;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,GACpC,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAqC1D;AAyBD,kFAAkF;AAClF,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAIxD;AAED;;;;;;;;;GASG;AACH,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
package/dist/tax.js
CHANGED
|
@@ -79,6 +79,96 @@ export async function ensureStripeTaxRate(decision, opts = {}) {
|
|
|
79
79
|
rateInflight.set(key, resolve);
|
|
80
80
|
return resolve;
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* The declared mode, with the older fields folded in.
|
|
84
|
+
*
|
|
85
|
+
* `origin` alone means `"billing-tools"`: naming where you are established is the
|
|
86
|
+
* only thing that mode needs, so requiring a second field to say "yes, really"
|
|
87
|
+
* would be ceremony. `automatic: true` remains `"stripe"`. Nothing declared is
|
|
88
|
+
* `"none"` — the same silence that used to mean "untaxed", now spelled.
|
|
89
|
+
*/
|
|
90
|
+
export function taxModeOf(tax) {
|
|
91
|
+
if (!tax)
|
|
92
|
+
return "none";
|
|
93
|
+
if (tax.mode)
|
|
94
|
+
return tax.mode;
|
|
95
|
+
if (tax.automatic)
|
|
96
|
+
return "stripe";
|
|
97
|
+
return tax.origin ? "billing-tools" : "none";
|
|
98
|
+
}
|
|
99
|
+
// A missing `origin` under the billing-tools mode is a config error, not a
|
|
100
|
+
// per-charge one, so it is said once rather than on every invoice.
|
|
101
|
+
let warnedNoOrigin = false;
|
|
102
|
+
/**
|
|
103
|
+
* What to put on a charge, derived from `config.tax` alone.
|
|
104
|
+
*
|
|
105
|
+
* Returns the same `{ taxRates, automaticTax }` shape every charge site already
|
|
106
|
+
* takes, so wiring it is one line per site and an explicit argument still wins.
|
|
107
|
+
*
|
|
108
|
+
* Under `"billing-tools"` the rate comes from the CUSTOMER: their address decides
|
|
109
|
+
* domestic vs cross-border and their Stripe tax id decides reverse charge. A
|
|
110
|
+
* customer with no address on file is charged the DOMESTIC rate rather than
|
|
111
|
+
* nothing — the same direction `resolveTax` takes for an unverifiable VAT number,
|
|
112
|
+
* because over-charging is recoverable and under-charging means owing it yourself.
|
|
113
|
+
*/
|
|
114
|
+
export async function taxFor(stripeCustomerId, tax) {
|
|
115
|
+
// The consumer's own resolver wins outright: it may read a rate from their own
|
|
116
|
+
// records, and second-guessing it would be worse than not offering the hook.
|
|
117
|
+
if (tax?.rates && stripeCustomerId) {
|
|
118
|
+
const rates = await tax.rates(stripeCustomerId);
|
|
119
|
+
if (rates?.length)
|
|
120
|
+
return { taxRates: rates };
|
|
121
|
+
}
|
|
122
|
+
switch (taxModeOf(tax)) {
|
|
123
|
+
case "stripe":
|
|
124
|
+
return { automaticTax: true };
|
|
125
|
+
case "none":
|
|
126
|
+
return {};
|
|
127
|
+
case "billing-tools": {
|
|
128
|
+
const originCountry = tax?.origin;
|
|
129
|
+
if (!originCountry) {
|
|
130
|
+
if (!warnedNoOrigin) {
|
|
131
|
+
warnedNoOrigin = true;
|
|
132
|
+
console.warn('[billing] config.tax.mode is "billing-tools" but no `origin` country is set, so no ' +
|
|
133
|
+
"rate can be worked out (domestic vs cross-border is decided by where you are " +
|
|
134
|
+
"established). Every charge the library raises goes out untaxed until you set it.");
|
|
135
|
+
}
|
|
136
|
+
return {};
|
|
137
|
+
}
|
|
138
|
+
const where = stripeCustomerId ? await customerPlaceOfSupply(stripeCustomerId) : null;
|
|
139
|
+
const { rateIds } = await taxRatesFor({
|
|
140
|
+
originCountry,
|
|
141
|
+
// No address on file → treat it as a domestic sale (see above).
|
|
142
|
+
country: where?.country ?? originCountry,
|
|
143
|
+
state: where?.state,
|
|
144
|
+
taxNumber: where?.taxNumber,
|
|
145
|
+
});
|
|
146
|
+
return rateIds.length ? { taxRates: rateIds } : {};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/** Country/state/VAT number as Stripe holds them for this customer. */
|
|
151
|
+
async function customerPlaceOfSupply(stripeCustomerId) {
|
|
152
|
+
try {
|
|
153
|
+
const customer = await getStripe().customers.retrieve(stripeCustomerId, {
|
|
154
|
+
expand: ["tax_ids"],
|
|
155
|
+
});
|
|
156
|
+
if (customer.deleted)
|
|
157
|
+
return null;
|
|
158
|
+
return {
|
|
159
|
+
country: customer.address?.country ?? undefined,
|
|
160
|
+
state: customer.address?.state ?? null,
|
|
161
|
+
// Any tax id on file: `eu_vat` is the one that reverse-charges, and
|
|
162
|
+
// `sales-tax` decides that from the number itself.
|
|
163
|
+
taxNumber: customer.tax_ids?.data?.[0]?.value ?? null,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
// A charge must not fail because the customer read did. Domestic is the safe
|
|
168
|
+
// fallback, as above.
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
82
172
|
/** resolveTax + ensureStripeTaxRate: the ids to put on a session's line items. */
|
|
83
173
|
export async function taxRatesFor(opts) {
|
|
84
174
|
const decision = await resolveTax(opts);
|
package/dist/tax.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tax.js","sourceRoot":"","sources":["../src/tax.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tax.js","sourceRoot":"","sources":["../src/tax.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAsBlE;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,KAAK,GAAE,gBAAqB,QA6R7B"}
|
package/dist/tools/billing.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { enforceAccess } from "../auth.js";
|
|
3
|
+
import { taxFor } from "../tax.js";
|
|
3
4
|
import { ensureStripeCustomer, getBillingCustomerId, getCreditBalance, getAutoReloadSettings, setAutoReloadSettings, createCreditCheckoutSession, quoteCreditPurchase, createBillingPortalSession, listInvoices, getInvoice, stripeConfigured, } from "../billing.js";
|
|
4
5
|
const NO_STRIPE = {
|
|
5
6
|
isError: true,
|
|
@@ -13,6 +14,20 @@ export function registerBillingOnlyTools(server, adapter, config, toolCosts, top
|
|
|
13
14
|
return existing;
|
|
14
15
|
return ensureStripeCustomer(adapter, orgId, undefined, config);
|
|
15
16
|
};
|
|
17
|
+
// What a top-up is taxed at: the caller's own hooks first (they are per-ORG, which
|
|
18
|
+
// `config.tax` cannot express), then the deployment's declared mode. Both the
|
|
19
|
+
// quote and the charge go through this, so the number quoted is the number
|
|
20
|
+
// charged — the whole point of `quoteCreditPurchase` sharing the rate ids.
|
|
21
|
+
const topUpTax = async (orgId, cid) => {
|
|
22
|
+
if (topUp.taxRates) {
|
|
23
|
+
const rates = await topUp.taxRates(orgId);
|
|
24
|
+
if (rates?.length)
|
|
25
|
+
return { taxRates: rates };
|
|
26
|
+
}
|
|
27
|
+
if (topUp.automaticTax)
|
|
28
|
+
return { automaticTax: true };
|
|
29
|
+
return taxFor(cid ?? (await getBillingCustomerId(adapter, orgId)), config.tax);
|
|
30
|
+
};
|
|
16
31
|
server.tool("get_credit_balance", `Returns your current credit balance, per-tool costs, and auto-reload settings.`, {}, async () => {
|
|
17
32
|
const auth = await enforceAccess(adapter);
|
|
18
33
|
if ("isError" in auth)
|
|
@@ -40,8 +55,10 @@ Quoted from the same Stripe tax rates buy_credits will charge, so the two agree.
|
|
|
40
55
|
return auth;
|
|
41
56
|
if (!stripeConfigured())
|
|
42
57
|
return NO_STRIPE;
|
|
43
|
-
|
|
44
|
-
|
|
58
|
+
// The quote must read the SAME rates the purchase will carry, or the dialog
|
|
59
|
+
// shows a total the card is not charged.
|
|
60
|
+
const { taxRates } = await topUpTax(auth.orgId);
|
|
61
|
+
const quote = await quoteCreditPurchase(amount, taxRates ?? []);
|
|
45
62
|
return {
|
|
46
63
|
content: [
|
|
47
64
|
{
|
|
@@ -69,8 +86,7 @@ Quoted from the same Stripe tax rates buy_credits will charge, so the two agree.
|
|
|
69
86
|
return NO_STRIPE;
|
|
70
87
|
const cid = await customerId(auth.orgId);
|
|
71
88
|
const url = await createCreditCheckoutSession(cid, auth.orgId, amount, config, {
|
|
72
|
-
|
|
73
|
-
automaticTax: topUp.automaticTax,
|
|
89
|
+
...(await topUpTax(auth.orgId, cid)),
|
|
74
90
|
successUrl: topUp.successUrl,
|
|
75
91
|
cancelUrl: topUp.cancelUrl,
|
|
76
92
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,EACV,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,IAAa;IACtB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sDAAsD,EAAE,CAAC;CACnG,CAAC;AAkBF,MAAM,UAAU,wBAAwB,CACtC,MAAiB,EACjB,OAAuB,EACvB,MAAsB,EACtB,SAAiC,EACjC,QAA0B,EAAE;IAE5B,wDAAwD;IACxD,MAAM,UAAU,GAAG,KAAK,EAAE,KAAa,EAAmB,EAAE;QAC1D,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,OAAO,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,gFAAgF,EAChF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC,gBAAgB,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EACjG,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB;iFAC6E,EAC7E;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;KAC5G,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC,gBAAgB,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1C,
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -93,6 +93,11 @@ export interface BillingAdapter {
|
|
|
93
93
|
* seats and filled six paid for ten; when it is absent the active member
|
|
94
94
|
* count is used instead. */
|
|
95
95
|
seats?: number | null;
|
|
96
|
+
/** The same quantity broken down by seat type. Required by
|
|
97
|
+
* `cap.perSeat: "included"`, which multiplies each tier by its OWN
|
|
98
|
+
* `includedCredits` — the only form that can size a pool for a plan with more
|
|
99
|
+
* than one tier. The total above is its sum. */
|
|
100
|
+
seatCounts?: Record<string, number> | null;
|
|
96
101
|
}>;
|
|
97
102
|
/** Record subscription state. `plan: undefined` leaves the plan as-is; `null`
|
|
98
103
|
* clears it (back to the default plan). */
|
|
@@ -134,20 +139,44 @@ export interface BillingConfig {
|
|
|
134
139
|
*/
|
|
135
140
|
defaultLocale?: string;
|
|
136
141
|
/**
|
|
137
|
-
*
|
|
138
|
-
* auto-reload invoice, which no form precedes.
|
|
142
|
+
* WHO calculates tax, declared ONCE for the whole deployment.
|
|
139
143
|
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
144
|
+
* Every charge the library builds reads this — the seat Checkout Session, the
|
|
145
|
+
* `buy_credits` top-up, and the auto-reload invoice — so the answer to "does
|
|
146
|
+
* this account charge VAT" lives in one place instead of at each call site. An
|
|
147
|
+
* explicit `taxRates` / `automaticTax` argument at a call site still wins.
|
|
148
|
+
*
|
|
149
|
+
* That per-site arrangement is why the two charges with no form behind them (the
|
|
150
|
+
* auto-reload and the top-up) went out untaxed while every seat invoice on the
|
|
151
|
+
* same account charged 22% IVA: nothing was wrong at any one site, there was
|
|
152
|
+
* simply no single place that said what the account does.
|
|
146
153
|
*/
|
|
147
154
|
tax?: {
|
|
148
|
-
/**
|
|
155
|
+
/**
|
|
156
|
+
* Where YOU are established, as an ISO country code ("IT", "FR", "US").
|
|
157
|
+
*
|
|
158
|
+
* Setting it selects `mode: "billing-tools"` — the library works the rate out
|
|
159
|
+
* itself (`sales-tax` + VIES) from the customer's address and tax id, and
|
|
160
|
+
* applies it as an explicit Stripe TaxRate. It decides domestic vs
|
|
161
|
+
* cross-border, which is the whole question a VAT rate turns on, so there is
|
|
162
|
+
* nothing else to configure.
|
|
163
|
+
*/
|
|
164
|
+
origin?: string;
|
|
165
|
+
/** Override the mode `origin` / `automatic` imply. See `TaxMode`. */
|
|
166
|
+
mode?: "billing-tools" | "stripe" | "none";
|
|
167
|
+
/**
|
|
168
|
+
* Resolve the TaxRate ids yourself, e.g. from your own records. Wins over
|
|
169
|
+
* `mode` when it returns any — the hook exists to be authoritative.
|
|
170
|
+
*/
|
|
149
171
|
rates?: (stripeCustomerId: string) => Promise<string[]> | string[];
|
|
150
|
-
/**
|
|
172
|
+
/**
|
|
173
|
+
* Use Stripe Tax. Equivalent to `mode: "stripe"`, and ignored when `rates`
|
|
174
|
+
* returns any (Stripe rejects both on one charge).
|
|
175
|
+
*
|
|
176
|
+
* Off unless set, everywhere: a charge with neither is untaxed rather than
|
|
177
|
+
* quietly handed to Stripe Tax, which without an active registration
|
|
178
|
+
* computes 0% and reports no error.
|
|
179
|
+
*/
|
|
151
180
|
automatic?: boolean;
|
|
152
181
|
};
|
|
153
182
|
/** What the payment forms offer. See `defaultPaymentMethodConfig`. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB;iDAC6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACjE,0EAA0E;IAC1E,eAAe,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD,gFAAgF;IAChF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,0EAA0E;IAC1E,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5D,0DAA0D;IAC1D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,wEAAwE;IACxE,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE;;8CAE0C;IAC1C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpG,qDAAqD;IACrD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAClD,uEAAuE;IACvE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACtF;8EAC0E;IAC1E,mBAAmB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD;wFACoF;IACpF,kBAAkB,CAAC,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAO3G,sEAAsE;IACtE,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,yEAAyE;IACzE,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,4EAA4E;IAC5E,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAQtF,wDAAwD;IACxD,eAAe,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B;;uDAE+C;QAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB;;;qCAG6B;QAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,mBAAmB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,mBAAmB;AAiNnB,MAAM,UAAU,aAAa,CAAC,CAAgB;IAC5C,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,GAAG;QACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK;QAC7B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,EAAE;QACxC,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,EAAE;QACpC,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,cAAc,EAAE,CAAC,CAAC,cAAc;KACjC,CAAC;AACJ,CAAC;AAED;;;;;;mDAMmD;AACnD,MAAM,UAAU,sBAAsB,CACpC,UAA0B,EAC1B,MAAM,GAAG,sBAAsB;IAE/B,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACvC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC"}
|
package/dist/usage-ledger.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type LedgerCoverage, type PlanCatalog } from "./plan-model.js";
|
|
1
2
|
/** Which allowance paid for a call. */
|
|
2
3
|
export type FundingSource =
|
|
3
4
|
/** The org-wide included window. */
|
|
@@ -37,6 +38,16 @@ export interface UsageLedger {
|
|
|
37
38
|
record(event: UsageEvent): Promise<void>;
|
|
38
39
|
/** Summed cost in [start, end). */
|
|
39
40
|
total(query: UsageQuery): Promise<number>;
|
|
41
|
+
/**
|
|
42
|
+
* Which windows this ledger can count (see `LedgerCoverage`).
|
|
43
|
+
*
|
|
44
|
+
* Optional, and omitting it means "not stated" rather than "counts nothing":
|
|
45
|
+
* the config checks skip a ledger that doesn't declare, exactly as they skip a
|
|
46
|
+
* caller who passes no ledger at all. Every implementation shipped here declares
|
|
47
|
+
* it, which is what lets one static check catch a plan whose included window the
|
|
48
|
+
* wired ledger cannot see — the failure that otherwise reads 0% forever.
|
|
49
|
+
*/
|
|
50
|
+
readonly covers?: LedgerCoverage;
|
|
40
51
|
}
|
|
41
52
|
/**
|
|
42
53
|
* The ledger this library has always had: the debits themselves.
|
|
@@ -64,16 +75,23 @@ export declare const USAGE_METER_EVENT = "billing_tools_usage";
|
|
|
64
75
|
* overshoot slightly. Irrelevant against a pool of a million credits; it is why
|
|
65
76
|
* seat packs, which are small, can keep using the exact balance path.
|
|
66
77
|
*
|
|
67
|
-
*
|
|
78
|
+
* The meter provisions itself on first use, like plan prices. `ensureMeters` is
|
|
79
|
+
* the same call made eagerly, for a deploy step that wants it to exist before a
|
|
80
|
+
* request does.
|
|
68
81
|
*/
|
|
69
82
|
export declare function stripeMeterUsageLedger(opts?: {
|
|
70
83
|
eventName?: string;
|
|
71
84
|
}): UsageLedger;
|
|
72
85
|
/**
|
|
73
|
-
*
|
|
86
|
+
* Ensure the usage meter exists, eagerly. Idempotent, like `ensurePlans`.
|
|
87
|
+
*
|
|
88
|
+
* No longer a prerequisite — the ledger provisions the meter on first use — but
|
|
89
|
+
* still worth calling from a deploy step or a setup script when you'd rather the
|
|
90
|
+
* meter existed before a customer's request pays for creating it, or want the
|
|
91
|
+
* failure to surface in a deploy log instead of a warning. Unlike the lazy path
|
|
92
|
+
* this one THROWS, because a setup script wants to know.
|
|
74
93
|
*
|
|
75
|
-
*
|
|
76
|
-
* calls it. Aggregates `sum` over the reported `value`, which is the credit cost.
|
|
94
|
+
* Aggregates `sum` over the reported `value`, which is the credit cost.
|
|
77
95
|
*/
|
|
78
96
|
export declare function ensureMeters(opts?: {
|
|
79
97
|
eventName?: string;
|
|
@@ -82,7 +100,9 @@ export declare function ensureMeters(opts?: {
|
|
|
82
100
|
meterId: string;
|
|
83
101
|
created: boolean;
|
|
84
102
|
}>;
|
|
85
|
-
/** Forget resolved meter ids — for a test, or after archiving one.
|
|
103
|
+
/** Forget resolved meter ids — for a test, or after archiving one. Also clears the
|
|
104
|
+
* once-per-process complaint above, so a key that gains permission (or a test that
|
|
105
|
+
* wants to see it again) gets a fresh line rather than silence. */
|
|
86
106
|
export declare function invalidateMeters(): void;
|
|
87
107
|
export declare function stripeUsageLedger(opts?: {
|
|
88
108
|
eventName?: string;
|
|
@@ -103,6 +123,19 @@ export declare function stripeUsageLedger(opts?: {
|
|
|
103
123
|
*/
|
|
104
124
|
orgWide?: UsageLedger;
|
|
105
125
|
}): UsageLedger;
|
|
126
|
+
export declare function defaultUsageLedger(): UsageLedger;
|
|
127
|
+
/**
|
|
128
|
+
* Warn at boot about the plans whose included windows this ledger cannot count.
|
|
129
|
+
*
|
|
130
|
+
* Worth a line in a deploy log because the failure is silent and looks like
|
|
131
|
+
* generosity: the window reads 0, so nothing is ever refused. A ledger that
|
|
132
|
+
* declares no `covers` (a consumer's own) says nothing here — see `UsageLedger`.
|
|
133
|
+
*
|
|
134
|
+
* Called from `createMeter`, i.e. once per composition rather than per metered
|
|
135
|
+
* call, so it needs no de-duplication: a second line means a second meter was
|
|
136
|
+
* built, which is itself worth seeing.
|
|
137
|
+
*/
|
|
138
|
+
export declare function warnLedgerGaps(plans: PlanCatalog, ledger: UsageLedger): void;
|
|
106
139
|
/** The one method this needs from a driver. */
|
|
107
140
|
export interface SqlClient {
|
|
108
141
|
query<R = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-ledger.d.ts","sourceRoot":"","sources":["../src/usage-ledger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage-ledger.d.ts","sourceRoot":"","sources":["../src/usage-ledger.ts"],"names":[],"mappings":"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"}
|