@openaisdk/billing-sdk-node 1.11.2 → 1.11.3

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 CHANGED
@@ -199,6 +199,31 @@ await billing.meterEvents.create({
199
199
  const invoices = await billing.invoices.list({ customer: customer.id, limit: 20 });
200
200
  ```
201
201
 
202
+ ## Diagnostics
203
+
204
+ Диагностика работает только на сервере и ничего не печатает:
205
+
206
+ ```ts
207
+ import { diagnostics } from '@openaisdk/billing-sdk-node';
208
+
209
+ const report = await billing.diagnostics.run({ expectedMode: 'test' });
210
+ const safeView = diagnostics.toUiProjection(report);
211
+ ```
212
+
213
+ В браузер передавайте только `safeView`, не API key.
214
+ CLI: `BILLING_API_KEY=bsk_test_... billing-sdk-doctor --json`.
215
+ Опционально: `BILLING_API_URL`, `BILLING_WEBHOOK_SECRET`.
216
+ Флаги: `--customer`, `--feature`, `--webhook-secret`, `--expected-mode`, `--timeout`, `--json`.
217
+
218
+ `pass` — ключ и каталог отвечают. Без customer / feature / webhook secret проверка `skipped`, не `fail`. HTTP 200 при `allowed: false` или пустом снимке доступа — `warn`.
219
+
220
+ | Exit | Значение |
221
+ | ---- | ------------------------------------------- |
222
+ | 0 | `pass`, `warn` или только `skipped` |
223
+ | 1 | `fail` |
224
+ | 2 | ошибка аргументов или нет `BILLING_API_KEY` |
225
+ | 3 | ошибка запуска |
226
+
202
227
  ---
203
228
 
204
229
  ## Ошибки
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env node
2
+ /* global process */
3
+
4
+ import { MegaBilling } from '../dist/index.js';
5
+
6
+ const USAGE = `Usage: billing-sdk-doctor [options]
7
+
8
+ Options:
9
+ --customer <id>
10
+ --feature <code>
11
+ --webhook-secret <secret> Defaults to BILLING_WEBHOOK_SECRET
12
+ --expected-mode <test|live>
13
+ --timeout <ms>
14
+ --json
15
+ --help
16
+ `;
17
+
18
+ class UsageError extends Error {}
19
+
20
+ function parse(argv) {
21
+ const options = {};
22
+ let json = false;
23
+ for (let index = 0; index < argv.length; index += 1) {
24
+ const flag = argv[index];
25
+ if (flag === '--json') {
26
+ json = true;
27
+ continue;
28
+ }
29
+ if (flag === '--help') return { help: true, json, options };
30
+ if (
31
+ !['--customer', '--feature', '--webhook-secret', '--expected-mode', '--timeout'].includes(flag)
32
+ ) {
33
+ throw new UsageError(`Unknown flag: ${flag}`);
34
+ }
35
+ const value = argv[++index];
36
+ if (!value || value.startsWith('--')) throw new UsageError(`Missing value for ${flag}`);
37
+ if (flag === '--customer') options.customer = value;
38
+ if (flag === '--feature') options.feature = value;
39
+ if (flag === '--webhook-secret') options.webhookSecret = value;
40
+ if (flag === '--expected-mode') {
41
+ if (value !== 'test' && value !== 'live') throw new UsageError('Invalid --expected-mode');
42
+ options.expectedMode = value;
43
+ }
44
+ if (flag === '--timeout') {
45
+ const timeoutMs = Number(value);
46
+ if (!Number.isInteger(timeoutMs) || timeoutMs <= 0) throw new UsageError('Invalid --timeout');
47
+ options.timeoutMs = timeoutMs;
48
+ }
49
+ }
50
+ return { help: false, json, options };
51
+ }
52
+
53
+ function human(report) {
54
+ const lines = [
55
+ `MegaBilling diagnostics: ${report.status.toUpperCase()}`,
56
+ `Mode: ${report.context.mode}`,
57
+ `Key: ${report.context.key.handle}`,
58
+ ];
59
+ if (report.context.project?.name) lines.push(`Project: ${report.context.project.name}`);
60
+ for (const check of report.checks) {
61
+ lines.push(
62
+ `[${check.status.toUpperCase()}] ${check.id}${check.reason ? ` (${check.reason})` : ''}`
63
+ );
64
+ }
65
+ return `${lines.join('\n')}\n`;
66
+ }
67
+
68
+ async function main() {
69
+ const parsed = parse(process.argv.slice(2));
70
+ if (parsed.help) {
71
+ process.stdout.write(USAGE);
72
+ return 0;
73
+ }
74
+
75
+ const apiKey = process.env.BILLING_API_KEY;
76
+ if (!apiKey?.trim()) throw new UsageError('BILLING_API_KEY is required');
77
+ parsed.options.webhookSecret ??= process.env.BILLING_WEBHOOK_SECRET;
78
+
79
+ const billing = new MegaBilling({
80
+ apiKey,
81
+ baseUrl: process.env.BILLING_API_URL,
82
+ timeoutMs: parsed.options.timeoutMs,
83
+ });
84
+ const report = await billing.diagnostics.run(parsed.options);
85
+ process.stdout.write(parsed.json ? `${JSON.stringify(report)}\n` : human(report));
86
+ return report.status === 'fail' ? 1 : 0;
87
+ }
88
+
89
+ main()
90
+ .then((code) => {
91
+ process.exitCode = code;
92
+ })
93
+ .catch((error) => {
94
+ const usage = error instanceof UsageError;
95
+ process.stderr.write(`${error instanceof Error ? error.message : 'Startup failed'}\n`);
96
+ if (usage) process.stderr.write(USAGE);
97
+ process.exitCode = usage ? 2 : 3;
98
+ });
@@ -0,0 +1,46 @@
1
+ import type { DiagnosticsOptions, DiagnosticsReport } from './types.js';
2
+ interface ResponseMeta {
3
+ requestId: string | null;
4
+ }
5
+ interface IntegrationContextResponse extends ResponseMeta {
6
+ livemode: boolean;
7
+ mode: 'test' | 'live';
8
+ apiVersion: string;
9
+ project: {
10
+ name: string;
11
+ };
12
+ }
13
+ interface ListResponse<T> extends ResponseMeta {
14
+ data: T[];
15
+ }
16
+ interface ProductShape {
17
+ id: string;
18
+ active: boolean;
19
+ sortOrder: number;
20
+ }
21
+ interface PriceShape {
22
+ product: string;
23
+ active: boolean;
24
+ }
25
+ interface DiagnosticsDependencies {
26
+ apiKey: () => string;
27
+ baseUrl: () => string;
28
+ sdkPackage: '@openaisdk/billing-sdk-node';
29
+ sdkVersion: string;
30
+ context: (timeoutMs?: number) => Promise<IntegrationContextResponse>;
31
+ products: (timeoutMs?: number) => Promise<ListResponse<ProductShape>>;
32
+ prices: (timeoutMs?: number) => Promise<ListResponse<PriceShape>>;
33
+ features: (timeoutMs?: number) => Promise<ListResponse<unknown>>;
34
+ accessRetrieve: (customer: string, timeoutMs?: number) => Promise<ResponseMeta & {
35
+ features: string[];
36
+ }>;
37
+ accessCheck: (customer: string, feature: string, timeoutMs?: number) => Promise<ResponseMeta & {
38
+ allowed: boolean;
39
+ }>;
40
+ webhookLocal: (secret: string) => void;
41
+ }
42
+ export declare function createDiagnostics(deps: DiagnosticsDependencies): {
43
+ run(options?: DiagnosticsOptions): Promise<DiagnosticsReport>;
44
+ };
45
+ export {};
46
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/diagnostics/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASlG,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,UAAU,0BAA2B,SAAQ,YAAY;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AAED,UAAU,YAAY,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC5C,IAAI,EAAE,CAAC,EAAE,CAAC;CACX;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,UAAU,EAAE,6BAA6B,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACrE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IACtE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAClE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,YAAY,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACpD,WAAW,EAAE,CACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,YAAY,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAiDD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,uBAAuB,GAAG;IAChE,GAAG,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/D,CAEA"}
@@ -0,0 +1,273 @@
1
+ const DOCS_URL = '#diagnostics';
2
+ const AUTH_CODES = new Set([
3
+ 'integration_key_missing',
4
+ 'integration_key_invalid',
5
+ 'integration_key_revoked',
6
+ ]);
7
+ const DEFINITIONS = {
8
+ 'api.reachable': {
9
+ title: 'API reachable',
10
+ remediation: 'Check BILLING_API_URL and network connectivity.',
11
+ },
12
+ 'api.auth': {
13
+ title: 'API authentication',
14
+ remediation: 'Create or rotate the integration key and update BILLING_API_KEY.',
15
+ },
16
+ 'integration.context': {
17
+ title: 'Integration context',
18
+ remediation: 'Verify the integration key project and contact MegaBilling support.',
19
+ },
20
+ 'mode.consistency': {
21
+ title: 'Mode consistency',
22
+ remediation: 'Use a key and resources from the expected test or live mode.',
23
+ },
24
+ 'catalog.products.readable': {
25
+ title: 'Products readable',
26
+ remediation: 'Create at least one active product in MegaBilling.',
27
+ },
28
+ 'catalog.prices.readable': {
29
+ title: 'Prices readable',
30
+ remediation: 'Create at least one active price in MegaBilling.',
31
+ },
32
+ 'catalog.features.readable': {
33
+ title: 'Features readable',
34
+ remediation: 'Create at least one feature in MegaBilling.',
35
+ },
36
+ 'catalog.pricing_page_shape': {
37
+ title: 'Pricing page shape',
38
+ remediation: 'Set sortOrder and an active price for every active product.',
39
+ },
40
+ 'access.retrieve': {
41
+ title: 'Access readable',
42
+ remediation: 'Verify the customer identifier and its project.',
43
+ },
44
+ 'access.check': {
45
+ title: 'Feature access check',
46
+ remediation: 'Verify the customer and feature code.',
47
+ },
48
+ 'webhook.signature.local': {
49
+ title: 'Webhook signature local',
50
+ remediation: 'Copy the current webhook secret from MegaBilling.',
51
+ },
52
+ };
53
+ export function createDiagnostics(deps) {
54
+ return { run: (options = {}) => runDiagnostics(deps, options) };
55
+ }
56
+ async function runDiagnostics(deps, options) {
57
+ const started = Date.now();
58
+ const startedAt = new Date(started).toISOString();
59
+ const checks = [];
60
+ let context;
61
+ const probeStarted = Date.now();
62
+ try {
63
+ context = await deps.context(options.timeoutMs);
64
+ checks.push(result('api.reachable', 'pass', probeStarted));
65
+ checks.push(result('api.auth', 'pass', probeStarted, { requestId: context.requestId }));
66
+ checks.push(result('integration.context', 'pass', probeStarted));
67
+ }
68
+ catch (error) {
69
+ const failure = safeError(error);
70
+ const authFailure = AUTH_CODES.has(failure.code);
71
+ const reachableStatus = authFailure
72
+ ? 'pass'
73
+ : failure.status >= 400 && failure.status < 500
74
+ ? 'warn'
75
+ : 'fail';
76
+ checks.push(result('api.reachable', reachableStatus, probeStarted, {
77
+ message: authFailure ? undefined : failure.code,
78
+ }));
79
+ checks.push(authFailure
80
+ ? result('api.auth', 'fail', probeStarted, {
81
+ message: failure.code,
82
+ requestId: failure.requestId,
83
+ })
84
+ : skipped('api.auth', 'depends_on:api.reachable'));
85
+ checks.push(skipped('integration.context', 'depends_on:api.auth'));
86
+ }
87
+ if (context) {
88
+ const prefixMode = keyMode(deps.apiKey());
89
+ const consistent = context.mode === (context.livemode ? 'live' : 'test') &&
90
+ (prefixMode === 'unknown' || prefixMode === context.mode) &&
91
+ (!options.expectedMode || options.expectedMode === context.mode);
92
+ checks.push(result('mode.consistency', consistent ? 'pass' : 'warn', Date.now(), {
93
+ message: consistent ? undefined : 'Configured and returned modes differ.',
94
+ }));
95
+ }
96
+ else {
97
+ checks.push(skipped('mode.consistency', 'depends_on:api.auth'));
98
+ }
99
+ let products;
100
+ let prices;
101
+ if (context) {
102
+ products = await readable('catalog.products.readable', () => deps.products(options.timeoutMs), checks);
103
+ prices = await readable('catalog.prices.readable', () => deps.prices(options.timeoutMs), checks);
104
+ await readable('catalog.features.readable', () => deps.features(options.timeoutMs), checks);
105
+ }
106
+ else {
107
+ checks.push(skipped('catalog.products.readable', 'depends_on:api.auth'));
108
+ checks.push(skipped('catalog.prices.readable', 'depends_on:api.auth'));
109
+ checks.push(skipped('catalog.features.readable', 'depends_on:api.auth'));
110
+ }
111
+ if (products && prices) {
112
+ const startedAtMs = Date.now();
113
+ const activeProducts = products.data.filter((product) => product.active);
114
+ const activePrices = prices.data.filter((price) => price.active);
115
+ const valid = activeProducts.length > 0 &&
116
+ activeProducts.every((product) => Number.isFinite(product.sortOrder) &&
117
+ activePrices.some((price) => price.product === product.id));
118
+ checks.push(result('catalog.pricing_page_shape', valid ? 'pass' : 'warn', startedAtMs, {
119
+ data: { activeProducts: activeProducts.length, activePrices: activePrices.length },
120
+ }));
121
+ }
122
+ else {
123
+ checks.push(skipped('catalog.pricing_page_shape', 'depends_on:catalog.readable'));
124
+ }
125
+ await runAccessChecks(deps, options, checks, Boolean(context));
126
+ runWebhookCheck(deps, options.webhookSecret, checks);
127
+ const finished = Date.now();
128
+ return {
129
+ object: 'diagnostics_report',
130
+ version: 1,
131
+ livemode: context?.livemode ?? null,
132
+ status: aggregate(checks),
133
+ context: {
134
+ sdkVersion: deps.sdkVersion,
135
+ sdkPackage: deps.sdkPackage,
136
+ apiVersion: context?.apiVersion ?? null,
137
+ baseUrl: safeBaseUrl(deps.baseUrl()),
138
+ mode: context?.mode ?? 'unknown',
139
+ key: { handle: maskKey(deps.apiKey()) },
140
+ ...(context ? { project: { name: context.project.name } } : {}),
141
+ startedAt,
142
+ finishedAt: new Date(finished).toISOString(),
143
+ totalDurationMs: finished - started,
144
+ },
145
+ checks,
146
+ };
147
+ }
148
+ async function readable(id, call, checks) {
149
+ const started = Date.now();
150
+ try {
151
+ const response = await call();
152
+ checks.push(result(id, response.data.length > 0 ? 'pass' : 'warn', started, {
153
+ requestId: response.requestId,
154
+ data: { count: response.data.length },
155
+ }));
156
+ return response;
157
+ }
158
+ catch (error) {
159
+ const failure = safeError(error);
160
+ checks.push(result(id, 'fail', started, { message: failure.code, requestId: failure.requestId }));
161
+ return undefined;
162
+ }
163
+ }
164
+ async function runAccessChecks(deps, options, checks, authenticated) {
165
+ if (!authenticated) {
166
+ checks.push(skipped('access.retrieve', 'depends_on:api.auth'));
167
+ checks.push(skipped('access.check', 'depends_on:api.auth'));
168
+ return;
169
+ }
170
+ if (!options.customer) {
171
+ checks.push(skipped('access.retrieve', 'missing:customer'));
172
+ checks.push(skipped('access.check', 'missing:customer_or_feature'));
173
+ return;
174
+ }
175
+ const retrieveStarted = Date.now();
176
+ try {
177
+ const response = await deps.accessRetrieve(options.customer, options.timeoutMs);
178
+ checks.push(result('access.retrieve', response.features.length > 0 ? 'pass' : 'warn', retrieveStarted, {
179
+ requestId: response.requestId,
180
+ data: { featureCount: response.features.length },
181
+ }));
182
+ }
183
+ catch (error) {
184
+ const failure = safeError(error);
185
+ checks.push(result('access.retrieve', 'fail', retrieveStarted, {
186
+ message: failure.code,
187
+ requestId: failure.requestId,
188
+ }));
189
+ checks.push(skipped('access.check', 'depends_on:access.retrieve'));
190
+ return;
191
+ }
192
+ if (!options.feature) {
193
+ checks.push(skipped('access.check', 'missing:customer_or_feature'));
194
+ return;
195
+ }
196
+ const checkStarted = Date.now();
197
+ try {
198
+ const response = await deps.accessCheck(options.customer, options.feature, options.timeoutMs);
199
+ checks.push(result('access.check', response.allowed ? 'pass' : 'warn', checkStarted, {
200
+ requestId: response.requestId,
201
+ data: { allowed: response.allowed },
202
+ }));
203
+ }
204
+ catch (error) {
205
+ const failure = safeError(error);
206
+ checks.push(result('access.check', 'fail', checkStarted, {
207
+ message: failure.code,
208
+ requestId: failure.requestId,
209
+ }));
210
+ }
211
+ }
212
+ function runWebhookCheck(deps, secret, checks) {
213
+ if (!secret) {
214
+ checks.push(skipped('webhook.signature.local', 'missing:webhook_secret'));
215
+ return;
216
+ }
217
+ const started = Date.now();
218
+ try {
219
+ deps.webhookLocal(secret);
220
+ checks.push(result('webhook.signature.local', 'pass', started));
221
+ }
222
+ catch {
223
+ checks.push(result('webhook.signature.local', 'fail', started));
224
+ }
225
+ }
226
+ function result(id, status, started, extra = {}) {
227
+ const definition = DEFINITIONS[id];
228
+ return {
229
+ id,
230
+ title: definition.title,
231
+ status,
232
+ durationMs: Math.max(0, Date.now() - started),
233
+ remediation: { text: definition.remediation, docsUrl: DOCS_URL },
234
+ ...extra,
235
+ };
236
+ }
237
+ function skipped(id, reason) {
238
+ return result(id, 'skipped', Date.now(), { reason });
239
+ }
240
+ function aggregate(checks) {
241
+ const rank = { pass: 0, warn: 1, fail: 2 };
242
+ return checks.reduce((overall, check) => check.status === 'skipped' || rank[check.status] <= rank[overall] ? overall : check.status, 'pass');
243
+ }
244
+ function keyMode(apiKey) {
245
+ if (apiKey.startsWith('bsk_test_'))
246
+ return 'test';
247
+ if (apiKey.startsWith('bsk_live_'))
248
+ return 'live';
249
+ return 'unknown';
250
+ }
251
+ function maskKey(apiKey) {
252
+ const mode = keyMode(apiKey);
253
+ return `bsk_${mode}_…${apiKey.slice(-4)}`;
254
+ }
255
+ function safeBaseUrl(value) {
256
+ try {
257
+ return new URL(value).origin;
258
+ }
259
+ catch {
260
+ return 'invalid_url';
261
+ }
262
+ }
263
+ function safeError(error) {
264
+ if (!error || typeof error !== 'object') {
265
+ return { code: 'unknown_error', requestId: null, status: 0 };
266
+ }
267
+ const value = error;
268
+ return {
269
+ code: typeof value.code === 'string' ? value.code : 'unknown_error',
270
+ requestId: typeof value.requestId === 'string' ? value.requestId : null,
271
+ status: typeof value.status === 'number' ? value.status : 0,
272
+ };
273
+ }
@@ -0,0 +1,4 @@
1
+ export { createDiagnostics } from './engine.js';
2
+ export { toUiProjection } from './ui-projection.js';
3
+ export type { CheckResult, CheckStatus, DiagnosticsContext, DiagnosticsOptions, DiagnosticsReport, DiagnosticsUiProjection, } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diagnostics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createDiagnostics } from './engine.js';
2
+ export { toUiProjection } from './ui-projection.js';
@@ -0,0 +1,66 @@
1
+ export type CheckStatus = 'pass' | 'warn' | 'fail' | 'skipped';
2
+ export interface CheckResult {
3
+ id: string;
4
+ title: string;
5
+ status: CheckStatus;
6
+ durationMs: number;
7
+ message?: string;
8
+ remediation: {
9
+ text: string;
10
+ docsUrl?: string;
11
+ };
12
+ requestId?: string | null;
13
+ data?: Record<string, unknown>;
14
+ reason?: string;
15
+ }
16
+ export interface DiagnosticsContext {
17
+ sdkVersion: string;
18
+ sdkPackage: '@openaisdk/billing-sdk-node';
19
+ apiVersion: string | null;
20
+ baseUrl: string;
21
+ mode: 'test' | 'live' | 'unknown';
22
+ key: {
23
+ handle: string;
24
+ };
25
+ project?: {
26
+ name?: string;
27
+ };
28
+ startedAt: string;
29
+ finishedAt: string;
30
+ totalDurationMs: number;
31
+ }
32
+ export interface DiagnosticsReport {
33
+ object: 'diagnostics_report';
34
+ version: 1;
35
+ livemode: boolean | null;
36
+ status: Exclude<CheckStatus, 'skipped'>;
37
+ context: DiagnosticsContext;
38
+ checks: CheckResult[];
39
+ }
40
+ export interface DiagnosticsOptions {
41
+ customer?: string;
42
+ feature?: string;
43
+ webhookSecret?: string;
44
+ timeoutMs?: number;
45
+ expectedMode?: 'test' | 'live';
46
+ }
47
+ export interface DiagnosticsUiProjection {
48
+ object: 'diagnostics_ui_projection';
49
+ version: 1;
50
+ status: DiagnosticsReport['status'];
51
+ checkedAt: string;
52
+ totalDurationMs: number;
53
+ context: {
54
+ mode: DiagnosticsContext['mode'];
55
+ project?: {
56
+ name?: string;
57
+ };
58
+ key: {
59
+ handle: string;
60
+ };
61
+ sdkVersion: string;
62
+ apiVersion: string | null;
63
+ };
64
+ checks: Array<Pick<CheckResult, 'id' | 'title' | 'status' | 'durationMs' | 'message' | 'remediation' | 'reason'>>;
65
+ }
66
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/diagnostics/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,6BAA6B,CAAC;IAC1C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAClC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACxC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,2BAA2B,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE;QACP,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5B,GAAG,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;IACF,MAAM,EAAE,KAAK,CACX,IAAI,CACF,WAAW,EACX,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,CAChF,CACF,CAAC;CACH"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { DiagnosticsReport, DiagnosticsUiProjection } from './types.js';
2
+ export declare function toUiProjection(report: DiagnosticsReport): DiagnosticsUiProjection;
3
+ //# sourceMappingURL=ui-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-projection.d.ts","sourceRoot":"","sources":["../../src/diagnostics/ui-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE7E,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,uBAAuB,CA2BjF"}
@@ -0,0 +1,28 @@
1
+ export function toUiProjection(report) {
2
+ return {
3
+ object: 'diagnostics_ui_projection',
4
+ version: 1,
5
+ status: report.status,
6
+ checkedAt: report.context.finishedAt,
7
+ totalDurationMs: report.context.totalDurationMs,
8
+ context: {
9
+ mode: report.context.mode,
10
+ ...(report.context.project ? { project: { name: report.context.project.name } } : {}),
11
+ key: { handle: report.context.key.handle },
12
+ sdkVersion: report.context.sdkVersion,
13
+ apiVersion: report.context.apiVersion,
14
+ },
15
+ checks: report.checks.map((check) => ({
16
+ id: check.id,
17
+ title: check.title,
18
+ status: check.status,
19
+ durationMs: check.durationMs,
20
+ ...(check.message === undefined ? {} : { message: check.message }),
21
+ remediation: {
22
+ text: check.remediation.text,
23
+ ...(check.remediation.docsUrl === undefined ? {} : { docsUrl: check.remediation.docsUrl }),
24
+ },
25
+ ...(check.reason === undefined ? {} : { reason: check.reason }),
26
+ })),
27
+ };
28
+ }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- declare const SDK_VERSION = "1.11.0";
1
+ import { toUiProjection } from './diagnostics/index.js';
2
+ import type { CheckResult, CheckStatus, DiagnosticsContext, DiagnosticsOptions, DiagnosticsReport, DiagnosticsUiProjection } from './diagnostics/index.js';
3
+ declare const SDK_VERSION = "1.11.2";
2
4
  declare const SDK_PACKAGE_NAME = "@openaisdk/billing-sdk-node";
3
5
  declare const DEFAULT_BASE_URL = "https://billing.example.com";
4
6
  declare const DEFAULT_TIMEOUT_MS = 30000;
@@ -66,6 +68,7 @@ export interface MegaBillingOptions {
66
68
  }
67
69
  export interface RequestOptions {
68
70
  signal?: AbortSignal;
71
+ timeoutMs?: number;
69
72
  }
70
73
  export interface CreateOptions extends RequestOptions {
71
74
  idempotencyKey?: string;
@@ -569,9 +572,16 @@ export declare class MegaBilling {
569
572
  data?: Partial<BillingTestWebhookData>;
570
573
  }) => BillingWebhookEvent<"billing.test">;
571
574
  };
575
+ readonly diagnostics: {
576
+ run(options?: DiagnosticsOptions): Promise<DiagnosticsReport>;
577
+ };
572
578
  constructor(options: MegaBillingOptions);
573
579
  private request;
574
580
  private buildHeaders;
575
581
  }
576
582
  export { DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, REQUEST_ID_HEADER, SDK_PACKAGE_NAME, SDK_VERSION, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_DEFAULT_TOLERANCE_SECONDS, };
583
+ export declare const diagnostics: {
584
+ toUiProjection: typeof toUiProjection;
585
+ };
586
+ export type { CheckResult, CheckStatus, DiagnosticsContext, DiagnosticsOptions, DiagnosticsReport, DiagnosticsUiProjection, };
577
587
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createHmac, timingSafeEqual } from 'crypto';
2
- const SDK_VERSION = '1.11.0';
2
+ import { createDiagnostics, toUiProjection } from './diagnostics/index.js';
3
+ const SDK_VERSION = '1.11.2';
3
4
  const SDK_PACKAGE_NAME = '@openaisdk/billing-sdk-node';
4
5
  const DEFAULT_BASE_URL = 'https://billing.example.com';
5
6
  const DEFAULT_TIMEOUT_MS = 30_000;
@@ -176,6 +177,23 @@ export class MegaBilling {
176
177
  },
177
178
  }),
178
179
  };
180
+ diagnostics = createDiagnostics({
181
+ apiKey: () => this.apiKey,
182
+ baseUrl: () => this.baseUrl,
183
+ sdkPackage: SDK_PACKAGE_NAME,
184
+ sdkVersion: SDK_VERSION,
185
+ context: (timeoutMs) => this.request('GET', '/v1/integration/context', undefined, { timeoutMs }),
186
+ products: (timeoutMs) => this.products.list({ active: true, limit: 20 }, { timeoutMs }),
187
+ prices: (timeoutMs) => this.prices.list({ active: true, limit: 20 }, { timeoutMs }),
188
+ features: (timeoutMs) => this.features.list({ limit: 20 }, { timeoutMs }),
189
+ accessRetrieve: (customer, timeoutMs) => this.access.retrieve(customer, { timeoutMs }),
190
+ accessCheck: (customer, feature, timeoutMs) => this.access.check(customer, feature, { timeoutMs }),
191
+ webhookLocal: (secret) => {
192
+ const payload = JSON.stringify(this.testHelpers.createTestEvent());
193
+ const signature = this.testHelpers.generateWebhookHeaderString(payload, secret);
194
+ this.webhooks.constructEvent(payload, signature, secret);
195
+ },
196
+ });
179
197
  constructor(options) {
180
198
  if (!options.apiKey?.trim()) {
181
199
  throw new Error('MegaBilling requires a non-empty apiKey');
@@ -186,12 +204,13 @@ export class MegaBilling {
186
204
  this.fetchImpl = options.fetch ?? fetch;
187
205
  }
188
206
  async request(method, path, body, options) {
207
+ const timeoutMs = options?.timeoutMs ?? this.timeoutMs;
189
208
  const timeoutController = new AbortController();
190
209
  let didTimeout = false;
191
210
  const timeoutId = setTimeout(() => {
192
211
  didTimeout = true;
193
212
  timeoutController.abort();
194
- }, this.timeoutMs);
213
+ }, timeoutMs);
195
214
  const signal = options?.signal
196
215
  ? AbortSignal.any([options.signal, timeoutController.signal])
197
216
  : timeoutController.signal;
@@ -216,7 +235,7 @@ export class MegaBilling {
216
235
  if (didTimeout) {
217
236
  throw new BillingError({
218
237
  code: 'request_timeout',
219
- message: `Request timed out after ${this.timeoutMs}ms`,
238
+ message: `Request timed out after ${timeoutMs}ms`,
220
239
  status: 408,
221
240
  requestId: null,
222
241
  });
@@ -384,3 +403,4 @@ function hexToBytes(value) {
384
403
  return bytes;
385
404
  }
386
405
  export { DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, REQUEST_ID_HEADER, SDK_PACKAGE_NAME, SDK_VERSION, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_DEFAULT_TOLERANCE_SECONDS, };
406
+ export const diagnostics = { toUiProjection };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openaisdk/billing-sdk-node",
3
- "version": "1.11.2",
3
+ "version": "1.11.3",
4
4
  "description": "Handwritten public Node SDK for Mega-Billing Wave 1 API",
5
5
  "license": "MIT",
6
6
  "author": "Anatoliy Tukov <openaisdk@gmail.com>",
@@ -26,7 +26,8 @@
26
26
  "main": "dist/index.js",
27
27
  "types": "dist/index.d.ts",
28
28
  "bin": {
29
- "billing-sdk-webhook-forward": "./bin/billing-sdk-webhook-forward.mjs"
29
+ "billing-sdk-webhook-forward": "./bin/billing-sdk-webhook-forward.mjs",
30
+ "billing-sdk-doctor": "./bin/billing-sdk-doctor.mjs"
30
31
  },
31
32
  "exports": {
32
33
  ".": {