@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.
- package/README.md +346 -0
- package/dist/a2a.d.mts +108 -0
- package/dist/a2a.d.ts +108 -0
- package/dist/a2a.js +173 -0
- package/dist/a2a.js.map +1 -0
- package/dist/a2a.mjs +171 -0
- package/dist/a2a.mjs.map +1 -0
- package/dist/acp.d.mts +201 -0
- package/dist/acp.d.ts +201 -0
- package/dist/acp.js +143 -0
- package/dist/acp.js.map +1 -0
- package/dist/acp.mjs +141 -0
- package/dist/acp.mjs.map +1 -0
- package/dist/ap2.d.mts +188 -0
- package/dist/ap2.d.ts +188 -0
- package/dist/ap2.js +135 -0
- package/dist/ap2.js.map +1 -0
- package/dist/ap2.mjs +133 -0
- package/dist/ap2.mjs.map +1 -0
- package/dist/cards.d.mts +750 -0
- package/dist/cards.d.ts +750 -0
- package/dist/cards.js +373 -0
- package/dist/cards.js.map +1 -0
- package/dist/cards.mjs +369 -0
- package/dist/cards.mjs.map +1 -0
- package/dist/client-Cwe2CLU7.d.mts +41 -0
- package/dist/client-CyJe3uWO.d.ts +41 -0
- package/dist/index.d.mts +662 -0
- package/dist/index.d.ts +662 -0
- package/dist/index.js +2709 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2700 -0
- package/dist/index.mjs.map +1 -0
- package/dist/langchain.d.mts +11 -0
- package/dist/langchain.d.ts +11 -0
- package/dist/langchain.js +25 -0
- package/dist/langchain.js.map +1 -0
- package/dist/langchain.mjs +23 -0
- package/dist/langchain.mjs.map +1 -0
- package/dist/types-df1EICn_.d.mts +165 -0
- package/dist/types-df1EICn_.d.ts +165 -0
- package/dist/ucp.d.mts +844 -0
- package/dist/ucp.d.ts +844 -0
- package/dist/ucp.js +616 -0
- package/dist/ucp.js.map +1 -0
- package/dist/ucp.mjs +614 -0
- package/dist/ucp.mjs.map +1 -0
- package/dist/vercel.d.mts +178 -0
- package/dist/vercel.d.ts +178 -0
- package/dist/vercel.js +143 -0
- package/dist/vercel.js.map +1 -0
- package/dist/vercel.mjs +138 -0
- package/dist/vercel.mjs.map +1 -0
- package/dist/x402.d.mts +209 -0
- package/dist/x402.d.ts +209 -0
- package/dist/x402.js +476 -0
- package/dist/x402.js.map +1 -0
- package/dist/x402.mjs +471 -0
- package/dist/x402.mjs.map +1 -0
- 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
|
package/dist/acp.js.map
ADDED
|
@@ -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
|
package/dist/acp.mjs.map
ADDED
|
@@ -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"]}
|