@mondaydotcomorg/atp-protocol 0.17.14
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 +241 -0
- package/dist/auth.d.ts +173 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +202 -0
- package/dist/auth.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth.d.ts +63 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +5 -0
- package/dist/oauth.js.map +1 -0
- package/dist/providers.d.ts +167 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +33 -0
- package/dist/providers.js.map +1 -0
- package/dist/schemas.d.ts +6 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +51 -0
- package/dist/schemas.js.map +1 -0
- package/dist/types.d.ts +489 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +88 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +76 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +129 -0
- package/dist/validation.js.map +1 -0
- package/package.json +41 -0
- package/src/auth.ts +404 -0
- package/src/index.ts +6 -0
- package/src/oauth.ts +74 -0
- package/src/providers.ts +227 -0
- package/src/schemas.ts +55 -0
- package/src/types.ts +547 -0
- package/src/validation.ts +162 -0
package/dist/oauth.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OAuth and scope checking interfaces for Agent Tool Protocol
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Scope checker interface
|
|
6
|
+
* Checks what OAuth scopes a token has for a given provider
|
|
7
|
+
*/
|
|
8
|
+
export interface ScopeChecker {
|
|
9
|
+
/** Provider name (e.g., 'github', 'google', 'microsoft') */
|
|
10
|
+
provider: string;
|
|
11
|
+
/**
|
|
12
|
+
* Check what scopes a token has
|
|
13
|
+
* @param token - Access token to check
|
|
14
|
+
* @returns Array of scope strings (e.g., ['repo', 'read:user'])
|
|
15
|
+
*/
|
|
16
|
+
check(token: string): Promise<string[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Validate if a token is still valid (optional)
|
|
19
|
+
* @param token - Access token to validate
|
|
20
|
+
* @returns true if valid, false if expired/revoked
|
|
21
|
+
*/
|
|
22
|
+
validate?(token: string): Promise<boolean>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Token information returned by providers
|
|
26
|
+
*/
|
|
27
|
+
export interface TokenInfo {
|
|
28
|
+
/** Whether the token is valid */
|
|
29
|
+
valid: boolean;
|
|
30
|
+
/** OAuth scopes the token has */
|
|
31
|
+
scopes: string[];
|
|
32
|
+
/** Token expiration timestamp (milliseconds since epoch) */
|
|
33
|
+
expiresAt?: number;
|
|
34
|
+
/** User identifier from the provider */
|
|
35
|
+
userId?: string;
|
|
36
|
+
/** Additional provider-specific data */
|
|
37
|
+
metadata?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Scope filtering configuration
|
|
41
|
+
*/
|
|
42
|
+
export interface ScopeFilteringConfig {
|
|
43
|
+
/** Enable scope-based filtering */
|
|
44
|
+
enabled: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Filtering mode:
|
|
47
|
+
* - 'eager': Filter tools at /api/definitions based on user's scopes
|
|
48
|
+
* - 'lazy': Return all tools, validate scopes only at execution time
|
|
49
|
+
*/
|
|
50
|
+
mode: 'eager' | 'lazy';
|
|
51
|
+
/**
|
|
52
|
+
* Cache TTL for scope checks in seconds
|
|
53
|
+
* Default: 3600 (1 hour)
|
|
54
|
+
*/
|
|
55
|
+
cacheTTL?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Fail behavior when scope checker not available for a provider
|
|
58
|
+
* - 'allow': Allow all tools (no filtering)
|
|
59
|
+
* - 'deny': Hide all tools requiring scopes
|
|
60
|
+
*/
|
|
61
|
+
fallback?: 'allow' | 'deny';
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,iCAAiC;IACjC,KAAK,EAAE,OAAO,CAAC;IAEf,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B"}
|
package/dist/oauth.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider interfaces for dependency injection
|
|
3
|
+
* These allow users to inject their own implementations for cache, auth, and audit
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Cache provider interface
|
|
7
|
+
* Allows pluggable caching backends (Memory, Redis, FileSystem, etc.)
|
|
8
|
+
*/
|
|
9
|
+
export interface CacheProvider {
|
|
10
|
+
/** Provider name for identification */
|
|
11
|
+
name: string;
|
|
12
|
+
/** Get a value from cache */
|
|
13
|
+
get<T>(key: string): Promise<T | null>;
|
|
14
|
+
/** Set a value in cache with optional TTL (in seconds) */
|
|
15
|
+
set(key: string, value: unknown, ttl?: number): Promise<void>;
|
|
16
|
+
/** Delete a value from cache */
|
|
17
|
+
delete(key: string): Promise<void>;
|
|
18
|
+
/** Check if a key exists in cache */
|
|
19
|
+
has(key: string): Promise<boolean>;
|
|
20
|
+
/** Clear cache entries matching a pattern (e.g., 'user:*') */
|
|
21
|
+
clear(pattern?: string): Promise<void>;
|
|
22
|
+
/** Get multiple values at once (optional, for performance) */
|
|
23
|
+
mget?(keys: string[]): Promise<Array<unknown | null>>;
|
|
24
|
+
/** Set multiple values at once (optional, for performance) */
|
|
25
|
+
mset?(entries: Array<[string, unknown, number?]>): Promise<void>;
|
|
26
|
+
/** Disconnect/cleanup (optional) */
|
|
27
|
+
disconnect?(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* User credential data stored per provider
|
|
31
|
+
*/
|
|
32
|
+
export interface UserCredentialData {
|
|
33
|
+
/** Access token */
|
|
34
|
+
token: string;
|
|
35
|
+
/** OAuth scopes granted (if applicable) */
|
|
36
|
+
scopes?: string[];
|
|
37
|
+
/** Token expiration timestamp (milliseconds since epoch) */
|
|
38
|
+
expiresAt?: number;
|
|
39
|
+
/** Refresh token for automatic token refresh */
|
|
40
|
+
refreshToken?: string;
|
|
41
|
+
/** Additional provider-specific metadata */
|
|
42
|
+
metadata?: Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Auth provider interface
|
|
46
|
+
* Allows pluggable credential storage (Env vars, AWS Secrets Manager, Vault, etc.)
|
|
47
|
+
*/
|
|
48
|
+
export interface AuthProvider {
|
|
49
|
+
/** Provider name for identification */
|
|
50
|
+
name: string;
|
|
51
|
+
/** Get a credential by key (server-level credentials) */
|
|
52
|
+
getCredential(key: string): Promise<string | null>;
|
|
53
|
+
/** Set a credential (for OAuth tokens, etc.) */
|
|
54
|
+
setCredential(key: string, value: string, ttl?: number): Promise<void>;
|
|
55
|
+
/** Delete a credential */
|
|
56
|
+
deleteCredential(key: string): Promise<void>;
|
|
57
|
+
/** List all credential keys (optional, for admin/debugging) */
|
|
58
|
+
listCredentials?(): Promise<string[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Get user-scoped credential for a specific provider
|
|
61
|
+
* @param userId - User identifier
|
|
62
|
+
* @param provider - Provider name (e.g., 'github', 'google', 'stripe')
|
|
63
|
+
* @returns User credential data or null if not found
|
|
64
|
+
*/
|
|
65
|
+
getUserCredential?(userId: string, provider: string): Promise<UserCredentialData | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Set user-scoped credential for a specific provider
|
|
68
|
+
* @param userId - User identifier
|
|
69
|
+
* @param provider - Provider name
|
|
70
|
+
* @param data - Credential data including token, scopes, etc.
|
|
71
|
+
*/
|
|
72
|
+
setUserCredential?(userId: string, provider: string, data: UserCredentialData): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Delete user's credential for a specific provider
|
|
75
|
+
* @param userId - User identifier
|
|
76
|
+
* @param provider - Provider name
|
|
77
|
+
*/
|
|
78
|
+
deleteUserCredential?(userId: string, provider: string): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* List all providers a user has connected
|
|
81
|
+
* @param userId - User identifier
|
|
82
|
+
* @returns Array of provider names
|
|
83
|
+
*/
|
|
84
|
+
listUserProviders?(userId: string): Promise<string[]>;
|
|
85
|
+
/** Disconnect/cleanup (optional) */
|
|
86
|
+
disconnect?(): Promise<void>;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Audit event structure
|
|
90
|
+
* Comprehensive logging of all operations for security and compliance
|
|
91
|
+
*/
|
|
92
|
+
export interface AuditEvent {
|
|
93
|
+
eventId: string;
|
|
94
|
+
timestamp: number;
|
|
95
|
+
clientId: string;
|
|
96
|
+
userId?: string;
|
|
97
|
+
ipAddress?: string;
|
|
98
|
+
userAgent?: string;
|
|
99
|
+
eventType: 'execution' | 'tool_call' | 'llm_call' | 'approval' | 'auth' | 'error' | 'client_init';
|
|
100
|
+
action: string;
|
|
101
|
+
resource?: string;
|
|
102
|
+
resourceId?: string;
|
|
103
|
+
code?: string;
|
|
104
|
+
toolName?: string;
|
|
105
|
+
apiGroup?: string;
|
|
106
|
+
input?: unknown;
|
|
107
|
+
output?: unknown;
|
|
108
|
+
error?: {
|
|
109
|
+
message: string;
|
|
110
|
+
code?: string;
|
|
111
|
+
stack?: string;
|
|
112
|
+
};
|
|
113
|
+
securityEvents?: string[];
|
|
114
|
+
riskScore?: number;
|
|
115
|
+
annotations?: Record<string, unknown>;
|
|
116
|
+
duration?: number;
|
|
117
|
+
memoryUsed?: number;
|
|
118
|
+
llmCallsCount?: number;
|
|
119
|
+
httpCallsCount?: number;
|
|
120
|
+
status: 'success' | 'failed' | 'timeout' | 'cancelled' | 'paused';
|
|
121
|
+
metadata?: Record<string, unknown>;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Audit filter for querying events
|
|
125
|
+
*/
|
|
126
|
+
export interface AuditFilter {
|
|
127
|
+
clientId?: string;
|
|
128
|
+
userId?: string;
|
|
129
|
+
eventType?: string | string[];
|
|
130
|
+
from?: number;
|
|
131
|
+
to?: number;
|
|
132
|
+
resource?: string;
|
|
133
|
+
status?: string | string[];
|
|
134
|
+
minRiskScore?: number;
|
|
135
|
+
limit?: number;
|
|
136
|
+
offset?: number;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Audit sink interface
|
|
140
|
+
* Allows pluggable audit destinations (JSONL, PostgreSQL, Elasticsearch, S3, etc.)
|
|
141
|
+
*/
|
|
142
|
+
export interface AuditSink {
|
|
143
|
+
/** Sink name for identification */
|
|
144
|
+
name: string;
|
|
145
|
+
/** Write a single audit event */
|
|
146
|
+
write(event: AuditEvent): Promise<void>;
|
|
147
|
+
/** Write multiple audit events (for performance) */
|
|
148
|
+
writeBatch(events: AuditEvent[]): Promise<void>;
|
|
149
|
+
/** Query audit events (optional, for queryable sinks) */
|
|
150
|
+
query?(filter: AuditFilter): Promise<AuditEvent[]>;
|
|
151
|
+
/** Disconnect/cleanup (optional) */
|
|
152
|
+
disconnect?(): Promise<void>;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Multi-sink audit wrapper
|
|
156
|
+
* Allows writing to multiple audit sinks simultaneously
|
|
157
|
+
*/
|
|
158
|
+
export declare class MultiAuditSink implements AuditSink {
|
|
159
|
+
name: string;
|
|
160
|
+
private sinks;
|
|
161
|
+
constructor(sinks: AuditSink[]);
|
|
162
|
+
write(event: AuditEvent): Promise<void>;
|
|
163
|
+
writeBatch(events: AuditEvent[]): Promise<void>;
|
|
164
|
+
query(filter: AuditFilter): Promise<AuditEvent[]>;
|
|
165
|
+
disconnect(): Promise<void>;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider interfaces for dependency injection
|
|
3
|
+
* These allow users to inject their own implementations for cache, auth, and audit
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Multi-sink audit wrapper
|
|
7
|
+
* Allows writing to multiple audit sinks simultaneously
|
|
8
|
+
*/
|
|
9
|
+
export class MultiAuditSink {
|
|
10
|
+
name = 'multi';
|
|
11
|
+
sinks;
|
|
12
|
+
constructor(sinks) {
|
|
13
|
+
this.sinks = sinks;
|
|
14
|
+
}
|
|
15
|
+
async write(event) {
|
|
16
|
+
await Promise.all(this.sinks.map((sink) => sink.write(event)));
|
|
17
|
+
}
|
|
18
|
+
async writeBatch(events) {
|
|
19
|
+
await Promise.all(this.sinks.map((sink) => sink.writeBatch(events)));
|
|
20
|
+
}
|
|
21
|
+
async query(filter) {
|
|
22
|
+
for (const sink of this.sinks) {
|
|
23
|
+
if (sink.query) {
|
|
24
|
+
return await sink.query(filter);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
throw new Error('No queryable audit sink available');
|
|
28
|
+
}
|
|
29
|
+
async disconnect() {
|
|
30
|
+
await Promise.all(this.sinks.map((sink) => (sink.disconnect ? sink.disconnect() : Promise.resolve())));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6LH;;;GAGG;AACH,MAAM,OAAO,cAAc;IAC1B,IAAI,GAAG,OAAO,CAAC;IACP,KAAK,CAAc;IAE3B,YAAY,KAAkB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAiB;QAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAoB;QACpC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CACnF,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { JSONSchema } from './types.js';
|
|
2
|
+
export declare const ExecutionConfigSchema: JSONSchema;
|
|
3
|
+
export declare const SearchOptionsSchema: JSONSchema;
|
|
4
|
+
export declare const AgentToolProtocolRequestSchema: JSONSchema;
|
|
5
|
+
export declare const AgentToolProtocolResponseSchema: JSONSchema;
|
|
6
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,qBAAqB,EAAE,UAUnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,UAUjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,UAS5C,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,UAiB7C,CAAC"}
|
package/dist/schemas.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export const ExecutionConfigSchema = {
|
|
2
|
+
type: 'object',
|
|
3
|
+
properties: {
|
|
4
|
+
timeout: { type: 'number', minimum: 1000, maximum: 300000 },
|
|
5
|
+
maxMemory: { type: 'number', minimum: 1048576, maximum: 536870912 },
|
|
6
|
+
maxLLMCalls: { type: 'number', minimum: 0, maximum: 100 },
|
|
7
|
+
allowedAPIs: { type: 'array', items: { type: 'string' } },
|
|
8
|
+
allowLLMCalls: { type: 'boolean' },
|
|
9
|
+
},
|
|
10
|
+
required: ['timeout', 'maxMemory', 'maxLLMCalls', 'allowedAPIs', 'allowLLMCalls'],
|
|
11
|
+
};
|
|
12
|
+
export const SearchOptionsSchema = {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
query: { type: 'string', minLength: 1 },
|
|
16
|
+
apiGroups: { type: 'array', items: { type: 'string' } },
|
|
17
|
+
maxResults: { type: 'number', minimum: 1, maximum: 100 },
|
|
18
|
+
useEmbeddings: { type: 'boolean' },
|
|
19
|
+
embeddingModel: { type: 'string' },
|
|
20
|
+
},
|
|
21
|
+
required: ['query'],
|
|
22
|
+
};
|
|
23
|
+
export const AgentToolProtocolRequestSchema = {
|
|
24
|
+
type: 'object',
|
|
25
|
+
properties: {
|
|
26
|
+
jsonrpc: { type: 'string', enum: ['2.0'] },
|
|
27
|
+
id: { type: ['string', 'number'] },
|
|
28
|
+
method: { type: 'string' },
|
|
29
|
+
params: { type: 'object' },
|
|
30
|
+
},
|
|
31
|
+
required: ['jsonrpc', 'id', 'method', 'params'],
|
|
32
|
+
};
|
|
33
|
+
export const AgentToolProtocolResponseSchema = {
|
|
34
|
+
type: 'object',
|
|
35
|
+
properties: {
|
|
36
|
+
jsonrpc: { type: 'string', enum: ['2.0'] },
|
|
37
|
+
id: { type: ['string', 'number'] },
|
|
38
|
+
result: {},
|
|
39
|
+
error: {
|
|
40
|
+
type: 'object',
|
|
41
|
+
properties: {
|
|
42
|
+
code: { type: 'number' },
|
|
43
|
+
message: { type: 'string' },
|
|
44
|
+
data: {},
|
|
45
|
+
},
|
|
46
|
+
required: ['code', 'message'],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
required: ['jsonrpc', 'id'],
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAe;IAChD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;QACnE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;QACzD,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACzD,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAClC;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC;CACjF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC9C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACvC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACvD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;QACxD,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAClC;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAe;IACzD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;QAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QAClC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAe;IAC1D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;QAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QAClC,MAAM,EAAE,EAAE;QACV,KAAK,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACX,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3B,IAAI,EAAE,EAAE;aACR;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAC7B;KACD;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC;CAC3B,CAAC"}
|