@arnaudjnn/billing-tools 15.14.0 → 15.15.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.
- package/README.md +1 -1
- package/dist/routes/mcp.d.ts +8 -0
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +13 -5
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/rest.d.ts +16 -0
- package/dist/routes/rest.d.ts.map +1 -1
- package/dist/routes/rest.js +15 -5
- package/dist/routes/rest.js.map +1 -1
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +73 -4
- package/dist/subscription.js.map +1 -1
- package/dist/tools/subscription.d.ts.map +1 -1
- package/dist/tools/subscription.js +5 -2
- package/dist/tools/subscription.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -654,7 +654,7 @@ tax: sellerRegime({
|
|
|
654
654
|
})
|
|
655
655
|
```
|
|
656
656
|
|
|
657
|
-
What each produces, asserted in `
|
|
657
|
+
What each produces, asserted in `tests/seller-regime.test.mjs`:
|
|
658
658
|
|
|
659
659
|
| | domestic | EU B2C | EU B2B (valid VAT id) | UK B2C |
|
|
660
660
|
|---|---|---|---|---|
|
package/dist/routes/mcp.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { BillingAdapter } from "../types.js";
|
|
3
|
+
import { type Principal } from "../auth.js";
|
|
3
4
|
export interface McpTransportOptions {
|
|
4
5
|
register: (server: McpServer) => void;
|
|
5
6
|
adapter: BillingAdapter;
|
|
@@ -26,6 +27,13 @@ export interface McpTransportOptions {
|
|
|
26
27
|
* handler is reached, which is also what starts OAuth discovery.
|
|
27
28
|
*/
|
|
28
29
|
requireAuth?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* WHO is calling, when this surface knows — see `createToolDispatchHandler`. An MCP
|
|
32
|
+
* client authenticating with an org API key has no user behind it, so this stays null
|
|
33
|
+
* for the common case; an OAuth path that resolved a user should return one, or the
|
|
34
|
+
* admin-only tools cannot be enforced here either.
|
|
35
|
+
*/
|
|
36
|
+
principal?: (request: Request) => Principal | null | Promise<Principal | null>;
|
|
29
37
|
}
|
|
30
38
|
export declare function createMcpTransport(opts: McpTransportOptions): {
|
|
31
39
|
GET: (request: Request) => Promise<Response>;
|
package/dist/routes/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/routes/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/routes/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAO/F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;oFACgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IAC3D;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CAChF;AAOD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB;mBAqB1B,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC;oBAA3B,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC;;EAoD5D"}
|
package/dist/routes/mcp.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runWithAuth, runWithResolvedOrg } from "../auth.js";
|
|
1
|
+
import { runWithAuth, runWithPrincipal, runWithResolvedOrg } from "../auth.js";
|
|
2
2
|
function wwwAuth(realm, resourceMetadata) {
|
|
3
3
|
const base = `Bearer realm="${realm}", error="invalid_token"`;
|
|
4
4
|
return resourceMetadata ? `${base}, resource_metadata="${resourceMetadata}"` : base;
|
|
@@ -26,10 +26,14 @@ export function createMcpTransport(opts) {
|
|
|
26
26
|
const authHeader = request.headers.get("authorization");
|
|
27
27
|
const token = authHeader?.startsWith("Bearer ") ? authHeader.slice(7) : null;
|
|
28
28
|
const rm = typeof opts.resourceMetadata === "function" ? opts.resourceMetadata(request) : opts.resourceMetadata;
|
|
29
|
+
const principal = opts.principal ? await opts.principal(request) : null;
|
|
29
30
|
if (token && !token.startsWith(apiKeyPrefix) && opts.adapter.resolveOauthOrg) {
|
|
30
31
|
const orgId = await opts.adapter.resolveOauthOrg(token);
|
|
31
|
-
if (orgId)
|
|
32
|
-
return
|
|
32
|
+
if (orgId) {
|
|
33
|
+
return principal
|
|
34
|
+
? runWithPrincipal({ authHeader, orgId, principal }, () => mcp(request))
|
|
35
|
+
: runWithResolvedOrg(authHeader, orgId, () => mcp(request));
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
38
|
// Gated: resolve the org HERE, so a caller with no usable credential never
|
|
35
39
|
// reaches the handshake. An API key is validated through the adapter; anything
|
|
@@ -51,9 +55,13 @@ export function createMcpTransport(opts) {
|
|
|
51
55
|
}
|
|
52
56
|
// Pre-resolved, so `enforceAccess` reads it from the store rather than
|
|
53
57
|
// validating the same key a second time on every tool call.
|
|
54
|
-
return
|
|
58
|
+
return principal
|
|
59
|
+
? runWithPrincipal({ authHeader, orgId, principal }, () => mcp(request))
|
|
60
|
+
: runWithResolvedOrg(authHeader, orgId, () => mcp(request));
|
|
55
61
|
}
|
|
56
|
-
const res = await
|
|
62
|
+
const res = await (principal
|
|
63
|
+
? runWithPrincipal({ authHeader, principal }, () => mcp(request))
|
|
64
|
+
: runWithAuth(authHeader, () => mcp(request)));
|
|
57
65
|
return withAuthHeader(res, rm);
|
|
58
66
|
}
|
|
59
67
|
return { GET: handler, POST: handler, maxDuration: opts.maxDuration ?? 60 };
|
package/dist/routes/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/routes/mcp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/routes/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/rest.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Principal } from "../auth.js";
|
|
1
2
|
export interface Dispatcher {
|
|
2
3
|
dispatchTool(name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
3
4
|
getToolNames(): string[];
|
|
@@ -12,6 +13,21 @@ export declare function createToolDispatchHandler(opts: {
|
|
|
12
13
|
/** Advertise the auth.md PRM discovery doc in the 401 WWW-Authenticate header
|
|
13
14
|
* (`resource_metadata="…"`) so agents can bootstrap. String or per-request. */
|
|
14
15
|
resourceMetadata?: string | ((request: Request) => string);
|
|
16
|
+
/**
|
|
17
|
+
* WHO is calling, when this surface knows — a session cookie, an OAuth token carrying
|
|
18
|
+
* a user id. Return null for a request that carries only an org API key.
|
|
19
|
+
*
|
|
20
|
+
* Without it the admin-only tools cannot be enforced through this route AT ALL, which
|
|
21
|
+
* was true until now: `runWithAuth` installs a fresh AsyncLocalStorage store, so an
|
|
22
|
+
* outer `runWithPrincipal` was discarded, `currentPrincipal()` read null, and
|
|
23
|
+
* `enforceAdmin` took its org-key branch and allowed everything. An app whose own UI
|
|
24
|
+
* calls these endpoints was relying on gating it did itself, or on nothing.
|
|
25
|
+
*
|
|
26
|
+
* Only pass `isAdmin` if you have already resolved the role and want to skip the
|
|
27
|
+
* adapter lookup — otherwise leave it off and let `adapter.isAdmin` answer, which is
|
|
28
|
+
* the path that reads the real role.
|
|
29
|
+
*/
|
|
30
|
+
principal?: (request: Request) => Principal | null | Promise<Principal | null>;
|
|
15
31
|
}): (request: Request, ctx: {
|
|
16
32
|
params: Promise<{
|
|
17
33
|
tool: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/routes/rest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/routes/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAO3E,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,YAAY,IAAI,MAAM,EAAE,CAAC;CAC1B;AAQD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,IACe,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAanD;AAUD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;oFACgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IAC3D;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CAChF,IAGG,SAAS,OAAO,EAChB,KAAK;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,KACzC,OAAO,CAAC,QAAQ,CAAC,CAsDrB"}
|
package/dist/routes/rest.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runWithAuth } from "../auth.js";
|
|
1
|
+
import { runWithAuth, runWithPrincipal } from "../auth.js";
|
|
2
2
|
import { ToolValidationError } from "../dispatch.js";
|
|
3
3
|
function wwwAuth(realm, resourceMetadata) {
|
|
4
4
|
const base = `Bearer realm="${realm}", error="invalid_token"`;
|
|
@@ -36,7 +36,11 @@ export function createToolDispatchHandler(opts) {
|
|
|
36
36
|
const { tool } = await ctx.params;
|
|
37
37
|
const authHeader = request.headers.get("authorization");
|
|
38
38
|
const rm = typeof opts.resourceMetadata === "function" ? opts.resourceMetadata(request) : opts.resourceMetadata;
|
|
39
|
-
|
|
39
|
+
const principal = opts.principal ? await opts.principal(request) : null;
|
|
40
|
+
// One store either way: `runWithPrincipal` sets the same `authHeader` plus the
|
|
41
|
+
// caller, so `enforceAccess` behaves identically and only `enforceAdmin` sees more.
|
|
42
|
+
const withContext = (fn) => principal ? runWithPrincipal({ authHeader, principal }, fn) : runWithAuth(authHeader, fn);
|
|
43
|
+
return withContext(async () => {
|
|
40
44
|
try {
|
|
41
45
|
const body = await request.json().catch(() => ({}));
|
|
42
46
|
const result = await opts.dispatcher.dispatchTool(tool, body);
|
|
@@ -63,13 +67,19 @@ export function createToolDispatchHandler(opts) {
|
|
|
63
67
|
// refusal an agent can act on without a human. A consumer had already
|
|
64
68
|
// hand-rolled this mapping over the same string; it belongs here, next to
|
|
65
69
|
// the 401 and 429 that were already mapped for the same reason.
|
|
70
|
+
// 403 for a role refusal, for the same reason as the 402 above: `enforceAdmin`
|
|
71
|
+
// writes "Forbidden (403)" and every one of those was being served as a 500 —
|
|
72
|
+
// telling the caller the server is broken when the truthful answer is "you are
|
|
73
|
+
// not an admin of this workspace", which is not a fault and not retryable.
|
|
66
74
|
const status = err instanceof ToolValidationError
|
|
67
75
|
? 400
|
|
68
76
|
: /\bInsufficient credits\b/i.test(message)
|
|
69
77
|
? 402
|
|
70
|
-
:
|
|
71
|
-
?
|
|
72
|
-
:
|
|
78
|
+
: /\bForbidden\b|\b403\b/i.test(message)
|
|
79
|
+
? 403
|
|
80
|
+
: message.includes("Unknown tool")
|
|
81
|
+
? 404
|
|
82
|
+
: 500;
|
|
73
83
|
return Response.json({ error: message }, { status });
|
|
74
84
|
}
|
|
75
85
|
});
|
package/dist/routes/rest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/routes/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/routes/rest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AAGA,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAmBjE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,aAAa,GAAG,MAAM,CAAC;AAEtE,MAAM,MAAM,cAAc;AACxB,mEAAmE;AACjE,UAAU;AACZ,2BAA2B;GACzB,SAAS;AACX,kDAAkD;GAChD,WAAW;AACb,+EAA+E;GAC7E,WAAW;AACb,6CAA6C;GAC3C,SAAS;AACX,wCAAwC;GACtC,MAAM,CAAC;AAEX,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uEAAuE;IACvE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iEAAiE;IACjE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;+DAC2D;IAC3D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,CAAC;AAElB,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,mBAAmB;IAElC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO;gBAFhB,IAAI,EAAE,mBAAmB,EAClC,OAAO,EAAE,MAAM,EACN,MAAM,CAAC,EAAE,OAAO,YAAA;CAK5B;AA4BD;2EAC2E;AAC3E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAKjD;AAED,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;oEACgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAiBvF;
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
|
package/dist/subscription.js
CHANGED
|
@@ -125,13 +125,49 @@ async function desiredPrices(plans, target, interval, seats, currency) {
|
|
|
125
125
|
}
|
|
126
126
|
return desired;
|
|
127
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* A stable, compact fingerprint of the item mutations a plan change will send.
|
|
130
|
+
*
|
|
131
|
+
* It covers the SUBSCRIPTION ITEM ids, not just prices, which is the part that is easy to
|
|
132
|
+
* get wrong: upgrade → downgrade → upgrade back returns to the same prices and quantities,
|
|
133
|
+
* so a key built from those alone repeats — while the request does not, because a released
|
|
134
|
+
* schedule replaces the items and the diff now deletes a different `si_…`. Stripe answers a
|
|
135
|
+
* reused key whose params changed with a 400 naming a key the caller has never seen.
|
|
136
|
+
*
|
|
137
|
+
* Compact because Stripe caps a key at 255 characters and a full id per line overruns that
|
|
138
|
+
* on a wide basket. An id's tail is its random part, so it identifies the object alone.
|
|
139
|
+
*/
|
|
140
|
+
function itemFingerprint(items, carried) {
|
|
141
|
+
const tail = (v) => String(v ?? "").slice(-8);
|
|
142
|
+
const parts = items
|
|
143
|
+
.map((i) => i.id
|
|
144
|
+
? `${tail(i.id)}${i.deleted ? "-" : `x${i.quantity ?? 1}`}`
|
|
145
|
+
: `+${tail(i.price)}x${i.quantity ?? 1}`)
|
|
146
|
+
.sort();
|
|
147
|
+
// The rates ride the same request, so a tax change with an identical basket is a
|
|
148
|
+
// different request too.
|
|
149
|
+
return [...parts, ...carried.map(tail).sort()].join(",");
|
|
150
|
+
}
|
|
128
151
|
/** The item mutations that turn `sub` into `desired`, plus the tax rates that
|
|
129
152
|
* must ride along. Also shared between the change and its preview. */
|
|
130
153
|
function diffItems(sub, desired, taxRates) {
|
|
131
154
|
// Tax rates already on the subscription carry onto ADDED lines. Without this, an
|
|
132
155
|
// account that computes its own tax (manual TaxRates rather than Stripe Tax)
|
|
133
156
|
// invoices a newly added line at 0%.
|
|
134
|
-
|
|
157
|
+
//
|
|
158
|
+
// BOTH places have to be read. Checkout writes the rates per LINE ITEM, but a
|
|
159
|
+
// subscription schedule can only carry them at the SUBSCRIPTION level
|
|
160
|
+
// (`default_tax_rates` — the phases this file writes, and `createSubscriptionSchedule`).
|
|
161
|
+
// So once a scheduled downgrade released, the items held no rates and the next upgrade's
|
|
162
|
+
// added line went out at 0% — the very bug the paragraph above is about, reappearing on
|
|
163
|
+
// any subscription that had ever been through a schedule.
|
|
164
|
+
const carried = taxRates ??
|
|
165
|
+
[
|
|
166
|
+
...new Set([
|
|
167
|
+
...sub.items.data.flatMap((i) => (i.tax_rates ?? []).map((r) => r.id)),
|
|
168
|
+
...(sub.default_tax_rates ?? []).map((r) => (typeof r === "string" ? r : r.id)),
|
|
169
|
+
]),
|
|
170
|
+
];
|
|
135
171
|
const items = [];
|
|
136
172
|
const seen = new Set();
|
|
137
173
|
for (const item of sub.items.data) {
|
|
@@ -250,6 +286,15 @@ export async function changePlan(adapter, orgId, opts) {
|
|
|
250
286
|
if (sub.cancel_at_period_end) {
|
|
251
287
|
return { kind: "canceling", customerId, subscriptionId: sub.id, plan: currentPlanKey, status: sub.status, effectiveAt };
|
|
252
288
|
}
|
|
289
|
+
// A schedule OWNS the cancellation behaviour: while one is attached, Stripe refuses
|
|
290
|
+
// `cancel_at_period_end` outright ("updating any cancelation behavior directly is not
|
|
291
|
+
// allowed"). So a customer who had scheduled a downgrade could not cancel at all — the
|
|
292
|
+
// one sequence a downgrade makes likely. Releasing detaches the schedule and leaves the
|
|
293
|
+
// subscription exactly as it is, and abandoning a scheduled downgrade is right here:
|
|
294
|
+
// they are cancelling, so the tier they would have moved to is moot.
|
|
295
|
+
if (sub.schedule) {
|
|
296
|
+
await stripe.subscriptionSchedules.release(typeof sub.schedule === "string" ? sub.schedule : sub.schedule.id);
|
|
297
|
+
}
|
|
253
298
|
const canceling = await stripe.subscriptions.update(sub.id, {
|
|
254
299
|
cancel_at_period_end: true,
|
|
255
300
|
metadata: { ...sub.metadata, org_id: orgId, pending_plan: target.key },
|
|
@@ -320,18 +365,42 @@ export async function changePlan(adapter, orgId, opts) {
|
|
|
320
365
|
}
|
|
321
366
|
return { kind: "scheduled", customerId, subscriptionId: sub.id, plan: currentPlanKey, status: sub.status, effectiveAt };
|
|
322
367
|
}
|
|
368
|
+
// `pending_if_incomplete` supports ONLY the params that control proration or generate an
|
|
369
|
+
// invoice — no tax parameter of any kind, neither `items[].tax_rates` nor
|
|
370
|
+
// `default_tax_rates` — and Stripe hard-400s rather than ignoring one. So an account
|
|
371
|
+
// computing its own tax (the default) could not run an `invoice_now` upgrade at all: the
|
|
372
|
+
// added line always carries a rate. Measured, not inferred; both spellings were refused.
|
|
373
|
+
//
|
|
374
|
+
// Tax is a CONFIGURATION change though, which Stripe applies immediately and which
|
|
375
|
+
// generates no invoice, so it moves OUT of the gated update: set the subscription's
|
|
376
|
+
// `default_tax_rates` first and the line added below inherits them. The alternative —
|
|
377
|
+
// dropping `pending_if_incomplete` — would silently give up the thing it is there for,
|
|
378
|
+
// which is applying the upgrade only once its invoice is actually paid.
|
|
379
|
+
const pending = proration === "invoice_now";
|
|
380
|
+
if (pending && carried.length) {
|
|
381
|
+
const already = new Set((sub.default_tax_rates ?? []).map((r) => (typeof r === "string" ? r : r.id)));
|
|
382
|
+
if (carried.some((id) => !already.has(id))) {
|
|
383
|
+
await stripe.subscriptions.update(sub.id, { default_tax_rates: carried });
|
|
384
|
+
}
|
|
385
|
+
}
|
|
323
386
|
const updated = await stripe.subscriptions.update(sub.id, {
|
|
324
|
-
|
|
387
|
+
// Stripped for the same reason, on the same path.
|
|
388
|
+
items: pending ? items.map(({ tax_rates: _tax, ...rest }) => rest) : items,
|
|
325
389
|
proration_behavior,
|
|
326
390
|
// The live-subscription equivalent of `default_incomplete`: the change
|
|
327
391
|
// applies only once the invoice it generates is paid, and the original
|
|
328
392
|
// subscription is untouched if it never is.
|
|
329
|
-
...(
|
|
393
|
+
...(pending ? { payment_behavior: "pending_if_incomplete" } : {}),
|
|
330
394
|
metadata: { ...sub.metadata, org_id: orgId, plan: target.key },
|
|
331
395
|
},
|
|
332
396
|
// Keyed on the target, so a double-clicked Confirm inside Stripe's 24h window
|
|
333
397
|
// is a no-op rather than a second proration invoice.
|
|
334
|
-
|
|
398
|
+
//
|
|
399
|
+
// The MUTATION is in the key, not just the target — see `itemFingerprint`. A genuine
|
|
400
|
+
// double-click sends the identical diff, so it still dedupes.
|
|
401
|
+
{
|
|
402
|
+
idempotencyKey: ["plan", sub.id, target.key, interval, itemFingerprint(items, carried), timing, proration].join(":"),
|
|
403
|
+
});
|
|
335
404
|
if (record) {
|
|
336
405
|
await adapter.setSubscription?.(orgId, {
|
|
337
406
|
plan: target.key,
|
package/dist/subscription.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,YAAY,GAKb,MAAM,YAAY,CAAC;AA8DpB,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAE7B;IAEA;IAHX,YACW,IAAyB,EAClC,OAAe,EACN,MAAgB;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,SAAI,GAAJ,IAAI,CAAqB;QAEzB,WAAM,GAAN,MAAM,CAAU;QAGzB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;oEACoE;AACpE,MAAM,aAAa,GAA4C,IAAI,GAAG,CAAC;IACrE,QAAQ;IACR,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;CACT,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,GAAwB;IAE3C,MAAM,IAAI,GAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAA2B;SAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC;AAED;2EAC2E;AAC3E,MAAM,UAAU,QAAQ,CAAC,KAAgB;IACvC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC;IAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;IAClE,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC;AAcD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAkB,EAAE,WAA0B;IACxE,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;SACxD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,sEAAsE;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7F,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI;QAChC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI;QACjD,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;QACrD,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,GAAG;KACX,CAAC,EAAE,CAAC;QACH,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;GAMG;AACH,KAAK,UAAU,aAAa,CAC1B,KAAkB,EAClB,MAAiB,EACjB,QAAyB,EACzB,KAAiB,EACjB,QAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,eAAe,CAAC,gBAAgB,EAAE,uBAAuB,GAAG,EAAE,CAAC,CAAC;QACnF,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,GAAG,IAAI,CAAC;gBAAE,SAAS;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;uEACuE;AACvE,SAAS,SAAS,CAChB,GAAwB,EACxB,OAA4B,EAC5B,QAAmB;IAEnB,iFAAiF;IACjF,6EAA6E;IAC7E,qCAAqC;IACrC,MAAM,OAAO,GACX,QAAQ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhG,MAAM,KAAK,GAA2C,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,KAAa,EACb,IA0BC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE,iBAAiB,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnG,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IAEnC,IAAI,UAAU,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,sDAAsD,CAAC,CAAC;QACnH,UAAU,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,0DAA0D;QAC1D,IAAI,MAAM;YAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9H,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACrH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,GAAG,GACP,IAAI,CAAC,cAAc;QACjB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC;QAChD,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CACvB,wBAAwB,EACxB,YAAY,UAAU,QAAQ,IAAI,CAAC,MAAM,qEAAqE,EAC9G,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACtB,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpH,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/G,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAClG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9H,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,wEAAwE,CAAC,CAAC;QAC1H,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC;YAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,MAAM,CAAC,GAAG;YAChB,QAAQ;YACR,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU;YACV,4EAA4E;YAC5E,0EAA0E;YAC1E,mDAAmD;YACnD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI;YACX,0EAA0E;YAC1E,qEAAqE;YACrE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE;SAChE,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,UAAU;YACV,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,WAAW,EAAE,OAAO,CAAC,GAAG;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC;IAElD,6EAA6E;IAC7E,IAAI,GAAG,CAAC,oBAAoB,IAAI,cAAc,IAAI,cAAc,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;QAChF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3F,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE;gBACrC,IAAI,EAAE,MAAM,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,cAAc,EAAE,OAAO,CAAC,EAAE;gBAC1B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;aAChC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9I,CAAC;IAED,6EAA6E;IAC7E,EAAE;IACF,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;QAC1H,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;YAC1D,oBAAoB,EAAE,IAAI;YAC1B,QAAQ,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE;SACvE,CAAC,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,0EAA0E;YAC1E,sEAAsE;YACtE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE;gBACpC,WAAW,EAAE,MAAM,CAAC,GAAG;gBACvB,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QACD,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,UAAU;YACV,cAAc,EAAE,GAAG,CAAC,EAAE;YACtB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9H,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IACnI,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC;IACnD,MAAM,kBAAkB,GACtB,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAEvG,gFAAgF;IAChF,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IACrC,MAAM,gBAAgB,GAAG,MAAM,KAAK,YAAY,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,WAAW,CAAC,CAAC;IAEvF,IAAI,gBAAgB,EAAE,CAAC;QACrB,8EAA8E;QAC9E,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;YAC3B,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAkB,CAAC;YACrE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;YACrD,YAAY,EAAE,SAAS;YACvB,kBAAkB,EAAE,MAAM;YAC1B,MAAM,EAAE;gBACN;oBACE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACpC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBACzD,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;qBAC1B,CAAC,CAAC;oBACH,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,QAAQ,EAAE,YAAY,CAAC,QAAQ;oBAC/B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1D;gBACD;oBACE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACrE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1D;aACF;SACF,CAAC,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAC1H,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAC/C,GAAG,CAAC,EAAE,EACN;QACE,KAAK;QACL,kBAAkB;QAClB,uEAAuE;QACvE,uEAAuE;QACvE,4CAA4C;QAC5C,GAAG,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,uBAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,QAAQ,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE;KAC/D;IACD,8EAA8E;IAC9E,qDAAqD;IACrD,EAAE,cAAc,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,IAAI,SAAS,EAAE,EAAE,CAC7H,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE;YACrC,IAAI,EAAE,MAAM,CAAC,GAAG;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,EAAE;YAC1B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;SAChC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,UAAU;QACV,cAAc,EAAE,OAAO,CAAC,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;KAClC,CAAC;AACJ,CAAC;AAwCD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,KAAa,EACb,IAUC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE,iBAAiB,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,IAA+B,EAAE,cAA6B,IAAI,EAAqB,EAAE,CAAC,CAAC;QACxG,IAAI;QACJ,QAAQ;QACR,MAAM,EAAE,CAAC;QACT,gBAAgB,EAAE,CAAC;QACnB,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC;QACT,WAAW;QACX,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,EAAE;KACV,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzH,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CACvB,wBAAwB,EACxB,YAAY,UAAU,QAAQ,IAAI,CAAC,MAAM,sEAAsE,EAC/G,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACtB,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;IAC/E,IAAI,YAAY;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxF,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/D,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC;IAClD,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IACrC,6EAA6E;IAC7E,0EAA0E;IAC1E,8EAA8E;IAC9E,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,GAAG,CAAC,EAAE;YACpB,oBAAoB,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE;SAC5D,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,GAAG,CAAC,EAAE;YACpB,oBAAoB,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE;SACzE,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC;IACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAExD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,OAAO,CAAE,CAAwC,CAAC,SAAS,CAAC;KACxE,CAAC,CAAC,CAAC;IACJ,2EAA2E;IAC3E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAElG,IAAI,MAAM,KAAK,YAAY,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,WAAW,CAAC,EAAE,CAAC;QAClE,4EAA4E;QAC5E,qEAAqE;QACrE,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,QAAQ;YACxC,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,cAAc;YAChC,cAAc;YACd,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;YAC7B,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC;YAC/B,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,KAAK,aAAa,CAAC;IACtE,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,KAAK,cAAc,CAAC;IAE9E,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,QAAQ;QACvC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACrC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc;QACnE,cAAc;QACd,MAAM;QACN,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,yEAAyE;QACzE,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC;QAC/B,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,KAAa,EACb,IAAiE;IAEjE,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC;IACvF,OAAO,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC"}
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/tools/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA+BlE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB;;;;mEAI+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qEACiE;IACjE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;CAC5D;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,uBAAuB,EAC7B,IAAI,GAAE,gBAAwC,
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/tools/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA+BlE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB;;;;mEAI+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qEACiE;IACjE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;CAC5D;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,uBAAuB,EAC7B,IAAI,GAAE,gBAAwC,QAsL/C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { enforceAdmin } from "../auth.js";
|
|
2
|
+
import { enforceAccess, enforceAdmin } from "../auth.js";
|
|
3
3
|
import { stripeConfigured } from "../billing.js";
|
|
4
4
|
import { cancelPlan, changePlan, planActions, previewPlanChange, PlanChangeError, } from "../subscription.js";
|
|
5
5
|
import { normalizePlans } from "../plans.js";
|
|
@@ -170,7 +170,10 @@ period ends. Reverse it before then with change_plan back to the current plan.`,
|
|
|
170
170
|
server.tool("get_plan", `The workspace's current plan: what it is on, whether a change is already
|
|
171
171
|
scheduled, and which moves are available (the plan above, the plan below, whether it
|
|
172
172
|
can be cancelled) — the same set the billing screen offers.`, {}, async () => {
|
|
173
|
-
|
|
173
|
+
// A READ, so `enforceAccess` — any member may see which plan their workspace is
|
|
174
|
+
// on. It was `enforceAdmin`, copied from the three tools that CHANGE a plan
|
|
175
|
+
// beside it, which meant a member could not answer "what am I paying for".
|
|
176
|
+
const auth = await enforceAccess(adapter);
|
|
174
177
|
if ("isError" in auth)
|
|
175
178
|
return auth;
|
|
176
179
|
const sub = (await adapter.getSubscription?.(auth.orgId)) ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/tools/subscription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/tools/subscription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAyB,MAAM,kBAAkB,CAAC;AAGhF,wCAAwC;AACxC,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,EAAE;AACF,kFAAkF;AAClF,gFAAgF;AAChF,oBAAoB;AAEpB,SAAS,IAAI,CAAC,GAAY;IACxB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtF,CAAC;AACD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,EAAE,OAAO,EAAE,IAAa,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,qEAAqE;AACrE,SAAS,SAAS,CAAC,CAAU;IAC3B,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;QACjC,6EAA6E;QAC7E,6EAA6E;QAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAeD,MAAM,UAAU,yBAAyB,CACvC,MAAiB,EACjB,OAAuB,EACvB,MAAsB,EACtB,IAA6B,EAC7B,OAAyB,qBAAqB;IAE9C,MAAM,WAAW,GAAG,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC3C,QAAQ,EAAE;SACV,QAAQ,CAAC,uFAAuF,CAAC,CAAC;IAErG,MAAM,KAAK,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEhG,gFAAgF;IAChF,iFAAiF;IACjF,+EAA+E;IAC/E,8CAA8C;IAC9C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB;;;;;;;;;;;4DAWsD,EACtD;YACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAC7D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;YAClD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,QAAQ,CAAC,kEAAkE,CAAC;YAC/E,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;iBAC7C,QAAQ,EAAE;iBACV,QAAQ,CAAC,6FAA6F,CAAC;SAC3G,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAChE,IAAI,SAAS,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE;gBAAE,OAAO,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAC5F,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;oBACrD,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;oBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM;oBACN,SAAS;oBACT,QAAQ,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;iBAClC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;oBACV,OAAO,EAAE,CAAC,CAAC,IAAI;oBACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,CAAC,CAAC,MAAM;oBACjB,kBAAkB,EAAE,CAAC,CAAC,gBAAgB;oBACtC,eAAe,EAAE,CAAC,CAAC,cAAc;oBACjC,cAAc,EAAE,CAAC,CAAC,MAAM;oBACxB,YAAY,EAAE,CAAC,CAAC,WAAW;oBAC3B,eAAe,EAAE,CAAC,CAAC,aAAa;oBAChC,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb;;;;wEAIkE,EAClE;YACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAC7D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;YAClD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,QAAQ,CAAC,4DAA4D,CAAC;YACzE,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;iBAC7C,QAAQ,EAAE;iBACV,QAAQ,CAAC,2EAA2E,CAAC;SACzF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACxD,IAAI,SAAS,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE;gBAAE,OAAO,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAC5F,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;oBAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;oBAC7B,MAAM;oBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM;oBACN,SAAS;oBACT,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO;oBAC3C,uEAAuE;oBACvE,kEAAkE;oBAClE,gEAAgE;oBAChE,6DAA6D;oBAC7D,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;iBAClC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;oBACV,OAAO,EAAE,CAAC,CAAC,IAAI;oBACf,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,YAAY,EAAE,CAAC,CAAC,WAAW;oBAC3B,eAAe,EAAE,CAAC,CAAC,cAAc;oBACjC,sEAAsE;oBACtE,mDAAmD;oBACnD,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU;wBACvB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC,SAAS,EAAE;wBACnE,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb;;+EAEyE,EACzE,EAAE,EACF,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACxD,IAAI,SAAS,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE;gBAAE,OAAO,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAC5F,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClG,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAChG,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CACT,UAAU,EACV;;4DAEwD,EACxD,EAAE,EACF,KAAK,IAAI,EAAE;QACP,gFAAgF;QAChF,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;QAClE,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,CAAC,GAAkB,EAAE,EAAE,CACnC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,OAAO,IAAI,CAAC;YACV,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,IAAI;YAC3B,UAAU,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI;YAClC,YAAY,EAAE,EAAE,CAAC,WAAW,IAAI,IAAI;YACpC,eAAe,EAAE,EAAE,CAAC,aAAa,IAAI,IAAI;YACzC,OAAO,EAAE;gBACP,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACpC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBACxC,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;aACnC;SACF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arnaudjnn/billing-tools",
|
|
3
|
-
"version": "15.
|
|
3
|
+
"version": "15.15.1",
|
|
4
4
|
"description": "The get-paid engine for Stripe + WorkOS apps, for humans and AI agents. Drop-in API-key auth, credit + subscription billing, auth.md agent registration, and MPP machine payments, as MCP tools, a REST API, and a CLI. Framework-agnostic, storage-pluggable.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Arnaud Jeannin",
|
|
@@ -103,7 +103,8 @@
|
|
|
103
103
|
"clean": "rm -rf dist",
|
|
104
104
|
"prepublishOnly": "npm run build",
|
|
105
105
|
"test": "npm run build && vitest run",
|
|
106
|
-
"test:watch": "vitest"
|
|
106
|
+
"test:watch": "vitest",
|
|
107
|
+
"e2e:live": "npm run build && node scripts/e2e-live.mjs"
|
|
107
108
|
},
|
|
108
109
|
"dependencies": {
|
|
109
110
|
"@stripe/react-stripe-js": "^6",
|