@sardis/sdk 0.2.0
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/CHANGELOG.md +47 -0
- package/LICENSE +21 -0
- package/README.md +439 -0
- package/dist/browser/index.js +7049 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/sardis.umd.js +7071 -0
- package/dist/browser/sardis.umd.js.map +1 -0
- package/dist/cjs/client.js +644 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/demo.js +699 -0
- package/dist/cjs/demo.js.map +1 -0
- package/dist/cjs/errors.js +630 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.js +131 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/integrations/index.js +21 -0
- package/dist/cjs/integrations/index.js.map +1 -0
- package/dist/cjs/integrations/langchain.js +339 -0
- package/dist/cjs/integrations/langchain.js.map +1 -0
- package/dist/cjs/integrations/openai.js +505 -0
- package/dist/cjs/integrations/openai.js.map +1 -0
- package/dist/cjs/integrations/vercel-ai.js +198 -0
- package/dist/cjs/integrations/vercel-ai.js.map +1 -0
- package/dist/cjs/resources/a2a.js +158 -0
- package/dist/cjs/resources/a2a.js.map +1 -0
- package/dist/cjs/resources/agents.js +142 -0
- package/dist/cjs/resources/agents.js.map +1 -0
- package/dist/cjs/resources/base.js +124 -0
- package/dist/cjs/resources/base.js.map +1 -0
- package/dist/cjs/resources/cards.js +43 -0
- package/dist/cjs/resources/cards.js.map +1 -0
- package/dist/cjs/resources/holds.js +64 -0
- package/dist/cjs/resources/holds.js.map +1 -0
- package/dist/cjs/resources/index.js +31 -0
- package/dist/cjs/resources/index.js.map +1 -0
- package/dist/cjs/resources/ledger.js +43 -0
- package/dist/cjs/resources/ledger.js.map +1 -0
- package/dist/cjs/resources/marketplace.js +88 -0
- package/dist/cjs/resources/marketplace.js.map +1 -0
- package/dist/cjs/resources/payments.js +33 -0
- package/dist/cjs/resources/payments.js.map +1 -0
- package/dist/cjs/resources/policies.js +31 -0
- package/dist/cjs/resources/policies.js.map +1 -0
- package/dist/cjs/resources/transactions.js +37 -0
- package/dist/cjs/resources/transactions.js.map +1 -0
- package/dist/cjs/resources/ucp.js +133 -0
- package/dist/cjs/resources/ucp.js.map +1 -0
- package/dist/cjs/resources/wallets.js +109 -0
- package/dist/cjs/resources/wallets.js.map +1 -0
- package/dist/cjs/resources/webhooks.js +81 -0
- package/dist/cjs/resources/webhooks.js.map +1 -0
- package/dist/cjs/types.js +11 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/client.d.ts +419 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +637 -0
- package/dist/client.js.map +1 -0
- package/dist/demo.d.ts +335 -0
- package/dist/demo.d.ts.map +1 -0
- package/dist/demo.js +694 -0
- package/dist/demo.js.map +1 -0
- package/dist/errors.d.ts +522 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +612 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/index.d.ts +4 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +5 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/langchain.d.ts +68 -0
- package/dist/integrations/langchain.d.ts.map +1 -0
- package/dist/integrations/langchain.js +335 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/openai.d.ts +97 -0
- package/dist/integrations/openai.d.ts.map +1 -0
- package/dist/integrations/openai.js +467 -0
- package/dist/integrations/openai.js.map +1 -0
- package/dist/integrations/vercel-ai.d.ts +180 -0
- package/dist/integrations/vercel-ai.d.ts.map +1 -0
- package/dist/integrations/vercel-ai.js +194 -0
- package/dist/integrations/vercel-ai.js.map +1 -0
- package/dist/resources/a2a.d.ts +254 -0
- package/dist/resources/a2a.d.ts.map +1 -0
- package/dist/resources/a2a.js +154 -0
- package/dist/resources/a2a.js.map +1 -0
- package/dist/resources/agents.d.ts +111 -0
- package/dist/resources/agents.d.ts.map +1 -0
- package/dist/resources/agents.js +138 -0
- package/dist/resources/agents.js.map +1 -0
- package/dist/resources/base.d.ts +115 -0
- package/dist/resources/base.d.ts.map +1 -0
- package/dist/resources/base.js +120 -0
- package/dist/resources/base.js.map +1 -0
- package/dist/resources/cards.d.ts +19 -0
- package/dist/resources/cards.d.ts.map +1 -0
- package/dist/resources/cards.js +39 -0
- package/dist/resources/cards.js.map +1 -0
- package/dist/resources/holds.d.ts +44 -0
- package/dist/resources/holds.d.ts.map +1 -0
- package/dist/resources/holds.js +60 -0
- package/dist/resources/holds.js.map +1 -0
- package/dist/resources/index.d.ts +16 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +16 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/ledger.d.ts +38 -0
- package/dist/resources/ledger.d.ts.map +1 -0
- package/dist/resources/ledger.js +39 -0
- package/dist/resources/ledger.js.map +1 -0
- package/dist/resources/marketplace.d.ts +60 -0
- package/dist/resources/marketplace.d.ts.map +1 -0
- package/dist/resources/marketplace.js +84 -0
- package/dist/resources/marketplace.js.map +1 -0
- package/dist/resources/payments.d.ts +24 -0
- package/dist/resources/payments.d.ts.map +1 -0
- package/dist/resources/payments.js +29 -0
- package/dist/resources/payments.js.map +1 -0
- package/dist/resources/policies.d.ts +23 -0
- package/dist/resources/policies.d.ts.map +1 -0
- package/dist/resources/policies.js +27 -0
- package/dist/resources/policies.js.map +1 -0
- package/dist/resources/transactions.d.ts +32 -0
- package/dist/resources/transactions.d.ts.map +1 -0
- package/dist/resources/transactions.js +33 -0
- package/dist/resources/transactions.js.map +1 -0
- package/dist/resources/ucp.d.ts +218 -0
- package/dist/resources/ucp.d.ts.map +1 -0
- package/dist/resources/ucp.js +129 -0
- package/dist/resources/ucp.js.map +1 -0
- package/dist/resources/wallets.d.ts +71 -0
- package/dist/resources/wallets.d.ts.map +1 -0
- package/dist/resources/wallets.js +105 -0
- package/dist/resources/wallets.js.map +1 -0
- package/dist/resources/webhooks.d.ts +57 -0
- package/dist/resources/webhooks.d.ts.map +1 -0
- package/dist/resources/webhooks.js +77 -0
- package/dist/resources/webhooks.js.map +1 -0
- package/dist/types.d.ts +1045 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +114 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UCP (Universal Commerce Protocol) resource
|
|
3
|
+
*
|
|
4
|
+
* Provides checkout session management for structured commerce:
|
|
5
|
+
* - Create checkout sessions with cart items
|
|
6
|
+
* - Update sessions (add/remove items, discounts)
|
|
7
|
+
* - Complete checkout and generate payment mandates
|
|
8
|
+
*/
|
|
9
|
+
import { BaseResource } from './base.js';
|
|
10
|
+
export interface UCPLineItem {
|
|
11
|
+
item_id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
quantity: number;
|
|
15
|
+
unit_price_minor: number;
|
|
16
|
+
currency?: string;
|
|
17
|
+
sku?: string;
|
|
18
|
+
category?: string;
|
|
19
|
+
image_url?: string;
|
|
20
|
+
taxable?: boolean;
|
|
21
|
+
tax_rate?: string;
|
|
22
|
+
metadata?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export interface UCPDiscount {
|
|
25
|
+
discount_id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
discount_type: 'percentage' | 'fixed' | 'coupon';
|
|
28
|
+
value: string;
|
|
29
|
+
code?: string;
|
|
30
|
+
applied_to?: string[];
|
|
31
|
+
min_purchase_minor?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface CreateCheckoutInput {
|
|
34
|
+
merchant_id: string;
|
|
35
|
+
merchant_name: string;
|
|
36
|
+
merchant_domain: string;
|
|
37
|
+
customer_id: string;
|
|
38
|
+
line_items: UCPLineItem[];
|
|
39
|
+
currency?: string;
|
|
40
|
+
tax_rate?: string;
|
|
41
|
+
shipping_minor?: number;
|
|
42
|
+
metadata?: Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
export interface UpdateCheckoutInput {
|
|
45
|
+
add_items?: UCPLineItem[];
|
|
46
|
+
remove_item_ids?: string[];
|
|
47
|
+
add_discounts?: UCPDiscount[];
|
|
48
|
+
remove_discount_ids?: string[];
|
|
49
|
+
shipping_minor?: number;
|
|
50
|
+
metadata?: Record<string, unknown>;
|
|
51
|
+
}
|
|
52
|
+
export interface CompleteCheckoutInput {
|
|
53
|
+
chain: string;
|
|
54
|
+
token: string;
|
|
55
|
+
destination: string;
|
|
56
|
+
subject: string;
|
|
57
|
+
issuer: string;
|
|
58
|
+
execute_payment?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface CheckoutSession {
|
|
61
|
+
session_id: string;
|
|
62
|
+
merchant_id: string;
|
|
63
|
+
merchant_name: string;
|
|
64
|
+
merchant_domain: string;
|
|
65
|
+
customer_id: string;
|
|
66
|
+
status: 'open' | 'pending_payment' | 'completed' | 'expired' | 'cancelled';
|
|
67
|
+
currency: string;
|
|
68
|
+
line_items: UCPLineItem[];
|
|
69
|
+
discounts: UCPDiscount[];
|
|
70
|
+
subtotal_minor: number;
|
|
71
|
+
taxes_minor: number;
|
|
72
|
+
shipping_minor: number;
|
|
73
|
+
total_minor: number;
|
|
74
|
+
cart_mandate?: Record<string, unknown>;
|
|
75
|
+
checkout_mandate?: Record<string, unknown>;
|
|
76
|
+
payment_mandate?: Record<string, unknown>;
|
|
77
|
+
order_id?: string;
|
|
78
|
+
chain_tx_hash?: string;
|
|
79
|
+
created_at: string;
|
|
80
|
+
updated_at: string;
|
|
81
|
+
expires_at: number;
|
|
82
|
+
metadata?: Record<string, unknown>;
|
|
83
|
+
}
|
|
84
|
+
export interface CheckoutResult {
|
|
85
|
+
success: boolean;
|
|
86
|
+
session_id: string;
|
|
87
|
+
order_id?: string;
|
|
88
|
+
payment_mandate?: Record<string, unknown>;
|
|
89
|
+
chain_tx_hash?: string;
|
|
90
|
+
error?: string;
|
|
91
|
+
error_code?: string;
|
|
92
|
+
}
|
|
93
|
+
export interface UCPOrder {
|
|
94
|
+
order_id: string;
|
|
95
|
+
checkout_session_id: string;
|
|
96
|
+
merchant_id: string;
|
|
97
|
+
customer_id: string;
|
|
98
|
+
status: string;
|
|
99
|
+
line_items: UCPLineItem[];
|
|
100
|
+
currency: string;
|
|
101
|
+
subtotal_minor: number;
|
|
102
|
+
taxes_minor: number;
|
|
103
|
+
shipping_minor: number;
|
|
104
|
+
discount_minor: number;
|
|
105
|
+
total_minor: number;
|
|
106
|
+
payment_mandate_id?: string;
|
|
107
|
+
chain_tx_hash?: string;
|
|
108
|
+
created_at: string;
|
|
109
|
+
updated_at: string;
|
|
110
|
+
metadata?: Record<string, unknown>;
|
|
111
|
+
}
|
|
112
|
+
export declare class UCPResource extends BaseResource {
|
|
113
|
+
/**
|
|
114
|
+
* Create a new checkout session
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const session = await client.ucp.createCheckout({
|
|
119
|
+
* merchant_id: 'merchant_123',
|
|
120
|
+
* merchant_name: 'Example Store',
|
|
121
|
+
* merchant_domain: 'store.example.com',
|
|
122
|
+
* customer_id: 'agent_abc',
|
|
123
|
+
* line_items: [{
|
|
124
|
+
* item_id: 'item_1',
|
|
125
|
+
* name: 'Widget',
|
|
126
|
+
* description: 'A useful widget',
|
|
127
|
+
* quantity: 2,
|
|
128
|
+
* unit_price_minor: 1000,
|
|
129
|
+
* }],
|
|
130
|
+
* });
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
createCheckout(input: CreateCheckoutInput): Promise<CheckoutSession>;
|
|
134
|
+
/**
|
|
135
|
+
* Get a checkout session
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* const session = await client.ucp.getCheckout('cs_abc123');
|
|
140
|
+
* console.log(session.status, session.total_minor);
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
getCheckout(sessionId: string): Promise<CheckoutSession>;
|
|
144
|
+
/**
|
|
145
|
+
* Update a checkout session
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* const updated = await client.ucp.updateCheckout('cs_abc123', {
|
|
150
|
+
* add_items: [{ item_id: 'item_2', name: 'Extra', quantity: 1, unit_price_minor: 500 }],
|
|
151
|
+
* add_discounts: [{
|
|
152
|
+
* discount_id: 'disc_1',
|
|
153
|
+
* name: '10% Off',
|
|
154
|
+
* discount_type: 'percentage',
|
|
155
|
+
* value: '10',
|
|
156
|
+
* }],
|
|
157
|
+
* });
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
updateCheckout(sessionId: string, input: UpdateCheckoutInput): Promise<CheckoutSession>;
|
|
161
|
+
/**
|
|
162
|
+
* Complete a checkout session and generate payment mandate
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* const result = await client.ucp.completeCheckout('cs_abc123', {
|
|
167
|
+
* chain: 'base',
|
|
168
|
+
* token: 'USDC',
|
|
169
|
+
* destination: '0x...',
|
|
170
|
+
* subject: 'agent_abc',
|
|
171
|
+
* issuer: 'sardis.sh',
|
|
172
|
+
* });
|
|
173
|
+
*
|
|
174
|
+
* if (result.success) {
|
|
175
|
+
* console.log('Payment tx:', result.chain_tx_hash);
|
|
176
|
+
* }
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
completeCheckout(sessionId: string, input: CompleteCheckoutInput): Promise<CheckoutResult>;
|
|
180
|
+
/**
|
|
181
|
+
* Cancel a checkout session
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* await client.ucp.cancelCheckout('cs_abc123');
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
cancelCheckout(sessionId: string): Promise<CheckoutSession>;
|
|
189
|
+
/**
|
|
190
|
+
* Get an order by ID
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```typescript
|
|
194
|
+
* const order = await client.ucp.getOrder('ord_abc123');
|
|
195
|
+
* console.log(order.status, order.chain_tx_hash);
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
getOrder(orderId: string): Promise<UCPOrder>;
|
|
199
|
+
/**
|
|
200
|
+
* List orders
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* const orders = await client.ucp.listOrders({
|
|
205
|
+
* customer_id: 'agent_abc',
|
|
206
|
+
* status: 'completed',
|
|
207
|
+
* });
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
listOrders(options?: {
|
|
211
|
+
customer_id?: string;
|
|
212
|
+
merchant_id?: string;
|
|
213
|
+
status?: string;
|
|
214
|
+
limit?: number;
|
|
215
|
+
offset?: number;
|
|
216
|
+
}): Promise<UCPOrder[]>;
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=ucp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ucp.d.ts","sourceRoot":"","sources":["../../src/resources/ucp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UCP (Universal Commerce Protocol) resource
|
|
3
|
+
*
|
|
4
|
+
* Provides checkout session management for structured commerce:
|
|
5
|
+
* - Create checkout sessions with cart items
|
|
6
|
+
* - Update sessions (add/remove items, discounts)
|
|
7
|
+
* - Complete checkout and generate payment mandates
|
|
8
|
+
*/
|
|
9
|
+
import { BaseResource } from './base.js';
|
|
10
|
+
// ============ Resource ============
|
|
11
|
+
export class UCPResource extends BaseResource {
|
|
12
|
+
/**
|
|
13
|
+
* Create a new checkout session
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const session = await client.ucp.createCheckout({
|
|
18
|
+
* merchant_id: 'merchant_123',
|
|
19
|
+
* merchant_name: 'Example Store',
|
|
20
|
+
* merchant_domain: 'store.example.com',
|
|
21
|
+
* customer_id: 'agent_abc',
|
|
22
|
+
* line_items: [{
|
|
23
|
+
* item_id: 'item_1',
|
|
24
|
+
* name: 'Widget',
|
|
25
|
+
* description: 'A useful widget',
|
|
26
|
+
* quantity: 2,
|
|
27
|
+
* unit_price_minor: 1000,
|
|
28
|
+
* }],
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
async createCheckout(input) {
|
|
33
|
+
return this._post('/api/v2/ucp/checkout', input);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get a checkout session
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const session = await client.ucp.getCheckout('cs_abc123');
|
|
41
|
+
* console.log(session.status, session.total_minor);
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
async getCheckout(sessionId) {
|
|
45
|
+
return this._get(`/api/v2/ucp/checkout/${sessionId}`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Update a checkout session
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const updated = await client.ucp.updateCheckout('cs_abc123', {
|
|
53
|
+
* add_items: [{ item_id: 'item_2', name: 'Extra', quantity: 1, unit_price_minor: 500 }],
|
|
54
|
+
* add_discounts: [{
|
|
55
|
+
* discount_id: 'disc_1',
|
|
56
|
+
* name: '10% Off',
|
|
57
|
+
* discount_type: 'percentage',
|
|
58
|
+
* value: '10',
|
|
59
|
+
* }],
|
|
60
|
+
* });
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
async updateCheckout(sessionId, input) {
|
|
64
|
+
return this._patch(`/api/v2/ucp/checkout/${sessionId}`, input);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Complete a checkout session and generate payment mandate
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const result = await client.ucp.completeCheckout('cs_abc123', {
|
|
72
|
+
* chain: 'base',
|
|
73
|
+
* token: 'USDC',
|
|
74
|
+
* destination: '0x...',
|
|
75
|
+
* subject: 'agent_abc',
|
|
76
|
+
* issuer: 'sardis.sh',
|
|
77
|
+
* });
|
|
78
|
+
*
|
|
79
|
+
* if (result.success) {
|
|
80
|
+
* console.log('Payment tx:', result.chain_tx_hash);
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
async completeCheckout(sessionId, input) {
|
|
85
|
+
return this._post(`/api/v2/ucp/checkout/${sessionId}/complete`, input);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Cancel a checkout session
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* await client.ucp.cancelCheckout('cs_abc123');
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
async cancelCheckout(sessionId) {
|
|
96
|
+
return this._post(`/api/v2/ucp/checkout/${sessionId}/cancel`, {});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get an order by ID
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const order = await client.ucp.getOrder('ord_abc123');
|
|
104
|
+
* console.log(order.status, order.chain_tx_hash);
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
async getOrder(orderId) {
|
|
108
|
+
return this._get(`/api/v2/ucp/orders/${orderId}`);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* List orders
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const orders = await client.ucp.listOrders({
|
|
116
|
+
* customer_id: 'agent_abc',
|
|
117
|
+
* status: 'completed',
|
|
118
|
+
* });
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
async listOrders(options) {
|
|
122
|
+
const response = await this._get('/api/v2/ucp/orders', options);
|
|
123
|
+
if (Array.isArray(response)) {
|
|
124
|
+
return response;
|
|
125
|
+
}
|
|
126
|
+
return response.orders || [];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=ucp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ucp.js","sourceRoot":"","sources":["../../src/resources/ucp.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAkHzC,qCAAqC;AAErC,MAAM,OAAO,WAAY,SAAQ,YAAY;IAC3C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,cAAc,CAAC,KAA0B;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAkB,sBAAsB,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAkB,wBAAwB,SAAS,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,KAA0B;QAChE,OAAO,IAAI,CAAC,MAAM,CAAkB,wBAAwB,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,KAA4B;QACpE,OAAO,IAAI,CAAC,KAAK,CAAiB,wBAAwB,SAAS,WAAW,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,OAAO,IAAI,CAAC,KAAK,CAAkB,wBAAwB,SAAS,SAAS,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAW,sBAAsB,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,OAMhB;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,oBAAoB,EACpB,OAAO,CACR,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallets Resource
|
|
3
|
+
*
|
|
4
|
+
* Manages non-custodial wallets for agents.
|
|
5
|
+
* Wallets never hold funds - they only sign transactions via MPC.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseResource } from './base.js';
|
|
8
|
+
import type { Wallet, WalletBalance, CreateWalletInput, SetAddressInput, WalletTransferInput, WalletTransferResponse, RequestOptions } from '../types.js';
|
|
9
|
+
export declare class WalletsResource extends BaseResource {
|
|
10
|
+
private _normalize;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new non-custodial wallet for an agent.
|
|
13
|
+
*
|
|
14
|
+
* @param input Wallet creation parameters
|
|
15
|
+
* @param options Request options (signal, timeout)
|
|
16
|
+
* @returns Created wallet
|
|
17
|
+
*/
|
|
18
|
+
create(input: CreateWalletInput, options?: RequestOptions): Promise<Wallet>;
|
|
19
|
+
/**
|
|
20
|
+
* Get a wallet by ID.
|
|
21
|
+
*
|
|
22
|
+
* @param walletId Wallet ID
|
|
23
|
+
* @param options Request options (signal, timeout)
|
|
24
|
+
* @returns Wallet details
|
|
25
|
+
*/
|
|
26
|
+
get(walletId: string, options?: RequestOptions): Promise<Wallet>;
|
|
27
|
+
/**
|
|
28
|
+
* List wallets.
|
|
29
|
+
*
|
|
30
|
+
* @param agentId Optional agent ID filter
|
|
31
|
+
* @param limit Maximum number of wallets to return
|
|
32
|
+
* @param options Request options (signal, timeout)
|
|
33
|
+
* @returns List of wallets
|
|
34
|
+
*/
|
|
35
|
+
list(agentId?: string, limit?: number, options?: RequestOptions): Promise<Wallet[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Get wallet balance from chain (non-custodial, read-only).
|
|
38
|
+
*
|
|
39
|
+
* @param walletId Wallet ID
|
|
40
|
+
* @param chain Chain identifier (e.g., "base", "polygon")
|
|
41
|
+
* @param token Token symbol (e.g., "USDC", "USDT")
|
|
42
|
+
* @param options Request options (signal, timeout)
|
|
43
|
+
* @returns Wallet balance from chain
|
|
44
|
+
*/
|
|
45
|
+
getBalance(walletId: string, chain?: string, token?: string, options?: RequestOptions): Promise<WalletBalance>;
|
|
46
|
+
/**
|
|
47
|
+
* Get all wallet addresses (chain -> address mapping).
|
|
48
|
+
*
|
|
49
|
+
* @param walletId Wallet ID
|
|
50
|
+
* @param options Request options (signal, timeout)
|
|
51
|
+
* @returns Dictionary mapping chain names to addresses
|
|
52
|
+
*/
|
|
53
|
+
getAddresses(walletId: string, options?: RequestOptions): Promise<Record<string, string>>;
|
|
54
|
+
/**
|
|
55
|
+
* Set wallet address for a chain.
|
|
56
|
+
*
|
|
57
|
+
* @param walletId Wallet ID
|
|
58
|
+
* @param input Address information
|
|
59
|
+
* @param options Request options (signal, timeout)
|
|
60
|
+
* @returns Updated wallet
|
|
61
|
+
*/
|
|
62
|
+
setAddress(walletId: string, input: SetAddressInput, options?: RequestOptions): Promise<Wallet>;
|
|
63
|
+
/**
|
|
64
|
+
* Transfer stablecoins from a wallet (agent is sender).
|
|
65
|
+
*
|
|
66
|
+
* This endpoint is intended to be called by an agent process using an API key.
|
|
67
|
+
* Sardis enforces policy + compliance and signs via the agent MPC wallet.
|
|
68
|
+
*/
|
|
69
|
+
transfer(walletId: string, input: WalletTransferInput, options?: RequestOptions): Promise<WalletTransferResponse>;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=wallets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/resources/wallets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,UAAU;IAQlB;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjF;;;;;;OAMG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtE;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB9F;;;;;;;;OAQG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAe,EACtB,KAAK,GAAE,MAAe,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC;IAOzB;;;;;;OAMG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAQ/F;;;;;;;OAOG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IASlB;;;;;OAKG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,sBAAsB,CAAC;CAOnC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallets Resource
|
|
3
|
+
*
|
|
4
|
+
* Manages non-custodial wallets for agents.
|
|
5
|
+
* Wallets never hold funds - they only sign transactions via MPC.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseResource } from './base.js';
|
|
8
|
+
export class WalletsResource extends BaseResource {
|
|
9
|
+
_normalize(wallet) {
|
|
10
|
+
// Provide backwards-compatible alias: id := wallet_id
|
|
11
|
+
if (!wallet.id) {
|
|
12
|
+
wallet.id = wallet.wallet_id;
|
|
13
|
+
}
|
|
14
|
+
return wallet;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a new non-custodial wallet for an agent.
|
|
18
|
+
*
|
|
19
|
+
* @param input Wallet creation parameters
|
|
20
|
+
* @param options Request options (signal, timeout)
|
|
21
|
+
* @returns Created wallet
|
|
22
|
+
*/
|
|
23
|
+
async create(input, options) {
|
|
24
|
+
const wallet = await this._post('/api/v2/wallets', input, options);
|
|
25
|
+
return this._normalize(wallet);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get a wallet by ID.
|
|
29
|
+
*
|
|
30
|
+
* @param walletId Wallet ID
|
|
31
|
+
* @param options Request options (signal, timeout)
|
|
32
|
+
* @returns Wallet details
|
|
33
|
+
*/
|
|
34
|
+
async get(walletId, options) {
|
|
35
|
+
const wallet = await this._get(`/api/v2/wallets/${walletId}`, undefined, options);
|
|
36
|
+
return this._normalize(wallet);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* List wallets.
|
|
40
|
+
*
|
|
41
|
+
* @param agentId Optional agent ID filter
|
|
42
|
+
* @param limit Maximum number of wallets to return
|
|
43
|
+
* @param options Request options (signal, timeout)
|
|
44
|
+
* @returns List of wallets
|
|
45
|
+
*/
|
|
46
|
+
async list(agentId, limit = 100, options) {
|
|
47
|
+
const params = { limit };
|
|
48
|
+
if (agentId) {
|
|
49
|
+
params.agent_id = agentId;
|
|
50
|
+
}
|
|
51
|
+
const response = await this._get('/api/v2/wallets', params, options);
|
|
52
|
+
// Handle both array and object response formats
|
|
53
|
+
if (Array.isArray(response)) {
|
|
54
|
+
return response.map((w) => this._normalize(w));
|
|
55
|
+
}
|
|
56
|
+
return (response.wallets || []).map((w) => this._normalize(w));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get wallet balance from chain (non-custodial, read-only).
|
|
60
|
+
*
|
|
61
|
+
* @param walletId Wallet ID
|
|
62
|
+
* @param chain Chain identifier (e.g., "base", "polygon")
|
|
63
|
+
* @param token Token symbol (e.g., "USDC", "USDT")
|
|
64
|
+
* @param options Request options (signal, timeout)
|
|
65
|
+
* @returns Wallet balance from chain
|
|
66
|
+
*/
|
|
67
|
+
async getBalance(walletId, chain = 'base', token = 'USDC', options) {
|
|
68
|
+
return this._get(`/api/v2/wallets/${walletId}/balance`, {
|
|
69
|
+
chain,
|
|
70
|
+
token,
|
|
71
|
+
}, options);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get all wallet addresses (chain -> address mapping).
|
|
75
|
+
*
|
|
76
|
+
* @param walletId Wallet ID
|
|
77
|
+
* @param options Request options (signal, timeout)
|
|
78
|
+
* @returns Dictionary mapping chain names to addresses
|
|
79
|
+
*/
|
|
80
|
+
async getAddresses(walletId, options) {
|
|
81
|
+
return this._get(`/api/v2/wallets/${walletId}/addresses`, undefined, options);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Set wallet address for a chain.
|
|
85
|
+
*
|
|
86
|
+
* @param walletId Wallet ID
|
|
87
|
+
* @param input Address information
|
|
88
|
+
* @param options Request options (signal, timeout)
|
|
89
|
+
* @returns Updated wallet
|
|
90
|
+
*/
|
|
91
|
+
async setAddress(walletId, input, options) {
|
|
92
|
+
const wallet = await this._post(`/api/v2/wallets/${walletId}/addresses`, input, options);
|
|
93
|
+
return this._normalize(wallet);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Transfer stablecoins from a wallet (agent is sender).
|
|
97
|
+
*
|
|
98
|
+
* This endpoint is intended to be called by an agent process using an API key.
|
|
99
|
+
* Sardis enforces policy + compliance and signs via the agent MPC wallet.
|
|
100
|
+
*/
|
|
101
|
+
async transfer(walletId, input, options) {
|
|
102
|
+
return this._post(`/api/v2/wallets/${walletId}/transfer`, input, options);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=wallets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../src/resources/wallets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAWzC,MAAM,OAAO,eAAgB,SAAQ,YAAY;IACvC,UAAU,CAAC,MAAc;QAC/B,sDAAsD;QACtD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAoC,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;QAC9D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,KAAwB,EAAE,OAAwB;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAS,iBAAiB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,OAAwB;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAS,mBAAmB,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,QAAgB,GAAG,EAAE,OAAwB;QACxE,MAAM,MAAM,GAA4B,EAAE,KAAK,EAAE,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC5B,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,iBAAiB,EACjB,MAAM,EACN,OAAO,CACR,CAAC;QAEF,gDAAgD;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,QAAgB,MAAM,EACtB,QAAgB,MAAM,EACtB,OAAwB;QAExB,OAAO,IAAI,CAAC,IAAI,CAAgB,mBAAmB,QAAQ,UAAU,EAAE;YACrE,KAAK;YACL,KAAK;SACN,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,OAAwB;QAC3D,OAAO,IAAI,CAAC,IAAI,CACd,mBAAmB,QAAQ,YAAY,EACvC,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,KAAsB,EACtB,OAAwB;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B,mBAAmB,QAAQ,YAAY,EACvC,KAAK,EACL,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,QAAgB,EAChB,KAA0B,EAC1B,OAAwB;QAExB,OAAO,IAAI,CAAC,KAAK,CACf,mBAAmB,QAAQ,WAAW,EACtC,KAAK,EACL,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhooks resource
|
|
3
|
+
*/
|
|
4
|
+
import { BaseResource } from './base.js';
|
|
5
|
+
import type { Webhook, WebhookDelivery, CreateWebhookInput, UpdateWebhookInput } from '../types.js';
|
|
6
|
+
export declare class WebhooksResource extends BaseResource {
|
|
7
|
+
/**
|
|
8
|
+
* List all available webhook event types
|
|
9
|
+
*/
|
|
10
|
+
listEventTypes(): Promise<string[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a webhook subscription
|
|
13
|
+
*/
|
|
14
|
+
create(input: CreateWebhookInput): Promise<Webhook>;
|
|
15
|
+
/**
|
|
16
|
+
* List all webhook subscriptions
|
|
17
|
+
*/
|
|
18
|
+
list(): Promise<Webhook[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Get a webhook subscription by ID
|
|
21
|
+
*
|
|
22
|
+
* @param webhookId - The webhook ID
|
|
23
|
+
* @returns The webhook object
|
|
24
|
+
*/
|
|
25
|
+
get(webhookId: string): Promise<Webhook>;
|
|
26
|
+
/**
|
|
27
|
+
* Get a webhook subscription by ID
|
|
28
|
+
*
|
|
29
|
+
* @deprecated Use `get(webhookId)` instead. This method will be removed in v1.0.0.
|
|
30
|
+
* @param webhookId - The webhook ID
|
|
31
|
+
* @returns The webhook object
|
|
32
|
+
*/
|
|
33
|
+
getById(webhookId: string): Promise<Webhook>;
|
|
34
|
+
/**
|
|
35
|
+
* Update a webhook subscription
|
|
36
|
+
*/
|
|
37
|
+
update(webhookId: string, input: UpdateWebhookInput): Promise<Webhook>;
|
|
38
|
+
/**
|
|
39
|
+
* Delete a webhook subscription
|
|
40
|
+
*/
|
|
41
|
+
delete(webhookId: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Send a test event to a webhook
|
|
44
|
+
*/
|
|
45
|
+
test(webhookId: string): Promise<WebhookDelivery>;
|
|
46
|
+
/**
|
|
47
|
+
* List delivery attempts for a webhook
|
|
48
|
+
*/
|
|
49
|
+
listDeliveries(webhookId: string, limit?: number): Promise<WebhookDelivery[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Rotate the webhook signing secret
|
|
52
|
+
*/
|
|
53
|
+
rotateSecret(webhookId: string): Promise<{
|
|
54
|
+
secret: string;
|
|
55
|
+
}>;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEpG,qBAAa,gBAAiB,SAAQ,YAAY;IAChD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKzC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKhC;;;;;OAKG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9C;;;;;;OAMG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5E;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvD;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQvF;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAGnE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhooks resource
|
|
3
|
+
*/
|
|
4
|
+
import { BaseResource } from './base.js';
|
|
5
|
+
export class WebhooksResource extends BaseResource {
|
|
6
|
+
/**
|
|
7
|
+
* List all available webhook event types
|
|
8
|
+
*/
|
|
9
|
+
async listEventTypes() {
|
|
10
|
+
const response = await this._get('/api/v2/webhooks/event-types');
|
|
11
|
+
return response.event_types || [];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a webhook subscription
|
|
15
|
+
*/
|
|
16
|
+
async create(input) {
|
|
17
|
+
return this._post('/api/v2/webhooks', input);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* List all webhook subscriptions
|
|
21
|
+
*/
|
|
22
|
+
async list() {
|
|
23
|
+
const response = await this._get('/api/v2/webhooks');
|
|
24
|
+
return response.webhooks || [];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get a webhook subscription by ID
|
|
28
|
+
*
|
|
29
|
+
* @param webhookId - The webhook ID
|
|
30
|
+
* @returns The webhook object
|
|
31
|
+
*/
|
|
32
|
+
async get(webhookId) {
|
|
33
|
+
return this._get(`/api/v2/webhooks/${webhookId}`);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get a webhook subscription by ID
|
|
37
|
+
*
|
|
38
|
+
* @deprecated Use `get(webhookId)` instead. This method will be removed in v1.0.0.
|
|
39
|
+
* @param webhookId - The webhook ID
|
|
40
|
+
* @returns The webhook object
|
|
41
|
+
*/
|
|
42
|
+
async getById(webhookId) {
|
|
43
|
+
return this.get(webhookId);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Update a webhook subscription
|
|
47
|
+
*/
|
|
48
|
+
async update(webhookId, input) {
|
|
49
|
+
return this._patch(`/api/v2/webhooks/${webhookId}`, input);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Delete a webhook subscription
|
|
53
|
+
*/
|
|
54
|
+
async delete(webhookId) {
|
|
55
|
+
await this._delete(`/api/v2/webhooks/${webhookId}`);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Send a test event to a webhook
|
|
59
|
+
*/
|
|
60
|
+
async test(webhookId) {
|
|
61
|
+
return this._post(`/api/v2/webhooks/${webhookId}/test`, {});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* List delivery attempts for a webhook
|
|
65
|
+
*/
|
|
66
|
+
async listDeliveries(webhookId, limit = 50) {
|
|
67
|
+
const response = await this._get(`/api/v2/webhooks/${webhookId}/deliveries`, { limit });
|
|
68
|
+
return response.deliveries || [];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Rotate the webhook signing secret
|
|
72
|
+
*/
|
|
73
|
+
async rotateSecret(webhookId) {
|
|
74
|
+
return this._post(`/api/v2/webhooks/${webhookId}/rotate-secret`, {});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=webhooks.js.map
|