@appconda/sdk 1.0.558 → 1.0.601
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/client.d.ts +0 -8
- package/dist/client.js +8 -75
- package/dist/getAppcondaClient.d.ts +3 -14
- package/dist/getAppcondaClient.js +59 -51
- package/dist/getSDKForService.d.ts +1 -3
- package/dist/getSDKForService.js +4 -4
- package/dist/index.d.ts +1 -5
- package/dist/index.js +1 -3
- package/dist/inputFile.d.ts +6 -0
- package/dist/inputFile.js +16 -0
- package/dist/modules/agent/action.d.ts +29 -0
- package/dist/modules/agent/action.js +53 -0
- package/dist/modules/ai/node/actions.d.ts +4 -0
- package/dist/modules/ai/node/actions.js +14 -0
- package/dist/modules/builder/action.d.ts +18 -0
- package/dist/modules/builder/action.js +214 -0
- package/dist/modules/datasource/action.d.ts +14 -0
- package/dist/modules/datasource/action.js +172 -0
- package/dist/modules/emploid/action.d.ts +73 -0
- package/dist/modules/emploid/action.js +984 -0
- package/dist/modules/emploid/schema.d.ts +6 -11
- package/dist/modules/emploid/schema.js +7 -12
- package/dist/modules/emploid/service.d.ts +2 -3
- package/dist/modules/emploid/service.js +1 -4
- package/dist/modules/emploid/types.d.ts +1 -4
- package/dist/modules/emploid/types.js +1 -1
- package/dist/modules/google/action.d.ts +5 -0
- package/dist/modules/google/action.js +46 -0
- package/dist/modules/hooks/lib/handler.d.ts +3 -0
- package/dist/modules/hooks/lib/handler.js +23 -0
- package/dist/modules/mail/action.d.ts +3 -0
- package/dist/modules/mail/action.js +18 -0
- package/dist/modules/notion/action.d.ts +5 -0
- package/dist/modules/notion/action.js +46 -0
- package/dist/modules/organization/action.d.ts +7 -0
- package/dist/modules/organization/action.js +60 -0
- package/dist/modules/scheduled-job/action.d.ts +70 -0
- package/dist/modules/scheduled-job/action.js +173 -0
- package/dist/modules/scheduled-job/lib/handler.d.ts +3 -0
- package/dist/modules/scheduled-job/lib/handler.js +23 -0
- package/dist/modules/task/action.d.ts +64 -0
- package/dist/modules/task/action.js +758 -0
- package/dist/modules/tenant/actions.d.ts +10 -0
- package/dist/modules/tenant/actions.js +160 -0
- package/dist/modules/waitlist/action.d.ts +6 -0
- package/dist/modules/waitlist/action.js +78 -0
- package/package.json +1 -1
- package/src/client.ts +8 -96
- package/src/getAppcondaClient.ts +58 -69
- package/src/getSDKForService.ts +4 -7
- package/src/index.ts +2 -5
- package/src/modules/emploid/schema.ts +7 -13
- package/src/modules/emploid/service.ts +2 -6
- package/src/modules/emploid/types.ts +1 -6
package/dist/client.d.ts
CHANGED
|
@@ -32,7 +32,6 @@ declare class Client {
|
|
|
32
32
|
forwardeduseragent: string;
|
|
33
33
|
};
|
|
34
34
|
headers: Headers;
|
|
35
|
-
private fetchImpl?;
|
|
36
35
|
/**
|
|
37
36
|
* Set Endpoint
|
|
38
37
|
*
|
|
@@ -60,13 +59,6 @@ declare class Client {
|
|
|
60
59
|
* @returns {this}
|
|
61
60
|
*/
|
|
62
61
|
addHeader(header: string, value: string): this;
|
|
63
|
-
/**
|
|
64
|
-
* Set custom fetch implementation.
|
|
65
|
-
*
|
|
66
|
-
* Useful for Node.js versions without a global fetch.
|
|
67
|
-
*/
|
|
68
|
-
setFetch(fetchImpl: typeof fetch): this;
|
|
69
|
-
private getFetch;
|
|
70
62
|
/**
|
|
71
63
|
* Set Project
|
|
72
64
|
*
|
package/dist/client.js
CHANGED
|
@@ -8,44 +8,6 @@ class AppcondaException extends Error {
|
|
|
8
8
|
this.response = response;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
function hasGlobalFileConstructor() {
|
|
12
|
-
return typeof globalThis !== 'undefined' && typeof globalThis.File !== 'undefined';
|
|
13
|
-
}
|
|
14
|
-
function isFileLike(value) {
|
|
15
|
-
if (!value || typeof value !== 'object') {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
if (hasGlobalFileConstructor() && value instanceof globalThis.File) {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
return typeof value.size === 'number' && typeof value.slice === 'function';
|
|
22
|
-
}
|
|
23
|
-
function getFileName(file, fallbackName = 'upload.bin') {
|
|
24
|
-
if (typeof file.name === 'string' && file.name.length > 0) {
|
|
25
|
-
return file.name;
|
|
26
|
-
}
|
|
27
|
-
return fallbackName;
|
|
28
|
-
}
|
|
29
|
-
function createChunkFile(chunk, filename) {
|
|
30
|
-
if (hasGlobalFileConstructor()) {
|
|
31
|
-
return new globalThis.File([chunk], filename, {
|
|
32
|
-
type: chunk.type || 'application/octet-stream',
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
const blob = new Blob([chunk], {
|
|
36
|
-
type: chunk.type || 'application/octet-stream',
|
|
37
|
-
});
|
|
38
|
-
try {
|
|
39
|
-
Object.defineProperty(blob, 'name', {
|
|
40
|
-
value: filename,
|
|
41
|
-
configurable: true,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
// Fallback for runtimes where Blob is not extensible.
|
|
46
|
-
}
|
|
47
|
-
return blob;
|
|
48
|
-
}
|
|
49
11
|
function getUserAgent() {
|
|
50
12
|
let ua = 'AppcondaNodeJSSDK/14.1.0';
|
|
51
13
|
// `process` is a global in Node.js, but not fully available in all runtimes.
|
|
@@ -139,22 +101,6 @@ class Client {
|
|
|
139
101
|
this.headers[header.toLowerCase()] = value;
|
|
140
102
|
return this;
|
|
141
103
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Set custom fetch implementation.
|
|
144
|
-
*
|
|
145
|
-
* Useful for Node.js versions without a global fetch.
|
|
146
|
-
*/
|
|
147
|
-
setFetch(fetchImpl) {
|
|
148
|
-
this.fetchImpl = fetchImpl;
|
|
149
|
-
return this;
|
|
150
|
-
}
|
|
151
|
-
getFetch() {
|
|
152
|
-
const runtimeFetch = this.fetchImpl ?? (typeof globalThis !== 'undefined' ? globalThis.fetch : undefined);
|
|
153
|
-
if (!runtimeFetch) {
|
|
154
|
-
throw new AppcondaException('Fetch API is not available. Use Node.js 18+ or set a custom fetch with client.setFetch().');
|
|
155
|
-
}
|
|
156
|
-
return runtimeFetch.bind(globalThis);
|
|
157
|
-
}
|
|
158
104
|
/**
|
|
159
105
|
* Set Project
|
|
160
106
|
*
|
|
@@ -283,17 +229,12 @@ class Client {
|
|
|
283
229
|
case 'multipart/form-data':
|
|
284
230
|
const formData = new FormData();
|
|
285
231
|
for (const [key, value] of Object.entries(params)) {
|
|
286
|
-
if (
|
|
287
|
-
formData.append(key, value,
|
|
232
|
+
if (value instanceof File) {
|
|
233
|
+
formData.append(key, value, value.name);
|
|
288
234
|
}
|
|
289
235
|
else if (Array.isArray(value)) {
|
|
290
236
|
for (const nestedValue of value) {
|
|
291
|
-
|
|
292
|
-
formData.append(`${key}[]`, nestedValue, getFileName(nestedValue));
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
formData.append(`${key}[]`, nestedValue);
|
|
296
|
-
}
|
|
237
|
+
formData.append(`${key}[]`, nestedValue);
|
|
297
238
|
}
|
|
298
239
|
}
|
|
299
240
|
else {
|
|
@@ -308,10 +249,7 @@ class Client {
|
|
|
308
249
|
return { uri: url.toString(), options };
|
|
309
250
|
}
|
|
310
251
|
async chunkedUpload(method, url, headers = {}, originalPayload = {}, onProgress) {
|
|
311
|
-
const file = Object.values(originalPayload).find((value) =>
|
|
312
|
-
if (!file) {
|
|
313
|
-
return await this.call(method, url, headers, originalPayload);
|
|
314
|
-
}
|
|
252
|
+
const file = Object.values(originalPayload).find((value) => value instanceof File);
|
|
315
253
|
if (file.size <= Client.CHUNK_SIZE) {
|
|
316
254
|
return await this.call(method, url, headers, originalPayload);
|
|
317
255
|
}
|
|
@@ -324,10 +262,7 @@ class Client {
|
|
|
324
262
|
}
|
|
325
263
|
headers['content-range'] = `bytes ${start}-${end - 1}/${file.size}`;
|
|
326
264
|
const chunk = file.slice(start, end);
|
|
327
|
-
|
|
328
|
-
...originalPayload,
|
|
329
|
-
file: createChunkFile(chunk, getFileName(file)),
|
|
330
|
-
};
|
|
265
|
+
let payload = { ...originalPayload, file: new File([chunk], file.name) };
|
|
331
266
|
response = await this.call(method, url, headers, payload);
|
|
332
267
|
if (onProgress && typeof onProgress === 'function') {
|
|
333
268
|
onProgress({
|
|
@@ -347,8 +282,7 @@ class Client {
|
|
|
347
282
|
}
|
|
348
283
|
async redirect(method, url, headers = {}, params = {}) {
|
|
349
284
|
const { uri, options } = this.prepareRequest(method, url, headers, params);
|
|
350
|
-
const
|
|
351
|
-
const response = await runtimeFetch(uri, {
|
|
285
|
+
const response = await fetch(uri, {
|
|
352
286
|
...options,
|
|
353
287
|
redirect: 'manual'
|
|
354
288
|
});
|
|
@@ -359,10 +293,9 @@ class Client {
|
|
|
359
293
|
}
|
|
360
294
|
async call(method, url, headers = {}, params = {}, responseType = 'json') {
|
|
361
295
|
const { uri, options } = this.prepareRequest(method, url, headers, params);
|
|
362
|
-
const runtimeFetch = this.getFetch();
|
|
363
296
|
let data = null;
|
|
364
297
|
try {
|
|
365
|
-
const response = await
|
|
298
|
+
const response = await fetch(uri, options);
|
|
366
299
|
const warnings = response.headers.get('x-appconda-warning');
|
|
367
300
|
if (warnings) {
|
|
368
301
|
warnings.split(';').forEach((warning) => console.warn('Warning: ' + warning));
|
|
@@ -405,4 +338,4 @@ class Client {
|
|
|
405
338
|
Client.CHUNK_SIZE = 1024 * 1024 * 5;
|
|
406
339
|
export { Client, AppcondaException };
|
|
407
340
|
export { Query } from './query';
|
|
408
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsTUFBTSxpQkFBa0IsU0FBUSxLQUFLO0lBSWpDLFlBQVksT0FBZSxFQUFFLE9BQWUsQ0FBQyxFQUFFLE9BQWUsRUFBRSxFQUFFLFdBQW1CLEVBQUU7UUFDbkYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUFTRCxTQUFTLHdCQUF3QjtJQUM3QixPQUFPLE9BQU8sVUFBVSxLQUFLLFdBQVcsSUFBSSxPQUFRLFVBQWtCLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQztBQUNoRyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBYztJQUM5QixJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLHdCQUF3QixFQUFFLElBQUksS0FBSyxZQUFhLFVBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sT0FBUSxLQUFrQixDQUFDLElBQUksS0FBSyxRQUFRLElBQUksT0FBUSxLQUFrQixDQUFDLEtBQUssS0FBSyxVQUFVLENBQUM7QUFDM0csQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQWMsRUFBRSxZQUFZLEdBQUcsWUFBWTtJQUM1RCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FB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QUFHLElBQUksR0FBRyxDQUFDLEFBQWxCLENBQW1CO0FBaVh4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUM7QUFDckMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG50eXBlIFBheWxvYWQgPSB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG50eXBlIFVwbG9hZFByb2dyZXNzID0ge1xuICAgICRpZDogc3RyaW5nO1xuICAgIHByb2dyZXNzOiBudW1iZXI7XG4gICAgc2l6ZVVwbG9hZGVkOiBudW1iZXI7XG4gICAgY2h1bmtzVG90YWw6IG51bWJlcjtcbiAgICBjaHVua3NVcGxvYWRlZDogbnVtYmVyO1xufVxuXG50eXBlIEhlYWRlcnMgPSB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5jbGFzcyBBcHBjb25kYUV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgICBjb2RlOiBudW1iZXI7XG4gICAgcmVzcG9uc2U6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBjb2RlOiBudW1iZXIgPSAwLCB0eXBlOiBzdHJpbmcgPSAnJywgcmVzcG9uc2U6IHN0cmluZyA9ICcnKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnQXBwY29uZGFFeGNlcHRpb24nO1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgICAgICB0aGlzLnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgfVxufVxuXG50eXBlIEZpbGVMaWtlID0ge1xuICAgIHNpemU6IG51bWJlcjtcbiAgICBzbGljZTogKHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpID0+IEJsb2I7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBoYXNHbG9iYWxGaWxlQ29uc3RydWN0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgKGdsb2JhbFRoaXMgYXMgYW55KS5GaWxlICE9PSAndW5kZWZpbmVkJztcbn1cblxuZnVuY3Rpb24gaXNGaWxlTGlrZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEZpbGVMaWtlIHtcbiAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChoYXNHbG9iYWxGaWxlQ29uc3RydWN0b3IoKSAmJiB2YWx1ZSBpbnN0YW5jZW9mIChnbG9iYWxUaGlzIGFzIGFueSkuRmlsZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mICh2YWx1ZSBhcyBGaWxlTGlrZSkuc2l6ZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mICh2YWx1ZSBhcyBGaWxlTGlrZSkuc2xpY2UgPT09ICdmdW5jdGlvbic7XG59XG5cbmZ1bmN0aW9uIGdldEZpbGVOYW1lKGZpbGU6IEZpbGVMaWtlLCBmYWxsYmFja05hbWUgPSAndXBsb2FkLmJpbicpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgZmlsZS5uYW1lID09PSAnc3RyaW5nJyAmJiBmaWxlLm5hbWUubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gZmlsZS5uYW1lO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxsYmFja05hbWU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNodW5rRmlsZShjaHVuazogQmxvYiwgZmlsZW5hbWU6IHN0cmluZyk6IEJsb2IgfCBGaWxlIHtcbiAgICBpZiAoaGFzR2xvYmFsRmlsZUNvbnN0cnVjdG9yKCkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyAoZ2xvYmFsVGhpcyBhcyBhbnkpLkZpbGUoW2NodW5rXSwgZmlsZW5hbWUsIHtcbiAgICAgICAgICAgIHR5cGU6IGNodW5rLnR5cGUgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbY2h1bmtdLCB7XG4gICAgICAgIHR5cGU6IGNodW5rLnR5cGUgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgfSkgYXMgQmxvYiAmIHsgbmFtZT86IHN0cmluZyB9O1xuXG4gICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJsb2IsICduYW1lJywge1xuICAgICAgICAgICAgdmFsdWU6IGZpbGVuYW1lLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gRmFsbGJhY2sgZm9yIHJ1bnRpbWVzIHdoZXJlIEJsb2IgaXMgbm90IGV4dGVuc2libGUuXG4gICAgfVxuXG4gICAgcmV0dXJuIGJsb2I7XG59XG5cbmZ1bmN0aW9uIGdldFVzZXJBZ2VudCgpIHtcbiAgICBsZXQgdWEgPSAnQXBwY29uZGFOb2RlSlNTREsvMTQuMS4wJztcblxuICAgIC8vIGBwcm9jZXNzYCBpcyBhIGdsb2JhbCBpbiBOb2RlLmpzLCBidXQgbm90IGZ1bGx5IGF2YWlsYWJsZSBpbiBhbGwgcnVudGltZXMuXG4gICAgY29uc3QgcGxhdGZvcm06IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mIHByb2Nlc3MucGxhdGZvcm0gPT09ICdzdHJpbmcnKSBwbGF0Zm9ybS5wdXNoKHByb2Nlc3MucGxhdGZvcm0pO1xuICAgICAgICBpZiAodHlwZW9mIHByb2Nlc3MuYXJjaCA9PT0gJ3N0cmluZycpIHBsYXRmb3JtLnB1c2gocHJvY2Vzcy5hcmNoKTtcbiAgICB9XG4gICAgaWYgKHBsYXRmb3JtLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdWEgKz0gYCAoJHtwbGF0Zm9ybS5qb2luKCc7ICcpfSlgO1xuICAgIH1cblxuICAgIC8vIGBuYXZpZ2F0b3IudXNlckFnZW50YCBpcyBhdmFpbGFibGUgaW4gTm9kZS5qcyAyMSBhbmQgbGF0ZXIuXG4gICAgLy8gSXQncyBhbHNvIHBhcnQgb2YgdGhlIFdpbnRlckNHIHNwZWMsIHNvIG1hbnkgZWRnZSBydW50aW1lcyBwcm92aWRlIGl0LlxuICAgIC8vIGh0dHBzOi8vY29tbW9uLW1pbi1hcGkucHJvcG9zYWwud2ludGVyY2cub3JnLyNyZXF1aXJlbWVudHMtZm9yLW5hdmlnYXRvcnVzZXJhZ2VudFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5hdmlnYXRvci51c2VyQWdlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdWEgKz0gYCAke25hdmlnYXRvci51c2VyQWdlbnR9YDtcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZ2xvYmFsVGhpcy5FZGdlUnVudGltZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdWEgKz0gYCBFZGdlUnVudGltZWA7XG5cbiAgICAgICAgLy8gT2xkZXIgTm9kZS5qcyB2ZXJzaW9ucyBkb24ndCBoYXZlIGBuYXZpZ2F0b3IudXNlckFnZW50YCwgc28gd2UgaGF2ZSB0byB1c2UgYHByb2Nlc3MudmVyc2lvbmAuXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHByb2Nlc3MudmVyc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdWEgKz0gYCBOb2RlLmpzLyR7cHJvY2Vzcy52ZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVhO1xufVxuXG5jbGFzcyBDbGllbnQge1xuICAgIHN0YXRpYyBDSFVOS19TSVpFID0gMTAyNCAqIDEwMjQgKiA1O1xuXG4gICAgY29uZmlnID0ge1xuICAgICAgICBlbmRwb2ludDogJ2h0dHBzOi8vY2xvdWQuYXBwY29uZGEuaW8vdjEnLFxuICAgICAgICBzZWxmU2lnbmVkOiBmYWxzZSxcbiAgICAgICAgcHJvamVjdDogJycsXG4gICAgICAgIG1vZGU6ICcnLFxuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBqd3Q6ICcnLFxuICAgICAgICBsb2NhbGU6ICcnLFxuICAgICAgICBzZXNzaW9uOiAnJyxcbiAgICAgICAgZm9yd2FyZGVkdXNlcmFnZW50OiAnJyxcbiAgICB9O1xuICAgIGhlYWRlcnM6IEhlYWRlcnMgPSB7XG4gICAgICAgICd4LXNkay1uYW1lJzogJ05vZGUuanMnLFxuICAgICAgICAneC1zZGstcGxhdGZvcm0nOiAnc2VydmVyJyxcbiAgICAgICAgJ3gtc2RrLWxhbmd1YWdlJzogJ25vZGVqcycsXG4gICAgICAgICd4LXNkay12ZXJzaW9uJzogJzE0LjEuMCcsXG4gICAgICAgICd1c2VyLWFnZW50JzogZ2V0VXNlckFnZW50KCksXG4gICAgICAgICdYLUFwcGNvbmRhLVJlc3BvbnNlLUZvcm1hdCc6ICcxLjYuMCcsXG4gICAgfTtcbiAgICBwcml2YXRlIGZldGNoSW1wbD86IHR5cGVvZiBmZXRjaDtcblxuICAgIC8qKlxuICAgICAqIFNldCBFbmRwb2ludFxuICAgICAqXG4gICAgICogWW91ciBwcm9qZWN0IGVuZHBvaW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZW5kcG9pbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfVxuICAgICAqL1xuICAgIHNldEVuZHBvaW50KGVuZHBvaW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5jb25maWcuZW5kcG9pbnQgPSBlbmRwb2ludDtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgc2VsZi1zaWduZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2VsZlNpZ25lZFxuICAgICAqXG4gICAgICogQHJldHVybnMge3RoaXN9XG4gICAgICovXG4gICAgc2V0U2VsZlNpZ25lZChzZWxmU2lnbmVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzLkVkZ2VSdW50aW1lICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdzZXRTZWxmU2lnbmVkIGlzIG5vdCBzdXBwb3J0ZWQgaW4gZWRnZSBydW50aW1lcy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnLnNlbGZTaWduZWQgPSBzZWxmU2lnbmVkO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBoZWFkZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBoZWFkZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfVxuICAgICAqL1xuICAgIGFkZEhlYWRlcihoZWFkZXI6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhlYWRlcnNbaGVhZGVyLnRvTG93ZXJDYXNlKCldID0gdmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGN1c3RvbSBmZXRjaCBpbXBsZW1lbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIFVzZWZ1bCBmb3IgTm9kZS5qcyB2ZXJzaW9ucyB3aXRob3V0IGEgZ2xvYmFsIGZldGNoLlxuICAgICAqL1xuICAgIHNldEZldGNoKGZldGNoSW1wbDogdHlwZW9mIGZldGNoKTogdGhpcyB7XG4gICAgICAgIHRoaXMuZmV0Y2hJbXBsID0gZmV0Y2hJbXBsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZldGNoKCk6IHR5cGVvZiBmZXRjaCB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVGZXRjaCA9IHRoaXMuZmV0Y2hJbXBsID8/ICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWxUaGlzLmZldGNoIDogdW5kZWZpbmVkKTtcblxuICAgICAgICBpZiAoIXJ1bnRpbWVGZXRjaCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEFwcGNvbmRhRXhjZXB0aW9uKCdGZXRjaCBBUEkgaXMgbm90IGF2YWlsYWJsZS4gVXNlIE5vZGUuanMgMTgrIG9yIHNldCBhIGN1c3RvbSBmZXRjaCB3aXRoIGNsaWVudC5zZXRGZXRjaCgpLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVGZXRjaC5iaW5kKGdsb2JhbFRoaXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBQcm9qZWN0XG4gICAgICpcbiAgICAgKiBZb3VyIHByb2plY3QgSURcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9XG4gICAgICovXG4gICAgc2V0UHJvamVjdCh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snWC1BcHBjb25kYS1Qcm9qZWN0J10gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb25maWcucHJvamVjdCA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAgIC8qKlxuICAgICAqIFNldCBNb2RlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgc3RyaW5nXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHt0aGlzfVxuICAgICAqL1xuICAgICAgc2V0TW9kZSh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snWC1BcHBjb25kYS1Nb2RlJ10gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb25maWcubW9kZSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgS2V5XG4gICAgICpcbiAgICAgKiBZb3VyIHNlY3JldCBBUEkga2V5XG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgc3RyaW5nXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHt0aGlzfVxuICAgICAqL1xuICAgIHNldEtleSh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snWC1BcHBjb25kYS1LZXknXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbmZpZy5rZXkgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCBKV1RcbiAgICAgKlxuICAgICAqIFlvdXIgc2VjcmV0IEpTT04gV2ViIFRva2VuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgc3RyaW5nXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHt0aGlzfVxuICAgICAqL1xuICAgIHNldEpXVCh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snWC1BcHBjb25kYS1KV1QnXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbmZpZy5qd3QgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCBMb2NhbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9XG4gICAgICovXG4gICAgc2V0TG9jYWxlKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydYLUFwcGNvbmRhLUxvY2FsZSddID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29uZmlnLmxvY2FsZSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IFNlc3Npb25cbiAgICAgKlxuICAgICAqIFRoZSB1c2VyIHNlc3Npb24gdG8gYXV0aGVudGljYXRlIHdpdGhcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9XG4gICAgICovXG4gICAgc2V0U2Vzc2lvbih2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snWC1BcHBjb25kYS1TZXNzaW9uJ10gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb25maWcuc2Vzc2lvbiA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IEZvcndhcmRlZFVzZXJBZ2VudFxuICAgICAqXG4gICAgICogVGhlIHVzZXIgYWdlbnQgc3RyaW5nIG9mIHRoZSBjbGllbnQgdGhhdCBtYWRlIHRoZSByZXF1ZXN0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgc3RyaW5nXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHt0aGlzfVxuICAgICAqL1xuICAgIHNldEZvcndhcmRlZFVzZXJBZ2VudCh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snWC1Gb3J3YXJkZWQtVXNlci1BZ2VudCddID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29uZmlnLmZvcndhcmRlZHVzZXJhZ2VudCA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzZXRGYWxsYmFja0Nvb2tpZXModmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhlYWRlcnNbJ1gtRmFsbGJhY2stQ29va2llcyddID0gdmFsdWU7XG4gICAgICAgIC8vdGhpcy5jb25maWcuZm9yd2FyZGVkdXNlcmFnZW50ID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHByZXBhcmVSZXF1ZXN0KG1ldGhvZDogc3RyaW5nLCB1cmw6IFVSTCwgaGVhZGVyczogSGVhZGVycyA9IHt9LCBwYXJhbXM6IFBheWxvYWQgPSB7fSk6IHsgdXJpOiBzdHJpbmcsIG9wdGlvbnM6IFJlcXVlc3RJbml0IH0ge1xuICAgICAgICBtZXRob2QgPSBtZXRob2QudG9VcHBlckNhc2UoKTtcblxuICAgICAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5oZWFkZXJzLCBoZWFkZXJzKTtcblxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmxvY2FsU3RvcmFnZSkge1xuICAgICAgICAgICAgY29uc3QgY29va2llRmFsbGJhY2sgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Nvb2tpZUZhbGxiYWNrJyk7XG4gICAgICAgICAgICBpZiAoY29va2llRmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzWydYLUZhbGxiYWNrLUNvb2tpZXMnXSA9IGNvb2tpZUZhbGxiYWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG9wdGlvbnM6IFJlcXVlc3RJbml0ID0ge1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoaGVhZGVyc1snWC1BcHBjb25kYS1EZXYtS2V5J10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9ICdpbmNsdWRlJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhDbGllbnQuZmxhdHRlbihwYXJhbXMpKSkge1xuICAgICAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoIChoZWFkZXJzWydjb250ZW50LXR5cGUnXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL2pzb24nOlxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ211bHRpcGFydC9mb3JtLWRhdGEnOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0ZpbGVMaWtlKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHZhbHVlIGFzIHVua25vd24gYXMgQmxvYiwgZ2V0RmlsZU5hbWUodmFsdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5lc3RlZFZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0ZpbGVMaWtlKG5lc3RlZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGAke2tleX1bXWAsIG5lc3RlZFZhbHVlIGFzIHVua25vd24gYXMgQmxvYiwgZ2V0RmlsZU5hbWUobmVzdGVkVmFsdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChgJHtrZXl9W11gLCBuZXN0ZWRWYWx1ZSBhcyBhbnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB2YWx1ZSBhcyBhbnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5ib2R5ID0gZm9ybURhdGE7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBoZWFkZXJzWydjb250ZW50LXR5cGUnXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyB1cmk6IHVybC50b1N0cmluZygpLCBvcHRpb25zIH07XG4gICAgfVxuXG4gICAgYXN5bmMgY2h1bmtlZFVwbG9hZChtZXRob2Q6IHN0cmluZywgdXJsOiBVUkwsIGhlYWRlcnM6IEhlYWRlcnMgPSB7fSwgb3JpZ2luYWxQYXlsb2FkOiBQYXlsb2FkID0ge30sIG9uUHJvZ3Jlc3M6IChwcm9ncmVzczogVXBsb2FkUHJvZ3Jlc3MpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IE9iamVjdC52YWx1ZXMob3JpZ2luYWxQYXlsb2FkKS5maW5kKCh2YWx1ZSkgPT4gaXNGaWxlTGlrZSh2YWx1ZSkpIGFzIEZpbGVMaWtlIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICghZmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FsbChtZXRob2QsIHVybCwgaGVhZGVycywgb3JpZ2luYWxQYXlsb2FkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlLnNpemUgPD0gQ2xpZW50LkNIVU5LX1NJWkUpIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNhbGwobWV0aG9kLCB1cmwsIGhlYWRlcnMsIG9yaWdpbmFsUGF5bG9hZCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3RhcnQgPSAwO1xuICAgICAgICBsZXQgcmVzcG9uc2U6IGFueSA9IG51bGw7XG5cbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgZmlsZS5zaXplKSB7XG4gICAgICAgICAgICBsZXQgZW5kID0gc3RhcnQgKyBDbGllbnQuQ0hVTktfU0laRTsgLy8gUHJlcGFyZSBlbmQgZm9yIHRoZSBuZXh0IGNodW5rXG4gICAgICAgICAgICBpZiAoZW5kID49IGZpbGUuc2l6ZSkge1xuICAgICAgICAgICAgICAgIGVuZCA9IGZpbGUuc2l6ZTsgLy8gQWRqdXN0IGZvciB0aGUgbGFzdCBjaHVuayB0byBpbmNsdWRlIHRoZSBsYXN0IGJ5dGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaGVhZGVyc1snY29udGVudC1yYW5nZSddID0gYGJ5dGVzICR7c3RhcnR9LSR7ZW5kIC0gMX0vJHtmaWxlLnNpemV9YDtcbiAgICAgICAgICAgIGNvbnN0IGNodW5rID0gZmlsZS5zbGljZShzdGFydCwgZW5kKTtcblxuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICAuLi5vcmlnaW5hbFBheWxvYWQsXG4gICAgICAgICAgICAgICAgZmlsZTogY3JlYXRlQ2h1bmtGaWxlKGNodW5rLCBnZXRGaWxlTmFtZShmaWxlKSksXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbChtZXRob2QsIHVybCwgaGVhZGVycywgcGF5bG9hZCk7XG5cbiAgICAgICAgICAgIGlmIChvblByb2dyZXNzICYmIHR5cGVvZiBvblByb2dyZXNzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgb25Qcm9ncmVzcyh7XG4gICAgICAgICAgICAgICAgICAgICRpZDogcmVzcG9uc2UuJGlkLFxuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzczogTWF0aC5yb3VuZCgoZW5kIC8gZmlsZS5zaXplKSAqIDEwMCksXG4gICAgICAgICAgICAgICAgICAgIHNpemVVcGxvYWRlZDogZW5kLFxuICAgICAgICAgICAgICAgICAgICBjaHVua3NUb3RhbDogTWF0aC5jZWlsKGZpbGUuc2l6ZSAvIENsaWVudC5DSFVOS19TSVpFKSxcbiAgICAgICAgICAgICAgICAgICAgY2h1bmtzVXBsb2FkZWQ6IE1hdGguY2VpbChlbmQgLyBDbGllbnQuQ0hVTktfU0laRSlcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLiRpZCkge1xuICAgICAgICAgICAgICAgIGhlYWRlcnNbJ3gtYXBwY29uZGEtaWQnXSA9IHJlc3BvbnNlLiRpZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhcnQgPSBlbmQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVkaXJlY3QobWV0aG9kOiBzdHJpbmcsIHVybDogVVJMLCBoZWFkZXJzOiBIZWFkZXJzID0ge30sIHBhcmFtczogUGF5bG9hZCA9IHt9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgeyB1cmksIG9wdGlvbnMgfSA9IHRoaXMucHJlcGFyZVJlcXVlc3QobWV0aG9kLCB1cmwsIGhlYWRlcnMsIHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVGZXRjaCA9IHRoaXMuZ2V0RmV0Y2goKTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJ1bnRpbWVGZXRjaCh1cmksIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICByZWRpcmVjdDogJ21hbnVhbCdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMzAxICYmIHJlc3BvbnNlLnN0YXR1cyAhPT0gMzAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXBwY29uZGFFeGNlcHRpb24oJ0ludmFsaWQgcmVkaXJlY3QnLCByZXNwb25zZS5zdGF0dXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdsb2NhdGlvbicpIHx8ICcnO1xuICAgIH1cblxuICAgIGFzeW5jIGNhbGwobWV0aG9kOiBzdHJpbmcsIHVybDogVVJMLCBoZWFkZXJzOiBIZWFkZXJzID0ge30sIHBhcmFtczogUGF5bG9hZCA9IHt9LCByZXNwb25zZVR5cGUgPSAnanNvbicpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCB7IHVyaSwgb3B0aW9ucyB9ID0gdGhpcy5wcmVwYXJlUmVxdWVzdChtZXRob2QsIHVybCwgaGVhZGVycywgcGFyYW1zKTtcbiAgICAgICAgY29uc3QgcnVudGltZUZldGNoID0gdGhpcy5nZXRGZXRjaCgpO1xuXG4gICAgICAgIGxldCBkYXRhOiBhbnkgPSBudWxsO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJ1bnRpbWVGZXRjaCh1cmksIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICBjb25zdCB3YXJuaW5ncyA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LWFwcGNvbmRhLXdhcm5pbmcnKTtcbiAgICAgICAgICAgIGlmICh3YXJuaW5ncykge1xuICAgICAgICAgICAgICAgIHdhcm5pbmdzLnNwbGl0KCc7JykuZm9yRWFjaCgod2FybmluZzogc3RyaW5nKSA9PiBjb25zb2xlLndhcm4oJ1dhcm5pbmc6ICcgKyB3YXJuaW5nKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZVR5cGUgPT09ICdhcnJheUJ1ZmZlcicpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gYXdhaXQgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYXdhaXQgcmVzcG9uc2UudGV4dCgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKDQwMCA8PSByZXNwb25zZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXBwY29uZGFFeGNlcHRpb24oZGF0YT8ubWVzc2FnZSwgcmVzcG9uc2Uuc3RhdHVzLCBkYXRhPy50eXBlLCBkYXRhKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGZsYXR0ZW4oZGF0YTogUGF5bG9hZCwgcHJlZml4ID0gJycpOiBQYXlsb2FkIHtcbiAgICAgICAgbGV0IG91dHB1dDogUGF5bG9hZCA9IHt9O1xuXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRhdGEpKSB7XG4gICAgICAgICAgICBsZXQgZmluYWxLZXkgPSBwcmVmaXggPyBwcmVmaXggKyAnWycgKyBrZXkgKyAnXScgOiBrZXk7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSB7IC4uLm91dHB1dCwgLi4uQ2xpZW50LmZsYXR0ZW4odmFsdWUsIGZpbmFsS2V5KSB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbZmluYWxLZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbn1cblxuZXhwb3J0IHsgQ2xpZW50LCBBcHBjb25kYUV4Y2VwdGlvbiB9O1xuZXhwb3J0IHsgUXVlcnkgfSBmcm9tICcuL3F1ZXJ5JztcbmV4cG9ydCB0eXBlIHsgTW9kZWxzLCBQYXlsb2FkLCBVcGxvYWRQcm9ncmVzcyB9O1xuZXhwb3J0IHR5cGUgeyBRdWVyeVR5cGVzLCBRdWVyeVR5cGVzTGlzdCB9IGZyb20gJy4vcXVlcnknO1xuIl19
|
|
341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsTUFBTSxpQkFBa0IsU0FBUSxLQUFLO0lBSWpDLFlBQVksT0FBZSxFQUFFLE9BQWUsQ0FBQyxFQUFFLE9BQWUsRUFBRSxFQUFFLFdBQW1CLEVBQUU7UUFDbkYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUFFRCxTQUFTLFlBQVk7SUFDakIsSUFBSSxFQUFFLEdBQUcsMEJBQTBCLENBQUM7SUFFcEMsNkVBQTZFO0lBQzdFLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUM5QixJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVE7WUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxJQUFJLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRO1lBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QixFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDdEMsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCx5RUFBeUU7SUFDekUsb0ZBQW9G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SyxFQUFFLE1BQU0sU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5cbnR5cGUgUGF5bG9hZCA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbnR5cGUgVXBsb2FkUHJvZ3Jlc3MgPSB7XG4gICAgJGlkOiBzdHJpbmc7XG4gICAgcHJvZ3Jlc3M6IG51bWJlcjtcbiAgICBzaXplVXBsb2FkZWQ6IG51bWJlcjtcbiAgICBjaHVua3NUb3RhbDogbnVtYmVyO1xuICAgIGNodW5rc1VwbG9hZGVkOiBudW1iZXI7XG59XG5cbnR5cGUgSGVhZGVycyA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmNsYXNzIEFwcGNvbmRhRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvZGU6IG51bWJlcjtcbiAgICByZXNwb25zZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGNvZGU6IG51bWJlciA9IDAsIHR5cGU6IHN0cmluZyA9ICcnLCByZXNwb25zZTogc3RyaW5nID0gJycpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdBcHBjb25kYUV4Y2VwdGlvbic7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldFVzZXJBZ2VudCgpIHtcbiAgICBsZXQgdWEgPSAnQXBwY29uZGFOb2RlSlNTREsvMTQuMS4wJztcblxuICAgIC8vIGBwcm9jZXNzYCBpcyBhIGdsb2JhbCBpbiBOb2RlLmpzLCBidXQgbm90IGZ1bGx5IGF2YWlsYWJsZSBpbiBhbGwgcnVudGltZXMuXG4gICAgY29uc3QgcGxhdGZvcm06IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mIHByb2Nlc3MucGxhdGZvcm0gPT09ICdzdHJpbmcnKSBwbGF0Zm9ybS5wdXNoKHByb2Nlc3MucGxhdGZvcm0pO1xuICAgICAgICBpZiAodHlwZW9mIHByb2Nlc3MuYXJjaCA9PT0gJ3N0cmluZycpIHBsYXRmb3JtLnB1c2gocHJvY2Vzcy5hcmNoKTtcbiAgICB9XG4gICAgaWYgKHBsYXRmb3JtLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdWEgKz0gYCAoJHtwbGF0Zm9ybS5qb2luKCc7ICcpfSlgO1xuICAgIH1cblxuICAgIC8vIGBuYXZpZ2F0b3IudXNlckFnZW50YCBpcyBhdmFpbGFibGUgaW4gTm9kZS5qcyAyMSBhbmQgbGF0ZXIuXG4gICAgLy8gSXQncyBhbHNvIHBhcnQgb2YgdGhlIFdpbnRlckNHIHNwZWMsIHNvIG1hbnkgZWRnZSBydW50aW1lcyBwcm92aWRlIGl0LlxuICAgIC8vIGh0dHBzOi8vY29tbW9uLW1pbi1hcGkucHJvcG9zYWwud2ludGVyY2cub3JnLyNyZXF1aXJlbWVudHMtZm9yLW5hdmlnYXRvcnVzZXJhZ2VudFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5hdmlnYXRvci51c2VyQWdlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdWEgKz0gYCAke25hdmlnYXRvci51c2VyQWdlbnR9YDtcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZ2xvYmFsVGhpcy5FZGdlUnVudGltZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdWEgKz0gYCBFZGdlUnVudGltZWA7XG5cbiAgICAgICAgLy8gT2xkZXIgTm9kZS5qcyB2ZXJzaW9ucyBkb24ndCBoYXZlIGBuYXZpZ2F0b3IudXNlckFnZW50YCwgc28gd2UgaGF2ZSB0byB1c2UgYHByb2Nlc3MudmVyc2lvbmAuXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHByb2Nlc3MudmVyc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdWEgKz0gYCBOb2RlLmpzLyR7cHJvY2Vzcy52ZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVhO1xufVxuXG5jbGFzcyBDbGllbnQge1xuICAgIHN0YXRpYyBDSFVOS19TSVpFID0gMTAyNCAqIDEwMjQgKiA1O1xuXG4gICAgY29uZmlnID0ge1xuICAgICAgICBlbmRwb2ludDogJ2h0dHBzOi8vY2xvdWQuYXBwY29uZGEuaW8vdjEnLFxuICAgICAgICBzZWxmU2lnbmVkOiBmYWxzZSxcbiAgICAgICAgcHJvamVjdDogJycsXG4gICAgICAgIG1vZGU6ICcnLFxuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBqd3Q6ICcnLFxuICAgICAgICBsb2NhbGU6ICcnLFxuICAgICAgICBzZXNzaW9uOiAnJyxcbiAgICAgICAgZm9yd2FyZGVkdXNlcmFnZW50OiAnJyxcbiAgICB9O1xuICAgIGhlYWRlcnM6IEhlYWRlcnMgPSB7XG4gICAgICAgICd4LXNkay1uYW1lJzogJ05vZGUuanMnLFxuICAgICAgICAneC1zZGstcGxhdGZvcm0nOiAnc2VydmVyJyxcbiAgICAgICAgJ3gtc2RrLWxhbmd1YWdlJzogJ25vZGVqcycsXG4gICAgICAgICd4LXNkay12ZXJzaW9uJzogJzE0LjEuMCcsXG4gICAgICAgICd1c2VyLWFnZW50JzogZ2V0VXNlckFnZW50KCksXG4gICAgICAgICdYLUFwcGNvbmRhLVJlc3BvbnNlLUZvcm1hdCc6ICcxLjYuMCcsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldCBFbmRwb2ludFxuICAgICAqXG4gICAgICogWW91ciBwcm9qZWN0IGVuZHBvaW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZW5kcG9pbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfVxuICAgICAqL1xuICAgIHNldEVuZHBvaW50KGVuZHBvaW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5jb25maWcuZW5kcG9pbnQgPSBlbmRwb2ludDtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgc2VsZi1zaWduZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2VsZlNpZ25lZFxuICAgICAqXG4gICAgICogQHJldHVybnMge3RoaXN9XG4gICAgICovXG4gICAgc2V0U2VsZlNpZ25lZChzZWxmU2lnbmVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzLkVkZ2VSdW50aW1lICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdzZXRTZWxmU2lnbmVkIGlzIG5vdCBzdXBwb3J0ZWQgaW4gZWRnZSBydW50aW1lcy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnLnNlbGZTaWduZWQgPSBzZWxmU2lnbmVkO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBoZWFkZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBoZWFkZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfVxuICAgICAqL1xuICAgIGFkZEhlYWRlcihoZWFkZXI6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhlYWRlcnNbaGVhZGVyLnRvTG93ZXJDYXNlKCldID0gdmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IFByb2plY3RcbiAgICAgKlxuICAgICAqIFlvdXIgcHJvamVjdCBJRFxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIHN0cmluZ1xuICAgICAqXG4gICAgICogQHJldHVybiB7dGhpc31cbiAgICAgKi9cbiAgICBzZXRQcm9qZWN0KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydYLUFwcGNvbmRhLVByb2plY3QnXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbmZpZy5wcm9qZWN0ID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgICAgLyoqXG4gICAgICogU2V0IE1vZGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9XG4gICAgICovXG4gICAgICBzZXRNb2RlKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydYLUFwcGNvbmRhLU1vZGUnXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbmZpZy5tb2RlID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBLZXlcbiAgICAgKlxuICAgICAqIFlvdXIgc2VjcmV0IEFQSSBrZXlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9XG4gICAgICovXG4gICAgc2V0S2V5KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydYLUFwcGNvbmRhLUtleSddID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29uZmlnLmtleSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IEpXVFxuICAgICAqXG4gICAgICogWW91ciBzZWNyZXQgSlNPTiBXZWIgVG9rZW5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9XG4gICAgICovXG4gICAgc2V0SldUKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydYLUFwcGNvbmRhLUpXVCddID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29uZmlnLmp3dCA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IExvY2FsZVxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIHN0cmluZ1xuICAgICAqXG4gICAgICogQHJldHVybiB7dGhpc31cbiAgICAgKi9cbiAgICBzZXRMb2NhbGUodmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhlYWRlcnNbJ1gtQXBwY29uZGEtTG9jYWxlJ10gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb25maWcubG9jYWxlID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgU2Vzc2lvblxuICAgICAqXG4gICAgICogVGhlIHVzZXIgc2Vzc2lvbiB0byBhdXRoZW50aWNhdGUgd2l0aFxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIHN0cmluZ1xuICAgICAqXG4gICAgICogQHJldHVybiB7dGhpc31cbiAgICAgKi9cbiAgICBzZXRTZXNzaW9uKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydYLUFwcGNvbmRhLVNlc3Npb24nXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbmZpZy5zZXNzaW9uID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgRm9yd2FyZGVkVXNlckFnZW50XG4gICAgICpcbiAgICAgKiBUaGUgdXNlciBhZ2VudCBzdHJpbmcgb2YgdGhlIGNsaWVudCB0aGF0IG1hZGUgdGhlIHJlcXVlc3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9XG4gICAgICovXG4gICAgc2V0Rm9yd2FyZGVkVXNlckFnZW50KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzWydYLUZvcndhcmRlZC1Vc2VyLUFnZW50J10gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb25maWcuZm9yd2FyZGVkdXNlcmFnZW50ID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHNldEZhbGxiYWNrQ29va2llcyh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGVhZGVyc1snWC1GYWxsYmFjay1Db29raWVzJ10gPSB2YWx1ZTtcbiAgICAgICAgLy90aGlzLmNvbmZpZy5mb3J3YXJkZWR1c2VyYWdlbnQgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHJlcGFyZVJlcXVlc3QobWV0aG9kOiBzdHJpbmcsIHVybDogVVJMLCBoZWFkZXJzOiBIZWFkZXJzID0ge30sIHBhcmFtczogUGF5bG9hZCA9IHt9KTogeyB1cmk6IHN0cmluZywgb3B0aW9uczogUmVxdWVzdEluaXQgfSB7XG4gICAgICAgIG1ldGhvZCA9IG1ldGhvZC50b1VwcGVyQ2FzZSgpO1xuXG4gICAgICAgIGhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMsIGhlYWRlcnMpO1xuXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cubG9jYWxTdG9yYWdlKSB7XG4gICAgICAgICAgICBjb25zdCBjb29raWVGYWxsYmFjayA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY29va2llRmFsbGJhY2snKTtcbiAgICAgICAgICAgIGlmIChjb29raWVGYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGhlYWRlcnNbJ1gtRmFsbGJhY2stQ29va2llcyddID0gY29va2llRmFsbGJhY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChoZWFkZXJzWydYLUFwcGNvbmRhLURldi1LZXknXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gJ2luY2x1ZGUnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKENsaWVudC5mbGF0dGVuKHBhcmFtcykpKSB7XG4gICAgICAgICAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24vanNvbic6XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYm9keSA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHZhbHVlLCB2YWx1ZS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5lc3RlZFZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChgJHtrZXl9W11gLCBuZXN0ZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBmb3JtRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IHVyaTogdXJsLnRvU3RyaW5nKCksIG9wdGlvbnMgfTtcbiAgICB9XG5cbiAgICBhc3luYyBjaHVua2VkVXBsb2FkKG1ldGhvZDogc3RyaW5nLCB1cmw6IFVSTCwgaGVhZGVyczogSGVhZGVycyA9IHt9LCBvcmlnaW5hbFBheWxvYWQ6IFBheWxvYWQgPSB7fSwgb25Qcm9ncmVzczogKHByb2dyZXNzOiBVcGxvYWRQcm9ncmVzcykgPT4gdm9pZCkge1xuICAgICAgICBjb25zdCBmaWxlOiBhbnkgPSBPYmplY3QudmFsdWVzKG9yaWdpbmFsUGF5bG9hZCkuZmluZCgodmFsdWUpID0+IHZhbHVlIGluc3RhbmNlb2YgRmlsZSk7XG5cbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA8PSBDbGllbnQuQ0hVTktfU0laRSkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FsbChtZXRob2QsIHVybCwgaGVhZGVycywgb3JpZ2luYWxQYXlsb2FkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzdGFydCA9IDA7XG4gICAgICAgIGxldCByZXNwb25zZTogYW55ID0gbnVsbDtcblxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBmaWxlLnNpemUpIHtcbiAgICAgICAgICAgIGxldCBlbmQgPSBzdGFydCArIENsaWVudC5DSFVOS19TSVpFOyAvLyBQcmVwYXJlIGVuZCBmb3IgdGhlIG5leHQgY2h1bmtcbiAgICAgICAgICAgIGlmIChlbmQgPj0gZmlsZS5zaXplKSB7XG4gICAgICAgICAgICAgICAgZW5kID0gZmlsZS5zaXplOyAvLyBBZGp1c3QgZm9yIHRoZSBsYXN0IGNodW5rIHRvIGluY2x1ZGUgdGhlIGxhc3QgYnl0ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoZWFkZXJzWydjb250ZW50LXJhbmdlJ10gPSBgYnl0ZXMgJHtzdGFydH0tJHtlbmQgLSAxfS8ke2ZpbGUuc2l6ZX1gO1xuICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBmaWxlLnNsaWNlKHN0YXJ0LCBlbmQpO1xuXG4gICAgICAgICAgICBsZXQgcGF5bG9hZCA9IHsgLi4ub3JpZ2luYWxQYXlsb2FkLCBmaWxlOiBuZXcgRmlsZShbY2h1bmtdLCBmaWxlLm5hbWUpIH07XG5cbiAgICAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsKG1ldGhvZCwgdXJsLCBoZWFkZXJzLCBwYXlsb2FkKTtcblxuICAgICAgICAgICAgaWYgKG9uUHJvZ3Jlc3MgJiYgdHlwZW9mIG9uUHJvZ3Jlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBvblByb2dyZXNzKHtcbiAgICAgICAgICAgICAgICAgICAgJGlkOiByZXNwb25zZS4kaWQsXG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBNYXRoLnJvdW5kKChlbmQgLyBmaWxlLnNpemUpICogMTAwKSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZVVwbG9hZGVkOiBlbmQsXG4gICAgICAgICAgICAgICAgICAgIGNodW5rc1RvdGFsOiBNYXRoLmNlaWwoZmlsZS5zaXplIC8gQ2xpZW50LkNIVU5LX1NJWkUpLFxuICAgICAgICAgICAgICAgICAgICBjaHVua3NVcGxvYWRlZDogTWF0aC5jZWlsKGVuZCAvIENsaWVudC5DSFVOS19TSVpFKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuJGlkKSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyc1sneC1hcHBjb25kYS1pZCddID0gcmVzcG9uc2UuJGlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGFydCA9IGVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICBhc3luYyByZWRpcmVjdChtZXRob2Q6IHN0cmluZywgdXJsOiBVUkwsIGhlYWRlcnM6IEhlYWRlcnMgPSB7fSwgcGFyYW1zOiBQYXlsb2FkID0ge30pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCB7IHVyaSwgb3B0aW9ucyB9ID0gdGhpcy5wcmVwYXJlUmVxdWVzdChtZXRob2QsIHVybCwgaGVhZGVycywgcGFyYW1zKTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVyaSwge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHJlZGlyZWN0OiAnbWFudWFsJ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAzMDEgJiYgcmVzcG9uc2Uuc3RhdHVzICE9PSAzMDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBBcHBjb25kYUV4Y2VwdGlvbignSW52YWxpZCByZWRpcmVjdCcsIHJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2xvY2F0aW9uJykgfHwgJyc7XG4gICAgfVxuXG4gICAgYXN5bmMgY2FsbChtZXRob2Q6IHN0cmluZywgdXJsOiBVUkwsIGhlYWRlcnM6IEhlYWRlcnMgPSB7fSwgcGFyYW1zOiBQYXlsb2FkID0ge30sIHJlc3BvbnNlVHlwZSA9ICdqc29uJyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHsgdXJpLCBvcHRpb25zIH0gPSB0aGlzLnByZXBhcmVSZXF1ZXN0KG1ldGhvZCwgdXJsLCBoZWFkZXJzLCBwYXJhbXMpO1xuXG4gICAgICAgIGxldCBkYXRhOiBhbnkgPSBudWxsO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVyaSwgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmdzID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtYXBwY29uZGEtd2FybmluZycpO1xuICAgICAgICAgICAgaWYgKHdhcm5pbmdzKSB7XG4gICAgICAgICAgICAgICAgd2FybmluZ3Muc3BsaXQoJzsnKS5mb3JFYWNoKCh3YXJuaW5nOiBzdHJpbmcpID0+IGNvbnNvbGUud2FybignV2FybmluZzogJyArIHdhcm5pbmcpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlVHlwZSA9PT0gJ2FycmF5QnVmZmVyJykge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoNDAwIDw9IHJlc3BvbnNlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcHBjb25kYUV4Y2VwdGlvbihkYXRhPy5tZXNzYWdlLCByZXNwb25zZS5zdGF0dXMsIGRhdGE/LnR5cGUsIGRhdGEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgZmxhdHRlbihkYXRhOiBQYXlsb2FkLCBwcmVmaXggPSAnJyk6IFBheWxvYWQge1xuICAgICAgICBsZXQgb3V0cHV0OiBQYXlsb2FkID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YSkpIHtcbiAgICAgICAgICAgIGxldCBmaW5hbEtleSA9IHByZWZpeCA/IHByZWZpeCArICdbJyArIGtleSArICddJyA6IGtleTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIG91dHB1dCA9IHsgLi4ub3V0cHV0LCAuLi5DbGllbnQuZmxhdHRlbih2YWx1ZSwgZmluYWxLZXkpIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFtmaW5hbEtleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxufVxuXG5leHBvcnQgeyBDbGllbnQsIEFwcGNvbmRhRXhjZXB0aW9uIH07XG5leHBvcnQgeyBRdWVyeSB9IGZyb20gJy4vcXVlcnknO1xuZXhwb3J0IHR5cGUgeyBNb2RlbHMsIFBheWxvYWQsIFVwbG9hZFByb2dyZXNzIH07XG5leHBvcnQgdHlwZSB7IFF1ZXJ5VHlwZXMsIFF1ZXJ5VHlwZXNMaXN0IH0gZnJvbSAnLi9xdWVyeSc7XG4iXX0=
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
import { Client } from
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
project?: string;
|
|
5
|
-
mode?: string;
|
|
6
|
-
key?: string;
|
|
7
|
-
jwt?: string;
|
|
8
|
-
session?: string;
|
|
9
|
-
locale?: string;
|
|
10
|
-
forwardedUserAgent?: string;
|
|
11
|
-
headers?: Record<string, string>;
|
|
12
|
-
};
|
|
13
|
-
export declare function getAppcondaClient(options?: AppcondaClientOptions): Client;
|
|
14
|
-
export declare function getAppcondaClientSync(options?: AppcondaClientOptions): Client;
|
|
1
|
+
import { Client } from "./client";
|
|
2
|
+
export declare function getAppcondaClient(): Client;
|
|
3
|
+
export declare function getAppcondaClientSync(): Client;
|
|
@@ -1,60 +1,68 @@
|
|
|
1
|
-
import { Client } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
const envEndpoint = (typeof process !== 'undefined' && process?.env?.APPCONDA_ENDPOINT) ||
|
|
12
|
-
(typeof process !== 'undefined' && process?.env?.NEXT_PUBLIC_APPCONDA_ENDPOINT) ||
|
|
13
|
-
'';
|
|
14
|
-
if (envEndpoint) {
|
|
15
|
-
return normalizeEndpoint(envEndpoint);
|
|
1
|
+
import { Client } from "./client";
|
|
2
|
+
function getPortAndHostname(urlString) {
|
|
3
|
+
try {
|
|
4
|
+
const url = new URL(urlString);
|
|
5
|
+
return {
|
|
6
|
+
hostname: url.hostname,
|
|
7
|
+
port: url.port || (url.protocol === 'https:' ? '443' : '80'), // Default ports if not specified
|
|
8
|
+
protocol: url.protocol
|
|
9
|
+
};
|
|
16
10
|
}
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
catch (error) {
|
|
12
|
+
console.error('Invalid URL:', error);
|
|
13
|
+
return { hostname: '', port: '', protocol: '' };
|
|
19
14
|
}
|
|
20
|
-
return APPCONDA_NODE_DEFAULT_ENDPOINT;
|
|
21
15
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
client.setJWT(options.jwt);
|
|
34
|
-
}
|
|
35
|
-
if (options.session) {
|
|
36
|
-
client.setSession(options.session);
|
|
16
|
+
const APPCONDA_ENDPOINT = 'api/appconda/v1';
|
|
17
|
+
export function getAppcondaClient() {
|
|
18
|
+
let url;
|
|
19
|
+
if (typeof window !== 'undefined') {
|
|
20
|
+
const hostInfo = getPortAndHostname(window.location.href);
|
|
21
|
+
if (hostInfo.port) {
|
|
22
|
+
url = `${hostInfo.protocol}//${hostInfo.hostname}:${hostInfo.port}/${APPCONDA_ENDPOINT}`;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
url = `${hostInfo.protocol}//${hostInfo.hostname}/${APPCONDA_ENDPOINT}`;
|
|
26
|
+
}
|
|
37
27
|
}
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
else {
|
|
29
|
+
url = APPCONDA_ENDPOINT || 'http://appconda/v1';
|
|
40
30
|
}
|
|
41
|
-
if (
|
|
42
|
-
|
|
31
|
+
/* if (ApplicationConfig.Port == null) {
|
|
32
|
+
url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}:${ApplicationConfig.Port}/v1`
|
|
33
|
+
} else {
|
|
34
|
+
url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}/v1`
|
|
35
|
+
} */
|
|
36
|
+
const adminClient = new Client()
|
|
37
|
+
.setEndpoint(url) // Your API Endpoint
|
|
38
|
+
.setProject('console');
|
|
39
|
+
return adminClient;
|
|
40
|
+
}
|
|
41
|
+
export function getAppcondaClientSync() {
|
|
42
|
+
let url;
|
|
43
|
+
if (APPCONDA_ENDPOINT) {
|
|
44
|
+
url = APPCONDA_ENDPOINT;
|
|
43
45
|
}
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
else if (typeof window !== 'undefined') {
|
|
47
|
+
const hostInfo = getPortAndHostname(window.location.href);
|
|
48
|
+
if (hostInfo.port) {
|
|
49
|
+
url = `${hostInfo.protocol}//${hostInfo.hostname}:${hostInfo.port}/v1`;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
url = `${hostInfo.protocol}//${hostInfo.hostname}/v1`;
|
|
47
53
|
}
|
|
48
54
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
else {
|
|
56
|
+
url = APPCONDA_ENDPOINT || 'http://appconda/v1';
|
|
57
|
+
}
|
|
58
|
+
/* if (ApplicationConfig.Port == null) {
|
|
59
|
+
url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}:${ApplicationConfig.Port}/v1`
|
|
60
|
+
} else {
|
|
61
|
+
url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}/v1`
|
|
62
|
+
} */
|
|
63
|
+
const adminClient = new Client()
|
|
64
|
+
.setEndpoint(url) // Your API Endpoint
|
|
65
|
+
.setProject('console');
|
|
66
|
+
return adminClient;
|
|
59
67
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QXBwY29uZGFDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2V0QXBwY29uZGFDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxTQUFTLGtCQUFrQixDQUFDLFNBQWlCO0lBQ3pDLElBQUksQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLE9BQU87WUFDSCxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDdEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxpQ0FBaUM7WUFDL0YsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1NBQ3pCLENBQUM7SUFDTixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3BELENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztBQUU1QyxNQUFNLFVBQVUsaUJBQWlCO0lBRTdCLElBQUksR0FBRyxDQUFDO0lBQ1IsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLGlCQUFpQixFQUFFLENBQUE7UUFDNUYsQ0FBQzthQUFNLENBQUM7WUFDSixHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxRQUFRLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtRQUMzRSxDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDSixHQUFHLEdBQUcsaUJBQWlCLElBQUksb0JBQW9CLENBQUE7SUFDbkQsQ0FBQztJQUVEOzs7O1VBSU07SUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sRUFBRTtTQUMzQixXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsb0JBQW9CO1NBQ3JDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUzQixPQUFPLFdBQVcsQ0FBQTtBQUV0QixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQjtJQUVqQyxJQUFJLEdBQUcsQ0FBQztJQUNSLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNwQixHQUFHLEdBQUcsaUJBQWlCLENBQUM7SUFDNUIsQ0FBQztTQUFNLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDdkMsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxDQUFBO1FBQzFFLENBQUM7YUFBTSxDQUFDO1lBQ0osR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsUUFBUSxLQUFLLENBQUE7UUFDekQsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ0osR0FBRyxHQUFHLGlCQUFpQixJQUFJLG9CQUFvQixDQUFBO0lBQ25ELENBQUM7SUFFRDs7OztVQUlNO0lBQ04sTUFBTSxXQUFXLEdBQUcsSUFBSSxNQUFNLEVBQUU7U0FDM0IsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLG9CQUFvQjtTQUNyQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFM0IsT0FBTyxXQUFXLENBQUE7QUFFdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWVudCB9IGZyb20gXCIuL2NsaWVudFwiO1xuXG5mdW5jdGlvbiBnZXRQb3J0QW5kSG9zdG5hbWUodXJsU3RyaW5nOiBzdHJpbmcpOiB7IGhvc3RuYW1lOiBzdHJpbmc7IHBvcnQ6IHN0cmluZzsgcHJvdG9jb2w6IHN0cmluZyB9IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHVybFN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBob3N0bmFtZTogdXJsLmhvc3RuYW1lLFxuICAgICAgICAgICAgcG9ydDogdXJsLnBvcnQgfHwgKHVybC5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyAnNDQzJyA6ICc4MCcpLCAvLyBEZWZhdWx0IHBvcnRzIGlmIG5vdCBzcGVjaWZpZWRcbiAgICAgICAgICAgIHByb3RvY29sOiB1cmwucHJvdG9jb2xcbiAgICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIFVSTDonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7IGhvc3RuYW1lOiAnJywgcG9ydDogJycsIHByb3RvY29sOiAnJyB9O1xuICAgIH1cbn1cblxuY29uc3QgQVBQQ09OREFfRU5EUE9JTlQgPSAnYXBpL2FwcGNvbmRhL3YxJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcGNvbmRhQ2xpZW50KCkge1xuXG4gICAgbGV0IHVybDtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3QgaG9zdEluZm8gPSBnZXRQb3J0QW5kSG9zdG5hbWUod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICBpZiAoaG9zdEluZm8ucG9ydCkge1xuICAgICAgICAgICAgdXJsID0gYCR7aG9zdEluZm8ucHJvdG9jb2x9Ly8ke2hvc3RJbmZvLmhvc3RuYW1lfToke2hvc3RJbmZvLnBvcnR9LyR7QVBQQ09OREFfRU5EUE9JTlR9YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsID0gYCR7aG9zdEluZm8ucHJvdG9jb2x9Ly8ke2hvc3RJbmZvLmhvc3RuYW1lfS8ke0FQUENPTkRBX0VORFBPSU5UfWBcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCA9IEFQUENPTkRBX0VORFBPSU5UIHx8ICdodHRwOi8vYXBwY29uZGEvdjEnXG4gICAgfVxuXG4gICAgLyogIGlmIChBcHBsaWNhdGlvbkNvbmZpZy5Qb3J0ID09IG51bGwpIHtcbiAgICAgICAgIHVybCA9IGAke0FwcGxpY2F0aW9uQ29uZmlnLlByb3RvY29sfTovLyR7QXBwbGljYXRpb25Db25maWcuRG9tYWlufToke0FwcGxpY2F0aW9uQ29uZmlnLlBvcnR9L3YxYFxuICAgICB9IGVsc2Uge1xuICAgICAgICAgICB1cmwgPSBgJHtBcHBsaWNhdGlvbkNvbmZpZy5Qcm90b2NvbH06Ly8ke0FwcGxpY2F0aW9uQ29uZmlnLkRvbWFpbn0vdjFgXG4gICAgIH0gICovXG4gICAgY29uc3QgYWRtaW5DbGllbnQgPSBuZXcgQ2xpZW50KClcbiAgICAgICAgLnNldEVuZHBvaW50KHVybCkgLy8gWW91ciBBUEkgRW5kcG9pbnRcbiAgICAgICAgLnNldFByb2plY3QoJ2NvbnNvbGUnKTtcblxuICAgIHJldHVybiBhZG1pbkNsaWVudFxuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHBjb25kYUNsaWVudFN5bmMoKSB7XG5cbiAgICBsZXQgdXJsO1xuICAgIGlmIChBUFBDT05EQV9FTkRQT0lOVCkge1xuICAgICAgICB1cmwgPSBBUFBDT05EQV9FTkRQT0lOVDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnN0IGhvc3RJbmZvID0gZ2V0UG9ydEFuZEhvc3RuYW1lKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKGhvc3RJbmZvLnBvcnQpIHtcbiAgICAgICAgICAgIHVybCA9IGAke2hvc3RJbmZvLnByb3RvY29sfS8vJHtob3N0SW5mby5ob3N0bmFtZX06JHtob3N0SW5mby5wb3J0fS92MWBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybCA9IGAke2hvc3RJbmZvLnByb3RvY29sfS8vJHtob3N0SW5mby5ob3N0bmFtZX0vdjFgXG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB1cmwgPSBBUFBDT05EQV9FTkRQT0lOVCB8fCAnaHR0cDovL2FwcGNvbmRhL3YxJ1xuICAgIH1cblxuICAgIC8qICBpZiAoQXBwbGljYXRpb25Db25maWcuUG9ydCA9PSBudWxsKSB7XG4gICAgICAgICB1cmwgPSBgJHtBcHBsaWNhdGlvbkNvbmZpZy5Qcm90b2NvbH06Ly8ke0FwcGxpY2F0aW9uQ29uZmlnLkRvbWFpbn06JHtBcHBsaWNhdGlvbkNvbmZpZy5Qb3J0fS92MWBcbiAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgdXJsID0gYCR7QXBwbGljYXRpb25Db25maWcuUHJvdG9jb2x9Oi8vJHtBcHBsaWNhdGlvbkNvbmZpZy5Eb21haW59L3YxYFxuICAgICB9ICAqL1xuICAgIGNvbnN0IGFkbWluQ2xpZW50ID0gbmV3IENsaWVudCgpXG4gICAgICAgIC5zZXRFbmRwb2ludCh1cmwpIC8vIFlvdXIgQVBJIEVuZHBvaW50XG4gICAgICAgIC5zZXRQcm9qZWN0KCdjb25zb2xlJyk7XG5cbiAgICByZXR1cm4gYWRtaW5DbGllbnRcblxufSJdfQ==
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { AppcondaClientOptions } from './getAppcondaClient';
|
|
2
1
|
import { BuilderService, DataSourceService, ScrapflowService, WaitlistService } from "./modules";
|
|
3
2
|
import { AccountService } from "./modules/accounv1";
|
|
4
3
|
import { TenantService } from "./modules/tenant/service";
|
|
@@ -18,5 +17,4 @@ export type AppcondaSDK = {
|
|
|
18
17
|
waitlist: WaitlistService;
|
|
19
18
|
configuration: Configuration;
|
|
20
19
|
};
|
|
21
|
-
export
|
|
22
|
-
export declare function getSDKForService(token?: string, options?: AppcondaSDKOptions): AppcondaSDK;
|
|
20
|
+
export declare function getSDKForService(token?: string): AppcondaSDK;
|
package/dist/getSDKForService.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAppcondaClient } from
|
|
1
|
+
import { getAppcondaClient } from "./getAppcondaClient";
|
|
2
2
|
import { BuilderService, DataSourceService, ScrapflowService, WaitlistService } from "./modules";
|
|
3
3
|
import { AccountService } from "./modules/accounv1";
|
|
4
4
|
import { TenantService } from "./modules/tenant/service";
|
|
@@ -6,8 +6,8 @@ import { Configuration } from "./services/configuration";
|
|
|
6
6
|
import { OrganizationService } from "./modules/organization/service";
|
|
7
7
|
import { EmploidService } from "./modules/emploid/service";
|
|
8
8
|
import { BpmService } from "./modules/bpm/service";
|
|
9
|
-
export function getSDKForService(token
|
|
10
|
-
const adminClient = getAppcondaClient(
|
|
9
|
+
export function getSDKForService(token) {
|
|
10
|
+
const adminClient = getAppcondaClient();
|
|
11
11
|
adminClient.addHeader('x-service-token', '');
|
|
12
12
|
if (token) {
|
|
13
13
|
adminClient.addHeader('Authorization', `Bearer ${token}`);
|
|
@@ -69,4 +69,4 @@ export function getSDKForService(token, options = {}) {
|
|
|
69
69
|
configuration
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U0RLRm9yU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nZXRTREtGb3JTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBVyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUE2Qm5ELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzdDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUM7SUFFeEMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsVUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFELE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvREFtQmdEO0lBQ2hELE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztRQUNQLFlBQVk7UUFDWixPQUFPO1FBQ1AsR0FBRztRQUNILFVBQVU7UUFDVixPQUFPO1FBQ1AsU0FBUztRQUNUOzs7Ozs7Ozs7Ozs7O3FCQWFhO1FBQ2IsUUFBUTtRQUNSLGFBQWE7S0FDZCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEFwcGNvbmRhQ2xpZW50IH0gZnJvbSBcIi4vZ2V0QXBwY29uZGFDbGllbnRcIjtcblxuaW1wb3J0IHsgQWNjb3VudCwgQnVpbGRlclNlcnZpY2UsIERhdGFTb3VyY2VTZXJ2aWNlLCBTY3JhcGZsb3dTZXJ2aWNlLCBXYWl0bGlzdFNlcnZpY2UgfSBmcm9tIFwiLi9tb2R1bGVzXCI7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gXCIuL21vZHVsZXMvYWNjb3VudjFcIjtcbmltcG9ydCB7IFRlbmFudFNlcnZpY2UgfSBmcm9tIFwiLi9tb2R1bGVzL3RlbmFudC9zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vc2VydmljZXMvY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uU2VydmljZSB9IGZyb20gXCIuL21vZHVsZXMvb3JnYW5pemF0aW9uL3NlcnZpY2VcIjtcbmltcG9ydCB7IEVtcGxvaWRTZXJ2aWNlIH0gZnJvbSBcIi4vbW9kdWxlcy9lbXBsb2lkL3NlcnZpY2VcIjtcbmltcG9ydCB7IEJwbVNlcnZpY2UgfSBmcm9tIFwiLi9tb2R1bGVzL2JwbS9zZXJ2aWNlXCI7XG5cbmV4cG9ydCB0eXBlIEFwcGNvbmRhU0RLID0ge1xuICBhY2NvdW50czogQWNjb3VudFNlcnZpY2UsXG4gIHRlbmFudHM6IFRlbmFudFNlcnZpY2UsXG4gIG9yZ2FuaXphdGlvbjogT3JnYW5pemF0aW9uU2VydmljZSxcbiAgZW1wbG9pZDogRW1wbG9pZFNlcnZpY2UsXG4gIGJwbTogQnBtU2VydmljZSxcbiAgZGF0YXNvdXJjZTogRGF0YVNvdXJjZVNlcnZpY2UsXG4gIGJ1aWxkZXI6IEJ1aWxkZXJTZXJ2aWNlLFxuICBzY3JhcGZsb3c6IFNjcmFwZmxvd1NlcnZpY2UsXG4gIC8qICAgY3VycmVudFVzZXIsXG4gICAgYWNjb3VudHMsXG4gICAgZGF0YWJhc2VzLFxuICAgIHByb2plY3RzLFxuICAgIHVzZXJzLFxuICAgIHRlYW1zLFxuICAgIHRlbmFudHMsXG4gICAgcm9sZXMsXG4gICAgcGVybWlzc2lvbnMsXG4gICAgc2NoZW1hcyxcbiAgICBjb21tdW5pdHksXG4gICAgdGVuYW50U3Vic2NyaXB0aW9ucyxcbiAgICBzdWJzY3JpcHRpb24sXG4gICAgcHJpY2luZywgKi9cbiAgd2FpdGxpc3Q6IFdhaXRsaXN0U2VydmljZSxcbiAgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U0RLRm9yU2VydmljZSh0b2tlbj86IHN0cmluZyk6IEFwcGNvbmRhU0RLIHtcbiAgY29uc3QgYWRtaW5DbGllbnQgPSBnZXRBcHBjb25kYUNsaWVudCgpO1xuXG4gIGFkbWluQ2xpZW50LmFkZEhlYWRlcigneC1zZXJ2aWNlLXRva2VuJywgJycpO1xuICBpZiAodG9rZW4pIHtcbiAgICBhZG1pbkNsaWVudC5hZGRIZWFkZXIoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7dG9rZW59YCk7XG4gIH1cblxuICBjb25zdCBhY2NvdW50cyA9IG5ldyBBY2NvdW50U2VydmljZShhZG1pbkNsaWVudCk7XG4gIGNvbnN0IHRlbmFudHMgPSBuZXcgVGVuYW50U2VydmljZShhZG1pbkNsaWVudCk7XG4gIGNvbnN0IG9yZ2FuaXphdGlvbiA9IG5ldyBPcmdhbml6YXRpb25TZXJ2aWNlKGFkbWluQ2xpZW50KTtcbiAgY29uc3QgZW1wbG9pZCA9IG5ldyBFbXBsb2lkU2VydmljZShhZG1pbkNsaWVudCk7XG4gIGNvbnN0IGJwbSA9IG5ldyBCcG1TZXJ2aWNlKGFkbWluQ2xpZW50KTtcbiAgY29uc3QgZGF0YXNvdXJjZSA9IG5ldyBEYXRhU291cmNlU2VydmljZShhZG1pbkNsaWVudCk7XG4gIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQnVpbGRlclNlcnZpY2UoYWRtaW5DbGllbnQpO1xuICBjb25zdCBzY3JhcGZsb3cgPSBuZXcgU2NyYXBmbG93U2VydmljZShhZG1pbkNsaWVudCk7XG5cbiAgLyogICAgIGNvbnN0IGRhdGFiYXNlcyA9IG5ldyBEYXRhYmFzZXMoYWRtaW5DbGllbnQpO1xuICBcbiAgICAgIGNvbnN0IHByb2plY3RzID0gbmV3IFByb2plY3RzKGFkbWluQ2xpZW50KTtcbiAgXG4gICAgICBjb25zdCBjdXJyZW50VXNlciA9IGF3YWl0IGFjY291bnRzLmdldCgpO1xuICBcbiAgICAgIGNvbnN0IHVzZXJzID0gbmV3IFVzZXJzKGFkbWluQ2xpZW50KTtcbiAgICAgIGNvbnN0IHRlYW1zID0gbmV3IFRlYW1zKGFkbWluQ2xpZW50KTtcbiAgXG4gICAgIFxuICAgICAgY29uc3Qgcm9sZXMgPSBuZXcgUm9sZXMoYWRtaW5DbGllbnQpO1xuICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSBuZXcgUGVybWlzc2lvbnMoYWRtaW5DbGllbnQpO1xuICAgICAgY29uc3Qgc2NoZW1hcyA9IG5ldyBTY2hlbWFzKGFkbWluQ2xpZW50KTtcbiAgXG4gICAgICBjb25zdCBjb21tdW5pdHkgPSBuZXcgQ29tbXVuaXR5KGFkbWluQ2xpZW50KTtcbiAgXG4gICAgICBjb25zdCB0ZW5hbnRTdWJzY3JpcHRpb25zID0gbmV3IFRlbmFudFN1YnNjcmlwdGlvbihhZG1pbkNsaWVudCk7XG4gIFxuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbihhZG1pbkNsaWVudCk7XG4gICAgICBjb25zdCBwcmljaW5nID0gbmV3IFByaWNpbmcoYWRtaW5DbGllbnQpOyAqL1xuICBjb25zdCB3YWl0bGlzdCA9IG5ldyBXYWl0bGlzdFNlcnZpY2UoYWRtaW5DbGllbnQpO1xuICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oYWRtaW5DbGllbnQpO1xuXG4gIHJldHVybiB7XG4gICAgYWNjb3VudHMsXG4gICAgdGVuYW50cyxcbiAgICBvcmdhbml6YXRpb24sXG4gICAgZW1wbG9pZCxcbiAgICBicG0sXG4gICAgZGF0YXNvdXJjZSxcbiAgICBidWlsZGVyLFxuICAgIHNjcmFwZmxvdyxcbiAgICAvKiAgIGN1cnJlbnRVc2VyLFxuICAgICAgYWNjb3VudHMsXG4gICAgICBkYXRhYmFzZXMsXG4gICAgICBwcm9qZWN0cyxcbiAgICAgIHVzZXJzLFxuICAgICAgdGVhbXMsXG4gICAgICB0ZW5hbnRzLFxuICAgICAgcm9sZXMsXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIHNjaGVtYXMsXG4gICAgICBjb21tdW5pdHksXG4gICAgICB0ZW5hbnRTdWJzY3JpcHRpb25zLFxuICAgICAgc3Vic2NyaXB0aW9uLFxuICAgICAgcHJpY2luZywgKi9cbiAgICB3YWl0bGlzdCxcbiAgICBjb25maWd1cmF0aW9uXG4gIH1cbn0iXX0=
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
export * from './modules';
|
|
2
|
-
export { getSDKForService } from './getSDKForService';
|
|
3
|
-
export type { AppcondaSDK, AppcondaSDKOptions } from './getSDKForService';
|
|
2
|
+
export { getSDKForService, AppcondaSDK } from './getSDKForService';
|
|
4
3
|
export * from './EmploidClient';
|
|
5
|
-
export { getAppcondaClient, getAppcondaClientSync } from './getAppcondaClient';
|
|
6
|
-
export type { AppcondaClientOptions } from './getAppcondaClient';
|
|
7
|
-
export { Client, AppcondaException, Query } from './client';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export * from './modules';
|
|
2
2
|
export { getSDKForService } from './getSDKForService';
|
|
3
3
|
export * from './EmploidClient';
|
|
4
|
-
|
|
5
|
-
export { Client, AppcondaException, Query } from './client';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcyc7XG5leHBvcnQgeyBnZXRTREtGb3JTZXJ2aWNlIH0gZnJvbSAnLi9nZXRTREtGb3JTZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHsgQXBwY29uZGFTREssIEFwcGNvbmRhU0RLT3B0aW9ucyB9IGZyb20gJy4vZ2V0U0RLRm9yU2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL0VtcGxvaWRDbGllbnQnO1xuZXhwb3J0IHsgZ2V0QXBwY29uZGFDbGllbnQsIGdldEFwcGNvbmRhQ2xpZW50U3luYyB9IGZyb20gJy4vZ2V0QXBwY29uZGFDbGllbnQnO1xuZXhwb3J0IHR5cGUgeyBBcHBjb25kYUNsaWVudE9wdGlvbnMgfSBmcm9tICcuL2dldEFwcGNvbmRhQ2xpZW50JztcbmV4cG9ydCB7IENsaWVudCwgQXBwY29uZGFFeGNlcHRpb24sIFF1ZXJ5IH0gZnJvbSAnLi9jbGllbnQnO1xuIl19
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcyc7XG5leHBvcnQgeyBnZXRTREtGb3JTZXJ2aWNlLCBBcHBjb25kYVNESyB9IGZyb20gJy4vZ2V0U0RLRm9yU2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL0VtcGxvaWRDbGllbnQnO1xuXG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { realpathSync, readFileSync } from "fs";
|
|
2
|
+
export class InputFile {
|
|
3
|
+
static fromBuffer(parts, name) {
|
|
4
|
+
return new File([parts], name);
|
|
5
|
+
}
|
|
6
|
+
static fromPath(path, name) {
|
|
7
|
+
const realPath = realpathSync(path);
|
|
8
|
+
const contents = readFileSync(realPath);
|
|
9
|
+
return this.fromBuffer(contents, name);
|
|
10
|
+
}
|
|
11
|
+
static fromPlainText(content, name) {
|
|
12
|
+
const arrayBytes = new TextEncoder().encode(content);
|
|
13
|
+
return this.fromBuffer(arrayBytes, name);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2lucHV0RmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQztBQUdoRCxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsVUFBVSxDQUNmLEtBQXdCLEVBQ3hCLElBQVk7UUFFWixPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDeEMsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQWUsRUFBRSxJQUFZO1FBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyByZWFscGF0aFN5bmMsIHJlYWRGaWxlU3luYyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHR5cGUgeyBCaW5hcnlMaWtlIH0gZnJvbSBcImNyeXB0b1wiO1xuXG5leHBvcnQgY2xhc3MgSW5wdXRGaWxlIHtcbiAgc3RhdGljIGZyb21CdWZmZXIoXG4gICAgcGFydHM6IEJsb2IgfCBCaW5hcnlMaWtlLFxuICAgIG5hbWU6IHN0cmluZ1xuICApOiBGaWxlIHtcbiAgICByZXR1cm4gbmV3IEZpbGUoW3BhcnRzXSwgbmFtZSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhdGgocGF0aDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBGaWxlIHtcbiAgICBjb25zdCByZWFsUGF0aCA9IHJlYWxwYXRoU3luYyhwYXRoKTtcbiAgICBjb25zdCBjb250ZW50cyA9IHJlYWRGaWxlU3luYyhyZWFsUGF0aCk7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUJ1ZmZlcihjb250ZW50cywgbmFtZSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBsYWluVGV4dChjb250ZW50OiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IEZpbGUge1xuICAgIGNvbnN0IGFycmF5Qnl0ZXMgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoY29udGVudCk7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUJ1ZmZlcihhcnJheUJ5dGVzLCBuYW1lKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { Agent, AIModel } from './types';
|
|
3
|
+
import { CreateAgentSchema, GetAgentSchema, ListModelsSchema } from './schema';
|
|
4
|
+
export declare const ListAgents: () => Promise<{
|
|
5
|
+
data?: Agent[];
|
|
6
|
+
serverError?: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const CreateAgent: ({ parsedInput }: {
|
|
9
|
+
parsedInput: z.infer<typeof CreateAgentSchema>;
|
|
10
|
+
}) => Promise<{
|
|
11
|
+
data?: Agent;
|
|
12
|
+
serverError?: string;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const GetAgent: ({ parsedInput }: {
|
|
15
|
+
parsedInput: z.infer<typeof GetAgentSchema>;
|
|
16
|
+
}) => Promise<{
|
|
17
|
+
data?: Agent;
|
|
18
|
+
serverError?: string;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const ListModelProviders: () => Promise<{
|
|
21
|
+
data?: Agent[];
|
|
22
|
+
serverError?: string;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const ListModels: ({ parsedInput }: {
|
|
25
|
+
parsedInput: z.infer<typeof ListModelsSchema>;
|
|
26
|
+
}) => Promise<{
|
|
27
|
+
data?: AIModel[];
|
|
28
|
+
serverError?: string;
|
|
29
|
+
}>;
|