@dbx-tools/tunnel 0.6.216 → 0.6.217
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 +1 -0
- package/index.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/src/interceptor.d.ts +2 -0
- package/lib/src/interceptor.js +2 -1
- package/lib/src/portr.d.ts +2 -0
- package/lib/src/portr.js +8 -5
- package/lib/src/supervisor.d.ts +1 -0
- package/lib/src/supervisor.js +1 -1
- package/package.json +8 -8
- package/src/interceptor.ts +3 -0
- package/src/portr.ts +9 -4
- package/src/supervisor.ts +1 -0
package/README.md
CHANGED
|
@@ -158,6 +158,7 @@ without touching code.
|
|
|
158
158
|
| `TUNNEL_PUBLIC_DOMAIN` | - (no tunnel when unset) |
|
|
159
159
|
| `TUNNEL_FRP_PUBLIC_DOMAIN` | - (no FRP tunnel when unset) |
|
|
160
160
|
| `DBX_TOOLS_TUNNEL_TRANSPORT` | `portr` |
|
|
161
|
+
| `PORTR_SSH_URL` | Portr host on port `4444` |
|
|
161
162
|
| `FRP_SERVER` | FRP public domain |
|
|
162
163
|
| `FRP_SERVER_PORT` | `443` |
|
|
163
164
|
| `FRP_PROTOCOL` | `wss` |
|
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/tunnel";
|
|
6
|
-
export const PACKAGE_VERSION = "0.6.
|
|
6
|
+
export const PACKAGE_VERSION = "0.6.217";
|
|
7
7
|
export * as allowlist from "./src/allowlist.ts";
|
|
8
8
|
export * as codeEmail from "./src/code-email.ts";
|
|
9
9
|
export * as frp from "./src/frp.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/tunnel";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.6.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.6.217";
|
|
3
3
|
export * as allowlist from "./src/allowlist.ts";
|
|
4
4
|
export * as codeEmail from "./src/code-email.ts";
|
|
5
5
|
export * as frp from "./src/frp.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/tunnel";
|
|
5
|
-
export const PACKAGE_VERSION = "0.6.
|
|
5
|
+
export const PACKAGE_VERSION = "0.6.217";
|
|
6
6
|
export * as allowlist from "./src/allowlist.js";
|
|
7
7
|
export * as codeEmail from "./src/code-email.js";
|
|
8
8
|
export * as frp from "./src/frp.js";
|
|
@@ -20,4 +20,4 @@ export { AUTH_PREFIX, UNAUTHORIZED_BODY } from "./src/gate.js";
|
|
|
20
20
|
export { PROTECTED_HEADERS, DEFAULT_FORWARD_HEADERS } from "./src/headers.js";
|
|
21
21
|
export { AuthGatePlugin, authGate } from "./src/plugin.js";
|
|
22
22
|
export { KEY_TTL_SECONDS } from "./src/signing-key.js";
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxXQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssUUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUdsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy90dW5uZWxcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuNi4yMTdcIjtcbmV4cG9ydCAqIGFzIGFsbG93bGlzdCBmcm9tIFwiLi9zcmMvYWxsb3dsaXN0LnRzXCI7XG5leHBvcnQgKiBhcyBjb2RlRW1haWwgZnJvbSBcIi4vc3JjL2NvZGUtZW1haWwudHNcIjtcbmV4cG9ydCAqIGFzIGZycCBmcm9tIFwiLi9zcmMvZnJwLnRzXCI7XG5leHBvcnQgKiBhcyBnYXRlIGZyb20gXCIuL3NyYy9nYXRlLnRzXCI7XG5leHBvcnQgKiBhcyBoZWFkZXJzIGZyb20gXCIuL3NyYy9oZWFkZXJzLnRzXCI7XG5leHBvcnQgKiBhcyBpbnRlcmNlcHRvciBmcm9tIFwiLi9zcmMvaW50ZXJjZXB0b3IudHNcIjtcbmV4cG9ydCAqIGFzIGxvZ2luUGFnZSBmcm9tIFwiLi9zcmMvbG9naW4tcGFnZS50c1wiO1xuZXhwb3J0ICogYXMgcGF0aFByb3h5IGZyb20gXCIuL3NyYy9wYXRoLXByb3h5LnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcG9ydHIgZnJvbSBcIi4vc3JjL3BvcnRyLnRzXCI7XG5leHBvcnQgKiBhcyBzZW5kQ29kZSBmcm9tIFwiLi9zcmMvc2VuZC1jb2RlLnRzXCI7XG5leHBvcnQgKiBhcyBzaWduaW5nS2V5IGZyb20gXCIuL3NyYy9zaWduaW5nLWtleS50c1wiO1xuZXhwb3J0ICogYXMgc3VwZXJ2aXNvciBmcm9tIFwiLi9zcmMvc3VwZXJ2aXNvci50c1wiO1xuZXhwb3J0IHR5cGUgeyBDb2RlQ29weSB9IGZyb20gXCIuL3NyYy9jb2RlLWVtYWlsLnRzXCI7XG5leHBvcnQgdHlwZSB7IEZycEluc3RhbGxPcHRpb25zLCBGcnBDb25maWcgfSBmcm9tIFwiLi9zcmMvZnJwLnRzXCI7XG5leHBvcnQgeyBBVVRIX1BSRUZJWCwgVU5BVVRIT1JJWkVEX0JPRFkgfSBmcm9tIFwiLi9zcmMvZ2F0ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBHYXRlT3B0aW9ucywgR2F0ZUFjdGlvbiB9IGZyb20gXCIuL3NyYy9nYXRlLnRzXCI7XG5leHBvcnQgeyBQUk9URUNURURfSEVBREVSUywgREVGQVVMVF9GT1JXQVJEX0hFQURFUlMgfSBmcm9tIFwiLi9zcmMvaGVhZGVycy50c1wiO1xuZXhwb3J0IHR5cGUgeyBIZWFkZXJQb2xpY3kgfSBmcm9tIFwiLi9zcmMvaGVhZGVycy50c1wiO1xuZXhwb3J0IHR5cGUgeyBUdW5uZWxJbnRlcmNlcHRvck9wdGlvbnMsIFR1bm5lbFRyYW5zcG9ydCB9IGZyb20gXCIuL3NyYy9pbnRlcmNlcHRvci50c1wiO1xuZXhwb3J0IHR5cGUgeyBMb2dpblBhZ2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2xvZ2luLXBhZ2UudHNcIjtcbmV4cG9ydCB7IEF1dGhHYXRlUGx1Z2luLCBhdXRoR2F0ZSB9IGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aEdhdGVDb25maWcsIFNlbmRDb2RlT3B0aW9ucywgUmVzb2x2ZWRBdXRoR2F0ZUNvbmZpZywgQXV0aEdhdGVBcGkgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgdHlwZSB7IFBvcnRySW5zdGFsbE9wdGlvbnMsIFBvcnRyQ29uZmlnIH0gZnJvbSBcIi4vc3JjL3BvcnRyLnRzXCI7XG5leHBvcnQgeyBLRVlfVFRMX1NFQ09ORFMgfSBmcm9tIFwiLi9zcmMvc2lnbmluZy1rZXkudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2lnbmluZ0tleSB9IGZyb20gXCIuL3NyYy9zaWduaW5nLWtleS50c1wiO1xuZXhwb3J0IHR5cGUgeyBQcm9jZXNzU3VwZXJ2aXNvciwgUHJvY2Vzc1N1cGVydmlzb3JPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3N1cGVydmlzb3IudHNcIjtcbiJdfQ==
|
package/lib/src/interceptor.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export interface TunnelInterceptorOptions {
|
|
|
27
27
|
publicDomain?: string;
|
|
28
28
|
/** portr subdomain (else derived from {@link publicDomain}). */
|
|
29
29
|
subdomain?: string;
|
|
30
|
+
/** Portr SSH control endpoint. Env `PORTR_SSH_URL`; defaults to the Portr host on port `4444`. */
|
|
31
|
+
portrSshUrl?: string;
|
|
30
32
|
/**
|
|
31
33
|
* The PUBLIC port portr forwards to - the port the app itself listens on.
|
|
32
34
|
* Defaults to the Databricks Apps runtime contract `DATABRICKS_APP_PORT`
|
package/lib/src/interceptor.js
CHANGED
|
@@ -84,6 +84,7 @@ export function tunnelInterceptor(options = {}, runtime = defaultRuntime) {
|
|
|
84
84
|
const portrConfig = resolvePortrConfig({
|
|
85
85
|
publicDomain: options.publicDomain,
|
|
86
86
|
subdomain: options.subdomain,
|
|
87
|
+
sshUrl: options.portrSshUrl,
|
|
87
88
|
port,
|
|
88
89
|
});
|
|
89
90
|
if (portrConfig) {
|
|
@@ -140,4 +141,4 @@ export function tunnelInterceptor(options = {}, runtime = defaultRuntime) {
|
|
|
140
141
|
logger.info(`tunnel initialization scheduled: ${transport} -> :${port}`);
|
|
141
142
|
};
|
|
142
143
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBR0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWhHLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQWlEaEQsTUFBTSxjQUFjLEdBQWtCO0lBQ3BDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTTtRQUNyQixNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRztRQUN4QixNQUFNLFNBQVMsR0FDYixNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRztZQUN2QyxDQUFDLENBQUMsTUFBTSxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3RELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE1BQU0sQ0FBQyxVQUFVLEdBQUcsU0FB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RSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDakUsU0FBUztnQkFDWCxDQUFDO2dCQUNELElBQUksT0FBTztvQkFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDOztvQkFDNUIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsU0FBUyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxTQUFTLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBgdHVubmVsSW50ZXJjZXB0b3IoKWAgLSB0aGUge0BsaW5rIEludGVyY2VwdG9yfSB0aGF0IGZyb250cyBhbiBhcHAgd2l0aCBhIHB1YmxpY1xuICogcG9ydHIgYW5kL29yIGZycCB0dW5uZWwsIGNvbnN1bWluZyB0aGUge0BsaW5rIEludGVyY2VwdG9yQ29udGV4dH0gYEBkYngtdG9vbHMvYXBwa2l0YCdzXG4gKiBgY3JlYXRlQXBwYCBoYW5kcyBpdC5cbiAqXG4gKiBUaGUgdHVubmVsIHJ1bnMgSU4tUFJPQ0VTUzogdGhlIEFQUCBpcyB0aGUgbWFpbiBwcm9jZXNzIGFuZCBoYW5kcyB0aGlzIGludGVyY2VwdG9yXG4gKiBpdHMgY29udGV4dCwgcmF0aGVyIHRoYW4gYSB3cmFwcGVyIHByb2Nlc3Mgc3Bhd25pbmcgdGhlIGFwcCBhcyBhIGNoaWxkLiBUaGVcbiAqIGludGVyY2VwdG9yIGFwcGxpZXMgdGhlIGNvbXB1dGVkIHdvcmtzcGFjZSBob3N0LCBpbnN0YWxscyBhbmQgbGF1bmNoZXMgcG9ydHIgb24gdGhlXG4gKiBhcHAncyBwdWJsaWMgcG9ydCwgYmluZHMgdGhlIGNoaWxkIHByb2Nlc3MgdG8gdGhlIGFwcCwgYW5kIHN0b3BzIHBvcnRyIGR1cmluZyBhblxuICogb3JkZXJseSBBcHBLaXQgc2h1dGRvd24uXG4gKlxuICogVGhlIHBhc3N3b3JkbGVzcyBHQVRFIGlzIGEgc2VwYXJhdGUgY29uY2VybjogaXQgaXMgdGhlIGBhdXRoR2F0ZWAgQXBwS2l0IHBsdWdpbixcbiAqIHdoaWNoIHJlZ2lzdGVycyB0aGUgbG9naW4gcm91dGVzICsgYSBnYXRpbmcgbWlkZGxld2FyZSBvbiB0aGUgYXBwJ3Mgb3duIHNlcnZlci5cbiAqIFJlZ2lzdGVyIGl0IGluIHRoZSBhcHAncyBgcGx1Z2luc2AgZm9yIGdhdGVkIHRyYWZmaWMuIFRoaXMgaW50ZXJjZXB0b3IgaXMgb25seVxuICogdGhlIHBvcnRyIGhhbGYgLSBcInVwZGF0ZSB0aGUgaG9zdCwgYmluZCBwb3J0clwiIC0gdGhlIHNtYWxsZXN0IHVzZWZ1bCB1bml0LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEludGVyY2VwdG9yLCBJbnRlcmNlcHRvckNvbnRleHQgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGxvZywgb2JqZWN0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IGluc3RhbGxGcnAsIHJlc29sdmVGcnBDb25maWcsIHN1cGVydmlzZUZycCwgd3JpdGVGcnBDb25maWcgfSBmcm9tIFwiLi9mcnAudHNcIjtcbmltcG9ydCB7IHN0YXJ0UGF0aFByb3h5IH0gZnJvbSBcIi4vcGF0aC1wcm94eS50c1wiO1xuaW1wb3J0IHsgaW5zdGFsbFBvcnRyLCByZXNvbHZlUG9ydHJDb25maWcsIHN1cGVydmlzZVBvcnRyLCB3cml0ZVBvcnRyQ29uZmlnIH0gZnJvbSBcIi4vcG9ydHIudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcInR1bm5lbDppbnRlcmNlcHRvclwiKTtcblxuLyoqIE9wdGlvbnMgZm9yIHtAbGluayB0dW5uZWxJbnRlcmNlcHRvcn0gKGVhY2ggYWxzbyByZXNvbHZhYmxlIGZyb20gZW52KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHVubmVsSW50ZXJjZXB0b3JPcHRpb25zIHtcbiAgLyoqIFR1bm5lbCBjbGllbnRzIHRvIHJ1bi4gRW52IGBEQlhfVE9PTFNfVFVOTkVMX1RSQU5TUE9SVGA7IGRlZmF1bHRzIHRvIGBwb3J0cmAuICovXG4gIHRyYW5zcG9ydD86IFR1bm5lbFRyYW5zcG9ydDtcbiAgLyoqIFB1YmxpYyBob3N0IHRvIHNlcnZlIG9uLiBFbnYgYFRVTk5FTF9QVUJMSUNfRE9NQUlOYC4gKi9cbiAgcHVibGljRG9tYWluPzogc3RyaW5nO1xuICAvKiogcG9ydHIgc3ViZG9tYWluIChlbHNlIGRlcml2ZWQgZnJvbSB7QGxpbmsgcHVibGljRG9tYWlufSkuICovXG4gIHN1YmRvbWFpbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBQVUJMSUMgcG9ydCBwb3J0ciBmb3J3YXJkcyB0byAtIHRoZSBwb3J0IHRoZSBhcHAgaXRzZWxmIGxpc3RlbnMgb24uXG4gICAqIERlZmF1bHRzIHRvIHRoZSBEYXRhYnJpY2tzIEFwcHMgcnVudGltZSBjb250cmFjdCBgREFUQUJSSUNLU19BUFBfUE9SVGBcbiAgICogKHRoZW4gYDgwMDBgKSwgd2hpY2ggaXMgdGhlIHBvcnQgdGhlIHBsYXRmb3JtIHJvdXRlcyB0by5cbiAgICovXG4gIHBvcnQ/OiBudW1iZXI7XG4gIC8qKiBmcnBzIGNvbnRyb2wgaG9zdDsgZGVmYXVsdHMgdG8gdGhlIEZSUCBwdWJsaWMgZG9tYWluLiBFbnYgYEZSUF9TRVJWRVJgLiAqL1xuICBmcnBTZXJ2ZXI/OiBzdHJpbmc7XG4gIC8qKiBGUlAgcHVibGljIEhUVFAgaG9zdC4gRW52IGBUVU5ORUxfRlJQX1BVQkxJQ19ET01BSU5gLiAqL1xuICBmcnBQdWJsaWNEb21haW4/OiBzdHJpbmc7XG4gIC8qKiBmcnBzIGNvbnRyb2wgcG9ydC4gRW52IGBGUlBfU0VSVkVSX1BPUlRgOyBkZWZhdWx0cyB0byBgNDQzYC4gKi9cbiAgZnJwU2VydmVyUG9ydD86IG51bWJlcjtcbiAgLyoqIGZycGMgdHJhbnNwb3J0IHByb3RvY29sLiBFbnYgYEZSUF9QUk9UT0NPTGA7IGRlZmF1bHRzIHRvIGB3c3NgLiAqL1xuICBmcnBQcm90b2NvbD86IHN0cmluZztcbiAgLyoqIGZycHMgYXV0aCB0b2tlbi4gRW52IGBGUlBfVE9LRU5gIChvciBgVFVOTkVMX1RPS0VOYCkuICovXG4gIGZycFRva2VuPzogc3RyaW5nO1xuICAvKiogZnJwIHByb3h5IHJlZ2lzdHJhdGlvbiBuYW1lLiBFbnYgYEZSUF9QUk9YWV9OQU1FYC4gKi9cbiAgZnJwUHJveHlOYW1lPzogc3RyaW5nO1xuICAvKiogRlJQIHBhdGggbG9jYXRpb24uIEVudiBgRlJQX1BBVEhgOyBkZWZhdWx0cyB0byBgREFUQUJSSUNLU19BUFBfTkFNRWAuICovXG4gIGZycFBhdGg/OiBzdHJpbmc7XG4gIC8qKiBTdHJpcCB0aGUgRlJQIHBhdGggYmVmb3JlIGZvcndhcmRpbmcuIEVudiBgRlJQX1NUUklQX1BSRUZJWGA7IGRlZmF1bHRzIHRydWUgZm9yIG5vbi1yb290IHBhdGhzLiAqL1xuICBmcnBTdHJpcFByZWZpeD86IGJvb2xlYW47XG59XG5cbi8qKiBQdWJsaWMgdHVubmVsIGNsaWVudHMgc3VwcG9ydGVkIGJ5IHRoZSBpbnRlcmNlcHRvciBhbmQgQ0xJLiAqL1xuZXhwb3J0IHR5cGUgVHVubmVsVHJhbnNwb3J0ID0gXCJwb3J0clwiIHwgXCJmcnBcIiB8IFwiYm90aFwiO1xuXG5pbnRlcmZhY2UgVHVubmVsQXV4aWxpYXJ5IHtcbiAgc3RvcCgpOiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgVHVubmVsUnVudGltZSB7XG4gIHN0YXJ0UG9ydHIoY29uZmlnOiBOb25OdWxsYWJsZTxSZXR1cm5UeXBlPHR5cGVvZiByZXNvbHZlUG9ydHJDb25maWc+Pik6IFByb21pc2U8VHVubmVsQXV4aWxpYXJ5PjtcbiAgc3RhcnRGcnAoXG4gICAgY29uZmlnOiBOb25OdWxsYWJsZTxSZXR1cm5UeXBlPHR5cGVvZiByZXNvbHZlRnJwQ29uZmlnPj4sXG4gICAgY3R4OiBJbnRlcmNlcHRvckNvbnRleHQsXG4gICk6IFByb21pc2U8VHVubmVsQXV4aWxpYXJ5Pjtcbn1cblxuY29uc3QgZGVmYXVsdFJ1bnRpbWU6IFR1bm5lbFJ1bnRpbWUgPSB7XG4gIGFzeW5jIHN0YXJ0UG9ydHIoY29uZmlnKSB7XG4gICAgY29uc3QgcG9ydHJFbnYgPSBhd2FpdCBpbnN0YWxsUG9ydHIoKTtcbiAgICBhd2FpdCB3cml0ZVBvcnRyQ29uZmlnKGNvbmZpZywgcG9ydHJFbnYpO1xuICAgIHJldHVybiBzdXBlcnZpc2VQb3J0cihjb25maWcsIHBvcnRyRW52KTtcbiAgfSxcbiAgYXN5bmMgc3RhcnRGcnAoY29uZmlnLCBjdHgpIHtcbiAgICBjb25zdCBwYXRoUHJveHkgPVxuICAgICAgY29uZmlnLnN0cmlwUHJlZml4ICYmIGNvbmZpZy5wYXRoICE9PSBcIi9cIlxuICAgICAgICA/IGF3YWl0IHN0YXJ0UGF0aFByb3h5KGNvbmZpZy50YXJnZXRQb3J0LCBjb25maWcucGF0aClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHBhdGhQcm94eSkge1xuICAgICAgY29uZmlnLnRhcmdldFBvcnQgPSBwYXRoUHJveHkucG9ydDtcbiAgICAgIGN0eC5vbkxpZmVjeWNsZShcInNodXRkb3duXCIsICgpID0+IHZvaWQgcGF0aFByb3h5LmNsb3NlKCkpO1xuICAgIH1cbiAgICBjb25zdCBmcnBFbnYgPSBhd2FpdCBpbnN0YWxsRnJwKCk7XG4gICAgY29uc3QgY29uZmlnUGF0aCA9IGF3YWl0IHdyaXRlRnJwQ29uZmlnKGNvbmZpZywgZnJwRW52KTtcbiAgICBjb25zdCBzdXBlcnZpc29yID0gc3VwZXJ2aXNlRnJwKGNvbmZpZywgZnJwRW52LCBjb25maWdQYXRoKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3RvcCgpIHtcbiAgICAgICAgc3VwZXJ2aXNvci5zdG9wKCk7XG4gICAgICAgIHZvaWQgcGF0aFByb3h5Py5jbG9zZSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufTtcblxuLyoqIFJlc29sdmUgYW5kIHZhbGlkYXRlIHRoZSB0dW5uZWwgdHJhbnNwb3J0IHNlbGVjdG9yLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUdW5uZWxUcmFuc3BvcnQodHJhbnNwb3J0Pzogc3RyaW5nKTogVHVubmVsVHJhbnNwb3J0IHtcbiAgY29uc3QgcmVzb2x2ZWQgPVxuICAgIHRyYW5zcG9ydCA/PyBwcm9jZXNzLmVudi5EQlhfVE9PTFNfVFVOTkVMX1RSQU5TUE9SVCA/PyBwcm9jZXNzLmVudi5UVU5ORUxfVFJBTlNQT1JUID8/IFwicG9ydHJcIjtcbiAgaWYgKHJlc29sdmVkID09PSBcInBvcnRyXCIgfHwgcmVzb2x2ZWQgPT09IFwiZnJwXCIgfHwgcmVzb2x2ZWQgPT09IFwiYm90aFwiKSByZXR1cm4gcmVzb2x2ZWQ7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoYGludmFsaWQgdHVubmVsIHRyYW5zcG9ydDogJHtyZXNvbHZlZH0gKGV4cGVjdGVkIHBvcnRyLCBmcnAsIG9yIGJvdGgpYCk7XG59XG5cbi8qKiBSZXNvbHZlIHRoZSBwdWJsaWMgcG9ydCBwb3J0ciBzaG91bGQgdGFyZ2V0OiBleHBsaWNpdCwgZWxzZSB0aGUgQXBwcyBjb250cmFjdC4gKi9cbmZ1bmN0aW9uIHJlc29sdmVQdWJsaWNQb3J0KHBvcnQ/OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gcG9ydCA/PyBvYmplY3QudG9OdW1iZXIocHJvY2Vzcy5lbnYuREFUQUJSSUNLU19BUFBfUE9SVCkgPz8gODAwMDtcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgdHVubmVsIHtAbGluayBJbnRlcmNlcHRvcn0uIFBhc3MgaXQgdG8gYGNyZWF0ZUFwcCh7IGludGVyY2VwdG9yIH0pYC5cbiAqXG4gKiBBIG5vLW9wIChsb2dzIGFuZCByZXR1cm5zKSB3aGVuIG5vbmUgb2YgdGhlIHNlbGVjdGVkIHR1bm5lbCBjbGllbnRzIHJlc29sdmVcbiAqIHVzYWJsZSBjb25maWd1cmF0aW9uLCBzbyBhbiBhcHAgY2FuIHJlZ2lzdGVyIGl0IHVuY29uZGl0aW9uYWxseS5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgYXBwa2l0IH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG4gKiBpbXBvcnQgeyB0dW5uZWxJbnRlcmNlcHRvciB9IGZyb20gXCJAZGJ4LXRvb2xzL3R1bm5lbFwiO1xuICpcbiAqIGF3YWl0IGFwcGtpdC5jcmVhdGVBcHAoe1xuICogICBwbHVnaW5zOiBbc2VydmVyKHsgaG9zdCwgc3RhdGljUGF0aCB9KV0sXG4gKiAgIGludGVyY2VwdG9yOiB0dW5uZWxJbnRlcmNlcHRvcigpLFxuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0dW5uZWxJbnRlcmNlcHRvcihcbiAgb3B0aW9uczogVHVubmVsSW50ZXJjZXB0b3JPcHRpb25zID0ge30sXG4gIHJ1bnRpbWU6IFR1bm5lbFJ1bnRpbWUgPSBkZWZhdWx0UnVudGltZSxcbik6IEludGVyY2VwdG9yIHtcbiAgcmV0dXJuIGFzeW5jIChjdHg6IEludGVyY2VwdG9yQ29udGV4dCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmIChjdHguZW52LmRhdGFicmlja3NIb3N0KSB7XG4gICAgICBwcm9jZXNzLmVudi5EQVRBQlJJQ0tTX0hPU1QgPz89IGN0eC5lbnYuZGF0YWJyaWNrc0hvc3Q7XG4gICAgfVxuXG4gICAgY29uc3QgcG9ydCA9IHJlc29sdmVQdWJsaWNQb3J0KG9wdGlvbnMucG9ydCk7XG4gICAgY29uc3QgdHJhbnNwb3J0ID0gcmVzb2x2ZVR1bm5lbFRyYW5zcG9ydChvcHRpb25zLnRyYW5zcG9ydCk7XG4gICAgY29uc3QgaW5pdGlhbGl6ZXJzOiBBcnJheTxQcm9taXNlPFR1bm5lbEF1eGlsaWFyeT4+ID0gW107XG4gICAgaWYgKHRyYW5zcG9ydCA9PT0gXCJwb3J0clwiIHx8IHRyYW5zcG9ydCA9PT0gXCJib3RoXCIpIHtcbiAgICAgIGNvbnN0IHBvcnRyQ29uZmlnID0gcmVzb2x2ZVBvcnRyQ29uZmlnKHtcbiAgICAgICAgcHVibGljRG9tYWluOiBvcHRpb25zLnB1YmxpY0RvbWFpbixcbiAgICAgICAgc3ViZG9tYWluOiBvcHRpb25zLnN1YmRvbWFpbixcbiAgICAgICAgcG9ydCxcbiAgICAgIH0pO1xuICAgICAgaWYgKHBvcnRyQ29uZmlnKSB7XG4gICAgICAgIGluaXRpYWxpemVycy5wdXNoKHJ1bnRpbWUuc3RhcnRQb3J0cihwb3J0ckNvbmZpZykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmluZm8oXCJwb3J0ciBub3QgY29uZmlndXJlZCAocmVxdWlyZXMgUE9SVFJfVE9LRU4gYW5kIFRVTk5FTF9QVUJMSUNfRE9NQUlOKVwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRyYW5zcG9ydCA9PT0gXCJmcnBcIiB8fCB0cmFuc3BvcnQgPT09IFwiYm90aFwiKSB7XG4gICAgICBjb25zdCBmcnBDb25maWcgPSByZXNvbHZlRnJwQ29uZmlnKHtcbiAgICAgICAgcHVibGljRG9tYWluOiBvcHRpb25zLmZycFB1YmxpY0RvbWFpbixcbiAgICAgICAgc2VydmVyOiBvcHRpb25zLmZycFNlcnZlcixcbiAgICAgICAgc2VydmVyUG9ydDogb3B0aW9ucy5mcnBTZXJ2ZXJQb3J0LFxuICAgICAgICBwcm90b2NvbDogb3B0aW9ucy5mcnBQcm90b2NvbCxcbiAgICAgICAgdG9rZW46IG9wdGlvbnMuZnJwVG9rZW4sXG4gICAgICAgIHByb3h5TmFtZTogb3B0aW9ucy5mcnBQcm94eU5hbWUsXG4gICAgICAgIHBhdGg6IG9wdGlvbnMuZnJwUGF0aCxcbiAgICAgICAgc3RyaXBQcmVmaXg6IG9wdGlvbnMuZnJwU3RyaXBQcmVmaXgsXG4gICAgICAgIHBvcnQsXG4gICAgICB9KTtcbiAgICAgIGlmIChmcnBDb25maWcpIHtcbiAgICAgICAgaW5pdGlhbGl6ZXJzLnB1c2gocnVudGltZS5zdGFydEZycChmcnBDb25maWcsIGN0eCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmluZm8oXCJmcnAgbm90IGNvbmZpZ3VyZWQgKHJlcXVpcmVzIFRVTk5FTF9QVUJMSUNfRE9NQUlOKVwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFpbml0aWFsaXplcnMubGVuZ3RoKSByZXR1cm47XG4gICAgY29uc3QgYXV4aWxpYXJpZXM6IFR1bm5lbEF1eGlsaWFyeVtdID0gW107XG4gICAgbGV0IHN0b3BwZWQgPSBmYWxzZTtcbiAgICBjb25zdCBzdG9wID0gKCkgPT4ge1xuICAgICAgc3RvcHBlZCA9IHRydWU7XG4gICAgICBmb3IgKGNvbnN0IGF1eGlsaWFyeSBvZiBhdXhpbGlhcmllcykgYXV4aWxpYXJ5LnN0b3AoKTtcbiAgICB9O1xuICAgIGN0eC5vblRlYXJkb3duKHN0b3ApO1xuICAgIGN0eC5vbkxpZmVjeWNsZShcInNodXRkb3duXCIsIHN0b3ApO1xuICAgIHZvaWQgUHJvbWlzZS5hbGxTZXR0bGVkKGluaXRpYWxpemVycykudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgZm9yIChjb25zdCByZXN1bHQgb2YgcmVzdWx0cykge1xuICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKFwidHVubmVsIGZhaWxlZCB0byBzdGFydFwiLCB7IGVycm9yOiByZXN1bHQucmVhc29uIH0pO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdG9wcGVkKSByZXN1bHQudmFsdWUuc3RvcCgpO1xuICAgICAgICBlbHNlIGF1eGlsaWFyaWVzLnB1c2gocmVzdWx0LnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3RvcHBlZCAmJiBhdXhpbGlhcmllcy5sZW5ndGgpIGxvZ2dlci5pbmZvKGB0dW5uZWwgYm91bmQ6ICR7dHJhbnNwb3J0fSAtPiA6JHtwb3J0fWApO1xuICAgIH0pO1xuICAgIGxvZ2dlci5pbmZvKGB0dW5uZWwgaW5pdGlhbGl6YXRpb24gc2NoZWR1bGVkOiAke3RyYW5zcG9ydH0gLT4gOiR7cG9ydH1gKTtcbiAgfTtcbn1cbiJdfQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBR0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWhHLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQW1EaEQsTUFBTSxjQUFjLEdBQWtCO0lBQ3BDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTTtRQUNyQixNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRztRQUN4QixNQUFNLFNBQVMsR0FDYixNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRztZQUN2QyxDQUFDLENBQUMsTUFBTSxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3RELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE1BQU0sQ0FBQyxVQUFVLEdBQUcsU0FB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SyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNqRSxTQUFTO2dCQUNYLENBQUM7Z0JBQ0QsSUFBSSxPQUFPO29CQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7O29CQUM1QixXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsTUFBTTtnQkFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixTQUFTLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsb0NBQW9DLFNBQVMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGB0dW5uZWxJbnRlcmNlcHRvcigpYCAtIHRoZSB7QGxpbmsgSW50ZXJjZXB0b3J9IHRoYXQgZnJvbnRzIGFuIGFwcCB3aXRoIGEgcHVibGljXG4gKiBwb3J0ciBhbmQvb3IgZnJwIHR1bm5lbCwgY29uc3VtaW5nIHRoZSB7QGxpbmsgSW50ZXJjZXB0b3JDb250ZXh0fSBgQGRieC10b29scy9hcHBraXRgJ3NcbiAqIGBjcmVhdGVBcHBgIGhhbmRzIGl0LlxuICpcbiAqIFRoZSB0dW5uZWwgcnVucyBJTi1QUk9DRVNTOiB0aGUgQVBQIGlzIHRoZSBtYWluIHByb2Nlc3MgYW5kIGhhbmRzIHRoaXMgaW50ZXJjZXB0b3JcbiAqIGl0cyBjb250ZXh0LCByYXRoZXIgdGhhbiBhIHdyYXBwZXIgcHJvY2VzcyBzcGF3bmluZyB0aGUgYXBwIGFzIGEgY2hpbGQuIFRoZVxuICogaW50ZXJjZXB0b3IgYXBwbGllcyB0aGUgY29tcHV0ZWQgd29ya3NwYWNlIGhvc3QsIGluc3RhbGxzIGFuZCBsYXVuY2hlcyBwb3J0ciBvbiB0aGVcbiAqIGFwcCdzIHB1YmxpYyBwb3J0LCBiaW5kcyB0aGUgY2hpbGQgcHJvY2VzcyB0byB0aGUgYXBwLCBhbmQgc3RvcHMgcG9ydHIgZHVyaW5nIGFuXG4gKiBvcmRlcmx5IEFwcEtpdCBzaHV0ZG93bi5cbiAqXG4gKiBUaGUgcGFzc3dvcmRsZXNzIEdBVEUgaXMgYSBzZXBhcmF0ZSBjb25jZXJuOiBpdCBpcyB0aGUgYGF1dGhHYXRlYCBBcHBLaXQgcGx1Z2luLFxuICogd2hpY2ggcmVnaXN0ZXJzIHRoZSBsb2dpbiByb3V0ZXMgKyBhIGdhdGluZyBtaWRkbGV3YXJlIG9uIHRoZSBhcHAncyBvd24gc2VydmVyLlxuICogUmVnaXN0ZXIgaXQgaW4gdGhlIGFwcCdzIGBwbHVnaW5zYCBmb3IgZ2F0ZWQgdHJhZmZpYy4gVGhpcyBpbnRlcmNlcHRvciBpcyBvbmx5XG4gKiB0aGUgcG9ydHIgaGFsZiAtIFwidXBkYXRlIHRoZSBob3N0LCBiaW5kIHBvcnRyXCIgLSB0aGUgc21hbGxlc3QgdXNlZnVsIHVuaXQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgSW50ZXJjZXB0b3IsIEludGVyY2VwdG9yQ29udGV4dCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdFwiO1xuaW1wb3J0IHsgbG9nLCBvYmplY3QgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgaW5zdGFsbEZycCwgcmVzb2x2ZUZycENvbmZpZywgc3VwZXJ2aXNlRnJwLCB3cml0ZUZycENvbmZpZyB9IGZyb20gXCIuL2ZycC50c1wiO1xuaW1wb3J0IHsgc3RhcnRQYXRoUHJveHkgfSBmcm9tIFwiLi9wYXRoLXByb3h5LnRzXCI7XG5pbXBvcnQgeyBpbnN0YWxsUG9ydHIsIHJlc29sdmVQb3J0ckNvbmZpZywgc3VwZXJ2aXNlUG9ydHIsIHdyaXRlUG9ydHJDb25maWcgfSBmcm9tIFwiLi9wb3J0ci50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwidHVubmVsOmludGVyY2VwdG9yXCIpO1xuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIHR1bm5lbEludGVyY2VwdG9yfSAoZWFjaCBhbHNvIHJlc29sdmFibGUgZnJvbSBlbnYpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUdW5uZWxJbnRlcmNlcHRvck9wdGlvbnMge1xuICAvKiogVHVubmVsIGNsaWVudHMgdG8gcnVuLiBFbnYgYERCWF9UT09MU19UVU5ORUxfVFJBTlNQT1JUYDsgZGVmYXVsdHMgdG8gYHBvcnRyYC4gKi9cbiAgdHJhbnNwb3J0PzogVHVubmVsVHJhbnNwb3J0O1xuICAvKiogUHVibGljIGhvc3QgdG8gc2VydmUgb24uIEVudiBgVFVOTkVMX1BVQkxJQ19ET01BSU5gLiAqL1xuICBwdWJsaWNEb21haW4/OiBzdHJpbmc7XG4gIC8qKiBwb3J0ciBzdWJkb21haW4gKGVsc2UgZGVyaXZlZCBmcm9tIHtAbGluayBwdWJsaWNEb21haW59KS4gKi9cbiAgc3ViZG9tYWluPzogc3RyaW5nO1xuICAvKiogUG9ydHIgU1NIIGNvbnRyb2wgZW5kcG9pbnQuIEVudiBgUE9SVFJfU1NIX1VSTGA7IGRlZmF1bHRzIHRvIHRoZSBQb3J0ciBob3N0IG9uIHBvcnQgYDQ0NDRgLiAqL1xuICBwb3J0clNzaFVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBQVUJMSUMgcG9ydCBwb3J0ciBmb3J3YXJkcyB0byAtIHRoZSBwb3J0IHRoZSBhcHAgaXRzZWxmIGxpc3RlbnMgb24uXG4gICAqIERlZmF1bHRzIHRvIHRoZSBEYXRhYnJpY2tzIEFwcHMgcnVudGltZSBjb250cmFjdCBgREFUQUJSSUNLU19BUFBfUE9SVGBcbiAgICogKHRoZW4gYDgwMDBgKSwgd2hpY2ggaXMgdGhlIHBvcnQgdGhlIHBsYXRmb3JtIHJvdXRlcyB0by5cbiAgICovXG4gIHBvcnQ/OiBudW1iZXI7XG4gIC8qKiBmcnBzIGNvbnRyb2wgaG9zdDsgZGVmYXVsdHMgdG8gdGhlIEZSUCBwdWJsaWMgZG9tYWluLiBFbnYgYEZSUF9TRVJWRVJgLiAqL1xuICBmcnBTZXJ2ZXI/OiBzdHJpbmc7XG4gIC8qKiBGUlAgcHVibGljIEhUVFAgaG9zdC4gRW52IGBUVU5ORUxfRlJQX1BVQkxJQ19ET01BSU5gLiAqL1xuICBmcnBQdWJsaWNEb21haW4/OiBzdHJpbmc7XG4gIC8qKiBmcnBzIGNvbnRyb2wgcG9ydC4gRW52IGBGUlBfU0VSVkVSX1BPUlRgOyBkZWZhdWx0cyB0byBgNDQzYC4gKi9cbiAgZnJwU2VydmVyUG9ydD86IG51bWJlcjtcbiAgLyoqIGZycGMgdHJhbnNwb3J0IHByb3RvY29sLiBFbnYgYEZSUF9QUk9UT0NPTGA7IGRlZmF1bHRzIHRvIGB3c3NgLiAqL1xuICBmcnBQcm90b2NvbD86IHN0cmluZztcbiAgLyoqIGZycHMgYXV0aCB0b2tlbi4gRW52IGBGUlBfVE9LRU5gIChvciBgVFVOTkVMX1RPS0VOYCkuICovXG4gIGZycFRva2VuPzogc3RyaW5nO1xuICAvKiogZnJwIHByb3h5IHJlZ2lzdHJhdGlvbiBuYW1lLiBFbnYgYEZSUF9QUk9YWV9OQU1FYC4gKi9cbiAgZnJwUHJveHlOYW1lPzogc3RyaW5nO1xuICAvKiogRlJQIHBhdGggbG9jYXRpb24uIEVudiBgRlJQX1BBVEhgOyBkZWZhdWx0cyB0byBgREFUQUJSSUNLU19BUFBfTkFNRWAuICovXG4gIGZycFBhdGg/OiBzdHJpbmc7XG4gIC8qKiBTdHJpcCB0aGUgRlJQIHBhdGggYmVmb3JlIGZvcndhcmRpbmcuIEVudiBgRlJQX1NUUklQX1BSRUZJWGA7IGRlZmF1bHRzIHRydWUgZm9yIG5vbi1yb290IHBhdGhzLiAqL1xuICBmcnBTdHJpcFByZWZpeD86IGJvb2xlYW47XG59XG5cbi8qKiBQdWJsaWMgdHVubmVsIGNsaWVudHMgc3VwcG9ydGVkIGJ5IHRoZSBpbnRlcmNlcHRvciBhbmQgQ0xJLiAqL1xuZXhwb3J0IHR5cGUgVHVubmVsVHJhbnNwb3J0ID0gXCJwb3J0clwiIHwgXCJmcnBcIiB8IFwiYm90aFwiO1xuXG5pbnRlcmZhY2UgVHVubmVsQXV4aWxpYXJ5IHtcbiAgc3RvcCgpOiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgVHVubmVsUnVudGltZSB7XG4gIHN0YXJ0UG9ydHIoY29uZmlnOiBOb25OdWxsYWJsZTxSZXR1cm5UeXBlPHR5cGVvZiByZXNvbHZlUG9ydHJDb25maWc+Pik6IFByb21pc2U8VHVubmVsQXV4aWxpYXJ5PjtcbiAgc3RhcnRGcnAoXG4gICAgY29uZmlnOiBOb25OdWxsYWJsZTxSZXR1cm5UeXBlPHR5cGVvZiByZXNvbHZlRnJwQ29uZmlnPj4sXG4gICAgY3R4OiBJbnRlcmNlcHRvckNvbnRleHQsXG4gICk6IFByb21pc2U8VHVubmVsQXV4aWxpYXJ5Pjtcbn1cblxuY29uc3QgZGVmYXVsdFJ1bnRpbWU6IFR1bm5lbFJ1bnRpbWUgPSB7XG4gIGFzeW5jIHN0YXJ0UG9ydHIoY29uZmlnKSB7XG4gICAgY29uc3QgcG9ydHJFbnYgPSBhd2FpdCBpbnN0YWxsUG9ydHIoKTtcbiAgICBhd2FpdCB3cml0ZVBvcnRyQ29uZmlnKGNvbmZpZywgcG9ydHJFbnYpO1xuICAgIHJldHVybiBzdXBlcnZpc2VQb3J0cihjb25maWcsIHBvcnRyRW52KTtcbiAgfSxcbiAgYXN5bmMgc3RhcnRGcnAoY29uZmlnLCBjdHgpIHtcbiAgICBjb25zdCBwYXRoUHJveHkgPVxuICAgICAgY29uZmlnLnN0cmlwUHJlZml4ICYmIGNvbmZpZy5wYXRoICE9PSBcIi9cIlxuICAgICAgICA/IGF3YWl0IHN0YXJ0UGF0aFByb3h5KGNvbmZpZy50YXJnZXRQb3J0LCBjb25maWcucGF0aClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHBhdGhQcm94eSkge1xuICAgICAgY29uZmlnLnRhcmdldFBvcnQgPSBwYXRoUHJveHkucG9ydDtcbiAgICAgIGN0eC5vbkxpZmVjeWNsZShcInNodXRkb3duXCIsICgpID0+IHZvaWQgcGF0aFByb3h5LmNsb3NlKCkpO1xuICAgIH1cbiAgICBjb25zdCBmcnBFbnYgPSBhd2FpdCBpbnN0YWxsRnJwKCk7XG4gICAgY29uc3QgY29uZmlnUGF0aCA9IGF3YWl0IHdyaXRlRnJwQ29uZmlnKGNvbmZpZywgZnJwRW52KTtcbiAgICBjb25zdCBzdXBlcnZpc29yID0gc3VwZXJ2aXNlRnJwKGNvbmZpZywgZnJwRW52LCBjb25maWdQYXRoKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3RvcCgpIHtcbiAgICAgICAgc3VwZXJ2aXNvci5zdG9wKCk7XG4gICAgICAgIHZvaWQgcGF0aFByb3h5Py5jbG9zZSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufTtcblxuLyoqIFJlc29sdmUgYW5kIHZhbGlkYXRlIHRoZSB0dW5uZWwgdHJhbnNwb3J0IHNlbGVjdG9yLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUdW5uZWxUcmFuc3BvcnQodHJhbnNwb3J0Pzogc3RyaW5nKTogVHVubmVsVHJhbnNwb3J0IHtcbiAgY29uc3QgcmVzb2x2ZWQgPVxuICAgIHRyYW5zcG9ydCA/PyBwcm9jZXNzLmVudi5EQlhfVE9PTFNfVFVOTkVMX1RSQU5TUE9SVCA/PyBwcm9jZXNzLmVudi5UVU5ORUxfVFJBTlNQT1JUID8/IFwicG9ydHJcIjtcbiAgaWYgKHJlc29sdmVkID09PSBcInBvcnRyXCIgfHwgcmVzb2x2ZWQgPT09IFwiZnJwXCIgfHwgcmVzb2x2ZWQgPT09IFwiYm90aFwiKSByZXR1cm4gcmVzb2x2ZWQ7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoYGludmFsaWQgdHVubmVsIHRyYW5zcG9ydDogJHtyZXNvbHZlZH0gKGV4cGVjdGVkIHBvcnRyLCBmcnAsIG9yIGJvdGgpYCk7XG59XG5cbi8qKiBSZXNvbHZlIHRoZSBwdWJsaWMgcG9ydCBwb3J0ciBzaG91bGQgdGFyZ2V0OiBleHBsaWNpdCwgZWxzZSB0aGUgQXBwcyBjb250cmFjdC4gKi9cbmZ1bmN0aW9uIHJlc29sdmVQdWJsaWNQb3J0KHBvcnQ/OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gcG9ydCA/PyBvYmplY3QudG9OdW1iZXIocHJvY2Vzcy5lbnYuREFUQUJSSUNLU19BUFBfUE9SVCkgPz8gODAwMDtcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgdHVubmVsIHtAbGluayBJbnRlcmNlcHRvcn0uIFBhc3MgaXQgdG8gYGNyZWF0ZUFwcCh7IGludGVyY2VwdG9yIH0pYC5cbiAqXG4gKiBBIG5vLW9wIChsb2dzIGFuZCByZXR1cm5zKSB3aGVuIG5vbmUgb2YgdGhlIHNlbGVjdGVkIHR1bm5lbCBjbGllbnRzIHJlc29sdmVcbiAqIHVzYWJsZSBjb25maWd1cmF0aW9uLCBzbyBhbiBhcHAgY2FuIHJlZ2lzdGVyIGl0IHVuY29uZGl0aW9uYWxseS5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgYXBwa2l0IH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG4gKiBpbXBvcnQgeyB0dW5uZWxJbnRlcmNlcHRvciB9IGZyb20gXCJAZGJ4LXRvb2xzL3R1bm5lbFwiO1xuICpcbiAqIGF3YWl0IGFwcGtpdC5jcmVhdGVBcHAoe1xuICogICBwbHVnaW5zOiBbc2VydmVyKHsgaG9zdCwgc3RhdGljUGF0aCB9KV0sXG4gKiAgIGludGVyY2VwdG9yOiB0dW5uZWxJbnRlcmNlcHRvcigpLFxuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0dW5uZWxJbnRlcmNlcHRvcihcbiAgb3B0aW9uczogVHVubmVsSW50ZXJjZXB0b3JPcHRpb25zID0ge30sXG4gIHJ1bnRpbWU6IFR1bm5lbFJ1bnRpbWUgPSBkZWZhdWx0UnVudGltZSxcbik6IEludGVyY2VwdG9yIHtcbiAgcmV0dXJuIGFzeW5jIChjdHg6IEludGVyY2VwdG9yQ29udGV4dCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmIChjdHguZW52LmRhdGFicmlja3NIb3N0KSB7XG4gICAgICBwcm9jZXNzLmVudi5EQVRBQlJJQ0tTX0hPU1QgPz89IGN0eC5lbnYuZGF0YWJyaWNrc0hvc3Q7XG4gICAgfVxuXG4gICAgY29uc3QgcG9ydCA9IHJlc29sdmVQdWJsaWNQb3J0KG9wdGlvbnMucG9ydCk7XG4gICAgY29uc3QgdHJhbnNwb3J0ID0gcmVzb2x2ZVR1bm5lbFRyYW5zcG9ydChvcHRpb25zLnRyYW5zcG9ydCk7XG4gICAgY29uc3QgaW5pdGlhbGl6ZXJzOiBBcnJheTxQcm9taXNlPFR1bm5lbEF1eGlsaWFyeT4+ID0gW107XG4gICAgaWYgKHRyYW5zcG9ydCA9PT0gXCJwb3J0clwiIHx8IHRyYW5zcG9ydCA9PT0gXCJib3RoXCIpIHtcbiAgICAgIGNvbnN0IHBvcnRyQ29uZmlnID0gcmVzb2x2ZVBvcnRyQ29uZmlnKHtcbiAgICAgICAgcHVibGljRG9tYWluOiBvcHRpb25zLnB1YmxpY0RvbWFpbixcbiAgICAgICAgc3ViZG9tYWluOiBvcHRpb25zLnN1YmRvbWFpbixcbiAgICAgICAgc3NoVXJsOiBvcHRpb25zLnBvcnRyU3NoVXJsLFxuICAgICAgICBwb3J0LFxuICAgICAgfSk7XG4gICAgICBpZiAocG9ydHJDb25maWcpIHtcbiAgICAgICAgaW5pdGlhbGl6ZXJzLnB1c2gocnVudGltZS5zdGFydFBvcnRyKHBvcnRyQ29uZmlnKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIuaW5mbyhcInBvcnRyIG5vdCBjb25maWd1cmVkIChyZXF1aXJlcyBQT1JUUl9UT0tFTiBhbmQgVFVOTkVMX1BVQkxJQ19ET01BSU4pXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHJhbnNwb3J0ID09PSBcImZycFwiIHx8IHRyYW5zcG9ydCA9PT0gXCJib3RoXCIpIHtcbiAgICAgIGNvbnN0IGZycENvbmZpZyA9IHJlc29sdmVGcnBDb25maWcoe1xuICAgICAgICBwdWJsaWNEb21haW46IG9wdGlvbnMuZnJwUHVibGljRG9tYWluLFxuICAgICAgICBzZXJ2ZXI6IG9wdGlvbnMuZnJwU2VydmVyLFxuICAgICAgICBzZXJ2ZXJQb3J0OiBvcHRpb25zLmZycFNlcnZlclBvcnQsXG4gICAgICAgIHByb3RvY29sOiBvcHRpb25zLmZycFByb3RvY29sLFxuICAgICAgICB0b2tlbjogb3B0aW9ucy5mcnBUb2tlbixcbiAgICAgICAgcHJveHlOYW1lOiBvcHRpb25zLmZycFByb3h5TmFtZSxcbiAgICAgICAgcGF0aDogb3B0aW9ucy5mcnBQYXRoLFxuICAgICAgICBzdHJpcFByZWZpeDogb3B0aW9ucy5mcnBTdHJpcFByZWZpeCxcbiAgICAgICAgcG9ydCxcbiAgICAgIH0pO1xuICAgICAgaWYgKGZycENvbmZpZykge1xuICAgICAgICBpbml0aWFsaXplcnMucHVzaChydW50aW1lLnN0YXJ0RnJwKGZycENvbmZpZywgY3R4KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIuaW5mbyhcImZycCBub3QgY29uZmlndXJlZCAocmVxdWlyZXMgVFVOTkVMX1BVQkxJQ19ET01BSU4pXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWluaXRpYWxpemVycy5sZW5ndGgpIHJldHVybjtcbiAgICBjb25zdCBhdXhpbGlhcmllczogVHVubmVsQXV4aWxpYXJ5W10gPSBbXTtcbiAgICBsZXQgc3RvcHBlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHN0b3AgPSAoKSA9PiB7XG4gICAgICBzdG9wcGVkID0gdHJ1ZTtcbiAgICAgIGZvciAoY29uc3QgYXV4aWxpYXJ5IG9mIGF1eGlsaWFyaWVzKSBhdXhpbGlhcnkuc3RvcCgpO1xuICAgIH07XG4gICAgY3R4Lm9uVGVhcmRvd24oc3RvcCk7XG4gICAgY3R4Lm9uTGlmZWN5Y2xlKFwic2h1dGRvd25cIiwgc3RvcCk7XG4gICAgdm9pZCBQcm9taXNlLmFsbFNldHRsZWQoaW5pdGlhbGl6ZXJzKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRzKSB7XG4gICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcInJlamVjdGVkXCIpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJ0dW5uZWwgZmFpbGVkIHRvIHN0YXJ0XCIsIHsgZXJyb3I6IHJlc3VsdC5yZWFzb24gfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0b3BwZWQpIHJlc3VsdC52YWx1ZS5zdG9wKCk7XG4gICAgICAgIGVsc2UgYXV4aWxpYXJpZXMucHVzaChyZXN1bHQudmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKCFzdG9wcGVkICYmIGF1eGlsaWFyaWVzLmxlbmd0aCkgbG9nZ2VyLmluZm8oYHR1bm5lbCBib3VuZDogJHt0cmFuc3BvcnR9IC0+IDoke3BvcnR9YCk7XG4gICAgfSk7XG4gICAgbG9nZ2VyLmluZm8oYHR1bm5lbCBpbml0aWFsaXphdGlvbiBzY2hlZHVsZWQ6ICR7dHJhbnNwb3J0fSAtPiA6JHtwb3J0fWApO1xuICB9O1xufVxuIl19
|
package/lib/src/portr.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export interface PortrInstallOptions {
|
|
|
22
22
|
export interface PortrConfig {
|
|
23
23
|
subdomain: string;
|
|
24
24
|
server: string;
|
|
25
|
+
sshUrl: string;
|
|
25
26
|
token: string;
|
|
26
27
|
port: number;
|
|
27
28
|
}
|
|
@@ -34,6 +35,7 @@ export interface PortrConfig {
|
|
|
34
35
|
export declare function resolvePortrConfig(opts: {
|
|
35
36
|
publicDomain?: string;
|
|
36
37
|
subdomain?: string;
|
|
38
|
+
sshUrl?: string;
|
|
37
39
|
token?: string;
|
|
38
40
|
port: number;
|
|
39
41
|
}): PortrConfig | undefined;
|
package/lib/src/portr.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @module
|
|
11
11
|
*/
|
|
12
12
|
import { execFile, spawn } from "node:child_process";
|
|
13
|
-
import { writeFile } from "node:fs/promises";
|
|
13
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
14
14
|
import os from "node:os";
|
|
15
15
|
import { delimiter, join } from "node:path";
|
|
16
16
|
import { Transform } from "node:stream";
|
|
@@ -64,7 +64,8 @@ export function resolvePortrConfig(opts) {
|
|
|
64
64
|
server ??= config.text("PORTR_SERVER");
|
|
65
65
|
if (!subdomain || !server || server === domain)
|
|
66
66
|
return undefined;
|
|
67
|
-
|
|
67
|
+
const sshUrl = config.string(opts.sshUrl, "PORTR_SSH_URL") ?? `${server}:4444`;
|
|
68
|
+
return { subdomain, server, sshUrl, token, port: opts.port };
|
|
68
69
|
}
|
|
69
70
|
/** GitHub release asset name for the current or supplied OS/architecture. */
|
|
70
71
|
export function portrAssetName(version, platform = process.platform, arch = process.arch) {
|
|
@@ -102,10 +103,12 @@ export async function installPortr(options = {}) {
|
|
|
102
103
|
}
|
|
103
104
|
/** Render `~/.portr/config.yaml` for the resolved tunnel. */
|
|
104
105
|
export async function writePortrConfig(config, childEnv) {
|
|
105
|
-
const
|
|
106
|
+
const directory = join(childEnv.HOME ?? os.homedir(), ".portr");
|
|
107
|
+
const path = join(directory, "config.yaml");
|
|
108
|
+
await mkdir(directory, { recursive: true });
|
|
106
109
|
await writeFile(path, [
|
|
107
110
|
`server_url: ${config.server}`,
|
|
108
|
-
`ssh_url: ${config.
|
|
111
|
+
`ssh_url: ${config.sshUrl}`,
|
|
109
112
|
`secret_key: ${config.token}`,
|
|
110
113
|
"disable_dashboard: true",
|
|
111
114
|
"disable_tui: true",
|
|
@@ -154,4 +157,4 @@ export function supervisePortr(config, childEnv) {
|
|
|
154
157
|
isHealthy: () => probePortrPublicUrl(publicUrl),
|
|
155
158
|
});
|
|
156
159
|
}
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG9ydHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUEwQixNQUFNLGlCQUFpQixDQUFDO0FBRWxGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDMUMsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQ3JDLE1BQU0saUJBQWlCLEdBQUcseURBQXlELGFBQWEsRUFBRSxDQUFDO0FBQ25HLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDO0FBQ3BDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUUxQyxNQUFNLEtBQUssR0FBRyxvQ0FBb0MsQ0FBQztBQUVuRCwrRUFBK0U7QUFDL0UsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQWE7SUFD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LyoqXG4gKiBwb3J0ciBpbnN0YWxsLCBjb25maWcsIGFuZCBsYXVuY2ggc3VwcG9ydCBmb3IgdGhlIHR1bm5lbCBydW50aW1lLlxuICpcbiAqIFRoZSBiaW5hcnkgYW5kIGNvbmZpZyB1c2UgcG9ydHIncyBjb252ZW50aW9uYWwgYCRIT01FLy5wb3J0cmAgdHJlZS4gVGhlXG4gKiBpbnN0YWxsIGlzIGlkZW1wb3RlbnQgKHRoZSBpbnN0YWxsZXIgc2tpcHMgYW4gZXhpc3RpbmcgZXhlY3V0YWJsZSkuIFRoZVxuICogY29uZmlnIGlzIHJlbmRlcmVkIGZyb20gYFRVTk5FTF9QVUJMSUNfRE9NQUlOYFxuICogKGA8c3ViZG9tYWluPi48c2VydmVyPmApICsgYFBPUlRSX1RPS0VOYCBhbmQgcG9pbnRzIHBvcnRyIGF0IHRoZSBQVUJMSUMgcG9ydFxuICogKHRoZSBwcm94eSBsaXN0ZW5zIHRoZXJlKS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cbmltcG9ydCB7IGV4ZWNGaWxlLCBzcGF3biB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgb3MgZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCB7IGRlbGltaXRlciwgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IFRyYW5zZm9ybSB9IGZyb20gXCJub2RlOnN0cmVhbVwiO1xuaW1wb3J0IHsgU3RyaW5nRGVjb2RlciB9IGZyb20gXCJub2RlOnN0cmluZ19kZWNvZGVyXCI7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tIFwibm9kZTp1dGlsXCI7XG5cbmltcG9ydCB7IGJpbiwgY29uZmlnIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZVwiO1xuaW1wb3J0IHsgbG9nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IFRVTk5FTF9DT05GSUcgfSBmcm9tIFwiLi9fY29uZmlnLnRzXCI7XG5pbXBvcnQgeyBzdXBlcnZpc2VQcm9jZXNzRm9yZXZlciwgdHlwZSBQcm9jZXNzU3VwZXJ2aXNvciB9IGZyb20gXCIuL3N1cGVydmlzb3IudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcInR1bm5lbDpwb3J0clwiKTtcbmNvbnN0IFBPUlRSX1ZFUlNJT04gPSBcIjEuMC4xNS1zc2UuMlwiO1xuY29uc3QgUE9SVFJfUkVMRUFTRV9VUkwgPSBgaHR0cHM6Ly9naXRodWIuY29tL3JlZ2dpZS1kYi9wb3J0ci9yZWxlYXNlcy9kb3dubG9hZC92JHtQT1JUUl9WRVJTSU9OfWA7XG5jb25zdCBQT1JUUl9NSU5fVkVSU0lPTiA9IFwidjEuMC4xNVwiO1xuY29uc3QgZXhlY0ZpbGVBc3luYyA9IHByb21pc2lmeShleGVjRmlsZSk7XG5cbmNvbnN0IEVNT0pJID0gL1xccHtFeHRlbmRlZF9QaWN0b2dyYXBoaWN9XFx1RkUwRj8vZ3U7XG5cbi8qKiBSZW1vdmUgcGljdG9ncmFwaHMgZnJvbSB0aGlyZC1wYXJ0eSBwcm9jZXNzIG91dHB1dCBiZWZvcmUgZm9yd2FyZGluZyBpdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQb3J0ck91dHB1dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoRU1PSkksIFwiXCIpLnJlcGxhY2UoL15bIFxcdF0rL2dtLCBcIlwiKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplZE91dHB1dChkZXN0aW5hdGlvbjogTm9kZUpTLldyaXRlU3RyZWFtKTogVHJhbnNmb3JtIHtcbiAgY29uc3QgZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKFwidXRmOFwiKTtcbiAgcmV0dXJuIG5ldyBUcmFuc2Zvcm0oe1xuICAgIHRyYW5zZm9ybShjaHVuaywgX2VuY29kaW5nLCBjYWxsYmFjaykge1xuICAgICAgZGVzdGluYXRpb24ud3JpdGUobm9ybWFsaXplUG9ydHJPdXRwdXQoZGVjb2Rlci53cml0ZShjaHVuaykpKTtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfSxcbiAgICBmbHVzaChjYWxsYmFjaykge1xuICAgICAgZGVzdGluYXRpb24ud3JpdGUobm9ybWFsaXplUG9ydHJPdXRwdXQoZGVjb2Rlci5lbmQoKSkpO1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGluc3RhbGxpbmcgdGhlIHBvcnRyIGV4ZWN1dGFibGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvcnRySW5zdGFsbE9wdGlvbnMge1xuICAvKiogSG9tZSBkaXJlY3RvcnkgY29udGFpbmluZyBgLnBvcnRyYDsgZGVmYXVsdHMgdG8gdGhlIE9TIGhvbWUgZGlyZWN0b3J5LiAqL1xuICBob21lRGlyPzogc3RyaW5nO1xufVxuXG4vKiogUmVzb2x2ZWQgcG9ydHIgd2lyaW5nLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIHR1bm5lbCBpcyBjb25maWd1cmVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb3J0ckNvbmZpZyB7XG4gIHN1YmRvbWFpbjogc3RyaW5nO1xuICBzZXJ2ZXI6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlc29sdmUgcG9ydHIgY29uZmlnIGZyb20gYFRVTk5FTF9QVUJMSUNfRE9NQUlOYCArIGBQT1JUUl9UT0tFTmAsIG9yIGFuXG4gKiBleHBsaWNpdCBgc3ViZG9tYWluYC4gVGhlIGRvbWFpbiBpcyBgPHN1YmRvbWFpbj4uPHNlcnZlcj5gIChlLmcuXG4gKiBgZGVtby5hcHBzLmRieC50b29sc2ApLiBSZXR1cm5zIGB1bmRlZmluZWRgIChubyB0dW5uZWwpIHdoZW4gdGhlIHRva2VuIG9yIGFcbiAqIHVzYWJsZSBkb21haW4gaXMgYWJzZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBvcnRyQ29uZmlnKG9wdHM6IHtcbiAgcHVibGljRG9tYWluPzogc3RyaW5nO1xuICBzdWJkb21haW4/OiBzdHJpbmc7XG4gIHRva2VuPzogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG59KTogUG9ydHJDb25maWcgfCB1bmRlZmluZWQge1xuICAvLyBQT1JUUl8qIGlzIHVwc3RyZWFtIHBvcnRyJ3Mgb3duIG5hbWVzcGFjZSwgc28gaXQga2VlcHMgaXRzIG5hbWUuXG4gIGNvbnN0IHRva2VuID0gY29uZmlnLnN0cmluZyhvcHRzLnRva2VuLCBcIlBPUlRSX1RPS0VOXCIpO1xuICBjb25zdCBkb21haW4gPSBjb25maWcuc3RyaW5nKG9wdHMucHVibGljRG9tYWluLCBcIlBVQkxJQ19ET01BSU5cIiwgVFVOTkVMX0NPTkZJRyk7XG4gIGlmICghdG9rZW4pIHJldHVybiB1bmRlZmluZWQ7XG4gIGxldCBzdWJkb21haW4gPSBvcHRzLnN1YmRvbWFpbjtcbiAgbGV0IHNlcnZlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpZiAoZG9tYWluKSB7XG4gICAgc3ViZG9tYWluID8/PSBkb21haW4uc3BsaXQoXCIuXCIpWzBdO1xuICAgIHNlcnZlciA9IGRvbWFpbi5zbGljZShkb21haW4uaW5kZXhPZihcIi5cIikgKyAxKTtcbiAgfVxuICBzZXJ2ZXIgPz89IGNvbmZpZy50ZXh0KFwiUE9SVFJfU0VSVkVSXCIpO1xuICBpZiAoIXN1YmRvbWFpbiB8fCAhc2VydmVyIHx8IHNlcnZlciA9PT0gZG9tYWluKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4geyBzdWJkb21haW4sIHNlcnZlciwgdG9rZW4sIHBvcnQ6IG9wdHMucG9ydCB9O1xufVxuXG4vKiogR2l0SHViIHJlbGVhc2UgYXNzZXQgbmFtZSBmb3IgdGhlIGN1cnJlbnQgb3Igc3VwcGxpZWQgT1MvYXJjaGl0ZWN0dXJlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvcnRyQXNzZXROYW1lKFxuICB2ZXJzaW9uOiBzdHJpbmcsXG4gIHBsYXRmb3JtOiBOb2RlSlMuUGxhdGZvcm0gPSBwcm9jZXNzLnBsYXRmb3JtLFxuICBhcmNoOiBzdHJpbmcgPSBwcm9jZXNzLmFyY2gsXG4pOiBzdHJpbmcge1xuICBjb25zdCBvc05hbWUgPSBwbGF0Zm9ybSA9PT0gXCJkYXJ3aW5cIiA/IFwiRGFyd2luXCIgOiBwbGF0Zm9ybSA9PT0gXCJsaW51eFwiID8gXCJMaW51eFwiIDogdW5kZWZpbmVkO1xuICBjb25zdCBhcmNoTmFtZSA9IGFyY2ggPT09IFwiYXJtNjRcIiA/IFwiYXJtNjRcIiA6IGFyY2ggPT09IFwieDY0XCIgPyBcIng4Nl82NFwiIDogdW5kZWZpbmVkO1xuICBpZiAoIW9zTmFtZSB8fCAhYXJjaE5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHBvcnRyIGhhcyBubyBzdXBwb3J0ZWQgcmVsZWFzZSBhc3NldCBmb3IgJHtwbGF0Zm9ybX0vJHthcmNofWApO1xuICB9XG4gIHJldHVybiBgcG9ydHJfJHt2ZXJzaW9ufV8ke29zTmFtZX1fJHthcmNoTmFtZX0uemlwYDtcbn1cblxuZnVuY3Rpb24gcG9ydHJEb3dubG9hZFVybCgpOiBzdHJpbmcge1xuICBjb25zdCBhc3NldE5hbWUgPSBwb3J0ckFzc2V0TmFtZShQT1JUUl9WRVJTSU9OKTtcbiAgbG9nZ2VyLmluZm8oXCJpbnN0YWxsaW5nIHBvcnRyXCIsIHsgdmVyc2lvbjogUE9SVFJfVkVSU0lPTiwgYXNzZXQ6IGFzc2V0TmFtZSB9KTtcbiAgcmV0dXJuIGAke1BPUlRSX1JFTEVBU0VfVVJMfS8ke2Fzc2V0TmFtZX1gO1xufVxuXG4vKiogSW5zdGFsbCBwb3J0ciB3aGVuIGFic2VudCBhbmQgcmV0dXJuIHRoZSBlbnZpcm9ubWVudCB1c2VkIGJ5IGl0cyBwcm9jZXNzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc3RhbGxQb3J0cihvcHRpb25zOiBQb3J0ckluc3RhbGxPcHRpb25zID0ge30pOiBQcm9taXNlPE5vZGVKUy5Qcm9jZXNzRW52PiB7XG4gIGNvbnN0IGhvbWVEaXIgPSBvcHRpb25zLmhvbWVEaXIgPz8gb3MuaG9tZWRpcigpO1xuICBjb25zdCBjb250ZXh0ID0gYXdhaXQgYmluLmVuc3VyZShcInBvcnRyXCIsIHBvcnRyRG93bmxvYWRVcmwsIHtcbiAgICBhdXRvVW5wYWNrYWdlOiB0cnVlLFxuICAgIGhvbWVEaXIsXG4gICAgbWluVmVyc2lvbjogUE9SVFJfTUlOX1ZFUlNJT04sXG4gICAgc2VsZWN0b3I6ICh7IHNvdXJjZSB9KSA9PiBqb2luKHNvdXJjZSwgXCJwb3J0clwiKSxcbiAgICB2ZXJzaW9uUGFyc2VyOiAob3V0cHV0KSA9PiB7XG4gICAgICBjb25zdCB2ZXJzaW9uID0gYmluLnBhcnNlVmVyc2lvbihvdXRwdXQpO1xuICAgICAgcmV0dXJuIHZlcnNpb24gPT09IFBPUlRSX1ZFUlNJT04gPyB2ZXJzaW9uIDogdW5kZWZpbmVkO1xuICAgIH0sXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIC4uLnByb2Nlc3MuZW52LFxuICAgIEhPTUU6IGhvbWVEaXIsXG4gICAgUE9SVFJfQVVUT19BRERfUEFUSDogXCJub1wiLFxuICAgIFBBVEg6IFtjb250ZXh0LmJpbkRpciwgcHJvY2Vzcy5lbnYuUEFUSCA/PyBcIlwiXS5qb2luKGRlbGltaXRlciksXG4gIH07XG59XG5cbi8qKiBSZW5kZXIgYH4vLnBvcnRyL2NvbmZpZy55YW1sYCBmb3IgdGhlIHJlc29sdmVkIHR1bm5lbC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVBvcnRyQ29uZmlnKFxuICBjb25maWc6IFBvcnRyQ29uZmlnLFxuICBjaGlsZEVudjogTm9kZUpTLlByb2Nlc3NFbnYsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGF0aCA9IGpvaW4oY2hpbGRFbnYuSE9NRSA/PyBvcy5ob21lZGlyKCksIFwiLnBvcnRyXCIsIFwiY29uZmlnLnlhbWxcIik7XG4gIGF3YWl0IHdyaXRlRmlsZShcbiAgICBwYXRoLFxuICAgIFtcbiAgICAgIGBzZXJ2ZXJfdXJsOiAke2NvbmZpZy5zZXJ2ZXJ9YCxcbiAgICAgIGBzc2hfdXJsOiAke2NvbmZpZy5zZXJ2ZXJ9OjQ0NDRgLFxuICAgICAgYHNlY3JldF9rZXk6ICR7Y29uZmlnLnRva2VufWAsXG4gICAgICBcImRpc2FibGVfZGFzaGJvYXJkOiB0cnVlXCIsXG4gICAgICBcImRpc2FibGVfdHVpOiB0cnVlXCIsXG4gICAgICBcInR1bm5lbHM6XCIsXG4gICAgICBgICAtIG5hbWU6ICR7Y29uZmlnLnN1YmRvbWFpbn1gLFxuICAgICAgYCAgICBzdWJkb21haW46ICR7Y29uZmlnLnN1YmRvbWFpbn1gLFxuICAgICAgYCAgICBwb3J0OiAke2NvbmZpZy5wb3J0fWAsXG4gICAgICBcIlwiLFxuICAgIF0uam9pbihcIlxcblwiKSxcbiAgKTtcbn1cblxuLyoqIExhdW5jaCBgcG9ydHIgc3RhcnRgIGFzIGEgY2hpbGQgcHJvY2VzcyAoY2FsbGVyIHN1cGVydmlzZXMgKyBraWxscyBpdCkuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRQb3J0cihcbiAgY29uZmlnOiBQb3J0ckNvbmZpZyxcbiAgY2hpbGRFbnY6IE5vZGVKUy5Qcm9jZXNzRW52LFxuKTogUHJvbWlzZTxSZXR1cm5UeXBlPHR5cGVvZiBzcGF3bj4+IHtcbiAgLy8gUmVjbGFpbSB0aGUgc3ViZG9tYWluIGZyb20gYW55IHBvcnRyIGxlZnQgYnkgYSBwcmV2aW91cyBib290IGluIHRoaXMgY29udGFpbmVyLlxuICBhd2FpdCBleGVjRmlsZUFzeW5jKFwicGtpbGxcIiwgW1wiLXhcIiwgXCJwb3J0clwiXSkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcblxuICBsb2dnZXIuaW5mbyhgcG9ydHIgdHVubmVsaW5nIGh0dHBzOi8vJHtjb25maWcuc3ViZG9tYWlufS4ke2NvbmZpZy5zZXJ2ZXJ9IC0+IDoke2NvbmZpZy5wb3J0fWApO1xuICBjb25zdCBjaGlsZCA9IHNwYXduKFwicG9ydHJcIiwgW1wic3RhcnRcIl0sIHsgZW52OiBjaGlsZEVudiwgc3RkaW86IFtcImluaGVyaXRcIiwgXCJwaXBlXCIsIFwicGlwZVwiXSB9KTtcbiAgY2hpbGQuc3Rkb3V0Py5waXBlKG5vcm1hbGl6ZWRPdXRwdXQocHJvY2Vzcy5zdGRvdXQpKTtcbiAgY2hpbGQuc3RkZXJyPy5waXBlKG5vcm1hbGl6ZWRPdXRwdXQocHJvY2Vzcy5zdGRlcnIpKTtcbiAgcmV0dXJuIGNoaWxkO1xufVxuXG4vKipcbiAqIFByb2JlIHRoZSBwdWJsaWMgcG9ydHIgVVJMLiBBIHJlZ2lzdGVyZWQgdHVubmVsIGlzIGhlYWx0aHkgZXZlbiB3aGVuIHRoZSBhcHBcbiAqIHJldHVybnMgYW4gYXV0aCBjaGFsbGVuZ2UgKDQwMS8zMDIpIC0gdGhvc2UgcHJvdmUgdGhlIGVkZ2Ugc3RpbGwgaGFzIHRoZVxuICogc3ViZG9tYWluLiBPbmx5IGFuIGV4cGxpY2l0IGB1bnJlZ2lzdGVyZWQtc3ViZG9tYWluYCAob3IgYW55IG90aGVyXG4gKiBgeC1wb3J0ci1lcnJvcmApIG1lYW5zIHRoZSBjbGllbnQgbXVzdCBiZSByZXN0YXJ0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9iZVBvcnRyUHVibGljVXJsKHB1YmxpY1VybDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocHVibGljVXJsLCB7XG4gICAgbWV0aG9kOiBcIkhFQURcIixcbiAgICByZWRpcmVjdDogXCJtYW51YWxcIixcbiAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoNV8wMDApLFxuICB9KTtcbiAgaWYgKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwieC1wb3J0ci1lcnJvclwiKSA9PT0gXCJ0cnVlXCIpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBlcnZpc2VQb3J0cihcbiAgY29uZmlnOiBQb3J0ckNvbmZpZyxcbiAgY2hpbGRFbnY6IE5vZGVKUy5Qcm9jZXNzRW52LFxuKTogUHJvY2Vzc1N1cGVydmlzb3Ige1xuICBjb25zdCBwdWJsaWNVcmwgPSBgaHR0cHM6Ly8ke2NvbmZpZy5zdWJkb21haW59LiR7Y29uZmlnLnNlcnZlcn1gO1xuICByZXR1cm4gc3VwZXJ2aXNlUHJvY2Vzc0ZvcmV2ZXIoe1xuICAgIG5hbWU6IFwicG9ydHJcIixcbiAgICBsb2dnZXIsXG4gICAgc3RhcnQ6ICgpID0+IHN0YXJ0UG9ydHIoY29uZmlnLCBjaGlsZEVudiksXG4gICAgLy8gS2lsbCArIHJlc3RhcnQgd2hlbiB0aGUgZWRnZSBkcm9wcyB0aGUgcmVnaXN0cmF0aW9uIHdoaWxlIHRoZSBsb2NhbFxuICAgIC8vIHByb2Nlc3MgaXMgc3RpbGwgYWxpdmUuIFdpdGhvdXQgdGhpcywgbGVuc2lxLmFwcHMuZGJ4LnRvb2xzIChhbmQgYW55XG4gICAgLy8gb3RoZXIgaW4tcHJvY2VzcyB0dW5uZWwpIHN0YXlzIHVucmVnaXN0ZXJlZCB1bnRpbCBhIGZ1bGwgYXBwIGJvdW5jZS5cbiAgICBpc0hlYWx0aHk6ICgpID0+IHByb2JlUG9ydHJQdWJsaWNVcmwocHVibGljVXJsKSxcbiAgfSk7XG59XG4iXX0=
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG9ydHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQztBQUNyQyxNQUFNLGlCQUFpQixHQUFHLHlEQUF5RCxhQUFhLEVBQUUsQ0FBQztBQUNuRyxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztBQUNwQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFMUMsTUFBTSxLQUFLLEdBQUcsb0NBQW9DLENBQUM7QUFFbkQsK0VBQStFO0FBQy9FLE1BQU0sVUFBVSxvQkFBb0IsQ0FB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QUM3QixJQUFJLEVBQUUsT0FBTztRQUNiLE1BQU07UUFDTixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDekMsc0VBQXNFO1FBQ3RFLHVFQUF1RTtRQUN2RSx1RUFBdUU7UUFDdkUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztLQUNoRCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBwb3J0ciBpbnN0YWxsLCBjb25maWcsIGFuZCBsYXVuY2ggc3VwcG9ydCBmb3IgdGhlIHR1bm5lbCBydW50aW1lLlxuICpcbiAqIFRoZSBiaW5hcnkgYW5kIGNvbmZpZyB1c2UgcG9ydHIncyBjb252ZW50aW9uYWwgYCRIT01FLy5wb3J0cmAgdHJlZS4gVGhlXG4gKiBpbnN0YWxsIGlzIGlkZW1wb3RlbnQgKHRoZSBpbnN0YWxsZXIgc2tpcHMgYW4gZXhpc3RpbmcgZXhlY3V0YWJsZSkuIFRoZVxuICogY29uZmlnIGlzIHJlbmRlcmVkIGZyb20gYFRVTk5FTF9QVUJMSUNfRE9NQUlOYFxuICogKGA8c3ViZG9tYWluPi48c2VydmVyPmApICsgYFBPUlRSX1RPS0VOYCBhbmQgcG9pbnRzIHBvcnRyIGF0IHRoZSBQVUJMSUMgcG9ydFxuICogKHRoZSBwcm94eSBsaXN0ZW5zIHRoZXJlKS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cbmltcG9ydCB7IGV4ZWNGaWxlLCBzcGF3biB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IG1rZGlyLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IG9zIGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBkZWxpbWl0ZXIsIGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBUcmFuc2Zvcm0gfSBmcm9tIFwibm9kZTpzdHJlYW1cIjtcbmltcG9ydCB7IFN0cmluZ0RlY29kZXIgfSBmcm9tIFwibm9kZTpzdHJpbmdfZGVjb2RlclwiO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSBcIm5vZGU6dXRpbFwiO1xuXG5pbXBvcnQgeyBiaW4sIGNvbmZpZyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBUVU5ORUxfQ09ORklHIH0gZnJvbSBcIi4vX2NvbmZpZy50c1wiO1xuaW1wb3J0IHsgc3VwZXJ2aXNlUHJvY2Vzc0ZvcmV2ZXIsIHR5cGUgUHJvY2Vzc1N1cGVydmlzb3IgfSBmcm9tIFwiLi9zdXBlcnZpc29yLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJ0dW5uZWw6cG9ydHJcIik7XG5jb25zdCBQT1JUUl9WRVJTSU9OID0gXCIxLjAuMTUtc3NlLjJcIjtcbmNvbnN0IFBPUlRSX1JFTEVBU0VfVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS9yZWdnaWUtZGIvcG9ydHIvcmVsZWFzZXMvZG93bmxvYWQvdiR7UE9SVFJfVkVSU0lPTn1gO1xuY29uc3QgUE9SVFJfTUlOX1ZFUlNJT04gPSBcInYxLjAuMTVcIjtcbmNvbnN0IGV4ZWNGaWxlQXN5bmMgPSBwcm9taXNpZnkoZXhlY0ZpbGUpO1xuXG5jb25zdCBFTU9KSSA9IC9cXHB7RXh0ZW5kZWRfUGljdG9ncmFwaGljfVxcdUZFMEY/L2d1O1xuXG4vKiogUmVtb3ZlIHBpY3RvZ3JhcGhzIGZyb20gdGhpcmQtcGFydHkgcHJvY2VzcyBvdXRwdXQgYmVmb3JlIGZvcndhcmRpbmcgaXQuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUG9ydHJPdXRwdXQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKEVNT0pJLCBcIlwiKS5yZXBsYWNlKC9eWyBcXHRdKy9nbSwgXCJcIik7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZWRPdXRwdXQoZGVzdGluYXRpb246IE5vZGVKUy5Xcml0ZVN0cmVhbSk6IFRyYW5zZm9ybSB7XG4gIGNvbnN0IGRlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcihcInV0ZjhcIik7XG4gIHJldHVybiBuZXcgVHJhbnNmb3JtKHtcbiAgICB0cmFuc2Zvcm0oY2h1bmssIF9lbmNvZGluZywgY2FsbGJhY2spIHtcbiAgICAgIGRlc3RpbmF0aW9uLndyaXRlKG5vcm1hbGl6ZVBvcnRyT3V0cHV0KGRlY29kZXIud3JpdGUoY2h1bmspKSk7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH0sXG4gICAgZmx1c2goY2FsbGJhY2spIHtcbiAgICAgIGRlc3RpbmF0aW9uLndyaXRlKG5vcm1hbGl6ZVBvcnRyT3V0cHV0KGRlY29kZXIuZW5kKCkpKTtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBPcHRpb25zIGZvciBpbnN0YWxsaW5nIHRoZSBwb3J0ciBleGVjdXRhYmxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb3J0ckluc3RhbGxPcHRpb25zIHtcbiAgLyoqIEhvbWUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYC5wb3J0cmA7IGRlZmF1bHRzIHRvIHRoZSBPUyBob21lIGRpcmVjdG9yeS4gKi9cbiAgaG9tZURpcj86IHN0cmluZztcbn1cblxuLyoqIFJlc29sdmVkIHBvcnRyIHdpcmluZywgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyB0dW5uZWwgaXMgY29uZmlndXJlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydHJDb25maWcge1xuICBzdWJkb21haW46IHN0cmluZztcbiAgc2VydmVyOiBzdHJpbmc7XG4gIHNzaFVybDogc3RyaW5nO1xuICB0b2tlbjogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBwb3J0ciBjb25maWcgZnJvbSBgVFVOTkVMX1BVQkxJQ19ET01BSU5gICsgYFBPUlRSX1RPS0VOYCwgb3IgYW5cbiAqIGV4cGxpY2l0IGBzdWJkb21haW5gLiBUaGUgZG9tYWluIGlzIGA8c3ViZG9tYWluPi48c2VydmVyPmAgKGUuZy5cbiAqIGBkZW1vLmFwcHMuZGJ4LnRvb2xzYCkuIFJldHVybnMgYHVuZGVmaW5lZGAgKG5vIHR1bm5lbCkgd2hlbiB0aGUgdG9rZW4gb3IgYVxuICogdXNhYmxlIGRvbWFpbiBpcyBhYnNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUG9ydHJDb25maWcob3B0czoge1xuICBwdWJsaWNEb21haW4/OiBzdHJpbmc7XG4gIHN1YmRvbWFpbj86IHN0cmluZztcbiAgc3NoVXJsPzogc3RyaW5nO1xuICB0b2tlbj86IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xufSk6IFBvcnRyQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgLy8gUE9SVFJfKiBpcyB1cHN0cmVhbSBwb3J0cidzIG93biBuYW1lc3BhY2UsIHNvIGl0IGtlZXBzIGl0cyBuYW1lLlxuICBjb25zdCB0b2tlbiA9IGNvbmZpZy5zdHJpbmcob3B0cy50b2tlbiwgXCJQT1JUUl9UT0tFTlwiKTtcbiAgY29uc3QgZG9tYWluID0gY29uZmlnLnN0cmluZyhvcHRzLnB1YmxpY0RvbWFpbiwgXCJQVUJMSUNfRE9NQUlOXCIsIFRVTk5FTF9DT05GSUcpO1xuICBpZiAoIXRva2VuKSByZXR1cm4gdW5kZWZpbmVkO1xuICBsZXQgc3ViZG9tYWluID0gb3B0cy5zdWJkb21haW47XG4gIGxldCBzZXJ2ZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaWYgKGRvbWFpbikge1xuICAgIHN1YmRvbWFpbiA/Pz0gZG9tYWluLnNwbGl0KFwiLlwiKVswXTtcbiAgICBzZXJ2ZXIgPSBkb21haW4uc2xpY2UoZG9tYWluLmluZGV4T2YoXCIuXCIpICsgMSk7XG4gIH1cbiAgc2VydmVyID8/PSBjb25maWcudGV4dChcIlBPUlRSX1NFUlZFUlwiKTtcbiAgaWYgKCFzdWJkb21haW4gfHwgIXNlcnZlciB8fCBzZXJ2ZXIgPT09IGRvbWFpbikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3Qgc3NoVXJsID0gY29uZmlnLnN0cmluZyhvcHRzLnNzaFVybCwgXCJQT1JUUl9TU0hfVVJMXCIpID8/IGAke3NlcnZlcn06NDQ0NGA7XG4gIHJldHVybiB7IHN1YmRvbWFpbiwgc2VydmVyLCBzc2hVcmwsIHRva2VuLCBwb3J0OiBvcHRzLnBvcnQgfTtcbn1cblxuLyoqIEdpdEh1YiByZWxlYXNlIGFzc2V0IG5hbWUgZm9yIHRoZSBjdXJyZW50IG9yIHN1cHBsaWVkIE9TL2FyY2hpdGVjdHVyZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3J0ckFzc2V0TmFtZShcbiAgdmVyc2lvbjogc3RyaW5nLFxuICBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtID0gcHJvY2Vzcy5wbGF0Zm9ybSxcbiAgYXJjaDogc3RyaW5nID0gcHJvY2Vzcy5hcmNoLFxuKTogc3RyaW5nIHtcbiAgY29uc3Qgb3NOYW1lID0gcGxhdGZvcm0gPT09IFwiZGFyd2luXCIgPyBcIkRhcndpblwiIDogcGxhdGZvcm0gPT09IFwibGludXhcIiA/IFwiTGludXhcIiA6IHVuZGVmaW5lZDtcbiAgY29uc3QgYXJjaE5hbWUgPSBhcmNoID09PSBcImFybTY0XCIgPyBcImFybTY0XCIgOiBhcmNoID09PSBcIng2NFwiID8gXCJ4ODZfNjRcIiA6IHVuZGVmaW5lZDtcbiAgaWYgKCFvc05hbWUgfHwgIWFyY2hOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBwb3J0ciBoYXMgbm8gc3VwcG9ydGVkIHJlbGVhc2UgYXNzZXQgZm9yICR7cGxhdGZvcm19LyR7YXJjaH1gKTtcbiAgfVxuICByZXR1cm4gYHBvcnRyXyR7dmVyc2lvbn1fJHtvc05hbWV9XyR7YXJjaE5hbWV9LnppcGA7XG59XG5cbmZ1bmN0aW9uIHBvcnRyRG93bmxvYWRVcmwoKTogc3RyaW5nIHtcbiAgY29uc3QgYXNzZXROYW1lID0gcG9ydHJBc3NldE5hbWUoUE9SVFJfVkVSU0lPTik7XG4gIGxvZ2dlci5pbmZvKFwiaW5zdGFsbGluZyBwb3J0clwiLCB7IHZlcnNpb246IFBPUlRSX1ZFUlNJT04sIGFzc2V0OiBhc3NldE5hbWUgfSk7XG4gIHJldHVybiBgJHtQT1JUUl9SRUxFQVNFX1VSTH0vJHthc3NldE5hbWV9YDtcbn1cblxuLyoqIEluc3RhbGwgcG9ydHIgd2hlbiBhYnNlbnQgYW5kIHJldHVybiB0aGUgZW52aXJvbm1lbnQgdXNlZCBieSBpdHMgcHJvY2Vzcy4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnN0YWxsUG9ydHIob3B0aW9uczogUG9ydHJJbnN0YWxsT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxOb2RlSlMuUHJvY2Vzc0Vudj4ge1xuICBjb25zdCBob21lRGlyID0gb3B0aW9ucy5ob21lRGlyID8/IG9zLmhvbWVkaXIoKTtcbiAgY29uc3QgY29udGV4dCA9IGF3YWl0IGJpbi5lbnN1cmUoXCJwb3J0clwiLCBwb3J0ckRvd25sb2FkVXJsLCB7XG4gICAgYXV0b1VucGFja2FnZTogdHJ1ZSxcbiAgICBob21lRGlyLFxuICAgIG1pblZlcnNpb246IFBPUlRSX01JTl9WRVJTSU9OLFxuICAgIHNlbGVjdG9yOiAoeyBzb3VyY2UgfSkgPT4gam9pbihzb3VyY2UsIFwicG9ydHJcIiksXG4gICAgdmVyc2lvblBhcnNlcjogKG91dHB1dCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbiA9IGJpbi5wYXJzZVZlcnNpb24ob3V0cHV0KTtcbiAgICAgIHJldHVybiB2ZXJzaW9uID09PSBQT1JUUl9WRVJTSU9OID8gdmVyc2lvbiA6IHVuZGVmaW5lZDtcbiAgICB9LFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICAuLi5wcm9jZXNzLmVudixcbiAgICBIT01FOiBob21lRGlyLFxuICAgIFBPUlRSX0FVVE9fQUREX1BBVEg6IFwibm9cIixcbiAgICBQQVRIOiBbY29udGV4dC5iaW5EaXIsIHByb2Nlc3MuZW52LlBBVEggPz8gXCJcIl0uam9pbihkZWxpbWl0ZXIpLFxuICB9O1xufVxuXG4vKiogUmVuZGVyIGB+Ly5wb3J0ci9jb25maWcueWFtbGAgZm9yIHRoZSByZXNvbHZlZCB0dW5uZWwuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVQb3J0ckNvbmZpZyhcbiAgY29uZmlnOiBQb3J0ckNvbmZpZyxcbiAgY2hpbGRFbnY6IE5vZGVKUy5Qcm9jZXNzRW52LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRpcmVjdG9yeSA9IGpvaW4oY2hpbGRFbnYuSE9NRSA/PyBvcy5ob21lZGlyKCksIFwiLnBvcnRyXCIpO1xuICBjb25zdCBwYXRoID0gam9pbihkaXJlY3RvcnksIFwiY29uZmlnLnlhbWxcIik7XG4gIGF3YWl0IG1rZGlyKGRpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGF3YWl0IHdyaXRlRmlsZShcbiAgICBwYXRoLFxuICAgIFtcbiAgICAgIGBzZXJ2ZXJfdXJsOiAke2NvbmZpZy5zZXJ2ZXJ9YCxcbiAgICAgIGBzc2hfdXJsOiAke2NvbmZpZy5zc2hVcmx9YCxcbiAgICAgIGBzZWNyZXRfa2V5OiAke2NvbmZpZy50b2tlbn1gLFxuICAgICAgXCJkaXNhYmxlX2Rhc2hib2FyZDogdHJ1ZVwiLFxuICAgICAgXCJkaXNhYmxlX3R1aTogdHJ1ZVwiLFxuICAgICAgXCJ0dW5uZWxzOlwiLFxuICAgICAgYCAgLSBuYW1lOiAke2NvbmZpZy5zdWJkb21haW59YCxcbiAgICAgIGAgICAgc3ViZG9tYWluOiAke2NvbmZpZy5zdWJkb21haW59YCxcbiAgICAgIGAgICAgcG9ydDogJHtjb25maWcucG9ydH1gLFxuICAgICAgXCJcIixcbiAgICBdLmpvaW4oXCJcXG5cIiksXG4gICk7XG59XG5cbi8qKiBMYXVuY2ggYHBvcnRyIHN0YXJ0YCBhcyBhIGNoaWxkIHByb2Nlc3MgKGNhbGxlciBzdXBlcnZpc2VzICsga2lsbHMgaXQpLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UG9ydHIoXG4gIGNvbmZpZzogUG9ydHJDb25maWcsXG4gIGNoaWxkRW52OiBOb2RlSlMuUHJvY2Vzc0Vudixcbik6IFByb21pc2U8UmV0dXJuVHlwZTx0eXBlb2Ygc3Bhd24+PiB7XG4gIC8vIFJlY2xhaW0gdGhlIHN1YmRvbWFpbiBmcm9tIGFueSBwb3J0ciBsZWZ0IGJ5IGEgcHJldmlvdXMgYm9vdCBpbiB0aGlzIGNvbnRhaW5lci5cbiAgYXdhaXQgZXhlY0ZpbGVBc3luYyhcInBraWxsXCIsIFtcIi14XCIsIFwicG9ydHJcIl0pLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG5cbiAgbG9nZ2VyLmluZm8oYHBvcnRyIHR1bm5lbGluZyBodHRwczovLyR7Y29uZmlnLnN1YmRvbWFpbn0uJHtjb25maWcuc2VydmVyfSAtPiA6JHtjb25maWcucG9ydH1gKTtcbiAgY29uc3QgY2hpbGQgPSBzcGF3bihcInBvcnRyXCIsIFtcInN0YXJ0XCJdLCB7IGVudjogY2hpbGRFbnYsIHN0ZGlvOiBbXCJpbmhlcml0XCIsIFwicGlwZVwiLCBcInBpcGVcIl0gfSk7XG4gIGNoaWxkLnN0ZG91dD8ucGlwZShub3JtYWxpemVkT3V0cHV0KHByb2Nlc3Muc3Rkb3V0KSk7XG4gIGNoaWxkLnN0ZGVycj8ucGlwZShub3JtYWxpemVkT3V0cHV0KHByb2Nlc3Muc3RkZXJyKSk7XG4gIHJldHVybiBjaGlsZDtcbn1cblxuLyoqXG4gKiBQcm9iZSB0aGUgcHVibGljIHBvcnRyIFVSTC4gQSByZWdpc3RlcmVkIHR1bm5lbCBpcyBoZWFsdGh5IGV2ZW4gd2hlbiB0aGUgYXBwXG4gKiByZXR1cm5zIGFuIGF1dGggY2hhbGxlbmdlICg0MDEvMzAyKSAtIHRob3NlIHByb3ZlIHRoZSBlZGdlIHN0aWxsIGhhcyB0aGVcbiAqIHN1YmRvbWFpbi4gT25seSBhbiBleHBsaWNpdCBgdW5yZWdpc3RlcmVkLXN1YmRvbWFpbmAgKG9yIGFueSBvdGhlclxuICogYHgtcG9ydHItZXJyb3JgKSBtZWFucyB0aGUgY2xpZW50IG11c3QgYmUgcmVzdGFydGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvYmVQb3J0clB1YmxpY1VybChwdWJsaWNVcmw6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHB1YmxpY1VybCwge1xuICAgIG1ldGhvZDogXCJIRUFEXCIsXG4gICAgcmVkaXJlY3Q6IFwibWFudWFsXCIsXG4gICAgc2lnbmFsOiBBYm9ydFNpZ25hbC50aW1lb3V0KDVfMDAwKSxcbiAgfSk7XG4gIGlmIChyZXNwb25zZS5oZWFkZXJzLmdldChcIngtcG9ydHItZXJyb3JcIikgPT09IFwidHJ1ZVwiKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJ2aXNlUG9ydHIoXG4gIGNvbmZpZzogUG9ydHJDb25maWcsXG4gIGNoaWxkRW52OiBOb2RlSlMuUHJvY2Vzc0Vudixcbik6IFByb2Nlc3NTdXBlcnZpc29yIHtcbiAgY29uc3QgcHVibGljVXJsID0gYGh0dHBzOi8vJHtjb25maWcuc3ViZG9tYWlufS4ke2NvbmZpZy5zZXJ2ZXJ9YDtcbiAgcmV0dXJuIHN1cGVydmlzZVByb2Nlc3NGb3JldmVyKHtcbiAgICBuYW1lOiBcInBvcnRyXCIsXG4gICAgbG9nZ2VyLFxuICAgIHN0YXJ0OiAoKSA9PiBzdGFydFBvcnRyKGNvbmZpZywgY2hpbGRFbnYpLFxuICAgIC8vIEtpbGwgKyByZXN0YXJ0IHdoZW4gdGhlIGVkZ2UgZHJvcHMgdGhlIHJlZ2lzdHJhdGlvbiB3aGlsZSB0aGUgbG9jYWxcbiAgICAvLyBwcm9jZXNzIGlzIHN0aWxsIGFsaXZlLiBXaXRob3V0IHRoaXMsIGxlbnNpcS5hcHBzLmRieC50b29scyAoYW5kIGFueVxuICAgIC8vIG90aGVyIGluLXByb2Nlc3MgdHVubmVsKSBzdGF5cyB1bnJlZ2lzdGVyZWQgdW50aWwgYSBmdWxsIGFwcCBib3VuY2UuXG4gICAgaXNIZWFsdGh5OiAoKSA9PiBwcm9iZVBvcnRyUHVibGljVXJsKHB1YmxpY1VybCksXG4gIH0pO1xufVxuIl19
|
package/lib/src/supervisor.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type Logger } from "@dbx-tools/shared-core";
|
|
|
3
3
|
export interface ProcessSupervisor {
|
|
4
4
|
stop(): void;
|
|
5
5
|
}
|
|
6
|
+
/** Retry, shutdown, and liveness policy for one supervised child process. */
|
|
6
7
|
export interface ProcessSupervisorOptions {
|
|
7
8
|
name: string;
|
|
8
9
|
logger: Logger;
|
package/lib/src/supervisor.js
CHANGED
|
@@ -136,4 +136,4 @@ function processOutcome(child, signal, options) {
|
|
|
136
136
|
scheduleHealthCheck(options.healthCheckGraceMs ?? DEFAULT_HEALTH_CHECK_GRACE_MS);
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwZXJ2aXNvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBlcnZpc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLElBQUksVUFBVSxFQUFlLE1BQU0sd0JBQXdCLENBQUM7QUFFMUUsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFDcEMsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUM7QUFDekMsbUZBQW1GO0FBQ25GLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDO0FBQzdDLHdFQUF3RTtBQUN4RSxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQztBQUNoRCwrRUFBK0U7QUFDL0UsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFpQ3hDLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxPQUFpQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLElBQUksS0FBK0IsQ0FBQztJQUVwQyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7UUFDMUIsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUMzQixhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLFVBQVUsQ0FDUixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUNuQyxPQUFPLENBQUMsZUFBZSxJQUFJLHlCQUF5QixDQUNyRCxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ2hCLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUN0QyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsY0FBYyxFQUFFLENBQUM7UUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUs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QUVGLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLDZCQUE2QixDQUFDLENBQUM7SUFDbkYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDaGlsZFByb2Nlc3MgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBhc3luYyBhcyBhc3luY1Rvb2xzLCB0eXBlIExvZ2dlciB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5cbmNvbnN0IFNUQUJMRV9DT05ORUNUSU9OX01TID0gNjBfMDAwO1xuY29uc3QgREVGQVVMVF9TSFVURE9XTl9HUkFDRV9NUyA9IDEwXzAwMDtcbi8qKiBIb3cgbG9uZyB0byB3YWl0IGFmdGVyIGEgY2hpbGQgc3RhcnQgYmVmb3JlIHRoZSBmaXJzdCBwdWJsaWMgbGl2ZW5lc3MgcHJvYmUuICovXG5jb25zdCBERUZBVUxUX0hFQUxUSF9DSEVDS19HUkFDRV9NUyA9IDQ1XzAwMDtcbi8qKiBJbnRlcnZhbCBiZXR3ZWVuIHB1YmxpYyBsaXZlbmVzcyBwcm9iZXMgd2hpbGUgYSBjaGlsZCBpcyBydW5uaW5nLiAqL1xuY29uc3QgREVGQVVMVF9IRUFMVEhfQ0hFQ0tfSU5URVJWQUxfTVMgPSAzMF8wMDA7XG4vKiogQ29uc2VjdXRpdmUgZmFpbGVkIHByb2JlcyByZXF1aXJlZCBiZWZvcmUga2lsbGluZyBhIHN0aWxsLXJ1bm5pbmcgY2hpbGQuICovXG5jb25zdCBERUZBVUxUX0hFQUxUSF9DSEVDS19GQUlMVVJFUyA9IDI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1N1cGVydmlzb3Ige1xuICBzdG9wKCk6IHZvaWQ7XG59XG5cbnR5cGUgUHJvY2Vzc091dGNvbWUgPSB7XG4gIGNvZGU/OiBudW1iZXIgfCBudWxsO1xuICBzaWduYWw/OiBOb2RlSlMuU2lnbmFscyB8IG51bGw7XG4gIGVycm9yPzogdW5rbm93bjtcbiAgLyoqIFNldCB3aGVuIHRoZSBzdXBlcnZpc29yIGtpbGxlZCB0aGUgY2hpbGQgYWZ0ZXIgYSBmYWlsZWQgbGl2ZW5lc3MgcHJvYmUuICovXG4gIHVuaGVhbHRoeT86IHRydWU7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NTdXBlcnZpc29yT3B0aW9ucyB7XG4gIG5hbWU6IHN0cmluZztcbiAgbG9nZ2VyOiBMb2dnZXI7XG4gIHN0YXJ0OiAoKSA9PiBDaGlsZFByb2Nlc3MgfCBQcm9taXNlPENoaWxkUHJvY2Vzcz47XG4gIHJldHJ5RGVsYXlzTXM/OiByZWFkb25seSBudW1iZXJbXTtcbiAgc2h1dGRvd25HcmFjZU1zPzogbnVtYmVyO1xuICAvKipcbiAgICogT3B0aW9uYWwgcHVibGljIGxpdmVuZXNzIHByb2JlLiBXaGVuIGl0IHJldHVybnMgYGZhbHNlYCB3aGlsZSB0aGUgY2hpbGQgaXNcbiAgICogc3RpbGwgcnVubmluZywgdGhlIHN1cGVydmlzb3Iga2lsbHMgdGhlIGNoaWxkIHNvIHRoZSBmb3JldmVyLWxvb3AgcmVzdGFydHNcbiAgICogaXQuIFVzZWQgYnkgcG9ydHIgdG8gcmVjb3ZlciBmcm9tIGFuIGVkZ2UgdGhhdCBkcm9wcGVkIHRoZSBzdWJkb21haW5cbiAgICogcmVnaXN0cmF0aW9uIHdoaWxlIHRoZSBsb2NhbCBwcm9jZXNzIGtlcHQgcnVubmluZyAoc2VlXG4gICAqIGB4LXBvcnRyLWVycm9yLXJlYXNvbjogdW5yZWdpc3RlcmVkLXN1YmRvbWFpbmApLlxuICAgKi9cbiAgaXNIZWFsdGh5PzogKCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG4gIGhlYWx0aENoZWNrR3JhY2VNcz86IG51bWJlcjtcbiAgaGVhbHRoQ2hlY2tJbnRlcnZhbE1zPzogbnVtYmVyO1xuICBoZWFsdGhDaGVja0ZhaWx1cmVzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJ2aXNlUHJvY2Vzc0ZvcmV2ZXIob3B0aW9uczogUHJvY2Vzc1N1cGVydmlzb3JPcHRpb25zKTogUHJvY2Vzc1N1cGVydmlzb3Ige1xuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBsZXQgY2hpbGQ6IENoaWxkUHJvY2VzcyB8IHVuZGVmaW5lZDtcblxuICBjb25zdCB0ZXJtaW5hdGVDaGlsZCA9ICgpID0+IHtcbiAgICBjb25zdCBzdG9wcGluZ0NoaWxkID0gY2hpbGQ7XG4gICAgaWYgKCFzdG9wcGluZ0NoaWxkKSByZXR1cm47XG4gICAgc3RvcHBpbmdDaGlsZC5raWxsKFwiU0lHVEVSTVwiKTtcbiAgICBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gc3RvcHBpbmdDaGlsZC5raWxsKFwiU0lHS0lMTFwiKSxcbiAgICAgIG9wdGlvbnMuc2h1dGRvd25HcmFjZU1zID8/IERFRkFVTFRfU0hVVERPV05fR1JBQ0VfTVMsXG4gICAgKS51bnJlZigpO1xuICB9O1xuXG4gIGNvbnN0IHN0b3AgPSAoKSA9PiB7XG4gICAgaWYgKGNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHJldHVybjtcbiAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgdGVybWluYXRlQ2hpbGQoKTtcbiAgICBwcm9jZXNzLm9mZihcImV4aXRcIiwgb25Qcm9jZXNzRXhpdCk7XG4gIH07XG4gIGNvbnN0IG9uUHJvY2Vzc0V4aXQgPSAoKSA9PiB7XG4gICAgaWYgKGNoaWxkKSBjaGlsZC5raWxsKFwiU0lHVEVSTVwiKTtcbiAgfTtcbiAgcHJvY2Vzcy5vbmNlKFwiZXhpdFwiLCBvblByb2Nlc3NFeGl0KTtcblxuICBjb25zdCBydW4gPSBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGZhaWx1cmVzID0gMDtcbiAgICB3aGlsZSAoIWNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ZWRBdCA9IERhdGUubm93KCk7XG4gICAgICBsZXQgb3V0Y29tZTogUHJvY2Vzc091dGNvbWU7XG4gICAgICB0cnkge1xuICAgICAgICBjaGlsZCA9IGF3YWl0IG9wdGlvbnMuc3RhcnQoKTtcbiAgICAgICAgb3V0Y29tZSA9IGF3YWl0IHByb2Nlc3NPdXRjb21lKGNoaWxkLCBjb250cm9sbGVyLnNpZ25hbCwgb3B0aW9ucyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBvdXRjb21lID0geyBlcnJvciB9O1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgY2hpbGQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAoY29udHJvbGxlci5zaWduYWwuYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgaWYgKERhdGUubm93KCkgLSBzdGFydGVkQXQgPj0gU1RBQkxFX0NPTk5FQ1RJT05fTVMpIGZhaWx1cmVzID0gMDtcbiAgICAgIGNvbnN0IGRlbGF5TXMgPSBhc3luY1Rvb2xzLmJvdW5kZWRSZXRyeURlbGF5KGZhaWx1cmVzKyssIG9wdGlvbnMucmV0cnlEZWxheXNNcyk7XG4gICAgICBvcHRpb25zLmxvZ2dlci53YXJuKGAke29wdGlvbnMubmFtZX0gc3RvcHBlZDsgcmV0cnlpbmdgLCB7IC4uLm91dGNvbWUsIGRlbGF5TXMgfSk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBhc3luY1Rvb2xzLnNsZWVwKGRlbGF5TXMsIGNvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHZvaWQgcnVuKCkuY2F0Y2goKGVycm9yKSA9PiBvcHRpb25zLmxvZ2dlci5lcnJvcihgJHtvcHRpb25zLm5hbWV9IHN1cGVydmlzb3IgZmFpbGVkYCwgeyBlcnJvciB9KSk7XG4gIHJldHVybiB7XG4gICAgc3RvcCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc091dGNvbWUoXG4gIGNoaWxkOiBDaGlsZFByb2Nlc3MsXG4gIHNpZ25hbDogQWJvcnRTaWduYWwsXG4gIG9wdGlvbnM6IFByb2Nlc3NTdXBlcnZpc29yT3B0aW9ucyxcbik6IFByb21pc2U8UHJvY2Vzc091dGNvbWU+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgbGV0IHNldHRsZWQgPSBmYWxzZTtcbiAgICBsZXQgaGVhbHRoVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICAgIGxldCBjb25zZWN1dGl2ZUZhaWx1cmVzID0gMDtcblxuICAgIGNvbnN0IGZpbmlzaCA9IChvdXRjb21lOiBQcm9jZXNzT3V0Y29tZSkgPT4ge1xuICAgICAgaWYgKHNldHRsZWQpIHJldHVybjtcbiAgICAgIHNldHRsZWQgPSB0cnVlO1xuICAgICAgaWYgKGhlYWx0aFRpbWVyKSBjbGVhclRpbWVvdXQoaGVhbHRoVGltZXIpO1xuICAgICAgY2hpbGQub2ZmKFwiZXhpdFwiLCBvbkV4aXQpO1xuICAgICAgY2hpbGQub2ZmKFwiZXJyb3JcIiwgb25FcnJvcik7XG4gICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQpO1xuICAgICAgcmVzb2x2ZShvdXRjb21lKTtcbiAgICB9O1xuICAgIGNvbnN0IG9uRXhpdCA9IChjb2RlOiBudW1iZXIgfCBudWxsLCBleGl0U2lnbmFsOiBOb2RlSlMuU2lnbmFscyB8IG51bGwpID0+XG4gICAgICBmaW5pc2goeyBjb2RlLCBzaWduYWw6IGV4aXRTaWduYWwgfSk7XG4gICAgY29uc3Qgb25FcnJvciA9IChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGNoaWxkLmtpbGwoXCJTSUdURVJNXCIpO1xuICAgICAgZmluaXNoKHsgZXJyb3IgfSk7XG4gICAgfTtcbiAgICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgICAgZmluaXNoKHsgc2lnbmFsOiBcIlNJR1RFUk1cIiB9KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZWR1bGVIZWFsdGhDaGVjayA9IChkZWxheU1zOiBudW1iZXIpID0+IHtcbiAgICAgIGlmICghb3B0aW9ucy5pc0hlYWx0aHkgfHwgc2V0dGxlZCB8fCBzaWduYWwuYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgaGVhbHRoVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdm9pZCBydW5IZWFsdGhDaGVjaygpO1xuICAgICAgfSwgZGVsYXlNcyk7XG4gICAgICBoZWFsdGhUaW1lci51bnJlZj8uKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHJ1bkhlYWx0aENoZWNrID0gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCFvcHRpb25zLmlzSGVhbHRoeSB8fCBzZXR0bGVkIHx8IHNpZ25hbC5hYm9ydGVkKSByZXR1cm47XG4gICAgICBsZXQgaGVhbHRoeSA9IHRydWU7XG4gICAgICB0cnkge1xuICAgICAgICBoZWFsdGh5ID0gYXdhaXQgb3B0aW9ucy5pc0hlYWx0aHkoKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIFByb2JlIGVycm9ycyAoRE5TIGJsaXBzLCB0aW1lb3V0cykgYXJlIG5vdCBwcm9vZiB0aGUgdHVubmVsIGlzIGRlYWQ7XG4gICAgICAgIC8vIG9ubHkgYW4gZXhwbGljaXQgdW5oZWFsdGh5IHJlc3VsdCB0cmlnZ2VycyBhIHJlc3RhcnQuXG4gICAgICAgIG9wdGlvbnMubG9nZ2VyLmRlYnVnKGAke29wdGlvbnMubmFtZX0gaGVhbHRoIHByb2JlIGVycm9yZWQ7IGlnbm9yaW5nYCwgeyBlcnJvciB9KTtcbiAgICAgICAgaGVhbHRoeSA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoc2V0dGxlZCB8fCBzaWduYWwuYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgaWYgKGhlYWx0aHkpIHtcbiAgICAgICAgY29uc2VjdXRpdmVGYWlsdXJlcyA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zZWN1dGl2ZUZhaWx1cmVzICs9IDE7XG4gICAgICAgIGNvbnN0IHRocmVzaG9sZCA9IG9wdGlvbnMuaGVhbHRoQ2hlY2tGYWlsdXJlcyA/PyBERUZBVUxUX0hFQUxUSF9DSEVDS19GQUlMVVJFUztcbiAgICAgICAgb3B0aW9ucy5sb2dnZXIud2FybihgJHtvcHRpb25zLm5hbWV9IHB1YmxpYyBlbmRwb2ludCB1bmhlYWx0aHlgLCB7XG4gICAgICAgICAgY29uc2VjdXRpdmVGYWlsdXJlcyxcbiAgICAgICAgICB0aHJlc2hvbGQsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY29uc2VjdXRpdmVGYWlsdXJlcyA+PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgICBvcHRpb25zLmxvZ2dlci53YXJuKGAke29wdGlvbnMubmFtZX0gcmVzdGFydGluZyBhZnRlciBmYWlsZWQgcHVibGljIGxpdmVuZXNzIHByb2Jlc2ApO1xuICAgICAgICAgIGNoaWxkLmtpbGwoXCJTSUdURVJNXCIpO1xuICAgICAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICAgICAoKSA9PiBjaGlsZC5raWxsKFwiU0lHS0lMTFwiKSxcbiAgICAgICAgICAgIG9wdGlvbnMuc2h1dGRvd25HcmFjZU1zID8/IERFRkFVTFRfU0hVVERPV05fR1JBQ0VfTVMsXG4gICAgICAgICAgKS51bnJlZigpO1xuICAgICAgICAgIGZpbmlzaCh7IHVuaGVhbHRoeTogdHJ1ZSwgc2lnbmFsOiBcIlNJR1RFUk1cIiB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNjaGVkdWxlSGVhbHRoQ2hlY2sob3B0aW9ucy5oZWFsdGhDaGVja0ludGVydmFsTXMgPz8gREVGQVVMVF9IRUFMVEhfQ0hFQ0tfSU5URVJWQUxfTVMpO1xuICAgIH07XG5cbiAgICBjaGlsZC5vbmNlKFwiZXhpdFwiLCBvbkV4aXQpO1xuICAgIGNoaWxkLm9uY2UoXCJlcnJvclwiLCBvbkVycm9yKTtcbiAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICBzY2hlZHVsZUhlYWx0aENoZWNrKG9wdGlvbnMuaGVhbHRoQ2hlY2tHcmFjZU1zID8/IERFRkFVTFRfSEVBTFRIX0NIRUNLX0dSQUNFX01TKTtcbiAgfSk7XG59XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwZXJ2aXNvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBlcnZpc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLElBQUksVUFBVSxFQUFlLE1BQU0sd0JBQXdCLENBQUM7QUFFMUUsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFDcEMsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUM7QUFDekMsbUZBQW1GO0FBQ25GLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDO0FBQzdDLHdFQUF3RTtBQUN4RSxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQztBQUNoRCwrRUFBK0U7QUFDL0UsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFrQ3hDLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxPQUFpQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLElBQUksS0FBK0IsQ0FBQztJQUVwQyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7UUFDMUIsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUMzQixhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLFVBQVUsQ0FDUixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUNuQyxPQUFPLENBQUMsZUFBZSxJQUFJLHlCQUF5QixDQUNyRCxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ2hCLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUN0QyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsY0FBYyxFQUFFLENBQUM7UUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUs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QUVGLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLDZCQUE2QixDQUFDLENBQUM7SUFDbkYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDaGlsZFByb2Nlc3MgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBhc3luYyBhcyBhc3luY1Rvb2xzLCB0eXBlIExvZ2dlciB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5cbmNvbnN0IFNUQUJMRV9DT05ORUNUSU9OX01TID0gNjBfMDAwO1xuY29uc3QgREVGQVVMVF9TSFVURE9XTl9HUkFDRV9NUyA9IDEwXzAwMDtcbi8qKiBIb3cgbG9uZyB0byB3YWl0IGFmdGVyIGEgY2hpbGQgc3RhcnQgYmVmb3JlIHRoZSBmaXJzdCBwdWJsaWMgbGl2ZW5lc3MgcHJvYmUuICovXG5jb25zdCBERUZBVUxUX0hFQUxUSF9DSEVDS19HUkFDRV9NUyA9IDQ1XzAwMDtcbi8qKiBJbnRlcnZhbCBiZXR3ZWVuIHB1YmxpYyBsaXZlbmVzcyBwcm9iZXMgd2hpbGUgYSBjaGlsZCBpcyBydW5uaW5nLiAqL1xuY29uc3QgREVGQVVMVF9IRUFMVEhfQ0hFQ0tfSU5URVJWQUxfTVMgPSAzMF8wMDA7XG4vKiogQ29uc2VjdXRpdmUgZmFpbGVkIHByb2JlcyByZXF1aXJlZCBiZWZvcmUga2lsbGluZyBhIHN0aWxsLXJ1bm5pbmcgY2hpbGQuICovXG5jb25zdCBERUZBVUxUX0hFQUxUSF9DSEVDS19GQUlMVVJFUyA9IDI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1N1cGVydmlzb3Ige1xuICBzdG9wKCk6IHZvaWQ7XG59XG5cbnR5cGUgUHJvY2Vzc091dGNvbWUgPSB7XG4gIGNvZGU/OiBudW1iZXIgfCBudWxsO1xuICBzaWduYWw/OiBOb2RlSlMuU2lnbmFscyB8IG51bGw7XG4gIGVycm9yPzogdW5rbm93bjtcbiAgLyoqIFNldCB3aGVuIHRoZSBzdXBlcnZpc29yIGtpbGxlZCB0aGUgY2hpbGQgYWZ0ZXIgYSBmYWlsZWQgbGl2ZW5lc3MgcHJvYmUuICovXG4gIHVuaGVhbHRoeT86IHRydWU7XG59O1xuXG4vKiogUmV0cnksIHNodXRkb3duLCBhbmQgbGl2ZW5lc3MgcG9saWN5IGZvciBvbmUgc3VwZXJ2aXNlZCBjaGlsZCBwcm9jZXNzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzU3VwZXJ2aXNvck9wdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxvZ2dlcjogTG9nZ2VyO1xuICBzdGFydDogKCkgPT4gQ2hpbGRQcm9jZXNzIHwgUHJvbWlzZTxDaGlsZFByb2Nlc3M+O1xuICByZXRyeURlbGF5c01zPzogcmVhZG9ubHkgbnVtYmVyW107XG4gIHNodXRkb3duR3JhY2VNcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHB1YmxpYyBsaXZlbmVzcyBwcm9iZS4gV2hlbiBpdCByZXR1cm5zIGBmYWxzZWAgd2hpbGUgdGhlIGNoaWxkIGlzXG4gICAqIHN0aWxsIHJ1bm5pbmcsIHRoZSBzdXBlcnZpc29yIGtpbGxzIHRoZSBjaGlsZCBzbyB0aGUgZm9yZXZlci1sb29wIHJlc3RhcnRzXG4gICAqIGl0LiBVc2VkIGJ5IHBvcnRyIHRvIHJlY292ZXIgZnJvbSBhbiBlZGdlIHRoYXQgZHJvcHBlZCB0aGUgc3ViZG9tYWluXG4gICAqIHJlZ2lzdHJhdGlvbiB3aGlsZSB0aGUgbG9jYWwgcHJvY2VzcyBrZXB0IHJ1bm5pbmcgKHNlZVxuICAgKiBgeC1wb3J0ci1lcnJvci1yZWFzb246IHVucmVnaXN0ZXJlZC1zdWJkb21haW5gKS5cbiAgICovXG4gIGlzSGVhbHRoeT86ICgpID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+O1xuICBoZWFsdGhDaGVja0dyYWNlTXM/OiBudW1iZXI7XG4gIGhlYWx0aENoZWNrSW50ZXJ2YWxNcz86IG51bWJlcjtcbiAgaGVhbHRoQ2hlY2tGYWlsdXJlcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cGVydmlzZVByb2Nlc3NGb3JldmVyKG9wdGlvbnM6IFByb2Nlc3NTdXBlcnZpc29yT3B0aW9ucyk6IFByb2Nlc3NTdXBlcnZpc29yIHtcbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgbGV0IGNoaWxkOiBDaGlsZFByb2Nlc3MgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3QgdGVybWluYXRlQ2hpbGQgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RvcHBpbmdDaGlsZCA9IGNoaWxkO1xuICAgIGlmICghc3RvcHBpbmdDaGlsZCkgcmV0dXJuO1xuICAgIHN0b3BwaW5nQ2hpbGQua2lsbChcIlNJR1RFUk1cIik7XG4gICAgc2V0VGltZW91dChcbiAgICAgICgpID0+IHN0b3BwaW5nQ2hpbGQua2lsbChcIlNJR0tJTExcIiksXG4gICAgICBvcHRpb25zLnNodXRkb3duR3JhY2VNcyA/PyBERUZBVUxUX1NIVVRET1dOX0dSQUNFX01TLFxuICAgICkudW5yZWYoKTtcbiAgfTtcblxuICBjb25zdCBzdG9wID0gKCkgPT4ge1xuICAgIGlmIChjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSByZXR1cm47XG4gICAgY29udHJvbGxlci5hYm9ydCgpO1xuICAgIHRlcm1pbmF0ZUNoaWxkKCk7XG4gICAgcHJvY2Vzcy5vZmYoXCJleGl0XCIsIG9uUHJvY2Vzc0V4aXQpO1xuICB9O1xuICBjb25zdCBvblByb2Nlc3NFeGl0ID0gKCkgPT4ge1xuICAgIGlmIChjaGlsZCkgY2hpbGQua2lsbChcIlNJR1RFUk1cIik7XG4gIH07XG4gIHByb2Nlc3Mub25jZShcImV4aXRcIiwgb25Qcm9jZXNzRXhpdCk7XG5cbiAgY29uc3QgcnVuID0gYXN5bmMgKCkgPT4ge1xuICAgIGxldCBmYWlsdXJlcyA9IDA7XG4gICAgd2hpbGUgKCFjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICBjb25zdCBzdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgbGV0IG91dGNvbWU6IFByb2Nlc3NPdXRjb21lO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY2hpbGQgPSBhd2FpdCBvcHRpb25zLnN0YXJ0KCk7XG4gICAgICAgIG91dGNvbWUgPSBhd2FpdCBwcm9jZXNzT3V0Y29tZShjaGlsZCwgY29udHJvbGxlci5zaWduYWwsIG9wdGlvbnMpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgb3V0Y29tZSA9IHsgZXJyb3IgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGNoaWxkID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKGNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHJldHVybjtcbiAgICAgIGlmIChEYXRlLm5vdygpIC0gc3RhcnRlZEF0ID49IFNUQUJMRV9DT05ORUNUSU9OX01TKSBmYWlsdXJlcyA9IDA7XG4gICAgICBjb25zdCBkZWxheU1zID0gYXN5bmNUb29scy5ib3VuZGVkUmV0cnlEZWxheShmYWlsdXJlcysrLCBvcHRpb25zLnJldHJ5RGVsYXlzTXMpO1xuICAgICAgb3B0aW9ucy5sb2dnZXIud2FybihgJHtvcHRpb25zLm5hbWV9IHN0b3BwZWQ7IHJldHJ5aW5nYCwgeyAuLi5vdXRjb21lLCBkZWxheU1zIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYXN5bmNUb29scy5zbGVlcChkZWxheU1zLCBjb250cm9sbGVyLnNpZ25hbCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB2b2lkIHJ1bigpLmNhdGNoKChlcnJvcikgPT4gb3B0aW9ucy5sb2dnZXIuZXJyb3IoYCR7b3B0aW9ucy5uYW1lfSBzdXBlcnZpc29yIGZhaWxlZGAsIHsgZXJyb3IgfSkpO1xuICByZXR1cm4ge1xuICAgIHN0b3AsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NPdXRjb21lKFxuICBjaGlsZDogQ2hpbGRQcm9jZXNzLFxuICBzaWduYWw6IEFib3J0U2lnbmFsLFxuICBvcHRpb25zOiBQcm9jZXNzU3VwZXJ2aXNvck9wdGlvbnMsXG4pOiBQcm9taXNlPFByb2Nlc3NPdXRjb21lPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGxldCBzZXR0bGVkID0gZmFsc2U7XG4gICAgbGV0IGhlYWx0aFRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZDtcbiAgICBsZXQgY29uc2VjdXRpdmVGYWlsdXJlcyA9IDA7XG5cbiAgICBjb25zdCBmaW5pc2ggPSAob3V0Y29tZTogUHJvY2Vzc091dGNvbWUpID0+IHtcbiAgICAgIGlmIChzZXR0bGVkKSByZXR1cm47XG4gICAgICBzZXR0bGVkID0gdHJ1ZTtcbiAgICAgIGlmIChoZWFsdGhUaW1lcikgY2xlYXJUaW1lb3V0KGhlYWx0aFRpbWVyKTtcbiAgICAgIGNoaWxkLm9mZihcImV4aXRcIiwgb25FeGl0KTtcbiAgICAgIGNoaWxkLm9mZihcImVycm9yXCIsIG9uRXJyb3IpO1xuICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0KTtcbiAgICAgIHJlc29sdmUob3V0Y29tZSk7XG4gICAgfTtcbiAgICBjb25zdCBvbkV4aXQgPSAoY29kZTogbnVtYmVyIHwgbnVsbCwgZXhpdFNpZ25hbDogTm9kZUpTLlNpZ25hbHMgfCBudWxsKSA9PlxuICAgICAgZmluaXNoKHsgY29kZSwgc2lnbmFsOiBleGl0U2lnbmFsIH0pO1xuICAgIGNvbnN0IG9uRXJyb3IgPSAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBjaGlsZC5raWxsKFwiU0lHVEVSTVwiKTtcbiAgICAgIGZpbmlzaCh7IGVycm9yIH0pO1xuICAgIH07XG4gICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgIGZpbmlzaCh7IHNpZ25hbDogXCJTSUdURVJNXCIgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVkdWxlSGVhbHRoQ2hlY2sgPSAoZGVsYXlNczogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnMuaXNIZWFsdGh5IHx8IHNldHRsZWQgfHwgc2lnbmFsLmFib3J0ZWQpIHJldHVybjtcbiAgICAgIGhlYWx0aFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHZvaWQgcnVuSGVhbHRoQ2hlY2soKTtcbiAgICAgIH0sIGRlbGF5TXMpO1xuICAgICAgaGVhbHRoVGltZXIudW5yZWY/LigpO1xuICAgIH07XG5cbiAgICBjb25zdCBydW5IZWFsdGhDaGVjayA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmICghb3B0aW9ucy5pc0hlYWx0aHkgfHwgc2V0dGxlZCB8fCBzaWduYWwuYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgbGV0IGhlYWx0aHkgPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgaGVhbHRoeSA9IGF3YWl0IG9wdGlvbnMuaXNIZWFsdGh5KCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBQcm9iZSBlcnJvcnMgKEROUyBibGlwcywgdGltZW91dHMpIGFyZSBub3QgcHJvb2YgdGhlIHR1bm5lbCBpcyBkZWFkO1xuICAgICAgICAvLyBvbmx5IGFuIGV4cGxpY2l0IHVuaGVhbHRoeSByZXN1bHQgdHJpZ2dlcnMgYSByZXN0YXJ0LlxuICAgICAgICBvcHRpb25zLmxvZ2dlci5kZWJ1ZyhgJHtvcHRpb25zLm5hbWV9IGhlYWx0aCBwcm9iZSBlcnJvcmVkOyBpZ25vcmluZ2AsIHsgZXJyb3IgfSk7XG4gICAgICAgIGhlYWx0aHkgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHNldHRsZWQgfHwgc2lnbmFsLmFib3J0ZWQpIHJldHVybjtcbiAgICAgIGlmIChoZWFsdGh5KSB7XG4gICAgICAgIGNvbnNlY3V0aXZlRmFpbHVyZXMgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc2VjdXRpdmVGYWlsdXJlcyArPSAxO1xuICAgICAgICBjb25zdCB0aHJlc2hvbGQgPSBvcHRpb25zLmhlYWx0aENoZWNrRmFpbHVyZXMgPz8gREVGQVVMVF9IRUFMVEhfQ0hFQ0tfRkFJTFVSRVM7XG4gICAgICAgIG9wdGlvbnMubG9nZ2VyLndhcm4oYCR7b3B0aW9ucy5uYW1lfSBwdWJsaWMgZW5kcG9pbnQgdW5oZWFsdGh5YCwge1xuICAgICAgICAgIGNvbnNlY3V0aXZlRmFpbHVyZXMsXG4gICAgICAgICAgdGhyZXNob2xkLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNvbnNlY3V0aXZlRmFpbHVyZXMgPj0gdGhyZXNob2xkKSB7XG4gICAgICAgICAgb3B0aW9ucy5sb2dnZXIud2FybihgJHtvcHRpb25zLm5hbWV9IHJlc3RhcnRpbmcgYWZ0ZXIgZmFpbGVkIHB1YmxpYyBsaXZlbmVzcyBwcm9iZXNgKTtcbiAgICAgICAgICBjaGlsZC5raWxsKFwiU0lHVEVSTVwiKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAgICAgKCkgPT4gY2hpbGQua2lsbChcIlNJR0tJTExcIiksXG4gICAgICAgICAgICBvcHRpb25zLnNodXRkb3duR3JhY2VNcyA/PyBERUZBVUxUX1NIVVRET1dOX0dSQUNFX01TLFxuICAgICAgICAgICkudW5yZWYoKTtcbiAgICAgICAgICBmaW5pc2goeyB1bmhlYWx0aHk6IHRydWUsIHNpZ25hbDogXCJTSUdURVJNXCIgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzY2hlZHVsZUhlYWx0aENoZWNrKG9wdGlvbnMuaGVhbHRoQ2hlY2tJbnRlcnZhbE1zID8/IERFRkFVTFRfSEVBTFRIX0NIRUNLX0lOVEVSVkFMX01TKTtcbiAgICB9O1xuXG4gICAgY2hpbGQub25jZShcImV4aXRcIiwgb25FeGl0KTtcbiAgICBjaGlsZC5vbmNlKFwiZXJyb3JcIiwgb25FcnJvcik7XG4gICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG4gICAgc2NoZWR1bGVIZWFsdGhDaGVjayhvcHRpb25zLmhlYWx0aENoZWNrR3JhY2VNcyA/PyBERUZBVUxUX0hFQUxUSF9DSEVDS19HUkFDRV9NUyk7XG4gIH0pO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -19,21 +19,21 @@
|
|
|
19
19
|
"projen": "projen"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@dbx-tools/email": "0.6.
|
|
22
|
+
"@dbx-tools/email": "0.6.217",
|
|
23
23
|
"@types/bun": "1.3.14",
|
|
24
24
|
"@types/node": "^24.6.0",
|
|
25
25
|
"typescript": "^5.9.3"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@dbx-tools/email": "0.6.
|
|
28
|
+
"@dbx-tools/email": "0.6.217"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@databricks/appkit": "^0.60.0",
|
|
32
|
-
"@dbx-tools/appkit": "0.6.
|
|
33
|
-
"@dbx-tools/auth-gate": "0.6.
|
|
34
|
-
"@dbx-tools/core": "0.6.
|
|
35
|
-
"@dbx-tools/shared-auth": "0.6.
|
|
36
|
-
"@dbx-tools/shared-core": "0.6.
|
|
32
|
+
"@dbx-tools/appkit": "0.6.217",
|
|
33
|
+
"@dbx-tools/auth-gate": "0.6.217",
|
|
34
|
+
"@dbx-tools/core": "0.6.217",
|
|
35
|
+
"@dbx-tools/shared-auth": "0.6.217",
|
|
36
|
+
"@dbx-tools/shared-core": "0.6.217",
|
|
37
37
|
"@types/express": "^5.0.5",
|
|
38
38
|
"http-proxy-3": "^1.23.1"
|
|
39
39
|
},
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"./package.json": "./package.json"
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
|
-
"version": "0.6.
|
|
54
|
+
"version": "0.6.217",
|
|
55
55
|
"types": "./lib/index.d.ts",
|
|
56
56
|
"type": "module",
|
|
57
57
|
"exports": {
|
package/src/interceptor.ts
CHANGED
|
@@ -33,6 +33,8 @@ export interface TunnelInterceptorOptions {
|
|
|
33
33
|
publicDomain?: string;
|
|
34
34
|
/** portr subdomain (else derived from {@link publicDomain}). */
|
|
35
35
|
subdomain?: string;
|
|
36
|
+
/** Portr SSH control endpoint. Env `PORTR_SSH_URL`; defaults to the Portr host on port `4444`. */
|
|
37
|
+
portrSshUrl?: string;
|
|
36
38
|
/**
|
|
37
39
|
* The PUBLIC port portr forwards to - the port the app itself listens on.
|
|
38
40
|
* Defaults to the Databricks Apps runtime contract `DATABRICKS_APP_PORT`
|
|
@@ -143,6 +145,7 @@ export function tunnelInterceptor(
|
|
|
143
145
|
const portrConfig = resolvePortrConfig({
|
|
144
146
|
publicDomain: options.publicDomain,
|
|
145
147
|
subdomain: options.subdomain,
|
|
148
|
+
sshUrl: options.portrSshUrl,
|
|
146
149
|
port,
|
|
147
150
|
});
|
|
148
151
|
if (portrConfig) {
|
package/src/portr.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @module
|
|
11
11
|
*/
|
|
12
12
|
import { execFile, spawn } from "node:child_process";
|
|
13
|
-
import { writeFile } from "node:fs/promises";
|
|
13
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
14
14
|
import os from "node:os";
|
|
15
15
|
import { delimiter, join } from "node:path";
|
|
16
16
|
import { Transform } from "node:stream";
|
|
@@ -59,6 +59,7 @@ export interface PortrInstallOptions {
|
|
|
59
59
|
export interface PortrConfig {
|
|
60
60
|
subdomain: string;
|
|
61
61
|
server: string;
|
|
62
|
+
sshUrl: string;
|
|
62
63
|
token: string;
|
|
63
64
|
port: number;
|
|
64
65
|
}
|
|
@@ -72,6 +73,7 @@ export interface PortrConfig {
|
|
|
72
73
|
export function resolvePortrConfig(opts: {
|
|
73
74
|
publicDomain?: string;
|
|
74
75
|
subdomain?: string;
|
|
76
|
+
sshUrl?: string;
|
|
75
77
|
token?: string;
|
|
76
78
|
port: number;
|
|
77
79
|
}): PortrConfig | undefined {
|
|
@@ -87,7 +89,8 @@ export function resolvePortrConfig(opts: {
|
|
|
87
89
|
}
|
|
88
90
|
server ??= config.text("PORTR_SERVER");
|
|
89
91
|
if (!subdomain || !server || server === domain) return undefined;
|
|
90
|
-
|
|
92
|
+
const sshUrl = config.string(opts.sshUrl, "PORTR_SSH_URL") ?? `${server}:4444`;
|
|
93
|
+
return { subdomain, server, sshUrl, token, port: opts.port };
|
|
91
94
|
}
|
|
92
95
|
|
|
93
96
|
/** GitHub release asset name for the current or supplied OS/architecture. */
|
|
@@ -136,12 +139,14 @@ export async function writePortrConfig(
|
|
|
136
139
|
config: PortrConfig,
|
|
137
140
|
childEnv: NodeJS.ProcessEnv,
|
|
138
141
|
): Promise<void> {
|
|
139
|
-
const
|
|
142
|
+
const directory = join(childEnv.HOME ?? os.homedir(), ".portr");
|
|
143
|
+
const path = join(directory, "config.yaml");
|
|
144
|
+
await mkdir(directory, { recursive: true });
|
|
140
145
|
await writeFile(
|
|
141
146
|
path,
|
|
142
147
|
[
|
|
143
148
|
`server_url: ${config.server}`,
|
|
144
|
-
`ssh_url: ${config.
|
|
149
|
+
`ssh_url: ${config.sshUrl}`,
|
|
145
150
|
`secret_key: ${config.token}`,
|
|
146
151
|
"disable_dashboard: true",
|
|
147
152
|
"disable_tui: true",
|