@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/ucp.mjs ADDED
@@ -0,0 +1,614 @@
1
+ // src/protocols/ucp/client.ts
2
+ var profileCache = /* @__PURE__ */ new Map();
3
+ var PROFILE_CACHE_TTL_MS = 60 * 60 * 1e3;
4
+ var UCPClient = class {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ // ===========================================================================
9
+ // Discovery
10
+ // ===========================================================================
11
+ /**
12
+ * Discover a UCP merchant's capabilities
13
+ *
14
+ * Fetches and caches the merchant's UCP profile from /.well-known/ucp
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const merchant = await payos.ucp.discover('https://shop.example.com');
19
+ * console.log(merchant.ucp.version);
20
+ * console.log(merchant.payment?.handlers);
21
+ * ```
22
+ */
23
+ async discover(merchantUrl) {
24
+ const baseUrl = merchantUrl.replace(/\/$/, "");
25
+ const profileUrl = `${baseUrl}/.well-known/ucp`;
26
+ const cached = profileCache.get(profileUrl);
27
+ if (cached && Date.now() - cached.fetchedAt < PROFILE_CACHE_TTL_MS) {
28
+ return cached.profile;
29
+ }
30
+ const response = await fetch(profileUrl, {
31
+ headers: {
32
+ Accept: "application/json",
33
+ "User-Agent": "PayOS-SDK/1.0"
34
+ }
35
+ });
36
+ if (!response.ok) {
37
+ throw new Error(`Failed to discover UCP profile: ${response.status} ${response.statusText}`);
38
+ }
39
+ const profile = await response.json();
40
+ if (!profile.ucp?.version) {
41
+ throw new Error("Invalid UCP profile: missing ucp.version");
42
+ }
43
+ profileCache.set(profileUrl, {
44
+ profile,
45
+ fetchedAt: Date.now()
46
+ });
47
+ return profile;
48
+ }
49
+ /**
50
+ * Get PayOS's own UCP profile
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const profile = await payos.ucp.getProfile();
55
+ * console.log(profile.payment?.handlers);
56
+ * ```
57
+ */
58
+ async getProfile() {
59
+ return this.client.request("/.well-known/ucp");
60
+ }
61
+ /**
62
+ * Get available settlement corridors
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const corridors = await payos.ucp.getCorridors();
67
+ * console.log(corridors.find(c => c.rail === 'pix'));
68
+ * ```
69
+ */
70
+ async getCorridors() {
71
+ const response = await this.client.request(
72
+ "/v1/ucp/corridors"
73
+ );
74
+ return response.corridors;
75
+ }
76
+ /**
77
+ * Get UCP handler info
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * const info = await payos.ucp.getHandlerInfo();
82
+ * console.log(info.handler.name); // com.payos.latam_settlement
83
+ * ```
84
+ */
85
+ async getHandlerInfo() {
86
+ return this.client.request("/v1/ucp/info");
87
+ }
88
+ // ===========================================================================
89
+ // Quotes
90
+ // ===========================================================================
91
+ /**
92
+ * Get an FX quote for a settlement corridor
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const quote = await payos.ucp.getQuote({
97
+ * corridor: 'pix',
98
+ * amount: 100,
99
+ * currency: 'USD',
100
+ * });
101
+ * console.log(`${quote.from_amount} USD = ${quote.to_amount} BRL`);
102
+ * ```
103
+ */
104
+ async getQuote(request) {
105
+ return this.client.request("/v1/ucp/quote", {
106
+ method: "POST",
107
+ body: JSON.stringify(request)
108
+ });
109
+ }
110
+ // ===========================================================================
111
+ // Token Acquisition (Payment Handler flow)
112
+ // ===========================================================================
113
+ /**
114
+ * Acquire a settlement token for completing a UCP checkout
115
+ *
116
+ * Tokens are valid for 15 minutes and lock in the FX rate.
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * const token = await payos.ucp.acquireToken({
121
+ * corridor: 'pix',
122
+ * amount: 100,
123
+ * currency: 'USD',
124
+ * recipient: {
125
+ * type: 'pix',
126
+ * pix_key: '12345678901',
127
+ * pix_key_type: 'cpf',
128
+ * name: 'Maria Silva',
129
+ * },
130
+ * });
131
+ *
132
+ * console.log(token.token); // ucp_tok_...
133
+ * console.log(token.quote.to_amount); // 595.00 BRL
134
+ * ```
135
+ */
136
+ async acquireToken(request) {
137
+ return this.client.request("/v1/ucp/tokens", {
138
+ method: "POST",
139
+ body: JSON.stringify(request)
140
+ });
141
+ }
142
+ // ===========================================================================
143
+ // Settlement Execution
144
+ // ===========================================================================
145
+ /**
146
+ * Complete settlement using a previously acquired token
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * const settlement = await payos.ucp.settle({
151
+ * token: 'ucp_tok_...',
152
+ * idempotency_key: 'checkout_12345',
153
+ * });
154
+ *
155
+ * console.log(settlement.status); // pending
156
+ * console.log(settlement.id); // Use this to track status
157
+ * ```
158
+ */
159
+ async settle(request) {
160
+ return this.client.request("/v1/ucp/settle", {
161
+ method: "POST",
162
+ body: JSON.stringify(request)
163
+ });
164
+ }
165
+ /**
166
+ * Get settlement status by ID
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * const settlement = await payos.ucp.getSettlement('uuid');
171
+ * if (settlement.status === 'completed') {
172
+ * console.log(`Completed at ${settlement.completed_at}`);
173
+ * }
174
+ * ```
175
+ */
176
+ async getSettlement(settlementId) {
177
+ return this.client.request(`/v1/ucp/settlements/${settlementId}`);
178
+ }
179
+ /**
180
+ * List settlements with optional filtering
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const { data, pagination } = await payos.ucp.listSettlements({
185
+ * status: 'completed',
186
+ * corridor: 'pix',
187
+ * limit: 50,
188
+ * });
189
+ * ```
190
+ */
191
+ async listSettlements(options = {}) {
192
+ const params = new URLSearchParams();
193
+ if (options.status) params.append("status", options.status);
194
+ if (options.corridor) params.append("corridor", options.corridor);
195
+ if (options.limit) params.append("limit", options.limit.toString());
196
+ if (options.offset) params.append("offset", options.offset.toString());
197
+ const queryString = params.toString();
198
+ const path = queryString ? `/v1/ucp/settlements?${queryString}` : "/v1/ucp/settlements";
199
+ return this.client.request(path);
200
+ }
201
+ // ===========================================================================
202
+ // Checkout (Consuming UCP Merchants)
203
+ // ===========================================================================
204
+ /**
205
+ * Create a checkout session with a UCP merchant
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * const checkout = await payos.ucp.createCheckout('https://shop.example.com', {
210
+ * line_items: [
211
+ * { product_id: 'prod_123', quantity: 2 },
212
+ * ],
213
+ * buyer: { email: 'buyer@example.com' },
214
+ * });
215
+ *
216
+ * console.log(checkout.totals.total);
217
+ * ```
218
+ */
219
+ async createCheckout(merchantUrl, request) {
220
+ const profile = await this.discover(merchantUrl);
221
+ if (!profile.checkout?.endpoint) {
222
+ throw new Error("Merchant does not support UCP checkout");
223
+ }
224
+ const response = await fetch(profile.checkout.endpoint, {
225
+ method: "POST",
226
+ headers: {
227
+ "Content-Type": "application/json",
228
+ "User-Agent": "PayOS-SDK/1.0"
229
+ },
230
+ body: JSON.stringify(request)
231
+ });
232
+ if (!response.ok) {
233
+ const error = await response.json().catch(() => ({}));
234
+ throw new Error(`Failed to create checkout: ${response.status} - ${JSON.stringify(error)}`);
235
+ }
236
+ return await response.json();
237
+ }
238
+ /**
239
+ * Complete a checkout with PayOS LATAM settlement
240
+ *
241
+ * This is a convenience method that:
242
+ * 1. Acquires a settlement token
243
+ * 2. Completes the checkout with the merchant
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * const order = await payos.ucp.completeCheckout(
248
+ * 'https://shop.example.com',
249
+ * checkout.id,
250
+ * {
251
+ * corridor: 'pix',
252
+ * recipient: {
253
+ * type: 'pix',
254
+ * pix_key: '12345678901',
255
+ * pix_key_type: 'cpf',
256
+ * name: 'Maria Silva',
257
+ * },
258
+ * }
259
+ * );
260
+ *
261
+ * console.log(order.id);
262
+ * console.log(order.payment.settlement_id);
263
+ * ```
264
+ */
265
+ async completeCheckout(merchantUrl, checkoutId, settlement) {
266
+ const profile = await this.discover(merchantUrl);
267
+ if (!profile.checkout?.endpoint) {
268
+ throw new Error("Merchant does not support UCP checkout");
269
+ }
270
+ const checkoutResponse = await fetch(`${profile.checkout.endpoint}/${checkoutId}`, {
271
+ headers: {
272
+ "User-Agent": "PayOS-SDK/1.0"
273
+ }
274
+ });
275
+ if (!checkoutResponse.ok) {
276
+ throw new Error(`Failed to fetch checkout: ${checkoutResponse.status}`);
277
+ }
278
+ const checkout = await checkoutResponse.json();
279
+ const token = await this.acquireToken({
280
+ corridor: settlement.corridor,
281
+ amount: checkout.totals.total,
282
+ currency: checkout.totals.currency,
283
+ recipient: settlement.recipient
284
+ });
285
+ const completeRequest = {
286
+ payment_handler: "payos_latam",
287
+ payment_data: {
288
+ token: token.token
289
+ }
290
+ };
291
+ const completeResponse = await fetch(`${profile.checkout.endpoint}/${checkoutId}/complete`, {
292
+ method: "POST",
293
+ headers: {
294
+ "Content-Type": "application/json",
295
+ "User-Agent": "PayOS-SDK/1.0"
296
+ },
297
+ body: JSON.stringify(completeRequest)
298
+ });
299
+ if (!completeResponse.ok) {
300
+ const error = await completeResponse.json().catch(() => ({}));
301
+ throw new Error(`Failed to complete checkout: ${completeResponse.status} - ${JSON.stringify(error)}`);
302
+ }
303
+ return await completeResponse.json();
304
+ }
305
+ // ===========================================================================
306
+ // Utilities
307
+ // ===========================================================================
308
+ /**
309
+ * Clear the profile cache (useful for testing)
310
+ */
311
+ clearCache() {
312
+ profileCache.clear();
313
+ }
314
+ /**
315
+ * Check if PayOS supports a specific corridor
316
+ *
317
+ * @example
318
+ * ```typescript
319
+ * if (await payos.ucp.supportsCorridors('USD', 'BRL', 'pix')) {
320
+ * // Can settle via Pix
321
+ * }
322
+ * ```
323
+ */
324
+ async supportsCorridor(sourceCurrency, destinationCurrency, rail) {
325
+ const corridors = await this.getCorridors();
326
+ return corridors.some(
327
+ (c) => c.source_currency === sourceCurrency && c.destination_currency === destinationCurrency && c.rail === rail
328
+ );
329
+ }
330
+ /**
331
+ * Create Pix recipient helper
332
+ *
333
+ * @example
334
+ * ```typescript
335
+ * const recipient = payos.ucp.createPixRecipient({
336
+ * pix_key: '12345678901',
337
+ * pix_key_type: 'cpf',
338
+ * name: 'Maria Silva',
339
+ * });
340
+ * ```
341
+ */
342
+ createPixRecipient(params) {
343
+ return {
344
+ type: "pix",
345
+ ...params
346
+ };
347
+ }
348
+ /**
349
+ * Create SPEI recipient helper
350
+ *
351
+ * @example
352
+ * ```typescript
353
+ * const recipient = payos.ucp.createSpeiRecipient({
354
+ * clabe: '012345678901234567',
355
+ * name: 'Juan Garcia',
356
+ * });
357
+ * ```
358
+ */
359
+ createSpeiRecipient(params) {
360
+ return {
361
+ type: "spei",
362
+ ...params
363
+ };
364
+ }
365
+ // ===========================================================================
366
+ // PayOS-Hosted Checkout Sessions (Phase 2)
367
+ // ===========================================================================
368
+ /**
369
+ * Create a PayOS-hosted checkout session
370
+ *
371
+ * @example
372
+ * ```typescript
373
+ * const checkout = await payos.ucp.checkouts.create({
374
+ * currency: 'USD',
375
+ * line_items: [
376
+ * { id: 'item_1', name: 'Product', quantity: 1, unit_price: 1000, total_price: 1000, currency: 'USD' }
377
+ * ],
378
+ * buyer: { email: 'buyer@example.com' },
379
+ * });
380
+ * ```
381
+ */
382
+ get checkouts() {
383
+ return {
384
+ create: async (request) => {
385
+ return this.client.request("/v1/ucp/checkouts", {
386
+ method: "POST",
387
+ body: JSON.stringify(request)
388
+ });
389
+ },
390
+ get: async (checkoutId) => {
391
+ return this.client.request(`/v1/ucp/checkouts/${checkoutId}`);
392
+ },
393
+ update: async (checkoutId, request) => {
394
+ return this.client.request(`/v1/ucp/checkouts/${checkoutId}`, {
395
+ method: "PUT",
396
+ body: JSON.stringify(request)
397
+ });
398
+ },
399
+ complete: async (checkoutId) => {
400
+ return this.client.request(`/v1/ucp/checkouts/${checkoutId}/complete`, {
401
+ method: "POST"
402
+ });
403
+ },
404
+ cancel: async (checkoutId) => {
405
+ return this.client.request(`/v1/ucp/checkouts/${checkoutId}/cancel`, {
406
+ method: "POST"
407
+ });
408
+ },
409
+ addPaymentInstrument: async (checkoutId, instrument) => {
410
+ return this.client.request(`/v1/ucp/checkouts/${checkoutId}/instruments`, {
411
+ method: "POST",
412
+ body: JSON.stringify(instrument)
413
+ });
414
+ }
415
+ };
416
+ }
417
+ // ===========================================================================
418
+ // PayOS Orders (Phase 3)
419
+ // ===========================================================================
420
+ /**
421
+ * Manage PayOS orders
422
+ *
423
+ * @example
424
+ * ```typescript
425
+ * const order = await payos.ucp.orders.get('ord_123');
426
+ * const orders = await payos.ucp.orders.list({ status: 'processing' });
427
+ * ```
428
+ */
429
+ get orders() {
430
+ return {
431
+ get: async (orderId) => {
432
+ return this.client.request(`/v1/ucp/orders/${orderId}`);
433
+ },
434
+ list: async (options = {}) => {
435
+ const params = new URLSearchParams();
436
+ if (options.status) params.append("status", options.status);
437
+ if (options.limit) params.append("limit", options.limit.toString());
438
+ if (options.offset) params.append("offset", options.offset.toString());
439
+ const queryString = params.toString();
440
+ const path = queryString ? `/v1/ucp/orders?${queryString}` : "/v1/ucp/orders";
441
+ return this.client.request(path);
442
+ },
443
+ updateStatus: async (orderId, status) => {
444
+ return this.client.request(`/v1/ucp/orders/${orderId}/status`, {
445
+ method: "PUT",
446
+ body: JSON.stringify({ status })
447
+ });
448
+ },
449
+ cancel: async (orderId, reason) => {
450
+ return this.client.request(`/v1/ucp/orders/${orderId}/cancel`, {
451
+ method: "POST",
452
+ body: JSON.stringify({ reason })
453
+ });
454
+ },
455
+ addExpectation: async (orderId, expectation) => {
456
+ return this.client.request(`/v1/ucp/orders/${orderId}/expectations`, {
457
+ method: "POST",
458
+ body: JSON.stringify(expectation)
459
+ });
460
+ },
461
+ updateExpectation: async (orderId, expectationId, updates) => {
462
+ return this.client.request(
463
+ `/v1/ucp/orders/${orderId}/expectations/${expectationId}`,
464
+ {
465
+ method: "PUT",
466
+ body: JSON.stringify(updates)
467
+ }
468
+ );
469
+ },
470
+ addEvent: async (orderId, event) => {
471
+ return this.client.request(`/v1/ucp/orders/${orderId}/events`, {
472
+ method: "POST",
473
+ body: JSON.stringify(event)
474
+ });
475
+ },
476
+ getEvents: async (orderId) => {
477
+ return this.client.request(
478
+ `/v1/ucp/orders/${orderId}/events`
479
+ );
480
+ },
481
+ addAdjustment: async (orderId, adjustment) => {
482
+ return this.client.request(`/v1/ucp/orders/${orderId}/adjustments`, {
483
+ method: "POST",
484
+ body: JSON.stringify(adjustment)
485
+ });
486
+ }
487
+ };
488
+ }
489
+ // ===========================================================================
490
+ // Identity Linking (Phase 4)
491
+ // ===========================================================================
492
+ /**
493
+ * OAuth 2.0 identity linking for AI agents/platforms
494
+ *
495
+ * @example
496
+ * ```typescript
497
+ * // Register an OAuth client
498
+ * const { client, client_secret } = await payos.ucp.identity.registerClient({
499
+ * name: 'My AI Agent',
500
+ * redirect_uris: ['https://myagent.com/callback'],
501
+ * });
502
+ *
503
+ * // List linked accounts
504
+ * const accounts = await payos.ucp.identity.listLinkedAccounts({ buyer_id: 'buyer_123' });
505
+ * ```
506
+ */
507
+ get identity() {
508
+ return {
509
+ /**
510
+ * Register an OAuth client (platform/agent)
511
+ */
512
+ registerClient: async (request) => {
513
+ return this.client.request("/v1/ucp/identity/clients", {
514
+ method: "POST",
515
+ body: JSON.stringify(request)
516
+ });
517
+ },
518
+ /**
519
+ * Get authorization info for consent screen
520
+ */
521
+ getAuthorizationInfo: async (params) => {
522
+ const searchParams = new URLSearchParams();
523
+ searchParams.append("response_type", params.response_type);
524
+ searchParams.append("client_id", params.client_id);
525
+ searchParams.append("redirect_uri", params.redirect_uri);
526
+ searchParams.append("scope", params.scope);
527
+ searchParams.append("state", params.state);
528
+ if (params.code_challenge) {
529
+ searchParams.append("code_challenge", params.code_challenge);
530
+ }
531
+ if (params.code_challenge_method) {
532
+ searchParams.append("code_challenge_method", params.code_challenge_method);
533
+ }
534
+ return this.client.request(
535
+ `/v1/ucp/identity/authorize?${searchParams.toString()}`
536
+ );
537
+ },
538
+ /**
539
+ * Submit consent decision (after user authenticates)
540
+ */
541
+ submitConsent: async (request) => {
542
+ return this.client.request("/v1/ucp/identity/authorize/consent", {
543
+ method: "POST",
544
+ body: JSON.stringify(request)
545
+ });
546
+ },
547
+ /**
548
+ * Exchange authorization code for tokens
549
+ */
550
+ exchangeCode: async (params) => {
551
+ return this.client.request("/v1/ucp/identity/token", {
552
+ method: "POST",
553
+ body: JSON.stringify({
554
+ grant_type: "authorization_code",
555
+ ...params
556
+ })
557
+ });
558
+ },
559
+ /**
560
+ * Refresh tokens
561
+ */
562
+ refreshTokens: async (params) => {
563
+ return this.client.request("/v1/ucp/identity/token", {
564
+ method: "POST",
565
+ body: JSON.stringify({
566
+ grant_type: "refresh_token",
567
+ ...params
568
+ })
569
+ });
570
+ },
571
+ /**
572
+ * Revoke a token
573
+ */
574
+ revokeToken: async (params) => {
575
+ return this.client.request("/v1/ucp/identity/revoke", {
576
+ method: "POST",
577
+ body: JSON.stringify(params)
578
+ });
579
+ },
580
+ /**
581
+ * List linked accounts
582
+ */
583
+ listLinkedAccounts: async (params) => {
584
+ const searchParams = new URLSearchParams();
585
+ if (params.buyer_id) searchParams.append("buyer_id", params.buyer_id);
586
+ if (params.platform_id) searchParams.append("platform_id", params.platform_id);
587
+ if (params.limit) searchParams.append("limit", params.limit.toString());
588
+ if (params.offset) searchParams.append("offset", params.offset.toString());
589
+ return this.client.request(
590
+ `/v1/ucp/identity/linked-accounts?${searchParams.toString()}`
591
+ );
592
+ },
593
+ /**
594
+ * Unlink an account
595
+ */
596
+ unlinkAccount: async (accountId, buyerId) => {
597
+ return this.client.request(
598
+ `/v1/ucp/identity/linked-accounts/${accountId}?buyer_id=${buyerId}`,
599
+ { method: "DELETE" }
600
+ );
601
+ },
602
+ /**
603
+ * Get available scopes
604
+ */
605
+ getScopes: async () => {
606
+ return this.client.request("/v1/ucp/identity/scopes");
607
+ }
608
+ };
609
+ }
610
+ };
611
+
612
+ export { UCPClient };
613
+ //# sourceMappingURL=ucp.mjs.map
614
+ //# sourceMappingURL=ucp.mjs.map