@customer-support-success/pylon-mcp-server 1.5.2 → 1.7.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/.env.example +6 -1
- package/CHANGELOG.md +10 -8
- package/CLAUDE.md +18 -2
- package/GCP_SETUP.md +26 -91
- package/README.md +38 -31
- package/SECURITY_AUDIT_REPORT.md +1 -1
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -1
- package/dist/pylon-client.d.ts +71 -0
- package/dist/pylon-client.d.ts.map +1 -1
- package/dist/pylon-client.js +232 -32
- package/dist/pylon-client.js.map +1 -1
- package/package.json +1 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/coverage-final.json +0 -2
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -116
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/pylon-client.ts.html +0 -1093
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
package/dist/pylon-client.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
export interface PylonConfig {
|
|
2
2
|
apiToken: string;
|
|
3
3
|
baseUrl?: string;
|
|
4
|
+
/**
|
|
5
|
+
* Cache TTL in milliseconds. Set to 0 to disable caching.
|
|
6
|
+
* Default: 30000 (30 seconds)
|
|
7
|
+
*/
|
|
8
|
+
cacheTtl?: number;
|
|
9
|
+
/**
|
|
10
|
+
* Maximum number of entries in the cache. When exceeded, least recently used entries are evicted.
|
|
11
|
+
* Default: 1000
|
|
12
|
+
*/
|
|
13
|
+
maxCacheSize?: number;
|
|
4
14
|
}
|
|
5
15
|
export interface PylonUser {
|
|
6
16
|
id: string;
|
|
@@ -21,6 +31,12 @@ export interface PylonIssue {
|
|
|
21
31
|
status: string;
|
|
22
32
|
priority: string;
|
|
23
33
|
assignee?: string;
|
|
34
|
+
/** The ID of the contact who created the issue */
|
|
35
|
+
requestor_id?: string;
|
|
36
|
+
/** The ID of the account the requestor belongs to */
|
|
37
|
+
account_id?: string;
|
|
38
|
+
/** The HTML body content of the issue */
|
|
39
|
+
body_html?: string;
|
|
24
40
|
}
|
|
25
41
|
export interface PylonKnowledgeBase {
|
|
26
42
|
id: string;
|
|
@@ -78,7 +94,29 @@ export interface PylonWebhook {
|
|
|
78
94
|
}
|
|
79
95
|
export declare class PylonClient {
|
|
80
96
|
private client;
|
|
97
|
+
private cache;
|
|
81
98
|
constructor(config: PylonConfig);
|
|
99
|
+
/**
|
|
100
|
+
* Helper method to perform cached GET requests
|
|
101
|
+
*/
|
|
102
|
+
private cachedGet;
|
|
103
|
+
/**
|
|
104
|
+
* Clear the cache (useful for testing or manual cache invalidation)
|
|
105
|
+
*/
|
|
106
|
+
clearCache(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Get cache statistics
|
|
109
|
+
*/
|
|
110
|
+
getCacheStats(): {
|
|
111
|
+
size: number;
|
|
112
|
+
ttl: number;
|
|
113
|
+
maxSize: number;
|
|
114
|
+
} | null;
|
|
115
|
+
/**
|
|
116
|
+
* Cleanup resources (stop cache cleanup interval)
|
|
117
|
+
* Call this when you're done with the client to prevent memory leaks
|
|
118
|
+
*/
|
|
119
|
+
destroy(): void;
|
|
82
120
|
getMe(): Promise<PylonUser>;
|
|
83
121
|
getContacts(params?: {
|
|
84
122
|
search?: string;
|
|
@@ -106,6 +144,39 @@ export declare class PylonClient {
|
|
|
106
144
|
getIssue(issueId: string): Promise<PylonIssue>;
|
|
107
145
|
updateIssue(issueId: string, updates: Partial<PylonIssue>): Promise<PylonIssue>;
|
|
108
146
|
snoozeIssue(issueId: string, until: string): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Find similar issues from the same requestor (contact).
|
|
149
|
+
* Helps identify patterns or recurring issues from a specific customer.
|
|
150
|
+
*/
|
|
151
|
+
findSimilarIssuesForRequestor(issueId: string, options?: {
|
|
152
|
+
query?: string;
|
|
153
|
+
limit?: number;
|
|
154
|
+
}): Promise<{
|
|
155
|
+
sourceIssue: PylonIssue;
|
|
156
|
+
similarIssues: PylonIssue[];
|
|
157
|
+
}>;
|
|
158
|
+
/**
|
|
159
|
+
* Find similar issues from the same account/company.
|
|
160
|
+
* Helps identify company-wide issues or patterns.
|
|
161
|
+
*/
|
|
162
|
+
findSimilarIssuesForAccount(issueId: string, options?: {
|
|
163
|
+
query?: string;
|
|
164
|
+
limit?: number;
|
|
165
|
+
}): Promise<{
|
|
166
|
+
sourceIssue: PylonIssue;
|
|
167
|
+
similarIssues: PylonIssue[];
|
|
168
|
+
}>;
|
|
169
|
+
/**
|
|
170
|
+
* Find similar issues across all users and companies.
|
|
171
|
+
* Helps identify widespread issues or find solutions from past tickets.
|
|
172
|
+
*/
|
|
173
|
+
findSimilarIssuesGlobal(issueId: string, options?: {
|
|
174
|
+
query?: string;
|
|
175
|
+
limit?: number;
|
|
176
|
+
}): Promise<{
|
|
177
|
+
sourceIssue: PylonIssue;
|
|
178
|
+
similarIssues: PylonIssue[];
|
|
179
|
+
}>;
|
|
109
180
|
getIssueMessages(issueId: string): Promise<PylonMessage[]>;
|
|
110
181
|
createIssueMessage(issueId: string, content: string): Promise<PylonMessage>;
|
|
111
182
|
getIssueWithMessages(issueId: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pylon-client.d.ts","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pylon-client.d.ts","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"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"}
|
package/dist/pylon-client.js
CHANGED
|
@@ -1,6 +1,111 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
/**
|
|
3
|
+
* Simple in-memory cache with TTL support and LRU eviction
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - TTL-based expiration
|
|
7
|
+
* - LRU (Least Recently Used) eviction when max size is reached
|
|
8
|
+
* - Proactive cleanup of expired entries
|
|
9
|
+
* - Bounded memory usage
|
|
10
|
+
*/
|
|
11
|
+
class SimpleCache {
|
|
12
|
+
cache = new Map();
|
|
13
|
+
ttl;
|
|
14
|
+
maxSize;
|
|
15
|
+
cleanupInterval = null;
|
|
16
|
+
constructor(ttlMs = 30000, maxSize = 1000) {
|
|
17
|
+
this.ttl = ttlMs;
|
|
18
|
+
this.maxSize = maxSize;
|
|
19
|
+
// Start periodic cleanup of expired entries (every 60 seconds)
|
|
20
|
+
this.cleanupInterval = setInterval(() => {
|
|
21
|
+
this.cleanupExpired();
|
|
22
|
+
}, 60000);
|
|
23
|
+
}
|
|
24
|
+
get(key) {
|
|
25
|
+
const entry = this.cache.get(key);
|
|
26
|
+
if (!entry) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const now = Date.now();
|
|
30
|
+
if (now - entry.timestamp > this.ttl) {
|
|
31
|
+
// Entry expired
|
|
32
|
+
this.cache.delete(key);
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
// Update last accessed time for LRU tracking
|
|
36
|
+
entry.lastAccessed = now;
|
|
37
|
+
return entry.data;
|
|
38
|
+
}
|
|
39
|
+
set(key, data) {
|
|
40
|
+
const now = Date.now();
|
|
41
|
+
// If cache is at max size and key doesn't exist, evict LRU entry
|
|
42
|
+
if (this.cache.size >= this.maxSize && !this.cache.has(key)) {
|
|
43
|
+
this.evictLRU();
|
|
44
|
+
}
|
|
45
|
+
this.cache.set(key, {
|
|
46
|
+
data,
|
|
47
|
+
timestamp: now,
|
|
48
|
+
lastAccessed: now,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
clear() {
|
|
52
|
+
this.cache.clear();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Evict the least recently used entry
|
|
56
|
+
*/
|
|
57
|
+
evictLRU() {
|
|
58
|
+
let oldestKey = null;
|
|
59
|
+
let oldestTime = Infinity;
|
|
60
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
61
|
+
if (entry.lastAccessed < oldestTime) {
|
|
62
|
+
oldestTime = entry.lastAccessed;
|
|
63
|
+
oldestKey = key;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (oldestKey) {
|
|
67
|
+
this.cache.delete(oldestKey);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Remove all expired entries from the cache
|
|
72
|
+
*/
|
|
73
|
+
cleanupExpired() {
|
|
74
|
+
const now = Date.now();
|
|
75
|
+
const keysToDelete = [];
|
|
76
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
77
|
+
if (now - entry.timestamp > this.ttl) {
|
|
78
|
+
keysToDelete.push(key);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
for (const key of keysToDelete) {
|
|
82
|
+
this.cache.delete(key);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get cache statistics for monitoring
|
|
87
|
+
*/
|
|
88
|
+
getStats() {
|
|
89
|
+
return {
|
|
90
|
+
size: this.cache.size,
|
|
91
|
+
ttl: this.ttl,
|
|
92
|
+
maxSize: this.maxSize,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Cleanup resources (stop cleanup interval)
|
|
97
|
+
*/
|
|
98
|
+
destroy() {
|
|
99
|
+
if (this.cleanupInterval) {
|
|
100
|
+
clearInterval(this.cleanupInterval);
|
|
101
|
+
this.cleanupInterval = null;
|
|
102
|
+
}
|
|
103
|
+
this.clear();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
2
106
|
export class PylonClient {
|
|
3
107
|
client;
|
|
108
|
+
cache;
|
|
4
109
|
constructor(config) {
|
|
5
110
|
const baseUrl = config.baseUrl || process.env.PYLON_BASE_URL || 'https://api.usepylon.com';
|
|
6
111
|
this.client = axios.create({
|
|
@@ -10,34 +115,78 @@ export class PylonClient {
|
|
|
10
115
|
'Content-Type': 'application/json',
|
|
11
116
|
},
|
|
12
117
|
});
|
|
118
|
+
// Initialize cache if TTL is provided and > 0
|
|
119
|
+
const cacheTtl = config.cacheTtl ?? 30000; // Default 30 seconds
|
|
120
|
+
const maxCacheSize = config.maxCacheSize ?? 1000; // Default 1000 entries
|
|
121
|
+
this.cache = cacheTtl > 0 ? new SimpleCache(cacheTtl, maxCacheSize) : null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Helper method to perform cached GET requests
|
|
125
|
+
*/
|
|
126
|
+
async cachedGet(url, params) {
|
|
127
|
+
// Generate cache key from URL and params
|
|
128
|
+
const cacheKey = `GET:${url}:${JSON.stringify(params || {})}`;
|
|
129
|
+
// Check cache if enabled
|
|
130
|
+
if (this.cache) {
|
|
131
|
+
const cached = this.cache.get(cacheKey);
|
|
132
|
+
if (cached !== null) {
|
|
133
|
+
return cached;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Make the actual request
|
|
137
|
+
const response = await this.client.get(url, { params });
|
|
138
|
+
const data = response.data;
|
|
139
|
+
// Store in cache if enabled
|
|
140
|
+
if (this.cache) {
|
|
141
|
+
this.cache.set(cacheKey, data);
|
|
142
|
+
}
|
|
143
|
+
return data;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Clear the cache (useful for testing or manual cache invalidation)
|
|
147
|
+
*/
|
|
148
|
+
clearCache() {
|
|
149
|
+
if (this.cache) {
|
|
150
|
+
this.cache.clear();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get cache statistics
|
|
155
|
+
*/
|
|
156
|
+
getCacheStats() {
|
|
157
|
+
return this.cache ? this.cache.getStats() : null;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Cleanup resources (stop cache cleanup interval)
|
|
161
|
+
* Call this when you're done with the client to prevent memory leaks
|
|
162
|
+
*/
|
|
163
|
+
destroy() {
|
|
164
|
+
if (this.cache) {
|
|
165
|
+
this.cache.destroy();
|
|
166
|
+
}
|
|
13
167
|
}
|
|
14
168
|
async getMe() {
|
|
15
|
-
|
|
16
|
-
return response.data;
|
|
169
|
+
return this.cachedGet('/me');
|
|
17
170
|
}
|
|
18
171
|
async getContacts(params) {
|
|
19
|
-
|
|
20
|
-
return response.data;
|
|
172
|
+
return this.cachedGet('/contacts', params);
|
|
21
173
|
}
|
|
22
174
|
async createContact(contact) {
|
|
23
175
|
const response = await this.client.post('/contacts', contact);
|
|
24
176
|
return response.data;
|
|
25
177
|
}
|
|
26
178
|
async getIssues(params) {
|
|
27
|
-
|
|
28
|
-
return response.data;
|
|
179
|
+
return this.cachedGet('/issues', params);
|
|
29
180
|
}
|
|
30
181
|
async createIssue(issue) {
|
|
31
182
|
const response = await this.client.post('/issues', issue);
|
|
32
183
|
return response.data;
|
|
33
184
|
}
|
|
34
185
|
async getKnowledgeBases() {
|
|
35
|
-
|
|
36
|
-
return response.data;
|
|
186
|
+
return this.cachedGet('/knowledge-bases');
|
|
37
187
|
}
|
|
38
188
|
async getKnowledgeBaseArticles(knowledgeBaseId) {
|
|
39
|
-
|
|
40
|
-
return response.data;
|
|
189
|
+
return this.cachedGet(`/knowledge-bases/${knowledgeBaseId}/articles`);
|
|
41
190
|
}
|
|
42
191
|
async createKnowledgeBaseArticle(knowledgeBaseId, article) {
|
|
43
192
|
const response = await this.client.post(`/knowledge-bases/${knowledgeBaseId}/articles`, article);
|
|
@@ -45,12 +194,10 @@ export class PylonClient {
|
|
|
45
194
|
}
|
|
46
195
|
// Teams API
|
|
47
196
|
async getTeams() {
|
|
48
|
-
|
|
49
|
-
return response.data;
|
|
197
|
+
return this.cachedGet('/teams');
|
|
50
198
|
}
|
|
51
199
|
async getTeam(teamId) {
|
|
52
|
-
|
|
53
|
-
return response.data;
|
|
200
|
+
return this.cachedGet(`/teams/${teamId}`);
|
|
54
201
|
}
|
|
55
202
|
async createTeam(team) {
|
|
56
203
|
const response = await this.client.post('/teams', team);
|
|
@@ -58,12 +205,10 @@ export class PylonClient {
|
|
|
58
205
|
}
|
|
59
206
|
// Accounts API
|
|
60
207
|
async getAccounts() {
|
|
61
|
-
|
|
62
|
-
return response.data;
|
|
208
|
+
return this.cachedGet('/accounts');
|
|
63
209
|
}
|
|
64
210
|
async getAccount(accountId) {
|
|
65
|
-
|
|
66
|
-
return response.data;
|
|
211
|
+
return this.cachedGet(`/accounts/${accountId}`);
|
|
67
212
|
}
|
|
68
213
|
// Users API (search)
|
|
69
214
|
async searchUsers(query) {
|
|
@@ -71,8 +216,7 @@ export class PylonClient {
|
|
|
71
216
|
return response.data;
|
|
72
217
|
}
|
|
73
218
|
async getUsers() {
|
|
74
|
-
|
|
75
|
-
return response.data;
|
|
219
|
+
return this.cachedGet('/users');
|
|
76
220
|
}
|
|
77
221
|
// Contacts API (search)
|
|
78
222
|
async searchContacts(query) {
|
|
@@ -90,8 +234,7 @@ export class PylonClient {
|
|
|
90
234
|
return response.data;
|
|
91
235
|
}
|
|
92
236
|
async getIssue(issueId) {
|
|
93
|
-
|
|
94
|
-
return response.data;
|
|
237
|
+
return this.cachedGet(`/issues/${issueId}`);
|
|
95
238
|
}
|
|
96
239
|
async updateIssue(issueId, updates) {
|
|
97
240
|
const response = await this.client.patch(`/issues/${issueId}`, updates);
|
|
@@ -100,10 +243,71 @@ export class PylonClient {
|
|
|
100
243
|
async snoozeIssue(issueId, until) {
|
|
101
244
|
await this.client.post(`/issues/${issueId}/snooze`, { until });
|
|
102
245
|
}
|
|
246
|
+
// Similar Issues Helper Methods
|
|
247
|
+
/**
|
|
248
|
+
* Find similar issues from the same requestor (contact).
|
|
249
|
+
* Helps identify patterns or recurring issues from a specific customer.
|
|
250
|
+
*/
|
|
251
|
+
async findSimilarIssuesForRequestor(issueId, options) {
|
|
252
|
+
const sourceIssue = await this.getIssue(issueId);
|
|
253
|
+
if (!sourceIssue.requestor_id) {
|
|
254
|
+
return { sourceIssue, similarIssues: [] };
|
|
255
|
+
}
|
|
256
|
+
// Build search query from title or provided query
|
|
257
|
+
const searchQuery = options?.query || sourceIssue.title;
|
|
258
|
+
const filters = {
|
|
259
|
+
requestor_id: sourceIssue.requestor_id,
|
|
260
|
+
};
|
|
261
|
+
if (options?.limit) {
|
|
262
|
+
filters.limit = options.limit;
|
|
263
|
+
}
|
|
264
|
+
const results = await this.searchIssues(searchQuery, filters);
|
|
265
|
+
// Exclude the source issue from results
|
|
266
|
+
const similarIssues = results.filter((issue) => issue.id !== issueId);
|
|
267
|
+
return { sourceIssue, similarIssues };
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Find similar issues from the same account/company.
|
|
271
|
+
* Helps identify company-wide issues or patterns.
|
|
272
|
+
*/
|
|
273
|
+
async findSimilarIssuesForAccount(issueId, options) {
|
|
274
|
+
const sourceIssue = await this.getIssue(issueId);
|
|
275
|
+
if (!sourceIssue.account_id) {
|
|
276
|
+
return { sourceIssue, similarIssues: [] };
|
|
277
|
+
}
|
|
278
|
+
// Build search query from title or provided query
|
|
279
|
+
const searchQuery = options?.query || sourceIssue.title;
|
|
280
|
+
const filters = {
|
|
281
|
+
account_id: sourceIssue.account_id,
|
|
282
|
+
};
|
|
283
|
+
if (options?.limit) {
|
|
284
|
+
filters.limit = options.limit;
|
|
285
|
+
}
|
|
286
|
+
const results = await this.searchIssues(searchQuery, filters);
|
|
287
|
+
// Exclude the source issue from results
|
|
288
|
+
const similarIssues = results.filter((issue) => issue.id !== issueId);
|
|
289
|
+
return { sourceIssue, similarIssues };
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Find similar issues across all users and companies.
|
|
293
|
+
* Helps identify widespread issues or find solutions from past tickets.
|
|
294
|
+
*/
|
|
295
|
+
async findSimilarIssuesGlobal(issueId, options) {
|
|
296
|
+
const sourceIssue = await this.getIssue(issueId);
|
|
297
|
+
// Build search query from title or provided query
|
|
298
|
+
const searchQuery = options?.query || sourceIssue.title;
|
|
299
|
+
const filters = {};
|
|
300
|
+
if (options?.limit) {
|
|
301
|
+
filters.limit = options.limit;
|
|
302
|
+
}
|
|
303
|
+
const results = await this.searchIssues(searchQuery, Object.keys(filters).length > 0 ? filters : undefined);
|
|
304
|
+
// Exclude the source issue from results
|
|
305
|
+
const similarIssues = results.filter((issue) => issue.id !== issueId);
|
|
306
|
+
return { sourceIssue, similarIssues };
|
|
307
|
+
}
|
|
103
308
|
// Messages API
|
|
104
309
|
async getIssueMessages(issueId) {
|
|
105
|
-
|
|
106
|
-
return response.data;
|
|
310
|
+
return this.cachedGet(`/issues/${issueId}/messages`);
|
|
107
311
|
}
|
|
108
312
|
async createIssueMessage(issueId, content) {
|
|
109
313
|
const response = await this.client.post(`/issues/${issueId}/messages`, { content });
|
|
@@ -119,8 +323,7 @@ export class PylonClient {
|
|
|
119
323
|
}
|
|
120
324
|
// Tags API
|
|
121
325
|
async getTags() {
|
|
122
|
-
|
|
123
|
-
return response.data;
|
|
326
|
+
return this.cachedGet('/tags');
|
|
124
327
|
}
|
|
125
328
|
async createTag(tag) {
|
|
126
329
|
const response = await this.client.post('/tags', tag);
|
|
@@ -128,8 +331,7 @@ export class PylonClient {
|
|
|
128
331
|
}
|
|
129
332
|
// Ticket Forms API
|
|
130
333
|
async getTicketForms() {
|
|
131
|
-
|
|
132
|
-
return response.data;
|
|
334
|
+
return this.cachedGet('/ticket-forms');
|
|
133
335
|
}
|
|
134
336
|
async createTicketForm(form) {
|
|
135
337
|
const response = await this.client.post('/ticket-forms', form);
|
|
@@ -137,8 +339,7 @@ export class PylonClient {
|
|
|
137
339
|
}
|
|
138
340
|
// Webhooks API
|
|
139
341
|
async getWebhooks() {
|
|
140
|
-
|
|
141
|
-
return response.data;
|
|
342
|
+
return this.cachedGet('/webhooks');
|
|
142
343
|
}
|
|
143
344
|
async createWebhook(webhook) {
|
|
144
345
|
const response = await this.client.post('/webhooks', webhook);
|
|
@@ -149,8 +350,7 @@ export class PylonClient {
|
|
|
149
350
|
}
|
|
150
351
|
// Attachments API
|
|
151
352
|
async getAttachment(attachmentId) {
|
|
152
|
-
|
|
153
|
-
return response.data;
|
|
353
|
+
return this.cachedGet(`/attachments/${attachmentId}`);
|
|
154
354
|
}
|
|
155
355
|
async createAttachment(file, description) {
|
|
156
356
|
const formData = new FormData();
|
package/dist/pylon-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pylon-client.js","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pylon-client.js","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,WAAW;IACP,KAAK,GAAwE,IAAI,GAAG,EAAE,CAAC;IACvF,GAAG,CAAS;IACZ,OAAO,CAAS;IAChB,eAAe,GAA0B,IAAI,CAAC;IAEtD,YAAY,QAAgB,KAAK,EAAE,UAAkB,IAAI;QACvD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,+DAA+D;QAC/D,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,gBAAgB;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,IAAS;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,iEAAiE;QACjE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI;YACJ,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,GAAG;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,UAAU,GAAG,QAAQ,CAAC;QAE1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,YAAY,GAAG,UAAU,EAAE,CAAC;gBACpC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC;gBAChC,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACF;AA6GD,MAAM,OAAO,WAAW;IACd,MAAM,CAAgB;IACtB,KAAK,CAAqB;IAElC,YAAY,MAAmB;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,0BAA0B,CAAC;QAE3F,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,CAAC,QAAQ,EAAE;gBAC1C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,qBAAqB;QAChE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,uBAAuB;QACzE,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CAAI,GAAW,EAAE,MAAY;QAClD,yCAAyC;QACzC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAE9D,yBAAyB;QACzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE3B,4BAA4B;QAC5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,SAAS,CAAY,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAA4C;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAiB,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAiC;QACnD,MAAM,QAAQ,GAAgC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAIf;QACC,OAAO,IAAI,CAAC,SAAS,CAAe,SAAS,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC7C,MAAM,QAAQ,GAA8B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,SAAS,CAAuB,kBAAkB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,eAAuB;QACpD,OAAO,IAAI,CAAC,SAAS,CAAiB,oBAAoB,eAAe,WAAW,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,eAAuB,EACvB,OAAuD;QAEvD,MAAM,QAAQ,GAAgC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAClE,oBAAoB,eAAe,WAAW,EAC9C,OAAO,CACR,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,SAAS,CAAc,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAY,UAAU,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAA2B;QAC1C,MAAM,QAAQ,GAA6B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,eAAe;IACf,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,SAAS,CAAiB,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAe,aAAa,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,qBAAqB;IACrB,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,QAAQ,GAA+B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,SAAS,CAAc,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,MAAM,QAAQ,GAAkC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACzF,KAAK;SACN,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,OAAa;QAC7C,MAAM,QAAQ,GAAgC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACrF,KAAK;YACL,GAAG,OAAO;SACX,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAa,WAAW,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAA4B;QAC7D,MAAM,QAAQ,GAA8B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACjE,WAAW,OAAO,EAAE,EACpB,OAAO,CACR,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,KAAa;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,gCAAgC;IAEhC;;;OAGG;IACH,KAAK,CAAC,6BAA6B,CACjC,OAAe,EACf,OAA4C;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QAC5C,CAAC;QAED,kDAAkD;QAClD,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;QAExD,MAAM,OAAO,GAA4B;YACvC,YAAY,EAAE,WAAW,CAAC,YAAY;SACvC,CAAC;QACF,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE9D,wCAAwC;QACxC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAEtE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,2BAA2B,CAC/B,OAAe,EACf,OAA4C;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAC5B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QAC5C,CAAC;QAED,kDAAkD;QAClD,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;QAExD,MAAM,OAAO,GAA4B;YACvC,UAAU,EAAE,WAAW,CAAC,UAAU;SACnC,CAAC;QACF,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE9D,wCAAwC;QACxC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAEtE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAe,EACf,OAA4C;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,kDAAkD;QAClD,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;QAExD,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC,WAAW,EACX,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CACtD,CAAC;QAEF,wCAAwC;QACxC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAEtE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,eAAe;IACf,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,OAAO,IAAI,CAAC,SAAS,CAAiB,WAAW,OAAO,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe,EAAE,OAAe;QACvD,MAAM,QAAQ,GAAgC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAClE,WAAW,OAAO,WAAW,EAC7B,EAAE,OAAO,EAAE,CACZ,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,oBAAoB,CACxB,OAAe;QAEf,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACtB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;SAC/B,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,WAAW;IACX,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,SAAS,CAAa,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAyB;QACvC,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,mBAAmB;IACnB,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,SAAS,CAAoB,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAiC;QACtD,MAAM,QAAQ,GAAmC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,eAAe;IACf,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,SAAS,CAAiB,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAiC;QACnD,MAAM,QAAQ,GAAgC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,aAAa,CAAC,YAAoB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAkB,gBAAgB,YAAY,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAiB,EAAE,WAAoB;QAC5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,QAAQ,GAA6C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC/E,cAAc,EACd,QAAQ,EACR;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,qBAAqB;aACtC;SACF,CACF,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAe,EAAE,WAAoB;QACjE,MAAM,OAAO,GAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAA6C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC/E,cAAc,EACd,OAAO,CACR,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF"}
|