@hanzo/commerce 7.8.3 → 7.9.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/dist/client.d.ts +1246 -402
- package/dist/client.js +955 -331
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metering.d.ts +11 -2
- package/dist/metering.js +28 -9
- package/dist/metering.js.map +1 -1
- package/dist/metering.test.d.ts +0 -12
- package/dist/metering.test.js +107 -169
- package/dist/metering.test.js.map +1 -1
- package/package.json +6 -5
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,6 @@ export { default as useSyncSkuParamWithCurrentItem } from './util/use-sync-sku-p
|
|
|
13
13
|
export { getFacetValuesMutator, formatCurrencyValue, ProductMediaAccessor, LineItemRef } from './util';
|
|
14
14
|
export { initSelectionUI, getSelectionUISpecifier } from './util/selection-ui-specifiers';
|
|
15
15
|
export { Commerce, CommerceApiError, hanzoCommerce } from './client';
|
|
16
|
-
export type { CommerceClientConfig,
|
|
16
|
+
export type { CommerceClientConfig, Transaction, Subscription, CreditGrant, } from './client';
|
|
17
17
|
export { Metering, DEFAULT_COMMERCE_URL, identityFromHeaders, HEADER_USER_ID, HEADER_ORG_ID, } from './metering';
|
|
18
18
|
export type { MeteringConfig, MeteringIdentity, UsageEvent, RecordResult, AuthDecision, } from './metering';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAqC,MAAM,qCAAqC,CAAA;AAGxH,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,0CAA0C,CAAA;AACpG,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACZ,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAEzF,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAqC,MAAM,qCAAqC,CAAA;AAGxH,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,0CAA0C,CAAA;AACpG,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACZ,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAEzF,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAQpE,4EAA4E;AAC5E,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAA"}
|
package/dist/metering.d.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* rather than re-implementing the HTTP layer.
|
|
22
22
|
*
|
|
23
23
|
* Auth is the commerce service token (admin-scoped S2S), sent as
|
|
24
|
-
* `Authorization: Bearer <token>` plus the tenant org as `X-
|
|
24
|
+
* `Authorization: Bearer <token>` plus the tenant org as `X-Org-Id`. The
|
|
25
25
|
* token is a secret and MUST come from KMS (the operator wires it into
|
|
26
26
|
* COMMERCE_SERVICE_TOKEN); this module never reads it from disk.
|
|
27
27
|
*
|
|
@@ -54,7 +54,7 @@ export type MeteringConfig = {
|
|
|
54
54
|
baseUrl?: string;
|
|
55
55
|
/** Commerce service token (admin-scoped S2S). MUST be KMS-sourced. */
|
|
56
56
|
token?: string;
|
|
57
|
-
/** Default tenant org slug sent as X-
|
|
57
|
+
/** Default tenant org slug sent as X-Org-Id (default "hanzo"). */
|
|
58
58
|
org?: string;
|
|
59
59
|
/**
|
|
60
60
|
* Gate on the tier-aware effective balance (prepaid + included plan
|
|
@@ -68,6 +68,12 @@ export type MeteringConfig = {
|
|
|
68
68
|
failOpen?: boolean;
|
|
69
69
|
/** Request timeout in ms. Default 5000 (the gateway's value). */
|
|
70
70
|
timeoutMs?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Send every call to commerce's TEST ledger (org.Live=false), so balances and
|
|
73
|
+
* debits hit the sandbox books rather than real money. The Go meter spells
|
|
74
|
+
* this the same way; a product opts in with METERING_TEST.
|
|
75
|
+
*/
|
|
76
|
+
test?: boolean;
|
|
71
77
|
};
|
|
72
78
|
/** Who to authorize / charge. user is the IAM "org/sub" identity. */
|
|
73
79
|
export type MeteringIdentity = {
|
|
@@ -118,6 +124,7 @@ export declare class Metering {
|
|
|
118
124
|
private readonly org;
|
|
119
125
|
private readonly tierAware;
|
|
120
126
|
private readonly failOpen;
|
|
127
|
+
private readonly test;
|
|
121
128
|
constructor(config?: MeteringConfig);
|
|
122
129
|
/**
|
|
123
130
|
* Build a Metering instance from the canonical environment variables. This
|
|
@@ -127,6 +134,8 @@ export declare class Metering {
|
|
|
127
134
|
static fromEnv(env?: Record<string, string | undefined>): Metering;
|
|
128
135
|
/** Whether a commerce base URL is configured. */
|
|
129
136
|
get enabled(): boolean;
|
|
137
|
+
/** The headers every call carries: which org, and which ledger. */
|
|
138
|
+
private wire;
|
|
130
139
|
/**
|
|
131
140
|
* Pre-request balance gate. Never throws — returns a decision so callers map
|
|
132
141
|
* it to a status code. When not configured it always allows.
|
package/dist/metering.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* rather than re-implementing the HTTP layer.
|
|
22
22
|
*
|
|
23
23
|
* Auth is the commerce service token (admin-scoped S2S), sent as
|
|
24
|
-
* `Authorization: Bearer <token>` plus the tenant org as `X-
|
|
24
|
+
* `Authorization: Bearer <token>` plus the tenant org as `X-Org-Id`. The
|
|
25
25
|
* token is a secret and MUST come from KMS (the operator wires it into
|
|
26
26
|
* COMMERCE_SERVICE_TOKEN); this module never reads it from disk.
|
|
27
27
|
*
|
|
@@ -60,6 +60,7 @@ export class Metering {
|
|
|
60
60
|
this.org = (config.org ?? '').trim();
|
|
61
61
|
this.tierAware = config.tierAware ?? false;
|
|
62
62
|
this.failOpen = config.failOpen ?? false;
|
|
63
|
+
this.test = config.test ?? false;
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
65
66
|
* Build a Metering instance from the canonical environment variables. This
|
|
@@ -75,12 +76,18 @@ export class Metering {
|
|
|
75
76
|
org: (env.COMMERCE_SERVICE_ORG ?? '').trim() || 'hanzo',
|
|
76
77
|
tierAware: truthy(env.METERING_TIER_AWARE),
|
|
77
78
|
failOpen: truthy(env.METERING_FAIL_OPEN),
|
|
79
|
+
test: truthy(env.METERING_TEST),
|
|
78
80
|
});
|
|
79
81
|
}
|
|
80
82
|
/** Whether a commerce base URL is configured. */
|
|
81
83
|
get enabled() {
|
|
82
84
|
return this.commerce !== null;
|
|
83
85
|
}
|
|
86
|
+
/** The headers every call carries: which org, and which ledger. */
|
|
87
|
+
wire(org) {
|
|
88
|
+
const h = { ...orgHeader(org ?? this.org), ...(this.test ? { 'X-Hanzo-Test': 'true' } : {}) };
|
|
89
|
+
return Object.keys(h).length ? h : undefined;
|
|
90
|
+
}
|
|
84
91
|
/**
|
|
85
92
|
* Pre-request balance gate. Never throws — returns a decision so callers map
|
|
86
93
|
* it to a status code. When not configured it always allows.
|
|
@@ -97,11 +104,11 @@ export class Metering {
|
|
|
97
104
|
if (!user) {
|
|
98
105
|
return this.failOpen ? { allowed: true } : { allowed: false, reason: 'balance_unavailable' };
|
|
99
106
|
}
|
|
100
|
-
const headers =
|
|
107
|
+
const headers = this.wire(id.org);
|
|
101
108
|
try {
|
|
102
109
|
const available = this.tierAware
|
|
103
|
-
? (await this.commerce.
|
|
104
|
-
: (await this.commerce.
|
|
110
|
+
? (await this.commerce.getBillingTier({ headers })).balance.effectiveAvailable
|
|
111
|
+
: (await this.commerce.getBillingBalance({ headers })).available;
|
|
105
112
|
if (available > 0)
|
|
106
113
|
return { allowed: true, available };
|
|
107
114
|
return { allowed: false, reason: 'insufficient_balance', available };
|
|
@@ -124,7 +131,7 @@ export class Metering {
|
|
|
124
131
|
return null;
|
|
125
132
|
if (!usage.user?.trim())
|
|
126
133
|
throw new Error('metering: record requires a user');
|
|
127
|
-
const headers =
|
|
134
|
+
const headers = this.wire(usage.org);
|
|
128
135
|
// Commerce's usageRequest field names map one-for-one; org travels via the
|
|
129
136
|
// header, never the body.
|
|
130
137
|
const body = {
|
|
@@ -142,7 +149,7 @@ export class Metering {
|
|
|
142
149
|
status: usage.status,
|
|
143
150
|
clientIp: usage.clientIp,
|
|
144
151
|
};
|
|
145
|
-
const tx = await this.commerce.
|
|
152
|
+
const tx = await this.commerce.request('POST', '/v1/billing/usage', { body, headers });
|
|
146
153
|
// Commerce returns { transactionId, user, amount, currency, type }.
|
|
147
154
|
return tx;
|
|
148
155
|
}
|
|
@@ -155,9 +162,9 @@ export class Metering {
|
|
|
155
162
|
if (decision.allowed)
|
|
156
163
|
return;
|
|
157
164
|
if (decision.reason === 'insufficient_balance') {
|
|
158
|
-
throw new CommerceApiError(402, 'Insufficient balance. Please add credits at console.hanzo.ai');
|
|
165
|
+
throw new CommerceApiError(402, 'Insufficient balance. Please add credits at console.hanzo.ai', undefined);
|
|
159
166
|
}
|
|
160
|
-
throw new CommerceApiError(503, 'Billing temporarily unavailable');
|
|
167
|
+
throw new CommerceApiError(503, 'Billing temporarily unavailable', undefined);
|
|
161
168
|
}
|
|
162
169
|
}
|
|
163
170
|
// ---------------------------------------------------------------------------
|
|
@@ -188,9 +195,21 @@ export function identityFromHeaders(headers) {
|
|
|
188
195
|
// ---------------------------------------------------------------------------
|
|
189
196
|
// internals
|
|
190
197
|
// ---------------------------------------------------------------------------
|
|
198
|
+
/**
|
|
199
|
+
* The org this usage belongs to, under the one name commerce reads.
|
|
200
|
+
*
|
|
201
|
+
* `X-Org-Id`, and getting it wrong is SILENT. Commerce selects the org as
|
|
202
|
+
* stashed-org -> `X-Org-Id` -> `COMMERCE_SERVICE_ORG` -> `"hanzo"` and never
|
|
203
|
+
* refuses (middleware/accesstoken.go:110,167-173), so a name it does not know
|
|
204
|
+
* is not an error — it debits the house org for every tenant. This sent
|
|
205
|
+
* `X-IAM-Org-Id`, which commerce reads nowhere.
|
|
206
|
+
*
|
|
207
|
+
* `X-Hanzo-Org` is a real header but travels the other way: cloud stamps it on
|
|
208
|
+
* responses as the acting org. Request header in, guardrail out.
|
|
209
|
+
*/
|
|
191
210
|
function orgHeader(org) {
|
|
192
211
|
const o = (org ?? '').trim();
|
|
193
|
-
return o ? { 'X-
|
|
212
|
+
return o ? { 'X-Org-Id': o } : undefined;
|
|
194
213
|
}
|
|
195
214
|
function truthy(v) {
|
|
196
215
|
const s = (v ?? '').trim().toLowerCase();
|
package/dist/metering.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metering.js","sourceRoot":"","sources":["../metering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAErD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,8CAA8C,CAAA;
|
|
1
|
+
{"version":3,"file":"metering.js","sourceRoot":"","sources":["../metering.ts"],"names":[],"mappings":"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"}
|
package/dist/metering.test.d.ts
CHANGED
|
@@ -1,13 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Contract tests for @hanzo/commerce/metering.
|
|
3
|
-
*
|
|
4
|
-
* Self-contained: mocks global fetch and asserts the exact commerce wire
|
|
5
|
-
* contract, mirroring github.com/hanzoai/go-sdk/metering's tests so the two
|
|
6
|
-
* clients gate on the identical balance source. Runnable standalone with:
|
|
7
|
-
*
|
|
8
|
-
* npx -y -p typescript@5.9.3 -p tsx tsx pkgs/commerce/metering.test.ts
|
|
9
|
-
*
|
|
10
|
-
* It uses no test-runner dependency (the package ships none); a tiny harness
|
|
11
|
-
* below prints PASS/FAIL and exits non-zero on failure.
|
|
12
|
-
*/
|
|
13
1
|
export {};
|
package/dist/metering.test.js
CHANGED
|
@@ -1,181 +1,119 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* What goes on the wire, asserted from the wire.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* below prints PASS/FAIL and exits non-zero on failure.
|
|
4
|
+
* Every check here reads the request commerce would actually receive, because
|
|
5
|
+
* the failure this pins is invisible from the inside: commerce selects the org
|
|
6
|
+
* as stashed-org -> `X-Org-Id` -> `COMMERCE_SERVICE_ORG` -> `"hanzo"` and never
|
|
7
|
+
* refuses (middleware/accesstoken.go:110,167-173). A name it does not know is
|
|
8
|
+
* not an error — it bills the house org for every tenant, quietly, until someone
|
|
9
|
+
* reads the ledger. Asserting the header the meter MEANT to send would have
|
|
10
|
+
* passed the whole time it was sending one commerce ignores.
|
|
12
11
|
*/
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
function eq(actual, expected, msg = '') {
|
|
28
|
-
if (actual !== expected)
|
|
29
|
-
throw new Error(`${msg} expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`);
|
|
30
|
-
}
|
|
31
|
-
function ok(cond, msg = '') {
|
|
32
|
-
if (!cond)
|
|
33
|
-
throw new Error(msg || 'expected true');
|
|
34
|
-
}
|
|
35
|
-
function mockFetch(status, json) {
|
|
36
|
-
const original = globalThis.fetch;
|
|
37
|
-
let last = null;
|
|
38
|
-
globalThis.fetch = (async (input, init) => {
|
|
39
|
-
const hdrs = {};
|
|
40
|
-
const h = init?.headers;
|
|
41
|
-
if (h)
|
|
42
|
-
for (const [k, v] of Object.entries(h))
|
|
43
|
-
hdrs[k.toLowerCase()] = v;
|
|
44
|
-
last = {
|
|
45
|
-
url: input.toString(),
|
|
12
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
13
|
+
import { Metering } from './metering';
|
|
14
|
+
/** Stand in for commerce, and keep what it was asked. */
|
|
15
|
+
function listen(reply = { status: 'ok', data: { available: 500 } }, status = 200) {
|
|
16
|
+
const seen = [];
|
|
17
|
+
vi.stubGlobal('fetch', async (input, init) => {
|
|
18
|
+
const headers = {};
|
|
19
|
+
for (const [k, v] of Object.entries((init?.headers ?? {}))) {
|
|
20
|
+
headers[k.toLowerCase()] = v;
|
|
21
|
+
}
|
|
22
|
+
seen.push({
|
|
23
|
+
url: String(input),
|
|
46
24
|
method: init?.method ?? 'GET',
|
|
47
|
-
headers
|
|
48
|
-
body: init?.body ? JSON.parse(init.body) : undefined,
|
|
49
|
-
};
|
|
50
|
-
return {
|
|
51
|
-
ok: status >= 200 && status < 300,
|
|
25
|
+
headers,
|
|
26
|
+
body: init?.body ? JSON.parse(String(init.body)) : undefined,
|
|
27
|
+
});
|
|
28
|
+
return new Response(JSON.stringify(reply), {
|
|
52
29
|
status,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
text: async () => JSON.stringify(json),
|
|
56
|
-
};
|
|
30
|
+
headers: { 'content-type': 'application/json' },
|
|
31
|
+
});
|
|
57
32
|
});
|
|
58
|
-
return
|
|
33
|
+
return seen;
|
|
59
34
|
}
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
});
|
|
84
|
-
test('authorize fail-closed on commerce error (503/unavailable)', async () => {
|
|
85
|
-
const fx = mockFetch(500, { error: 'boom' });
|
|
86
|
-
const meter = new Metering({ baseUrl: BASE, token: 't', org: 'hanzo' });
|
|
87
|
-
const d = await meter.authorize({ user: 'hanzo/alice' });
|
|
88
|
-
fx.restore();
|
|
89
|
-
ok(!d.allowed, 'fail-closed must deny on 500');
|
|
90
|
-
eq(d.reason, 'balance_unavailable', 'reason');
|
|
91
|
-
});
|
|
92
|
-
test('authorize fail-open allows on commerce error when configured', async () => {
|
|
93
|
-
const fx = mockFetch(503, { error: 'down' });
|
|
94
|
-
const meter = new Metering({ baseUrl: BASE, token: 't', org: 'hanzo', failOpen: true });
|
|
95
|
-
const d = await meter.authorize({ user: 'hanzo/alice' });
|
|
96
|
-
fx.restore();
|
|
97
|
-
ok(d.allowed, 'fail-open must allow');
|
|
98
|
-
});
|
|
99
|
-
test('authorize not-configured allows', async () => {
|
|
100
|
-
const meter = new Metering({}); // no baseUrl
|
|
101
|
-
ok(!meter.enabled, 'enabled should be false');
|
|
102
|
-
const d = await meter.authorize({ user: 'hanzo/alice' });
|
|
103
|
-
ok(d.allowed, 'not-configured must allow');
|
|
104
|
-
});
|
|
105
|
-
test('tier-aware authorize uses effectiveAvailable and hits /v1/billing/tier', async () => {
|
|
106
|
-
const fx = mockFetch(200, { user: 'hanzo/alice', tier: { name: 'free' }, balance: { currency: 'usd', prepaidAvailable: 0, dailyRemaining: 100, effectiveAvailable: 100 } });
|
|
107
|
-
const meter = new Metering({ baseUrl: BASE, token: 't', org: 'hanzo', tierAware: true });
|
|
108
|
-
const d = await meter.authorize({ user: 'hanzo/alice' });
|
|
109
|
-
fx.restore();
|
|
110
|
-
ok(d.allowed, 'included allotment should allow');
|
|
111
|
-
eq(d.available, 100, 'effective available');
|
|
112
|
-
ok(fx.last().url.startsWith(`${BASE}/v1/billing/tier?`), `tier url=${fx.last().url}`);
|
|
113
|
-
});
|
|
114
|
-
test('tier-aware authorize denies when effectiveAvailable == 0', async () => {
|
|
115
|
-
const fx = mockFetch(200, { balance: { effectiveAvailable: 0, prepaidAvailable: 0, dailyRemaining: 0, currency: 'usd' } });
|
|
116
|
-
const meter = new Metering({ baseUrl: BASE, token: 't', org: 'hanzo', tierAware: true });
|
|
117
|
-
const d = await meter.authorize({ user: 'hanzo/alice' });
|
|
118
|
-
fx.restore();
|
|
119
|
-
ok(!d.allowed && d.reason === 'insufficient_balance', 'exhausted must deny insufficient');
|
|
120
|
-
});
|
|
121
|
-
test('per-call org overrides default', async () => {
|
|
122
|
-
const fx = mockFetch(200, { available: 1 });
|
|
123
|
-
const meter = new Metering({ baseUrl: BASE, token: 't', org: 'hanzo' });
|
|
124
|
-
await meter.authorize({ user: 'zoo/bob', org: 'zoo' });
|
|
125
|
-
fx.restore();
|
|
126
|
-
eq(fx.last().headers['x-iam-org-id'], 'zoo', 'per-call org override');
|
|
127
|
-
});
|
|
128
|
-
test('record posts canonical payload', async () => {
|
|
129
|
-
const fx = mockFetch(201, { transactionId: 'tx_123', user: 'hanzo/alice', amount: 250, currency: 'usd', type: 'withdraw' });
|
|
130
|
-
const meter = new Metering({ baseUrl: BASE, token: 'svc-token', org: 'hanzo' });
|
|
131
|
-
const res = await meter.record({ user: 'hanzo/alice', amount: 250, provider: 'search', requestId: 'req-9', status: 'success' });
|
|
132
|
-
fx.restore();
|
|
133
|
-
ok(res !== null && res.transactionId === 'tx_123' && res.amount === 250, 'record result');
|
|
134
|
-
const c = fx.last();
|
|
135
|
-
eq(c.method, 'POST', 'method');
|
|
136
|
-
eq(c.url, `${BASE}/v1/billing/usage`, 'usage url');
|
|
137
|
-
eq(c.headers['authorization'], 'Bearer svc-token', 'bearer');
|
|
138
|
-
eq(c.headers['x-iam-org-id'], 'hanzo', 'org header');
|
|
139
|
-
const b = c.body;
|
|
140
|
-
eq(b.user, 'hanzo/alice', 'body.user');
|
|
141
|
-
eq(b.amount, 250, 'body.amount');
|
|
142
|
-
eq(b.currency, 'usd', 'body.currency defaulted');
|
|
143
|
-
eq(b.provider, 'search', 'body.provider');
|
|
144
|
-
eq(b.requestId, 'req-9', 'body.requestId');
|
|
145
|
-
ok(!('org' in b), 'org must not leak into the body');
|
|
146
|
-
});
|
|
147
|
-
test('record zero-amount is a no-op (no fetch)', async () => {
|
|
148
|
-
const fx = mockFetch(200, {});
|
|
149
|
-
const meter = new Metering({ baseUrl: BASE, token: 't', org: 'hanzo' });
|
|
150
|
-
const res = await meter.record({ user: 'hanzo/alice', amount: 0 });
|
|
151
|
-
fx.restore();
|
|
152
|
-
ok(res === null, 'zero-amount returns null');
|
|
153
|
-
ok(fx.last() === null, 'zero-amount must not call commerce');
|
|
154
|
-
});
|
|
155
|
-
test('record not-configured is a no-op', async () => {
|
|
156
|
-
const meter = new Metering({});
|
|
157
|
-
const res = await meter.record({ user: 'hanzo/alice', amount: 100 });
|
|
158
|
-
ok(res === null, 'not-configured returns null');
|
|
35
|
+
const meter = (over = {}) => new Metering({ baseUrl: 'http://commerce.test', token: 'svc', org: 'acme', ...over });
|
|
36
|
+
afterEach(() => vi.unstubAllGlobals());
|
|
37
|
+
describe('the org travels under the name commerce reads', () => {
|
|
38
|
+
it('names the org X-Org-Id', async () => {
|
|
39
|
+
const seen = listen();
|
|
40
|
+
await meter().authorize({ user: 'acme/alice' });
|
|
41
|
+
expect(seen[0].headers['x-org-id']).toBe('acme');
|
|
42
|
+
});
|
|
43
|
+
it('does not send X-IAM-Org-Id, which commerce reads nowhere', async () => {
|
|
44
|
+
const seen = listen();
|
|
45
|
+
await meter().authorize({ user: 'acme/alice' });
|
|
46
|
+
expect(seen[0].headers).not.toHaveProperty('x-iam-org-id');
|
|
47
|
+
});
|
|
48
|
+
it('lets a per-call org outrank the default, so one meter serves many tenants', async () => {
|
|
49
|
+
const seen = listen();
|
|
50
|
+
await meter().authorize({ user: 'other/bob', org: 'other' });
|
|
51
|
+
expect(seen[0].headers['x-org-id']).toBe('other');
|
|
52
|
+
});
|
|
53
|
+
it('carries the org on the debit too, not only the gate', async () => {
|
|
54
|
+
const seen = listen({ status: 'ok', data: { transactionId: 't1' } });
|
|
55
|
+
await meter().record({ user: 'acme/alice', org: 'other', amount: 5 });
|
|
56
|
+
expect(seen[0].headers['x-org-id']).toBe('other');
|
|
57
|
+
});
|
|
159
58
|
});
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
59
|
+
describe('the ledger is chosen deliberately', () => {
|
|
60
|
+
it('stays on the live books unless asked otherwise', async () => {
|
|
61
|
+
const seen = listen();
|
|
62
|
+
await meter().authorize({ user: 'acme/alice' });
|
|
63
|
+
expect(seen[0].headers).not.toHaveProperty('x-hanzo-test');
|
|
64
|
+
});
|
|
65
|
+
it('opts into the sandbox books when told to', async () => {
|
|
66
|
+
const seen = listen();
|
|
67
|
+
await meter({ test: true }).authorize({ user: 'acme/alice' });
|
|
68
|
+
expect(seen[0].headers['x-hanzo-test']).toBe('true');
|
|
69
|
+
});
|
|
163
70
|
});
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
71
|
+
describe('the gate is closed when the answer is unknown', () => {
|
|
72
|
+
it('denies with 503-shaped reason when commerce cannot answer', async () => {
|
|
73
|
+
listen({ detail: 'nope' }, 500);
|
|
74
|
+
expect(await meter().authorize({ user: 'acme/alice' })).toEqual({
|
|
75
|
+
allowed: false,
|
|
76
|
+
reason: 'balance_unavailable',
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
it('denies with 402-shaped reason when the balance is spent', async () => {
|
|
80
|
+
listen({ status: 'ok', data: { available: 0 } });
|
|
81
|
+
const d = await meter().authorize({ user: 'acme/alice' });
|
|
82
|
+
expect(d.allowed).toBe(false);
|
|
83
|
+
expect(d.reason).toBe('insufficient_balance');
|
|
84
|
+
});
|
|
85
|
+
it('opens only where a product said availability outranks revenue', async () => {
|
|
86
|
+
listen({ detail: 'nope' }, 500);
|
|
87
|
+
expect((await meter({ failOpen: true }).authorize({ user: 'acme/alice' })).allowed).toBe(true);
|
|
88
|
+
});
|
|
89
|
+
it('allows everything when no commerce is configured, so local dev needs no token', async () => {
|
|
90
|
+
const seen = listen();
|
|
91
|
+
expect((await new Metering({}).authorize({ user: 'acme/alice' })).allowed).toBe(true);
|
|
92
|
+
expect(seen).toHaveLength(0);
|
|
93
|
+
});
|
|
167
94
|
});
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
95
|
+
describe('the addresses are the ones the API serves', () => {
|
|
96
|
+
it('gates on the balance, and on the tier when asked', async () => {
|
|
97
|
+
const bare = listen();
|
|
98
|
+
await meter().authorize({ user: 'acme/alice' });
|
|
99
|
+
expect(bare[0].url).toContain('/v1/billing/balance');
|
|
100
|
+
vi.unstubAllGlobals();
|
|
101
|
+
const tiered = listen({ status: 'ok', data: { balance: { effectiveAvailable: 10 } } });
|
|
102
|
+
await meter({ tierAware: true }).authorize({ user: 'acme/alice' });
|
|
103
|
+
expect(tiered[0].url).toContain('/v1/billing/tier');
|
|
104
|
+
});
|
|
105
|
+
it('debits by POST, with the org outside the body', async () => {
|
|
106
|
+
const seen = listen({ status: 'ok', data: { transactionId: 't1' } });
|
|
107
|
+
await meter().record({ user: 'acme/alice', amount: 5, model: 'zen' });
|
|
108
|
+
expect(seen[0].method).toBe('POST');
|
|
109
|
+
expect(seen[0].url).toContain('/v1/billing/usage');
|
|
110
|
+
expect(seen[0].body).toMatchObject({ user: 'acme/alice', amount: 5 });
|
|
111
|
+
expect(seen[0].body).not.toHaveProperty('org');
|
|
112
|
+
});
|
|
113
|
+
it('writes nothing for usage that costs nothing', async () => {
|
|
114
|
+
const seen = listen();
|
|
115
|
+
expect(await meter().record({ user: 'acme/alice', amount: 0 })).toBeNull();
|
|
116
|
+
expect(seen).toHaveLength(0);
|
|
117
|
+
});
|
|
172
118
|
});
|
|
173
|
-
// summary
|
|
174
|
-
setTimeout(() => {
|
|
175
|
-
if (failures > 0) {
|
|
176
|
-
console.error(`\n${failures}/${count} tests FAILED`);
|
|
177
|
-
process.exit(1);
|
|
178
|
-
}
|
|
179
|
-
console.log(`\nall ${count} tests passed`);
|
|
180
|
-
}, 200);
|
|
181
119
|
//# sourceMappingURL=metering.test.js.map
|