@fiatden/openpay 0.0.0-stage → 0.0.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 +269 -2
- package/dist/analytics.test.d.ts +2 -0
- package/dist/analytics.test.d.ts.map +1 -0
- package/dist/analytics.test.js +184 -0
- package/dist/apps.test.d.ts +2 -0
- package/dist/apps.test.d.ts.map +1 -0
- package/dist/apps.test.js +92 -0
- package/dist/http.d.ts +22 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +56 -0
- package/dist/http.test.d.ts +2 -0
- package/dist/http.test.d.ts.map +1 -0
- package/dist/http.test.js +47 -0
- package/dist/index.d.ts +145 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +190 -0
- package/dist/resources/analytics.d.ts +215 -0
- package/dist/resources/analytics.d.ts.map +1 -0
- package/dist/resources/analytics.js +66 -0
- package/dist/resources/apiKeys.d.ts +22 -0
- package/dist/resources/apiKeys.d.ts.map +1 -0
- package/dist/resources/apiKeys.js +40 -0
- package/dist/resources/apps.d.ts +108 -0
- package/dist/resources/apps.d.ts.map +1 -0
- package/dist/resources/apps.js +32 -0
- package/dist/resources/auth.d.ts +71 -0
- package/dist/resources/auth.d.ts.map +1 -0
- package/dist/resources/auth.js +71 -0
- package/dist/resources/billing.d.ts +148 -0
- package/dist/resources/billing.d.ts.map +1 -0
- package/dist/resources/billing.js +55 -0
- package/dist/resources/charges.d.ts +67 -0
- package/dist/resources/charges.d.ts.map +1 -0
- package/dist/resources/charges.js +103 -0
- package/dist/resources/checkout.d.ts +80 -0
- package/dist/resources/checkout.d.ts.map +1 -0
- package/dist/resources/checkout.js +36 -0
- package/dist/resources/coupons.d.ts +66 -0
- package/dist/resources/coupons.d.ts.map +1 -0
- package/dist/resources/coupons.js +39 -0
- package/dist/resources/currencies.d.ts +45 -0
- package/dist/resources/currencies.d.ts.map +1 -0
- package/dist/resources/currencies.js +48 -0
- package/dist/resources/customers.d.ts +135 -0
- package/dist/resources/customers.d.ts.map +1 -0
- package/dist/resources/customers.js +50 -0
- package/dist/resources/disputes.d.ts +48 -0
- package/dist/resources/disputes.d.ts.map +1 -0
- package/dist/resources/disputes.js +47 -0
- package/dist/resources/emailTemplates.d.ts +55 -0
- package/dist/resources/emailTemplates.d.ts.map +1 -0
- package/dist/resources/emailTemplates.js +49 -0
- package/dist/resources/fx.d.ts +34 -0
- package/dist/resources/fx.d.ts.map +1 -0
- package/dist/resources/fx.js +27 -0
- package/dist/resources/invoices.d.ts +32 -0
- package/dist/resources/invoices.d.ts.map +1 -0
- package/dist/resources/invoices.js +36 -0
- package/dist/resources/merchants.d.ts +77 -0
- package/dist/resources/merchants.d.ts.map +1 -0
- package/dist/resources/merchants.js +97 -0
- package/dist/resources/metering.d.ts +65 -0
- package/dist/resources/metering.d.ts.map +1 -0
- package/dist/resources/metering.js +36 -0
- package/dist/resources/paymentLinks.d.ts +45 -0
- package/dist/resources/paymentLinks.d.ts.map +1 -0
- package/dist/resources/paymentLinks.js +32 -0
- package/dist/resources/payouts.d.ts +49 -0
- package/dist/resources/payouts.d.ts.map +1 -0
- package/dist/resources/payouts.js +55 -0
- package/dist/resources/providers.d.ts +52 -0
- package/dist/resources/providers.d.ts.map +1 -0
- package/dist/resources/providers.js +38 -0
- package/dist/resources/reconciliation.d.ts +125 -0
- package/dist/resources/reconciliation.d.ts.map +1 -0
- package/dist/resources/reconciliation.js +50 -0
- package/dist/resources/referrals.d.ts +25 -0
- package/dist/resources/referrals.d.ts.map +1 -0
- package/dist/resources/referrals.js +16 -0
- package/dist/resources/riskReview.d.ts +96 -0
- package/dist/resources/riskReview.d.ts.map +1 -0
- package/dist/resources/riskReview.js +44 -0
- package/dist/resources/roles.d.ts +59 -0
- package/dist/resources/roles.d.ts.map +1 -0
- package/dist/resources/roles.js +42 -0
- package/dist/resources/subscriptions.d.ts +42 -0
- package/dist/resources/subscriptions.d.ts.map +1 -0
- package/dist/resources/subscriptions.js +61 -0
- package/dist/resources/totp.d.ts +36 -0
- package/dist/resources/totp.d.ts.map +1 -0
- package/dist/resources/totp.js +41 -0
- package/dist/resources/wallets.d.ts +124 -0
- package/dist/resources/wallets.d.ts.map +1 -0
- package/dist/resources/wallets.js +68 -0
- package/dist/resources/webhooks.d.ts +47 -0
- package/dist/resources/webhooks.d.ts.map +1 -0
- package/dist/resources/webhooks.js +41 -0
- package/dist/types.d.ts +484 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/package.json +46 -4
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AnalyticsResource = void 0;
|
|
4
|
+
class AnalyticsResource {
|
|
5
|
+
client;
|
|
6
|
+
constructor(client) {
|
|
7
|
+
this.client = client;
|
|
8
|
+
}
|
|
9
|
+
/** Get platform-wide overview metrics. */
|
|
10
|
+
async getOverview() {
|
|
11
|
+
return this.client.request('/v1/analytics/overview');
|
|
12
|
+
}
|
|
13
|
+
/** Get per-merchant analytics. */
|
|
14
|
+
async getMerchantAnalytics(merchantId) {
|
|
15
|
+
return this.client.request(`/v1/analytics/merchant/${merchantId}`);
|
|
16
|
+
}
|
|
17
|
+
/** Get P&L statement for a date range. */
|
|
18
|
+
async getPnl(params) {
|
|
19
|
+
return this.client.request('/v1/analytics/pnl', { params });
|
|
20
|
+
}
|
|
21
|
+
/** Get trial balance (double-entry accounting) as of a date. */
|
|
22
|
+
async getTrialBalance(asOfDate) {
|
|
23
|
+
return this.client.request('/v1/analytics/trial-balance', {
|
|
24
|
+
params: asOfDate ? { as_of: asOfDate } : undefined,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** Get circuit breaker status for all providers. */
|
|
28
|
+
async getCircuitStatus() {
|
|
29
|
+
return this.client.request('/v1/analytics/circuits');
|
|
30
|
+
}
|
|
31
|
+
/** Get active FX rates. */
|
|
32
|
+
async listFxRates() {
|
|
33
|
+
return this.client.request('/v1/analytics/fx-rates');
|
|
34
|
+
}
|
|
35
|
+
/** Admin: set an FX rate. */
|
|
36
|
+
async setFxRate(params) {
|
|
37
|
+
return this.client.request('/v1/analytics/fx-rates', {
|
|
38
|
+
method: 'POST',
|
|
39
|
+
body: params,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/** Get audit logs with optional filters. */
|
|
43
|
+
async getAuditLogs(params) {
|
|
44
|
+
return this.client.request('/v1/audit-logs', { params });
|
|
45
|
+
}
|
|
46
|
+
/** Get fraud detection analytics (admin-only). Returns summary, daily breakdown, top flagged transactions. */
|
|
47
|
+
async getFraudAnalytics() {
|
|
48
|
+
return this.client.request('/v1/analytics/fraud');
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 8.4 cross-merchant analytics: customers who transact with more than one
|
|
52
|
+
* merchant. Admins see the whole platform; a merchant sees its subtree.
|
|
53
|
+
*/
|
|
54
|
+
async getCustomerOverlap(params) {
|
|
55
|
+
return this.client.request('/v1/analytics/customer-overlap', { params });
|
|
56
|
+
}
|
|
57
|
+
/** 8.4 marketplace rollup: per-merchant GMV and charge outcomes in scope. */
|
|
58
|
+
async getMarketplace() {
|
|
59
|
+
return this.client.request('/v1/analytics/marketplace');
|
|
60
|
+
}
|
|
61
|
+
/** Get chargeback ratios (admin-only). Returns per-merchant 90-day ratios with safe/warning/critical status. */
|
|
62
|
+
async getChargebackRatios() {
|
|
63
|
+
return this.client.request('/v1/analytics/chargeback-ratios');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.AnalyticsResource = AnalyticsResource;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { HttpClient } from '../http';
|
|
2
|
+
import { ApiKeyCreateParams, ApiKey, ListResponse } from '../types';
|
|
3
|
+
export declare class ApiKeysResource {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: HttpClient);
|
|
6
|
+
/** Create a new API key. The full key is returned only once. */
|
|
7
|
+
create(params: ApiKeyCreateParams): Promise<ApiKey>;
|
|
8
|
+
/** List all API keys (key values are never returned). */
|
|
9
|
+
list(): Promise<ListResponse<Omit<ApiKey, 'api_key'>>>;
|
|
10
|
+
/** Revoke (deactivate) an API key. */
|
|
11
|
+
revoke(id: string): Promise<ApiKey>;
|
|
12
|
+
/** Rotate an API key's secret. The new key is returned exactly once and the old secret is revoked immediately. */
|
|
13
|
+
rotate(id: string): Promise<ApiKey & {
|
|
14
|
+
api_key: string;
|
|
15
|
+
}>;
|
|
16
|
+
/** Update an API key's name or scopes. */
|
|
17
|
+
update(id: string, params: {
|
|
18
|
+
name?: string;
|
|
19
|
+
scopes?: string[];
|
|
20
|
+
}): Promise<ApiKey>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=apiKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiKeys.d.ts","sourceRoot":"","sources":["../../src/resources/apiKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE,qBAAa,eAAe;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC,gEAAgE;IAC1D,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzD,yDAAyD;IACnD,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAI5D,sCAAsC;IAChC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzC,kHAAkH;IAC5G,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/D,0CAA0C;IACpC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAMxF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiKeysResource = void 0;
|
|
4
|
+
class ApiKeysResource {
|
|
5
|
+
client;
|
|
6
|
+
constructor(client) {
|
|
7
|
+
this.client = client;
|
|
8
|
+
}
|
|
9
|
+
/** Create a new API key. The full key is returned only once. */
|
|
10
|
+
async create(params) {
|
|
11
|
+
return this.client.request('/v1/api-keys', {
|
|
12
|
+
method: 'POST',
|
|
13
|
+
body: params,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/** List all API keys (key values are never returned). */
|
|
17
|
+
async list() {
|
|
18
|
+
return this.client.request('/v1/api-keys');
|
|
19
|
+
}
|
|
20
|
+
/** Revoke (deactivate) an API key. */
|
|
21
|
+
async revoke(id) {
|
|
22
|
+
return this.client.request(`/v1/api-keys/${id}/revoke`, {
|
|
23
|
+
method: 'PATCH',
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/** Rotate an API key's secret. The new key is returned exactly once and the old secret is revoked immediately. */
|
|
27
|
+
async rotate(id) {
|
|
28
|
+
return this.client.request(`/v1/api-keys/${id}/rotate`, {
|
|
29
|
+
method: 'POST',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** Update an API key's name or scopes. */
|
|
33
|
+
async update(id, params) {
|
|
34
|
+
return this.client.request(`/v1/api-keys/${id}`, {
|
|
35
|
+
method: 'PATCH',
|
|
36
|
+
body: params,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.ApiKeysResource = ApiKeysResource;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { HttpClient } from '../http';
|
|
2
|
+
export interface AppBranding {
|
|
3
|
+
logo_url?: string | null;
|
|
4
|
+
primary_color?: string | null;
|
|
5
|
+
accent_color?: string | null;
|
|
6
|
+
support_email?: string | null;
|
|
7
|
+
custom_message?: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface AppCreateParams {
|
|
10
|
+
name: string;
|
|
11
|
+
slug: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
logo_url?: string | null;
|
|
14
|
+
primary_color?: string | null;
|
|
15
|
+
accent_color?: string | null;
|
|
16
|
+
support_email?: string | null;
|
|
17
|
+
custom_message?: string | null;
|
|
18
|
+
redirect_urls?: string[];
|
|
19
|
+
webhook_url?: string;
|
|
20
|
+
custom_domain?: string;
|
|
21
|
+
allowed_origins?: string[];
|
|
22
|
+
environment?: 'test' | 'live';
|
|
23
|
+
metadata?: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
export interface AppUpdateParams {
|
|
26
|
+
name?: string;
|
|
27
|
+
description?: string | null;
|
|
28
|
+
logo_url?: string | null;
|
|
29
|
+
primary_color?: string | null;
|
|
30
|
+
accent_color?: string | null;
|
|
31
|
+
support_email?: string | null;
|
|
32
|
+
custom_message?: string | null;
|
|
33
|
+
redirect_urls?: string[];
|
|
34
|
+
webhook_url?: string | null;
|
|
35
|
+
custom_domain?: string | null;
|
|
36
|
+
allowed_origins?: string[];
|
|
37
|
+
is_active?: boolean;
|
|
38
|
+
is_live?: boolean;
|
|
39
|
+
rate_limit_override?: number | null;
|
|
40
|
+
metadata?: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
export interface App extends AppBranding {
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
slug: string;
|
|
46
|
+
description: string | null;
|
|
47
|
+
redirect_urls: string[];
|
|
48
|
+
webhook_url: string | null;
|
|
49
|
+
custom_domain: string | null;
|
|
50
|
+
allowed_origins: string[];
|
|
51
|
+
is_active: boolean;
|
|
52
|
+
is_live: boolean;
|
|
53
|
+
environment: 'test' | 'live';
|
|
54
|
+
rate_limit_override: number | null;
|
|
55
|
+
metadata: Record<string, unknown>;
|
|
56
|
+
created_at: string;
|
|
57
|
+
updated_at: string;
|
|
58
|
+
merchant_id?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface AppStats {
|
|
61
|
+
transaction_count?: number;
|
|
62
|
+
gross_volume_cents?: number;
|
|
63
|
+
successful_volume_cents?: number;
|
|
64
|
+
failed_volume_cents?: number;
|
|
65
|
+
active_subscriptions?: number;
|
|
66
|
+
active_customers?: number;
|
|
67
|
+
open_disputes?: number;
|
|
68
|
+
disputed_amount_cents?: number;
|
|
69
|
+
}
|
|
70
|
+
export interface AppAnalytics {
|
|
71
|
+
app_id: string;
|
|
72
|
+
period: '24h' | '7d' | '30d' | '90d';
|
|
73
|
+
transactions: Record<string, number | string>;
|
|
74
|
+
subscriptions: Record<string, number | string>;
|
|
75
|
+
disputes: Record<string, number | string>;
|
|
76
|
+
}
|
|
77
|
+
export declare class AppsResource {
|
|
78
|
+
private client;
|
|
79
|
+
constructor(client: HttpClient);
|
|
80
|
+
create(params: AppCreateParams): Promise<App & {
|
|
81
|
+
publishable_key: string;
|
|
82
|
+
secret_key: string;
|
|
83
|
+
warning: string;
|
|
84
|
+
}>;
|
|
85
|
+
list(params?: {
|
|
86
|
+
status?: 'active' | 'archived';
|
|
87
|
+
limit?: number;
|
|
88
|
+
offset?: number;
|
|
89
|
+
}): Promise<{
|
|
90
|
+
data: App[];
|
|
91
|
+
has_more: boolean;
|
|
92
|
+
}>;
|
|
93
|
+
get(id: string): Promise<App & {
|
|
94
|
+
stats: AppStats;
|
|
95
|
+
}>;
|
|
96
|
+
update(id: string, params: AppUpdateParams): Promise<App>;
|
|
97
|
+
rotateSecret(id: string): Promise<{
|
|
98
|
+
app_id: string;
|
|
99
|
+
secret_key: string;
|
|
100
|
+
warning: string;
|
|
101
|
+
}>;
|
|
102
|
+
archive(id: string): Promise<{
|
|
103
|
+
id: string;
|
|
104
|
+
is_active: boolean;
|
|
105
|
+
}>;
|
|
106
|
+
analytics(id: string, period?: '24h' | '7d' | '30d' | '90d'): Promise<AppAnalytics>;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=apps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/resources/apps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppsResource = void 0;
|
|
4
|
+
class AppsResource {
|
|
5
|
+
client;
|
|
6
|
+
constructor(client) {
|
|
7
|
+
this.client = client;
|
|
8
|
+
}
|
|
9
|
+
async create(params) {
|
|
10
|
+
return this.client.request('/v1/apps', { method: 'POST', body: params });
|
|
11
|
+
}
|
|
12
|
+
async list(params) {
|
|
13
|
+
const qs = params ? '?' + new URLSearchParams(params).toString() : '';
|
|
14
|
+
return this.client.request(`/v1/apps${qs}`);
|
|
15
|
+
}
|
|
16
|
+
async get(id) {
|
|
17
|
+
return this.client.request(`/v1/apps/${id}`);
|
|
18
|
+
}
|
|
19
|
+
async update(id, params) {
|
|
20
|
+
return this.client.request(`/v1/apps/${id}`, { method: 'PATCH', body: params });
|
|
21
|
+
}
|
|
22
|
+
async rotateSecret(id) {
|
|
23
|
+
return this.client.request(`/v1/apps/${id}/rotate-secret`, { method: 'POST' });
|
|
24
|
+
}
|
|
25
|
+
async archive(id) {
|
|
26
|
+
return this.client.request(`/v1/apps/${id}`, { method: 'DELETE' });
|
|
27
|
+
}
|
|
28
|
+
async analytics(id, period = '30d') {
|
|
29
|
+
return this.client.request(`/v1/apps/${id}/analytics?period=${period}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.AppsResource = AppsResource;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { HttpClient } from '../http';
|
|
2
|
+
export interface AuthResponse {
|
|
3
|
+
merchant: {
|
|
4
|
+
id: string;
|
|
5
|
+
business_name: string;
|
|
6
|
+
email: string;
|
|
7
|
+
kyc_status?: string;
|
|
8
|
+
status?: string;
|
|
9
|
+
email_verified?: boolean;
|
|
10
|
+
role?: string;
|
|
11
|
+
last_login_at?: string;
|
|
12
|
+
created_at?: string;
|
|
13
|
+
};
|
|
14
|
+
token: string;
|
|
15
|
+
refresh_token?: string;
|
|
16
|
+
expires_in?: number;
|
|
17
|
+
api_key?: string;
|
|
18
|
+
admin?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface LoginParams {
|
|
21
|
+
email: string;
|
|
22
|
+
password: string;
|
|
23
|
+
}
|
|
24
|
+
export interface RegisterParams {
|
|
25
|
+
business_name: string;
|
|
26
|
+
email: string;
|
|
27
|
+
password: string;
|
|
28
|
+
phone?: string;
|
|
29
|
+
country?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface RefreshResponse {
|
|
32
|
+
token: string;
|
|
33
|
+
refresh_token: string;
|
|
34
|
+
expires_in: number;
|
|
35
|
+
token_type: string;
|
|
36
|
+
}
|
|
37
|
+
export declare class AuthResource {
|
|
38
|
+
private client;
|
|
39
|
+
constructor(client: HttpClient);
|
|
40
|
+
register(params: RegisterParams): Promise<AuthResponse>;
|
|
41
|
+
login(params: LoginParams): Promise<AuthResponse>;
|
|
42
|
+
me(): Promise<AuthResponse>;
|
|
43
|
+
refresh(refreshToken: string): Promise<RefreshResponse>;
|
|
44
|
+
logout(refreshToken?: string): Promise<{
|
|
45
|
+
success: boolean;
|
|
46
|
+
}>;
|
|
47
|
+
verifyEmail(token: string): Promise<{
|
|
48
|
+
success: boolean;
|
|
49
|
+
message: string;
|
|
50
|
+
}>;
|
|
51
|
+
resendVerification(): Promise<{
|
|
52
|
+
success: boolean;
|
|
53
|
+
message: string;
|
|
54
|
+
}>;
|
|
55
|
+
deleteAccount(): Promise<{
|
|
56
|
+
success: boolean;
|
|
57
|
+
message: string;
|
|
58
|
+
}>;
|
|
59
|
+
changePassword(currentPassword: string, newPassword: string): Promise<{
|
|
60
|
+
success: boolean;
|
|
61
|
+
}>;
|
|
62
|
+
forgotPassword(email: string): Promise<{
|
|
63
|
+
success: boolean;
|
|
64
|
+
message: string;
|
|
65
|
+
}>;
|
|
66
|
+
resetPassword(token: string, newPassword: string): Promise<{
|
|
67
|
+
success: boolean;
|
|
68
|
+
message: string;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/resources/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAOvD,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAOjD,EAAE,IAAI,OAAO,CAAC,YAAY,CAAC;IAI3B,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAOvD,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAO5D,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAO1E,kBAAkB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMpE,aAAa,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/D,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAO3F,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAO7E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAMxG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthResource = void 0;
|
|
4
|
+
class AuthResource {
|
|
5
|
+
client;
|
|
6
|
+
constructor(client) {
|
|
7
|
+
this.client = client;
|
|
8
|
+
}
|
|
9
|
+
async register(params) {
|
|
10
|
+
return this.client.request('/v1/auth/register', {
|
|
11
|
+
method: 'POST',
|
|
12
|
+
body: params,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
async login(params) {
|
|
16
|
+
return this.client.request('/v1/auth/login', {
|
|
17
|
+
method: 'POST',
|
|
18
|
+
body: params,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
async me() {
|
|
22
|
+
return this.client.request('/v1/auth/me');
|
|
23
|
+
}
|
|
24
|
+
async refresh(refreshToken) {
|
|
25
|
+
return this.client.request('/v1/auth/refresh', {
|
|
26
|
+
method: 'POST',
|
|
27
|
+
body: { refresh_token: refreshToken },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async logout(refreshToken) {
|
|
31
|
+
return this.client.request('/v1/auth/logout', {
|
|
32
|
+
method: 'POST',
|
|
33
|
+
body: refreshToken ? { refresh_token: refreshToken } : undefined,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async verifyEmail(token) {
|
|
37
|
+
return this.client.request('/v1/auth/verify-email', {
|
|
38
|
+
method: 'POST',
|
|
39
|
+
body: { token },
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async resendVerification() {
|
|
43
|
+
return this.client.request('/v1/auth/resend-verification', {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
async deleteAccount() {
|
|
48
|
+
return this.client.request('/v1/auth/account', {
|
|
49
|
+
method: 'DELETE',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async changePassword(currentPassword, newPassword) {
|
|
53
|
+
return this.client.request('/v1/auth/change-password', {
|
|
54
|
+
method: 'POST',
|
|
55
|
+
body: { current_password: currentPassword, new_password: newPassword },
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
async forgotPassword(email) {
|
|
59
|
+
return this.client.request('/v1/auth/forgot-password', {
|
|
60
|
+
method: 'POST',
|
|
61
|
+
body: { email },
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async resetPassword(token, newPassword) {
|
|
65
|
+
return this.client.request('/v1/auth/reset-password', {
|
|
66
|
+
method: 'POST',
|
|
67
|
+
body: { token, password: newPassword },
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.AuthResource = AuthResource;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { HttpClient } from '../http';
|
|
2
|
+
export type BillableAggregationType = 'count_agg' | 'sum_agg' | 'max_agg' | 'unique_count_agg' | 'weighted_sum_agg' | 'latest_agg';
|
|
3
|
+
export interface BillableMetric {
|
|
4
|
+
id: string;
|
|
5
|
+
merchant_id: string;
|
|
6
|
+
app_id: string | null;
|
|
7
|
+
name: string;
|
|
8
|
+
code: string;
|
|
9
|
+
description: string | null;
|
|
10
|
+
aggregation_type: BillableAggregationType;
|
|
11
|
+
field_name: string | null;
|
|
12
|
+
recurring: boolean;
|
|
13
|
+
weighted_interval: 'seconds' | null;
|
|
14
|
+
filters: Array<{
|
|
15
|
+
key: string;
|
|
16
|
+
values: string[];
|
|
17
|
+
}>;
|
|
18
|
+
group_key: string | null;
|
|
19
|
+
group_values: string[] | null;
|
|
20
|
+
rounding_function: 'ceil' | 'floor' | 'round' | null;
|
|
21
|
+
rounding_precision: number | null;
|
|
22
|
+
expression: string | null;
|
|
23
|
+
is_active: boolean;
|
|
24
|
+
created_at: string;
|
|
25
|
+
updated_at: string;
|
|
26
|
+
}
|
|
27
|
+
export interface BillingEvent {
|
|
28
|
+
id: string;
|
|
29
|
+
merchant_id: string;
|
|
30
|
+
app_id: string | null;
|
|
31
|
+
transaction_id: string;
|
|
32
|
+
customer_id: string | null;
|
|
33
|
+
external_customer_id: string | null;
|
|
34
|
+
external_subscription_id: string | null;
|
|
35
|
+
subscription_id: string | null;
|
|
36
|
+
code: string;
|
|
37
|
+
billable_metric_id: string | null;
|
|
38
|
+
timestamp: string;
|
|
39
|
+
properties: Record<string, unknown>;
|
|
40
|
+
precise_total_amount_cents: number | null;
|
|
41
|
+
operation_type: string | null;
|
|
42
|
+
created_at: string;
|
|
43
|
+
}
|
|
44
|
+
export interface AggregationResult {
|
|
45
|
+
metric_id: string;
|
|
46
|
+
code: string;
|
|
47
|
+
aggregation_type: BillableAggregationType;
|
|
48
|
+
aggregation_value: number;
|
|
49
|
+
latest_value?: unknown;
|
|
50
|
+
event_count: number;
|
|
51
|
+
period_start: string;
|
|
52
|
+
period_end: string;
|
|
53
|
+
}
|
|
54
|
+
export interface BillableMetricCreateParams {
|
|
55
|
+
name: string;
|
|
56
|
+
code: string;
|
|
57
|
+
description?: string | null;
|
|
58
|
+
aggregation_type?: BillableAggregationType;
|
|
59
|
+
field_name?: string | null;
|
|
60
|
+
recurring?: boolean;
|
|
61
|
+
weighted_interval?: 'seconds' | null;
|
|
62
|
+
filters?: Array<{
|
|
63
|
+
key: string;
|
|
64
|
+
values: string[];
|
|
65
|
+
}>;
|
|
66
|
+
group_key?: string | null;
|
|
67
|
+
group_values?: string[] | null;
|
|
68
|
+
rounding_function?: 'ceil' | 'floor' | 'round' | null;
|
|
69
|
+
rounding_precision?: number | null;
|
|
70
|
+
expression?: string | null;
|
|
71
|
+
app_id?: string | null;
|
|
72
|
+
}
|
|
73
|
+
export interface BillingEventIngestParams {
|
|
74
|
+
transaction_id: string;
|
|
75
|
+
code: string;
|
|
76
|
+
timestamp?: number | string;
|
|
77
|
+
properties?: Record<string, unknown>;
|
|
78
|
+
precise_total_amount_cents?: number | null;
|
|
79
|
+
operation_type?: string | null;
|
|
80
|
+
customer_id?: string | null;
|
|
81
|
+
external_customer_id?: string | null;
|
|
82
|
+
external_subscription_id?: string | null;
|
|
83
|
+
subscription_id?: string | null;
|
|
84
|
+
app_id?: string | null;
|
|
85
|
+
}
|
|
86
|
+
export declare class BillingResource {
|
|
87
|
+
private client;
|
|
88
|
+
constructor(client: HttpClient);
|
|
89
|
+
createMetric(params: BillableMetricCreateParams): Promise<BillableMetric>;
|
|
90
|
+
listMetrics(params?: {
|
|
91
|
+
app_id?: string;
|
|
92
|
+
is_active?: boolean;
|
|
93
|
+
limit?: number;
|
|
94
|
+
offset?: number;
|
|
95
|
+
}): Promise<{
|
|
96
|
+
data: BillableMetric[];
|
|
97
|
+
has_more: boolean;
|
|
98
|
+
}>;
|
|
99
|
+
getMetric(id: string): Promise<BillableMetric>;
|
|
100
|
+
updateMetric(id: string, patch: Partial<Omit<BillableMetricCreateParams, 'code' | 'aggregation_type' | 'app_id'>> & {
|
|
101
|
+
is_active?: boolean;
|
|
102
|
+
}): Promise<BillableMetric>;
|
|
103
|
+
deleteMetric(id: string): Promise<{
|
|
104
|
+
deleted: boolean;
|
|
105
|
+
}>;
|
|
106
|
+
ingestEvent(params: BillingEventIngestParams): Promise<BillingEvent>;
|
|
107
|
+
ingestEventsBatch(events: BillingEventIngestParams[]): Promise<{
|
|
108
|
+
data: Array<{
|
|
109
|
+
event?: BillingEvent;
|
|
110
|
+
error?: string;
|
|
111
|
+
duplicate?: boolean;
|
|
112
|
+
}>;
|
|
113
|
+
count: number;
|
|
114
|
+
}>;
|
|
115
|
+
listEvents(params?: {
|
|
116
|
+
code?: string;
|
|
117
|
+
customer_id?: string;
|
|
118
|
+
external_customer_id?: string;
|
|
119
|
+
subscription_id?: string;
|
|
120
|
+
app_id?: string;
|
|
121
|
+
from?: string;
|
|
122
|
+
to?: string;
|
|
123
|
+
limit?: number;
|
|
124
|
+
offset?: number;
|
|
125
|
+
}): Promise<{
|
|
126
|
+
data: BillingEvent[];
|
|
127
|
+
has_more: boolean;
|
|
128
|
+
}>;
|
|
129
|
+
getEvent(id: string): Promise<BillingEvent>;
|
|
130
|
+
aggregateMetric(id: string, params?: {
|
|
131
|
+
from?: string;
|
|
132
|
+
to?: string;
|
|
133
|
+
group?: string;
|
|
134
|
+
}): Promise<AggregationResult>;
|
|
135
|
+
aggregateMetricByCode(code: string, params?: {
|
|
136
|
+
from?: string;
|
|
137
|
+
to?: string;
|
|
138
|
+
group?: string;
|
|
139
|
+
}): Promise<AggregationResult>;
|
|
140
|
+
aggregateAll(params?: {
|
|
141
|
+
from?: string;
|
|
142
|
+
to?: string;
|
|
143
|
+
app_id?: string;
|
|
144
|
+
}): Promise<{
|
|
145
|
+
data: AggregationResult[];
|
|
146
|
+
}>;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=billing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/resources/billing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ── Billing Resource ───────────────────────────────────────
|
|
3
|
+
// Lago-style billable metrics + billing events.
|
|
4
|
+
// Matches src/api/billing/routes.ts (migration 047).
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BillingResource = void 0;
|
|
7
|
+
class BillingResource {
|
|
8
|
+
client;
|
|
9
|
+
constructor(client) {
|
|
10
|
+
this.client = client;
|
|
11
|
+
}
|
|
12
|
+
// ── Billable metrics ────────────────────────────────────
|
|
13
|
+
async createMetric(params) {
|
|
14
|
+
return this.client.request('/v1/billable-metrics', { method: 'POST', body: params });
|
|
15
|
+
}
|
|
16
|
+
async listMetrics(params) {
|
|
17
|
+
return this.client.request('/v1/billable-metrics', { params });
|
|
18
|
+
}
|
|
19
|
+
async getMetric(id) {
|
|
20
|
+
return this.client.request(`/v1/billable-metrics/${id}`);
|
|
21
|
+
}
|
|
22
|
+
async updateMetric(id, patch) {
|
|
23
|
+
return this.client.request(`/v1/billable-metrics/${id}`, { method: 'PATCH', body: patch });
|
|
24
|
+
}
|
|
25
|
+
async deleteMetric(id) {
|
|
26
|
+
return this.client.request(`/v1/billable-metrics/${id}`, { method: 'DELETE' });
|
|
27
|
+
}
|
|
28
|
+
// ── Billing events ──────────────────────────────────────
|
|
29
|
+
async ingestEvent(params) {
|
|
30
|
+
return this.client.request('/v1/billing-events', { method: 'POST', body: params });
|
|
31
|
+
}
|
|
32
|
+
async ingestEventsBatch(events) {
|
|
33
|
+
return this.client.request('/v1/billing-events/batch', { method: 'POST', body: { events } });
|
|
34
|
+
}
|
|
35
|
+
async listEvents(params) {
|
|
36
|
+
return this.client.request('/v1/billing-events', { params });
|
|
37
|
+
}
|
|
38
|
+
async getEvent(id) {
|
|
39
|
+
return this.client.request(`/v1/billing-events/${id}`);
|
|
40
|
+
}
|
|
41
|
+
// ── Aggregation ─────────────────────────────────────────
|
|
42
|
+
async aggregateMetric(id, params) {
|
|
43
|
+
return this.client.request(`/v1/billing/metrics/${id}/aggregation`, { params });
|
|
44
|
+
}
|
|
45
|
+
async aggregateMetricByCode(code, params) {
|
|
46
|
+
// Resolve code→id server-side via aggregation endpoint? The BE aggregation
|
|
47
|
+
// takes either UUID or code as :id for convenience; the SDK caller should
|
|
48
|
+
// prefer the id path. This helper is a convenience for Lago code-centric callers.
|
|
49
|
+
return this.client.request(`/v1/billing/metrics/${encodeURIComponent(code)}/aggregation`, { params });
|
|
50
|
+
}
|
|
51
|
+
async aggregateAll(params) {
|
|
52
|
+
return this.client.request('/v1/billing/aggregation', { params });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.BillingResource = BillingResource;
|