@dbx-tools/model 0.6.108 → 0.6.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/lib/src/invoke.js +11 -2
- package/lib/src/serving.d.ts +1 -1
- package/lib/src/serving.js +1 -1
- package/package.json +6 -6
- package/src/invoke.ts +7 -1
- package/src/serving.ts +1 -1
package/README.md
CHANGED
|
@@ -53,10 +53,10 @@ endpoint:
|
|
|
53
53
|
## Select One Model
|
|
54
54
|
|
|
55
55
|
```ts
|
|
56
|
-
import {
|
|
56
|
+
import { createWorkspaceClient } from "@databricks/appkit";
|
|
57
57
|
import { resolve } from "@dbx-tools/model";
|
|
58
58
|
|
|
59
|
-
const client =
|
|
59
|
+
const client = createWorkspaceClient();
|
|
60
60
|
const host = String(await client.config.getHost());
|
|
61
61
|
|
|
62
62
|
const selected = await resolve.selectModel(client, host, {
|
|
@@ -183,7 +183,8 @@ builder: `INVOCATIONS_SUFFIX` / `invocationsUrl()`, `RESPONSES_PATH` /
|
|
|
183
183
|
`/serving-endpoints/...` literal in a consumer: which path a model can accept is
|
|
184
184
|
a property of the model (see `isResponsesOnly()` and `responsesUpstreamUrl()`),
|
|
185
185
|
so a hard-coded string in one package silently diverges when that routing
|
|
186
|
-
changes.
|
|
186
|
+
changes. `isResponsesOnly()` covers Codex and GPT 5.4+ endpoints, which reject
|
|
187
|
+
tool-bearing Chat Completions, while keeping GPT-OSS on its supported Chat path.
|
|
187
188
|
|
|
188
189
|
## Use Static Fallbacks
|
|
189
190
|
|
package/lib/src/invoke.js
CHANGED
|
@@ -69,7 +69,16 @@ export function chatCompletionsUrl(host) {
|
|
|
69
69
|
* those to {@link responsesUrl} instead of {@link invocationsUrl}.
|
|
70
70
|
*/
|
|
71
71
|
export function isResponsesOnly(endpoint) {
|
|
72
|
-
|
|
72
|
+
if (/codex/i.test(endpoint))
|
|
73
|
+
return true;
|
|
74
|
+
if (/gpt[-_. ]?oss/i.test(endpoint))
|
|
75
|
+
return false;
|
|
76
|
+
const version = endpoint.match(/gpt[^0-9]*(\d+)(?:[._-](\d+))?/i);
|
|
77
|
+
if (!version)
|
|
78
|
+
return false;
|
|
79
|
+
const major = Number(version[1]);
|
|
80
|
+
const minor = Number(version[2] ?? 0);
|
|
81
|
+
return major > 5 || (major === 5 && minor >= 4);
|
|
73
82
|
}
|
|
74
83
|
/**
|
|
75
84
|
* Pick the Databricks Responses upstream for an endpoint id: OpenAI-family
|
|
@@ -101,4 +110,4 @@ export async function authHeaders(client) {
|
|
|
101
110
|
});
|
|
102
111
|
return out;
|
|
103
112
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFFaEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBRTVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGtDQUFrQyxDQUFDO0FBRXRFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsb0NBQW9DLENBQUM7QUFFMUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7SUFDM0QsT0FBTyxJQUFJLEdBQUcsQ0FDWixxQkFBcUIsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksa0JBQWtCLEVBQUUsRUFDekUsSUFBSSxDQUNMLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDZixDQUFDO0FBRUQsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBWTtJQUN2QyxPQUFPLElBQUksR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZO0lBQzNDLE9BQU8sSUFBSSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDdkQsQ0FBQztBQUVELHlFQUF5RTtBQUN6RSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBWTtJQUM3QyxPQUFPLElBQUksR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUFnQjtJQUM5QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBWSxFQUFFLFFBQWdCO0lBQ2pFLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsU0FBUyxjQUFjLENBQUMsUUFBZ0I7SUFDdEMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLE9BQU8sQ0FDTCxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNuQiw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBY0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixNQUFnQztJQUVoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzlCLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxHQUFHLEdBQTJCLEVBQUUsQ0FBQztJQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzdCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhbGxpbmcgYSBNb2RlbCBTZXJ2aW5nIGVuZHBvaW50IGRpcmVjdGx5IG92ZXIgSFRUUC5cbiAqXG4gKiBUaGUgU0RLJ3MgYHNlcnZpbmdFbmRwb2ludHMucXVlcnlgIGNvdmVycyB0aGUgdHlwZWQgcmVxdWVzdCBzaGFwZXMsIGJ1dCBhblxuICogT3BlbkFJLWNvbXBhdGlibGUgY2FsbGVyIChhIHByb3h5LCBhIHBhc3N0aHJvdWdoIHJvdXRlLCBhIHN0cmVhbWluZyBjbGllbnQpXG4gKiBuZWVkcyB0byBpc3N1ZSBpdHMgb3duIGBmZXRjaGAgYWdhaW5zdCBEYXRhYnJpY2tzJyBPcGVuQUktc2hhcGVkIFVSTHMgd2l0aFxuICogYW4gT3BlbkFJIGJvZHkuIFRoYXQgbmVlZHMgZXhhY3RseSB0d28gdGhpbmdzIHRoZSBTREsgZG9lc24ndCBoYW5kIG91dFxuICogZGlyZWN0bHk6IHRoZSBVUkwgKHtAbGluayBpbnZvY2F0aW9uc1VybH0gLyB7QGxpbmsgcmVzcG9uc2VzVXJsfSAvXG4gKiB7QGxpbmsgb3BlblJlc3BvbnNlc1VybH0pIGFuZCBhIGN1cnJlbnRseS12YWxpZCBzZXQgb2YgYXV0aCBoZWFkZXJzXG4gKiAoe0BsaW5rIGF1dGhIZWFkZXJzfSkuXG4gKlxuICogQXV0aCBpcyBkZWxlZ2F0ZWQgZW50aXJlbHkgdG8gdGhlIERhdGFicmlja3MgU0RLOiBgY29uZmlnLmF1dGhlbnRpY2F0ZWBcbiAqIHJlLXJ1bnMgdGhlIGNvbmZpZ3VyZWQgY3JlZGVudGlhbCBwcm92aWRlciBvbiBldmVyeSBjYWxsIGFuZCByZWZyZXNoZXMgdGhlXG4gKiB1bmRlcmx5aW5nIE9BdXRoIC8gUEFUIHRva2VuIHdoZW4gaXQgaXMgY2xvc2UgdG8gZXhwaXJ5LCBzbyBhIGNhbGxlciBuZXZlclxuICogbWFuYWdlcyB0b2tlbiBsaWZldGltZXMgaXRzZWxmIC0gbWludCBoZWFkZXJzIHBlciByZXF1ZXN0IGFuZCBlYWNoIG9uZSBpc1xuICogc2lnbmVkIHdpdGggYSB2YWxpZCBiZWFyZXIgdG9rZW4uXG4gKlxuICogQG1vZHVsZVxuICovXG5cbi8qKlxuICogUGF0aCBzZWdtZW50IGFwcGVuZGVkIHRvIGEgc2VydmluZyBlbmRwb2ludCBmb3IgT3BlbkFJLWNvbXBhdGlibGUgY2hhdFxuICogcmVxdWVzdHMuIERhdGFicmlja3Mgcm91dGVzIGAvc2VydmluZy1lbmRwb2ludHMvPG5hbWU+L2ludm9jYXRpb25zYCB0byB0aGVcbiAqIGVuZHBvaW50J3MgQ2hhdCBDb21wbGV0aW9ucyBzdXJmYWNlIChgbWVzc2FnZXNgIGluLCBgY2hvaWNlc2Agb3V0KS4gU29tZVxuICogbW9kZWxzIChub3RhYmx5IENvZGV4KSByZWplY3QgdGhpcyBwYXRoIGFuZCByZXF1aXJlIHtAbGluayByZXNwb25zZXNVcmx9LlxuICovXG5leHBvcnQgY29uc3QgSU5WT0NBVElPTlNfU1VGRklYID0gXCJpbnZvY2F0aW9uc1wiO1xuXG4vKipcbiAqIFdvcmtzcGFjZS1sZXZlbCBPcGVuQUkgUmVzcG9uc2VzIEFQSSBwYXRoLiBCb2R5IGNhcnJpZXMgYG1vZGVsYCAoZW5kcG9pbnRcbiAqIGlkKTsgdXNlZCBieSBHUFQgLyBDb2RleCBtb2RlbHMgdGhhdCBzcGVhayBSZXNwb25zZXMgbmF0aXZlbHkuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNQT05TRVNfUEFUSCA9IFwic2VydmluZy1lbmRwb2ludHMvcmVzcG9uc2VzXCI7XG5cbi8qKlxuICogV29ya3NwYWNlLWxldmVsIE9wZW4gUmVzcG9uc2VzIEFQSSBwYXRoIC0gdGhlIGNyb3NzLXByb3ZpZGVyIFJlc3BvbnNlc1xuICogc3VyZmFjZSAoQ2xhdWRlLCBHZW1pbmksIOKApikgdGhhdCBPcGVuQUkgYC9yZXNwb25zZXNgIGRvZXMgbm90IGNvdmVyLlxuICovXG5leHBvcnQgY29uc3QgT1BFTl9SRVNQT05TRVNfUEFUSCA9IFwic2VydmluZy1lbmRwb2ludHMvb3Blbi1yZXNwb25zZXNcIjtcblxuLyoqXG4gKiBXb3Jrc3BhY2UtbGV2ZWwgT3BlbkFJIENoYXQgQ29tcGxldGlvbnMgcGF0aC4gQm9keSBjYXJyaWVzIGBtb2RlbGAgKGVuZHBvaW50XG4gKiBpZCksIHVubGlrZSB7QGxpbmsgaW52b2NhdGlvbnNVcmx9IHdoaWNoIG5hbWVzIHRoZSBlbmRwb2ludCBpbiB0aGUgVVJMLiBVc2VcbiAqIHRoaXMgd2hlbiB0aGUgY2FsbGVyIGhhcyBhIG1vZGVsIGlkIHJhdGhlciB0aGFuIGEgcGVyLWVuZHBvaW50IHJvdXRlIC0gZS5nLlxuICogYXR0YWNoaW5nIGEgcHJvdmlkZXIgdG9vbCBzcGVjIHRvIHdoaWNoZXZlciBlbmRwb2ludCB3YXMgcmVzb2x2ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFUX0NPTVBMRVRJT05TX1BBVEggPSBcInNlcnZpbmctZW5kcG9pbnRzL2NoYXQvY29tcGxldGlvbnNcIjtcblxuLyoqXG4gKiBUaGUgT3BlbkFJLWNvbXBhdGlibGUgY2hhdC1jb21wbGV0aW9ucyBpbnZvY2F0aW9ucyBVUkwgZm9yIGFuIGVuZHBvaW50IGlkLlxuICpcbiAqIEBwYXJhbSBob3N0IC0gV29ya3NwYWNlIGhvc3QsIGUuZy4gYGh0dHBzOi8vbXktd29ya3NwYWNlLmNsb3VkLmRhdGFicmlja3MuY29tL2AuXG4gKiAgIFBhc3MgdGhlIHZhbHVlIHJlc29sdmVkIGZyb20gYGNsaWVudC5jb25maWcuZ2V0SG9zdCgpYC5cbiAqIEBwYXJhbSBlbmRwb2ludCAtIEVuZHBvaW50IGlkIChhbHJlYWR5IHJlc29sdmVkOyBub3QgZnV6enktbWF0Y2hlZCBoZXJlKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludm9jYXRpb25zVXJsKGhvc3Q6IHN0cmluZywgZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgVVJMKFxuICAgIGBzZXJ2aW5nLWVuZHBvaW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChlbmRwb2ludCl9LyR7SU5WT0NBVElPTlNfU1VGRklYfWAsXG4gICAgaG9zdCxcbiAgKS50b1N0cmluZygpO1xufVxuXG4vKiogV29ya3NwYWNlIE9wZW5BSSBSZXNwb25zZXMgQVBJIFVSTCAoYFBPU1RgLCBtb2RlbCBpbiB0aGUgYm9keSkuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzcG9uc2VzVXJsKGhvc3Q6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgVVJMKFJFU1BPTlNFU19QQVRILCBob3N0KS50b1N0cmluZygpO1xufVxuXG4vKiogV29ya3NwYWNlIE9wZW4gUmVzcG9uc2VzIEFQSSBVUkwgKGBQT1NUYCwgbW9kZWwgaW4gdGhlIGJvZHkpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9wZW5SZXNwb25zZXNVcmwoaG9zdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5ldyBVUkwoT1BFTl9SRVNQT05TRVNfUEFUSCwgaG9zdCkudG9TdHJpbmcoKTtcbn1cblxuLyoqIFdvcmtzcGFjZSBPcGVuQUkgQ2hhdCBDb21wbGV0aW9ucyBVUkwgKGBQT1NUYCwgbW9kZWwgaW4gdGhlIGJvZHkpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYXRDb21wbGV0aW9uc1VybChob3N0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IFVSTChDSEFUX0NPTVBMRVRJT05TX1BBVEgsIGhvc3QpLnRvU3RyaW5nKCk7XG59XG5cbi8qKlxuICogVHJ1ZSB3aGVuIHRoZSBlbmRwb2ludCBpcyBrbm93biB0byByZWplY3QgQ2hhdCBDb21wbGV0aW9ucyBgL2ludm9jYXRpb25zYFxuICogYW5kIHJlcXVpcmUgdGhlIFJlc3BvbnNlcyBBUEkgKENvZGV4IG1vZGVscyB0b2RheSkuIENhbGxlcnMgc2hvdWxkIHJvdXRlXG4gKiB0aG9zZSB0byB7QGxpbmsgcmVzcG9uc2VzVXJsfSBpbnN0ZWFkIG9mIHtAbGluayBpbnZvY2F0aW9uc1VybH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Jlc3BvbnNlc09ubHkoZW5kcG9pbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL2NvZGV4L2kudGVzdChlbmRwb2ludCk7XG59XG5cbi8qKlxuICogUGljayB0aGUgRGF0YWJyaWNrcyBSZXNwb25zZXMgdXBzdHJlYW0gZm9yIGFuIGVuZHBvaW50IGlkOiBPcGVuQUktZmFtaWx5XG4gKiBtb2RlbHMgdXNlIGAvc2VydmluZy1lbmRwb2ludHMvcmVzcG9uc2VzYDsgZXZlcnl0aGluZyBlbHNlIHVzZXMgdGhlXG4gKiBjcm9zcy1wcm92aWRlciBgL3NlcnZpbmctZW5kcG9pbnRzL29wZW4tcmVzcG9uc2VzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc3BvbnNlc1Vwc3RyZWFtVXJsKGhvc3Q6IHN0cmluZywgZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBpc09wZW5BaUZhbWlseShlbmRwb2ludCkgPyByZXNwb25zZXNVcmwoaG9zdCkgOiBvcGVuUmVzcG9uc2VzVXJsKGhvc3QpO1xufVxuXG4vKiogR1BUIC8gQ29kZXggLyBvLXNlcmllcyBzdHlsZSBlbmRwb2ludCBuYW1lcyB0aGF0IHNwZWFrIE9wZW5BSSBSZXNwb25zZXMuICovXG5mdW5jdGlvbiBpc09wZW5BaUZhbWlseShlbmRwb2ludDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IG4gPSBlbmRwb2ludC50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gKFxuICAgIG4uaW5jbHVkZXMoXCJncHRcIikgfHxcbiAgICBuLmluY2x1ZGVzKFwiY29kZXhcIikgfHxcbiAgICAvKF58W15hLXpdKW9bMS05XShbXmEtel18JCkvLnRlc3QobikgfHxcbiAgICBuLmluY2x1ZGVzKFwib3BlbmFpXCIpXG4gICk7XG59XG5cbi8qKlxuICogTWluaW1hbCBzdHJ1Y3R1cmFsIHNoYXBlIHtAbGluayBhdXRoSGVhZGVyc30gbmVlZHMuIERlY2xhcmVkIG5hcnJvd2x5IHJhdGhlclxuICogdGhhbiBhcyBhIGZ1bGwgYFdvcmtzcGFjZUNsaWVudExpa2VgIHNvIGEgY2FsbGVyIGhvbGRpbmcgaXRzIG93blxuICogYEBkYXRhYnJpY2tzL3Nkay1leHBlcmltZW50YWxgIGBXb3Jrc3BhY2VDbGllbnRgIHNhdGlzZmllcyBpdCByZWdhcmRsZXNzIG9mXG4gKiB3aGljaCBTREsgdmVyc2lvbiByZXNvbHZlZCBpbiBpdHMgdHJlZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoZW50aWNhdGluZ0NsaWVudExpa2Uge1xuICBjb25maWc6IHtcbiAgICBhdXRoZW50aWNhdGUoaGVhZGVyczogSGVhZGVycyk6IFByb21pc2U8dm9pZD47XG4gIH07XG59XG5cbi8qKlxuICogTWludCBhdXRoIGhlYWRlcnMgZm9yIG9uZSB1cHN0cmVhbSByZXF1ZXN0IGFzIGEgcGxhaW4gb2JqZWN0LCByZWFkeSB0byBzcHJlYWRcbiAqIGludG8gYSBgZmV0Y2hgIGluaXQuIENhbGwgaXQgcGVyIHJlcXVlc3Q6IHRoZSBTREsgcmVmcmVzaGVzIHRoZSB1bmRlcmx5aW5nXG4gKiB0b2tlbiB3aGVuIG5lZWRlZCwgc28gYSBsb25nLWxpdmVkIHByb2Nlc3MgbmV2ZXIgaGFzIHRvIHRyYWNrIGV4cGlyeSBpdHNlbGYuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhdXRoSGVhZGVycyhcbiAgY2xpZW50OiBBdXRoZW50aWNhdGluZ0NsaWVudExpa2UsXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7XG4gIGF3YWl0IGNsaWVudC5jb25maWcuYXV0aGVudGljYXRlKGhlYWRlcnMpO1xuICBjb25zdCBvdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgb3V0W2tleV0gPSB2YWx1ZTtcbiAgfSk7XG4gIHJldHVybiBvdXQ7XG59XG4iXX0=
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFFaEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBRTVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGtDQUFrQyxDQUFDO0FBRXRFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsb0NBQW9DLENBQUM7QUFFMUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7SUFDM0QsT0FBTyxJQUFJLEdBQUcsQ0FDWixxQkFBcUIsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksa0JBQWtCLEVBQUUsRUFDekUsSUFBSSxDQUNMLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDZixDQUFDO0FBRUQsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBWTtJQUN2QyxPQUFPLElBQUksR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZO0lBQzNDLE9BQU8sSUFBSSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDdkQsQ0FBQztBQUVELHlFQUF5RTtBQUN6RSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBWTtJQUM3QyxPQUFPLElBQUksR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUFnQjtJQUM5QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDekMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ2xFLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDM0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBWSxFQUFFLFFBQWdCO0lBQ2pFLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsU0FBUyxjQUFjLENBQUMsUUFBZ0I7SUFDdEMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLE9BQU8sQ0FDTCxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNuQiw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBY0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixNQUFnQztJQUVoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzlCLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxHQUFHLEdBQTJCLEVBQUUsQ0FBQztJQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzdCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhbGxpbmcgYSBNb2RlbCBTZXJ2aW5nIGVuZHBvaW50IGRpcmVjdGx5IG92ZXIgSFRUUC5cbiAqXG4gKiBUaGUgU0RLJ3MgYHNlcnZpbmdFbmRwb2ludHMucXVlcnlgIGNvdmVycyB0aGUgdHlwZWQgcmVxdWVzdCBzaGFwZXMsIGJ1dCBhblxuICogT3BlbkFJLWNvbXBhdGlibGUgY2FsbGVyIChhIHByb3h5LCBhIHBhc3N0aHJvdWdoIHJvdXRlLCBhIHN0cmVhbWluZyBjbGllbnQpXG4gKiBuZWVkcyB0byBpc3N1ZSBpdHMgb3duIGBmZXRjaGAgYWdhaW5zdCBEYXRhYnJpY2tzJyBPcGVuQUktc2hhcGVkIFVSTHMgd2l0aFxuICogYW4gT3BlbkFJIGJvZHkuIFRoYXQgbmVlZHMgZXhhY3RseSB0d28gdGhpbmdzIHRoZSBTREsgZG9lc24ndCBoYW5kIG91dFxuICogZGlyZWN0bHk6IHRoZSBVUkwgKHtAbGluayBpbnZvY2F0aW9uc1VybH0gLyB7QGxpbmsgcmVzcG9uc2VzVXJsfSAvXG4gKiB7QGxpbmsgb3BlblJlc3BvbnNlc1VybH0pIGFuZCBhIGN1cnJlbnRseS12YWxpZCBzZXQgb2YgYXV0aCBoZWFkZXJzXG4gKiAoe0BsaW5rIGF1dGhIZWFkZXJzfSkuXG4gKlxuICogQXV0aCBpcyBkZWxlZ2F0ZWQgZW50aXJlbHkgdG8gdGhlIERhdGFicmlja3MgU0RLOiBgY29uZmlnLmF1dGhlbnRpY2F0ZWBcbiAqIHJlLXJ1bnMgdGhlIGNvbmZpZ3VyZWQgY3JlZGVudGlhbCBwcm92aWRlciBvbiBldmVyeSBjYWxsIGFuZCByZWZyZXNoZXMgdGhlXG4gKiB1bmRlcmx5aW5nIE9BdXRoIC8gUEFUIHRva2VuIHdoZW4gaXQgaXMgY2xvc2UgdG8gZXhwaXJ5LCBzbyBhIGNhbGxlciBuZXZlclxuICogbWFuYWdlcyB0b2tlbiBsaWZldGltZXMgaXRzZWxmIC0gbWludCBoZWFkZXJzIHBlciByZXF1ZXN0IGFuZCBlYWNoIG9uZSBpc1xuICogc2lnbmVkIHdpdGggYSB2YWxpZCBiZWFyZXIgdG9rZW4uXG4gKlxuICogQG1vZHVsZVxuICovXG5cbi8qKlxuICogUGF0aCBzZWdtZW50IGFwcGVuZGVkIHRvIGEgc2VydmluZyBlbmRwb2ludCBmb3IgT3BlbkFJLWNvbXBhdGlibGUgY2hhdFxuICogcmVxdWVzdHMuIERhdGFicmlja3Mgcm91dGVzIGAvc2VydmluZy1lbmRwb2ludHMvPG5hbWU+L2ludm9jYXRpb25zYCB0byB0aGVcbiAqIGVuZHBvaW50J3MgQ2hhdCBDb21wbGV0aW9ucyBzdXJmYWNlIChgbWVzc2FnZXNgIGluLCBgY2hvaWNlc2Agb3V0KS4gU29tZVxuICogbW9kZWxzIChub3RhYmx5IENvZGV4KSByZWplY3QgdGhpcyBwYXRoIGFuZCByZXF1aXJlIHtAbGluayByZXNwb25zZXNVcmx9LlxuICovXG5leHBvcnQgY29uc3QgSU5WT0NBVElPTlNfU1VGRklYID0gXCJpbnZvY2F0aW9uc1wiO1xuXG4vKipcbiAqIFdvcmtzcGFjZS1sZXZlbCBPcGVuQUkgUmVzcG9uc2VzIEFQSSBwYXRoLiBCb2R5IGNhcnJpZXMgYG1vZGVsYCAoZW5kcG9pbnRcbiAqIGlkKTsgdXNlZCBieSBHUFQgLyBDb2RleCBtb2RlbHMgdGhhdCBzcGVhayBSZXNwb25zZXMgbmF0aXZlbHkuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNQT05TRVNfUEFUSCA9IFwic2VydmluZy1lbmRwb2ludHMvcmVzcG9uc2VzXCI7XG5cbi8qKlxuICogV29ya3NwYWNlLWxldmVsIE9wZW4gUmVzcG9uc2VzIEFQSSBwYXRoIC0gdGhlIGNyb3NzLXByb3ZpZGVyIFJlc3BvbnNlc1xuICogc3VyZmFjZSAoQ2xhdWRlLCBHZW1pbmksIOKApikgdGhhdCBPcGVuQUkgYC9yZXNwb25zZXNgIGRvZXMgbm90IGNvdmVyLlxuICovXG5leHBvcnQgY29uc3QgT1BFTl9SRVNQT05TRVNfUEFUSCA9IFwic2VydmluZy1lbmRwb2ludHMvb3Blbi1yZXNwb25zZXNcIjtcblxuLyoqXG4gKiBXb3Jrc3BhY2UtbGV2ZWwgT3BlbkFJIENoYXQgQ29tcGxldGlvbnMgcGF0aC4gQm9keSBjYXJyaWVzIGBtb2RlbGAgKGVuZHBvaW50XG4gKiBpZCksIHVubGlrZSB7QGxpbmsgaW52b2NhdGlvbnNVcmx9IHdoaWNoIG5hbWVzIHRoZSBlbmRwb2ludCBpbiB0aGUgVVJMLiBVc2VcbiAqIHRoaXMgd2hlbiB0aGUgY2FsbGVyIGhhcyBhIG1vZGVsIGlkIHJhdGhlciB0aGFuIGEgcGVyLWVuZHBvaW50IHJvdXRlIC0gZS5nLlxuICogYXR0YWNoaW5nIGEgcHJvdmlkZXIgdG9vbCBzcGVjIHRvIHdoaWNoZXZlciBlbmRwb2ludCB3YXMgcmVzb2x2ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFUX0NPTVBMRVRJT05TX1BBVEggPSBcInNlcnZpbmctZW5kcG9pbnRzL2NoYXQvY29tcGxldGlvbnNcIjtcblxuLyoqXG4gKiBUaGUgT3BlbkFJLWNvbXBhdGlibGUgY2hhdC1jb21wbGV0aW9ucyBpbnZvY2F0aW9ucyBVUkwgZm9yIGFuIGVuZHBvaW50IGlkLlxuICpcbiAqIEBwYXJhbSBob3N0IC0gV29ya3NwYWNlIGhvc3QsIGUuZy4gYGh0dHBzOi8vbXktd29ya3NwYWNlLmNsb3VkLmRhdGFicmlja3MuY29tL2AuXG4gKiAgIFBhc3MgdGhlIHZhbHVlIHJlc29sdmVkIGZyb20gYGNsaWVudC5jb25maWcuZ2V0SG9zdCgpYC5cbiAqIEBwYXJhbSBlbmRwb2ludCAtIEVuZHBvaW50IGlkIChhbHJlYWR5IHJlc29sdmVkOyBub3QgZnV6enktbWF0Y2hlZCBoZXJlKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludm9jYXRpb25zVXJsKGhvc3Q6IHN0cmluZywgZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgVVJMKFxuICAgIGBzZXJ2aW5nLWVuZHBvaW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChlbmRwb2ludCl9LyR7SU5WT0NBVElPTlNfU1VGRklYfWAsXG4gICAgaG9zdCxcbiAgKS50b1N0cmluZygpO1xufVxuXG4vKiogV29ya3NwYWNlIE9wZW5BSSBSZXNwb25zZXMgQVBJIFVSTCAoYFBPU1RgLCBtb2RlbCBpbiB0aGUgYm9keSkuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzcG9uc2VzVXJsKGhvc3Q6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgVVJMKFJFU1BPTlNFU19QQVRILCBob3N0KS50b1N0cmluZygpO1xufVxuXG4vKiogV29ya3NwYWNlIE9wZW4gUmVzcG9uc2VzIEFQSSBVUkwgKGBQT1NUYCwgbW9kZWwgaW4gdGhlIGJvZHkpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9wZW5SZXNwb25zZXNVcmwoaG9zdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5ldyBVUkwoT1BFTl9SRVNQT05TRVNfUEFUSCwgaG9zdCkudG9TdHJpbmcoKTtcbn1cblxuLyoqIFdvcmtzcGFjZSBPcGVuQUkgQ2hhdCBDb21wbGV0aW9ucyBVUkwgKGBQT1NUYCwgbW9kZWwgaW4gdGhlIGJvZHkpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYXRDb21wbGV0aW9uc1VybChob3N0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IFVSTChDSEFUX0NPTVBMRVRJT05TX1BBVEgsIGhvc3QpLnRvU3RyaW5nKCk7XG59XG5cbi8qKlxuICogVHJ1ZSB3aGVuIHRoZSBlbmRwb2ludCBpcyBrbm93biB0byByZWplY3QgQ2hhdCBDb21wbGV0aW9ucyBgL2ludm9jYXRpb25zYFxuICogYW5kIHJlcXVpcmUgdGhlIFJlc3BvbnNlcyBBUEkgKENvZGV4IG1vZGVscyB0b2RheSkuIENhbGxlcnMgc2hvdWxkIHJvdXRlXG4gKiB0aG9zZSB0byB7QGxpbmsgcmVzcG9uc2VzVXJsfSBpbnN0ZWFkIG9mIHtAbGluayBpbnZvY2F0aW9uc1VybH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Jlc3BvbnNlc09ubHkoZW5kcG9pbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoL2NvZGV4L2kudGVzdChlbmRwb2ludCkpIHJldHVybiB0cnVlO1xuICBpZiAoL2dwdFstXy4gXT9vc3MvaS50ZXN0KGVuZHBvaW50KSkgcmV0dXJuIGZhbHNlO1xuICBjb25zdCB2ZXJzaW9uID0gZW5kcG9pbnQubWF0Y2goL2dwdFteMC05XSooXFxkKykoPzpbLl8tXShcXGQrKSk/L2kpO1xuICBpZiAoIXZlcnNpb24pIHJldHVybiBmYWxzZTtcbiAgY29uc3QgbWFqb3IgPSBOdW1iZXIodmVyc2lvblsxXSk7XG4gIGNvbnN0IG1pbm9yID0gTnVtYmVyKHZlcnNpb25bMl0gPz8gMCk7XG4gIHJldHVybiBtYWpvciA+IDUgfHwgKG1ham9yID09PSA1ICYmIG1pbm9yID49IDQpO1xufVxuXG4vKipcbiAqIFBpY2sgdGhlIERhdGFicmlja3MgUmVzcG9uc2VzIHVwc3RyZWFtIGZvciBhbiBlbmRwb2ludCBpZDogT3BlbkFJLWZhbWlseVxuICogbW9kZWxzIHVzZSBgL3NlcnZpbmctZW5kcG9pbnRzL3Jlc3BvbnNlc2A7IGV2ZXJ5dGhpbmcgZWxzZSB1c2VzIHRoZVxuICogY3Jvc3MtcHJvdmlkZXIgYC9zZXJ2aW5nLWVuZHBvaW50cy9vcGVuLXJlc3BvbnNlc2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNwb25zZXNVcHN0cmVhbVVybChob3N0OiBzdHJpbmcsIGVuZHBvaW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaXNPcGVuQWlGYW1pbHkoZW5kcG9pbnQpID8gcmVzcG9uc2VzVXJsKGhvc3QpIDogb3BlblJlc3BvbnNlc1VybChob3N0KTtcbn1cblxuLyoqIEdQVCAvIENvZGV4IC8gby1zZXJpZXMgc3R5bGUgZW5kcG9pbnQgbmFtZXMgdGhhdCBzcGVhayBPcGVuQUkgUmVzcG9uc2VzLiAqL1xuZnVuY3Rpb24gaXNPcGVuQWlGYW1pbHkoZW5kcG9pbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBuID0gZW5kcG9pbnQudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIChcbiAgICBuLmluY2x1ZGVzKFwiZ3B0XCIpIHx8XG4gICAgbi5pbmNsdWRlcyhcImNvZGV4XCIpIHx8XG4gICAgLyhefFteYS16XSlvWzEtOV0oW15hLXpdfCQpLy50ZXN0KG4pIHx8XG4gICAgbi5pbmNsdWRlcyhcIm9wZW5haVwiKVxuICApO1xufVxuXG4vKipcbiAqIE1pbmltYWwgc3RydWN0dXJhbCBzaGFwZSB7QGxpbmsgYXV0aEhlYWRlcnN9IG5lZWRzLiBEZWNsYXJlZCBuYXJyb3dseSByYXRoZXJcbiAqIHRoYW4gYXMgYSBmdWxsIGBXb3Jrc3BhY2VDbGllbnRMaWtlYCBzbyBhIGNhbGxlciBob2xkaW5nIGl0cyBvd25cbiAqIGBAZGF0YWJyaWNrcy9zZGstZXhwZXJpbWVudGFsYCBgV29ya3NwYWNlQ2xpZW50YCBzYXRpc2ZpZXMgaXQgcmVnYXJkbGVzcyBvZlxuICogd2hpY2ggU0RLIHZlcnNpb24gcmVzb2x2ZWQgaW4gaXRzIHRyZWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aGVudGljYXRpbmdDbGllbnRMaWtlIHtcbiAgY29uZmlnOiB7XG4gICAgYXV0aGVudGljYXRlKGhlYWRlcnM6IEhlYWRlcnMpOiBQcm9taXNlPHZvaWQ+O1xuICB9O1xufVxuXG4vKipcbiAqIE1pbnQgYXV0aCBoZWFkZXJzIGZvciBvbmUgdXBzdHJlYW0gcmVxdWVzdCBhcyBhIHBsYWluIG9iamVjdCwgcmVhZHkgdG8gc3ByZWFkXG4gKiBpbnRvIGEgYGZldGNoYCBpbml0LiBDYWxsIGl0IHBlciByZXF1ZXN0OiB0aGUgU0RLIHJlZnJlc2hlcyB0aGUgdW5kZXJseWluZ1xuICogdG9rZW4gd2hlbiBuZWVkZWQsIHNvIGEgbG9uZy1saXZlZCBwcm9jZXNzIG5ldmVyIGhhcyB0byB0cmFjayBleHBpcnkgaXRzZWxmLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXV0aEhlYWRlcnMoXG4gIGNsaWVudDogQXV0aGVudGljYXRpbmdDbGllbnRMaWtlLFxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICBhd2FpdCBjbGllbnQuY29uZmlnLmF1dGhlbnRpY2F0ZShoZWFkZXJzKTtcbiAgY29uc3Qgb3V0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGhlYWRlcnMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIG91dFtrZXldID0gdmFsdWU7XG4gIH0pO1xuICByZXR1cm4gb3V0O1xufVxuIl19
|
package/lib/src/serving.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ import { type ServingEndpointSummary } from "@dbx-tools/shared-model";
|
|
|
27
27
|
* of this package can keep importing it from here. See
|
|
28
28
|
* `appkit.WorkspaceClientLike` (node-appkit) for the canonical definition.
|
|
29
29
|
*/
|
|
30
|
-
export type WorkspaceClientLike = appkit.WorkspaceClientLike
|
|
30
|
+
export type WorkspaceClientLike = Pick<appkit.WorkspaceClientLike, "servingEndpoints">;
|
|
31
31
|
/** Default TTL for the in-memory endpoint cache. Matches the Databricks SDK's session lifetime budget. */
|
|
32
32
|
export declare const DEFAULT_MODEL_CACHE_TTL_MS: number;
|
|
33
33
|
/** Default Fuse.js score threshold below which a fuzzy match is accepted. */
|
package/lib/src/serving.js
CHANGED
|
@@ -284,4 +284,4 @@ export function resolveModelId(input, endpoints, options = {}) {
|
|
|
284
284
|
}
|
|
285
285
|
return { modelId: input, matched: false };
|
|
286
286
|
}
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUNMLFFBQVEsRUFDUixPQUFPLEVBQ1AsS0FBSyxHQUdOLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBRTNCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVqRCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBRTdCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFTM0MsMEdBQTBHO0FBQzFHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRXhELDZFQUE2RTtBQUM3RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFM0MsZ0VBQWdFO0FBQ2hFLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7QUFFaEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQztBQVd2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLE1BQTJCLEVBQzNCLElBQVksRUFDWixVQUF1QyxFQUFFO0lBRXpDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJ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S0FBSztLQUN2QixDQUFDLENBQUM7SUFDSCxPQUFPLElBQUk7U0FDUixNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO1NBQzFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsS0FBYSxFQUNiLFNBQTRDLEVBQzVDLFVBQStCLEVBQUU7SUFFakMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGl2ZSBEYXRhYnJpY2tzIE1vZGVsIFNlcnZpbmcgY2F0YWxvZ3VlIGFjY2Vzcy5cbiAqXG4gKiBMaXN0cyB0aGUgd29ya3NwYWNlJ3MgYC9zZXJ2aW5nLWVuZHBvaW50c2Agb25jZSBwZXIgaG9zdCBhbmQgY2FjaGVzIHRoZVxuICogcmVzdWx0IHdpdGggYSBUVEwgdmlhIEFwcEtpdCdzIGBDYWNoZU1hbmFnZXJgLCB3aXRoIGNvbmN1cnJlbnQgY2FsbGVyc1xuICogc2hhcmluZyBvbmUgaW4tZmxpZ2h0IHByb21pc2UgKHRoZSBjb2FsZXNjaW5nIHBhdHRlcm4gb2YgUHl0aG9uJ3NcbiAqIGBjYWNoZXRvb2xzLWFzeW5jYCkuIFN1cmZhY2VzIGVhY2ggZW5kcG9pbnQgYXMgYSBzdGFibGVcbiAqIHtAbGluayBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5fSAtIGluY2x1ZGluZyB0aGUgRm91bmRhdGlvbiBNb2RlbCBBUElcbiAqIGBxdWFsaXR5YCAvIGBzcGVlZGAgLyBgY29zdGAgcHJvZmlsZSB3aGVuIHByZXNlbnQsIHRoZSBjbGFzc2lmaWVkXG4gKiB7QGxpbmsgTW9kZWxDbGFzc30sIGFuZCAoZm9yIGVtYmVkZGluZyBlbmRwb2ludHMpIHRoZSBtZWFzdXJlZCB2ZWN0b3JcbiAqIGBkaW1lbnNpb25gIC0gYW5kIHNuYXBzIGxvb3NlLCBodW1hbi10eXBlZCBuYW1lcyB0byByZWFsIGVuZHBvaW50IGlkc1xuICogdGhyb3VnaCBgZnVzZS5qc2AgZXh0ZW5kZWQgc2VhcmNoIHNvIHRva2VucyBsaWtlIGBcImNsYXVkZSBzb25uZXRcImAgcmVzb2x2ZSB0b1xuICogYGRhdGFicmlja3MtY2xhdWRlLXNvbm5ldC00LTZgLlxuICpcbiAqIFRoZSBjbGFzcyBzdGFtcCBhbmQgZW1iZWRkaW5nIGRpbWVuc2lvbiBhcmUgY29tcHV0ZWQgb25jZSBwZXIgY2FjaGUgbG9hZDpcbiAqIGV2ZXJ5IGVtYmVkZGluZyBlbmRwb2ludCBpcyBcInBpbmdlZFwiIGluIHBhcmFsbGVsIGFuZCB0aGUgcmVzdWx0aW5nIHZlY3RvclxuICogbGVuZ3RoIHJlY29yZGVkLCBzbyB0aGUgY29zdCBpcyBwYWlkIG9uIGEgY2FjaGUgbWlzcywgbm90IHBlciByZWFkLiBUaGUgcGluZ1xuICogaXMgYmVzdC1lZmZvcnQgLSBhIGZhaWx1cmUgbG9ncyBhdCBkZWJ1ZyBhbmQgbGVhdmVzIGBkaW1lbnNpb25gIHVuc2V0IHJhdGhlclxuICogdGhhbiBmYWlsaW5nIHRoZSB3aG9sZSBsaXN0aW5nLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBDYWNoZU1hbmFnZXIgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBhcHBraXQgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGVycm9yLCBsb2csIHN0cmluZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBjbGFzc2lmeSxcbiAgZGlzcGxheSxcbiAgbW9kZWwsXG4gIHR5cGUgTW9kZWxQcm9maWxlLFxuICB0eXBlIFNlcnZpbmdFbmRwb2ludFN1bW1hcnksXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbFwiO1xuaW1wb3J0IEZ1c2UgZnJvbSBcImZ1c2UuanNcIjtcblxuaW1wb3J0IHsgTU9ERUxfQ0xBU1NfT1JERVIgfSBmcm9tIFwiLi9jbGFzc2VzLnRzXCI7XG5cbmNvbnN0IHsgTW9kZWxDbGFzcyB9ID0gbW9kZWw7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJtb2RlbC9zZXJ2aW5nXCIpO1xuXG4vKipcbiAqIFN0cnVjdHVyYWwgdHlwZSBmb3IgdGhlIERhdGFicmlja3Mgd29ya3NwYWNlIGNsaWVudCwgcmUtZXhwb3J0ZWQgc28gdGhlIHJlc3RcbiAqIG9mIHRoaXMgcGFja2FnZSBjYW4ga2VlcCBpbXBvcnRpbmcgaXQgZnJvbSBoZXJlLiBTZWVcbiAqIGBhcHBraXQuV29ya3NwYWNlQ2xpZW50TGlrZWAgKG5vZGUtYXBwa2l0KSBmb3IgdGhlIGNhbm9uaWNhbCBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgdHlwZSBXb3Jrc3BhY2VDbGllbnRMaWtlID0gYXBwa2l0LldvcmtzcGFjZUNsaWVudExpa2U7XG5cbi8qKiBEZWZhdWx0IFRUTCBmb3IgdGhlIGluLW1lbW9yeSBlbmRwb2ludCBjYWNoZS4gTWF0Y2hlcyB0aGUgRGF0YWJyaWNrcyBTREsncyBzZXNzaW9uIGxpZmV0aW1lIGJ1ZGdldC4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01PREVMX0NBQ0hFX1RUTF9NUyA9IDUgKiA2MCAqIDEwMDA7XG5cbi8qKiBEZWZhdWx0IEZ1c2UuanMgc2NvcmUgdGhyZXNob2xkIGJlbG93IHdoaWNoIGEgZnV6enkgbWF0Y2ggaXMgYWNjZXB0ZWQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9GVVpaWV9USFJFU0hPTEQgPSAwLjQ7XG5cbi8qKiBDYWNoZSBrZXkgcGFydHMgdW5kZXIgd2hpY2ggZW5kcG9pbnQgbGlzdGluZ3MgYXJlIHN0b3JlZC4gKi9cbmNvbnN0IENBQ0hFX0tFWV9OQU1FU1BBQ0UgPSBcInNlcnZpbmctZW5kcG9pbnRzXCI7XG5cbi8qKlxuICogU3RhYmxlIGB1c2VyS2V5YCBhcmcgZm9yIEFwcEtpdCdzIGBDYWNoZU1hbmFnZXIuZ2V0T3JFeGVjdXRlYC4gRW5kcG9pbnRcbiAqIHZpc2liaWxpdHkgaXMgZWZmZWN0aXZlbHkgd29ya3NwYWNlLXNjb3BlZCAod2UgY2FjaGUgYnkgaG9zdCBpbiB0aGUga2V5XG4gKiBwYXJ0cyksIHNvIGEgc2luZ2xlIHNoYXJlZCBrZXkgbGV0cyBldmVyeSB1c2VyIG9mIHRoZSBzYW1lIHdvcmtzcGFjZSBzaGFyZVxuICogb25lIGNhY2hlZCBmZXRjaCBhbmQgY29hbGVzY2Ugb24gdGhlIGluLWZsaWdodCBwcm9taXNlLiBQZXJtaXNzaW9ucyBjYW5cbiAqIGRpZmZlciBpbiB0aGVvcnksIGJ1dCB0aGUgRm91bmRhdGlvbiBNb2RlbCBBUEkgY2F0YWxvZ3VlIGlzIHRoZSBzYW1lIHZpZXcgZm9yXG4gKiBldmVyeSBjYWxsZXIuXG4gKi9cbmNvbnN0IFNIQVJFRF9VU0VSX0tFWSA9IFwibW9kZWwtc2hhcmVkXCI7XG5cbi8qKiBPcHRpb25zIGZvciB7QGxpbmsgbGlzdFNlcnZpbmdFbmRwb2ludHN9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U2VydmluZ0VuZHBvaW50c09wdGlvbnMge1xuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2FjaGUgVFRMIGZvciB0aGlzIGNhbGwsIGluIG1pbGxpc2Vjb25kcy4gRm9yd2FyZGVkIHRvXG4gICAqIGBDYWNoZU1hbmFnZXJgIGFzIHNlY29uZHMuXG4gICAqL1xuICB0dGxNcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBMaXN0IE1vZGVsIFNlcnZpbmcgZW5kcG9pbnRzIGZvciB0aGUgd29ya3NwYWNlIG93bmluZyBgY2xpZW50YCwgcm91dGVkXG4gKiB0aHJvdWdoIEFwcEtpdCdzIGBDYWNoZU1hbmFnZXJgLiBUaGUgbWFuYWdlciBnaXZlcyB1cyBldmVyeXRoaW5nXG4gKiBgY2FjaGV0b29scy5UVExDYWNoZWAgcHJvdmlkZXMgcGx1cyB3aGF0IGBjYWNoZXRvb2xzLWFzeW5jYCBhZGRzIG9uIHRvcDpcbiAqIHBlci1lbnRyeSBUVEwsIGluLWZsaWdodCByZXF1ZXN0IGNvYWxlc2NpbmcgKGNvbmN1cnJlbnQgY2FsbGVycyBzaGFyZSBvbmVcbiAqIGZldGNoIHZpYSB0aGUgbWFuYWdlcidzIGludGVybmFsIGBpbkZsaWdodFJlcXVlc3RzYCBtYXApLCBib3VuZGVkIHNpemUsXG4gKiB0ZWxlbWV0cnkgc3BhbnMgKGBjYWNoZS5nZXRPckV4ZWN1dGVgKSwgYW5kIG9wdGlvbmFsIExha2ViYXNlIHBlcnNpc3RlbmNlIHNvXG4gKiB0aGUgY2F0YWxvZ3VlIHN1cnZpdmVzIHJlc3RhcnRzIHdoZW4gdGhlIGxha2ViYXNlIHBsdWdpbiBpcyB3aXJlZCB1cC5cbiAqXG4gKiBSZXR1cm5zIHBsYWluIHtAbGluayBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5fSBvYmplY3RzIChhIHN0YWJsZSBzdWJzZXQgb2YgdGhlXG4gKiBTREsgdHlwZSkgc28gY2FjaGUgaGl0cyBuZXZlciBleHBvc2Ugc3RhbGUgU0RLIGludGVybmFscy4gRXJyb3JzIGZyb21cbiAqIGBDYWNoZU1hbmFnZXJgIG9yIHRoZSBTREsgZmV0Y2ggcHJvcGFnYXRlIHRvIHRoZSBjYWxsZXIgLSB3ZSBkb24ndCBzd2FsbG93XG4gKiB0aGVtIHNvIHVzZXJzIHNlZSB0aGUgcmVhbCBhdXRoIC8gbmV0d29yayBpc3N1ZS5cbiAqXG4gKiBAcGFyYW0gaG9zdCAtIFdvcmtzcGFjZSBob3N0IHVzZWQgYXMgdGhlIGNhY2hlIGtleS4gUGFzcyB0aGUgdmFsdWUgcmVzb2x2ZWRcbiAqICAgZnJvbSBgY2xpZW50LmNvbmZpZy5nZXRIb3N0KClgIHNvIG11bHRpLWhvc3QgYXBwcyBzaGFyZSBvbmUgZW50cnkgcGVyXG4gKiAgIHdvcmtzcGFjZS5cbiAqIEBwYXJhbSBvcHRpb25zLnR0bE1zIC0gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgVFRMIGp1c3QgZm9yIHRoaXMgY2FsbC4gRm9yd2FyZGVkXG4gKiAgIHRvIGBDYWNoZU1hbmFnZXJgIGFzIHNlY29uZHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaXN0U2VydmluZ0VuZHBvaW50cyhcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnRMaWtlLFxuICBob3N0OiBzdHJpbmcsXG4gIG9wdGlvbnM6IExpc3RTZXJ2aW5nRW5kcG9pbnRzT3B0aW9ucyA9IHt9LFxuKTogUHJvbWlzZTxTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5W10+IHtcbiAgY29uc3QgdHRsU2VjID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZCgob3B0aW9ucy50dGxNcyA/PyBERUZBVUxUX01PREVMX0NBQ0hFX1RUTF9NUykgLyAxMDAwKSk7XG4gIHJldHVybiBDYWNoZU1hbmFnZXIuZ2V0SW5zdGFuY2VTeW5jKCkuZ2V0T3JFeGVjdXRlKFxuICAgIFtDQUNIRV9LRVlfTkFNRVNQQUNFLCBob3N0XSxcbiAgICAoKSA9PiBmZXRjaEVuZHBvaW50cyhjbGllbnQpLFxuICAgIFNIQVJFRF9VU0VSX0tFWSxcbiAgICB7IHR0bDogdHRsU2VjIH0sXG4gICk7XG59XG5cbi8qKlxuICogTGlzdCB0aGUgd29ya3NwYWNlJ3Mgc2VydmluZyBlbmRwb2ludHMgYXMgbWluaW1hbFxuICoge0BsaW5rIFNlcnZpbmdFbmRwb2ludFN1bW1hcnl9IG9iamVjdHMgc3RyYWlnaHQgZnJvbSB0aGUgU0RLOiBubyBjYWNoaW5nLCBhbmRcbiAqIG5vbmUgb2YgdGhlIGNhY2hlLWxvYWQgZW5yaWNobWVudCAoe0BsaW5rIGxpc3RTZXJ2aW5nRW5kcG9pbnRzfSBhZGRzIHRoZVxuICoge0BsaW5rIE1vZGVsQ2xhc3N9IHN0YW1wIGFuZCB0aGUgZW1iZWRkaW5nLWRpbWVuc2lvbiBwcm9iZSkuIFVzZSB0aGlzIGZvciBhXG4gKiBvbmUtc2hvdCwgZGVwZW5kZW5jeS1saWdodCBsaXN0aW5nIC0gZS5nLiBhIENMSSB0aGF0IG9ubHkgbmVlZHMgbmFtZXMvdGFza3NcbiAqIGZvciBmdXp6eSByZXNvbHV0aW9uIGFuZCBkb2Vzbid0IHdhbnQgQXBwS2l0J3MgYENhY2hlTWFuYWdlcmAgb3IgdGhlXG4gKiBwZXItZW1iZWRkaW5nIHBpbmcgY29zdC4gUHJlZmVyIHtAbGluayBsaXN0U2VydmluZ0VuZHBvaW50c30gZm9yIHRoZSBjYWNoZWQsXG4gKiBlbnJpY2hlZCB2aWV3LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdFNlcnZpbmdFbmRwb2ludHNVbmNhY2hlZChcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnRMaWtlLFxuKTogUHJvbWlzZTxTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5W10+IHtcbiAgY29uc3Qgb3V0OiBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5W10gPSBbXTtcbiAgZm9yIGF3YWl0IChjb25zdCBlcCBvZiBjbGllbnQuc2VydmluZ0VuZHBvaW50cy5saXN0KCkpIHtcbiAgICBpZiAoIWVwLm5hbWUpIGNvbnRpbnVlO1xuICAgIGNvbnN0IHByb2ZpbGUgPSBleHRyYWN0UHJvZmlsZShlcCk7XG4gICAgb3V0LnB1c2goe1xuICAgICAgbmFtZTogZXAubmFtZSxcbiAgICAgIC8vIFByZWZlciBhIERhdGFicmlja3MtcHJvdmlkZWQgaHVtYW4gbmFtZSAoYSBkaXNwbGF5LW5hbWUgdGFnIG9yIGFuXG4gICAgICAvLyBleHRlcm5hbC1tb2RlbCBuYW1lKTsgZWxzZSBkZXJpdmUgYSB0aXRsZS1jYXNlZCBsYWJlbCBmcm9tIHRoZSBpZC5cbiAgICAgIGRpc3BsYXlOYW1lOiBkaXNwbGF5LnRvTW9kZWxEaXNwbGF5TmFtZShlcC5uYW1lLCBwcm92aWRlZERpc3BsYXlOYW1lKGVwKSksXG4gICAgICAuLi4oZXAudGFzayAhPT0gdW5kZWZpbmVkID8geyB0YXNrOiBlcC50YXNrIH0gOiB7fSksXG4gICAgICAuLi4oZXAuc3RhdGU/LnJlYWR5ICE9PSB1bmRlZmluZWQgPyB7IHN0YXRlOiBTdHJpbmcoZXAuc3RhdGUucmVhZHkpIH0gOiB7fSksXG4gICAgICAuLi4oZXAuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCA/IHsgZGVzY3JpcHRpb246IGVwLmRlc2NyaXB0aW9uIH0gOiB7fSksXG4gICAgICBzdXBwb3J0c1Rvb2xzOiBjbGFzc2lmeS5zdXBwb3J0c1Rvb2xzQnlGYW1pbHkoZXAubmFtZSksXG4gICAgICAuLi4ocHJvZmlsZSA/IHsgcHJvZmlsZSB9IDoge30pLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbi8qKlxuICogUHVsbCBhIERhdGFicmlja3MtcHJvdmlkZWQgaHVtYW4gbmFtZSBvZmYgYSBzZXJ2aW5nIGVuZHBvaW50LCBpZiBhbnk6XG4gKiBhIGBkaXNwbGF5X25hbWVgIC8gYGRpc3BsYXlOYW1lYCAvIGBuYW1lYCB0YWcgZmlyc3QsIHRoZW4gYW5cbiAqIGV4dGVybmFsLW1vZGVsIGBuYW1lYCBmcm9tIHRoZSBzZXJ2ZWQtZW50aXR5IGNvbmZpZy4gUmV0dXJucyBgbnVsbGBcbiAqIHdoZW4gdGhlIGVuZHBvaW50IGNhcnJpZXMgbm8gZXhwbGljaXQgbmFtZSAodGhlIGNvbW1vbiBjYXNlIGZvclxuICogRm91bmRhdGlvbiBNb2RlbCBBUEkgZW5kcG9pbnRzKSwgc28gdGhlIGNhbGxlciBmYWxscyBiYWNrIHRvIGRlcml2aW5nXG4gKiBvbmUgZnJvbSB0aGUgaWQuXG4gKi9cbmZ1bmN0aW9uIHByb3ZpZGVkRGlzcGxheU5hbWUoZXA6IHtcbiAgdGFncz86IEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlPzogc3RyaW5nIH0+O1xuICBjb25maWc/OiB7IHNlcnZlZF9lbnRpdGllcz86IEFycmF5PHsgZXh0ZXJuYWxfbW9kZWw/OiB7IG5hbWU/OiBzdHJpbmcgfSB9PiB9O1xufSk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCB0YWcgPSBlcC50YWdzPy5maW5kKFxuICAgICh0KSA9PiB0LmtleSA9PT0gXCJkaXNwbGF5X25hbWVcIiB8fCB0LmtleSA9PT0gXCJkaXNwbGF5TmFtZVwiIHx8IHQua2V5ID09PSBcIm5hbWVcIixcbiAgKTtcbiAgY29uc3QgZnJvbVRhZyA9IHN0cmluZy50cmltVG9OdWxsKHRhZz8udmFsdWUpO1xuICBpZiAoZnJvbVRhZykgcmV0dXJuIGZyb21UYWc7XG4gIGZvciAoY29uc3QgZW50aXR5IG9mIGVwLmNvbmZpZz8uc2VydmVkX2VudGl0aWVzID8/IFtdKSB7XG4gICAgY29uc3QgZXh0ZXJuYWwgPSBzdHJpbmcudHJpbVRvTnVsbChlbnRpdHkuZXh0ZXJuYWxfbW9kZWw/Lm5hbWUpO1xuICAgIGlmIChleHRlcm5hbCkgcmV0dXJuIGV4dGVybmFsO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEVuZHBvaW50cyhjbGllbnQ6IFdvcmtzcGFjZUNsaWVudExpa2UpOiBQcm9taXNlPFNlcnZpbmdFbmRwb2ludFN1bW1hcnlbXT4ge1xuICBjb25zdCBzdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICBjb25zdCBvdXQgPSBhd2FpdCBsaXN0U2VydmluZ0VuZHBvaW50c1VuY2FjaGVkKGNsaWVudCk7XG4gIHN0YW1wTW9kZWxDbGFzc2VzKG91dCk7XG4gIGF3YWl0IG1lYXN1cmVFbWJlZGRpbmdEaW1lbnNpb25zKGNsaWVudCwgb3V0KTtcbiAgbG9nZ2VyLmRlYnVnKFwibGlzdGVkXCIsIHsgY291bnQ6IG91dC5sZW5ndGgsIGVsYXBzZWRNczogRGF0ZS5ub3coKSAtIHN0YXJ0ZWRBdCB9KTtcbiAgcmV0dXJuIG91dDtcbn1cblxuLyoqXG4gKiBTdGFtcCBlYWNoIHN1bW1hcnkncyB7QGxpbmsgU2VydmluZ0VuZHBvaW50U3VtbWFyeS5jbGFzc30gZnJvbSB0aGUgcmVsYXRpdmVcbiAqIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSB3aG9sZSBzZXQuIE11dGF0ZXMgYHN1bW1hcmllc2AgaW4gcGxhY2UuIEVuZHBvaW50cyB0aGVcbiAqIGNsYXNzaWZpZXIgZG9lc24ndCByZWNvZ25pemUgKGN1c3RvbSwgdW5zY29yZWQsIG5vbi1MTE0pIGFyZSBsZWZ0IHdpdGhvdXQgYVxuICogY2xhc3MuXG4gKi9cbmZ1bmN0aW9uIHN0YW1wTW9kZWxDbGFzc2VzKHN1bW1hcmllczogU2VydmluZ0VuZHBvaW50U3VtbWFyeVtdKTogdm9pZCB7XG4gIGNvbnN0IGJ1Y2tldHMgPSBjbGFzc2lmeS5jbGFzc2lmeUVuZHBvaW50cyhzdW1tYXJpZXMpO1xuICBjb25zdCBjbGFzc09mID0gbmV3IE1hcDxzdHJpbmcsIG1vZGVsLk1vZGVsQ2xhc3M+KCk7XG4gIGZvciAoY29uc3QgY2xzIG9mIE1PREVMX0NMQVNTX09SREVSKSB7XG4gICAgZm9yIChjb25zdCBlcCBvZiBidWNrZXRzW2Nsc10pIGNsYXNzT2Yuc2V0KGVwLm5hbWUsIGNscyk7XG4gIH1cbiAgZm9yIChjb25zdCBzdW1tYXJ5IG9mIHN1bW1hcmllcykge1xuICAgIGNvbnN0IGNscyA9IGNsYXNzT2YuZ2V0KHN1bW1hcnkubmFtZSk7XG4gICAgaWYgKGNscyAhPT0gdW5kZWZpbmVkKSBzdW1tYXJ5LmNsYXNzID0gY2xzO1xuICB9XG59XG5cbi8qKlxuICogTWVhc3VyZSB0aGUgZW1iZWRkaW5nIHZlY3RvciBkaW1lbnNpb24gb2YgZXZlcnkge0BsaW5rIE1vZGVsQ2xhc3MuRW1iZWRkaW5nfVxuICogZW5kcG9pbnQgYnkgcGluZ2luZyBpdCBvbmNlLCBhbGwgaW4gcGFyYWxsZWwuIE11dGF0ZXMgdGhlIG1hdGNoaW5nIHN1bW1hcmllc1xuICogaW4gcGxhY2Ugd2l0aCB0aGUgcmVzdWx0aW5nIGBkaW1lbnNpb25gLiBSdW5zIG9ubHkgb24gYSBjYWNoZSBtaXNzIChpdCdzXG4gKiBjYWxsZWQgZnJvbSB7QGxpbmsgZmV0Y2hFbmRwb2ludHN9KSwgc28gdGhlIHByb2JlIGNvc3QgaXMgYW1vcnRpemVkIGFjcm9zcyB0aGVcbiAqIGNhY2hlZCBUVEwgd2luZG93LiBQZXItZW5kcG9pbnQgZmFpbHVyZXMgYXJlIHN3YWxsb3dlZCAobG9nZ2VkIGF0IHdhcm4pIHNvXG4gKiBvbmUgdW5yZWFjaGFibGUgZW1iZWRkaW5nIG1vZGVsIG5ldmVyIGZhaWxzIHRoZSBsaXN0aW5nLlxuICovXG5hc3luYyBmdW5jdGlvbiBtZWFzdXJlRW1iZWRkaW5nRGltZW5zaW9ucyhcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnRMaWtlLFxuICBzdW1tYXJpZXM6IFNlcnZpbmdFbmRwb2ludFN1bW1hcnlbXSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBzdW1tYXJpZXNcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMuY2xhc3MgPT09IE1vZGVsQ2xhc3MuRW1iZWRkaW5nKVxuICAgICAgLm1hcChhc3luYyAoc3VtbWFyeSkgPT4ge1xuICAgICAgICBjb25zdCBkaW1lbnNpb24gPSBhd2FpdCBwaW5nRW1iZWRkaW5nRGltZW5zaW9uKGNsaWVudCwgc3VtbWFyeS5uYW1lKTtcbiAgICAgICAgaWYgKGRpbWVuc2lvbiAhPT0gdW5kZWZpbmVkKSBzdW1tYXJ5LmRpbWVuc2lvbiA9IGRpbWVuc2lvbjtcbiAgICAgIH0pLFxuICApO1xufVxuXG4vKipcbiAqIEJlc3QtZWZmb3J0IGVtYmVkZGluZyBkaW1lbnNpb24gcHJvYmU6IHF1ZXJ5IGBuYW1lYCB3aXRoIGEgdGlueSBgXCJwaW5nXCJgXG4gKiBpbnB1dCBhbmQgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJldHVybmVkIHZlY3Rvci4gUmV0dXJucyBgdW5kZWZpbmVkYCAoYW5kXG4gKiBsb2dzIGF0IHdhcm4pIHdoZW4gdGhlIGVuZHBvaW50IGNhbid0IGJlIHF1ZXJpZWQgb3IgcmV0dXJucyBubyB2ZWN0b3IgLSB0aGVcbiAqIGRpbWVuc2lvbiBpcyBpbmZvcm1hdGlvbmFsLCBuZXZlciByZXF1aXJlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcGluZ0VtYmVkZGluZ0RpbWVuc2lvbihcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnRMaWtlLFxuICBuYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlcnZpbmdFbmRwb2ludHMucXVlcnkoeyBuYW1lLCBpbnB1dDogXCJwaW5nXCIgfSk7XG4gICAgY29uc3QgZGltZW5zaW9uID0gcmVzcG9uc2UuZGF0YT8uWzBdPy5lbWJlZGRpbmc/Lmxlbmd0aDtcbiAgICBpZiAodHlwZW9mIGRpbWVuc2lvbiA9PT0gXCJudW1iZXJcIiAmJiBkaW1lbnNpb24gPiAwKSByZXR1cm4gZGltZW5zaW9uO1xuICAgIGxvZ2dlci53YXJuKFwiZW1iZWRkaW5nIHBpbmcgcmV0dXJuZWQgbm8gdmVjdG9yXCIsIHsgbmFtZSB9KTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIud2FybihcImVtYmVkZGluZyBwaW5nIGZhaWxlZFwiLCB7IG5hbWUsIGVycm9yOiBlcnJvci5lcnJvck1lc3NhZ2UoZXJyKSB9KTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogUHVsbCB0aGUgRm91bmRhdGlvbiBNb2RlbCBBUEkgYHF1YWxpdHlgIC8gYHNwZWVkYCAvIGBjb3N0YCBzY29yZXMgb2ZmIGFcbiAqIHNlcnZpbmctZW5kcG9pbnQgbGlzdGluZyBlbnRyeS4gRGF0YWJyaWNrcyByZXR1cm5zIHRoZXNlIHVuZGVyXG4gKiBgY29uZmlnLnNlcnZlZF9lbnRpdGllc1tdLmZvdW5kYXRpb25fbW9kZWwuYWlfZ2F0ZXdheV9tb2RlbF9wcm9maWxlYFxuICogKHNuYWtlX2Nhc2UgYXQgdGhlIHdpcmUgbGV2ZWwsIHByZXNlcnZlZCB2ZXJiYXRpbSBieSB0aGUgU0RLKSwgYnV0IHRoZSBmaWVsZFxuICogaXMgbmV3ZXIgdGhhbiB0aGUgdHlwZWQgYEZvdW5kYXRpb25Nb2RlbGAgaW50ZXJmYWNlLCBzbyB3ZSByZWFkIGl0IHRocm91Z2ggYVxuICogc3RydWN0dXJhbCBjYXN0LiBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gbm8gc2VydmVkIGVudGl0eSBjYXJyaWVzIGEgcHJvZmlsZVxuICogKGN1c3RvbSBtb2RlbHMsIGVtYmVkZGluZ3MsIGFuZCBicmFuZC1uZXcgZW5kcG9pbnRzIHRoYXQgRGF0YWJyaWNrcyBoYXMgbm90XG4gKiBzY29yZWQgeWV0KS5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdFByb2ZpbGUoZXA6IHVua25vd24pOiBNb2RlbFByb2ZpbGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBlbnRpdGllcyA9IChcbiAgICBlcCBhcyB7XG4gICAgICBjb25maWc/OiB7XG4gICAgICAgIHNlcnZlZF9lbnRpdGllcz86IEFycmF5PHtcbiAgICAgICAgICBmb3VuZGF0aW9uX21vZGVsPzoge1xuICAgICAgICAgICAgYWlfZ2F0ZXdheV9tb2RlbF9wcm9maWxlPzoge1xuICAgICAgICAgICAgICBxdWFsaXR5PzogbnVtYmVyO1xuICAgICAgICAgICAgICBzcGVlZD86IG51bWJlcjtcbiAgICAgICAgICAgICAgY29zdD86IG51bWJlcjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcbiAgICAgICAgfT47XG4gICAgICB9O1xuICAgIH1cbiAgKS5jb25maWc/LnNlcnZlZF9lbnRpdGllcztcbiAgaWYgKCFlbnRpdGllcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXMpIHtcbiAgICBjb25zdCByYXcgPSBlbnRpdHkuZm91bmRhdGlvbl9tb2RlbD8uYWlfZ2F0ZXdheV9tb2RlbF9wcm9maWxlO1xuICAgIGlmICghcmF3KSBjb250aW51ZTtcbiAgICBjb25zdCBwcm9maWxlOiBNb2RlbFByb2ZpbGUgPSB7fTtcbiAgICBpZiAoTnVtYmVyLmlzRmluaXRlKHJhdy5xdWFsaXR5KSkgcHJvZmlsZS5xdWFsaXR5ID0gcmF3LnF1YWxpdHk7XG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShyYXcuc3BlZWQpKSBwcm9maWxlLnNwZWVkID0gcmF3LnNwZWVkO1xuICAgIGlmIChOdW1iZXIuaXNGaW5pdGUocmF3LmNvc3QpKSBwcm9maWxlLmNvc3QgPSByYXcuY29zdDtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvZmlsZSkubGVuZ3RoID4gMCkgcmV0dXJuIHByb2ZpbGU7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBGb3JjZS1ldmljdCBjYWNoZWQgZW5kcG9pbnQgbGlzdGluZ3MgdmlhIEFwcEtpdCdzIGBDYWNoZU1hbmFnZXJgLiBXaXRoIGFcbiAqIGBob3N0YCBkZWxldGVzIHRoYXQgb25lIHdvcmtzcGFjZSdzIGVudHJ5OyB3aXRob3V0IG9uZSBjbGVhcnMgZXZlcnkgY2FjaGVcbiAqIGVudHJ5IG9uIHRoZSBtYW5hZ2VyIChzaW5jZSBgQ2FjaGVNYW5hZ2VyYCBkb2Vzbid0IGV4cG9zZSBhIG5hbWVzcGFjZS1zY29wZWRcbiAqIGNsZWFyLCB0aGlzIGlzIHRoZSBicnV0ZS1mb3JjZSBwYXRoIC0gZmluZSBmb3IgdGVzdHMsIGF2b2lkIGluIHN0ZWFkeS1zdGF0ZVxuICogY29kZSkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbGVhclNlcnZpbmdFbmRwb2ludHNDYWNoZShob3N0Pzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNhY2hlID0gQ2FjaGVNYW5hZ2VyLmdldEluc3RhbmNlU3luYygpO1xuICBpZiAoaG9zdCkge1xuICAgIGNvbnN0IGtleSA9IGNhY2hlLmdlbmVyYXRlS2V5KFtDQUNIRV9LRVlfTkFNRVNQQUNFLCBob3N0XSwgU0hBUkVEX1VTRVJfS0VZKTtcbiAgICBhd2FpdCBjYWNoZS5kZWxldGUoa2V5KTtcbiAgfSBlbHNlIHtcbiAgICBhd2FpdCBjYWNoZS5jbGVhcigpO1xuICB9XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGZ1enp5LXJlc29sdmluZyBhIHVzZXItc3VwcGxpZWQgbW9kZWwgbmFtZSBhZ2FpbnN0IHRoZSBsaXZlXG4gKiBlbmRwb2ludCBsaXN0LiBgc2NvcmVgIGlzIEZ1c2UuanMncyBkaXN0YW5jZSAoYDBgIGlzIGV4YWN0LCBgMWAgaXMgbm8gbWF0Y2gpO1xuICogYG1hdGNoZWRgIGlzIGBmYWxzZWAgd2hlbiB0aGUgc2NvcmUgZXhjZWVkcyB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQgc29cbiAqIGNhbGxlcnMgY2FuIGZhbGwgYmFjayB0byB0aGUgb3JpZ2luYWwgaW5wdXQgKERhdGFicmlja3Mgd2lsbCB0aGVuIHJldHVybiBhXG4gKiBjbGVhbiA0MDQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkTW9kZWwge1xuICBtb2RlbElkOiBzdHJpbmc7XG4gIG1hdGNoZWQ6IGJvb2xlYW47XG4gIHNjb3JlPzogbnVtYmVyO1xufVxuXG4vKiogT3B0aW9ucyBhY2NlcHRlZCBieSB7QGxpbmsgcmVzb2x2ZU1vZGVsSWR9IC8ge0BsaW5rIHNlYXJjaFNlcnZpbmdFbmRwb2ludHN9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlTW9kZWxPcHRpb25zIHtcbiAgLyoqIEZ1c2UuanMgdGhyZXNob2xkICgwID0gZXhhY3QsIDEgPSBhbnl0aGluZykuIERlZmF1bHQgYDAuNGAuICovXG4gIHRocmVzaG9sZD86IG51bWJlcjtcbiAgLyoqIFJlcXVpcmUgYSBtb2RlbCB2ZXJpZmllZCBmb3IgYSBjb21wbGV0ZSBmdW5jdGlvbi10b29sIHJvdW5kLXRyaXAuICovXG4gIHJlcXVpcmVzVG9vbHM/OiBib29sZWFuO1xufVxuXG4vKiogQSBzZXJ2aW5nIGVuZHBvaW50IHBhaXJlZCB3aXRoIGl0cyBmdXp6eS1tYXRjaCBkaXN0YW5jZSBmb3IgYSBxdWVyeS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NvcmVkRW5kcG9pbnQge1xuICBlbmRwb2ludDogU2VydmluZ0VuZHBvaW50U3VtbWFyeTtcbiAgLyoqIEZ1c2UuanMgZGlzdGFuY2U6IGAwYCBpcyBleGFjdCwgYDFgIGlzIG5vIG1hdGNoLiAqL1xuICBzY29yZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZ1enp5LXJhbmsgZW5kcG9pbnRzIGJ5IGhvdyBjbG9zZWx5IHRoZWlyIGBuYW1lYCBtYXRjaGVzIGBpbnB1dGAsIGJlc3RcbiAqIChsb3dlc3Qgc2NvcmUpIGZpcnN0LCBrZWVwaW5nIG9ubHkgdGhvc2Ugd2l0aGluIGB0aHJlc2hvbGRgOlxuICpcbiAqIDEuIEFuIGV4YWN0IG5hbWUgbWF0Y2ggc2hvcnQtY2lyY3VpdHMgdG8gYSBzaW5nbGUgYHNjb3JlOiAwYCByZXN1bHQuXG4gKiAyLiBPdGhlcndpc2UgdGhlIGlucHV0IGlzIHRva2VuaXplZCAoZGFzaGVzIC8gdW5kZXJzY29yZXMgLyBzcGFjZXMgYmVjb21lXG4gKiAgICBzZXBhcmF0b3JzKSBhbmQgZmVkIHRocm91Z2ggRnVzZS5qcyBleHRlbmRlZCBzZWFyY2gsIHdoaWNoIEFORC1zIGVhY2hcbiAqICAgIHRva2VuIHdpdGggZnV6enkgbWF0Y2hpbmcgZW5hYmxlZCAtIHRoZSBcInRva2VuaXplZCBmdXp6eSBtYXRjaFwiIGEgY2FsbGVyXG4gKiAgICByZWFjaGVzIGZvciB3aGVuIHRoZXkgdHlwZSBgXCJjbGF1ZGUgc29ubmV0XCJgIGluc3RlYWQgb2YgdGhlIGZ1bGwgZW5kcG9pbnRcbiAqICAgIG5hbWUuXG4gKlxuICogUmV0dXJucyBgW11gIGZvciBhbiBlbXB0eSBlbmRwb2ludCBsaXN0IG9yIHdoZW4gYGlucHV0YCB0b2tlbml6ZXMgdG8gbm90aGluZyxcbiAqIHNvIGNhbGxlcnMgZmFsbCBiYWNrIHRvIHRoZSByYXcgaW5wdXQgYW5kIGxldCBEYXRhYnJpY2tzIHN1cmZhY2UgYSBjbGVhbiA0MDQuXG4gKiBUaGlzIG11bHRpLXJlc3VsdCBjb3JlIGlzIHNoYXJlZCBieSB7QGxpbmsgcmVzb2x2ZU1vZGVsSWR9IChzaW5nbGUgYmVzdCkgYW5kXG4gKiB0aGUgcmFua2VkIGByYW5rTW9kZWxzYCBzZWxlY3Rvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFNlcnZpbmdFbmRwb2ludHMoXG4gIGlucHV0OiBzdHJpbmcsXG4gIGVuZHBvaW50czogcmVhZG9ubHkgU2VydmluZ0VuZHBvaW50U3VtbWFyeVtdLFxuICBvcHRpb25zOiBSZXNvbHZlTW9kZWxPcHRpb25zID0ge30sXG4pOiBTY29yZWRFbmRwb2ludFtdIHtcbiAgaWYgKGVuZHBvaW50cy5sZW5ndGggPT09IDApIHJldHVybiBbXTtcbiAgZm9yIChjb25zdCBlcCBvZiBlbmRwb2ludHMpIHtcbiAgICBpZiAoZXAubmFtZSA9PT0gaW5wdXQpIHJldHVybiBbeyBlbmRwb2ludDogZXAsIHNjb3JlOiAwIH1dO1xuICB9XG4gIGNvbnN0IHRocmVzaG9sZCA9IG9wdGlvbnMudGhyZXNob2xkID8/IERFRkFVTFRfRlVaWllfVEhSRVNIT0xEO1xuICAvLyBGdXNlIDcuMyBoYXMgbm8gYnVpbHQtaW4gdG9rZW5pemUgaG9vazsgaW4gZXh0ZW5kZWQgc2VhcmNoLCBzcGFjZS1zZXBhcmF0ZWRcbiAgLy8gdG9rZW5zIGFyZSBBTkQtZWQgd2l0aCBmdXp6eSBtYXRjaGluZyBlbmFibGVkLiBXZSBsZWFuIG9uIHRoZSBzaGFyZWRcbiAgLy8gdG9rZW5pemVyIHNvIHRoZSBzcGxpdHRpbmcgcnVsZXMgc3RheSBjb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhlIHRvb2xraXQuXG4gIGNvbnN0IHF1ZXJ5ID0gQXJyYXkuZnJvbShcbiAgICBzdHJpbmcudG9rZW5pemVXaXRoT3B0aW9ucyh7IGxvd2VyQ2FzZTogdHJ1ZSwgY2FtZWxDYXNlOiBmYWxzZSB9LCBpbnB1dCksXG4gICkuam9pbihcIiBcIik7XG4gIGlmICghcXVlcnkpIHJldHVybiBbXTtcbiAgY29uc3QgZnVzZSA9IG5ldyBGdXNlKGVuZHBvaW50cywge1xuICAgIGtleXM6IFtcIm5hbWVcIl0sXG4gICAgdGhyZXNob2xkLFxuICAgIGlnbm9yZUxvY2F0aW9uOiB0cnVlLFxuICAgIGluY2x1ZGVTY29yZTogdHJ1ZSxcbiAgICB1c2VFeHRlbmRlZFNlYXJjaDogdHJ1ZSxcbiAgICBpc0Nhc2VTZW5zaXRpdmU6IGZhbHNlLFxuICB9KTtcbiAgcmV0dXJuIGZ1c2VcbiAgICAuc2VhcmNoKHF1ZXJ5KVxuICAgIC5maWx0ZXIoKHIpID0+IChyLnNjb3JlID8/IDApIDw9IHRocmVzaG9sZClcbiAgICAubWFwKChyKSA9PiAoeyBlbmRwb2ludDogci5pdGVtLCBzY29yZTogci5zY29yZSA/PyAwIH0pKTtcbn1cblxuLyoqXG4gKiBTbmFwIGEgdXNlci1zdXBwbGllZCBtb2RlbCBuYW1lIHRvIHRoZSBzaW5nbGUgY2xvc2VzdCBjb25maWd1cmVkIHNlcnZpbmdcbiAqIGVuZHBvaW50IHZpYSB7QGxpbmsgc2VhcmNoU2VydmluZ0VuZHBvaW50c30uIFJldHVybnMgdGhlIGlucHV0IHVuY2hhbmdlZCB3aXRoXG4gKiBgbWF0Y2hlZDogZmFsc2VgIHdoZW4gbm90aGluZyBzY29yZXMgd2l0aGluIHRoZSB0aHJlc2hvbGQgKG9yIHRoZSBjYXRhbG9ndWVcbiAqIGlzIGVtcHR5KSwgc28gYSBkZWxpYmVyYXRlIG1vZGVsIGlkIGlzIG5ldmVyIHNpbGVudGx5IHJld3JpdHRlbiB0byBhXG4gKiBzaW1pbGFyLWxvb2tpbmcgbmVpZ2hib3VyIGFuZCB0aGUgdXBzdHJlYW0gY2FsbCBzdXJmYWNlcyB0aGUgY2Fub25pY2FsIDQwNC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RlbElkKFxuICBpbnB1dDogc3RyaW5nLFxuICBlbmRwb2ludHM6IHJlYWRvbmx5IFNlcnZpbmdFbmRwb2ludFN1bW1hcnlbXSxcbiAgb3B0aW9uczogUmVzb2x2ZU1vZGVsT3B0aW9ucyA9IHt9LFxuKTogUmVzb2x2ZWRNb2RlbCB7XG4gIGNvbnN0IFtiZXN0XSA9IHNlYXJjaFNlcnZpbmdFbmRwb2ludHMoaW5wdXQsIGVuZHBvaW50cywgb3B0aW9ucyk7XG4gIGlmIChiZXN0KSB7XG4gICAgcmV0dXJuIHsgbW9kZWxJZDogYmVzdC5lbmRwb2ludC5uYW1lLCBtYXRjaGVkOiB0cnVlLCBzY29yZTogYmVzdC5zY29yZSB9O1xuICB9XG4gIHJldHVybiB7IG1vZGVsSWQ6IGlucHV0LCBtYXRjaGVkOiBmYWxzZSB9O1xufVxuIl19
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUNMLFFBQVEsRUFDUixPQUFPLEVBQ1AsS0FBSyxHQUdOLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBRTNCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVqRCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBRTdCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFTM0MsMEdBQTBHO0FBQzFHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRXhELDZFQUE2RTtBQUM3RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFM0MsZ0VBQWdFO0FBQ2hFLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7QUFFaEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQztBQVd2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLE1BQTJCLEVBQzNCLElBQVksRUFDWixVQUF1QyxFQUFFO0lBRXpDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJ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S0FBSztLQUN2QixDQUFDLENBQUM7SUFDSCxPQUFPLElBQUk7U0FDUixNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO1NBQzFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsS0FBYSxFQUNiLFNBQTRDLEVBQzVDLFVBQStCLEVBQUU7SUFFakMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGl2ZSBEYXRhYnJpY2tzIE1vZGVsIFNlcnZpbmcgY2F0YWxvZ3VlIGFjY2Vzcy5cbiAqXG4gKiBMaXN0cyB0aGUgd29ya3NwYWNlJ3MgYC9zZXJ2aW5nLWVuZHBvaW50c2Agb25jZSBwZXIgaG9zdCBhbmQgY2FjaGVzIHRoZVxuICogcmVzdWx0IHdpdGggYSBUVEwgdmlhIEFwcEtpdCdzIGBDYWNoZU1hbmFnZXJgLCB3aXRoIGNvbmN1cnJlbnQgY2FsbGVyc1xuICogc2hhcmluZyBvbmUgaW4tZmxpZ2h0IHByb21pc2UgKHRoZSBjb2FsZXNjaW5nIHBhdHRlcm4gb2YgUHl0aG9uJ3NcbiAqIGBjYWNoZXRvb2xzLWFzeW5jYCkuIFN1cmZhY2VzIGVhY2ggZW5kcG9pbnQgYXMgYSBzdGFibGVcbiAqIHtAbGluayBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5fSAtIGluY2x1ZGluZyB0aGUgRm91bmRhdGlvbiBNb2RlbCBBUElcbiAqIGBxdWFsaXR5YCAvIGBzcGVlZGAgLyBgY29zdGAgcHJvZmlsZSB3aGVuIHByZXNlbnQsIHRoZSBjbGFzc2lmaWVkXG4gKiB7QGxpbmsgTW9kZWxDbGFzc30sIGFuZCAoZm9yIGVtYmVkZGluZyBlbmRwb2ludHMpIHRoZSBtZWFzdXJlZCB2ZWN0b3JcbiAqIGBkaW1lbnNpb25gIC0gYW5kIHNuYXBzIGxvb3NlLCBodW1hbi10eXBlZCBuYW1lcyB0byByZWFsIGVuZHBvaW50IGlkc1xuICogdGhyb3VnaCBgZnVzZS5qc2AgZXh0ZW5kZWQgc2VhcmNoIHNvIHRva2VucyBsaWtlIGBcImNsYXVkZSBzb25uZXRcImAgcmVzb2x2ZSB0b1xuICogYGRhdGFicmlja3MtY2xhdWRlLXNvbm5ldC00LTZgLlxuICpcbiAqIFRoZSBjbGFzcyBzdGFtcCBhbmQgZW1iZWRkaW5nIGRpbWVuc2lvbiBhcmUgY29tcHV0ZWQgb25jZSBwZXIgY2FjaGUgbG9hZDpcbiAqIGV2ZXJ5IGVtYmVkZGluZyBlbmRwb2ludCBpcyBcInBpbmdlZFwiIGluIHBhcmFsbGVsIGFuZCB0aGUgcmVzdWx0aW5nIHZlY3RvclxuICogbGVuZ3RoIHJlY29yZGVkLCBzbyB0aGUgY29zdCBpcyBwYWlkIG9uIGEgY2FjaGUgbWlzcywgbm90IHBlciByZWFkLiBUaGUgcGluZ1xuICogaXMgYmVzdC1lZmZvcnQgLSBhIGZhaWx1cmUgbG9ncyBhdCBkZWJ1ZyBhbmQgbGVhdmVzIGBkaW1lbnNpb25gIHVuc2V0IHJhdGhlclxuICogdGhhbiBmYWlsaW5nIHRoZSB3aG9sZSBsaXN0aW5nLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBDYWNoZU1hbmFnZXIgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBhcHBraXQgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGVycm9yLCBsb2csIHN0cmluZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBjbGFzc2lmeSxcbiAgZGlzcGxheSxcbiAgbW9kZWwsXG4gIHR5cGUgTW9kZWxQcm9maWxlLFxuICB0eXBlIFNlcnZpbmdFbmRwb2ludFN1bW1hcnksXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbFwiO1xuaW1wb3J0IEZ1c2UgZnJvbSBcImZ1c2UuanNcIjtcblxuaW1wb3J0IHsgTU9ERUxfQ0xBU1NfT1JERVIgfSBmcm9tIFwiLi9jbGFzc2VzLnRzXCI7XG5cbmNvbnN0IHsgTW9kZWxDbGFzcyB9ID0gbW9kZWw7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJtb2RlbC9zZXJ2aW5nXCIpO1xuXG4vKipcbiAqIFN0cnVjdHVyYWwgdHlwZSBmb3IgdGhlIERhdGFicmlja3Mgd29ya3NwYWNlIGNsaWVudCwgcmUtZXhwb3J0ZWQgc28gdGhlIHJlc3RcbiAqIG9mIHRoaXMgcGFja2FnZSBjYW4ga2VlcCBpbXBvcnRpbmcgaXQgZnJvbSBoZXJlLiBTZWVcbiAqIGBhcHBraXQuV29ya3NwYWNlQ2xpZW50TGlrZWAgKG5vZGUtYXBwa2l0KSBmb3IgdGhlIGNhbm9uaWNhbCBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgdHlwZSBXb3Jrc3BhY2VDbGllbnRMaWtlID0gUGljazxhcHBraXQuV29ya3NwYWNlQ2xpZW50TGlrZSwgXCJzZXJ2aW5nRW5kcG9pbnRzXCI+O1xuXG4vKiogRGVmYXVsdCBUVEwgZm9yIHRoZSBpbi1tZW1vcnkgZW5kcG9pbnQgY2FjaGUuIE1hdGNoZXMgdGhlIERhdGFicmlja3MgU0RLJ3Mgc2Vzc2lvbiBsaWZldGltZSBidWRnZXQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9NT0RFTF9DQUNIRV9UVExfTVMgPSA1ICogNjAgKiAxMDAwO1xuXG4vKiogRGVmYXVsdCBGdXNlLmpzIHNjb3JlIHRocmVzaG9sZCBiZWxvdyB3aGljaCBhIGZ1enp5IG1hdGNoIGlzIGFjY2VwdGVkLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRlVaWllfVEhSRVNIT0xEID0gMC40O1xuXG4vKiogQ2FjaGUga2V5IHBhcnRzIHVuZGVyIHdoaWNoIGVuZHBvaW50IGxpc3RpbmdzIGFyZSBzdG9yZWQuICovXG5jb25zdCBDQUNIRV9LRVlfTkFNRVNQQUNFID0gXCJzZXJ2aW5nLWVuZHBvaW50c1wiO1xuXG4vKipcbiAqIFN0YWJsZSBgdXNlcktleWAgYXJnIGZvciBBcHBLaXQncyBgQ2FjaGVNYW5hZ2VyLmdldE9yRXhlY3V0ZWAuIEVuZHBvaW50XG4gKiB2aXNpYmlsaXR5IGlzIGVmZmVjdGl2ZWx5IHdvcmtzcGFjZS1zY29wZWQgKHdlIGNhY2hlIGJ5IGhvc3QgaW4gdGhlIGtleVxuICogcGFydHMpLCBzbyBhIHNpbmdsZSBzaGFyZWQga2V5IGxldHMgZXZlcnkgdXNlciBvZiB0aGUgc2FtZSB3b3Jrc3BhY2Ugc2hhcmVcbiAqIG9uZSBjYWNoZWQgZmV0Y2ggYW5kIGNvYWxlc2NlIG9uIHRoZSBpbi1mbGlnaHQgcHJvbWlzZS4gUGVybWlzc2lvbnMgY2FuXG4gKiBkaWZmZXIgaW4gdGhlb3J5LCBidXQgdGhlIEZvdW5kYXRpb24gTW9kZWwgQVBJIGNhdGFsb2d1ZSBpcyB0aGUgc2FtZSB2aWV3IGZvclxuICogZXZlcnkgY2FsbGVyLlxuICovXG5jb25zdCBTSEFSRURfVVNFUl9LRVkgPSBcIm1vZGVsLXNoYXJlZFwiO1xuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIGxpc3RTZXJ2aW5nRW5kcG9pbnRzfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFNlcnZpbmdFbmRwb2ludHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGNhY2hlIFRUTCBmb3IgdGhpcyBjYWxsLCBpbiBtaWxsaXNlY29uZHMuIEZvcndhcmRlZCB0b1xuICAgKiBgQ2FjaGVNYW5hZ2VyYCBhcyBzZWNvbmRzLlxuICAgKi9cbiAgdHRsTXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTGlzdCBNb2RlbCBTZXJ2aW5nIGVuZHBvaW50cyBmb3IgdGhlIHdvcmtzcGFjZSBvd25pbmcgYGNsaWVudGAsIHJvdXRlZFxuICogdGhyb3VnaCBBcHBLaXQncyBgQ2FjaGVNYW5hZ2VyYC4gVGhlIG1hbmFnZXIgZ2l2ZXMgdXMgZXZlcnl0aGluZ1xuICogYGNhY2hldG9vbHMuVFRMQ2FjaGVgIHByb3ZpZGVzIHBsdXMgd2hhdCBgY2FjaGV0b29scy1hc3luY2AgYWRkcyBvbiB0b3A6XG4gKiBwZXItZW50cnkgVFRMLCBpbi1mbGlnaHQgcmVxdWVzdCBjb2FsZXNjaW5nIChjb25jdXJyZW50IGNhbGxlcnMgc2hhcmUgb25lXG4gKiBmZXRjaCB2aWEgdGhlIG1hbmFnZXIncyBpbnRlcm5hbCBgaW5GbGlnaHRSZXF1ZXN0c2AgbWFwKSwgYm91bmRlZCBzaXplLFxuICogdGVsZW1ldHJ5IHNwYW5zIChgY2FjaGUuZ2V0T3JFeGVjdXRlYCksIGFuZCBvcHRpb25hbCBMYWtlYmFzZSBwZXJzaXN0ZW5jZSBzb1xuICogdGhlIGNhdGFsb2d1ZSBzdXJ2aXZlcyByZXN0YXJ0cyB3aGVuIHRoZSBsYWtlYmFzZSBwbHVnaW4gaXMgd2lyZWQgdXAuXG4gKlxuICogUmV0dXJucyBwbGFpbiB7QGxpbmsgU2VydmluZ0VuZHBvaW50U3VtbWFyeX0gb2JqZWN0cyAoYSBzdGFibGUgc3Vic2V0IG9mIHRoZVxuICogU0RLIHR5cGUpIHNvIGNhY2hlIGhpdHMgbmV2ZXIgZXhwb3NlIHN0YWxlIFNESyBpbnRlcm5hbHMuIEVycm9ycyBmcm9tXG4gKiBgQ2FjaGVNYW5hZ2VyYCBvciB0aGUgU0RLIGZldGNoIHByb3BhZ2F0ZSB0byB0aGUgY2FsbGVyIC0gd2UgZG9uJ3Qgc3dhbGxvd1xuICogdGhlbSBzbyB1c2VycyBzZWUgdGhlIHJlYWwgYXV0aCAvIG5ldHdvcmsgaXNzdWUuXG4gKlxuICogQHBhcmFtIGhvc3QgLSBXb3Jrc3BhY2UgaG9zdCB1c2VkIGFzIHRoZSBjYWNoZSBrZXkuIFBhc3MgdGhlIHZhbHVlIHJlc29sdmVkXG4gKiAgIGZyb20gYGNsaWVudC5jb25maWcuZ2V0SG9zdCgpYCBzbyBtdWx0aS1ob3N0IGFwcHMgc2hhcmUgb25lIGVudHJ5IHBlclxuICogICB3b3Jrc3BhY2UuXG4gKiBAcGFyYW0gb3B0aW9ucy50dGxNcyAtIE92ZXJyaWRlIHRoZSBkZWZhdWx0IFRUTCBqdXN0IGZvciB0aGlzIGNhbGwuIEZvcndhcmRlZFxuICogICB0byBgQ2FjaGVNYW5hZ2VyYCBhcyBzZWNvbmRzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdFNlcnZpbmdFbmRwb2ludHMoXG4gIGNsaWVudDogV29ya3NwYWNlQ2xpZW50TGlrZSxcbiAgaG9zdDogc3RyaW5nLFxuICBvcHRpb25zOiBMaXN0U2VydmluZ0VuZHBvaW50c09wdGlvbnMgPSB7fSxcbik6IFByb21pc2U8U2VydmluZ0VuZHBvaW50U3VtbWFyeVtdPiB7XG4gIGNvbnN0IHR0bFNlYyA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQoKG9wdGlvbnMudHRsTXMgPz8gREVGQVVMVF9NT0RFTF9DQUNIRV9UVExfTVMpIC8gMTAwMCkpO1xuICByZXR1cm4gQ2FjaGVNYW5hZ2VyLmdldEluc3RhbmNlU3luYygpLmdldE9yRXhlY3V0ZShcbiAgICBbQ0FDSEVfS0VZX05BTUVTUEFDRSwgaG9zdF0sXG4gICAgKCkgPT4gZmV0Y2hFbmRwb2ludHMoY2xpZW50KSxcbiAgICBTSEFSRURfVVNFUl9LRVksXG4gICAgeyB0dGw6IHR0bFNlYyB9LFxuICApO1xufVxuXG4vKipcbiAqIExpc3QgdGhlIHdvcmtzcGFjZSdzIHNlcnZpbmcgZW5kcG9pbnRzIGFzIG1pbmltYWxcbiAqIHtAbGluayBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5fSBvYmplY3RzIHN0cmFpZ2h0IGZyb20gdGhlIFNESzogbm8gY2FjaGluZywgYW5kXG4gKiBub25lIG9mIHRoZSBjYWNoZS1sb2FkIGVucmljaG1lbnQgKHtAbGluayBsaXN0U2VydmluZ0VuZHBvaW50c30gYWRkcyB0aGVcbiAqIHtAbGluayBNb2RlbENsYXNzfSBzdGFtcCBhbmQgdGhlIGVtYmVkZGluZy1kaW1lbnNpb24gcHJvYmUpLiBVc2UgdGhpcyBmb3IgYVxuICogb25lLXNob3QsIGRlcGVuZGVuY3ktbGlnaHQgbGlzdGluZyAtIGUuZy4gYSBDTEkgdGhhdCBvbmx5IG5lZWRzIG5hbWVzL3Rhc2tzXG4gKiBmb3IgZnV6enkgcmVzb2x1dGlvbiBhbmQgZG9lc24ndCB3YW50IEFwcEtpdCdzIGBDYWNoZU1hbmFnZXJgIG9yIHRoZVxuICogcGVyLWVtYmVkZGluZyBwaW5nIGNvc3QuIFByZWZlciB7QGxpbmsgbGlzdFNlcnZpbmdFbmRwb2ludHN9IGZvciB0aGUgY2FjaGVkLFxuICogZW5yaWNoZWQgdmlldy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpc3RTZXJ2aW5nRW5kcG9pbnRzVW5jYWNoZWQoXG4gIGNsaWVudDogV29ya3NwYWNlQ2xpZW50TGlrZSxcbik6IFByb21pc2U8U2VydmluZ0VuZHBvaW50U3VtbWFyeVtdPiB7XG4gIGNvbnN0IG91dDogU2VydmluZ0VuZHBvaW50U3VtbWFyeVtdID0gW107XG4gIGZvciBhd2FpdCAoY29uc3QgZXAgb2YgY2xpZW50LnNlcnZpbmdFbmRwb2ludHMubGlzdCgpKSB7XG4gICAgaWYgKCFlcC5uYW1lKSBjb250aW51ZTtcbiAgICBjb25zdCBwcm9maWxlID0gZXh0cmFjdFByb2ZpbGUoZXApO1xuICAgIG91dC5wdXNoKHtcbiAgICAgIG5hbWU6IGVwLm5hbWUsXG4gICAgICAvLyBQcmVmZXIgYSBEYXRhYnJpY2tzLXByb3ZpZGVkIGh1bWFuIG5hbWUgKGEgZGlzcGxheS1uYW1lIHRhZyBvciBhblxuICAgICAgLy8gZXh0ZXJuYWwtbW9kZWwgbmFtZSk7IGVsc2UgZGVyaXZlIGEgdGl0bGUtY2FzZWQgbGFiZWwgZnJvbSB0aGUgaWQuXG4gICAgICBkaXNwbGF5TmFtZTogZGlzcGxheS50b01vZGVsRGlzcGxheU5hbWUoZXAubmFtZSwgcHJvdmlkZWREaXNwbGF5TmFtZShlcCkpLFxuICAgICAgLi4uKGVwLnRhc2sgIT09IHVuZGVmaW5lZCA/IHsgdGFzazogZXAudGFzayB9IDoge30pLFxuICAgICAgLi4uKGVwLnN0YXRlPy5yZWFkeSAhPT0gdW5kZWZpbmVkID8geyBzdGF0ZTogU3RyaW5nKGVwLnN0YXRlLnJlYWR5KSB9IDoge30pLFxuICAgICAgLi4uKGVwLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQgPyB7IGRlc2NyaXB0aW9uOiBlcC5kZXNjcmlwdGlvbiB9IDoge30pLFxuICAgICAgc3VwcG9ydHNUb29sczogY2xhc3NpZnkuc3VwcG9ydHNUb29sc0J5RmFtaWx5KGVwLm5hbWUpLFxuICAgICAgLi4uKHByb2ZpbGUgPyB7IHByb2ZpbGUgfSA6IHt9KSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIFB1bGwgYSBEYXRhYnJpY2tzLXByb3ZpZGVkIGh1bWFuIG5hbWUgb2ZmIGEgc2VydmluZyBlbmRwb2ludCwgaWYgYW55OlxuICogYSBgZGlzcGxheV9uYW1lYCAvIGBkaXNwbGF5TmFtZWAgLyBgbmFtZWAgdGFnIGZpcnN0LCB0aGVuIGFuXG4gKiBleHRlcm5hbC1tb2RlbCBgbmFtZWAgZnJvbSB0aGUgc2VydmVkLWVudGl0eSBjb25maWcuIFJldHVybnMgYG51bGxgXG4gKiB3aGVuIHRoZSBlbmRwb2ludCBjYXJyaWVzIG5vIGV4cGxpY2l0IG5hbWUgKHRoZSBjb21tb24gY2FzZSBmb3JcbiAqIEZvdW5kYXRpb24gTW9kZWwgQVBJIGVuZHBvaW50cyksIHNvIHRoZSBjYWxsZXIgZmFsbHMgYmFjayB0byBkZXJpdmluZ1xuICogb25lIGZyb20gdGhlIGlkLlxuICovXG5mdW5jdGlvbiBwcm92aWRlZERpc3BsYXlOYW1lKGVwOiB7XG4gIHRhZ3M/OiBBcnJheTx7IGtleTogc3RyaW5nOyB2YWx1ZT86IHN0cmluZyB9PjtcbiAgY29uZmlnPzogeyBzZXJ2ZWRfZW50aXRpZXM/OiBBcnJheTx7IGV4dGVybmFsX21vZGVsPzogeyBuYW1lPzogc3RyaW5nIH0gfT4gfTtcbn0pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgdGFnID0gZXAudGFncz8uZmluZChcbiAgICAodCkgPT4gdC5rZXkgPT09IFwiZGlzcGxheV9uYW1lXCIgfHwgdC5rZXkgPT09IFwiZGlzcGxheU5hbWVcIiB8fCB0LmtleSA9PT0gXCJuYW1lXCIsXG4gICk7XG4gIGNvbnN0IGZyb21UYWcgPSBzdHJpbmcudHJpbVRvTnVsbCh0YWc/LnZhbHVlKTtcbiAgaWYgKGZyb21UYWcpIHJldHVybiBmcm9tVGFnO1xuICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlcC5jb25maWc/LnNlcnZlZF9lbnRpdGllcyA/PyBbXSkge1xuICAgIGNvbnN0IGV4dGVybmFsID0gc3RyaW5nLnRyaW1Ub051bGwoZW50aXR5LmV4dGVybmFsX21vZGVsPy5uYW1lKTtcbiAgICBpZiAoZXh0ZXJuYWwpIHJldHVybiBleHRlcm5hbDtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hFbmRwb2ludHMoY2xpZW50OiBXb3Jrc3BhY2VDbGllbnRMaWtlKTogUHJvbWlzZTxTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5W10+IHtcbiAgY29uc3Qgc3RhcnRlZEF0ID0gRGF0ZS5ub3coKTtcbiAgY29uc3Qgb3V0ID0gYXdhaXQgbGlzdFNlcnZpbmdFbmRwb2ludHNVbmNhY2hlZChjbGllbnQpO1xuICBzdGFtcE1vZGVsQ2xhc3NlcyhvdXQpO1xuICBhd2FpdCBtZWFzdXJlRW1iZWRkaW5nRGltZW5zaW9ucyhjbGllbnQsIG91dCk7XG4gIGxvZ2dlci5kZWJ1ZyhcImxpc3RlZFwiLCB7IGNvdW50OiBvdXQubGVuZ3RoLCBlbGFwc2VkTXM6IERhdGUubm93KCkgLSBzdGFydGVkQXQgfSk7XG4gIHJldHVybiBvdXQ7XG59XG5cbi8qKlxuICogU3RhbXAgZWFjaCBzdW1tYXJ5J3Mge0BsaW5rIFNlcnZpbmdFbmRwb2ludFN1bW1hcnkuY2xhc3N9IGZyb20gdGhlIHJlbGF0aXZlXG4gKiBjbGFzc2lmaWNhdGlvbiBvZiB0aGUgd2hvbGUgc2V0LiBNdXRhdGVzIGBzdW1tYXJpZXNgIGluIHBsYWNlLiBFbmRwb2ludHMgdGhlXG4gKiBjbGFzc2lmaWVyIGRvZXNuJ3QgcmVjb2duaXplIChjdXN0b20sIHVuc2NvcmVkLCBub24tTExNKSBhcmUgbGVmdCB3aXRob3V0IGFcbiAqIGNsYXNzLlxuICovXG5mdW5jdGlvbiBzdGFtcE1vZGVsQ2xhc3NlcyhzdW1tYXJpZXM6IFNlcnZpbmdFbmRwb2ludFN1bW1hcnlbXSk6IHZvaWQge1xuICBjb25zdCBidWNrZXRzID0gY2xhc3NpZnkuY2xhc3NpZnlFbmRwb2ludHMoc3VtbWFyaWVzKTtcbiAgY29uc3QgY2xhc3NPZiA9IG5ldyBNYXA8c3RyaW5nLCBtb2RlbC5Nb2RlbENsYXNzPigpO1xuICBmb3IgKGNvbnN0IGNscyBvZiBNT0RFTF9DTEFTU19PUkRFUikge1xuICAgIGZvciAoY29uc3QgZXAgb2YgYnVja2V0c1tjbHNdKSBjbGFzc09mLnNldChlcC5uYW1lLCBjbHMpO1xuICB9XG4gIGZvciAoY29uc3Qgc3VtbWFyeSBvZiBzdW1tYXJpZXMpIHtcbiAgICBjb25zdCBjbHMgPSBjbGFzc09mLmdldChzdW1tYXJ5Lm5hbWUpO1xuICAgIGlmIChjbHMgIT09IHVuZGVmaW5lZCkgc3VtbWFyeS5jbGFzcyA9IGNscztcbiAgfVxufVxuXG4vKipcbiAqIE1lYXN1cmUgdGhlIGVtYmVkZGluZyB2ZWN0b3IgZGltZW5zaW9uIG9mIGV2ZXJ5IHtAbGluayBNb2RlbENsYXNzLkVtYmVkZGluZ31cbiAqIGVuZHBvaW50IGJ5IHBpbmdpbmcgaXQgb25jZSwgYWxsIGluIHBhcmFsbGVsLiBNdXRhdGVzIHRoZSBtYXRjaGluZyBzdW1tYXJpZXNcbiAqIGluIHBsYWNlIHdpdGggdGhlIHJlc3VsdGluZyBgZGltZW5zaW9uYC4gUnVucyBvbmx5IG9uIGEgY2FjaGUgbWlzcyAoaXQnc1xuICogY2FsbGVkIGZyb20ge0BsaW5rIGZldGNoRW5kcG9pbnRzfSksIHNvIHRoZSBwcm9iZSBjb3N0IGlzIGFtb3J0aXplZCBhY3Jvc3MgdGhlXG4gKiBjYWNoZWQgVFRMIHdpbmRvdy4gUGVyLWVuZHBvaW50IGZhaWx1cmVzIGFyZSBzd2FsbG93ZWQgKGxvZ2dlZCBhdCB3YXJuKSBzb1xuICogb25lIHVucmVhY2hhYmxlIGVtYmVkZGluZyBtb2RlbCBuZXZlciBmYWlscyB0aGUgbGlzdGluZy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbWVhc3VyZUVtYmVkZGluZ0RpbWVuc2lvbnMoXG4gIGNsaWVudDogV29ya3NwYWNlQ2xpZW50TGlrZSxcbiAgc3VtbWFyaWVzOiBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5W10sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgc3VtbWFyaWVzXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLmNsYXNzID09PSBNb2RlbENsYXNzLkVtYmVkZGluZylcbiAgICAgIC5tYXAoYXN5bmMgKHN1bW1hcnkpID0+IHtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uID0gYXdhaXQgcGluZ0VtYmVkZGluZ0RpbWVuc2lvbihjbGllbnQsIHN1bW1hcnkubmFtZSk7XG4gICAgICAgIGlmIChkaW1lbnNpb24gIT09IHVuZGVmaW5lZCkgc3VtbWFyeS5kaW1lbnNpb24gPSBkaW1lbnNpb247XG4gICAgICB9KSxcbiAgKTtcbn1cblxuLyoqXG4gKiBCZXN0LWVmZm9ydCBlbWJlZGRpbmcgZGltZW5zaW9uIHByb2JlOiBxdWVyeSBgbmFtZWAgd2l0aCBhIHRpbnkgYFwicGluZ1wiYFxuICogaW5wdXQgYW5kIHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXR1cm5lZCB2ZWN0b3IuIFJldHVybnMgYHVuZGVmaW5lZGAgKGFuZFxuICogbG9ncyBhdCB3YXJuKSB3aGVuIHRoZSBlbmRwb2ludCBjYW4ndCBiZSBxdWVyaWVkIG9yIHJldHVybnMgbm8gdmVjdG9yIC0gdGhlXG4gKiBkaW1lbnNpb24gaXMgaW5mb3JtYXRpb25hbCwgbmV2ZXIgcmVxdWlyZWQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHBpbmdFbWJlZGRpbmdEaW1lbnNpb24oXG4gIGNsaWVudDogV29ya3NwYWNlQ2xpZW50TGlrZSxcbiAgbmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5zZXJ2aW5nRW5kcG9pbnRzLnF1ZXJ5KHsgbmFtZSwgaW5wdXQ6IFwicGluZ1wiIH0pO1xuICAgIGNvbnN0IGRpbWVuc2lvbiA9IHJlc3BvbnNlLmRhdGE/LlswXT8uZW1iZWRkaW5nPy5sZW5ndGg7XG4gICAgaWYgKHR5cGVvZiBkaW1lbnNpb24gPT09IFwibnVtYmVyXCIgJiYgZGltZW5zaW9uID4gMCkgcmV0dXJuIGRpbWVuc2lvbjtcbiAgICBsb2dnZXIud2FybihcImVtYmVkZGluZyBwaW5nIHJldHVybmVkIG5vIHZlY3RvclwiLCB7IG5hbWUgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLndhcm4oXCJlbWJlZGRpbmcgcGluZyBmYWlsZWRcIiwgeyBuYW1lLCBlcnJvcjogZXJyb3IuZXJyb3JNZXNzYWdlKGVycikgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFB1bGwgdGhlIEZvdW5kYXRpb24gTW9kZWwgQVBJIGBxdWFsaXR5YCAvIGBzcGVlZGAgLyBgY29zdGAgc2NvcmVzIG9mZiBhXG4gKiBzZXJ2aW5nLWVuZHBvaW50IGxpc3RpbmcgZW50cnkuIERhdGFicmlja3MgcmV0dXJucyB0aGVzZSB1bmRlclxuICogYGNvbmZpZy5zZXJ2ZWRfZW50aXRpZXNbXS5mb3VuZGF0aW9uX21vZGVsLmFpX2dhdGV3YXlfbW9kZWxfcHJvZmlsZWBcbiAqIChzbmFrZV9jYXNlIGF0IHRoZSB3aXJlIGxldmVsLCBwcmVzZXJ2ZWQgdmVyYmF0aW0gYnkgdGhlIFNESyksIGJ1dCB0aGUgZmllbGRcbiAqIGlzIG5ld2VyIHRoYW4gdGhlIHR5cGVkIGBGb3VuZGF0aW9uTW9kZWxgIGludGVyZmFjZSwgc28gd2UgcmVhZCBpdCB0aHJvdWdoIGFcbiAqIHN0cnVjdHVyYWwgY2FzdC4gUmV0dXJucyBgdW5kZWZpbmVkYCB3aGVuIG5vIHNlcnZlZCBlbnRpdHkgY2FycmllcyBhIHByb2ZpbGVcbiAqIChjdXN0b20gbW9kZWxzLCBlbWJlZGRpbmdzLCBhbmQgYnJhbmQtbmV3IGVuZHBvaW50cyB0aGF0IERhdGFicmlja3MgaGFzIG5vdFxuICogc2NvcmVkIHlldCkuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RQcm9maWxlKGVwOiB1bmtub3duKTogTW9kZWxQcm9maWxlIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZW50aXRpZXMgPSAoXG4gICAgZXAgYXMge1xuICAgICAgY29uZmlnPzoge1xuICAgICAgICBzZXJ2ZWRfZW50aXRpZXM/OiBBcnJheTx7XG4gICAgICAgICAgZm91bmRhdGlvbl9tb2RlbD86IHtcbiAgICAgICAgICAgIGFpX2dhdGV3YXlfbW9kZWxfcHJvZmlsZT86IHtcbiAgICAgICAgICAgICAgcXVhbGl0eT86IG51bWJlcjtcbiAgICAgICAgICAgICAgc3BlZWQ/OiBudW1iZXI7XG4gICAgICAgICAgICAgIGNvc3Q/OiBudW1iZXI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH07XG4gICAgICAgIH0+O1xuICAgICAgfTtcbiAgICB9XG4gICkuY29uZmlnPy5zZXJ2ZWRfZW50aXRpZXM7XG4gIGlmICghZW50aXRpZXMpIHJldHVybiB1bmRlZmluZWQ7XG4gIGZvciAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgY29uc3QgcmF3ID0gZW50aXR5LmZvdW5kYXRpb25fbW9kZWw/LmFpX2dhdGV3YXlfbW9kZWxfcHJvZmlsZTtcbiAgICBpZiAoIXJhdykgY29udGludWU7XG4gICAgY29uc3QgcHJvZmlsZTogTW9kZWxQcm9maWxlID0ge307XG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShyYXcucXVhbGl0eSkpIHByb2ZpbGUucXVhbGl0eSA9IHJhdy5xdWFsaXR5O1xuICAgIGlmIChOdW1iZXIuaXNGaW5pdGUocmF3LnNwZWVkKSkgcHJvZmlsZS5zcGVlZCA9IHJhdy5zcGVlZDtcbiAgICBpZiAoTnVtYmVyLmlzRmluaXRlKHJhdy5jb3N0KSkgcHJvZmlsZS5jb3N0ID0gcmF3LmNvc3Q7XG4gICAgaWYgKE9iamVjdC5rZXlzKHByb2ZpbGUpLmxlbmd0aCA+IDApIHJldHVybiBwcm9maWxlO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRm9yY2UtZXZpY3QgY2FjaGVkIGVuZHBvaW50IGxpc3RpbmdzIHZpYSBBcHBLaXQncyBgQ2FjaGVNYW5hZ2VyYC4gV2l0aCBhXG4gKiBgaG9zdGAgZGVsZXRlcyB0aGF0IG9uZSB3b3Jrc3BhY2UncyBlbnRyeTsgd2l0aG91dCBvbmUgY2xlYXJzIGV2ZXJ5IGNhY2hlXG4gKiBlbnRyeSBvbiB0aGUgbWFuYWdlciAoc2luY2UgYENhY2hlTWFuYWdlcmAgZG9lc24ndCBleHBvc2UgYSBuYW1lc3BhY2Utc2NvcGVkXG4gKiBjbGVhciwgdGhpcyBpcyB0aGUgYnJ1dGUtZm9yY2UgcGF0aCAtIGZpbmUgZm9yIHRlc3RzLCBhdm9pZCBpbiBzdGVhZHktc3RhdGVcbiAqIGNvZGUpLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xlYXJTZXJ2aW5nRW5kcG9pbnRzQ2FjaGUoaG9zdD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjYWNoZSA9IENhY2hlTWFuYWdlci5nZXRJbnN0YW5jZVN5bmMoKTtcbiAgaWYgKGhvc3QpIHtcbiAgICBjb25zdCBrZXkgPSBjYWNoZS5nZW5lcmF0ZUtleShbQ0FDSEVfS0VZX05BTUVTUEFDRSwgaG9zdF0sIFNIQVJFRF9VU0VSX0tFWSk7XG4gICAgYXdhaXQgY2FjaGUuZGVsZXRlKGtleSk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgY2FjaGUuY2xlYXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBmdXp6eS1yZXNvbHZpbmcgYSB1c2VyLXN1cHBsaWVkIG1vZGVsIG5hbWUgYWdhaW5zdCB0aGUgbGl2ZVxuICogZW5kcG9pbnQgbGlzdC4gYHNjb3JlYCBpcyBGdXNlLmpzJ3MgZGlzdGFuY2UgKGAwYCBpcyBleGFjdCwgYDFgIGlzIG5vIG1hdGNoKTtcbiAqIGBtYXRjaGVkYCBpcyBgZmFsc2VgIHdoZW4gdGhlIHNjb3JlIGV4Y2VlZHMgdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkIHNvXG4gKiBjYWxsZXJzIGNhbiBmYWxsIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGlucHV0IChEYXRhYnJpY2tzIHdpbGwgdGhlbiByZXR1cm4gYVxuICogY2xlYW4gNDA0KS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZE1vZGVsIHtcbiAgbW9kZWxJZDogc3RyaW5nO1xuICBtYXRjaGVkOiBib29sZWFuO1xuICBzY29yZT86IG51bWJlcjtcbn1cblxuLyoqIE9wdGlvbnMgYWNjZXB0ZWQgYnkge0BsaW5rIHJlc29sdmVNb2RlbElkfSAvIHtAbGluayBzZWFyY2hTZXJ2aW5nRW5kcG9pbnRzfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZU1vZGVsT3B0aW9ucyB7XG4gIC8qKiBGdXNlLmpzIHRocmVzaG9sZCAoMCA9IGV4YWN0LCAxID0gYW55dGhpbmcpLiBEZWZhdWx0IGAwLjRgLiAqL1xuICB0aHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBSZXF1aXJlIGEgbW9kZWwgdmVyaWZpZWQgZm9yIGEgY29tcGxldGUgZnVuY3Rpb24tdG9vbCByb3VuZC10cmlwLiAqL1xuICByZXF1aXJlc1Rvb2xzPzogYm9vbGVhbjtcbn1cblxuLyoqIEEgc2VydmluZyBlbmRwb2ludCBwYWlyZWQgd2l0aCBpdHMgZnV6enktbWF0Y2ggZGlzdGFuY2UgZm9yIGEgcXVlcnkuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjb3JlZEVuZHBvaW50IHtcbiAgZW5kcG9pbnQ6IFNlcnZpbmdFbmRwb2ludFN1bW1hcnk7XG4gIC8qKiBGdXNlLmpzIGRpc3RhbmNlOiBgMGAgaXMgZXhhY3QsIGAxYCBpcyBubyBtYXRjaC4gKi9cbiAgc2NvcmU6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBGdXp6eS1yYW5rIGVuZHBvaW50cyBieSBob3cgY2xvc2VseSB0aGVpciBgbmFtZWAgbWF0Y2hlcyBgaW5wdXRgLCBiZXN0XG4gKiAobG93ZXN0IHNjb3JlKSBmaXJzdCwga2VlcGluZyBvbmx5IHRob3NlIHdpdGhpbiBgdGhyZXNob2xkYDpcbiAqXG4gKiAxLiBBbiBleGFjdCBuYW1lIG1hdGNoIHNob3J0LWNpcmN1aXRzIHRvIGEgc2luZ2xlIGBzY29yZTogMGAgcmVzdWx0LlxuICogMi4gT3RoZXJ3aXNlIHRoZSBpbnB1dCBpcyB0b2tlbml6ZWQgKGRhc2hlcyAvIHVuZGVyc2NvcmVzIC8gc3BhY2VzIGJlY29tZVxuICogICAgc2VwYXJhdG9ycykgYW5kIGZlZCB0aHJvdWdoIEZ1c2UuanMgZXh0ZW5kZWQgc2VhcmNoLCB3aGljaCBBTkQtcyBlYWNoXG4gKiAgICB0b2tlbiB3aXRoIGZ1enp5IG1hdGNoaW5nIGVuYWJsZWQgLSB0aGUgXCJ0b2tlbml6ZWQgZnV6enkgbWF0Y2hcIiBhIGNhbGxlclxuICogICAgcmVhY2hlcyBmb3Igd2hlbiB0aGV5IHR5cGUgYFwiY2xhdWRlIHNvbm5ldFwiYCBpbnN0ZWFkIG9mIHRoZSBmdWxsIGVuZHBvaW50XG4gKiAgICBuYW1lLlxuICpcbiAqIFJldHVybnMgYFtdYCBmb3IgYW4gZW1wdHkgZW5kcG9pbnQgbGlzdCBvciB3aGVuIGBpbnB1dGAgdG9rZW5pemVzIHRvIG5vdGhpbmcsXG4gKiBzbyBjYWxsZXJzIGZhbGwgYmFjayB0byB0aGUgcmF3IGlucHV0IGFuZCBsZXQgRGF0YWJyaWNrcyBzdXJmYWNlIGEgY2xlYW4gNDA0LlxuICogVGhpcyBtdWx0aS1yZXN1bHQgY29yZSBpcyBzaGFyZWQgYnkge0BsaW5rIHJlc29sdmVNb2RlbElkfSAoc2luZ2xlIGJlc3QpIGFuZFxuICogdGhlIHJhbmtlZCBgcmFua01vZGVsc2Agc2VsZWN0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hTZXJ2aW5nRW5kcG9pbnRzKFxuICBpbnB1dDogc3RyaW5nLFxuICBlbmRwb2ludHM6IHJlYWRvbmx5IFNlcnZpbmdFbmRwb2ludFN1bW1hcnlbXSxcbiAgb3B0aW9uczogUmVzb2x2ZU1vZGVsT3B0aW9ucyA9IHt9LFxuKTogU2NvcmVkRW5kcG9pbnRbXSB7XG4gIGlmIChlbmRwb2ludHMubGVuZ3RoID09PSAwKSByZXR1cm4gW107XG4gIGZvciAoY29uc3QgZXAgb2YgZW5kcG9pbnRzKSB7XG4gICAgaWYgKGVwLm5hbWUgPT09IGlucHV0KSByZXR1cm4gW3sgZW5kcG9pbnQ6IGVwLCBzY29yZTogMCB9XTtcbiAgfVxuICBjb25zdCB0aHJlc2hvbGQgPSBvcHRpb25zLnRocmVzaG9sZCA/PyBERUZBVUxUX0ZVWlpZX1RIUkVTSE9MRDtcbiAgLy8gRnVzZSA3LjMgaGFzIG5vIGJ1aWx0LWluIHRva2VuaXplIGhvb2s7IGluIGV4dGVuZGVkIHNlYXJjaCwgc3BhY2Utc2VwYXJhdGVkXG4gIC8vIHRva2VucyBhcmUgQU5ELWVkIHdpdGggZnV6enkgbWF0Y2hpbmcgZW5hYmxlZC4gV2UgbGVhbiBvbiB0aGUgc2hhcmVkXG4gIC8vIHRva2VuaXplciBzbyB0aGUgc3BsaXR0aW5nIHJ1bGVzIHN0YXkgY29uc2lzdGVudCB3aXRoIHRoZSByZXN0IG9mIHRoZSB0b29sa2l0LlxuICBjb25zdCBxdWVyeSA9IEFycmF5LmZyb20oXG4gICAgc3RyaW5nLnRva2VuaXplV2l0aE9wdGlvbnMoeyBsb3dlckNhc2U6IHRydWUsIGNhbWVsQ2FzZTogZmFsc2UgfSwgaW5wdXQpLFxuICApLmpvaW4oXCIgXCIpO1xuICBpZiAoIXF1ZXJ5KSByZXR1cm4gW107XG4gIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShlbmRwb2ludHMsIHtcbiAgICBrZXlzOiBbXCJuYW1lXCJdLFxuICAgIHRocmVzaG9sZCxcbiAgICBpZ25vcmVMb2NhdGlvbjogdHJ1ZSxcbiAgICBpbmNsdWRlU2NvcmU6IHRydWUsXG4gICAgdXNlRXh0ZW5kZWRTZWFyY2g6IHRydWUsXG4gICAgaXNDYXNlU2Vuc2l0aXZlOiBmYWxzZSxcbiAgfSk7XG4gIHJldHVybiBmdXNlXG4gICAgLnNlYXJjaChxdWVyeSlcbiAgICAuZmlsdGVyKChyKSA9PiAoci5zY29yZSA/PyAwKSA8PSB0aHJlc2hvbGQpXG4gICAgLm1hcCgocikgPT4gKHsgZW5kcG9pbnQ6IHIuaXRlbSwgc2NvcmU6IHIuc2NvcmUgPz8gMCB9KSk7XG59XG5cbi8qKlxuICogU25hcCBhIHVzZXItc3VwcGxpZWQgbW9kZWwgbmFtZSB0byB0aGUgc2luZ2xlIGNsb3Nlc3QgY29uZmlndXJlZCBzZXJ2aW5nXG4gKiBlbmRwb2ludCB2aWEge0BsaW5rIHNlYXJjaFNlcnZpbmdFbmRwb2ludHN9LiBSZXR1cm5zIHRoZSBpbnB1dCB1bmNoYW5nZWQgd2l0aFxuICogYG1hdGNoZWQ6IGZhbHNlYCB3aGVuIG5vdGhpbmcgc2NvcmVzIHdpdGhpbiB0aGUgdGhyZXNob2xkIChvciB0aGUgY2F0YWxvZ3VlXG4gKiBpcyBlbXB0eSksIHNvIGEgZGVsaWJlcmF0ZSBtb2RlbCBpZCBpcyBuZXZlciBzaWxlbnRseSByZXdyaXR0ZW4gdG8gYVxuICogc2ltaWxhci1sb29raW5nIG5laWdoYm91ciBhbmQgdGhlIHVwc3RyZWFtIGNhbGwgc3VyZmFjZXMgdGhlIGNhbm9uaWNhbCA0MDQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kZWxJZChcbiAgaW5wdXQ6IHN0cmluZyxcbiAgZW5kcG9pbnRzOiByZWFkb25seSBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5W10sXG4gIG9wdGlvbnM6IFJlc29sdmVNb2RlbE9wdGlvbnMgPSB7fSxcbik6IFJlc29sdmVkTW9kZWwge1xuICBjb25zdCBbYmVzdF0gPSBzZWFyY2hTZXJ2aW5nRW5kcG9pbnRzKGlucHV0LCBlbmRwb2ludHMsIG9wdGlvbnMpO1xuICBpZiAoYmVzdCkge1xuICAgIHJldHVybiB7IG1vZGVsSWQ6IGJlc3QuZW5kcG9pbnQubmFtZSwgbWF0Y2hlZDogdHJ1ZSwgc2NvcmU6IGJlc3Quc2NvcmUgfTtcbiAgfVxuICByZXR1cm4geyBtb2RlbElkOiBpbnB1dCwgbWF0Y2hlZDogZmFsc2UgfTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
"projen": "projen"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@dbx-tools/test-polyglot": "0.6.
|
|
21
|
+
"@dbx-tools/test-polyglot": "0.6.112",
|
|
22
22
|
"@types/bun": "^1.3.14",
|
|
23
23
|
"@types/node": "^24.6.0",
|
|
24
24
|
"typescript": "^5.9.3"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@databricks/appkit": "^0.
|
|
28
|
-
"@dbx-tools/appkit": "0.6.
|
|
29
|
-
"@dbx-tools/shared-core": "0.6.
|
|
30
|
-
"@dbx-tools/shared-model": "0.6.
|
|
27
|
+
"@databricks/appkit": "^0.60.0",
|
|
28
|
+
"@dbx-tools/appkit": "0.6.112",
|
|
29
|
+
"@dbx-tools/shared-core": "0.6.112",
|
|
30
|
+
"@dbx-tools/shared-model": "0.6.112",
|
|
31
31
|
"fuse.js": "^7.4.2"
|
|
32
32
|
},
|
|
33
33
|
"main": "./lib/index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"./package.json": "./package.json"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
"version": "0.6.
|
|
47
|
+
"version": "0.6.112",
|
|
48
48
|
"types": "./lib/index.d.ts",
|
|
49
49
|
"type": "module",
|
|
50
50
|
"exports": {
|
package/src/invoke.ts
CHANGED
|
@@ -81,7 +81,13 @@ export function chatCompletionsUrl(host: string): string {
|
|
|
81
81
|
* those to {@link responsesUrl} instead of {@link invocationsUrl}.
|
|
82
82
|
*/
|
|
83
83
|
export function isResponsesOnly(endpoint: string): boolean {
|
|
84
|
-
|
|
84
|
+
if (/codex/i.test(endpoint)) return true;
|
|
85
|
+
if (/gpt[-_. ]?oss/i.test(endpoint)) return false;
|
|
86
|
+
const version = endpoint.match(/gpt[^0-9]*(\d+)(?:[._-](\d+))?/i);
|
|
87
|
+
if (!version) return false;
|
|
88
|
+
const major = Number(version[1]);
|
|
89
|
+
const minor = Number(version[2] ?? 0);
|
|
90
|
+
return major > 5 || (major === 5 && minor >= 4);
|
|
85
91
|
}
|
|
86
92
|
|
|
87
93
|
/**
|
package/src/serving.ts
CHANGED
|
@@ -44,7 +44,7 @@ const logger = log.logger("model/serving");
|
|
|
44
44
|
* of this package can keep importing it from here. See
|
|
45
45
|
* `appkit.WorkspaceClientLike` (node-appkit) for the canonical definition.
|
|
46
46
|
*/
|
|
47
|
-
export type WorkspaceClientLike = appkit.WorkspaceClientLike
|
|
47
|
+
export type WorkspaceClientLike = Pick<appkit.WorkspaceClientLike, "servingEndpoints">;
|
|
48
48
|
|
|
49
49
|
/** Default TTL for the in-memory endpoint cache. Matches the Databricks SDK's session lifetime budget. */
|
|
50
50
|
export const DEFAULT_MODEL_CACHE_TTL_MS = 5 * 60 * 1000;
|