@sly_ai/sdk 0.1.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.
Files changed (60) hide show
  1. package/README.md +346 -0
  2. package/dist/a2a.d.mts +108 -0
  3. package/dist/a2a.d.ts +108 -0
  4. package/dist/a2a.js +173 -0
  5. package/dist/a2a.js.map +1 -0
  6. package/dist/a2a.mjs +171 -0
  7. package/dist/a2a.mjs.map +1 -0
  8. package/dist/acp.d.mts +201 -0
  9. package/dist/acp.d.ts +201 -0
  10. package/dist/acp.js +143 -0
  11. package/dist/acp.js.map +1 -0
  12. package/dist/acp.mjs +141 -0
  13. package/dist/acp.mjs.map +1 -0
  14. package/dist/ap2.d.mts +188 -0
  15. package/dist/ap2.d.ts +188 -0
  16. package/dist/ap2.js +135 -0
  17. package/dist/ap2.js.map +1 -0
  18. package/dist/ap2.mjs +133 -0
  19. package/dist/ap2.mjs.map +1 -0
  20. package/dist/cards.d.mts +750 -0
  21. package/dist/cards.d.ts +750 -0
  22. package/dist/cards.js +373 -0
  23. package/dist/cards.js.map +1 -0
  24. package/dist/cards.mjs +369 -0
  25. package/dist/cards.mjs.map +1 -0
  26. package/dist/client-Cwe2CLU7.d.mts +41 -0
  27. package/dist/client-CyJe3uWO.d.ts +41 -0
  28. package/dist/index.d.mts +662 -0
  29. package/dist/index.d.ts +662 -0
  30. package/dist/index.js +2709 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/index.mjs +2700 -0
  33. package/dist/index.mjs.map +1 -0
  34. package/dist/langchain.d.mts +11 -0
  35. package/dist/langchain.d.ts +11 -0
  36. package/dist/langchain.js +25 -0
  37. package/dist/langchain.js.map +1 -0
  38. package/dist/langchain.mjs +23 -0
  39. package/dist/langchain.mjs.map +1 -0
  40. package/dist/types-df1EICn_.d.mts +165 -0
  41. package/dist/types-df1EICn_.d.ts +165 -0
  42. package/dist/ucp.d.mts +844 -0
  43. package/dist/ucp.d.ts +844 -0
  44. package/dist/ucp.js +616 -0
  45. package/dist/ucp.js.map +1 -0
  46. package/dist/ucp.mjs +614 -0
  47. package/dist/ucp.mjs.map +1 -0
  48. package/dist/vercel.d.mts +178 -0
  49. package/dist/vercel.d.ts +178 -0
  50. package/dist/vercel.js +143 -0
  51. package/dist/vercel.js.map +1 -0
  52. package/dist/vercel.mjs +138 -0
  53. package/dist/vercel.mjs.map +1 -0
  54. package/dist/x402.d.mts +209 -0
  55. package/dist/x402.d.ts +209 -0
  56. package/dist/x402.js +476 -0
  57. package/dist/x402.js.map +1 -0
  58. package/dist/x402.mjs +471 -0
  59. package/dist/x402.mjs.map +1 -0
  60. package/package.json +118 -0
