@appconda/sdk 1.0.436 → 1.0.438
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/dist/EmploidClient.d.ts +52 -0
- package/dist/EmploidClient.js +78 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/modules/emploid/service.js +5 -5
- package/package.json +1 -1
- package/src/EmploidClient.ts +149 -0
- package/src/index.ts +1 -1
- package/src/modules/emploid/service.ts +4 -4
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export interface PredictionData {
|
|
2
|
+
chatflowId: string;
|
|
3
|
+
question: string;
|
|
4
|
+
overrideConfig?: Record<string, any>;
|
|
5
|
+
chatId?: string;
|
|
6
|
+
streaming?: boolean;
|
|
7
|
+
history?: IMessage[];
|
|
8
|
+
uploads?: IFileUpload[];
|
|
9
|
+
leadEmail?: string;
|
|
10
|
+
action?: IAction;
|
|
11
|
+
}
|
|
12
|
+
interface IAction {
|
|
13
|
+
id?: string;
|
|
14
|
+
elements?: Array<{
|
|
15
|
+
type: string;
|
|
16
|
+
label: string;
|
|
17
|
+
}>;
|
|
18
|
+
mapping?: {
|
|
19
|
+
approve: string;
|
|
20
|
+
reject: string;
|
|
21
|
+
toolCalls: any[];
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
interface IFileUpload {
|
|
25
|
+
data?: string;
|
|
26
|
+
type: string;
|
|
27
|
+
name: string;
|
|
28
|
+
mime: string;
|
|
29
|
+
}
|
|
30
|
+
interface IMessage {
|
|
31
|
+
message: string;
|
|
32
|
+
type: MessageType;
|
|
33
|
+
role?: MessageType;
|
|
34
|
+
content?: string;
|
|
35
|
+
}
|
|
36
|
+
type MessageType = 'apiMessage' | 'userMessage';
|
|
37
|
+
export interface StreamResponse {
|
|
38
|
+
event: string;
|
|
39
|
+
data: string;
|
|
40
|
+
}
|
|
41
|
+
interface EmploidClientOptions {
|
|
42
|
+
baseUrl?: string;
|
|
43
|
+
apiKey?: string;
|
|
44
|
+
}
|
|
45
|
+
type PredictionResponse<T extends PredictionData> = T['streaming'] extends true ? AsyncGenerator<StreamResponse, void, unknown> : Record<string, any>;
|
|
46
|
+
export default class EmploidClient {
|
|
47
|
+
private baseUrl;
|
|
48
|
+
private apiKey;
|
|
49
|
+
constructor(options?: EmploidClientOptions);
|
|
50
|
+
createPrediction<T extends PredictionData>(data: T): Promise<PredictionResponse<T>>;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
export default class EmploidClient {
|
|
2
|
+
constructor(options = {}) {
|
|
3
|
+
this.baseUrl = options.baseUrl || 'http://localhost:3000';
|
|
4
|
+
this.apiKey = options.apiKey || '';
|
|
5
|
+
}
|
|
6
|
+
// Method to create a new prediction and handle streaming response
|
|
7
|
+
async createPrediction(data) {
|
|
8
|
+
const { chatflowId, streaming } = data;
|
|
9
|
+
// Check if chatflow is available to stream
|
|
10
|
+
const chatFlowStreamingUrl = `${this.baseUrl}/api/v1/chatflows-streaming/${chatflowId}`;
|
|
11
|
+
const resp = await fetch(chatFlowStreamingUrl, {
|
|
12
|
+
method: 'GET',
|
|
13
|
+
headers: {
|
|
14
|
+
'Content-Type': 'application/json',
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
const chatFlowStreamingData = await resp.json();
|
|
18
|
+
const isChatFlowAvailableToStream = chatFlowStreamingData.isStreaming || false;
|
|
19
|
+
const predictionUrl = `${this.baseUrl}/api/v1/prediction/${chatflowId}`;
|
|
20
|
+
const options = {
|
|
21
|
+
method: 'POST',
|
|
22
|
+
headers: {
|
|
23
|
+
'Content-Type': 'application/json',
|
|
24
|
+
},
|
|
25
|
+
body: JSON.stringify(data),
|
|
26
|
+
};
|
|
27
|
+
if (this.apiKey) {
|
|
28
|
+
options.headers['Authorization'] = `Bearer ${this.apiKey}`;
|
|
29
|
+
}
|
|
30
|
+
if (isChatFlowAvailableToStream && streaming) {
|
|
31
|
+
return {
|
|
32
|
+
async *[Symbol.asyncIterator]() {
|
|
33
|
+
const response = await fetch(predictionUrl, options);
|
|
34
|
+
if (!response.ok) {
|
|
35
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
36
|
+
}
|
|
37
|
+
//@ts-ignore
|
|
38
|
+
const reader = response.body.getReader();
|
|
39
|
+
const decoder = new TextDecoder();
|
|
40
|
+
let buffer = '';
|
|
41
|
+
try {
|
|
42
|
+
while (true) {
|
|
43
|
+
const { done, value } = await reader.read();
|
|
44
|
+
if (done)
|
|
45
|
+
break;
|
|
46
|
+
buffer += decoder.decode(value, { stream: true });
|
|
47
|
+
const lines = buffer.split('\n');
|
|
48
|
+
buffer = lines.pop() || '';
|
|
49
|
+
for (const line of lines) {
|
|
50
|
+
if (line.trim() === '')
|
|
51
|
+
continue;
|
|
52
|
+
if (line.startsWith('data:')) {
|
|
53
|
+
const stringifiedJson = line.replace('data:', '');
|
|
54
|
+
const event = JSON.parse(stringifiedJson);
|
|
55
|
+
yield event;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
reader.releaseLock();
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
try {
|
|
68
|
+
const response = await fetch(predictionUrl, options);
|
|
69
|
+
const resp = await response.json();
|
|
70
|
+
return resp;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw new Error('Error creating prediction');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1wbG9pZENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9FbXBsb2lkQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVEQSxNQUFNLENBQUMsT0FBTyxPQUFPLGFBQWE7SUFJOUIsWUFBWSxVQUFnQyxFQUFFO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsS0FBSyxDQUFDLGdCQUFnQixDQUNsQixJQUFPO1FBRVAsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFdkMsMkNBQTJDO1FBQzNDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTywrQkFBK0IsVUFBVSxFQUFFLENBQUM7UUFDeEYsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsb0JBQW9CLEVBQUU7WUFDM0MsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUU7Z0JBQ0wsY0FBYyxFQUFFLGtCQUFrQjthQUNyQztTQUNKLENBQUMsQ0FBQztRQUVILE1BQU0scUJBQXFCLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsTUFBTSwyQkFBMkIsR0FDN0IscUJBQXFCLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQztRQUUvQyxNQUFNLGFBQWEsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLHNCQUFzQixVQUFVLEVBQUUsQ0FBQztRQUV4RSxNQUFNLE9BQU8sR0FBUTtZQUNqQixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRTtnQkFDTCxjQUFjLEVBQUUsa0JBQWtCO2FBQ3JDO1lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQzdCLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0QsQ0FBQztRQUVELElBQUksMkJBQTJCLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0MsT0FBTztnQkFDSCxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7b0JBQ3pCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFFckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNLElBQUksS0FBSyxDQUNYLHVCQUF1QixRQUFRLENBQUMsTUFBTSxFQUFFLENBQzNDLENBQUM7b0JBQ04sQ0FBQztvQkFFRCxZQUFZO29CQUNaLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztvQkFFaEIsSUFBSSxDQUFDO3dCQUNELE9BQU8sSUFBSSxFQUFFLENBQUM7NEJBQ1YsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzs0QkFDNUMsSUFBSSxJQUFJO2dDQUFFLE1BQU07NEJBRWhCLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDOzRCQUNsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNqQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQzs0QkFFM0IsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztnQ0FDdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtvQ0FBRSxTQUFTO2dDQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQ0FDM0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FDaEMsT0FBTyxFQUNQLEVBQUUsQ0FDTCxDQUFDO29DQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7b0NBQzFDLE1BQU0sS0FBSyxDQUFDO2dDQUNoQixDQUFDOzRCQUNMLENBQUM7d0JBQ0wsQ0FBQztvQkFDTCxDQUFDOzRCQUFTLENBQUM7d0JBQ1AsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN6QixDQUFDO2dCQUNMLENBQUM7YUFDeUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQztnQkFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNuQyxPQUFPLElBQXNDLENBQUM7WUFDbEQsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aW9uRGF0YSB7XG4gICAgY2hhdGZsb3dJZDogc3RyaW5nO1xuICAgIHF1ZXN0aW9uOiBzdHJpbmc7XG4gICAgb3ZlcnJpZGVDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNoYXRJZD86IHN0cmluZztcbiAgICBzdHJlYW1pbmc/OiBib29sZWFuO1xuICAgIGhpc3Rvcnk/OiBJTWVzc2FnZVtdO1xuICAgIHVwbG9hZHM/OiBJRmlsZVVwbG9hZFtdO1xuICAgIGxlYWRFbWFpbD86IHN0cmluZ1xuICAgIGFjdGlvbj86IElBY3Rpb25cbn1cblxuaW50ZXJmYWNlIElBY3Rpb24ge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIGVsZW1lbnRzPzogQXJyYXk8e1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgfT47XG4gICAgbWFwcGluZz86IHtcbiAgICAgICAgYXBwcm92ZTogc3RyaW5nO1xuICAgICAgICByZWplY3Q6IHN0cmluZztcbiAgICAgICAgdG9vbENhbGxzOiBhbnlbXTtcbiAgICB9O1xufVxuXG5pbnRlcmZhY2UgSUZpbGVVcGxvYWQge1xuICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBtaW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJTWVzc2FnZSB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlO1xuICAgIHJvbGU/OiBNZXNzYWdlVHlwZTtcbiAgICBjb250ZW50Pzogc3RyaW5nO1xufVxuXG50eXBlIE1lc3NhZ2VUeXBlID0gJ2FwaU1lc3NhZ2UnIHwgJ3VzZXJNZXNzYWdlJztcblxuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1SZXNwb25zZSB7XG4gICAgZXZlbnQ6IHN0cmluZztcbiAgICBkYXRhOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBFbXBsb2lkQ2xpZW50T3B0aW9ucyB7XG4gICAgYmFzZVVybD86IHN0cmluZztcbiAgICBhcGlLZXk/OiBzdHJpbmc7XG59XG5cbnR5cGUgUHJlZGljdGlvblJlc3BvbnNlPFQgZXh0ZW5kcyBQcmVkaWN0aW9uRGF0YT4gPSBUWydzdHJlYW1pbmcnXSBleHRlbmRzIHRydWVcbiAgICA/IEFzeW5jR2VuZXJhdG9yPFN0cmVhbVJlc3BvbnNlLCB2b2lkLCB1bmtub3duPiAvLyBTdHJlYW1pbmcgcmV0dXJucyBhbiBhc3luYyBnZW5lcmF0b3JcbiAgICA6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVtcGxvaWRDbGllbnQge1xuICAgIHByaXZhdGUgYmFzZVVybDogc3RyaW5nO1xuICAgIHByaXZhdGUgYXBpS2V5OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBFbXBsb2lkQ2xpZW50T3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuYmFzZVVybCA9IG9wdGlvbnMuYmFzZVVybCB8fCAnaHR0cDovL2xvY2FsaG9zdDozMDAwJztcbiAgICAgICAgdGhpcy5hcGlLZXkgPSBvcHRpb25zLmFwaUtleSB8fCAnJztcbiAgICB9XG5cbiAgICAvLyBNZXRob2QgdG8gY3JlYXRlIGEgbmV3IHByZWRpY3Rpb24gYW5kIGhhbmRsZSBzdHJlYW1pbmcgcmVzcG9uc2VcbiAgICBhc3luYyBjcmVhdGVQcmVkaWN0aW9uPFQgZXh0ZW5kcyBQcmVkaWN0aW9uRGF0YT4oXG4gICAgICAgIGRhdGE6IFRcbiAgICApOiBQcm9taXNlPFByZWRpY3Rpb25SZXNwb25zZTxUPj4ge1xuICAgICAgICBjb25zdCB7IGNoYXRmbG93SWQsIHN0cmVhbWluZyB9ID0gZGF0YTtcblxuICAgICAgICAvLyBDaGVjayBpZiBjaGF0ZmxvdyBpcyBhdmFpbGFibGUgdG8gc3RyZWFtXG4gICAgICAgIGNvbnN0IGNoYXRGbG93U3RyZWFtaW5nVXJsID0gYCR7dGhpcy5iYXNlVXJsfS9hcGkvdjEvY2hhdGZsb3dzLXN0cmVhbWluZy8ke2NoYXRmbG93SWR9YDtcbiAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKGNoYXRGbG93U3RyZWFtaW5nVXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjaGF0Rmxvd1N0cmVhbWluZ0RhdGEgPSBhd2FpdCByZXNwLmpzb24oKTtcbiAgICAgICAgY29uc3QgaXNDaGF0Rmxvd0F2YWlsYWJsZVRvU3RyZWFtID1cbiAgICAgICAgICAgIGNoYXRGbG93U3RyZWFtaW5nRGF0YS5pc1N0cmVhbWluZyB8fCBmYWxzZTtcblxuICAgICAgICBjb25zdCBwcmVkaWN0aW9uVXJsID0gYCR7dGhpcy5iYXNlVXJsfS9hcGkvdjEvcHJlZGljdGlvbi8ke2NoYXRmbG93SWR9YDtcblxuICAgICAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5hcGlLZXkpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gYEJlYXJlciAke3RoaXMuYXBpS2V5fWA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNDaGF0Rmxvd0F2YWlsYWJsZVRvU3RyZWFtICYmIHN0cmVhbWluZykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBhc3luYyAqW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChwcmVkaWN0aW9uVXJsLCBvcHRpb25zKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBidWZmZXIgPSAnJztcblxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb25lKSBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciArPSBkZWNvZGVyLmRlY29kZSh2YWx1ZSwgeyBzdHJlYW06IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGluZXMgPSBidWZmZXIuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGxpbmVzLnBvcCgpIHx8ICcnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmdpZmllZEpzb24gPSBsaW5lLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGE6JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gSlNPTi5wYXJzZShzdHJpbmdpZmllZEpzb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIucmVsZWFzZUxvY2soKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9IGFzIHVua25vd24gYXMgUHJvbWlzZTxQcmVkaWN0aW9uUmVzcG9uc2U8VD4+O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHByZWRpY3Rpb25VcmwsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3AgYXMgUHJvbWlzZTxQcmVkaWN0aW9uUmVzcG9uc2U8VD4+O1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGNyZWF0aW5nIHByZWRpY3Rpb24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './modules';
|
|
2
2
|
export { getSDKForService } from './getSDKForService';
|
|
3
|
-
|
|
3
|
+
export * from './EmploidClient';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcyc7XG5leHBvcnQgeyBnZXRTREtGb3JTZXJ2aWNlIH0gZnJvbSAnLi9nZXRTREtGb3JTZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vRW1wbG9pZENsaWVudCc7XG5cbiJdfQ==
|
|
@@ -214,10 +214,10 @@ export class EmploidService extends ServiceClient {
|
|
|
214
214
|
return await this.actionCall('skill', 'DeleteSkill', payload);
|
|
215
215
|
}
|
|
216
216
|
async CreateCommand(payload) {
|
|
217
|
-
debugger
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
217
|
+
/* debugger
|
|
218
|
+
if ( typeof payload.inputs === 'object' ) {
|
|
219
|
+
payload.inputs = JSON.stringify(payload.inputs) as any;
|
|
220
|
+
} */
|
|
221
221
|
return await this.actionCall('command', 'CreateCommand', payload);
|
|
222
222
|
}
|
|
223
223
|
async ListCommands(payload) {
|
|
@@ -230,4 +230,4 @@ export class EmploidService extends ServiceClient {
|
|
|
230
230
|
return await this.actionCall('command', 'DeleteCommand', payload);
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL2VtcGxvaWQvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNckQsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBQ25DLGNBQWM7UUFDcEIsT0FBTyw4QkFBOEIsQ0FBQztJQUMxQyxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUE0QztRQUNuRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQTRDO1FBQ25FLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBNEM7UUFDbkUsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUEyQztRQUNqRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxLQUFLLENBQUMscUJBQXFCLENBQUMsT0FBb0Q7UUFDbkYsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBZ0Q7UUFDM0UsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLG1CQUFtQixF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LE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBMEM7UUFDL0QsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUE0QztRQUNyRSxRQUFRLENBQUE7UUFDUCxJQUFLLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUcsQ0FBQztZQUN0QyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBUSxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQTJDO1FBQ2pFLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBNEM7UUFDbkUsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUE0QztRQUNuRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHogZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgU2VydmljZUNsaWVudCB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLWNsaWVudFwiO1xuXG5cbmltcG9ydCB7IENyZWF0ZUFnZW50Rmxvd1NjaGVtYSwgQ3JlYXRlQXNzaXN0YW50U2NoZW1hLCBDcmVhdGVDb21tYW5kU2NoZW1hLCBDcmVhdGVDb21wZXRlbmN5U2NoZW1hLCBDcmVhdGVFbXBsb2lkU2NoZW1hLCBDcmVhdGVFeHRlbnNpb25TY2hlbWEsIENyZWF0ZUlucHV0U2NoZW1hLCBDcmVhdGVJbnN0cnVjdGlvblNjaGVtYSwgQ3JlYXRlSm9iRGVmaW5pdGlvblNjaGVtYSwgQ3JlYXRlT2NjdXBhdGlvblNjaGVtYSwgQ3JlYXRlU2NvcGVTY2hlbWEsIENyZWF0ZVNraWxsU2NoZW1hLCBDcmVhdGVTdHJlYW1JZFNjaGVtYSwgQ3JlYXRlVGVhbVNjaGVtYSwgQ3JlYXRlV29ya2VyU2NoZW1hLCBEZWxldGVBc3Npc3RhbnRTY2hlbWEsIERlbGV0ZUNoYXRCeUlkU2NoZW1hLCBEZWxldGVDb21tYW5kU2NoZW1hLCBEZWxldGVDb21wZXRlbmN5U2NoZW1hLCBEZWxldGVEb2N1bWVudHNCeUlkQWZ0ZXJUaW1lc3RhbXBTY2hlbWEsIERlbGV0ZUVtcGxvaWRTY2hlbWEsIERlbGV0ZUlucHV0U2NoZW1hLCBEZWxldGVJbnN0cnVjdGlvblNjaGVtYSwgRGVsZXRlSm9iRGVmaW5pdGlvblNjaGVtYSwgRGVsZXRlTWVzc2FnZXNCeUNoYXRJZEFmdGVyVGltZXN0YW1wU2NoZW1hLCBEZWxldGVPY2N1cGF0aW9uU2NoZW1hLCBEZWxldGVTY29wZVNjaGVtYSwgRGVsZXRlU2tpbGxTY2hlbWEsIERlbGV0ZVRlYW1TY2hlbWEsIERlbGV0ZVdvcmtlclNjaGVtYSwgR2V0Q2hhdEJ5SWRTY2hlbWEsIEdldENoYXRzQnlVc2VySWRTY2hlbWEsIEdldERvY3VtZW50QnlJZFNjaGVtYSwgR2V0RG9jdW1lbnRzQnlJZFNjaGVtYSwgR2V0TWVzc2FnZUJ5SWRTY2hlbWEsIEdldE1lc3NhZ2VDb3VudEJ5VXNlcklkU2NoZW1hLCBHZXRNZXNzYWdlc0J5Q2hhdElkU2NoZW1hLCBHZXRTdHJlYW1JZHNCeUNoYXRJZFNjaGVtYSwgR2V0U3VnZ2VzdGlvbnNCeURvY3VtZW50SWRTY2hlbWEsIEdldFZvdGVzQnlDaGF0SWRTY2hlbWEsIExpc3RBZ2VudEZsb3dzU2NoZW1hLCBMaXN0QXNzaXN0YW50c1NjaGVtYSwgTGlzdENvbW1hbmRzU2NoZW1hLCBMaXN0Q29tcGV0ZW5jaWVzU2NoZW1hLCBMaXN0RW1wbG9pZHNQYWdpbmF0ZWRTY2hlbWEsIExpc3RFbXBsb2lkc1NjaGVtYSwgTGlzdEV4dGVuc2lvbnNTY2hlbWEsIExpc3RJbnB1dFNjaGVtYSwgTGlzdEluc3RydWN0aW9uc1NjaGVtYSwgTGlzdEpvYkRlZmluaXRpb25TY2hlbWEsIExpc3RPY2N1cGF0aW9uc1NjaGVtYSwgTGlzdFNjb3Blc1NjaGVtYSwgTGlzdFNraWxsc1NjaGVtYSwgTGlzdFRlYW1zU2NoZW1hLCBMaXN0V29ya2Vyc1NjaGVtYSwgU2F2ZUNoYXRTY2hlbWEsIFNhdmVEb2N1bWVudFNjaGVtYSwgU2F2ZU1lc3NhZ2VzU2NoZW1hLCBTYXZlU3VnZ2VzdGlvbnNTY2hlbWEsIFVwZGF0ZUFzc2lzdGFudFNjaGVtYSwgVXBkYXRlQ2hhdExhc3RDb250ZXh0QnlJZFNjaGVtYSwgVXBkYXRlQ2hhdFZpc2libGl0eUJ5SWRTY2hlbWEsIFVwZGF0ZUNvbW1hbmRTY2hlbWEsIFVwZGF0ZUNvbXBldGVuY3lTY2hlbWEsIFVwZGF0ZUVtcGxvaWRTY2hlbWEsIFVwZGF0ZUlucHV0U2NoZW1hLCBVcGRhdGVJbnN0cnVjdGlvblNjaGVtYSwgVXBkYXRlSm9iRGVmaW5pdGlvblNjaGVtYSwgVXBkYXRlT2NjdXBhdGlvblNjaGVtYSwgVXBkYXRlU2NvcGVTY2hlbWEsIFVwZGF0ZVNraWxsU2NoZW1hLCBVcGRhdGVUZWFtU2NoZW1hLCBVcGRhdGVXb3JrZXJTY2hlbWEsIFZvdGVNZXNzYWdlU2NoZW1hIH0gZnJvbSBcIi4vc2NoZW1hXCI7XG5pbXBvcnQgeyBUQWdlbnRGbG93LCBUQXNzaXN0YW50LCBUQ2hhdCwgVENvbW1hbmQsIFRDb21wZXRlbmN5LCBURG9jdW1lbnQsIFRFbXBsb2lkLCBURXh0ZW5zaW9uLCBUSW5wdXQsIFRJbnN0cnVjdGlvbiwgVEpvYkRlZmluaXRpb24sIFRPY2N1cGF0aW9uLCBUUGFnaW5hdGVkRW1wbG9pZHNSZXN1bHQsIFRTY29wZSwgVFNraWxsLCBUU3RyZWFtSWQsIFRUZWFtLCBUV29ya2VyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIEVtcGxvaWRTZXJ2aWNlIGV4dGVuZHMgU2VydmljZUNsaWVudCB7XG4gICAgcHJvdGVjdGVkIGdldFNlcnZpY2VOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnY29tLmFwcGNvbmRhLnNlcnZpY2UuZW1wbG9pZCc7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZUVtcGxvaWQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlRW1wbG9pZFNjaGVtYT4pOiBQcm9taXNlPFRFbXBsb2lkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnQ3JlYXRlRW1wbG9pZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVFbXBsb2lkKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZUVtcGxvaWRTY2hlbWE+KTogUHJvbWlzZTxURW1wbG9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ1VwZGF0ZUVtcGxvaWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlRW1wbG9pZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVFbXBsb2lkU2NoZW1hPik6IFByb21pc2U8VEVtcGxvaWQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdEZWxldGVFbXBsb2lkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RFbXBsb2lkcyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBMaXN0RW1wbG9pZHNTY2hlbWE+KTogUHJvbWlzZTxURW1wbG9pZFtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnTGlzdEVtcGxvaWRzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RFbXBsb2lkc1BhZ2luYXRlZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBMaXN0RW1wbG9pZHNQYWdpbmF0ZWRTY2hlbWE+KTogUHJvbWlzZTxUUGFnaW5hdGVkRW1wbG9pZHNSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdMaXN0RW1wbG9pZHNQYWdpbmF0ZWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgQ3JlYXRlSW5zdHJ1Y3Rpb24ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlSW5zdHJ1Y3Rpb25TY2hlbWE+KTogUHJvbWlzZTxUSW5zdHJ1Y3Rpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdDcmVhdGVJbnN0cnVjdGlvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0SW5zdHJ1Y3Rpb25zKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RJbnN0cnVjdGlvbnNTY2hlbWE+KTogUHJvbWlzZTxUSW5zdHJ1Y3Rpb25bXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ0xpc3RJbnN0cnVjdGlvbnMnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlSW5zdHJ1Y3Rpb24ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgVXBkYXRlSW5zdHJ1Y3Rpb25TY2hlbWE+KTogUHJvbWlzZTxUSW5zdHJ1Y3Rpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdVcGRhdGVJbnN0cnVjdGlvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVJbnN0cnVjdGlvbihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVJbnN0cnVjdGlvblNjaGVtYT4pOiBQcm9taXNlPFRJbnN0cnVjdGlvbj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ0RlbGV0ZUluc3RydWN0aW9uJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RTY29wZXMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdFNjb3Blc1NjaGVtYT4pOiBQcm9taXNlPFRTY29wZVtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnTGlzdFNjb3BlcycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVTY29wZShwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBDcmVhdGVTY29wZVNjaGVtYT4pOiBQcm9taXNlPFRTY29wZT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ0NyZWF0ZVNjb3BlJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFVwZGF0ZVNjb3BlKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVNjb3BlU2NoZW1hPik6IFByb21pc2U8VFNjb3BlPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnVXBkYXRlU2NvcGUnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlU2NvcGUocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlU2NvcGVTY2hlbWE+KTogUHJvbWlzZTxUU2NvcGU+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdEZWxldGVTY29wZScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVPY2N1cGF0aW9uKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZU9jY3VwYXRpb25TY2hlbWE+KTogUHJvbWlzZTxUT2NjdXBhdGlvbj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdvY2N1cGF0aW9uJywgJ0NyZWF0ZU9jY3VwYXRpb24nLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlT2NjdXBhdGlvbihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBVcGRhdGVPY2N1cGF0aW9uU2NoZW1hPik6IFByb21pc2U8VE9jY3VwYXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnb2NjdXBhdGlvbicsICdVcGRhdGVPY2N1cGF0aW9uJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZU9jY3VwYXRpb24ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlT2NjdXBhdGlvblNjaGVtYT4pOiBQcm9taXNlPFRPY2N1cGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ29jY3VwYXRpb24nLCAnRGVsZXRlT2NjdXBhdGlvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0T2NjdXBhdGlvbnMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdE9jY3VwYXRpb25zU2NoZW1hPik6IFByb21pc2U8VE9jY3VwYXRpb25bXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdvY2N1cGF0aW9uJywgJ0xpc3RPY2N1cGF0aW9ucycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVKb2JEZWZpbml0aW9uKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZUpvYkRlZmluaXRpb25TY2hlbWE+KTogUHJvbWlzZTxUSm9iRGVmaW5pdGlvbj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ0NyZWF0ZUpvYkRlZmluaXRpb24nLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlSm9iRGVmaW5pdGlvbihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBVcGRhdGVKb2JEZWZpbml0aW9uU2NoZW1hPik6IFByb21pc2U8VEpvYkRlZmluaXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdVcGRhdGVKb2JEZWZpbml0aW9uJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZUpvYkRlZmluaXRpb24ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlSm9iRGVmaW5pdGlvblNjaGVtYT4pOiBQcm9taXNlPFRKb2JEZWZpbml0aW9uPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnRGVsZXRlSm9iRGVmaW5pdGlvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0Sm9iRGVmaW5pdGlvbnMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdEpvYkRlZmluaXRpb25TY2hlbWE+KTogUHJvbWlzZTxUSm9iRGVmaW5pdGlvbltdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnTGlzdEpvYkRlZmluaXRpb25zJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZUNvbXBldGVuY3kocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlQ29tcGV0ZW5jeVNjaGVtYT4pOiBQcm9taXNlPFRDb21wZXRlbmN5PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnQ3JlYXRlQ29tcGV0ZW5jeScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVDb21wZXRlbmN5KHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZUNvbXBldGVuY3lTY2hlbWE+KTogUHJvbWlzZTxUQ29tcGV0ZW5jeT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ1VwZGF0ZUNvbXBldGVuY3knLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlQ29tcGV0ZW5jeShwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVDb21wZXRlbmN5U2NoZW1hPik6IFByb21pc2U8VENvbXBldGVuY3k+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdEZWxldGVDb21wZXRlbmN5JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RDb21wZXRlbmNpZXMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdENvbXBldGVuY2llc1NjaGVtYT4pOiBQcm9taXNlPFRDb21wZXRlbmN5W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdMaXN0Q29tcGV0ZW5jaWVzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZUFnZW50RmxvdyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBDcmVhdGVBZ2VudEZsb3dTY2hlbWE+KTogUHJvbWlzZTxUQWdlbnRGbG93PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2FnZW50LWZsb3cnLCAnQ3JlYXRlQWdlbnRGbG93JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RBZ2VudEZsb3dzKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RBZ2VudEZsb3dzU2NoZW1hPik6IFByb21pc2U8VEFnZW50Rmxvd1tdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2FnZW50LWZsb3cnLCAnTGlzdEFnZW50Rmxvd3MnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgQ3JlYXRlRXh0ZW5zaW9uKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZUV4dGVuc2lvblNjaGVtYT4pOiBQcm9taXNlPFRFeHRlbnNpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZXh0ZW5zaW9uJywgJ0NyZWF0ZUV4dGVuc2lvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0RXh0ZW5zaW9ucyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBMaXN0RXh0ZW5zaW9uc1NjaGVtYT4pOiBQcm9taXNlPFRFeHRlbnNpb25bXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdleHRlbnNpb24nLCAnTGlzdEV4dGVuc2lvbnMnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgQ3JlYXRlQXNzaXN0YW50KHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZUFzc2lzdGFudFNjaGVtYT4pOiBQcm9taXNlPFRBc3Npc3RhbnQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnYXNzaXN0YW50JywgJ0NyZWF0ZUFzc2lzdGFudCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVBc3Npc3RhbnQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgVXBkYXRlQXNzaXN0YW50U2NoZW1hPik6IFByb21pc2U8VEFzc2lzdGFudD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdhc3Npc3RhbnQnLCAnVXBkYXRlQXNzaXN0YW50JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZUFzc2lzdGFudChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVBc3Npc3RhbnRTY2hlbWE+KTogUHJvbWlzZTxUQXNzaXN0YW50PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2Fzc2lzdGFudCcsICdEZWxldGVBc3Npc3RhbnQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTGlzdEFzc2lzdGFudHMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdEFzc2lzdGFudHNTY2hlbWE+KTogUHJvbWlzZTxUQXNzaXN0YW50W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnYXNzaXN0YW50JywgJ0xpc3RBc3Npc3RhbnRzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZVdvcmtlcihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBDcmVhdGVXb3JrZXJTY2hlbWE+KTogUHJvbWlzZTxUV29ya2VyPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3dvcmtlcicsICdDcmVhdGVXb3JrZXInLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlV29ya2VyKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVdvcmtlclNjaGVtYT4pOiBQcm9taXNlPFRXb3JrZXI+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnd29ya2VyJywgJ1VwZGF0ZVdvcmtlcicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVXb3JrZXIocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlV29ya2VyU2NoZW1hPik6IFByb21pc2U8VFdvcmtlcj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCd3b3JrZXInLCAnRGVsZXRlV29ya2VyJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RXb3JrZXJzKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RXb3JrZXJzU2NoZW1hPik6IFByb21pc2U8VFdvcmtlcltdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3dvcmtlcicsICdMaXN0V29ya2VycycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVJbnB1dChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBDcmVhdGVJbnB1dFNjaGVtYT4pOiBQcm9taXNlPFRJbnB1dD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdpbnB1dC1vdXRwdXQnLCAnQ3JlYXRlSW5wdXQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlSW5wdXQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgVXBkYXRlSW5wdXRTY2hlbWE+KTogUHJvbWlzZTxUSW5wdXQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnaW5wdXQtb3V0cHV0JywgJ1VwZGF0ZUlucHV0JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZUlucHV0KHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIERlbGV0ZUlucHV0U2NoZW1hPik6IFByb21pc2U8VElucHV0PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2lucHV0LW91dHB1dCcsICdEZWxldGVJbnB1dCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0SW5wdXRzKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RJbnB1dFNjaGVtYT4pOiBQcm9taXNlPFRJbnB1dFtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2lucHV0LW91dHB1dCcsICdMaXN0SW5wdXRzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZVRlYW0ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlVGVhbVNjaGVtYT4pOiBQcm9taXNlPFRUZWFtPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3RlYW0nLCAnQ3JlYXRlVGVhbScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0VGVhbXMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdFRlYW1zU2NoZW1hPik6IFByb21pc2U8VFRlYW1bXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCd0ZWFtJywgJ0xpc3RUZWFtcycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVUZWFtKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVRlYW1TY2hlbWE+KTogUHJvbWlzZTxUVGVhbT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCd0ZWFtJywgJ1VwZGF0ZVRlYW0nLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlVGVhbShwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVUZWFtU2NoZW1hPik6IFByb21pc2U8VFRlYW0+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgndGVhbScsICdEZWxldGVUZWFtJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVDaGF0KHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFNhdmVDaGF0U2NoZW1hPik6IFByb21pc2U8VENoYXQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdTYXZlQ2hhdCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVDaGF0QnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVDaGF0QnlJZFNjaGVtYT4pOiBQcm9taXNlPFRDaGF0PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnRGVsZXRlQ2hhdEJ5SWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0Q2hhdEJ5SWQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgR2V0Q2hhdEJ5SWRTY2hlbWE+KTogUHJvbWlzZTxUQ2hhdD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0dldENoYXRCeUlkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEdldENoYXRzQnlVc2VySWQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgR2V0Q2hhdHNCeVVzZXJJZFNjaGVtYT4pOiBQcm9taXNlPFRDaGF0W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXRDaGF0c0J5VXNlcklkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVNZXNzYWdlcyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBTYXZlTWVzc2FnZXNTY2hlbWE+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnU2F2ZU1lc3NhZ2VzJywgcGF5bG9hZCk7XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0TWVzc2FnZXNCeUNoYXRJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRNZXNzYWdlc0J5Q2hhdElkU2NoZW1hPik6IFByb21pc2U8VENoYXRbXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0dldE1lc3NhZ2VzQnlDaGF0SWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBhc3luYyBHZXRNZXNzYWdlQnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRNZXNzYWdlQnlJZFNjaGVtYT4pOiBQcm9taXNlPFRDaGF0W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXRNZXNzYWdlQnlJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBWb3RlTWVzc2FnZShwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBWb3RlTWVzc2FnZVNjaGVtYT4pOiBQcm9taXNlPFRDaGF0W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdWb3RlTWVzc2FnZScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBHZXRWb3Rlc0J5Q2hhdElkKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIEdldFZvdGVzQnlDaGF0SWRTY2hlbWE+KTogUHJvbWlzZTxUQ2hhdFtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnR2V0Vm90ZXNCeUNoYXRJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVEb2N1bWVudHNCeUlkQWZ0ZXJUaW1lc3RhbXAocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlRG9jdW1lbnRzQnlJZEFmdGVyVGltZXN0YW1wU2NoZW1hPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0RlbGV0ZURvY3VtZW50c0J5SWRBZnRlclRpbWVzdGFtcCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlU3VnZ2VzdGlvbnMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgU2F2ZVN1Z2dlc3Rpb25zU2NoZW1hPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ1NhdmVTdWdnZXN0aW9ucycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBHZXRTdWdnZXN0aW9uc0J5RG9jdW1lbnRJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRTdWdnZXN0aW9uc0J5RG9jdW1lbnRJZFNjaGVtYT4pOiBQcm9taXNlPFRDaGF0W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXRTdWdnZXN0aW9uc0J5RG9jdW1lbnRJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVNZXNzYWdlc0J5Q2hhdElkQWZ0ZXJUaW1lc3RhbXAocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlTWVzc2FnZXNCeUNoYXRJZEFmdGVyVGltZXN0YW1wU2NoZW1hPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0RlbGV0ZU1lc3NhZ2VzQnlDaGF0SWRBZnRlclRpbWVzdGFtcCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVDaGF0VmlzaWJsaXR5QnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBVcGRhdGVDaGF0VmlzaWJsaXR5QnlJZFNjaGVtYT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdVcGRhdGVDaGF0VmlzaWJsaXR5QnlJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVDaGF0TGFzdENvbnRleHRCeUlkKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZUNoYXRMYXN0Q29udGV4dEJ5SWRTY2hlbWE+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnVXBkYXRlQ2hhdExhc3RDb250ZXh0QnlJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBHZXRNZXNzYWdlQ291bnRCeVVzZXJJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRNZXNzYWdlQ291bnRCeVVzZXJJZFNjaGVtYT4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0dldE1lc3NhZ2VDb3VudEJ5VXNlcklkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZVN0cmVhbUlkKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZVN0cmVhbUlkU2NoZW1hPik6IFByb21pc2U8VFN0cmVhbUlkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnQ3JlYXRlU3RyZWFtSWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0U3RyZWFtSWRzQnlDaGF0SWQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgR2V0U3RyZWFtSWRzQnlDaGF0SWRTY2hlbWE+KTogUHJvbWlzZTxUU3RyZWFtSWRbXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0dldFN0cmVhbUlkc0J5Q2hhdElkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVEb2N1bWVudChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBTYXZlRG9jdW1lbnRTY2hlbWE+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnU2F2ZURvY3VtZW50JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEdldERvY3VtZW50QnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXREb2N1bWVudEJ5SWRTY2hlbWE+KTogUHJvbWlzZTxURG9jdW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXREb2N1bWVudEJ5SWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0RG9jdW1lbnRzQnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXREb2N1bWVudHNCeUlkU2NoZW1hPik6IFByb21pc2U8VERvY3VtZW50W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXREb2N1bWVudHNCeUlkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZVNraWxsKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZVNraWxsU2NoZW1hPik6IFByb21pc2U8VFNraWxsPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3NraWxsJywgJ0NyZWF0ZVNraWxsJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RTa2lsbHMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdFNraWxsc1NjaGVtYT4pOiBQcm9taXNlPFRTa2lsbFtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3NraWxsJywgJ0xpc3RTa2lsbHMnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlU2tpbGwocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgVXBkYXRlU2tpbGxTY2hlbWE+KTogUHJvbWlzZTxUU2tpbGw+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnc2tpbGwnLCAnVXBkYXRlU2tpbGwnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlU2tpbGwocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlU2tpbGxTY2hlbWE+KTogUHJvbWlzZTxUU2tpbGw+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnc2tpbGwnLCAnRGVsZXRlU2tpbGwnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICAgcHVibGljIGFzeW5jIENyZWF0ZUNvbW1hbmQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlQ29tbWFuZFNjaGVtYT4pOiBQcm9taXNlPFRDb21tYW5kPiB7XG4gICAgICAgZGVidWdnZXJcbiAgICAgICAgaWYgKCB0eXBlb2YgcGF5bG9hZC5pbnB1dCA9PT0gJ29iamVjdCcgKSB7XG4gICAgICAgICAgICBwYXlsb2FkLmlucHV0ID0gSlNPTi5zdHJpbmdpZnkocGF5bG9hZC5pbnB1dCkgYXMgYW55O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NvbW1hbmQnLCAnQ3JlYXRlQ29tbWFuZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0Q29tbWFuZHMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdENvbW1hbmRzU2NoZW1hPik6IFByb21pc2U8VENvbW1hbmRbXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjb21tYW5kJywgJ0xpc3RDb21tYW5kcycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVDb21tYW5kKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZUNvbW1hbmRTY2hlbWE+KTogUHJvbWlzZTxUQ29tbWFuZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjb21tYW5kJywgJ1VwZGF0ZUNvbW1hbmQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlQ29tbWFuZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVDb21tYW5kU2NoZW1hPik6IFByb21pc2U8VENvbW1hbmQ+IHsgICBcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY29tbWFuZCcsICdEZWxldGVDb21tYW5kJywgcGF5bG9hZCk7XG4gICAgfVxufVxuIl19
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL2VtcGxvaWQvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNckQsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBQ25DLGNBQWM7UUFDcEIsT0FBTyw4QkFBOEIsQ0FBQztJQUMxQyxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUE0QztRQUNuRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQTRDO1FBQ25FLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBNEM7UUFDbkUsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUEyQztRQUNqRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxLQUFLLENBQUMscUJBQXFCLENBQUMsT0FBb0Q7UUFDbkYsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBZ0Q7UUFDM0UsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLG1CQUFtQixF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LE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBMEM7UUFDL0QsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUE0QztRQUN0RTs7O2NBR007UUFDSixPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQTJDO1FBQ2pFLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBNEM7UUFDbkUsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUE0QztRQUNuRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHogZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgU2VydmljZUNsaWVudCB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLWNsaWVudFwiO1xuXG5cbmltcG9ydCB7IENyZWF0ZUFnZW50Rmxvd1NjaGVtYSwgQ3JlYXRlQXNzaXN0YW50U2NoZW1hLCBDcmVhdGVDb21tYW5kU2NoZW1hLCBDcmVhdGVDb21wZXRlbmN5U2NoZW1hLCBDcmVhdGVFbXBsb2lkU2NoZW1hLCBDcmVhdGVFeHRlbnNpb25TY2hlbWEsIENyZWF0ZUlucHV0U2NoZW1hLCBDcmVhdGVJbnN0cnVjdGlvblNjaGVtYSwgQ3JlYXRlSm9iRGVmaW5pdGlvblNjaGVtYSwgQ3JlYXRlT2NjdXBhdGlvblNjaGVtYSwgQ3JlYXRlU2NvcGVTY2hlbWEsIENyZWF0ZVNraWxsU2NoZW1hLCBDcmVhdGVTdHJlYW1JZFNjaGVtYSwgQ3JlYXRlVGVhbVNjaGVtYSwgQ3JlYXRlV29ya2VyU2NoZW1hLCBEZWxldGVBc3Npc3RhbnRTY2hlbWEsIERlbGV0ZUNoYXRCeUlkU2NoZW1hLCBEZWxldGVDb21tYW5kU2NoZW1hLCBEZWxldGVDb21wZXRlbmN5U2NoZW1hLCBEZWxldGVEb2N1bWVudHNCeUlkQWZ0ZXJUaW1lc3RhbXBTY2hlbWEsIERlbGV0ZUVtcGxvaWRTY2hlbWEsIERlbGV0ZUlucHV0U2NoZW1hLCBEZWxldGVJbnN0cnVjdGlvblNjaGVtYSwgRGVsZXRlSm9iRGVmaW5pdGlvblNjaGVtYSwgRGVsZXRlTWVzc2FnZXNCeUNoYXRJZEFmdGVyVGltZXN0YW1wU2NoZW1hLCBEZWxldGVPY2N1cGF0aW9uU2NoZW1hLCBEZWxldGVTY29wZVNjaGVtYSwgRGVsZXRlU2tpbGxTY2hlbWEsIERlbGV0ZVRlYW1TY2hlbWEsIERlbGV0ZVdvcmtlclNjaGVtYSwgR2V0Q2hhdEJ5SWRTY2hlbWEsIEdldENoYXRzQnlVc2VySWRTY2hlbWEsIEdldERvY3VtZW50QnlJZFNjaGVtYSwgR2V0RG9jdW1lbnRzQnlJZFNjaGVtYSwgR2V0TWVzc2FnZUJ5SWRTY2hlbWEsIEdldE1lc3NhZ2VDb3VudEJ5VXNlcklkU2NoZW1hLCBHZXRNZXNzYWdlc0J5Q2hhdElkU2NoZW1hLCBHZXRTdHJlYW1JZHNCeUNoYXRJZFNjaGVtYSwgR2V0U3VnZ2VzdGlvbnNCeURvY3VtZW50SWRTY2hlbWEsIEdldFZvdGVzQnlDaGF0SWRTY2hlbWEsIExpc3RBZ2VudEZsb3dzU2NoZW1hLCBMaXN0QXNzaXN0YW50c1NjaGVtYSwgTGlzdENvbW1hbmRzU2NoZW1hLCBMaXN0Q29tcGV0ZW5jaWVzU2NoZW1hLCBMaXN0RW1wbG9pZHNQYWdpbmF0ZWRTY2hlbWEsIExpc3RFbXBsb2lkc1NjaGVtYSwgTGlzdEV4dGVuc2lvbnNTY2hlbWEsIExpc3RJbnB1dFNjaGVtYSwgTGlzdEluc3RydWN0aW9uc1NjaGVtYSwgTGlzdEpvYkRlZmluaXRpb25TY2hlbWEsIExpc3RPY2N1cGF0aW9uc1NjaGVtYSwgTGlzdFNjb3Blc1NjaGVtYSwgTGlzdFNraWxsc1NjaGVtYSwgTGlzdFRlYW1zU2NoZW1hLCBMaXN0V29ya2Vyc1NjaGVtYSwgU2F2ZUNoYXRTY2hlbWEsIFNhdmVEb2N1bWVudFNjaGVtYSwgU2F2ZU1lc3NhZ2VzU2NoZW1hLCBTYXZlU3VnZ2VzdGlvbnNTY2hlbWEsIFVwZGF0ZUFzc2lzdGFudFNjaGVtYSwgVXBkYXRlQ2hhdExhc3RDb250ZXh0QnlJZFNjaGVtYSwgVXBkYXRlQ2hhdFZpc2libGl0eUJ5SWRTY2hlbWEsIFVwZGF0ZUNvbW1hbmRTY2hlbWEsIFVwZGF0ZUNvbXBldGVuY3lTY2hlbWEsIFVwZGF0ZUVtcGxvaWRTY2hlbWEsIFVwZGF0ZUlucHV0U2NoZW1hLCBVcGRhdGVJbnN0cnVjdGlvblNjaGVtYSwgVXBkYXRlSm9iRGVmaW5pdGlvblNjaGVtYSwgVXBkYXRlT2NjdXBhdGlvblNjaGVtYSwgVXBkYXRlU2NvcGVTY2hlbWEsIFVwZGF0ZVNraWxsU2NoZW1hLCBVcGRhdGVUZWFtU2NoZW1hLCBVcGRhdGVXb3JrZXJTY2hlbWEsIFZvdGVNZXNzYWdlU2NoZW1hIH0gZnJvbSBcIi4vc2NoZW1hXCI7XG5pbXBvcnQgeyBUQWdlbnRGbG93LCBUQXNzaXN0YW50LCBUQ2hhdCwgVENvbW1hbmQsIFRDb21wZXRlbmN5LCBURG9jdW1lbnQsIFRFbXBsb2lkLCBURXh0ZW5zaW9uLCBUSW5wdXQsIFRJbnN0cnVjdGlvbiwgVEpvYkRlZmluaXRpb24sIFRPY2N1cGF0aW9uLCBUUGFnaW5hdGVkRW1wbG9pZHNSZXN1bHQsIFRTY29wZSwgVFNraWxsLCBUU3RyZWFtSWQsIFRUZWFtLCBUV29ya2VyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIEVtcGxvaWRTZXJ2aWNlIGV4dGVuZHMgU2VydmljZUNsaWVudCB7XG4gICAgcHJvdGVjdGVkIGdldFNlcnZpY2VOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnY29tLmFwcGNvbmRhLnNlcnZpY2UuZW1wbG9pZCc7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZUVtcGxvaWQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlRW1wbG9pZFNjaGVtYT4pOiBQcm9taXNlPFRFbXBsb2lkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnQ3JlYXRlRW1wbG9pZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVFbXBsb2lkKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZUVtcGxvaWRTY2hlbWE+KTogUHJvbWlzZTxURW1wbG9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ1VwZGF0ZUVtcGxvaWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlRW1wbG9pZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVFbXBsb2lkU2NoZW1hPik6IFByb21pc2U8VEVtcGxvaWQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdEZWxldGVFbXBsb2lkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RFbXBsb2lkcyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBMaXN0RW1wbG9pZHNTY2hlbWE+KTogUHJvbWlzZTxURW1wbG9pZFtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnTGlzdEVtcGxvaWRzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RFbXBsb2lkc1BhZ2luYXRlZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBMaXN0RW1wbG9pZHNQYWdpbmF0ZWRTY2hlbWE+KTogUHJvbWlzZTxUUGFnaW5hdGVkRW1wbG9pZHNSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdMaXN0RW1wbG9pZHNQYWdpbmF0ZWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgQ3JlYXRlSW5zdHJ1Y3Rpb24ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlSW5zdHJ1Y3Rpb25TY2hlbWE+KTogUHJvbWlzZTxUSW5zdHJ1Y3Rpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdDcmVhdGVJbnN0cnVjdGlvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0SW5zdHJ1Y3Rpb25zKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RJbnN0cnVjdGlvbnNTY2hlbWE+KTogUHJvbWlzZTxUSW5zdHJ1Y3Rpb25bXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ0xpc3RJbnN0cnVjdGlvbnMnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlSW5zdHJ1Y3Rpb24ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgVXBkYXRlSW5zdHJ1Y3Rpb25TY2hlbWE+KTogUHJvbWlzZTxUSW5zdHJ1Y3Rpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdVcGRhdGVJbnN0cnVjdGlvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVJbnN0cnVjdGlvbihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVJbnN0cnVjdGlvblNjaGVtYT4pOiBQcm9taXNlPFRJbnN0cnVjdGlvbj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ0RlbGV0ZUluc3RydWN0aW9uJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RTY29wZXMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdFNjb3Blc1NjaGVtYT4pOiBQcm9taXNlPFRTY29wZVtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnTGlzdFNjb3BlcycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVTY29wZShwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBDcmVhdGVTY29wZVNjaGVtYT4pOiBQcm9taXNlPFRTY29wZT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ0NyZWF0ZVNjb3BlJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFVwZGF0ZVNjb3BlKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVNjb3BlU2NoZW1hPik6IFByb21pc2U8VFNjb3BlPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnVXBkYXRlU2NvcGUnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlU2NvcGUocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlU2NvcGVTY2hlbWE+KTogUHJvbWlzZTxUU2NvcGU+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdEZWxldGVTY29wZScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVPY2N1cGF0aW9uKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZU9jY3VwYXRpb25TY2hlbWE+KTogUHJvbWlzZTxUT2NjdXBhdGlvbj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdvY2N1cGF0aW9uJywgJ0NyZWF0ZU9jY3VwYXRpb24nLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlT2NjdXBhdGlvbihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBVcGRhdGVPY2N1cGF0aW9uU2NoZW1hPik6IFByb21pc2U8VE9jY3VwYXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnb2NjdXBhdGlvbicsICdVcGRhdGVPY2N1cGF0aW9uJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZU9jY3VwYXRpb24ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlT2NjdXBhdGlvblNjaGVtYT4pOiBQcm9taXNlPFRPY2N1cGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ29jY3VwYXRpb24nLCAnRGVsZXRlT2NjdXBhdGlvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0T2NjdXBhdGlvbnMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdE9jY3VwYXRpb25zU2NoZW1hPik6IFByb21pc2U8VE9jY3VwYXRpb25bXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdvY2N1cGF0aW9uJywgJ0xpc3RPY2N1cGF0aW9ucycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVKb2JEZWZpbml0aW9uKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZUpvYkRlZmluaXRpb25TY2hlbWE+KTogUHJvbWlzZTxUSm9iRGVmaW5pdGlvbj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ0NyZWF0ZUpvYkRlZmluaXRpb24nLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlSm9iRGVmaW5pdGlvbihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBVcGRhdGVKb2JEZWZpbml0aW9uU2NoZW1hPik6IFByb21pc2U8VEpvYkRlZmluaXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdVcGRhdGVKb2JEZWZpbml0aW9uJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZUpvYkRlZmluaXRpb24ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlSm9iRGVmaW5pdGlvblNjaGVtYT4pOiBQcm9taXNlPFRKb2JEZWZpbml0aW9uPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnRGVsZXRlSm9iRGVmaW5pdGlvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0Sm9iRGVmaW5pdGlvbnMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdEpvYkRlZmluaXRpb25TY2hlbWE+KTogUHJvbWlzZTxUSm9iRGVmaW5pdGlvbltdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnTGlzdEpvYkRlZmluaXRpb25zJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZUNvbXBldGVuY3kocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlQ29tcGV0ZW5jeVNjaGVtYT4pOiBQcm9taXNlPFRDb21wZXRlbmN5PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2VtcGxvaWQnLCAnQ3JlYXRlQ29tcGV0ZW5jeScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVDb21wZXRlbmN5KHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZUNvbXBldGVuY3lTY2hlbWE+KTogUHJvbWlzZTxUQ29tcGV0ZW5jeT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdlbXBsb2lkJywgJ1VwZGF0ZUNvbXBldGVuY3knLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlQ29tcGV0ZW5jeShwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVDb21wZXRlbmN5U2NoZW1hPik6IFByb21pc2U8VENvbXBldGVuY3k+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdEZWxldGVDb21wZXRlbmN5JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RDb21wZXRlbmNpZXMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdENvbXBldGVuY2llc1NjaGVtYT4pOiBQcm9taXNlPFRDb21wZXRlbmN5W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZW1wbG9pZCcsICdMaXN0Q29tcGV0ZW5jaWVzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZUFnZW50RmxvdyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBDcmVhdGVBZ2VudEZsb3dTY2hlbWE+KTogUHJvbWlzZTxUQWdlbnRGbG93PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2FnZW50LWZsb3cnLCAnQ3JlYXRlQWdlbnRGbG93JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RBZ2VudEZsb3dzKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RBZ2VudEZsb3dzU2NoZW1hPik6IFByb21pc2U8VEFnZW50Rmxvd1tdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2FnZW50LWZsb3cnLCAnTGlzdEFnZW50Rmxvd3MnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgQ3JlYXRlRXh0ZW5zaW9uKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZUV4dGVuc2lvblNjaGVtYT4pOiBQcm9taXNlPFRFeHRlbnNpb24+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnZXh0ZW5zaW9uJywgJ0NyZWF0ZUV4dGVuc2lvbicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0RXh0ZW5zaW9ucyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBMaXN0RXh0ZW5zaW9uc1NjaGVtYT4pOiBQcm9taXNlPFRFeHRlbnNpb25bXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdleHRlbnNpb24nLCAnTGlzdEV4dGVuc2lvbnMnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgQ3JlYXRlQXNzaXN0YW50KHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZUFzc2lzdGFudFNjaGVtYT4pOiBQcm9taXNlPFRBc3Npc3RhbnQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnYXNzaXN0YW50JywgJ0NyZWF0ZUFzc2lzdGFudCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVBc3Npc3RhbnQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgVXBkYXRlQXNzaXN0YW50U2NoZW1hPik6IFByb21pc2U8VEFzc2lzdGFudD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdhc3Npc3RhbnQnLCAnVXBkYXRlQXNzaXN0YW50JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZUFzc2lzdGFudChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVBc3Npc3RhbnRTY2hlbWE+KTogUHJvbWlzZTxUQXNzaXN0YW50PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2Fzc2lzdGFudCcsICdEZWxldGVBc3Npc3RhbnQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTGlzdEFzc2lzdGFudHMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdEFzc2lzdGFudHNTY2hlbWE+KTogUHJvbWlzZTxUQXNzaXN0YW50W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnYXNzaXN0YW50JywgJ0xpc3RBc3Npc3RhbnRzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZVdvcmtlcihwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBDcmVhdGVXb3JrZXJTY2hlbWE+KTogUHJvbWlzZTxUV29ya2VyPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3dvcmtlcicsICdDcmVhdGVXb3JrZXInLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlV29ya2VyKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVdvcmtlclNjaGVtYT4pOiBQcm9taXNlPFRXb3JrZXI+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnd29ya2VyJywgJ1VwZGF0ZVdvcmtlcicsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVXb3JrZXIocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlV29ya2VyU2NoZW1hPik6IFByb21pc2U8VFdvcmtlcj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCd3b3JrZXInLCAnRGVsZXRlV29ya2VyJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RXb3JrZXJzKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RXb3JrZXJzU2NoZW1hPik6IFByb21pc2U8VFdvcmtlcltdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3dvcmtlcicsICdMaXN0V29ya2VycycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBDcmVhdGVJbnB1dChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBDcmVhdGVJbnB1dFNjaGVtYT4pOiBQcm9taXNlPFRJbnB1dD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdpbnB1dC1vdXRwdXQnLCAnQ3JlYXRlSW5wdXQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlSW5wdXQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgVXBkYXRlSW5wdXRTY2hlbWE+KTogUHJvbWlzZTxUSW5wdXQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnaW5wdXQtb3V0cHV0JywgJ1VwZGF0ZUlucHV0JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZUlucHV0KHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIERlbGV0ZUlucHV0U2NoZW1hPik6IFByb21pc2U8VElucHV0PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2lucHV0LW91dHB1dCcsICdEZWxldGVJbnB1dCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0SW5wdXRzKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIExpc3RJbnB1dFNjaGVtYT4pOiBQcm9taXNlPFRJbnB1dFtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2lucHV0LW91dHB1dCcsICdMaXN0SW5wdXRzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZVRlYW0ocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlVGVhbVNjaGVtYT4pOiBQcm9taXNlPFRUZWFtPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3RlYW0nLCAnQ3JlYXRlVGVhbScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0VGVhbXMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdFRlYW1zU2NoZW1hPik6IFByb21pc2U8VFRlYW1bXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCd0ZWFtJywgJ0xpc3RUZWFtcycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVUZWFtKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZVRlYW1TY2hlbWE+KTogUHJvbWlzZTxUVGVhbT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCd0ZWFtJywgJ1VwZGF0ZVRlYW0nLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlVGVhbShwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVUZWFtU2NoZW1hPik6IFByb21pc2U8VFRlYW0+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgndGVhbScsICdEZWxldGVUZWFtJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVDaGF0KHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFNhdmVDaGF0U2NoZW1hPik6IFByb21pc2U8VENoYXQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdTYXZlQ2hhdCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVDaGF0QnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVDaGF0QnlJZFNjaGVtYT4pOiBQcm9taXNlPFRDaGF0PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnRGVsZXRlQ2hhdEJ5SWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0Q2hhdEJ5SWQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgR2V0Q2hhdEJ5SWRTY2hlbWE+KTogUHJvbWlzZTxUQ2hhdD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0dldENoYXRCeUlkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEdldENoYXRzQnlVc2VySWQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgR2V0Q2hhdHNCeVVzZXJJZFNjaGVtYT4pOiBQcm9taXNlPFRDaGF0W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXRDaGF0c0J5VXNlcklkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVNZXNzYWdlcyhwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBTYXZlTWVzc2FnZXNTY2hlbWE+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnU2F2ZU1lc3NhZ2VzJywgcGF5bG9hZCk7XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0TWVzc2FnZXNCeUNoYXRJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRNZXNzYWdlc0J5Q2hhdElkU2NoZW1hPik6IFByb21pc2U8VENoYXRbXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0dldE1lc3NhZ2VzQnlDaGF0SWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBhc3luYyBHZXRNZXNzYWdlQnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRNZXNzYWdlQnlJZFNjaGVtYT4pOiBQcm9taXNlPFRDaGF0W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXRNZXNzYWdlQnlJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBWb3RlTWVzc2FnZShwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBWb3RlTWVzc2FnZVNjaGVtYT4pOiBQcm9taXNlPFRDaGF0W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdWb3RlTWVzc2FnZScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBHZXRWb3Rlc0J5Q2hhdElkKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIEdldFZvdGVzQnlDaGF0SWRTY2hlbWE+KTogUHJvbWlzZTxUQ2hhdFtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnR2V0Vm90ZXNCeUNoYXRJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVEb2N1bWVudHNCeUlkQWZ0ZXJUaW1lc3RhbXAocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlRG9jdW1lbnRzQnlJZEFmdGVyVGltZXN0YW1wU2NoZW1hPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0RlbGV0ZURvY3VtZW50c0J5SWRBZnRlclRpbWVzdGFtcCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlU3VnZ2VzdGlvbnMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgU2F2ZVN1Z2dlc3Rpb25zU2NoZW1hPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ1NhdmVTdWdnZXN0aW9ucycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBHZXRTdWdnZXN0aW9uc0J5RG9jdW1lbnRJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRTdWdnZXN0aW9uc0J5RG9jdW1lbnRJZFNjaGVtYT4pOiBQcm9taXNlPFRDaGF0W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXRTdWdnZXN0aW9uc0J5RG9jdW1lbnRJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVNZXNzYWdlc0J5Q2hhdElkQWZ0ZXJUaW1lc3RhbXAocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlTWVzc2FnZXNCeUNoYXRJZEFmdGVyVGltZXN0YW1wU2NoZW1hPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0RlbGV0ZU1lc3NhZ2VzQnlDaGF0SWRBZnRlclRpbWVzdGFtcCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVDaGF0VmlzaWJsaXR5QnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBVcGRhdGVDaGF0VmlzaWJsaXR5QnlJZFNjaGVtYT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdVcGRhdGVDaGF0VmlzaWJsaXR5QnlJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVDaGF0TGFzdENvbnRleHRCeUlkKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZUNoYXRMYXN0Q29udGV4dEJ5SWRTY2hlbWE+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnVXBkYXRlQ2hhdExhc3RDb250ZXh0QnlJZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBHZXRNZXNzYWdlQ291bnRCeVVzZXJJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXRNZXNzYWdlQ291bnRCeVVzZXJJZFNjaGVtYT4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0dldE1lc3NhZ2VDb3VudEJ5VXNlcklkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZVN0cmVhbUlkKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZVN0cmVhbUlkU2NoZW1hPik6IFByb21pc2U8VFN0cmVhbUlkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnQ3JlYXRlU3RyZWFtSWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0U3RyZWFtSWRzQnlDaGF0SWQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgR2V0U3RyZWFtSWRzQnlDaGF0SWRTY2hlbWE+KTogUHJvbWlzZTxUU3RyZWFtSWRbXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjaGF0JywgJ0dldFN0cmVhbUlkc0J5Q2hhdElkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVEb2N1bWVudChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBTYXZlRG9jdW1lbnRTY2hlbWE+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NoYXQnLCAnU2F2ZURvY3VtZW50JywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEdldERvY3VtZW50QnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXREb2N1bWVudEJ5SWRTY2hlbWE+KTogUHJvbWlzZTxURG9jdW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXREb2N1bWVudEJ5SWQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0RG9jdW1lbnRzQnlJZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBHZXREb2N1bWVudHNCeUlkU2NoZW1hPik6IFByb21pc2U8VERvY3VtZW50W10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY2hhdCcsICdHZXREb2N1bWVudHNCeUlkJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIENyZWF0ZVNraWxsKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIENyZWF0ZVNraWxsU2NoZW1hPik6IFByb21pc2U8VFNraWxsPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3NraWxsJywgJ0NyZWF0ZVNraWxsJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RTa2lsbHMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdFNraWxsc1NjaGVtYT4pOiBQcm9taXNlPFRTa2lsbFtdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ3NraWxsJywgJ0xpc3RTa2lsbHMnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVXBkYXRlU2tpbGwocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgVXBkYXRlU2tpbGxTY2hlbWE+KTogUHJvbWlzZTxUU2tpbGw+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnc2tpbGwnLCAnVXBkYXRlU2tpbGwnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlU2tpbGwocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgRGVsZXRlU2tpbGxTY2hlbWE+KTogUHJvbWlzZTxUU2tpbGw+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnc2tpbGwnLCAnRGVsZXRlU2tpbGwnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICAgcHVibGljIGFzeW5jIENyZWF0ZUNvbW1hbmQocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgQ3JlYXRlQ29tbWFuZFNjaGVtYT4pOiBQcm9taXNlPFRDb21tYW5kPiB7XG4gICAgICAvKiAgZGVidWdnZXJcbiAgICAgICAgaWYgKCB0eXBlb2YgcGF5bG9hZC5pbnB1dHMgPT09ICdvYmplY3QnICkge1xuICAgICAgICAgICAgcGF5bG9hZC5pbnB1dHMgPSBKU09OLnN0cmluZ2lmeShwYXlsb2FkLmlucHV0cykgYXMgYW55O1xuICAgICAgICB9ICovXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFjdGlvbkNhbGwoJ2NvbW1hbmQnLCAnQ3JlYXRlQ29tbWFuZCcsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0Q29tbWFuZHMocGF5bG9hZDogei5pbmZlcjx0eXBlb2YgTGlzdENvbW1hbmRzU2NoZW1hPik6IFByb21pc2U8VENvbW1hbmRbXT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjb21tYW5kJywgJ0xpc3RDb21tYW5kcycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBVcGRhdGVDb21tYW5kKHBheWxvYWQ6IHouaW5mZXI8dHlwZW9mIFVwZGF0ZUNvbW1hbmRTY2hlbWE+KTogUHJvbWlzZTxUQ29tbWFuZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY3Rpb25DYWxsKCdjb21tYW5kJywgJ1VwZGF0ZUNvbW1hbmQnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlQ29tbWFuZChwYXlsb2FkOiB6LmluZmVyPHR5cGVvZiBEZWxldGVDb21tYW5kU2NoZW1hPik6IFByb21pc2U8VENvbW1hbmQ+IHsgICBcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWN0aW9uQ2FsbCgnY29tbWFuZCcsICdEZWxldGVDb21tYW5kJywgcGF5bG9hZCk7XG4gICAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@appconda/sdk",
|
|
3
3
|
"homepage": "https://appconda.io/support",
|
|
4
4
|
"description": "Appconda is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.438",
|
|
6
6
|
"license": "BSD-3-Clause",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
export interface PredictionData {
|
|
2
|
+
chatflowId: string;
|
|
3
|
+
question: string;
|
|
4
|
+
overrideConfig?: Record<string, any>;
|
|
5
|
+
chatId?: string;
|
|
6
|
+
streaming?: boolean;
|
|
7
|
+
history?: IMessage[];
|
|
8
|
+
uploads?: IFileUpload[];
|
|
9
|
+
leadEmail?: string
|
|
10
|
+
action?: IAction
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface IAction {
|
|
14
|
+
id?: string;
|
|
15
|
+
elements?: Array<{
|
|
16
|
+
type: string;
|
|
17
|
+
label: string;
|
|
18
|
+
}>;
|
|
19
|
+
mapping?: {
|
|
20
|
+
approve: string;
|
|
21
|
+
reject: string;
|
|
22
|
+
toolCalls: any[];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface IFileUpload {
|
|
27
|
+
data?: string;
|
|
28
|
+
type: string;
|
|
29
|
+
name: string;
|
|
30
|
+
mime: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface IMessage {
|
|
34
|
+
message: string;
|
|
35
|
+
type: MessageType;
|
|
36
|
+
role?: MessageType;
|
|
37
|
+
content?: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
type MessageType = 'apiMessage' | 'userMessage';
|
|
41
|
+
|
|
42
|
+
export interface StreamResponse {
|
|
43
|
+
event: string;
|
|
44
|
+
data: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
interface EmploidClientOptions {
|
|
48
|
+
baseUrl?: string;
|
|
49
|
+
apiKey?: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
type PredictionResponse<T extends PredictionData> = T['streaming'] extends true
|
|
53
|
+
? AsyncGenerator<StreamResponse, void, unknown> // Streaming returns an async generator
|
|
54
|
+
: Record<string, any>;
|
|
55
|
+
|
|
56
|
+
export default class EmploidClient {
|
|
57
|
+
private baseUrl: string;
|
|
58
|
+
private apiKey: string;
|
|
59
|
+
|
|
60
|
+
constructor(options: EmploidClientOptions = {}) {
|
|
61
|
+
this.baseUrl = options.baseUrl || 'http://localhost:3000';
|
|
62
|
+
this.apiKey = options.apiKey || '';
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Method to create a new prediction and handle streaming response
|
|
66
|
+
async createPrediction<T extends PredictionData>(
|
|
67
|
+
data: T
|
|
68
|
+
): Promise<PredictionResponse<T>> {
|
|
69
|
+
const { chatflowId, streaming } = data;
|
|
70
|
+
|
|
71
|
+
// Check if chatflow is available to stream
|
|
72
|
+
const chatFlowStreamingUrl = `${this.baseUrl}/api/v1/chatflows-streaming/${chatflowId}`;
|
|
73
|
+
const resp = await fetch(chatFlowStreamingUrl, {
|
|
74
|
+
method: 'GET',
|
|
75
|
+
headers: {
|
|
76
|
+
'Content-Type': 'application/json',
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
const chatFlowStreamingData = await resp.json();
|
|
81
|
+
const isChatFlowAvailableToStream =
|
|
82
|
+
chatFlowStreamingData.isStreaming || false;
|
|
83
|
+
|
|
84
|
+
const predictionUrl = `${this.baseUrl}/api/v1/prediction/${chatflowId}`;
|
|
85
|
+
|
|
86
|
+
const options: any = {
|
|
87
|
+
method: 'POST',
|
|
88
|
+
headers: {
|
|
89
|
+
'Content-Type': 'application/json',
|
|
90
|
+
},
|
|
91
|
+
body: JSON.stringify(data),
|
|
92
|
+
};
|
|
93
|
+
if (this.apiKey) {
|
|
94
|
+
options.headers['Authorization'] = `Bearer ${this.apiKey}`;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (isChatFlowAvailableToStream && streaming) {
|
|
98
|
+
return {
|
|
99
|
+
async *[Symbol.asyncIterator]() {
|
|
100
|
+
const response = await fetch(predictionUrl, options);
|
|
101
|
+
|
|
102
|
+
if (!response.ok) {
|
|
103
|
+
throw new Error(
|
|
104
|
+
`HTTP error! status: ${response.status}`
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
//@ts-ignore
|
|
109
|
+
const reader = response.body.getReader();
|
|
110
|
+
const decoder = new TextDecoder();
|
|
111
|
+
let buffer = '';
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
while (true) {
|
|
115
|
+
const { done, value } = await reader.read();
|
|
116
|
+
if (done) break;
|
|
117
|
+
|
|
118
|
+
buffer += decoder.decode(value, { stream: true });
|
|
119
|
+
const lines = buffer.split('\n');
|
|
120
|
+
buffer = lines.pop() || '';
|
|
121
|
+
|
|
122
|
+
for (const line of lines) {
|
|
123
|
+
if (line.trim() === '') continue;
|
|
124
|
+
if (line.startsWith('data:')) {
|
|
125
|
+
const stringifiedJson = line.replace(
|
|
126
|
+
'data:',
|
|
127
|
+
''
|
|
128
|
+
);
|
|
129
|
+
const event = JSON.parse(stringifiedJson);
|
|
130
|
+
yield event;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
} finally {
|
|
135
|
+
reader.releaseLock();
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
} as unknown as Promise<PredictionResponse<T>>;
|
|
139
|
+
} else {
|
|
140
|
+
try {
|
|
141
|
+
const response = await fetch(predictionUrl, options);
|
|
142
|
+
const resp = await response.json();
|
|
143
|
+
return resp as Promise<PredictionResponse<T>>;
|
|
144
|
+
} catch (error) {
|
|
145
|
+
throw new Error('Error creating prediction');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -294,10 +294,10 @@ export class EmploidService extends ServiceClient {
|
|
|
294
294
|
}
|
|
295
295
|
|
|
296
296
|
public async CreateCommand(payload: z.infer<typeof CreateCommandSchema>): Promise<TCommand> {
|
|
297
|
-
|
|
298
|
-
if ( typeof payload.
|
|
299
|
-
payload.
|
|
300
|
-
}
|
|
297
|
+
/* debugger
|
|
298
|
+
if ( typeof payload.inputs === 'object' ) {
|
|
299
|
+
payload.inputs = JSON.stringify(payload.inputs) as any;
|
|
300
|
+
} */
|
|
301
301
|
return await this.actionCall('command', 'CreateCommand', payload);
|
|
302
302
|
}
|
|
303
303
|
|