@axonflow/sdk 1.2.0 → 1.2.1

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 (61) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +194 -9
  3. package/dist/cjs/client.d.ts +64 -40
  4. package/dist/cjs/client.d.ts.map +1 -1
  5. package/dist/cjs/client.js +279 -198
  6. package/dist/cjs/client.js.map +1 -1
  7. package/dist/cjs/errors.d.ts +51 -0
  8. package/dist/cjs/errors.d.ts.map +1 -0
  9. package/dist/cjs/errors.js +84 -0
  10. package/dist/cjs/errors.js.map +1 -0
  11. package/dist/cjs/index.d.ts +3 -2
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +10 -2
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/interceptors/anthropic.d.ts +1 -1
  16. package/dist/cjs/interceptors/anthropic.d.ts.map +1 -1
  17. package/dist/cjs/interceptors/anthropic.js +6 -6
  18. package/dist/cjs/interceptors/anthropic.js.map +1 -1
  19. package/dist/cjs/interceptors/openai.d.ts +1 -1
  20. package/dist/cjs/interceptors/openai.d.ts.map +1 -1
  21. package/dist/cjs/interceptors/openai.js +5 -5
  22. package/dist/cjs/interceptors/openai.js.map +1 -1
  23. package/dist/cjs/types/config.d.ts +7 -1
  24. package/dist/cjs/types/config.d.ts.map +1 -1
  25. package/dist/cjs/types/gateway.d.ts +51 -114
  26. package/dist/cjs/types/gateway.d.ts.map +1 -1
  27. package/dist/cjs/types/gateway.js +2 -7
  28. package/dist/cjs/types/gateway.js.map +1 -1
  29. package/dist/cjs/utils/helpers.d.ts.map +1 -1
  30. package/dist/cjs/utils/helpers.js +3 -1
  31. package/dist/cjs/utils/helpers.js.map +1 -1
  32. package/dist/esm/client.d.ts +64 -40
  33. package/dist/esm/client.d.ts.map +1 -1
  34. package/dist/esm/client.js +279 -198
  35. package/dist/esm/client.js.map +1 -1
  36. package/dist/esm/errors.d.ts +51 -0
  37. package/dist/esm/errors.d.ts.map +1 -0
  38. package/dist/esm/errors.js +75 -0
  39. package/dist/esm/errors.js.map +1 -0
  40. package/dist/esm/index.d.ts +3 -2
  41. package/dist/esm/index.d.ts.map +1 -1
  42. package/dist/esm/index.js +3 -1
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/esm/interceptors/anthropic.d.ts +1 -1
  45. package/dist/esm/interceptors/anthropic.d.ts.map +1 -1
  46. package/dist/esm/interceptors/anthropic.js +6 -6
  47. package/dist/esm/interceptors/anthropic.js.map +1 -1
  48. package/dist/esm/interceptors/openai.d.ts +1 -1
  49. package/dist/esm/interceptors/openai.d.ts.map +1 -1
  50. package/dist/esm/interceptors/openai.js +5 -5
  51. package/dist/esm/interceptors/openai.js.map +1 -1
  52. package/dist/esm/types/config.d.ts +7 -1
  53. package/dist/esm/types/config.d.ts.map +1 -1
  54. package/dist/esm/types/gateway.d.ts +51 -114
  55. package/dist/esm/types/gateway.d.ts.map +1 -1
  56. package/dist/esm/types/gateway.js +2 -7
  57. package/dist/esm/types/gateway.js.map +1 -1
  58. package/dist/esm/utils/helpers.d.ts.map +1 -1
  59. package/dist/esm/utils/helpers.js +3 -1
  60. package/dist/esm/utils/helpers.js.map +1 -1
  61. package/package.json +21 -7
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 AxonFlow
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # AxonFlow SDK for TypeScript
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@axonflow/sdk.svg)](https://www.npmjs.com/package/@axonflow/sdk)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@axonflow/sdk.svg)](https://www.npmjs.com/package/@axonflow/sdk)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg)](https://www.typescriptlang.org/)
7
+
3
8
  Add invisible AI governance to your applications in 3 lines of code. No UI changes. No user training. Just drop-in enterprise protection.
4
9
 
5
10
  ## Installation
@@ -10,7 +15,7 @@ npm install @axonflow/sdk
10
15
 
11
16
  ## Quick Start
12
17
 
13
- ### Basic Usage
18
+ ### Basic Usage (License-Based Auth)
14
19
 
15
20
  ```typescript
16
21
  import { AxonFlow } from '@axonflow/sdk';
@@ -19,8 +24,10 @@ import OpenAI from 'openai';
19
24
  // Initialize your AI client as usual
20
25
  const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
21
26
 
22
- // Add AxonFlow governance (3 lines)
23
- const axonflow = new AxonFlow({ apiKey: process.env.AXONFLOW_API_KEY });
27
+ // Add AxonFlow governance with license key (recommended)
28
+ const axonflow = new AxonFlow({
29
+ licenseKey: process.env.AXONFLOW_LICENSE_KEY
30
+ });
24
31
 
25
32
  // Wrap any AI call with protect()
26
33
  const response = await axonflow.protect(async () => {
@@ -38,7 +45,9 @@ import { AxonFlow, wrapOpenAIClient } from '@axonflow/sdk';
38
45
  import OpenAI from 'openai';
39
46
 
40
47
  const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
41
- const axonflow = new AxonFlow({ apiKey: process.env.AXONFLOW_API_KEY });
48
+ const axonflow = new AxonFlow({
49
+ licenseKey: process.env.AXONFLOW_LICENSE_KEY
50
+ });
42
51
 
43
52
  // Wrap the entire client - all calls are now protected
44
53
  const protectedOpenAI = wrapOpenAIClient(openai, axonflow);
@@ -50,13 +59,66 @@ const response = await protectedOpenAI.chat.completions.create({
50
59
  });
51
60
  ```
52
61
 
62
+ ### Self-Hosted Mode (No License Required)
63
+
64
+ Connect to a self-hosted AxonFlow instance running via docker-compose:
65
+
66
+ ```typescript
67
+ import { AxonFlow } from '@axonflow/sdk';
68
+ import OpenAI from 'openai';
69
+
70
+ const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
71
+
72
+ // Self-hosted (localhost) - no license key needed!
73
+ const axonflow = new AxonFlow({
74
+ endpoint: 'http://localhost:8081'
75
+ // That's it - no authentication required for localhost
76
+ });
77
+
78
+ // Use normally - same features as production
79
+ const response = await axonflow.protect(async () => {
80
+ return openai.chat.completions.create({
81
+ model: 'gpt-4',
82
+ messages: [{ role: 'user', content: 'Test with self-hosted AxonFlow' }]
83
+ });
84
+ });
85
+ ```
86
+
87
+ **Self-hosted deployment:**
88
+ ```bash
89
+ # Clone and start AxonFlow
90
+ git clone https://github.com/getaxonflow/axonflow.git
91
+ cd axonflow
92
+ export OPENAI_API_KEY=sk-your-key-here
93
+ docker-compose up
94
+
95
+ # SDK connects to http://localhost:8081 - no license needed!
96
+ ```
97
+
98
+ **Features:**
99
+ - ✅ Full AxonFlow features without license
100
+ - ✅ Perfect for local development and testing
101
+ - ✅ Same API as production
102
+ - ✅ Automatically detects localhost and skips authentication
103
+
104
+ ### Legacy API Key Auth (Deprecated)
105
+
106
+ > **⚠️ Deprecated**: `apiKey` authentication is deprecated. Please migrate to license-based authentication using `licenseKey`.
107
+
108
+ ```typescript
109
+ // Legacy method (still supported for backward compatibility)
110
+ const axonflow = new AxonFlow({ apiKey: process.env.AXONFLOW_API_KEY });
111
+ ```
112
+
53
113
  ## React Example
54
114
 
55
115
  ```tsx
56
116
  import { AxonFlow } from '@axonflow/sdk';
57
117
  import { useState } from 'react';
58
118
 
59
- const axonflow = new AxonFlow({ apiKey: 'your-key' });
119
+ const axonflow = new AxonFlow({
120
+ licenseKey: process.env.REACT_APP_AXONFLOW_LICENSE_KEY
121
+ });
60
122
 
61
123
  function ChatComponent() {
62
124
  const [response, setResponse] = useState('');
@@ -88,7 +150,9 @@ import { AxonFlow } from '@axonflow/sdk';
88
150
  import OpenAI from 'openai';
89
151
 
90
152
  const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
91
- const axonflow = new AxonFlow({ apiKey: process.env.AXONFLOW_API_KEY });
153
+ const axonflow = new AxonFlow({
154
+ licenseKey: process.env.AXONFLOW_LICENSE_KEY
155
+ });
92
156
 
93
157
  export default async function handler(req, res) {
94
158
  const { prompt } = req.body;
@@ -144,7 +208,7 @@ For customers running within AWS VPC, use the private endpoint for sub-10ms late
144
208
  ```typescript
145
209
  const axonflow = new AxonFlow({
146
210
  apiKey: 'your-client-id',
147
- endpoint: 'https://10.0.2.67:8443', // VPC private endpoint (EU)
211
+ endpoint: 'https://vpc-private-endpoint.getaxonflow.com:8443', // VPC private endpoint
148
212
  tenant: 'your-client-id',
149
213
  mode: 'production'
150
214
  });
@@ -286,6 +350,97 @@ if (resp.success) {
286
350
  }
287
351
  ```
288
352
 
353
+ ### Production Connectors (November 2025)
354
+
355
+ AxonFlow now supports **7 production-ready connectors**:
356
+
357
+ #### Salesforce CRM Connector
358
+
359
+ Query Salesforce data using SOQL:
360
+
361
+ ```typescript
362
+ // Query Salesforce contacts
363
+ const contacts = await axonflow.queryConnector(
364
+ 'salesforce-crm',
365
+ 'Find all contacts for account Acme Corp',
366
+ {
367
+ soql: "SELECT Id, Name, Email, Phone FROM Contact WHERE AccountId = '001xx000003DHP0'"
368
+ }
369
+ );
370
+
371
+ console.log(`Found ${contacts.data.length} contacts`);
372
+ ```
373
+
374
+ **Authentication:** OAuth 2.0 password grant (configured in AxonFlow dashboard)
375
+
376
+ #### Snowflake Data Warehouse Connector
377
+
378
+ Execute analytics queries on Snowflake:
379
+
380
+ ```typescript
381
+ // Query Snowflake for sales analytics
382
+ const analytics = await axonflow.queryConnector(
383
+ 'snowflake-warehouse',
384
+ 'Get monthly revenue for last 12 months',
385
+ {
386
+ sql: `SELECT DATE_TRUNC('month', order_date) as month,
387
+ COUNT(*) as orders,
388
+ SUM(amount) as revenue
389
+ FROM orders
390
+ WHERE order_date >= DATEADD(month, -12, CURRENT_DATE())
391
+ GROUP BY month
392
+ ORDER BY month`
393
+ }
394
+ );
395
+
396
+ console.log('Revenue data:', analytics.data);
397
+ ```
398
+
399
+ **Authentication:** Key-pair JWT authentication (configured in AxonFlow dashboard)
400
+
401
+ #### Slack Connector
402
+
403
+ Send notifications and alerts to Slack channels:
404
+
405
+ ```typescript
406
+ // Send Slack notification
407
+ const result = await axonflow.queryConnector(
408
+ 'slack-workspace',
409
+ 'Send deployment notification to #engineering channel',
410
+ {
411
+ channel: '#engineering',
412
+ text: '🚀 Deployment complete! All systems operational.',
413
+ blocks: [
414
+ {
415
+ type: 'section',
416
+ text: {
417
+ type: 'mrkdwn',
418
+ text: '*Deployment Status*\n✅ All systems operational'
419
+ }
420
+ }
421
+ ]
422
+ }
423
+ );
424
+
425
+ console.log('Message sent:', result.success);
426
+ ```
427
+
428
+ **Authentication:** OAuth 2.0 bot token (configured in AxonFlow dashboard)
429
+
430
+ #### Available Connectors
431
+
432
+ | Connector | Type | Use Case |
433
+ |-----------|------|----------|
434
+ | PostgreSQL | Database | Relational data access |
435
+ | Redis | Cache | Distributed rate limiting |
436
+ | Slack | Communication | Team notifications |
437
+ | Salesforce | CRM | Customer data, SOQL queries |
438
+ | Snowflake | Data Warehouse | Analytics, reporting |
439
+ | Amadeus GDS | Travel | Flight/hotel booking |
440
+ | Cassandra | NoSQL | Distributed database |
441
+
442
+ For complete connector documentation, see [https://docs.getaxonflow.com/mcp](https://docs.getaxonflow.com/mcp)
443
+
289
444
  ## Multi-Agent Planning (MAP)
290
445
 
291
446
  Generate and execute complex multi-step plans using AI agent orchestration:
@@ -351,9 +506,9 @@ if (status.status === 'running') {
351
506
  import { AxonFlow } from '@axonflow/sdk';
352
507
 
353
508
  async function planTrip() {
354
- // Initialize client
509
+ // Initialize client with license key
355
510
  const axonflow = new AxonFlow({
356
- apiKey: process.env.AXONFLOW_API_KEY,
511
+ licenseKey: process.env.AXONFLOW_LICENSE_KEY,
357
512
  debug: true
358
513
  });
359
514
 
@@ -381,6 +536,36 @@ async function planTrip() {
381
536
  planTrip().catch(console.error);
382
537
  ```
383
538
 
539
+ ## Migration Guide
540
+
541
+ ### Migrating from API Key to License Key
542
+
543
+ If you're currently using `apiKey` authentication, migrate to license-based authentication:
544
+
545
+ **Before:**
546
+ ```typescript
547
+ const axonflow = new AxonFlow({
548
+ apiKey: process.env.AXONFLOW_API_KEY
549
+ });
550
+ ```
551
+
552
+ **After:**
553
+ ```typescript
554
+ const axonflow = new AxonFlow({
555
+ licenseKey: process.env.AXONFLOW_LICENSE_KEY
556
+ });
557
+ ```
558
+
559
+ **How to get a license key:**
560
+ 1. Contact AxonFlow support at [dev@getaxonflow.com](mailto:dev@getaxonflow.com)
561
+ 2. License keys are provided as part of your AxonFlow subscription
562
+ 3. Store keys securely in environment variables or secrets management systems
563
+
564
+ **Backward Compatibility:**
565
+ - The SDK maintains full backward compatibility with `apiKey`
566
+ - No breaking changes - existing code continues to work
567
+ - You can migrate at your own pace
568
+
384
569
  ## License
385
570
 
386
571
  MIT
@@ -1,4 +1,4 @@
1
- import { AxonFlowConfig, ConnectorMetadata, ConnectorInstallRequest, ConnectorResponse, PlanResponse, PlanExecutionResponse, PreCheckRequest, PolicyApprovalResult, TokenUsage, AuditResult } from './types';
1
+ import { AxonFlowConfig, ConnectorMetadata, ConnectorInstallRequest, ConnectorResponse, PlanResponse, PlanExecutionResponse, PolicyApprovalResult, PolicyApprovalOptions, AuditResult, AuditOptions } from './types';
2
2
  /**
3
3
  * Main AxonFlow client for invisible AI governance
4
4
  */
@@ -46,66 +46,90 @@ export declare class AxonFlow {
46
46
  queryConnector(connectorName: string, query: string, params?: any): Promise<ConnectorResponse>;
47
47
  /**
48
48
  * Generate a multi-agent execution plan from a natural language query
49
+ * @param query - Natural language query describing the task
50
+ * @param domain - Optional domain hint (travel, healthcare, etc.)
51
+ * @param userToken - Optional user token for authentication (defaults to tenant/client_id)
49
52
  */
50
- generatePlan(query: string, domain?: string): Promise<PlanResponse>;
53
+ generatePlan(query: string, domain?: string, userToken?: string): Promise<PlanResponse>;
51
54
  /**
52
55
  * Execute a previously generated multi-agent plan
56
+ * @param planId - ID of the plan to execute
57
+ * @param userToken - Optional user token for authentication (defaults to tenant/client_id)
53
58
  */
54
- executePlan(planId: string): Promise<PlanExecutionResponse>;
59
+ executePlan(planId: string, userToken?: string): Promise<PlanExecutionResponse>;
55
60
  /**
56
61
  * Get the status of a running or completed plan
57
62
  */
58
63
  getPlanStatus(planId: string): Promise<PlanExecutionResponse>;
59
64
  /**
60
- * Perform policy pre-check before making LLM call
61
- *
62
- * This is the first step in Gateway Mode. Call this before making your
63
- * LLM call to ensure policy compliance.
65
+ * Gateway Mode: Pre-check policy approval before making a direct LLM call.
66
+ * Alias for getPolicyApprovedContext() for simpler API.
67
+ */
68
+ preCheck(options: PolicyApprovalOptions): Promise<PolicyApprovalResult>;
69
+ /**
70
+ * Gateway Mode: Get policy-approved context before making a direct LLM call.
64
71
  *
65
- * @param request Pre-check request containing user token, query, and optional data sources
66
- * @returns PolicyApprovalResult with context ID and approved data (if any)
72
+ * Use this when you want to:
73
+ * - Make direct LLM calls (not through AxonFlow proxy)
74
+ * - Have full control over your LLM provider/model selection
75
+ * - Minimize latency by calling LLM directly
67
76
  *
68
77
  * @example
69
- * const result = await axonflow.getPolicyApprovedContext({
70
- * userToken: 'user-jwt-token',
71
- * dataSources: ['postgres', 'salesforce'],
72
- * query: 'Find all patients with recent lab results'
78
+ * ```typescript
79
+ * const ctx = await axonflow.getPolicyApprovedContext({
80
+ * userToken: 'user-jwt',
81
+ * query: 'Analyze this customer data',
82
+ * dataSources: ['postgres']
73
83
  * });
74
84
  *
75
- * if (!result.approved) {
76
- * throw new Error(`Request blocked: ${result.blockReason}`);
85
+ * if (!ctx.approved) {
86
+ * throw new Error(`Blocked: ${ctx.blockReason}`);
77
87
  * }
78
88
  *
79
- * // Use result.approvedData to build your LLM prompt
80
- * const prompt = buildPrompt(result.approvedData);
89
+ * // Make direct LLM call with approved data
90
+ * const response = await openai.chat.completions.create({
91
+ * model: 'gpt-4',
92
+ * messages: [{ role: 'user', content: JSON.stringify(ctx.approvedData) }]
93
+ * });
94
+ *
95
+ * // Audit the call
96
+ * await axonflow.auditLLMCall({
97
+ * contextId: ctx.contextId,
98
+ * responseSummary: response.choices[0].message.content.substring(0, 100),
99
+ * provider: 'openai',
100
+ * model: 'gpt-4',
101
+ * tokenUsage: {
102
+ * promptTokens: response.usage.prompt_tokens,
103
+ * completionTokens: response.usage.completion_tokens,
104
+ * totalTokens: response.usage.total_tokens
105
+ * },
106
+ * latencyMs: 250
107
+ * });
108
+ * ```
81
109
  */
82
- getPolicyApprovedContext(request: PreCheckRequest): Promise<PolicyApprovalResult>;
110
+ getPolicyApprovedContext(options: PolicyApprovalOptions): Promise<PolicyApprovalResult>;
83
111
  /**
84
- * Report LLM call details for audit logging
112
+ * Gateway Mode: Audit an LLM call after completion.
85
113
  *
86
- * This is the second step in Gateway Mode. Call this after making your
87
- * LLM call to record it in the audit trail.
88
- *
89
- * @param contextId Context ID from getPolicyApprovedContext()
90
- * @param responseSummary Brief summary of the LLM response (not full response)
91
- * @param provider LLM provider name
92
- * @param model Model name
93
- * @param tokenUsage Token counts from LLM response
94
- * @param latencyMs Time taken for LLM call in milliseconds
95
- * @param metadata Optional additional metadata
96
- * @returns AuditResult confirming the audit was recorded
114
+ * Call this after making a direct LLM call to log the audit trail.
115
+ * This is required for compliance and monitoring.
97
116
  *
98
117
  * @example
99
- * const result = await axonflow.auditLLMCall(
100
- * ctx.contextId,
101
- * 'Found 5 patients with recent lab results',
102
- * 'openai',
103
- * 'gpt-4',
104
- * { promptTokens: 100, completionTokens: 50, totalTokens: 150 },
105
- * 250,
106
- * { sessionId: 'session-123' }
107
- * );
118
+ * ```typescript
119
+ * await axonflow.auditLLMCall({
120
+ * contextId: ctx.contextId,
121
+ * responseSummary: 'Generated report with 5 items',
122
+ * provider: 'openai',
123
+ * model: 'gpt-4',
124
+ * tokenUsage: {
125
+ * promptTokens: 100,
126
+ * completionTokens: 50,
127
+ * totalTokens: 150
128
+ * },
129
+ * latencyMs: 250
130
+ * });
131
+ * ```
108
132
  */
109
- auditLLMCall(contextId: string, responseSummary: string, provider: string, model: string, tokenUsage: TokenUsage, latencyMs: number, metadata?: Record<string, any>): Promise<AuditResult>;
133
+ auditLLMCall(options: AuditOptions): Promise<AuditResult>;
110
134
  }
111
135
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAId,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAyB;gBAEjC,MAAM,EAAE,cAAc;IAwBlC;;;;OAIG;IACG,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqD5D;;OAEG;YACW,cAAc;IAiB5B;;OAEG;YACW,aAAa;IAuD3B;;OAEG;YACW,QAAQ;IAYtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAE,MAAmB,GAAG,QAAQ;IASrD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAqBpD;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBvE;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0CpG;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA6CzE;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAyCjE;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuDnE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8DvF;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC,WAAW,CAAC;CA4DxB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAId,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACb,MAAM,SAAS,CAAC;AAOjB;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAUZ;IACF,OAAO,CAAC,YAAY,CAAyB;gBAEjC,MAAM,EAAE,cAAc;IAqDlC;;;;OAIG;IACG,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAuD5D;;OAEG;YACW,cAAc;IAiB5B;;OAEG;YACW,aAAa;IAyE3B;;OAEG;YACW,QAAQ;IAYtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAE,MAAmB,GAAG,QAAQ;IASrD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAqBpD;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCvE;;OAEG;IACG,cAAc,CAClB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,iBAAiB,CAAC;IAkD7B;;;;;OAKG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAqD7F;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiDrF;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA+BnE;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACG,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkF7F;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;CAqEhE"}