package/dist/ap2.d.mts ADDED
@@ -0,0 +1,188 @@
1
+ import { S as SlyClient } from './client-Cwe2CLU7.mjs';
2
+ import './types-df1EICn_.mjs';
3
+
4
+ /**
5
+ * Types for AP2 (Agent-to-Agent Protocol) - Google
6
+ */
7
+ type MandateType = 'intent' | 'cart' | 'payment';
8
+ type MandateStatus = 'active' | 'completed' | 'cancelled' | 'expired';
9
+ interface Mandate {
10
+ id: string;
11
+ mandate_id: string;
12
+ mandate_type: MandateType;
13
+ agent_id: string;
14
+ agent_name?: string;
15
+ account_id: string;
16
+ authorized_amount: number;
17
+ used_amount: number;
18
+ remaining_amount: number;
19
+ currency: string;
20
+ status: MandateStatus;
21
+ execution_count: number;
22
+ expires_at?: string;
23
+ created_at: string;
24
+ updated_at?: string;
25
+ completed_at?: string;
26
+ cancelled_at?: string;
27
+ }
28
+ interface MandateWithExecutions extends Mandate {
29
+ mandate_data?: Record<string, any>;
30
+ a2a_session_id?: string;
31
+ metadata?: Record<string, any>;
32
+ executions: MandateExecution[];
33
+ }
34
+ interface MandateExecution {
35
+ id: string;
36
+ execution_index: number;
37
+ amount: number;
38
+ currency: string;
39
+ status: string;
40
+ transfer_id?: string;
41
+ created_at: string;
42
+ completed_at?: string;
43
+ }
44
+ interface CreateMandateRequest {
45
+ mandate_id: string;
46
+ mandate_type: MandateType;
47
+ agent_id: string;
48
+ agent_name?: string;
49
+ account_id: string;
50
+ authorized_amount: number;
51
+ currency?: string;
52
+ mandate_data?: Record<string, any>;
53
+ a2a_session_id?: string;
54
+ expires_at?: string;
55
+ metadata?: Record<string, any>;
56
+ }
57
+ interface ExecuteMandateRequest {
58
+ amount: number;
59
+ currency?: string;
60
+ authorization_proof?: string;
61
+ description?: string;
62
+ idempotency_key?: string;
63
+ order_ids?: string[];
64
+ }
65
+ interface ExecuteMandateResponse {
66
+ execution_id: string;
67
+ transfer_id: string;
68
+ mandate: {
69
+ id: string;
70
+ remaining_amount: number;
71
+ used_amount: number;
72
+ execution_count: number;
73
+ status: MandateStatus;
74
+ };
75
+ transfer: {
76
+ id: string;
77
+ amount: number;
78
+ currency: string;
79
+ status: string;
80
+ created_at: string;
81
+ };
82
+ }
83
+ interface ListMandatesOptions {
84
+ status?: MandateStatus;
85
+ agent_id?: string;
86
+ account_id?: string;
87
+ page?: number;
88
+ limit?: number;
89
+ }
90
+ interface ListMandatesResponse {
91
+ data: Mandate[];
92
+ pagination: {
93
+ page: number;
94
+ limit: number;
95
+ total: number;
96
+ totalPages: number;
97
+ };
98
+ }
99
+
100
+ /**
101
+ * AP2 Client - Google Agent-to-Agent Protocol
102
+ *
103
+ * Wraps PayOS AP2 API endpoints for mandate-based payments.
104
+ */
105
+
106
+ declare class AP2Client {
107
+ private client;
108
+ constructor(client: SlyClient);
109
+ /**
110
+ * Create a new AP2 mandate
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const mandate = await payos.ap2.createMandate({
115
+ * mandate_id: 'mdt_unique_123',
116
+ * mandate_type: 'payment',
117
+ * agent_id: 'agent_ai_assistant',
118
+ * account_id: 'acct_uuid',
119
+ * authorized_amount: 100.00,
120
+ * currency: 'USD',
121
+ * });
122
+ * ```
123
+ */
124
+ createMandate(request: CreateMandateRequest): Promise<Mandate>;
125
+ /**
126
+ * List mandates with optional filtering
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const { data, pagination } = await payos.ap2.listMandates({
131
+ * status: 'active',
132
+ * agent_id: 'agent_ai_assistant',
133
+ * limit: 50,
134
+ * });
135
+ * ```
136
+ */
137
+ listMandates(options?: ListMandatesOptions): Promise<ListMandatesResponse>;
138
+ /**
139
+ * Get mandate details with execution history
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const mandate = await payos.ap2.getMandate('mdt_id');
144
+ * console.log(mandate.remaining_amount);
145
+ * console.log(mandate.executions.length);
146
+ * ```
147
+ */
148
+ getMandate(mandateId: string): Promise<MandateWithExecutions>;
149
+ /**
150
+ * Execute a payment against a mandate
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * const result = await payos.ap2.executeMandate('mdt_id', {
155
+ * amount: 25.00,
156
+ * currency: 'USD',
157
+ * description: 'Monthly subscription',
158
+ * });
159
+ *
160
+ * console.log(result.transfer_id);
161
+ * console.log(result.mandate.remaining_amount);
162
+ * ```
163
+ */
164
+ executeMandate(mandateId: string, request: ExecuteMandateRequest): Promise<ExecuteMandateResponse>;
165
+ /**
166
+ * Cancel an active mandate
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * const result = await payos.ap2.cancelMandate('mdt_id');
171
+ * console.log(result.status); // 'cancelled'
172
+ * ```
173
+ */
174
+ cancelMandate(mandateId: string): Promise<Mandate>;
175
+ /**
176
+ * Get AP2 analytics
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const analytics = await payos.ap2.getAnalytics('30d');
181
+ * console.log(analytics.summary.totalRevenue);
182
+ * console.log(analytics.summary.activeMandates);
183
+ * ```
184
+ */
185
+ getAnalytics(period?: '24h' | '7d' | '30d' | '90d' | '1y'): Promise<any>;
186
+ }
187
+
188
+ export { AP2Client, type CreateMandateRequest, type ExecuteMandateRequest, type ExecuteMandateResponse, type ListMandatesOptions, type ListMandatesResponse, type Mandate, type MandateExecution, type MandateStatus, type MandateType, type MandateWithExecutions };
package/dist/ap2.d.ts ADDED
@@ -0,0 +1,188 @@
1
+ import { S as SlyClient } from './client-CyJe3uWO.js';
2
+ import './types-df1EICn_.js';
3
+
4
+ /**
5
+ * Types for AP2 (Agent-to-Agent Protocol) - Google
6
+ */
7
+ type MandateType = 'intent' | 'cart' | 'payment';
8
+ type MandateStatus = 'active' | 'completed' | 'cancelled' | 'expired';
9
+ interface Mandate {
10
+ id: string;
11
+ mandate_id: string;
12
+ mandate_type: MandateType;
13
+ agent_id: string;
14
+ agent_name?: string;
15
+ account_id: string;
16
+ authorized_amount: number;
17
+ used_amount: number;
18
+ remaining_amount: number;
19
+ currency: string;
20
+ status: MandateStatus;
21
+ execution_count: number;
22
+ expires_at?: string;
23
+ created_at: string;
24
+ updated_at?: string;
25
+ completed_at?: string;
26
+ cancelled_at?: string;
27
+ }
28
+ interface MandateWithExecutions extends Mandate {
29
+ mandate_data?: Record<string, any>;
30
+ a2a_session_id?: string;
31
+ metadata?: Record<string, any>;
32
+ executions: MandateExecution[];
33
+ }
34
+ interface MandateExecution {
35
+ id: string;
36
+ execution_index: number;
37
+ amount: number;
38
+ currency: string;
39
+ status: string;
40
+ transfer_id?: string;
41
+ created_at: string;
42
+ completed_at?: string;
43
+ }
44
+ interface CreateMandateRequest {
45
+ mandate_id: string;
46
+ mandate_type: MandateType;
47
+ agent_id: string;
48
+ agent_name?: string;
49
+ account_id: string;
50
+ authorized_amount: number;
51
+ currency?: string;
52
+ mandate_data?: Record<string, any>;
53
+ a2a_session_id?: string;
54
+ expires_at?: string;
55
+ metadata?: Record<string, any>;
56
+ }
57
+ interface ExecuteMandateRequest {
58
+ amount: number;
59
+ currency?: string;
60
+ authorization_proof?: string;
61
+ description?: string;
62
+ idempotency_key?: string;
63
+ order_ids?: string[];
64
+ }
65
+ interface ExecuteMandateResponse {
66
+ execution_id: string;
67
+ transfer_id: string;
68
+ mandate: {
69
+ id: string;
70
+ remaining_amount: number;
71
+ used_amount: number;
72
+ execution_count: number;
73
+ status: MandateStatus;
74
+ };
75
+ transfer: {
76
+ id: string;
77
+ amount: number;
78
+ currency: string;
79
+ status: string;
80
+ created_at: string;
81
+ };
82
+ }
83
+ interface ListMandatesOptions {
84
+ status?: MandateStatus;
85
+ agent_id?: string;
86
+ account_id?: string;
87
+ page?: number;
88
+ limit?: number;
89
+ }
90
+ interface ListMandatesResponse {
91
+ data: Mandate[];
92
+ pagination: {
93
+ page: number;
94
+ limit: number;
95
+ total: number;
96
+ totalPages: number;
97
+ };
98
+ }
99
+
100
+ /**
101
+ * AP2 Client - Google Agent-to-Agent Protocol
102
+ *
103
+ * Wraps PayOS AP2 API endpoints for mandate-based payments.
104
+ */
105
+
106
+ declare class AP2Client {
107
+ private client;
108
+ constructor(client: SlyClient);
109
+ /**
110
+ * Create a new AP2 mandate
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const mandate = await payos.ap2.createMandate({
115
+ * mandate_id: 'mdt_unique_123',
116
+ * mandate_type: 'payment',
117
+ * agent_id: 'agent_ai_assistant',
118
+ * account_id: 'acct_uuid',
119
+ * authorized_amount: 100.00,
120
+ * currency: 'USD',
121
+ * });
122
+ * ```
123
+ */
124
+ createMandate(request: CreateMandateRequest): Promise<Mandate>;
125
+ /**
126
+ * List mandates with optional filtering
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const { data, pagination } = await payos.ap2.listMandates({
131
+ * status: 'active',
132
+ * agent_id: 'agent_ai_assistant',
133
+ * limit: 50,
134
+ * });
135
+ * ```
136
+ */
137
+ listMandates(options?: ListMandatesOptions): Promise<ListMandatesResponse>;
138
+ /**
139
+ * Get mandate details with execution history
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const mandate = await payos.ap2.getMandate('mdt_id');
144
+ * console.log(mandate.remaining_amount);
145
+ * console.log(mandate.executions.length);
146
+ * ```
147
+ */
148
+ getMandate(mandateId: string): Promise<MandateWithExecutions>;
149
+ /**
150
+ * Execute a payment against a mandate
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * const result = await payos.ap2.executeMandate('mdt_id', {
155
+ * amount: 25.00,
156
+ * currency: 'USD',
157
+ * description: 'Monthly subscription',
158
+ * });
159
+ *
160
+ * console.log(result.transfer_id);
161
+ * console.log(result.mandate.remaining_amount);
162
+ * ```
163
+ */
164
+ executeMandate(mandateId: string, request: ExecuteMandateRequest): Promise<ExecuteMandateResponse>;
165
+ /**
166
+ * Cancel an active mandate
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * const result = await payos.ap2.cancelMandate('mdt_id');
171
+ * console.log(result.status); // 'cancelled'
172
+ * ```
173
+ */
174
+ cancelMandate(mandateId: string): Promise<Mandate>;
175
+ /**
176
+ * Get AP2 analytics
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const analytics = await payos.ap2.getAnalytics('30d');
181
+ * console.log(analytics.summary.totalRevenue);
182
+ * console.log(analytics.summary.activeMandates);
183
+ * ```
184
+ */
185
+ getAnalytics(period?: '24h' | '7d' | '30d' | '90d' | '1y'): Promise<any>;
186
+ }
187
+
188
+ export { AP2Client, type CreateMandateRequest, type ExecuteMandateRequest, type ExecuteMandateResponse, type ListMandatesOptions, type ListMandatesResponse, type Mandate, type MandateExecution, type MandateStatus, type MandateType, type MandateWithExecutions };
package/dist/ap2.js ADDED
@@ -0,0 +1,135 @@
1
+ 'use strict';
2
+
3
+ // src/protocols/ap2/client.ts
4
+ var AP2Client = class {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ /**
9
+ * Create a new AP2 mandate
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const mandate = await payos.ap2.createMandate({
14
+ * mandate_id: 'mdt_unique_123',
15
+ * mandate_type: 'payment',
16
+ * agent_id: 'agent_ai_assistant',
17
+ * account_id: 'acct_uuid',
18
+ * authorized_amount: 100.00,
19
+ * currency: 'USD',
20
+ * });
21
+ * ```
22
+ */
23
+ async createMandate(request) {
24
+ const response = await this.client.request(
25
+ "/v1/ap2/mandates",
26
+ {
27
+ method: "POST",
28
+ body: JSON.stringify(request)
29
+ }
30
+ );
31
+ return response.data;
32
+ }
33
+ /**
34
+ * List mandates with optional filtering
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const { data, pagination } = await payos.ap2.listMandates({
39
+ * status: 'active',
40
+ * agent_id: 'agent_ai_assistant',
41
+ * limit: 50,
42
+ * });
43
+ * ```
44
+ */
45
+ async listMandates(options = {}) {
46
+ const params = new URLSearchParams();
47
+ if (options.status) params.append("status", options.status);
48
+ if (options.agent_id) params.append("agent_id", options.agent_id);
49
+ if (options.account_id) params.append("account_id", options.account_id);
50
+ if (options.page) params.append("page", options.page.toString());
51
+ if (options.limit) params.append("limit", options.limit.toString());
52
+ const queryString = params.toString();
53
+ const path = queryString ? `/v1/ap2/mandates?${queryString}` : "/v1/ap2/mandates";
54
+ return this.client.request(path);
55
+ }
56
+ /**
57
+ * Get mandate details with execution history
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const mandate = await payos.ap2.getMandate('mdt_id');
62
+ * console.log(mandate.remaining_amount);
63
+ * console.log(mandate.executions.length);
64
+ * ```
65
+ */
66
+ async getMandate(mandateId) {
67
+ const response = await this.client.request(
68
+ `/v1/ap2/mandates/${mandateId}`
69
+ );
70
+ return response.data;
71
+ }
72
+ /**
73
+ * Execute a payment against a mandate
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const result = await payos.ap2.executeMandate('mdt_id', {
78
+ * amount: 25.00,
79
+ * currency: 'USD',
80
+ * description: 'Monthly subscription',
81
+ * });
82
+ *
83
+ * console.log(result.transfer_id);
84
+ * console.log(result.mandate.remaining_amount);
85
+ * ```
86
+ */
87
+ async executeMandate(mandateId, request) {
88
+ const response = await this.client.request(
89
+ `/v1/ap2/mandates/${mandateId}/execute`,
90
+ {
91
+ method: "POST",
92
+ body: JSON.stringify(request)
93
+ }
94
+ );
95
+ return response.data;
96
+ }
97
+ /**
98
+ * Cancel an active mandate
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const result = await payos.ap2.cancelMandate('mdt_id');
103
+ * console.log(result.status); // 'cancelled'
104
+ * ```
105
+ */
106
+ async cancelMandate(mandateId) {
107
+ const response = await this.client.request(
108
+ `/v1/ap2/mandates/${mandateId}/cancel`,
109
+ {
110
+ method: "PATCH"
111
+ }
112
+ );
113
+ return response.data;
114
+ }
115
+ /**
116
+ * Get AP2 analytics
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * const analytics = await payos.ap2.getAnalytics('30d');
121
+ * console.log(analytics.summary.totalRevenue);
122
+ * console.log(analytics.summary.activeMandates);
123
+ * ```
124
+ */
125
+ async getAnalytics(period = "30d") {
126
+ const response = await this.client.request(
127
+ `/v1/ap2/analytics?period=${period}`
128
+ );
129
+ return response.data;
130
+ }
131
+ };
132
+
133
+ exports.AP2Client = AP2Client;
134
+ //# sourceMappingURL=ap2.js.map
135
+ //# sourceMappingURL=ap2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/protocols/ap2/client.ts"],"names":[],"mappings":"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","file":"ap2.js","sourcesContent":["/**\n * AP2 Client - Google Agent-to-Agent Protocol\n * \n * Wraps PayOS AP2 API endpoints for mandate-based payments.\n */\n\nimport type { PayOSClient } from '../../client';\nimport type {\n Mandate,\n MandateWithExecutions,\n CreateMandateRequest,\n ExecuteMandateRequest,\n ExecuteMandateResponse,\n ListMandatesOptions,\n ListMandatesResponse,\n} from './types';\n\nexport class AP2Client {\n private client: PayOSClient;\n\n constructor(client: PayOSClient) {\n this.client = client;\n }\n\n /**\n * Create a new AP2 mandate\n * \n * @example\n * ```typescript\n * const mandate = await payos.ap2.createMandate({\n * mandate_id: 'mdt_unique_123',\n * mandate_type: 'payment',\n * agent_id: 'agent_ai_assistant',\n * account_id: 'acct_uuid',\n * authorized_amount: 100.00,\n * currency: 'USD',\n * });\n * ```\n */\n public async createMandate(request: CreateMandateRequest): Promise<Mandate> {\n const response = await this.client.request<{ data: Mandate }>(\n '/v1/ap2/mandates',\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n return response.data;\n }\n\n /**\n * List mandates with optional filtering\n * \n * @example\n * ```typescript\n * const { data, pagination } = await payos.ap2.listMandates({\n * status: 'active',\n * agent_id: 'agent_ai_assistant',\n * limit: 50,\n * });\n * ```\n */\n public async listMandates(options: ListMandatesOptions = {}): Promise<ListMandatesResponse> {\n const params = new URLSearchParams();\n if (options.status) params.append('status', options.status);\n if (options.agent_id) params.append('agent_id', options.agent_id);\n if (options.account_id) params.append('account_id', options.account_id);\n if (options.page) params.append('page', options.page.toString());\n if (options.limit) params.append('limit', options.limit.toString());\n\n const queryString = params.toString();\n const path = queryString ? `/v1/ap2/mandates?${queryString}` : '/v1/ap2/mandates';\n\n return this.client.request<ListMandatesResponse>(path);\n }\n\n /**\n * Get mandate details with execution history\n * \n * @example\n * ```typescript\n * const mandate = await payos.ap2.getMandate('mdt_id');\n * console.log(mandate.remaining_amount);\n * console.log(mandate.executions.length);\n * ```\n */\n public async getMandate(mandateId: string): Promise<MandateWithExecutions> {\n const response = await this.client.request<{ data: MandateWithExecutions }>(\n `/v1/ap2/mandates/${mandateId}`\n );\n return response.data;\n }\n\n /**\n * Execute a payment against a mandate\n * \n * @example\n * ```typescript\n * const result = await payos.ap2.executeMandate('mdt_id', {\n * amount: 25.00,\n * currency: 'USD',\n * description: 'Monthly subscription',\n * });\n * \n * console.log(result.transfer_id);\n * console.log(result.mandate.remaining_amount);\n * ```\n */\n public async executeMandate(\n mandateId: string,\n request: ExecuteMandateRequest\n ): Promise<ExecuteMandateResponse> {\n const response = await this.client.request<{ data: ExecuteMandateResponse }>(\n `/v1/ap2/mandates/${mandateId}/execute`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n return response.data;\n }\n\n /**\n * Cancel an active mandate\n * \n * @example\n * ```typescript\n * const result = await payos.ap2.cancelMandate('mdt_id');\n * console.log(result.status); // 'cancelled'\n * ```\n */\n public async cancelMandate(mandateId: string): Promise<Mandate> {\n const response = await this.client.request<{ data: Mandate }>(\n `/v1/ap2/mandates/${mandateId}/cancel`,\n {\n method: 'PATCH',\n }\n );\n return response.data;\n }\n\n /**\n * Get AP2 analytics\n * \n * @example\n * ```typescript\n * const analytics = await payos.ap2.getAnalytics('30d');\n * console.log(analytics.summary.totalRevenue);\n * console.log(analytics.summary.activeMandates);\n * ```\n */\n public async getAnalytics(period: '24h' | '7d' | '30d' | '90d' | '1y' = '30d') {\n const response = await this.client.request<{ data: any }>(\n `/v1/ap2/analytics?period=${period}`\n );\n return response.data;\n }\n}\n\n"]}
package/dist/ap2.mjs ADDED
@@ -0,0 +1,133 @@
1
+ // src/protocols/ap2/client.ts
2
+ var AP2Client = class {
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ /**
7
+ * Create a new AP2 mandate
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const mandate = await payos.ap2.createMandate({
12
+ * mandate_id: 'mdt_unique_123',
13
+ * mandate_type: 'payment',
14
+ * agent_id: 'agent_ai_assistant',
15
+ * account_id: 'acct_uuid',
16
+ * authorized_amount: 100.00,
17
+ * currency: 'USD',
18
+ * });
19
+ * ```
20
+ */
21
+ async createMandate(request) {
22
+ const response = await this.client.request(
23
+ "/v1/ap2/mandates",
24
+ {
25
+ method: "POST",
26
+ body: JSON.stringify(request)
27
+ }
28
+ );
29
+ return response.data;
30
+ }
31
+ /**
32
+ * List mandates with optional filtering
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const { data, pagination } = await payos.ap2.listMandates({
37
+ * status: 'active',
38
+ * agent_id: 'agent_ai_assistant',
39
+ * limit: 50,
40
+ * });
41
+ * ```
42
+ */
43
+ async listMandates(options = {}) {
44
+ const params = new URLSearchParams();
45
+ if (options.status) params.append("status", options.status);
46
+ if (options.agent_id) params.append("agent_id", options.agent_id);
47
+ if (options.account_id) params.append("account_id", options.account_id);
48
+ if (options.page) params.append("page", options.page.toString());
49
+ if (options.limit) params.append("limit", options.limit.toString());
50
+ const queryString = params.toString();
51
+ const path = queryString ? `/v1/ap2/mandates?${queryString}` : "/v1/ap2/mandates";
52
+ return this.client.request(path);
53
+ }
54
+ /**
55
+ * Get mandate details with execution history
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const mandate = await payos.ap2.getMandate('mdt_id');
60
+ * console.log(mandate.remaining_amount);
61
+ * console.log(mandate.executions.length);
62
+ * ```
63
+ */
64
+ async getMandate(mandateId) {
65
+ const response = await this.client.request(
66
+ `/v1/ap2/mandates/${mandateId}`
67
+ );
68
+ return response.data;
69
+ }
70
+ /**
71
+ * Execute a payment against a mandate
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const result = await payos.ap2.executeMandate('mdt_id', {
76
+ * amount: 25.00,
77
+ * currency: 'USD',
78
+ * description: 'Monthly subscription',
79
+ * });
80
+ *
81
+ * console.log(result.transfer_id);
82
+ * console.log(result.mandate.remaining_amount);
83
+ * ```
84
+ */
85
+ async executeMandate(mandateId, request) {
86
+ const response = await this.client.request(
87
+ `/v1/ap2/mandates/${mandateId}/execute`,
88
+ {
89
+ method: "POST",
90
+ body: JSON.stringify(request)
91
+ }
92
+ );
93
+ return response.data;
94
+ }
95
+ /**
96
+ * Cancel an active mandate
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * const result = await payos.ap2.cancelMandate('mdt_id');
101
+ * console.log(result.status); // 'cancelled'
102
+ * ```
103
+ */
104
+ async cancelMandate(mandateId) {
105
+ const response = await this.client.request(
106
+ `/v1/ap2/mandates/${mandateId}/cancel`,
107
+ {
108
+ method: "PATCH"
109
+ }
110
+ );
111
+ return response.data;
112
+ }
113
+ /**
114
+ * Get AP2 analytics
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const analytics = await payos.ap2.getAnalytics('30d');
119
+ * console.log(analytics.summary.totalRevenue);
120
+ * console.log(analytics.summary.activeMandates);
121
+ * ```
122
+ */
123
+ async getAnalytics(period = "30d") {
124
+ const response = await this.client.request(
125
+ `/v1/ap2/analytics?period=${period}`
126
+ );
127
+ return response.data;
128
+ }
129
+ };
130
+
131
+ export { AP2Client };
132
+ //# sourceMappingURL=ap2.mjs.map
133
+ //# sourceMappingURL=ap2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/protocols/ap2/client.ts"],"names":[],"mappings":"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","file":"ap2.mjs","sourcesContent":["/**\n * AP2 Client - Google Agent-to-Agent Protocol\n * \n * Wraps PayOS AP2 API endpoints for mandate-based payments.\n */\n\nimport type { PayOSClient } from '../../client';\nimport type {\n Mandate,\n MandateWithExecutions,\n CreateMandateRequest,\n ExecuteMandateRequest,\n ExecuteMandateResponse,\n ListMandatesOptions,\n ListMandatesResponse,\n} from './types';\n\nexport class AP2Client {\n private client: PayOSClient;\n\n constructor(client: PayOSClient) {\n this.client = client;\n }\n\n /**\n * Create a new AP2 mandate\n * \n * @example\n * ```typescript\n * const mandate = await payos.ap2.createMandate({\n * mandate_id: 'mdt_unique_123',\n * mandate_type: 'payment',\n * agent_id: 'agent_ai_assistant',\n * account_id: 'acct_uuid',\n * authorized_amount: 100.00,\n * currency: 'USD',\n * });\n * ```\n */\n public async createMandate(request: CreateMandateRequest): Promise<Mandate> {\n const response = await this.client.request<{ data: Mandate }>(\n '/v1/ap2/mandates',\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n return response.data;\n }\n\n /**\n * List mandates with optional filtering\n * \n * @example\n * ```typescript\n * const { data, pagination } = await payos.ap2.listMandates({\n * status: 'active',\n * agent_id: 'agent_ai_assistant',\n * limit: 50,\n * });\n * ```\n */\n public async listMandates(options: ListMandatesOptions = {}): Promise<ListMandatesResponse> {\n const params = new URLSearchParams();\n if (options.status) params.append('status', options.status);\n if (options.agent_id) params.append('agent_id', options.agent_id);\n if (options.account_id) params.append('account_id', options.account_id);\n if (options.page) params.append('page', options.page.toString());\n if (options.limit) params.append('limit', options.limit.toString());\n\n const queryString = params.toString();\n const path = queryString ? `/v1/ap2/mandates?${queryString}` : '/v1/ap2/mandates';\n\n return this.client.request<ListMandatesResponse>(path);\n }\n\n /**\n * Get mandate details with execution history\n * \n * @example\n * ```typescript\n * const mandate = await payos.ap2.getMandate('mdt_id');\n * console.log(mandate.remaining_amount);\n * console.log(mandate.executions.length);\n * ```\n */\n public async getMandate(mandateId: string): Promise<MandateWithExecutions> {\n const response = await this.client.request<{ data: MandateWithExecutions }>(\n `/v1/ap2/mandates/${mandateId}`\n );\n return response.data;\n }\n\n /**\n * Execute a payment against a mandate\n * \n * @example\n * ```typescript\n * const result = await payos.ap2.executeMandate('mdt_id', {\n * amount: 25.00,\n * currency: 'USD',\n * description: 'Monthly subscription',\n * });\n * \n * console.log(result.transfer_id);\n * console.log(result.mandate.remaining_amount);\n * ```\n */\n public async executeMandate(\n mandateId: string,\n request: ExecuteMandateRequest\n ): Promise<ExecuteMandateResponse> {\n const response = await this.client.request<{ data: ExecuteMandateResponse }>(\n `/v1/ap2/mandates/${mandateId}/execute`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n return response.data;\n }\n\n /**\n * Cancel an active mandate\n * \n * @example\n * ```typescript\n * const result = await payos.ap2.cancelMandate('mdt_id');\n * console.log(result.status); // 'cancelled'\n * ```\n */\n public async cancelMandate(mandateId: string): Promise<Mandate> {\n const response = await this.client.request<{ data: Mandate }>(\n `/v1/ap2/mandates/${mandateId}/cancel`,\n {\n method: 'PATCH',\n }\n );\n return response.data;\n }\n\n /**\n * Get AP2 analytics\n * \n * @example\n * ```typescript\n * const analytics = await payos.ap2.getAnalytics('30d');\n * console.log(analytics.summary.totalRevenue);\n * console.log(analytics.summary.activeMandates);\n * ```\n */\n public async getAnalytics(period: '24h' | '7d' | '30d' | '90d' | '1y' = '30d') {\n const response = await this.client.request<{ data: any }>(\n `/v1/ap2/analytics?period=${period}`\n );\n return response.data;\n }\n}\n\n"]}