@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.
@@ -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, Balance, TierResponse, Transaction, Subscription, Plan, Payment, UsageRecord, Coupon, CouponType, CouponValidateResult, Discount, CheckoutItem, CheckoutSessionRequest, CheckoutSessionResponse, PaymentMethod, PaymentMethodType, Referral, Referrer, Affiliate, CreditGrant, } from './client';
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;AAyBpE,4EAA4E;AAC5E,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,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"}
@@ -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-IAM-Org-Id`. The
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-IAM-Org-Id (default "hanzo"). */
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-IAM-Org-Id`. The
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 = orgHeader(id.org ?? this.org);
107
+ const headers = this.wire(id.org);
101
108
  try {
102
109
  const available = this.tierAware
103
- ? (await this.commerce.getTier(user, { headers })).balance.effectiveAvailable
104
- : (await this.commerce.getBalance(user, id.currency ?? 'usd', undefined, headers)).available;
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 = orgHeader(usage.org ?? this.org);
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.addUsageRecord(body, undefined, headers);
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-IAM-Org-Id': o } : undefined;
212
+ return o ? { 'X-Org-Id': o } : undefined;
194
213
  }
195
214
  function truthy(v) {
196
215
  const s = (v ?? '').trim().toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"metering.js","sourceRoot":"","sources":["../metering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metering.js","sourceRoot":"","sources":["../metering.ts"],"names":[],"mappings":"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"}
@@ -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 {};
@@ -1,181 +1,119 @@
1
1
  /**
2
- * Contract tests for @hanzo/commerce/metering.
2
+ * What goes on the wire, asserted from the wire.
3
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.
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 { Metering, identityFromHeaders } from './metering';
14
- // ---- tiny assert harness ----
15
- let failures = 0;
16
- let count = 0;
17
- function test(name, fn) {
18
- count++;
19
- Promise.resolve()
20
- .then(fn)
21
- .then(() => console.log(`ok - ${name}`))
22
- .catch((err) => {
23
- failures++;
24
- console.error(`FAIL - ${name}\n ${err?.message ?? err}`);
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: hdrs,
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
- statusText: `HTTP ${status}`,
54
- json: async () => json,
55
- text: async () => JSON.stringify(json),
56
- };
30
+ headers: { 'content-type': 'application/json' },
31
+ });
57
32
  });
58
- return { restore: () => { globalThis.fetch = original; }, last: () => last };
33
+ return seen;
59
34
  }
60
- const BASE = 'http://commerce.test';
61
- test('authorize allows when available > 0 and hits the canonical contract', async () => {
62
- const fx = mockFetch(200, { user: 'hanzo/alice', currency: 'usd', balance: 5000, holds: 0, available: 5000 });
63
- const meter = new Metering({ baseUrl: BASE, token: 'svc-token', org: 'hanzo' });
64
- const d = await meter.authorize({ user: 'hanzo/alice' });
65
- fx.restore();
66
- ok(d.allowed, 'should allow');
67
- eq(d.available, 5000, 'available');
68
- const c = fx.last();
69
- eq(c.method, 'GET', 'method');
70
- ok(c.url.startsWith(`${BASE}/v1/billing/balance?`), `url=${c.url}`);
71
- ok(c.url.includes('user=hanzo%2Falice'), `url must url-encode user: ${c.url}`);
72
- ok(c.url.includes('currency=usd'), `url must carry currency: ${c.url}`);
73
- eq(c.headers['authorization'], 'Bearer svc-token', 'bearer');
74
- eq(c.headers['x-iam-org-id'], 'hanzo', 'org header');
75
- });
76
- test('authorize denies (insufficient) when available == 0', async () => {
77
- const fx = mockFetch(200, { available: 0 });
78
- const meter = new Metering({ baseUrl: BASE, token: 't', org: 'hanzo' });
79
- const d = await meter.authorize({ user: 'hanzo/alice' });
80
- fx.restore();
81
- ok(!d.allowed, 'should deny');
82
- eq(d.reason, 'insufficient_balance', 'reason');
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
- test('fromEnv applies defaults and reads KMS-sourced token', () => {
161
- const meter = Metering.fromEnv({ COMMERCE_SERVICE_TOKEN: 'kms-token', METERING_TIER_AWARE: 'true' });
162
- ok(meter.enabled, 'fromEnv default base URL enables the meter');
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
- test('fromEnv honors METERING_DISABLED', () => {
165
- const meter = Metering.fromEnv({ METERING_DISABLED: 'true', COMMERCE_URL: BASE });
166
- ok(!meter.enabled, 'disabled must not be enabled');
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
- test('identityFromHeaders builds org/sub from gateway headers', () => {
169
- const id = identityFromHeaders({ 'x-org-id': 'zoo', 'x-user-id': 'bob' });
170
- eq(id.user, 'zoo/bob', 'user');
171
- eq(id.org, 'zoo', 'org');
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