@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,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A (Agent-to-Agent) resource
|
|
3
|
+
*
|
|
4
|
+
* Provides inter-agent communication capabilities:
|
|
5
|
+
* - Discover other agents via agent cards
|
|
6
|
+
* - Send payment requests
|
|
7
|
+
* - Verify credentials
|
|
8
|
+
*/
|
|
9
|
+
import { BaseResource } from './base.js';
|
|
10
|
+
// ============ Resource ============
|
|
11
|
+
export class A2AResource extends BaseResource {
|
|
12
|
+
/**
|
|
13
|
+
* Discover an agent by URL
|
|
14
|
+
*
|
|
15
|
+
* Fetches the agent card from /.well-known/agent-card.json
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const agent = await client.a2a.discoverAgent('https://agent.example.com');
|
|
20
|
+
* console.log(agent.card?.capabilities);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
async discoverAgent(agentUrl, forceRefresh) {
|
|
24
|
+
return this._post('/api/v2/a2a/discover', {
|
|
25
|
+
agent_url: agentUrl,
|
|
26
|
+
force_refresh: forceRefresh,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get our own agent card
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const myCard = await client.a2a.getAgentCard();
|
|
35
|
+
* console.log(myCard.capabilities);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
async getAgentCard() {
|
|
39
|
+
return this._get('/api/v2/a2a/agent-card');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* List all discovered agents
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const agents = await client.a2a.listAgents({
|
|
47
|
+
* capability: 'payment.execute',
|
|
48
|
+
* available_only: true,
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
async listAgents(options) {
|
|
53
|
+
const response = await this._get('/api/v2/a2a/agents', options);
|
|
54
|
+
if (Array.isArray(response)) {
|
|
55
|
+
return response;
|
|
56
|
+
}
|
|
57
|
+
return response.agents || [];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Send a payment request to another agent
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* const response = await client.a2a.sendPaymentRequest({
|
|
65
|
+
* recipient_agent_url: 'https://merchant.example.com',
|
|
66
|
+
* amount_minor: 5000,
|
|
67
|
+
* token: 'USDC',
|
|
68
|
+
* chain: 'base',
|
|
69
|
+
* destination: '0x...',
|
|
70
|
+
* purpose: 'Order #12345',
|
|
71
|
+
* });
|
|
72
|
+
*
|
|
73
|
+
* if (response.success) {
|
|
74
|
+
* console.log('Payment tx:', response.tx_hash);
|
|
75
|
+
* }
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
async sendPaymentRequest(input) {
|
|
79
|
+
return this._post('/api/v2/a2a/payment-request', input);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Request credential verification from another agent
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* const response = await client.a2a.verifyCredential({
|
|
87
|
+
* recipient_agent_url: 'https://verifier.example.com',
|
|
88
|
+
* credential_type: 'mandate',
|
|
89
|
+
* credential_data: mandate,
|
|
90
|
+
* });
|
|
91
|
+
*
|
|
92
|
+
* if (response.valid) {
|
|
93
|
+
* console.log('Credential verified!');
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
async verifyCredential(input) {
|
|
98
|
+
return this._post('/api/v2/a2a/verify-credential', input);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Send a raw A2A message to another agent
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const response = await client.a2a.sendMessage(
|
|
106
|
+
* 'https://agent.example.com',
|
|
107
|
+
* {
|
|
108
|
+
* message_type: 'custom',
|
|
109
|
+
* payload: { action: 'notify', data: {...} },
|
|
110
|
+
* }
|
|
111
|
+
* );
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
async sendMessage(recipientUrl, message) {
|
|
115
|
+
return this._post('/api/v2/a2a/messages', {
|
|
116
|
+
recipient_url: recipientUrl,
|
|
117
|
+
...message,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* List recent A2A messages
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const messages = await client.a2a.listMessages({
|
|
126
|
+
* direction: 'inbound',
|
|
127
|
+
* message_type: 'payment_request',
|
|
128
|
+
* });
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
async listMessages(options) {
|
|
132
|
+
const response = await this._get('/api/v2/a2a/messages', options);
|
|
133
|
+
if (Array.isArray(response)) {
|
|
134
|
+
return response;
|
|
135
|
+
}
|
|
136
|
+
return response.messages || [];
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Register an agent for discovery
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* await client.a2a.registerAgent({
|
|
144
|
+
* agent_id: 'my_agent',
|
|
145
|
+
* agent_name: 'My Agent',
|
|
146
|
+
* agent_url: 'https://my-agent.example.com',
|
|
147
|
+
* });
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
async registerAgent(input) {
|
|
151
|
+
return this._post('/api/v2/a2a/agents/register', input);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=a2a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/resources/a2a.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAiIzC,qCAAqC;AAErC,MAAM,OAAO,WAAY,SAAQ,YAAY;IAC3C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,YAAsB;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAkB,sBAAsB,EAAE;YACzD,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,IAAI,CAAY,wBAAwB,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,OAKhB;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;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,kBAAkB,CAAC,KAA0B;QACjD,OAAO,IAAI,CAAC,KAAK,CAAkB,6BAA6B,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAA4B;QACjD,OAAO,IAAI,CAAC,KAAK,CAAqB,+BAA+B,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,WAAW,CACf,YAAoB,EACpB,OAA4B;QAE5B,OAAO,IAAI,CAAC,KAAK,CAAa,sBAAsB,EAAE;YACpD,aAAa,EAAE,YAAY;YAC3B,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,YAAY,CAAC,OAMlB;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,sBAAsB,EACtB,OAAO,CACR,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,aAAa,CAAC,KAKnB;QACC,OAAO,IAAI,CAAC,KAAK,CAAkB,6BAA6B,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agents resource
|
|
3
|
+
*
|
|
4
|
+
* Agents are the core identity entities in Sardis. They can:
|
|
5
|
+
* - Own wallets
|
|
6
|
+
* - Issue mandates
|
|
7
|
+
* - Be subject to spending policies
|
|
8
|
+
*/
|
|
9
|
+
import { BaseResource } from './base.js';
|
|
10
|
+
import type { Agent, CreateAgentInput, UpdateAgentInput, ListAgentsOptions, RequestOptions } from '../types.js';
|
|
11
|
+
export declare class AgentsResource extends BaseResource {
|
|
12
|
+
private _normalize;
|
|
13
|
+
/**
|
|
14
|
+
* Create a new agent
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const agent = await client.agents.create({
|
|
19
|
+
* name: 'Shopping Agent',
|
|
20
|
+
* description: 'Agent for e-commerce purchases',
|
|
21
|
+
* spending_limits: {
|
|
22
|
+
* per_transaction: '100.00',
|
|
23
|
+
* daily: '500.00',
|
|
24
|
+
* },
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
create(input: CreateAgentInput, options?: RequestOptions): Promise<Agent>;
|
|
29
|
+
/**
|
|
30
|
+
* Get an agent by ID
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const agent = await client.agents.get('agent_abc123');
|
|
35
|
+
* console.log(agent.name, agent.is_active);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
get(agentId: string, options?: RequestOptions): Promise<Agent>;
|
|
39
|
+
/**
|
|
40
|
+
* List all agents
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* // List all agents
|
|
45
|
+
* const agents = await client.agents.list();
|
|
46
|
+
*
|
|
47
|
+
* // List with pagination
|
|
48
|
+
* const page = await client.agents.list({ limit: 10, offset: 20 });
|
|
49
|
+
*
|
|
50
|
+
* // List only active agents
|
|
51
|
+
* const active = await client.agents.list({ is_active: true });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
list(options?: ListAgentsOptions): Promise<Agent[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Update an agent
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const updated = await client.agents.update('agent_abc123', {
|
|
61
|
+
* name: 'Updated Name',
|
|
62
|
+
* is_active: false,
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
update(agentId: string, input: UpdateAgentInput): Promise<Agent>;
|
|
67
|
+
/**
|
|
68
|
+
* Delete an agent
|
|
69
|
+
*
|
|
70
|
+
* Note: This is a soft delete - the agent is deactivated, not removed.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* await client.agents.delete('agent_abc123');
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
delete(agentId: string): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Get an agent's associated wallet
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const wallet = await client.agents.getWallet('agent_abc123');
|
|
84
|
+
* console.log(wallet.addresses);
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
getWallet(agentId: string): Promise<{
|
|
88
|
+
wallet_id: string;
|
|
89
|
+
addresses: Record<string, string>;
|
|
90
|
+
}>;
|
|
91
|
+
/**
|
|
92
|
+
* Create a wallet for an agent
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const wallet = await client.agents.createWallet('agent_abc123', {
|
|
97
|
+
* currency: 'USDC',
|
|
98
|
+
* limit_per_tx: '100.00',
|
|
99
|
+
* });
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
createWallet(agentId: string, options?: {
|
|
103
|
+
currency?: string;
|
|
104
|
+
limit_per_tx?: string;
|
|
105
|
+
limit_total?: string;
|
|
106
|
+
}): Promise<{
|
|
107
|
+
wallet_id: string;
|
|
108
|
+
addresses: Record<string, string>;
|
|
109
|
+
}>;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/resources/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,UAAU;IAQlB;;;;;;;;;;;;;;OAcG;IACG,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAK/E;;;;;;;;OAQG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAKpE;;;;;;;;;;;;;;OAcG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAyBzD;;;;;;;;;;OAUG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAKtE;;;;;;;;;OASG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;;OAQG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAInG;;;;;;;;;;OAUG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAGrE"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agents resource
|
|
3
|
+
*
|
|
4
|
+
* Agents are the core identity entities in Sardis. They can:
|
|
5
|
+
* - Own wallets
|
|
6
|
+
* - Issue mandates
|
|
7
|
+
* - Be subject to spending policies
|
|
8
|
+
*/
|
|
9
|
+
import { BaseResource } from './base.js';
|
|
10
|
+
export class AgentsResource extends BaseResource {
|
|
11
|
+
_normalize(agent) {
|
|
12
|
+
// Provide backwards-compatible alias: id := agent_id
|
|
13
|
+
if (!agent.id) {
|
|
14
|
+
agent.id = agent.agent_id;
|
|
15
|
+
}
|
|
16
|
+
return agent;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a new agent
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const agent = await client.agents.create({
|
|
24
|
+
* name: 'Shopping Agent',
|
|
25
|
+
* description: 'Agent for e-commerce purchases',
|
|
26
|
+
* spending_limits: {
|
|
27
|
+
* per_transaction: '100.00',
|
|
28
|
+
* daily: '500.00',
|
|
29
|
+
* },
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
async create(input, options) {
|
|
34
|
+
const agent = await this._post('/api/v2/agents', input, options);
|
|
35
|
+
return this._normalize(agent);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get an agent by ID
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const agent = await client.agents.get('agent_abc123');
|
|
43
|
+
* console.log(agent.name, agent.is_active);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
async get(agentId, options) {
|
|
47
|
+
const agent = await this._get(`/api/v2/agents/${agentId}`, undefined, options);
|
|
48
|
+
return this._normalize(agent);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* List all agents
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* // List all agents
|
|
56
|
+
* const agents = await client.agents.list();
|
|
57
|
+
*
|
|
58
|
+
* // List with pagination
|
|
59
|
+
* const page = await client.agents.list({ limit: 10, offset: 20 });
|
|
60
|
+
*
|
|
61
|
+
* // List only active agents
|
|
62
|
+
* const active = await client.agents.list({ is_active: true });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
async list(options) {
|
|
66
|
+
const params = {};
|
|
67
|
+
if (options?.limit !== undefined) {
|
|
68
|
+
params.limit = options.limit;
|
|
69
|
+
}
|
|
70
|
+
if (options?.offset !== undefined) {
|
|
71
|
+
params.offset = options.offset;
|
|
72
|
+
}
|
|
73
|
+
if (options?.is_active !== undefined) {
|
|
74
|
+
params.is_active = options.is_active;
|
|
75
|
+
}
|
|
76
|
+
const response = await this._get('/api/v2/agents', Object.keys(params).length > 0 ? params : undefined);
|
|
77
|
+
// Handle both array and object response formats
|
|
78
|
+
if (Array.isArray(response)) {
|
|
79
|
+
return response.map((a) => this._normalize(a));
|
|
80
|
+
}
|
|
81
|
+
return (response.agents || []).map((a) => this._normalize(a));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Update an agent
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const updated = await client.agents.update('agent_abc123', {
|
|
89
|
+
* name: 'Updated Name',
|
|
90
|
+
* is_active: false,
|
|
91
|
+
* });
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
async update(agentId, input) {
|
|
95
|
+
const agent = await this._patch(`/api/v2/agents/${agentId}`, input);
|
|
96
|
+
return this._normalize(agent);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Delete an agent
|
|
100
|
+
*
|
|
101
|
+
* Note: This is a soft delete - the agent is deactivated, not removed.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* await client.agents.delete('agent_abc123');
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
async delete(agentId) {
|
|
109
|
+
await this._delete(`/api/v2/agents/${agentId}`);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get an agent's associated wallet
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const wallet = await client.agents.getWallet('agent_abc123');
|
|
117
|
+
* console.log(wallet.addresses);
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
async getWallet(agentId) {
|
|
121
|
+
return this._get(`/api/v2/agents/${agentId}/wallet`);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a wallet for an agent
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const wallet = await client.agents.createWallet('agent_abc123', {
|
|
129
|
+
* currency: 'USDC',
|
|
130
|
+
* limit_per_tx: '100.00',
|
|
131
|
+
* });
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
async createWallet(agentId, options) {
|
|
135
|
+
return this._post(`/api/v2/agents/${agentId}/wallet`, options || {});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/resources/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base resource class for all API resources.
|
|
3
|
+
*
|
|
4
|
+
* Provides common HTTP methods with support for:
|
|
5
|
+
* - Request options (params, data, signal, timeout)
|
|
6
|
+
* - Request cancellation via AbortController
|
|
7
|
+
* - Consistent error handling
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
11
|
+
import type { SardisClient } from '../client.js';
|
|
12
|
+
import type { RequestOptions } from '../types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Abstract base class for API resources.
|
|
15
|
+
*
|
|
16
|
+
* All resource classes extend this class to gain access to
|
|
17
|
+
* HTTP methods that integrate with the SardisClient.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* class MyResource extends BaseResource {
|
|
22
|
+
* async getItem(id: string, options?: RequestOptions) {
|
|
23
|
+
* return this._get<Item>(`/api/v2/items/${id}`, undefined, options);
|
|
24
|
+
* }
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare abstract class BaseResource {
|
|
29
|
+
/**
|
|
30
|
+
* The SardisClient instance used for HTTP requests.
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
protected client: SardisClient;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a new BaseResource instance.
|
|
36
|
+
*
|
|
37
|
+
* @param client - The SardisClient instance
|
|
38
|
+
*/
|
|
39
|
+
constructor(client: SardisClient);
|
|
40
|
+
/**
|
|
41
|
+
* Performs a GET request.
|
|
42
|
+
*
|
|
43
|
+
* @typeParam T - The expected response type
|
|
44
|
+
* @param path - API path
|
|
45
|
+
* @param params - Query parameters
|
|
46
|
+
* @param options - Request options (signal, timeout)
|
|
47
|
+
* @returns The response data
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const result = await this._get<Item[]>('/api/v2/items', { limit: 10 });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
protected _get<T>(path: string, params?: Record<string, unknown>, options?: RequestOptions): Promise<T>;
|
|
55
|
+
/**
|
|
56
|
+
* Performs a POST request.
|
|
57
|
+
*
|
|
58
|
+
* @typeParam T - The expected response type
|
|
59
|
+
* @param path - API path
|
|
60
|
+
* @param data - Request body
|
|
61
|
+
* @param options - Request options (signal, timeout)
|
|
62
|
+
* @returns The response data
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const result = await this._post<Item>('/api/v2/items', { name: 'New Item' });
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
protected _post<T>(path: string, data?: unknown, options?: RequestOptions): Promise<T>;
|
|
70
|
+
/**
|
|
71
|
+
* Performs a PATCH request.
|
|
72
|
+
*
|
|
73
|
+
* @typeParam T - The expected response type
|
|
74
|
+
* @param path - API path
|
|
75
|
+
* @param data - Request body with partial updates
|
|
76
|
+
* @param options - Request options (signal, timeout)
|
|
77
|
+
* @returns The response data
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const result = await this._patch<Item>('/api/v2/items/123', { name: 'Updated' });
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
protected _patch<T>(path: string, data?: unknown, options?: RequestOptions): Promise<T>;
|
|
85
|
+
/**
|
|
86
|
+
* Performs a PUT request.
|
|
87
|
+
*
|
|
88
|
+
* @typeParam T - The expected response type
|
|
89
|
+
* @param path - API path
|
|
90
|
+
* @param data - Request body
|
|
91
|
+
* @param options - Request options (signal, timeout)
|
|
92
|
+
* @returns The response data
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const result = await this._put<Item>('/api/v2/items/123', { name: 'Replaced' });
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
protected _put<T>(path: string, data?: unknown, options?: RequestOptions): Promise<T>;
|
|
100
|
+
/**
|
|
101
|
+
* Performs a DELETE request.
|
|
102
|
+
*
|
|
103
|
+
* @typeParam T - The expected response type
|
|
104
|
+
* @param path - API path
|
|
105
|
+
* @param options - Request options (signal, timeout)
|
|
106
|
+
* @returns The response data (if any)
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* await this._delete('/api/v2/items/123');
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
protected _delete<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/resources/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,YAAY;IAChC;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;IAE/B;;;;OAIG;gBACS,MAAM,EAAE,YAAY;IAIhC;;;;;;;;;;;;;OAaG;cACa,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC;IAIb;;;;;;;;;;;;;OAaG;cACa,KAAK,CAAC,CAAC,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC;IAIb;;;;;;;;;;;;;OAaG;cACa,MAAM,CAAC,CAAC,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC;IAIb;;;;;;;;;;;;;OAaG;cACa,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC;IAIb;;;;;;;;;;;;OAYG;cACa,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;CAG/E"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base resource class for all API resources.
|
|
3
|
+
*
|
|
4
|
+
* Provides common HTTP methods with support for:
|
|
5
|
+
* - Request options (params, data, signal, timeout)
|
|
6
|
+
* - Request cancellation via AbortController
|
|
7
|
+
* - Consistent error handling
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Abstract base class for API resources.
|
|
13
|
+
*
|
|
14
|
+
* All resource classes extend this class to gain access to
|
|
15
|
+
* HTTP methods that integrate with the SardisClient.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* class MyResource extends BaseResource {
|
|
20
|
+
* async getItem(id: string, options?: RequestOptions) {
|
|
21
|
+
* return this._get<Item>(`/api/v2/items/${id}`, undefined, options);
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class BaseResource {
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new BaseResource instance.
|
|
29
|
+
*
|
|
30
|
+
* @param client - The SardisClient instance
|
|
31
|
+
*/
|
|
32
|
+
constructor(client) {
|
|
33
|
+
this.client = client;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Performs a GET request.
|
|
37
|
+
*
|
|
38
|
+
* @typeParam T - The expected response type
|
|
39
|
+
* @param path - API path
|
|
40
|
+
* @param params - Query parameters
|
|
41
|
+
* @param options - Request options (signal, timeout)
|
|
42
|
+
* @returns The response data
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const result = await this._get<Item[]>('/api/v2/items', { limit: 10 });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
async _get(path, params, options) {
|
|
50
|
+
return this.client.request('GET', path, { ...options, params: params ?? options?.params });
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Performs a POST request.
|
|
54
|
+
*
|
|
55
|
+
* @typeParam T - The expected response type
|
|
56
|
+
* @param path - API path
|
|
57
|
+
* @param data - Request body
|
|
58
|
+
* @param options - Request options (signal, timeout)
|
|
59
|
+
* @returns The response data
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const result = await this._post<Item>('/api/v2/items', { name: 'New Item' });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
async _post(path, data, options) {
|
|
67
|
+
return this.client.request('POST', path, { ...options, data: data ?? options?.data });
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Performs a PATCH request.
|
|
71
|
+
*
|
|
72
|
+
* @typeParam T - The expected response type
|
|
73
|
+
* @param path - API path
|
|
74
|
+
* @param data - Request body with partial updates
|
|
75
|
+
* @param options - Request options (signal, timeout)
|
|
76
|
+
* @returns The response data
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const result = await this._patch<Item>('/api/v2/items/123', { name: 'Updated' });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
async _patch(path, data, options) {
|
|
84
|
+
return this.client.request('PATCH', path, { ...options, data: data ?? options?.data });
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Performs a PUT request.
|
|
88
|
+
*
|
|
89
|
+
* @typeParam T - The expected response type
|
|
90
|
+
* @param path - API path
|
|
91
|
+
* @param data - Request body
|
|
92
|
+
* @param options - Request options (signal, timeout)
|
|
93
|
+
* @returns The response data
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const result = await this._put<Item>('/api/v2/items/123', { name: 'Replaced' });
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
async _put(path, data, options) {
|
|
101
|
+
return this.client.request('PUT', path, { ...options, data: data ?? options?.data });
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Performs a DELETE request.
|
|
105
|
+
*
|
|
106
|
+
* @typeParam T - The expected response type
|
|
107
|
+
* @param path - API path
|
|
108
|
+
* @param options - Request options (signal, timeout)
|
|
109
|
+
* @returns The response data (if any)
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* await this._delete('/api/v2/items/123');
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
async _delete(path, options) {
|
|
117
|
+
return this.client.request('DELETE', path, options);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/resources/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAgB,YAAY;IAOhC;;;;OAIG;IACH,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,KAAK,CAAC,IAAI,CAClB,IAAY,EACZ,MAAgC,EAChC,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,KAAK,CAAC,KAAK,CACnB,IAAY,EACZ,IAAc,EACd,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,KAAK,CAAC,MAAM,CACpB,IAAY,EACZ,IAAc,EACd,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,KAAK,CAAC,IAAI,CAClB,IAAY,EACZ,IAAc,EACd,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,OAAwB;QAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cards Resource
|
|
3
|
+
*
|
|
4
|
+
* Virtual card issuance + simulated purchase demo flow.
|
|
5
|
+
*/
|
|
6
|
+
import { BaseResource } from './base.js';
|
|
7
|
+
import type { Card, CardTransaction, IssueCardInput, UpdateCardLimitsInput, SimulateCardPurchaseInput, SimulateCardPurchaseResponse, RequestOptions } from '../types.js';
|
|
8
|
+
export declare class CardsResource extends BaseResource {
|
|
9
|
+
issue(input: IssueCardInput, options?: RequestOptions): Promise<Card>;
|
|
10
|
+
list(wallet_id?: string, options?: RequestOptions): Promise<Card[]>;
|
|
11
|
+
get(card_id: string, options?: RequestOptions): Promise<Card>;
|
|
12
|
+
freeze(card_id: string, options?: RequestOptions): Promise<Card>;
|
|
13
|
+
unfreeze(card_id: string, options?: RequestOptions): Promise<Card>;
|
|
14
|
+
cancel(card_id: string, options?: RequestOptions): Promise<void>;
|
|
15
|
+
updateLimits(card_id: string, input: UpdateCardLimitsInput, options?: RequestOptions): Promise<Card>;
|
|
16
|
+
transactions(card_id: string, limit?: number, options?: RequestOptions): Promise<CardTransaction[]>;
|
|
17
|
+
simulatePurchase(card_id: string, input: SimulateCardPurchaseInput, options?: RequestOptions): Promise<SimulateCardPurchaseResponse>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=cards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../src/resources/cards.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,qBAAa,aAAc,SAAQ,YAAY;IACvC,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,IAAI,CACR,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,EAAE,CAAC;IAMZ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAIV,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQvG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,yBAAyB,EAChC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,4BAA4B,CAAC;CAOzC"}
|