@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/acp.d.ts ADDED
@@ -0,0 +1,201 @@
1
+ import { S as SlyClient } from './client-CyJe3uWO.js';
2
+ import './types-df1EICn_.js';
3
+
4
+ /**
5
+ * Types for ACP (Agentic Commerce Protocol) - Stripe/OpenAI
6
+ */
7
+ type CheckoutStatus = 'pending' | 'completed' | 'cancelled' | 'expired' | 'failed';
8
+ interface CheckoutItem {
9
+ item_id?: string;
10
+ name: string;
11
+ description?: string;
12
+ image_url?: string;
13
+ quantity: number;
14
+ unit_price: number;
15
+ total_price: number;
16
+ currency?: string;
17
+ item_data?: Record<string, any>;
18
+ }
19
+ interface Checkout {
20
+ id: string;
21
+ checkout_id: string;
22
+ agent_id: string;
23
+ agent_name?: string;
24
+ merchant_id: string;
25
+ merchant_name?: string;
26
+ customer_id?: string;
27
+ customer_email?: string;
28
+ total_amount: number;
29
+ currency: string;
30
+ status: CheckoutStatus;
31
+ created_at: string;
32
+ completed_at?: string;
33
+ }
34
+ interface CheckoutWithItems extends Checkout {
35
+ session_id?: string;
36
+ account_id: string;
37
+ merchant_url?: string;
38
+ subtotal: number;
39
+ tax_amount: number;
40
+ shipping_amount: number;
41
+ discount_amount: number;
42
+ shared_payment_token?: string;
43
+ payment_method?: string;
44
+ transfer_id?: string;
45
+ checkout_data?: Record<string, any>;
46
+ shipping_address?: Record<string, any>;
47
+ metadata?: Record<string, any>;
48
+ updated_at?: string;
49
+ cancelled_at?: string;
50
+ expires_at?: string;
51
+ items: CheckoutItem[];
52
+ }
53
+ interface CreateCheckoutRequest {
54
+ checkout_id: string;
55
+ session_id?: string;
56
+ agent_id: string;
57
+ agent_name?: string;
58
+ customer_id?: string;
59
+ customer_email?: string;
60
+ account_id: string;
61
+ merchant_id: string;
62
+ merchant_name?: string;
63
+ merchant_url?: string;
64
+ items: CheckoutItem[];
65
+ tax_amount?: number;
66
+ shipping_amount?: number;
67
+ discount_amount?: number;
68
+ currency?: string;
69
+ shared_payment_token?: string;
70
+ payment_method?: string;
71
+ checkout_data?: Record<string, any>;
72
+ shipping_address?: Record<string, any>;
73
+ metadata?: Record<string, any>;
74
+ expires_at?: string;
75
+ }
76
+ interface CompleteCheckoutRequest {
77
+ shared_payment_token: string;
78
+ payment_method?: string;
79
+ idempotency_key?: string;
80
+ }
81
+ interface CompleteCheckoutResponse {
82
+ checkout_id: string;
83
+ transfer_id: string;
84
+ status: CheckoutStatus;
85
+ completed_at: string;
86
+ total_amount: number;
87
+ currency: string;
88
+ }
89
+ interface ListCheckoutsOptions {
90
+ status?: CheckoutStatus;
91
+ agent_id?: string;
92
+ merchant_id?: string;
93
+ customer_id?: string;
94
+ limit?: number;
95
+ offset?: number;
96
+ }
97
+ interface ListCheckoutsResponse {
98
+ data: Checkout[];
99
+ pagination: {
100
+ total: number;
101
+ limit: number;
102
+ offset: number;
103
+ };
104
+ }
105
+
106
+ /**
107
+ * ACP Client - Agentic Commerce Protocol (Stripe/OpenAI)
108
+ *
109
+ * Wraps PayOS ACP API endpoints for checkout-based payments.
110
+ */
111
+
112
+ declare class ACPClient {
113
+ private client;
114
+ constructor(client: SlyClient);
115
+ /**
116
+ * Create a new ACP checkout session
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * const checkout = await payos.acp.createCheckout({
121
+ * checkout_id: 'checkout_unique_123',
122
+ * agent_id: 'agent_shopping_assistant',
123
+ * account_id: 'acct_uuid',
124
+ * merchant_id: 'merchant_store',
125
+ * items: [
126
+ * {
127
+ * name: 'Product 1',
128
+ * quantity: 2,
129
+ * unit_price: 50.00,
130
+ * total_price: 100.00,
131
+ * },
132
+ * ],
133
+ * tax_amount: 10.00,
134
+ * shipping_amount: 5.00,
135
+ * });
136
+ * ```
137
+ */
138
+ createCheckout(request: CreateCheckoutRequest): Promise<CheckoutWithItems>;
139
+ /**
140
+ * List checkouts with optional filtering
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * const { data, pagination } = await payos.acp.listCheckouts({
145
+ * status: 'pending',
146
+ * agent_id: 'agent_shopping_assistant',
147
+ * limit: 20,
148
+ * });
149
+ * ```
150
+ */
151
+ listCheckouts(options?: ListCheckoutsOptions): Promise<ListCheckoutsResponse>;
152
+ /**
153
+ * Get checkout details with items
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * const checkout = await payos.acp.getCheckout('checkout_id');
158
+ * console.log(checkout.items);
159
+ * console.log(checkout.total_amount);
160
+ * ```
161
+ */
162
+ getCheckout(checkoutId: string): Promise<CheckoutWithItems>;
163
+ /**
164
+ * Complete a checkout with SharedPaymentToken
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * const result = await payos.acp.completeCheckout('checkout_id', {
169
+ * shared_payment_token: 'spt_...',
170
+ * payment_method: 'card',
171
+ * });
172
+ *
173
+ * console.log(result.transfer_id);
174
+ * console.log(result.status); // 'completed'
175
+ * ```
176
+ */
177
+ completeCheckout(checkoutId: string, request: CompleteCheckoutRequest): Promise<CompleteCheckoutResponse>;
178
+ /**
179
+ * Cancel a checkout
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * const result = await payos.acp.cancelCheckout('checkout_id');
184
+ * console.log(result.status); // 'cancelled'
185
+ * ```
186
+ */
187
+ cancelCheckout(checkoutId: string): Promise<Checkout>;
188
+ /**
189
+ * Get ACP analytics
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * const analytics = await payos.acp.getAnalytics('30d');
194
+ * console.log(analytics.summary.totalRevenue);
195
+ * console.log(analytics.summary.averageOrderValue);
196
+ * ```
197
+ */
198
+ getAnalytics(period?: '24h' | '7d' | '30d' | '90d' | '1y'): Promise<any>;
199
+ }
200
+
201
+ export { ACPClient, type Checkout, type CheckoutItem, type CheckoutStatus, type CheckoutWithItems, type CompleteCheckoutRequest, type CompleteCheckoutResponse, type CreateCheckoutRequest, type ListCheckoutsOptions, type ListCheckoutsResponse };
package/dist/acp.js ADDED
@@ -0,0 +1,143 @@
1
+ 'use strict';
2
+
3
+ // src/protocols/acp/client.ts
4
+ var ACPClient = class {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ /**
9
+ * Create a new ACP checkout session
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const checkout = await payos.acp.createCheckout({
14
+ * checkout_id: 'checkout_unique_123',
15
+ * agent_id: 'agent_shopping_assistant',
16
+ * account_id: 'acct_uuid',
17
+ * merchant_id: 'merchant_store',
18
+ * items: [
19
+ * {
20
+ * name: 'Product 1',
21
+ * quantity: 2,
22
+ * unit_price: 50.00,
23
+ * total_price: 100.00,
24
+ * },
25
+ * ],
26
+ * tax_amount: 10.00,
27
+ * shipping_amount: 5.00,
28
+ * });
29
+ * ```
30
+ */
31
+ async createCheckout(request) {
32
+ const response = await this.client.request(
33
+ "/v1/acp/checkouts",
34
+ {
35
+ method: "POST",
36
+ body: JSON.stringify(request)
37
+ }
38
+ );
39
+ return response.data;
40
+ }
41
+ /**
42
+ * List checkouts with optional filtering
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const { data, pagination } = await payos.acp.listCheckouts({
47
+ * status: 'pending',
48
+ * agent_id: 'agent_shopping_assistant',
49
+ * limit: 20,
50
+ * });
51
+ * ```
52
+ */
53
+ async listCheckouts(options = {}) {
54
+ const params = new URLSearchParams();
55
+ if (options.status) params.append("status", options.status);
56
+ if (options.agent_id) params.append("agent_id", options.agent_id);
57
+ if (options.merchant_id) params.append("merchant_id", options.merchant_id);
58
+ if (options.customer_id) params.append("customer_id", options.customer_id);
59
+ if (options.limit) params.append("limit", options.limit.toString());
60
+ if (options.offset) params.append("offset", options.offset.toString());
61
+ const queryString = params.toString();
62
+ const path = queryString ? `/v1/acp/checkouts?${queryString}` : "/v1/acp/checkouts";
63
+ return this.client.request(path);
64
+ }
65
+ /**
66
+ * Get checkout details with items
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const checkout = await payos.acp.getCheckout('checkout_id');
71
+ * console.log(checkout.items);
72
+ * console.log(checkout.total_amount);
73
+ * ```
74
+ */
75
+ async getCheckout(checkoutId) {
76
+ const response = await this.client.request(
77
+ `/v1/acp/checkouts/${checkoutId}`
78
+ );
79
+ return response.data;
80
+ }
81
+ /**
82
+ * Complete a checkout with SharedPaymentToken
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * const result = await payos.acp.completeCheckout('checkout_id', {
87
+ * shared_payment_token: 'spt_...',
88
+ * payment_method: 'card',
89
+ * });
90
+ *
91
+ * console.log(result.transfer_id);
92
+ * console.log(result.status); // 'completed'
93
+ * ```
94
+ */
95
+ async completeCheckout(checkoutId, request) {
96
+ const response = await this.client.request(
97
+ `/v1/acp/checkouts/${checkoutId}/complete`,
98
+ {
99
+ method: "POST",
100
+ body: JSON.stringify(request)
101
+ }
102
+ );
103
+ return response.data;
104
+ }
105
+ /**
106
+ * Cancel a checkout
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const result = await payos.acp.cancelCheckout('checkout_id');
111
+ * console.log(result.status); // 'cancelled'
112
+ * ```
113
+ */
114
+ async cancelCheckout(checkoutId) {
115
+ const response = await this.client.request(
116
+ `/v1/acp/checkouts/${checkoutId}/cancel`,
117
+ {
118
+ method: "PATCH"
119
+ }
120
+ );
121
+ return response.data;
122
+ }
123
+ /**
124
+ * Get ACP analytics
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * const analytics = await payos.acp.getAnalytics('30d');
129
+ * console.log(analytics.summary.totalRevenue);
130
+ * console.log(analytics.summary.averageOrderValue);
131
+ * ```
132
+ */
133
+ async getAnalytics(period = "30d") {
134
+ const response = await this.client.request(
135
+ `/v1/acp/analytics?period=${period}`
136
+ );
137
+ return response.data;
138
+ }
139
+ };
140
+
141
+ exports.ACPClient = ACPClient;
142
+ //# sourceMappingURL=acp.js.map
143
+ //# sourceMappingURL=acp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/protocols/acp/client.ts"],"names":[],"mappings":"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","file":"acp.js","sourcesContent":["/**\n * ACP Client - Agentic Commerce Protocol (Stripe/OpenAI)\n * \n * Wraps PayOS ACP API endpoints for checkout-based payments.\n */\n\nimport type { PayOSClient } from '../../client';\nimport type {\n Checkout,\n CheckoutWithItems,\n CreateCheckoutRequest,\n CompleteCheckoutRequest,\n CompleteCheckoutResponse,\n ListCheckoutsOptions,\n ListCheckoutsResponse,\n} from './types';\n\nexport class ACPClient {\n private client: PayOSClient;\n\n constructor(client: PayOSClient) {\n this.client = client;\n }\n\n /**\n * Create a new ACP checkout session\n * \n * @example\n * ```typescript\n * const checkout = await payos.acp.createCheckout({\n * checkout_id: 'checkout_unique_123',\n * agent_id: 'agent_shopping_assistant',\n * account_id: 'acct_uuid',\n * merchant_id: 'merchant_store',\n * items: [\n * {\n * name: 'Product 1',\n * quantity: 2,\n * unit_price: 50.00,\n * total_price: 100.00,\n * },\n * ],\n * tax_amount: 10.00,\n * shipping_amount: 5.00,\n * });\n * ```\n */\n public async createCheckout(request: CreateCheckoutRequest): Promise<CheckoutWithItems> {\n const response = await this.client.request<{ data: CheckoutWithItems }>(\n '/v1/acp/checkouts',\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n return response.data;\n }\n\n /**\n * List checkouts with optional filtering\n * \n * @example\n * ```typescript\n * const { data, pagination } = await payos.acp.listCheckouts({\n * status: 'pending',\n * agent_id: 'agent_shopping_assistant',\n * limit: 20,\n * });\n * ```\n */\n public async listCheckouts(options: ListCheckoutsOptions = {}): Promise<ListCheckoutsResponse> {\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.merchant_id) params.append('merchant_id', options.merchant_id);\n if (options.customer_id) params.append('customer_id', options.customer_id);\n if (options.limit) params.append('limit', options.limit.toString());\n if (options.offset) params.append('offset', options.offset.toString());\n\n const queryString = params.toString();\n const path = queryString ? `/v1/acp/checkouts?${queryString}` : '/v1/acp/checkouts';\n\n return this.client.request<ListCheckoutsResponse>(path);\n }\n\n /**\n * Get checkout details with items\n * \n * @example\n * ```typescript\n * const checkout = await payos.acp.getCheckout('checkout_id');\n * console.log(checkout.items);\n * console.log(checkout.total_amount);\n * ```\n */\n public async getCheckout(checkoutId: string): Promise<CheckoutWithItems> {\n const response = await this.client.request<{ data: CheckoutWithItems }>(\n `/v1/acp/checkouts/${checkoutId}`\n );\n return response.data;\n }\n\n /**\n * Complete a checkout with SharedPaymentToken\n * \n * @example\n * ```typescript\n * const result = await payos.acp.completeCheckout('checkout_id', {\n * shared_payment_token: 'spt_...',\n * payment_method: 'card',\n * });\n * \n * console.log(result.transfer_id);\n * console.log(result.status); // 'completed'\n * ```\n */\n public async completeCheckout(\n checkoutId: string,\n request: CompleteCheckoutRequest\n ): Promise<CompleteCheckoutResponse> {\n const response = await this.client.request<{ data: CompleteCheckoutResponse }>(\n `/v1/acp/checkouts/${checkoutId}/complete`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n return response.data;\n }\n\n /**\n * Cancel a checkout\n * \n * @example\n * ```typescript\n * const result = await payos.acp.cancelCheckout('checkout_id');\n * console.log(result.status); // 'cancelled'\n * ```\n */\n public async cancelCheckout(checkoutId: string): Promise<Checkout> {\n const response = await this.client.request<{ data: Checkout }>(\n `/v1/acp/checkouts/${checkoutId}/cancel`,\n {\n method: 'PATCH',\n }\n );\n return response.data;\n }\n\n /**\n * Get ACP analytics\n * \n * @example\n * ```typescript\n * const analytics = await payos.acp.getAnalytics('30d');\n * console.log(analytics.summary.totalRevenue);\n * console.log(analytics.summary.averageOrderValue);\n * ```\n */\n public async getAnalytics(period: '24h' | '7d' | '30d' | '90d' | '1y' = '30d') {\n const response = await this.client.request<{ data: any }>(\n `/v1/acp/analytics?period=${period}`\n );\n return response.data;\n }\n}\n\n"]}
package/dist/acp.mjs ADDED
@@ -0,0 +1,141 @@
1
+ // src/protocols/acp/client.ts
2
+ var ACPClient = class {
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ /**
7
+ * Create a new ACP checkout session
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const checkout = await payos.acp.createCheckout({
12
+ * checkout_id: 'checkout_unique_123',
13
+ * agent_id: 'agent_shopping_assistant',
14
+ * account_id: 'acct_uuid',
15
+ * merchant_id: 'merchant_store',
16
+ * items: [
17
+ * {
18
+ * name: 'Product 1',
19
+ * quantity: 2,
20
+ * unit_price: 50.00,
21
+ * total_price: 100.00,
22
+ * },
23
+ * ],
24
+ * tax_amount: 10.00,
25
+ * shipping_amount: 5.00,
26
+ * });
27
+ * ```
28
+ */
29
+ async createCheckout(request) {
30
+ const response = await this.client.request(
31
+ "/v1/acp/checkouts",
32
+ {
33
+ method: "POST",
34
+ body: JSON.stringify(request)
35
+ }
36
+ );
37
+ return response.data;
38
+ }
39
+ /**
40
+ * List checkouts with optional filtering
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const { data, pagination } = await payos.acp.listCheckouts({
45
+ * status: 'pending',
46
+ * agent_id: 'agent_shopping_assistant',
47
+ * limit: 20,
48
+ * });
49
+ * ```
50
+ */
51
+ async listCheckouts(options = {}) {
52
+ const params = new URLSearchParams();
53
+ if (options.status) params.append("status", options.status);
54
+ if (options.agent_id) params.append("agent_id", options.agent_id);
55
+ if (options.merchant_id) params.append("merchant_id", options.merchant_id);
56
+ if (options.customer_id) params.append("customer_id", options.customer_id);
57
+ if (options.limit) params.append("limit", options.limit.toString());
58
+ if (options.offset) params.append("offset", options.offset.toString());
59
+ const queryString = params.toString();
60
+ const path = queryString ? `/v1/acp/checkouts?${queryString}` : "/v1/acp/checkouts";
61
+ return this.client.request(path);
62
+ }
63
+ /**
64
+ * Get checkout details with items
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const checkout = await payos.acp.getCheckout('checkout_id');
69
+ * console.log(checkout.items);
70
+ * console.log(checkout.total_amount);
71
+ * ```
72
+ */
73
+ async getCheckout(checkoutId) {
74
+ const response = await this.client.request(
75
+ `/v1/acp/checkouts/${checkoutId}`
76
+ );
77
+ return response.data;
78
+ }
79
+ /**
80
+ * Complete a checkout with SharedPaymentToken
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const result = await payos.acp.completeCheckout('checkout_id', {
85
+ * shared_payment_token: 'spt_...',
86
+ * payment_method: 'card',
87
+ * });
88
+ *
89
+ * console.log(result.transfer_id);
90
+ * console.log(result.status); // 'completed'
91
+ * ```
92
+ */
93
+ async completeCheckout(checkoutId, request) {
94
+ const response = await this.client.request(
95
+ `/v1/acp/checkouts/${checkoutId}/complete`,
96
+ {
97
+ method: "POST",
98
+ body: JSON.stringify(request)
99
+ }
100
+ );
101
+ return response.data;
102
+ }
103
+ /**
104
+ * Cancel a checkout
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const result = await payos.acp.cancelCheckout('checkout_id');
109
+ * console.log(result.status); // 'cancelled'
110
+ * ```
111
+ */
112
+ async cancelCheckout(checkoutId) {
113
+ const response = await this.client.request(
114
+ `/v1/acp/checkouts/${checkoutId}/cancel`,
115
+ {
116
+ method: "PATCH"
117
+ }
118
+ );
119
+ return response.data;
120
+ }
121
+ /**
122
+ * Get ACP analytics
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * const analytics = await payos.acp.getAnalytics('30d');
127
+ * console.log(analytics.summary.totalRevenue);
128
+ * console.log(analytics.summary.averageOrderValue);
129
+ * ```
130
+ */
131
+ async getAnalytics(period = "30d") {
132
+ const response = await this.client.request(
133
+ `/v1/acp/analytics?period=${period}`
134
+ );
135
+ return response.data;
136
+ }
137
+ };
138
+
139
+ export { ACPClient };
140
+ //# sourceMappingURL=acp.mjs.map
141
+ //# sourceMappingURL=acp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/protocols/acp/client.ts"],"names":[],"mappings":"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","file":"acp.mjs","sourcesContent":["/**\n * ACP Client - Agentic Commerce Protocol (Stripe/OpenAI)\n * \n * Wraps PayOS ACP API endpoints for checkout-based payments.\n */\n\nimport type { PayOSClient } from '../../client';\nimport type {\n Checkout,\n CheckoutWithItems,\n CreateCheckoutRequest,\n CompleteCheckoutRequest,\n CompleteCheckoutResponse,\n ListCheckoutsOptions,\n ListCheckoutsResponse,\n} from './types';\n\nexport class ACPClient {\n private client: PayOSClient;\n\n constructor(client: PayOSClient) {\n this.client = client;\n }\n\n /**\n * Create a new ACP checkout session\n * \n * @example\n * ```typescript\n * const checkout = await payos.acp.createCheckout({\n * checkout_id: 'checkout_unique_123',\n * agent_id: 'agent_shopping_assistant',\n * account_id: 'acct_uuid',\n * merchant_id: 'merchant_store',\n * items: [\n * {\n * name: 'Product 1',\n * quantity: 2,\n * unit_price: 50.00,\n * total_price: 100.00,\n * },\n * ],\n * tax_amount: 10.00,\n * shipping_amount: 5.00,\n * });\n * ```\n */\n public async createCheckout(request: CreateCheckoutRequest): Promise<CheckoutWithItems> {\n const response = await this.client.request<{ data: CheckoutWithItems }>(\n '/v1/acp/checkouts',\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n return response.data;\n }\n\n /**\n * List checkouts with optional filtering\n * \n * @example\n * ```typescript\n * const { data, pagination } = await payos.acp.listCheckouts({\n * status: 'pending',\n * agent_id: 'agent_shopping_assistant',\n * limit: 20,\n * });\n * ```\n */\n public async listCheckouts(options: ListCheckoutsOptions = {}): Promise<ListCheckoutsResponse> {\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.merchant_id) params.append('merchant_id', options.merchant_id);\n if (options.customer_id) params.append('customer_id', options.customer_id);\n if (options.limit) params.append('limit', options.limit.toString());\n if (options.offset) params.append('offset', options.offset.toString());\n\n const queryString = params.toString();\n const path = queryString ? `/v1/acp/checkouts?${queryString}` : '/v1/acp/checkouts';\n\n return this.client.request<ListCheckoutsResponse>(path);\n }\n\n /**\n * Get checkout details with items\n * \n * @example\n * ```typescript\n * const checkout = await payos.acp.getCheckout('checkout_id');\n * console.log(checkout.items);\n * console.log(checkout.total_amount);\n * ```\n */\n public async getCheckout(checkoutId: string): Promise<CheckoutWithItems> {\n const response = await this.client.request<{ data: CheckoutWithItems }>(\n `/v1/acp/checkouts/${checkoutId}`\n );\n return response.data;\n }\n\n /**\n * Complete a checkout with SharedPaymentToken\n * \n * @example\n * ```typescript\n * const result = await payos.acp.completeCheckout('checkout_id', {\n * shared_payment_token: 'spt_...',\n * payment_method: 'card',\n * });\n * \n * console.log(result.transfer_id);\n * console.log(result.status); // 'completed'\n * ```\n */\n public async completeCheckout(\n checkoutId: string,\n request: CompleteCheckoutRequest\n ): Promise<CompleteCheckoutResponse> {\n const response = await this.client.request<{ data: CompleteCheckoutResponse }>(\n `/v1/acp/checkouts/${checkoutId}/complete`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n return response.data;\n }\n\n /**\n * Cancel a checkout\n * \n * @example\n * ```typescript\n * const result = await payos.acp.cancelCheckout('checkout_id');\n * console.log(result.status); // 'cancelled'\n * ```\n */\n public async cancelCheckout(checkoutId: string): Promise<Checkout> {\n const response = await this.client.request<{ data: Checkout }>(\n `/v1/acp/checkouts/${checkoutId}/cancel`,\n {\n method: 'PATCH',\n }\n );\n return response.data;\n }\n\n /**\n * Get ACP analytics\n * \n * @example\n * ```typescript\n * const analytics = await payos.acp.getAnalytics('30d');\n * console.log(analytics.summary.totalRevenue);\n * console.log(analytics.summary.averageOrderValue);\n * ```\n */\n public async getAnalytics(period: '24h' | '7d' | '30d' | '90d' | '1y' = '30d') {\n const response = await this.client.request<{ data: any }>(\n `/v1/acp/analytics?period=${period}`\n );\n return response.data;\n }\n}\n\n"]}