@dbx-tools/shared-core 0.9.43 → 0.9.47
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/index.ts +3 -2
- package/lib/index.d.ts +3 -2
- package/lib/index.js +3 -2
- package/lib/src/bindings.d.ts +10 -0
- package/lib/src/bindings.js +15 -0
- package/lib/src/log.d.ts +2 -0
- package/lib/src/log.js +2 -2
- package/lib/src/options.d.ts +39 -8
- package/lib/src/options.js +127 -79
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -2
- package/src/bindings.ts +17 -0
- package/src/log.ts +1 -1
- package/src/options.ts +230 -83
package/index.ts
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
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/shared-core";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.47";
|
|
7
7
|
export * as asyncUtils from "./src/async-utils.ts";
|
|
8
|
+
export * as bindings from "./src/bindings.ts";
|
|
8
9
|
export * as brandUtils from "./src/brand-utils.ts";
|
|
9
10
|
export * as environmentUtils from "./src/environment-utils.ts";
|
|
10
11
|
export * as errorUtils from "./src/error-utils.ts";
|
|
@@ -32,7 +33,7 @@ export type { LogLevel, Logger } from "./src/log.ts";
|
|
|
32
33
|
export type { UrlLike, IpVersion, ParsedIp, Cidr, UrlBuilder, ParseEmailsOptions } from "./src/net.ts";
|
|
33
34
|
export type { Sequence, Container, Collection, OneOrMany, NameLike, NonFunctionKeys, SerializablePrimitive, SerializableValue, ToNumberOptions, ToDateOptions, ToDurationOptions, DeepEqualComparator } from "./src/object.ts";
|
|
34
35
|
export { DatabricksEnvironmentNamesSchema, databricksEnvironmentNames, MAX_TCP_PORT, tcpPortSchema, tcpPortOrZeroSchema, normalizedUrlSchema, DatabricksOptionsSchema, LakebaseOptionsSchema } from "./src/options.ts";
|
|
35
|
-
export type { DatabricksEnvironmentNames, DatabricksOptions, OptionSerializationFormat, LakebaseOptions, OptionValueMap, ListenAddress, ListenAddressOptions } from "./src/options.ts";
|
|
36
|
+
export type { DatabricksEnvironmentNames, DatabricksOptions, OptionSerializationFormat, NamespacedOptionShape, LakebaseOptions, OptionValueMap, ListenScheme, TcpListenAddress, UnixListenAddress, ListenAddress, ListenAddressOptions, ListenAddressInput } from "./src/options.ts";
|
|
36
37
|
export type { PatternOptions } from "./src/pattern.ts";
|
|
37
38
|
export type { PredicateFunction, TypePredicateFunction, PredicateInput, Predicate } from "./src/predicate.ts";
|
|
38
39
|
export type { TokenizeOptions, KeyOptions, IdentifierOptions, DedentOptions, Description } from "./src/string-utils.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-core";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.47";
|
|
3
3
|
export * as asyncUtils from "./src/async-utils.ts";
|
|
4
|
+
export * as bindings from "./src/bindings.ts";
|
|
4
5
|
export * as brandUtils from "./src/brand-utils.ts";
|
|
5
6
|
export * as environmentUtils from "./src/environment-utils.ts";
|
|
6
7
|
export * as errorUtils from "./src/error-utils.ts";
|
|
@@ -28,7 +29,7 @@ export type { LogLevel, Logger } from "./src/log.ts";
|
|
|
28
29
|
export type { UrlLike, IpVersion, ParsedIp, Cidr, UrlBuilder, ParseEmailsOptions } from "./src/net.ts";
|
|
29
30
|
export type { Sequence, Container, Collection, OneOrMany, NameLike, NonFunctionKeys, SerializablePrimitive, SerializableValue, ToNumberOptions, ToDateOptions, ToDurationOptions, DeepEqualComparator } from "./src/object.ts";
|
|
30
31
|
export { DatabricksEnvironmentNamesSchema, databricksEnvironmentNames, MAX_TCP_PORT, tcpPortSchema, tcpPortOrZeroSchema, normalizedUrlSchema, DatabricksOptionsSchema, LakebaseOptionsSchema } from "./src/options.ts";
|
|
31
|
-
export type { DatabricksEnvironmentNames, DatabricksOptions, OptionSerializationFormat, LakebaseOptions, OptionValueMap, ListenAddress, ListenAddressOptions } from "./src/options.ts";
|
|
32
|
+
export type { DatabricksEnvironmentNames, DatabricksOptions, OptionSerializationFormat, NamespacedOptionShape, LakebaseOptions, OptionValueMap, ListenScheme, TcpListenAddress, UnixListenAddress, ListenAddress, ListenAddressOptions, ListenAddressInput } from "./src/options.ts";
|
|
32
33
|
export type { PatternOptions } from "./src/pattern.ts";
|
|
33
34
|
export type { PredicateFunction, TypePredicateFunction, PredicateInput, Predicate } from "./src/predicate.ts";
|
|
34
35
|
export type { TokenizeOptions, KeyOptions, IdentifierOptions, DedentOptions, Description } from "./src/string-utils.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
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/shared-core";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.47";
|
|
6
6
|
export * as asyncUtils from "./src/async-utils.js";
|
|
7
|
+
export * as bindings from "./src/bindings.js";
|
|
7
8
|
export * as brandUtils from "./src/brand-utils.js";
|
|
8
9
|
export * as environmentUtils from "./src/environment-utils.js";
|
|
9
10
|
export * as errorUtils from "./src/error-utils.js";
|
|
@@ -23,4 +24,4 @@ export * as token from "./src/token.js";
|
|
|
23
24
|
export { DEFAULT_BRAND_ASSETS, BrandAssetSetSchema, BrandColorsSchema, BrandVoiceSchema, BrandContextSchema, defaultBrandContext } from "./src/brand-utils.js";
|
|
24
25
|
export { DatabricksEnvironmentNamesSchema, databricksEnvironmentNames, MAX_TCP_PORT, tcpPortSchema, tcpPortOrZeroSchema, normalizedUrlSchema, DatabricksOptionsSchema, LakebaseOptionsSchema } from "./src/options.js";
|
|
25
26
|
export { ACCESS_TOKEN_HEADER, USER_ID_HEADER, USER_EMAIL_HEADER } from "./src/token.js";
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEtBQUssVUFBVSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLGFBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVMvSixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsMEJBQTBCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS3ZOLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS40N1wiO1xuZXhwb3J0ICogYXMgYXN5bmNVdGlscyBmcm9tIFwiLi9zcmMvYXN5bmMtdXRpbHMudHNcIjtcbmV4cG9ydCAqIGFzIGJpbmRpbmdzIGZyb20gXCIuL3NyYy9iaW5kaW5ncy50c1wiO1xuZXhwb3J0ICogYXMgYnJhbmRVdGlscyBmcm9tIFwiLi9zcmMvYnJhbmQtdXRpbHMudHNcIjtcbmV4cG9ydCAqIGFzIGVudmlyb25tZW50VXRpbHMgZnJvbSBcIi4vc3JjL2Vudmlyb25tZW50LXV0aWxzLnRzXCI7XG5leHBvcnQgKiBhcyBlcnJvclV0aWxzIGZyb20gXCIuL3NyYy9lcnJvci11dGlscy50c1wiO1xuZXhwb3J0ICogYXMgZXhlY3V0aW9uIGZyb20gXCIuL3NyYy9leGVjdXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZ1bmN0aW9uVXRpbHMgZnJvbSBcIi4vc3JjL2Z1bmN0aW9uLXV0aWxzLnRzXCI7XG5leHBvcnQgKiBhcyBoYXNoIGZyb20gXCIuL3NyYy9oYXNoLnRzXCI7XG5leHBvcnQgKiBhcyBodHRwIGZyb20gXCIuL3NyYy9odHRwLnRzXCI7XG5leHBvcnQgKiBhcyBqc29uIGZyb20gXCIuL3NyYy9qc29uLnRzXCI7XG5leHBvcnQgKiBhcyBsb2cgZnJvbSBcIi4vc3JjL2xvZy50c1wiO1xuZXhwb3J0ICogYXMgbmV0IGZyb20gXCIuL3NyYy9uZXQudHNcIjtcbmV4cG9ydCAqIGFzIG9iamVjdCBmcm9tIFwiLi9zcmMvb2JqZWN0LnRzXCI7XG5leHBvcnQgKiBhcyBvcHRpb25zIGZyb20gXCIuL3NyYy9vcHRpb25zLnRzXCI7XG5leHBvcnQgKiBhcyBwYXR0ZXJuIGZyb20gXCIuL3NyYy9wYXR0ZXJuLnRzXCI7XG5leHBvcnQgKiBhcyBwcmVkaWNhdGUgZnJvbSBcIi4vc3JjL3ByZWRpY2F0ZS50c1wiO1xuZXhwb3J0ICogYXMgc3RyaW5nVXRpbHMgZnJvbSBcIi4vc3JjL3N0cmluZy11dGlscy50c1wiO1xuZXhwb3J0ICogYXMgdG9rZW4gZnJvbSBcIi4vc3JjL3Rva2VuLnRzXCI7XG5leHBvcnQgdHlwZSB7IENvbmN1cnJlbnRFcnJvck1vZGUsIE1hcENvbmN1cnJlbnRPcHRpb25zLCBQb2xsQ29udGV4dCwgUG9sbFByb2R1Y2VyLCBQb2xsT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9hc3luYy11dGlscy50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9CUkFORF9BU1NFVFMsIEJyYW5kQXNzZXRTZXRTY2hlbWEsIEJyYW5kQ29sb3JzU2NoZW1hLCBCcmFuZFZvaWNlU2NoZW1hLCBCcmFuZENvbnRleHRTY2hlbWEsIGRlZmF1bHRCcmFuZENvbnRleHQgfSBmcm9tIFwiLi9zcmMvYnJhbmQtdXRpbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnJhbmRDb250ZXh0LCBCcmFuZENvbnRleHRJbnB1dCwgQnJhbmRBc3NldFNldCB9IGZyb20gXCIuL3NyYy9icmFuZC11dGlscy50c1wiO1xuZXhwb3J0IHR5cGUgeyBFcnJvckNvbnRleHQgfSBmcm9tIFwiLi9zcmMvZXJyb3ItdXRpbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgRXhlY3V0aW9uUmVzdWx0LCBFeGVjdXRvciwgRXhlY3V0aW9uRmFpbHVyZSwgUnVuT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9leGVjdXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgTWVtb2l6ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZnVuY3Rpb24tdXRpbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgSGVhZGVyTGlrZSB9IGZyb20gXCIuL3NyYy9odHRwLnRzXCI7XG5leHBvcnQgdHlwZSB7IExvZ0xldmVsLCBMb2dnZXIgfSBmcm9tIFwiLi9zcmMvbG9nLnRzXCI7XG5leHBvcnQgdHlwZSB7IFVybExpa2UsIElwVmVyc2lvbiwgUGFyc2VkSXAsIENpZHIsIFVybEJ1aWxkZXIsIFBhcnNlRW1haWxzT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9uZXQudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2VxdWVuY2UsIENvbnRhaW5lciwgQ29sbGVjdGlvbiwgT25lT3JNYW55LCBOYW1lTGlrZSwgTm9uRnVuY3Rpb25LZXlzLCBTZXJpYWxpemFibGVQcmltaXRpdmUsIFNlcmlhbGl6YWJsZVZhbHVlLCBUb051bWJlck9wdGlvbnMsIFRvRGF0ZU9wdGlvbnMsIFRvRHVyYXRpb25PcHRpb25zLCBEZWVwRXF1YWxDb21wYXJhdG9yIH0gZnJvbSBcIi4vc3JjL29iamVjdC50c1wiO1xuZXhwb3J0IHsgRGF0YWJyaWNrc0Vudmlyb25tZW50TmFtZXNTY2hlbWEsIGRhdGFicmlja3NFbnZpcm9ubWVudE5hbWVzLCBNQVhfVENQX1BPUlQsIHRjcFBvcnRTY2hlbWEsIHRjcFBvcnRPclplcm9TY2hlbWEsIG5vcm1hbGl6ZWRVcmxTY2hlbWEsIERhdGFicmlja3NPcHRpb25zU2NoZW1hLCBMYWtlYmFzZU9wdGlvbnNTY2hlbWEgfSBmcm9tIFwiLi9zcmMvb3B0aW9ucy50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzRW52aXJvbm1lbnROYW1lcywgRGF0YWJyaWNrc09wdGlvbnMsIE9wdGlvblNlcmlhbGl6YXRpb25Gb3JtYXQsIE5hbWVzcGFjZWRPcHRpb25TaGFwZSwgTGFrZWJhc2VPcHRpb25zLCBPcHRpb25WYWx1ZU1hcCwgTGlzdGVuU2NoZW1lLCBUY3BMaXN0ZW5BZGRyZXNzLCBVbml4TGlzdGVuQWRkcmVzcywgTGlzdGVuQWRkcmVzcywgTGlzdGVuQWRkcmVzc09wdGlvbnMsIExpc3RlbkFkZHJlc3NJbnB1dCB9IGZyb20gXCIuL3NyYy9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IFBhdHRlcm5PcHRpb25zIH0gZnJvbSBcIi4vc3JjL3BhdHRlcm4udHNcIjtcbmV4cG9ydCB0eXBlIHsgUHJlZGljYXRlRnVuY3Rpb24sIFR5cGVQcmVkaWNhdGVGdW5jdGlvbiwgUHJlZGljYXRlSW5wdXQsIFByZWRpY2F0ZSB9IGZyb20gXCIuL3NyYy9wcmVkaWNhdGUudHNcIjtcbmV4cG9ydCB0eXBlIHsgVG9rZW5pemVPcHRpb25zLCBLZXlPcHRpb25zLCBJZGVudGlmaWVyT3B0aW9ucywgRGVkZW50T3B0aW9ucywgRGVzY3JpcHRpb24gfSBmcm9tIFwiLi9zcmMvc3RyaW5nLXV0aWxzLnRzXCI7XG5leHBvcnQgeyBBQ0NFU1NfVE9LRU5fSEVBREVSLCBVU0VSX0lEX0hFQURFUiwgVVNFUl9FTUFJTF9IRUFERVIgfSBmcm9tIFwiLi9zcmMvdG9rZW4udHNcIjtcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binding-safe access to the shared logging threshold.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { type LogLevel } from "./log.ts";
|
|
7
|
+
/** Return the active logging threshold. */
|
|
8
|
+
export declare function logActiveLevel(): LogLevel;
|
|
9
|
+
/** Return whether the current logging threshold enables `level`. */
|
|
10
|
+
export declare function logLevelEnabled(level: LogLevel): boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binding-safe access to the shared logging threshold.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { activeLevel, isLevelEnabled } from "./log.js";
|
|
7
|
+
/** Return the active logging threshold. */
|
|
8
|
+
export function logActiveLevel() {
|
|
9
|
+
return activeLevel();
|
|
10
|
+
}
|
|
11
|
+
/** Return whether the current logging threshold enables `level`. */
|
|
12
|
+
export function logLevelEnabled(level) {
|
|
13
|
+
return isLevelEnabled(level);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluZGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFpQixNQUFNLFVBQVUsQ0FBQztBQUV0RSwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLGNBQWM7SUFDNUIsT0FBTyxXQUFXLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBZTtJQUM3QyxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCaW5kaW5nLXNhZmUgYWNjZXNzIHRvIHRoZSBzaGFyZWQgbG9nZ2luZyB0aHJlc2hvbGQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGFjdGl2ZUxldmVsLCBpc0xldmVsRW5hYmxlZCwgdHlwZSBMb2dMZXZlbCB9IGZyb20gXCIuL2xvZy50c1wiO1xuXG4vKiogUmV0dXJuIHRoZSBhY3RpdmUgbG9nZ2luZyB0aHJlc2hvbGQuICovXG5leHBvcnQgZnVuY3Rpb24gbG9nQWN0aXZlTGV2ZWwoKTogTG9nTGV2ZWwge1xuICByZXR1cm4gYWN0aXZlTGV2ZWwoKTtcbn1cblxuLyoqIFJldHVybiB3aGV0aGVyIHRoZSBjdXJyZW50IGxvZ2dpbmcgdGhyZXNob2xkIGVuYWJsZXMgYGxldmVsYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dMZXZlbEVuYWJsZWQobGV2ZWw6IExvZ0xldmVsKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0xldmVsRW5hYmxlZChsZXZlbCk7XG59XG4iXX0=
|
package/lib/src/log.d.ts
CHANGED
|
@@ -54,6 +54,8 @@ export type Logger = {
|
|
|
54
54
|
/** Start / in-progress message emitted at `info` level. */
|
|
55
55
|
start: (...args: any[]) => void;
|
|
56
56
|
};
|
|
57
|
+
/** Active threshold from `process.env.LOG_LEVEL`, default {@link DEFAULT_LEVEL}. */
|
|
58
|
+
export declare function activeLevel(): LogLevel;
|
|
57
59
|
/**
|
|
58
60
|
* Whether a call at `level` would be emitted at the current
|
|
59
61
|
* `process.env.LOG_LEVEL` threshold. Use before building expensive debug
|
package/lib/src/log.js
CHANGED
|
@@ -265,7 +265,7 @@ function parseLogLevel(raw) {
|
|
|
265
265
|
return undefined;
|
|
266
266
|
}
|
|
267
267
|
/** Active threshold from `process.env.LOG_LEVEL`, default {@link DEFAULT_LEVEL}. */
|
|
268
|
-
function activeLevel() {
|
|
268
|
+
export function activeLevel() {
|
|
269
269
|
return parseLogLevel(globalProcess?.env?.LOG_LEVEL) ?? DEFAULT_LEVEL;
|
|
270
270
|
}
|
|
271
271
|
/**
|
|
@@ -331,4 +331,4 @@ export function logger(loggerName) {
|
|
|
331
331
|
const name = extractLoggerName(loggerName);
|
|
332
332
|
return createLogger(name);
|
|
333
333
|
}
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHOzs7Ozs7Ozs7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFjdkQsTUFBTSxhQUFhLEdBQUksVUFBd0MsQ0FBQyxPQUFPLENBQUM7QUFDeEUsTUFBTSxTQUFTLEdBQUksVUFBZ0MsQ0FBQyxHQUFHLENBQUM7QUFFeEQ7Ozs7O0dBS0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxtQkFBbUIsR0FDdkIsYUFBYSxJQUFJLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEtBQUssVUFBVTtJQUNoRSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU07SUFDdEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUVoQixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBQy9ELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ3ZDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUNyQixDQUFDO0FBQzlCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDekMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ3ZCLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLE9BQU87SUFDL0IsUUFBUSxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssTUFBTTtZQUNULEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxPQUFPO1lBQzNCLE1BQU07UUFDUixL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RUFBRSxhQUF1QjtJQUN2RCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxLQUFLLEtBQUssU0FBUztRQUFFLE9BQU8sYUFBYSxJQUFJLEtBQUssQ0FBQztJQUN2RCxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFlO0lBQzVDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLGlCQUFpQixHQUFHLHdEQUF3RCxDQUFDO0FBRW5GOzs7OztHQUtHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxVQUF5QztJQUNsRSxJQUFJLENBQUMsVUFBVTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ2xDLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxVQUF5QztJQUM5RCxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUYWdnZWQsIGxldmVsZWQgbG9nZ2luZyBmb3IgZXZlcnkgcnVudGltZSAtIHRoZSBvbmUgbG9nZ2VyIHRoZSB3aG9sZVxuICogbW9ub3JlcG8gc2hhcmVzLlxuICpcbiAqIEltcG9ydCB0aGlzIG1vZHVsZSBpbnN0ZWFkIG9mIGNvbnN0cnVjdGluZyBwYWNrYWdlLWxvY2FsIGNvbnNvbGUgd3JhcHBlcnMgc29cbiAqIGxvZyBsZXZlbHMsIHRhZ3MsIGZvcm1hdHRpbmcsIGFuZCBicm93c2VyIGJlaGF2aW9yIHJlbWFpbiBjb25zaXN0ZW50LlxuICpcbiAqIHtAbGluayBsb2dnZXJ9IHJlc29sdmVzIGEgdGFnZ2VkIHtAbGluayBMb2dnZXJ9IHRocm91Z2ggYSBzeW5jaHJvbm91cyBjb25zb2xlXG4gKiBzaW5rLCB0aGVuIHVwZ3JhZGVzIGl0cyBzZXJ2ZXItc2lkZSBmb3JtYXR0ZXIgd2hlbiBgbm9kZTp1dGlsYCByZXNvbHZlcy5cbiAqIEtlZXBpbmcgdGhlIHNpbmsgZGVwZW5kZW5jeS1mcmVlIHByZXZlbnRzIGJyb3dzZXIgYnVuZGxlcnMgZnJvbSByZXRhaW5pbmcgYW5cbiAqIG9wdGlvbmFsIGJhcmUgaW1wb3J0IHRoYXQgZG93bnN0cmVhbSBhcHBzIHdvdWxkIHN0aWxsIGhhdmUgdG8gaW5zdGFsbC5cbiAqIHtAbGluayBMb2dMZXZlbH0gZmlsdGVyaW5nIHJ1bnMgdGhyb3VnaCB7QGxpbmsgc2hvdWxkRW1pdH0gaW4gcGVyLWxldmVsXG4gKiB3cmFwcGVycyBhcm91bmQgdGhlIHBsYXRmb3JtIGNvbnNvbGUgb3Igc3RkZXJyIHNpbmsuXG4gKlxuICogVGhlIGNvbnNvbGUgZmFsbGJhY2sgd3JpdGVzIGZvcm1hdHRlZCBsaW5lcyB0byBgcHJvY2Vzcy5zdGRlcnJgIHdoZW4gaXQgaXNcbiAqIGF2YWlsYWJsZSAoQnVuIGBpbnNwZWN0YCBwZXIgYXJndW1lbnQgd2hlbiBgTE9HX0JVTl9DT05TT0xFX0RJU0FCTEVEYCBpc1xuICogdW5zZXQsIG90aGVyd2lzZSBgbm9kZTp1dGlsYCBgZm9ybWF0V2l0aE9wdGlvbnNgKSwgb3IgZGVsZWdhdGVzIHRvIGdsb2JhbFxuICogYGNvbnNvbGUuKmAgd2hlbiBzdGRlcnIgb3IgYG5vZGU6dXRpbGAgaXMgdW5hdmFpbGFibGUuIEJyb3dzZXIgaG9zdHMgb21pdFxuICogdGhlIGBMRVZFTGAgdGV4dCBwcmVmaXggKGRldnRvb2xzIHNob3cgc2V2ZXJpdHkpIGFuZCBrZWVwIG9ubHkgdGhlIGBbbmFtZV1gXG4gKiB0YWcuXG4gKlxuICogRW52IHRvZ2dsZXM6IGBMT0dfTEVWRUxgIChyZWFkIHBlciBjYWxsKSBhbmQgYExPR19CVU5fQ09OU09MRV9ESVNBQkxFRGBcbiAqIChyZWFkIG9uY2UgZHVyaW5nIGZhY3RvcnkgaW5pdCkuXG4gKlxuICogQnJvd3Nlci1zYWZlOiBgcHJvY2Vzc2AgLyBgQnVuYCAvIGB3aW5kb3dgIC8gYGRvY3VtZW50YCBhcmUgYWxsIHJlYWNoZWRcbiAqIHRocm91Z2ggYGdsb2JhbFRoaXNgIGFuZCBndWFyZGVkLCBhbmQgYG5vZGU6dXRpbGAgaXMgaW1wb3J0ZWQgT05MWSBvbiBhIGhvc3RcbiAqIHRoYXQgaGFzIGBwcm9jZXNzLnN0ZGVycmAgLSBuZXZlciBpbiBhIGJyb3dzZXIsIHdoZXJlIHRoZSBzcGVjaWZpZXIgaXNcbiAqIHVucmVzb2x2YWJsZSAtIHNvIHRoZSBtb2R1bGUgd29ya3MgaW4gYW55IHJ1bnRpbWUuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IG1lbW9pemUgfSBmcm9tIFwiLi9mdW5jdGlvbi11dGlscy50c1wiO1xuaW1wb3J0IHsgdHlwZSBOYW1lTGlrZSwgdG9Cb29sZWFuIH0gZnJvbSBcIi4vb2JqZWN0LnRzXCI7XG5cbi8qKiBgcHJvY2Vzc2Atc2hhcGVkIHZpZXcgb2ZmIGBnbG9iYWxUaGlzYCwgc28gbm8gbm9kZSB0eXBlcyBhcmUgbmVlZGVkLiAqL1xuaW50ZXJmYWNlIFByb2Nlc3NMaWtlIHtcbiAgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgc3RkZXJyPzogeyB3cml0ZT86IChjaHVuazogc3RyaW5nKSA9PiB2b2lkOyBpc1RUWT86IHVua25vd24gfTtcbn1cblxuLyoqIGBCdW5gLXNoYXBlZCB2aWV3IG9mZiBgZ2xvYmFsVGhpc2AsIHNvIG5vIGBAdHlwZXMvYnVuYCBpcyBuZWVkZWQuICovXG5pbnRlcmZhY2UgQnVuTGlrZSB7XG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGluc3BlY3Q/OiAodmFsdWU6IHVua25vd24sIG9wdGlvbnM/OiB7IGNvbG9ycz86IGJvb2xlYW47IGRlcHRoPzogbnVtYmVyIH0pID0+IHN0cmluZztcbn1cblxuY29uc3QgZ2xvYmFsUHJvY2VzcyA9IChnbG9iYWxUaGlzIGFzIHsgcHJvY2Vzcz86IFByb2Nlc3NMaWtlIH0pLnByb2Nlc3M7XG5jb25zdCBnbG9iYWxCdW4gPSAoZ2xvYmFsVGhpcyBhcyB7IEJ1bj86IEJ1bkxpa2UgfSkuQnVuO1xuXG4vKipcbiAqIE5vZGUgYHByb2Nlc3Muc3RkZXJyYCB3aGVuIHdyaXRhYmxlLCBlbHNlIGB1bmRlZmluZWRgIChzdGFibGUgZm9yIHRoZVxuICogcHJvY2VzcykuIFR5cGVkIGxvb3NlbHkgKGBhbnlgKSBiZWNhdXNlIGl0IGlzIGhhbmRlZCB0byB0aGUgY29uc29sZSBzaW5rJ3NcbiAqIGAud3JpdGVgLCB3aGljaCBvdXIgc3RydWN0dXJhbCB7QGxpbmsgUHJvY2Vzc0xpa2V9IHNoYXBlIGRvZXMgbm90IHNhdGlzZnlcbiAqIG5vbWluYWxseS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmNvbnN0IGdsb2JhbFByb2Nlc3NTdGRFcnI6IGFueSA9XG4gIGdsb2JhbFByb2Nlc3MgJiYgdHlwZW9mIGdsb2JhbFByb2Nlc3Muc3RkZXJyPy53cml0ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgPyBnbG9iYWxQcm9jZXNzLnN0ZGVyclxuICAgIDogdW5kZWZpbmVkO1xuXG5jb25zdCBMT0dfTEVWRUxTID0gW1wiZGVidWdcIiwgXCJpbmZvXCIsIFwid2FyblwiLCBcImVycm9yXCJdIGFzIGNvbnN0O1xuY29uc3QgTE9HX0xFVkVMX1JBTksgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIExPR19MRVZFTFMubWFwKChsZXZlbCwgaW5kZXgpID0+IFtsZXZlbCwgaW5kZXhdKSxcbikgYXMgUmVjb3JkPExvZ0xldmVsLCBudW1iZXI+O1xuY29uc3QgTE9HX0xFVkVMX0NPTE9SUyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgTE9HX0xFVkVMUy5tYXAoKGxldmVsKSA9PiB7XG4gICAgbGV0IGNvbG9yID0gXCJcXHgxYls5MG1cIjsgLy8gZ3JheVxuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgIGNhc2UgXCJpbmZvXCI6XG4gICAgICAgIGNvbG9yID0gXCJcXHgxYlszNG1cIjsgLy8gYmx1ZVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ3YXJuXCI6XG4gICAgICAgIGNvbG9yID0gXCJcXHgxYlszM21cIjsgLy8geWVsbG93XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImVycm9yXCI6XG4gICAgICAgIGNvbG9yID0gXCJcXHgxYlszMW1cIjsgLy8gcmVkXG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gW2xldmVsLCBjb2xvcl07XG4gIH0pLFxuKSBhcyBSZWNvcmQ8TG9nTGV2ZWwsIHN0cmluZz47XG5jb25zdCBMT0dfTEVWRUxfQ09MT1JfUkVTRVQgPSBcIlxceDFiWzBtXCI7XG5jb25zdCBERUZBVUxUX0xFVkVMOiBMb2dMZXZlbCA9IFwiaW5mb1wiO1xuXG4vKipcbiAqIFN1cHBvcnRlZCBzZXZlcml0aWVzLCBsb3dlc3QgdG8gaGlnaGVzdDogYGRlYnVnYCwgYGluZm9gLCBgd2FybmAsIGBlcnJvcmAuXG4gKiBBIGNhbGwgYmVsb3cgdGhlIGFjdGl2ZSB0aHJlc2hvbGQgaXMgZGlzY2FyZGVkIGJlZm9yZSBhbnkgc3RyaW5nIHdvcmsgb3JcbiAqIHNpbmsgSS9PLlxuICpcbiAqIFRoZSB0aHJlc2hvbGQgY29tZXMgZnJvbSBgcHJvY2Vzcy5lbnYuTE9HX0xFVkVMYCBvbiBldmVyeSBjYWxsXG4gKiAoY2FzZS1pbnNlbnNpdGl2ZSwgZGVmYXVsdCBgaW5mb2Agd2hlbiB1bnNldCwgZW1wdHksIG9yIHVua25vd24pIHNvIHRlc3RcbiAqIHJ1bm5lcnMgYW5kIGVtYmVkZGVycyBjYW4gY2hhbmdlIHZlcmJvc2l0eSBhZnRlciBpbXBvcnQgd2l0aG91dCByZXN0YXJ0aW5nXG4gKiB0aGUgcHJvY2Vzcy5cbiAqL1xuZXhwb3J0IHR5cGUgTG9nTGV2ZWwgPSAodHlwZW9mIExPR19MRVZFTFMpW251bWJlcl07XG5cbi8qKlxuICogRGVwZW5kZW5jeS1mcmVlIGxldmVsZWQgbG9nZ2VyLiBTdGFuZGFyZCBtZXRob2RzIGhvbm9yIGBMT0dfTEVWRUxgOyBgc3RhcnRgXG4gKiBhbmQgYHN1Y2Nlc3NgIGFyZSBpbmZvcm1hdGlvbmFsIGFsaWFzZXMgd2l0aCBkaXN0aW5jdCBwcmVzZW50YXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIExvZ2dlciA9IHtcbiAgW0sgaW4gTG9nTGV2ZWxdOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQ7XG59ICYge1xuICAvKiogU3VjY2VzcyBtZXNzYWdlIGVtaXR0ZWQgYXQgYGluZm9gIGxldmVsLiAqL1xuICBzdWNjZXNzOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQ7XG4gIC8qKiBTdGFydCAvIGluLXByb2dyZXNzIG1lc3NhZ2UgZW1pdHRlZCBhdCBgaW5mb2AgbGV2ZWwuICovXG4gIHN0YXJ0OiAoLi4uYXJnczogYW55W10pID0+IHZvaWQ7XG59O1xuXG4vKiogYChuYW1lPykgPT4gTG9nZ2VyYCBzaW5rIGNvbnN0cnVjdG9yIHJldHVybmVkIGJ5IHRoZSBpbml0LXRpbWUgZmFjdG9yeSBjaGFpbi4gKi9cbnR5cGUgTG9nZ2VyRmFjdG9yeSA9IChuYW1lPzogc3RyaW5nKSA9PiBMb2dnZXI7XG5cbi8qKlxuICogQ29uc29sZSB7QGxpbmsgTG9nZ2VyRmFjdG9yeX07IGFsd2F5cyBzdWNjZWVkcy5cbiAqXG4gKiBXaGVuIGBwcm9jZXNzLnN0ZGVycmAgaXMgYXZhaWxhYmxlLCBmb3JtYXRzIGVhY2ggbGluZSBhbmQgd3JpdGVzIG9ubHkgdG9cbiAqIHN0ZGVyci4gQnVuIGBpbnNwZWN0YCBmb3JtYXRzIGVhY2ggYXJndW1lbnQgd2hlbiBlbmFibGVkOyBvdGhlcndpc2VcbiAqIGB1dGlsLmluc3BlY3RgIHdoZW4gYG5vZGU6dXRpbGAgbG9hZHMsIG9yIGEgYEpTT04uc3RyaW5naWZ5YCBmYWxsYmFjayB3aGVuXG4gKiBpdCBkb2VzIG5vdC4gV2hlbiBzdGRlcnIgaXMgdW5hdmFpbGFibGUgKGV2ZXJ5IGJyb3dzZXIpLCBiaW5kc1xuICoge0BsaW5rIGNyZWF0ZUZvcm1hdHRlcn0gcHJlZml4ZXMgaW50byBnbG9iYWwgYGNvbnNvbGUuKmAgY2FsbHMgYW5kIHNraXBzIHRoZVxuICogYG5vZGU6dXRpbGAgaW1wb3J0IGVudGlyZWx5LlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVDb25zb2xlTG9nZ2VyRmFjdG9yeShnbG9iYWxQcm9jZXNzU3RkRXJyOiBhbnkpOiBQcm9taXNlPExvZ2dlckZhY3Rvcnk+IHtcbiAgLy8gSW5kaXJlY3Qgc3BlY2lmaWVyIHNvIHRoaXMgYnJvd3Nlci1zYWZlIG1vZHVsZSBkb2Vzbid0IHN0YXRpY2FsbHkgcHVsbCBpblxuICAvLyBub2RlIHR5cGVzOiBgbm9kZTp1dGlsYCBpcyBvcHRpb25hbCAodGhlIEpTT04gZmFsbGJhY2sgY292ZXJzIGl0cyBhYnNlbmNlKS5cbiAgY29uc3Qgbm9kZVV0aWwgPSBcIm5vZGU6dXRpbFwiO1xuICAvLyBHYXRlZCwgbm90IGp1c3QgY2F1Z2h0OiB0aGUgaW5kaXJlY3Qgc3BlY2lmaWVyIGRlZmVhdHMgYnVuZGxlciBhbmFseXNpcyBieVxuICAvLyBkZXNpZ24sIHNvIGEgY2xpZW50IGJ1aWxkIGVtaXRzIGEgbGl0ZXJhbCBgaW1wb3J0KFwibm9kZTp1dGlsXCIpYCB0aGF0IG5vXG4gIC8vIGJyb3dzZXIgY2FuIHJlc29sdmUsIGFuZCB0aGUgY2F1Z2h0IHJlamVjdGlvbiBzdGlsbCBzdXJmYWNlZCBhcyBhIGNvbnNvbGVcbiAgLy8gZXJyb3IuIGB1dGlsc2Agb25seSBmZWVkcyB0aGUgc3RkZXJyIGJyYW5jaCBvZiB0aGUgZW1pdHRlciBiZWxvdywgc28gbm9cbiAgLy8gc3RkZXJyIG1lYW5zIHRoZSBpbXBvcnQgaGFzIG5vdGhpbmcgdG8gc2VydmUgYW5kIGlzIHNraXBwZWQgb3V0cmlnaHQuXG4gIGNvbnN0IHV0aWxzOiB7IGluc3BlY3Q/OiBhbnkgfSB8IHVuZGVmaW5lZCA9XG4gICAgZ2xvYmFsUHJvY2Vzc1N0ZEVyciA9PT0gdW5kZWZpbmVkXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBhd2FpdCBpbXBvcnQoLyogQHZpdGUtaWdub3JlICovIG5vZGVVdGlsKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICByZXR1cm4gY29uc29sZUxvZ2dlckZhY3RvcnkoZ2xvYmFsUHJvY2Vzc1N0ZEVyciwgdXRpbHMpO1xufVxuXG4vKipcbiAqIFRoZSBzeW5jaHJvbm91cyBjb3JlIG9mIHtAbGluayBjcmVhdGVDb25zb2xlTG9nZ2VyRmFjdG9yeX0sIHNwbGl0IG91dCBzbyB0aGVcbiAqIHNhbWUgZW1pdHRlciBhbHNvIHNlcnZlcyBhcyB0aGUgYm9vdHN0cmFwIHNpbmsgYmVmb3JlIGFueSBhc3luYyBmYWN0b3J5IGhhc1xuICogcmVzb2x2ZWQuIGB1dGlsc2AgaXMgYG5vZGU6dXRpbGAgd2hlbiBpdCBsb2FkZWQ7IHdpdGhvdXQgaXQsIG9iamVjdCBhcmd1bWVudHNcbiAqIGZvcm1hdCB0aHJvdWdoIHRoZSBgSlNPTi5zdHJpbmdpZnlgIGZhbGxiYWNrLlxuICovXG5mdW5jdGlvbiBjb25zb2xlTG9nZ2VyRmFjdG9yeShcbiAgZ2xvYmFsUHJvY2Vzc1N0ZEVycjogYW55LFxuICB1dGlscz86IHsgaW5zcGVjdD86IGFueSB9IHwgdW5kZWZpbmVkLFxuKTogTG9nZ2VyRmFjdG9yeSB7XG4gIGNvbnN0IGJ1bkluc3BlY3QgPVxuICAgIGdsb2JhbEJ1biAhPT0gdW5kZWZpbmVkICYmICF0b0Jvb2xlYW4oZ2xvYmFsQnVuLmVudj8uTE9HX0JVTl9DT05TT0xFX0RJU0FCTEVEKVxuICAgICAgPyBnbG9iYWxCdW4uaW5zcGVjdFxuICAgICAgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHJlc2V0Q29sb3JzUHJlZml4ID0gYnVuSW5zcGVjdCAhPT0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGluc3BlY3QgPSAoYXJnOiBhbnksIGNvbG9ycz86IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhcmcpIHx8ICh0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmIGFyZyAhPT0gbnVsbCkpIHtcbiAgICAgIGlmIChidW5JbnNwZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGJ1bkluc3BlY3QoYXJnLCB7XG4gICAgICAgICAgY29sb3JzOiBjb2xvcnMsXG4gICAgICAgICAgZGVwdGg6IHV0aWxzPy5pbnNwZWN0Py5kZWZhdWx0T3B0aW9ucz8uZGVwdGggPz8gdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodXRpbHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdXRpbHMuaW5zcGVjdChhcmcsIHtcbiAgICAgICAgICAuLi51dGlscz8uaW5zcGVjdD8uZGVmYXVsdE9wdGlvbnMsXG4gICAgICAgICAgY29sb3JzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzZWVuID0gbmV3IFdlYWtTZXQoKTtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGFyZywgKF8sIHZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKHZhbHVlKSkgcmV0dXJuIFwiW0NpcmN1bGFyXVwiO1xuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGFyZyk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGZhY3RvcnkgPSAobmFtZT86IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHByZWZpeEZvcm1hdHRlciA9IGNyZWF0ZUZvcm1hdHRlcihuYW1lLCBnbG9iYWxQcm9jZXNzU3RkRXJyLCByZXNldENvbG9yc1ByZWZpeCk7XG4gICAgY29uc3QgbG9nZ2VyID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgTE9HX0xFVkVMUy5tYXAoKGxldmVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcHJlZml4LCBjb2xvcnMsIHJlc2V0Q29sb3JzIH0gPSBwcmVmaXhGb3JtYXR0ZXIobGV2ZWwpO1xuICAgICAgICBjb25zdCBlbWl0dGVyID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICAgICAgaWYgKCFzaG91bGRFbWl0KGxldmVsLCB0cnVlKSkgcmV0dXJuO1xuICAgICAgICAgIGlmIChnbG9iYWxQcm9jZXNzU3RkRXJyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VQYXJ0cyA9IHByZWZpeCA/IFtwcmVmaXhdIDogW107XG4gICAgICAgICAgICBtZXNzYWdlUGFydHMucHVzaCguLi5hcmdzLm1hcCgoYXJnKSA9PiBpbnNwZWN0KGFyZywgY29sb3JzKSkpO1xuICAgICAgICAgICAgaWYgKHJlc2V0Q29sb3JzKSBtZXNzYWdlUGFydHMucHVzaChMT0dfTEVWRUxfQ09MT1JfUkVTRVQpO1xuICAgICAgICAgICAgZ2xvYmFsUHJvY2Vzc1N0ZEVyci53cml0ZShtZXNzYWdlUGFydHMuam9pbihcIiBcIikgKyBcIlxcblwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGxldmVsRm4gPSBjb25zb2xlW2xldmVsXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbGV2ZWxGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgIGxldmVsRm4gPSBjb25zb2xlLmxvZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcmVmaXgpIGxldmVsRm4gPSBsZXZlbEZuLmJpbmQoY29uc29sZSwgcHJlZml4KTtcbiAgICAgICAgICAgIGxldmVsRm4oLi4uYXJncyk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gW2xldmVsLCBlbWl0dGVyXTtcbiAgICAgIH0pLFxuICAgICkgYXMgTG9nZ2VyO1xuICAgIC8vIENvbnZlbmllbmNlIGxldmVscyBzaGFyZSB0aGUgaW5mbyBzaW5rLlxuICAgIGxvZ2dlci5zdWNjZXNzID0gbG9nZ2VyLmluZm87XG4gICAgbG9nZ2VyLnN0YXJ0ID0gbG9nZ2VyLmluZm87XG4gICAgcmV0dXJuIGxvZ2dlcjtcbiAgfTtcbiAgY29uc3QgZGVmYXVsdEZhY3RvcnkgPSBtZW1vaXplKGZhY3RvcnkpO1xuICByZXR1cm4gKG5hbWU/OiBzdHJpbmcpID0+IChuYW1lID8gZmFjdG9yeShuYW1lKSA6IGRlZmF1bHRGYWN0b3J5KCkpO1xufVxuXG4vKipcbiAqIEZ1bGwgY29uc29sZSBzaW5rIHdpdGggb3B0aW9uYWwgYG5vZGU6dXRpbGAgaW5zcGVjdGlvbi4gTWVtb2l6ZWQgc29cbiAqIGNvbmN1cnJlbnQgYW5kIHJlcGVhdCBjYWxsZXJzIHNoYXJlIG9uZSBpbi1mbGlnaHQgcHJvbWlzZSBhbmQgc2V0dGxlZCByZXN1bHQuXG4gKi9cbmNvbnN0IHJlc29sdmVGYWN0b3J5ID0gbWVtb2l6ZShhc3luYyAoKTogUHJvbWlzZTxMb2dnZXJGYWN0b3J5PiA9PiB7XG4gIHJldHVybiBjcmVhdGVDb25zb2xlTG9nZ2VyRmFjdG9yeShnbG9iYWxQcm9jZXNzU3RkRXJyKTtcbn0pO1xuXG4vKipcbiAqIEFjdGl2ZSBmYWN0b3J5IHN0YXJ0cyBhcyBhIHN5bmMgY29uc29sZSBzaW5rIChubyBgYXdhaXRgLCBzbyB0aGlzIG1vZHVsZVxuICogZmluaXNoZXMgZXZhbHVhdGluZyBpbW1lZGlhdGVseSkgYW5kIHN3YXBzIHRvIHtAbGluayByZXNvbHZlRmFjdG9yeX0nc1xuICogcmVzdWx0IHdoZW4gc2VydmVyLXNpZGUgYXJndW1lbnQgaW5zcGVjdGlvbiBpcyByZWFkeS5cbiAqL1xubGV0IGFjdGl2ZUZhY3Rvcnk6IExvZ2dlckZhY3RvcnkgPSBjb25zb2xlTG9nZ2VyRmFjdG9yeShnbG9iYWxQcm9jZXNzU3RkRXJyKTtcbnZvaWQgcmVzb2x2ZUZhY3RvcnkoKS50aGVuKFxuICAoZmFjdG9yeSkgPT4ge1xuICAgIGFjdGl2ZUZhY3RvcnkgPSBmYWN0b3J5O1xuICB9LFxuICAoKSA9PiB7XG4gICAgLy8gS2VlcCB0aGUgc3luYyBjb25zb2xlIHNpbms7IG5ldmVyIGxlYXZlIGltcG9ydGVycyB3aXRob3V0IGEgZmFjdG9yeS5cbiAgfSxcbik7XG5cbi8qKlxuICogQnVpbGQgYSBsb2dnZXIgdGhhdCByZWJpbmRzIHdoZW4ge0BsaW5rIGFjdGl2ZUZhY3Rvcnl9IHVwZ3JhZGVzLiBDYWxsZXJzIHRoYXRcbiAqIGNhcHR1cmUgYGNvbnN0IGxvZyA9IGxvZ2dlcihcInhcIilgIGF0IG1vZHVsZSBzY29wZSBzdGlsbCBnZXQgdGhlIHVwZ3JhZGVkXG4gKiBmb3JtYXR0ZXIgb25jZSBpdCBhcnJpdmVzLCB3aXRob3V0IGV2ZXJ5IGNhbGwgc2l0ZSB3YWl0aW5nIG9uIGEgcHJvbWlzZS5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTG9nZ2VyKG5hbWU/OiBzdHJpbmcpOiBMb2dnZXIge1xuICBsZXQgYm91bmQ6IHsgZmFjdG9yeTogTG9nZ2VyRmFjdG9yeTsgbG9nZ2VyOiBMb2dnZXIgfSB8IHVuZGVmaW5lZDtcbiAgY29uc3Qgc2luayA9ICgpOiBMb2dnZXIgPT4ge1xuICAgIGlmIChib3VuZD8uZmFjdG9yeSAhPT0gYWN0aXZlRmFjdG9yeSkge1xuICAgICAgYm91bmQgPSB7IGZhY3Rvcnk6IGFjdGl2ZUZhY3RvcnksIGxvZ2dlcjogYWN0aXZlRmFjdG9yeShuYW1lKSB9O1xuICAgIH1cbiAgICByZXR1cm4gYm91bmQubG9nZ2VyO1xuICB9O1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIFsuLi5MT0dfTEVWRUxTLCBcInN1Y2Nlc3NcIiwgXCJzdGFydFwiXS5tYXAoKGxldmVsKSA9PiBbXG4gICAgICBsZXZlbCxcbiAgICAgICguLi5hcmdzOiBhbnlbXSkgPT4gc2luaygpW2xldmVsIGFzIGtleW9mIExvZ2dlcl0oLi4uYXJncyksXG4gICAgXSksXG4gICkgYXMgTG9nZ2VyO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgbGluZSBwcmVmaXggb2YgYExFVkVMIFtuYW1lXWAgb24gTm9kZS9CdW4gaG9zdHMsIG9yIGBbbmFtZV1gIGFsb25lXG4gKiBpbiBicm93c2VycyAoZWl0aGVyIHBhcnQgb21pdHRlZCB3aGVuIGFic2VudCkuIEFwcGxpZXMgcGVyLWxldmVsIEFOU0kgY29sb3JcbiAqIHdoZW4gYHN0cmVhbVN1cHBvcnRzQ29sb3JgIGlzIHRydWUgZm9yIHRoZSBnaXZlbiBzdGRlcnIgc3RyZWFtLlxuICovXG5mdW5jdGlvbiBjcmVhdGVGb3JtYXR0ZXIoXG4gIG5hbWU6IGFueSxcbiAgc3RyZWFtOiBhbnksXG4gIHJlc2V0Q29sb3JzUHJlZml4PzogYm9vbGVhbixcbik6IChsZXZlbD86IExvZ0xldmVsKSA9PiB7IHByZWZpeDogc3RyaW5nOyBjb2xvcnM6IGJvb2xlYW47IHJlc2V0Q29sb3JzOiBib29sZWFuIH0ge1xuICBjb25zdCBnbG9iID0gZ2xvYmFsVGhpcyBhcyB7IHdpbmRvdz86IHVua25vd247IGRvY3VtZW50PzogdW5rbm93biB9O1xuICBjb25zdCBpc0Jyb3dzZXIgPSBnbG9iLndpbmRvdyAhPT0gdW5kZWZpbmVkICYmIGdsb2IuZG9jdW1lbnQgIT09IHVuZGVmaW5lZDtcbiAgY29uc3Qgc3VwcG9ydHNDb2xvciA9ICFpc0Jyb3dzZXIgPyBzdHJlYW1TdXBwb3J0c0NvbG9yKHN0cmVhbSkgOiBmYWxzZTtcbiAgY29uc3QgbmFtZVByZWZpeCA9IG5hbWUgPyBcIltcIiArIG5hbWUgKyBcIl1cIiA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIChsZXZlbD86IExvZ0xldmVsKSA9PiB7XG4gICAgY29uc3QgY29sb3IgPSBzdXBwb3J0c0NvbG9yICYmIGxldmVsICE9PSB1bmRlZmluZWQgPyBMT0dfTEVWRUxfQ09MT1JTW2xldmVsXSA6IHVuZGVmaW5lZDtcbiAgICBsZXQgcHJlZml4ID0gWyFpc0Jyb3dzZXIgJiYgbGV2ZWwgPyBsZXZlbC50b1VwcGVyQ2FzZSgpIDogdW5kZWZpbmVkLCBuYW1lUHJlZml4XVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oXCIgXCIpO1xuICAgIGxldCByZXNldENvbG9ycyA9IGZhbHNlO1xuICAgIGlmIChjb2xvcikge1xuICAgICAgY29uc3QgYXBwbHlSZXNldENvbG9yc1ByZWZpeCA9IHJlc2V0Q29sb3JzUHJlZml4IHx8IFwiaW5mb1wiID09PSBsZXZlbDtcbiAgICAgIGlmICghYXBwbHlSZXNldENvbG9yc1ByZWZpeCkgcmVzZXRDb2xvcnMgPSB0cnVlO1xuICAgICAgcHJlZml4ID0gYXBwbHlSZXNldENvbG9yc1ByZWZpeCA/IGNvbG9yICsgcHJlZml4ICsgTE9HX0xFVkVMX0NPTE9SX1JFU0VUIDogY29sb3IgKyBwcmVmaXg7XG4gICAgfVxuICAgIHJldHVybiB7IHByZWZpeCwgY29sb3JzOiBjb2xvciA/IHRydWUgOiBmYWxzZSwgcmVzZXRDb2xvcnMgfTtcbiAgfTtcbn1cblxuLyoqIFRydWUgd2hlbiBgc3RyZWFtYCBpcyBhIFRUWSBhbmQgdGhlIHRlcm1pbmFsIGlzIG5vdCBgZHVtYmAuICovXG5mdW5jdGlvbiBzdHJlYW1TdXBwb3J0c0NvbG9yKHN0cmVhbT86IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKGdsb2JhbFByb2Nlc3MgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2Ygc3RyZWFtICE9PSBcIm9iamVjdFwiIHx8IHN0cmVhbSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICBjb25zdCB7IGlzVFRZIH0gPSBzdHJlYW0gYXMgeyBpc1RUWT86IHVua25vd24gfTtcbiAgaWYgKGlzVFRZICE9PSB0cnVlKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IHRlcm0gPSBnbG9iYWxQcm9jZXNzLmVudj8uVEVSTT8udG9Mb3dlckNhc2UoKTtcbiAgaWYgKFwiZHVtYlwiID09IHRlcm0pIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKiBQYXJzZSBhIHJhdyB2YWx1ZSBhcyB7QGxpbmsgTG9nTGV2ZWx9ICh0cmltbWVkLCBjYXNlLWluc2Vuc2l0aXZlKS4gKi9cbmZ1bmN0aW9uIHBhcnNlTG9nTGV2ZWwocmF3OiB1bmtub3duKTogTG9nTGV2ZWwgfCB1bmRlZmluZWQge1xuICBpZiAocmF3ID09PSB1bmRlZmluZWQgfHwgcmF3ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBsZXQgdGV4dCA9IHR5cGVvZiByYXcgPT09IFwic3RyaW5nXCIgPyByYXcgOiBTdHJpbmcocmF3KTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAyOyBpKyspIHtcbiAgICBpZiAoaSA+IDApIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0ZXh0LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHRleHQgPT09IG5vcm1hbGl6ZWQpIGJyZWFrO1xuICAgICAgdGV4dCA9IG5vcm1hbGl6ZWQ7XG4gICAgfVxuICAgIGlmICghdGV4dCkge1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIGlmICh0ZXh0IGluIExPR19MRVZFTF9SQU5LKSB7XG4gICAgICByZXR1cm4gdGV4dCBhcyBMb2dMZXZlbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqIEFjdGl2ZSB0aHJlc2hvbGQgZnJvbSBgcHJvY2Vzcy5lbnYuTE9HX0xFVkVMYCwgZGVmYXVsdCB7QGxpbmsgREVGQVVMVF9MRVZFTH0uICovXG5mdW5jdGlvbiBhY3RpdmVMZXZlbCgpOiBMb2dMZXZlbCB7XG4gIHJldHVybiBwYXJzZUxvZ0xldmVsKGdsb2JhbFByb2Nlc3M/LmVudj8uTE9HX0xFVkVMKSA/PyBERUZBVUxUX0xFVkVMO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgYHJhd2AgbWVldHMgdGhlIGN1cnJlbnQgYExPR19MRVZFTGAgdGhyZXNob2xkLlxuICpcbiAqIFBhcnNlcyBgcmF3YCBhcyBhIHtAbGluayBMb2dMZXZlbH07IHdoZW4gcGFyc2luZyBmYWlscywgcmV0dXJuc1xuICogYGRlZmF1bHRSZXN1bHRgIGlmIHN1cHBsaWVkLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkRW1pdChyYXc6IHVua25vd24sIGRlZmF1bHRSZXN1bHQ/OiBib29sZWFuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGxldmVsID0gcGFyc2VMb2dMZXZlbChyYXcpO1xuICBpZiAobGV2ZWwgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRlZmF1bHRSZXN1bHQgPz8gZmFsc2U7XG4gIHJldHVybiBMT0dfTEVWRUxfUkFOS1tsZXZlbF0gPj0gTE9HX0xFVkVMX1JBTktbYWN0aXZlTGV2ZWwoKV07XG59XG5cbi8qKlxuICogV2hldGhlciBhIGNhbGwgYXQgYGxldmVsYCB3b3VsZCBiZSBlbWl0dGVkIGF0IHRoZSBjdXJyZW50XG4gKiBgcHJvY2Vzcy5lbnYuTE9HX0xFVkVMYCB0aHJlc2hvbGQuIFVzZSBiZWZvcmUgYnVpbGRpbmcgZXhwZW5zaXZlIGRlYnVnXG4gKiBwYXlsb2Fkcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogaWYgKGlzTGV2ZWxFbmFibGVkKFwiZGVidWdcIikpIHtcbiAqICAgbG9nLmRlYnVnKFwibW91bnRzOnJlc29sdmVyXCIsIHsgY29udHJpYnV0aW9uOiBhd2FpdCBoZWF2eVNuYXBzaG90KCkgfSk7XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0xldmVsRW5hYmxlZChsZXZlbDogTG9nTGV2ZWwpOiBib29sZWFuIHtcbiAgcmV0dXJuIHNob3VsZEVtaXQobGV2ZWwpO1xufVxuXG5jb25zdCBMT0dHRVJfTkFNRV9SRUdFWCA9IC9eKD86W2Etel1bYS16MC05Ky4tXSo6XFwvXFwvKT8uKlxcLyhbXi8uXSspKD86XFwuW14vXSspPyQvaTtcblxuLyoqXG4gKiBEZXJpdmUgdGhlIHRhZyBzdHJpbmcgZnJvbSBhIGxvZ2dlciBuYW1lLCBwbHVnaW4sIG9yIHBhdGguIFNsYXNoLSBhbmRcbiAqIFVSTC1zaGFwZWQgc3RyaW5ncyB1c2UgdGhlIGxhc3QgcGF0aCBzZWdtZW50IChleHRlbnNpb24gc3RyaXBwZWQpOyBwbGFpblxuICogc3RyaW5ncyBwYXNzIHRocm91Z2ggdW5jaGFuZ2VkLiBFbXB0eSBvciBtaXNzaW5nIG5hbWVzIC0+IGB1bmRlZmluZWRgXG4gKiAodW50YWdnZWQgc2luaykuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RMb2dnZXJOYW1lKGxvZ2dlck5hbWU6IE5hbWVMaWtlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFsb2dnZXJOYW1lKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAodHlwZW9mIGxvZ2dlck5hbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBtYXRjaCA9IGxvZ2dlck5hbWUubWF0Y2goTE9HR0VSX05BTUVfUkVHRVgpO1xuICAgIHJldHVybiBtYXRjaD8uWzFdID8/IGxvZ2dlck5hbWU7XG4gIH1cbiAgcmV0dXJuIGV4dHJhY3RMb2dnZXJOYW1lKGxvZ2dlck5hbWUubmFtZSk7XG59XG5cbi8qKlxuICogQnVpbGQgYSB0YWdnZWQgbG9nZ2VyIGZvciBhIHBsdWdpbiBvciBtb2R1bGUuXG4gKlxuICogVGhlIHRhZyBpcyBgW25hbWVdYCB3aGVuIGBsb2dnZXJOYW1lYCBpcyBhIG5vbi1lbXB0eSBzdHJpbmcsIGFcbiAqIHtAbGluayBOYW1lTGlrZX0gd2l0aCBgbmFtZWAsIG9yIGEgZmlsZSAvIFVSTCBwYXRoICh0aGUgYmFzZW5hbWUgd2l0aG91dFxuICogZXh0ZW5zaW9uIGlzIHVzZWQpLiBUaGUgY29uc29sZSBzaW5rIHByZXBlbmRzIGBMRVZFTCBbbmFtZV1gIG9uIE5vZGUvQnVuXG4gKiBob3N0cyBvciBgW25hbWVdYCBhbG9uZSBpbiBicm93c2VycyB2aWEge0BsaW5rIGNyZWF0ZUZvcm1hdHRlcn0uXG4gKlxuICogQ2FsbHMgYmVsb3cgYHByb2Nlc3MuZW52LkxPR19MRVZFTGAgYXJlIGRyb3BwZWQgYnkge0BsaW5rIHNob3VsZEVtaXR9IGJlZm9yZVxuICogdGhlIHNpbmsgZm9ybWF0cyBvciB3cml0ZXMgdGhlIGxpbmUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG4gKlxuICogY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImdlbmllL2NoYXRcIik7XG4gKiBsb2dnZXIuaW5mbyhcInN0YXJ0aW5nXCIpO1xuICogbG9nZ2VyLndhcm4oXCJtaXNzaW5nIG9wdGlvbmFsIGNvbmZpZ1wiLCB7IHJlYXNvbjogXCJubyBlbnYgdmFyXCIgfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dnZXIobG9nZ2VyTmFtZTogTmFtZUxpa2UgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBMb2dnZXIge1xuICBjb25zdCBuYW1lID0gZXh0cmFjdExvZ2dlck5hbWUobG9nZ2VyTmFtZSk7XG4gIHJldHVybiBjcmVhdGVMb2dnZXIobmFtZSk7XG59XG4iXX0=
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHOzs7Ozs7Ozs7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFjdkQsTUFBTSxhQUFhLEdBQUksVUFBd0MsQ0FBQyxPQUFPLENBQUM7QUFDeEUsTUFBTSxTQUFTLEdBQUksVUFBZ0MsQ0FBQyxHQUFHLENBQUM7QUFFeEQ7Ozs7O0dBS0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxtQkFBbUIsR0FDdkIsYUFBYSxJQUFJLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEtBQUssVUFBVTtJQUNoRSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU07SUFDdEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUVoQixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBQy9ELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ3ZDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUNyQixDQUFDO0FBQzlCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDekMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ3ZCLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLE9BQU87SUFDL0IsUUFBUSxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssTUFBTTtZQUNULEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxPQUFPO1lBQzNCLE1BQU07UUFDUixL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R0FBWSxFQUFFLGFBQXVCO0lBQ3ZELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxhQUFhLElBQUksS0FBSyxDQUFDO0lBQ3ZELE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWU7SUFDNUMsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELE1BQU0saUJBQWlCLEdBQUcsd0RBQXdELENBQUM7QUFFbkY7Ozs7O0dBS0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLFVBQXlDO0lBQ2xFLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDbEMsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEQsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8saUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLFVBQXlDO0lBQzlELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRhZ2dlZCwgbGV2ZWxlZCBsb2dnaW5nIGZvciBldmVyeSBydW50aW1lIC0gdGhlIG9uZSBsb2dnZXIgdGhlIHdob2xlXG4gKiBtb25vcmVwbyBzaGFyZXMuXG4gKlxuICogSW1wb3J0IHRoaXMgbW9kdWxlIGluc3RlYWQgb2YgY29uc3RydWN0aW5nIHBhY2thZ2UtbG9jYWwgY29uc29sZSB3cmFwcGVycyBzb1xuICogbG9nIGxldmVscywgdGFncywgZm9ybWF0dGluZywgYW5kIGJyb3dzZXIgYmVoYXZpb3IgcmVtYWluIGNvbnNpc3RlbnQuXG4gKlxuICoge0BsaW5rIGxvZ2dlcn0gcmVzb2x2ZXMgYSB0YWdnZWQge0BsaW5rIExvZ2dlcn0gdGhyb3VnaCBhIHN5bmNocm9ub3VzIGNvbnNvbGVcbiAqIHNpbmssIHRoZW4gdXBncmFkZXMgaXRzIHNlcnZlci1zaWRlIGZvcm1hdHRlciB3aGVuIGBub2RlOnV0aWxgIHJlc29sdmVzLlxuICogS2VlcGluZyB0aGUgc2luayBkZXBlbmRlbmN5LWZyZWUgcHJldmVudHMgYnJvd3NlciBidW5kbGVycyBmcm9tIHJldGFpbmluZyBhblxuICogb3B0aW9uYWwgYmFyZSBpbXBvcnQgdGhhdCBkb3duc3RyZWFtIGFwcHMgd291bGQgc3RpbGwgaGF2ZSB0byBpbnN0YWxsLlxuICoge0BsaW5rIExvZ0xldmVsfSBmaWx0ZXJpbmcgcnVucyB0aHJvdWdoIHtAbGluayBzaG91bGRFbWl0fSBpbiBwZXItbGV2ZWxcbiAqIHdyYXBwZXJzIGFyb3VuZCB0aGUgcGxhdGZvcm0gY29uc29sZSBvciBzdGRlcnIgc2luay5cbiAqXG4gKiBUaGUgY29uc29sZSBmYWxsYmFjayB3cml0ZXMgZm9ybWF0dGVkIGxpbmVzIHRvIGBwcm9jZXNzLnN0ZGVycmAgd2hlbiBpdCBpc1xuICogYXZhaWxhYmxlIChCdW4gYGluc3BlY3RgIHBlciBhcmd1bWVudCB3aGVuIGBMT0dfQlVOX0NPTlNPTEVfRElTQUJMRURgIGlzXG4gKiB1bnNldCwgb3RoZXJ3aXNlIGBub2RlOnV0aWxgIGBmb3JtYXRXaXRoT3B0aW9uc2ApLCBvciBkZWxlZ2F0ZXMgdG8gZ2xvYmFsXG4gKiBgY29uc29sZS4qYCB3aGVuIHN0ZGVyciBvciBgbm9kZTp1dGlsYCBpcyB1bmF2YWlsYWJsZS4gQnJvd3NlciBob3N0cyBvbWl0XG4gKiB0aGUgYExFVkVMYCB0ZXh0IHByZWZpeCAoZGV2dG9vbHMgc2hvdyBzZXZlcml0eSkgYW5kIGtlZXAgb25seSB0aGUgYFtuYW1lXWBcbiAqIHRhZy5cbiAqXG4gKiBFbnYgdG9nZ2xlczogYExPR19MRVZFTGAgKHJlYWQgcGVyIGNhbGwpIGFuZCBgTE9HX0JVTl9DT05TT0xFX0RJU0FCTEVEYFxuICogKHJlYWQgb25jZSBkdXJpbmcgZmFjdG9yeSBpbml0KS5cbiAqXG4gKiBCcm93c2VyLXNhZmU6IGBwcm9jZXNzYCAvIGBCdW5gIC8gYHdpbmRvd2AgLyBgZG9jdW1lbnRgIGFyZSBhbGwgcmVhY2hlZFxuICogdGhyb3VnaCBgZ2xvYmFsVGhpc2AgYW5kIGd1YXJkZWQsIGFuZCBgbm9kZTp1dGlsYCBpcyBpbXBvcnRlZCBPTkxZIG9uIGEgaG9zdFxuICogdGhhdCBoYXMgYHByb2Nlc3Muc3RkZXJyYCAtIG5ldmVyIGluIGEgYnJvd3Nlciwgd2hlcmUgdGhlIHNwZWNpZmllciBpc1xuICogdW5yZXNvbHZhYmxlIC0gc28gdGhlIG1vZHVsZSB3b3JrcyBpbiBhbnkgcnVudGltZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gXCIuL2Z1bmN0aW9uLXV0aWxzLnRzXCI7XG5pbXBvcnQgeyB0eXBlIE5hbWVMaWtlLCB0b0Jvb2xlYW4gfSBmcm9tIFwiLi9vYmplY3QudHNcIjtcblxuLyoqIGBwcm9jZXNzYC1zaGFwZWQgdmlldyBvZmYgYGdsb2JhbFRoaXNgLCBzbyBubyBub2RlIHR5cGVzIGFyZSBuZWVkZWQuICovXG5pbnRlcmZhY2UgUHJvY2Vzc0xpa2Uge1xuICBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBzdGRlcnI/OiB7IHdyaXRlPzogKGNodW5rOiBzdHJpbmcpID0+IHZvaWQ7IGlzVFRZPzogdW5rbm93biB9O1xufVxuXG4vKiogYEJ1bmAtc2hhcGVkIHZpZXcgb2ZmIGBnbG9iYWxUaGlzYCwgc28gbm8gYEB0eXBlcy9idW5gIGlzIG5lZWRlZC4gKi9cbmludGVyZmFjZSBCdW5MaWtlIHtcbiAgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgaW5zcGVjdD86ICh2YWx1ZTogdW5rbm93biwgb3B0aW9ucz86IHsgY29sb3JzPzogYm9vbGVhbjsgZGVwdGg/OiBudW1iZXIgfSkgPT4gc3RyaW5nO1xufVxuXG5jb25zdCBnbG9iYWxQcm9jZXNzID0gKGdsb2JhbFRoaXMgYXMgeyBwcm9jZXNzPzogUHJvY2Vzc0xpa2UgfSkucHJvY2VzcztcbmNvbnN0IGdsb2JhbEJ1biA9IChnbG9iYWxUaGlzIGFzIHsgQnVuPzogQnVuTGlrZSB9KS5CdW47XG5cbi8qKlxuICogTm9kZSBgcHJvY2Vzcy5zdGRlcnJgIHdoZW4gd3JpdGFibGUsIGVsc2UgYHVuZGVmaW5lZGAgKHN0YWJsZSBmb3IgdGhlXG4gKiBwcm9jZXNzKS4gVHlwZWQgbG9vc2VseSAoYGFueWApIGJlY2F1c2UgaXQgaXMgaGFuZGVkIHRvIHRoZSBjb25zb2xlIHNpbmsnc1xuICogYC53cml0ZWAsIHdoaWNoIG91ciBzdHJ1Y3R1cmFsIHtAbGluayBQcm9jZXNzTGlrZX0gc2hhcGUgZG9lcyBub3Qgc2F0aXNmeVxuICogbm9taW5hbGx5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuY29uc3QgZ2xvYmFsUHJvY2Vzc1N0ZEVycjogYW55ID1cbiAgZ2xvYmFsUHJvY2VzcyAmJiB0eXBlb2YgZ2xvYmFsUHJvY2Vzcy5zdGRlcnI/LndyaXRlID09PSBcImZ1bmN0aW9uXCJcbiAgICA/IGdsb2JhbFByb2Nlc3Muc3RkZXJyXG4gICAgOiB1bmRlZmluZWQ7XG5cbmNvbnN0IExPR19MRVZFTFMgPSBbXCJkZWJ1Z1wiLCBcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIl0gYXMgY29uc3Q7XG5jb25zdCBMT0dfTEVWRUxfUkFOSyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgTE9HX0xFVkVMUy5tYXAoKGxldmVsLCBpbmRleCkgPT4gW2xldmVsLCBpbmRleF0pLFxuKSBhcyBSZWNvcmQ8TG9nTGV2ZWwsIG51bWJlcj47XG5jb25zdCBMT0dfTEVWRUxfQ09MT1JTID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBMT0dfTEVWRUxTLm1hcCgobGV2ZWwpID0+IHtcbiAgICBsZXQgY29sb3IgPSBcIlxceDFiWzkwbVwiOyAvLyBncmF5XG4gICAgc3dpdGNoIChsZXZlbCkge1xuICAgICAgY2FzZSBcImluZm9cIjpcbiAgICAgICAgY29sb3IgPSBcIlxceDFiWzM0bVwiOyAvLyBibHVlXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIndhcm5cIjpcbiAgICAgICAgY29sb3IgPSBcIlxceDFiWzMzbVwiOyAvLyB5ZWxsb3dcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZXJyb3JcIjpcbiAgICAgICAgY29sb3IgPSBcIlxceDFiWzMxbVwiOyAvLyByZWRcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBbbGV2ZWwsIGNvbG9yXTtcbiAgfSksXG4pIGFzIFJlY29yZDxMb2dMZXZlbCwgc3RyaW5nPjtcbmNvbnN0IExPR19MRVZFTF9DT0xPUl9SRVNFVCA9IFwiXFx4MWJbMG1cIjtcbmNvbnN0IERFRkFVTFRfTEVWRUw6IExvZ0xldmVsID0gXCJpbmZvXCI7XG5cbi8qKlxuICogU3VwcG9ydGVkIHNldmVyaXRpZXMsIGxvd2VzdCB0byBoaWdoZXN0OiBgZGVidWdgLCBgaW5mb2AsIGB3YXJuYCwgYGVycm9yYC5cbiAqIEEgY2FsbCBiZWxvdyB0aGUgYWN0aXZlIHRocmVzaG9sZCBpcyBkaXNjYXJkZWQgYmVmb3JlIGFueSBzdHJpbmcgd29yayBvclxuICogc2luayBJL08uXG4gKlxuICogVGhlIHRocmVzaG9sZCBjb21lcyBmcm9tIGBwcm9jZXNzLmVudi5MT0dfTEVWRUxgIG9uIGV2ZXJ5IGNhbGxcbiAqIChjYXNlLWluc2Vuc2l0aXZlLCBkZWZhdWx0IGBpbmZvYCB3aGVuIHVuc2V0LCBlbXB0eSwgb3IgdW5rbm93bikgc28gdGVzdFxuICogcnVubmVycyBhbmQgZW1iZWRkZXJzIGNhbiBjaGFuZ2UgdmVyYm9zaXR5IGFmdGVyIGltcG9ydCB3aXRob3V0IHJlc3RhcnRpbmdcbiAqIHRoZSBwcm9jZXNzLlxuICovXG5leHBvcnQgdHlwZSBMb2dMZXZlbCA9ICh0eXBlb2YgTE9HX0xFVkVMUylbbnVtYmVyXTtcblxuLyoqXG4gKiBEZXBlbmRlbmN5LWZyZWUgbGV2ZWxlZCBsb2dnZXIuIFN0YW5kYXJkIG1ldGhvZHMgaG9ub3IgYExPR19MRVZFTGA7IGBzdGFydGBcbiAqIGFuZCBgc3VjY2Vzc2AgYXJlIGluZm9ybWF0aW9uYWwgYWxpYXNlcyB3aXRoIGRpc3RpbmN0IHByZXNlbnRhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgTG9nZ2VyID0ge1xuICBbSyBpbiBMb2dMZXZlbF06ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbn0gJiB7XG4gIC8qKiBTdWNjZXNzIG1lc3NhZ2UgZW1pdHRlZCBhdCBgaW5mb2AgbGV2ZWwuICovXG4gIHN1Y2Nlc3M6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbiAgLyoqIFN0YXJ0IC8gaW4tcHJvZ3Jlc3MgbWVzc2FnZSBlbWl0dGVkIGF0IGBpbmZvYCBsZXZlbC4gKi9cbiAgc3RhcnQ6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbn07XG5cbi8qKiBgKG5hbWU/KSA9PiBMb2dnZXJgIHNpbmsgY29uc3RydWN0b3IgcmV0dXJuZWQgYnkgdGhlIGluaXQtdGltZSBmYWN0b3J5IGNoYWluLiAqL1xudHlwZSBMb2dnZXJGYWN0b3J5ID0gKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjtcblxuLyoqXG4gKiBDb25zb2xlIHtAbGluayBMb2dnZXJGYWN0b3J5fTsgYWx3YXlzIHN1Y2NlZWRzLlxuICpcbiAqIFdoZW4gYHByb2Nlc3Muc3RkZXJyYCBpcyBhdmFpbGFibGUsIGZvcm1hdHMgZWFjaCBsaW5lIGFuZCB3cml0ZXMgb25seSB0b1xuICogc3RkZXJyLiBCdW4gYGluc3BlY3RgIGZvcm1hdHMgZWFjaCBhcmd1bWVudCB3aGVuIGVuYWJsZWQ7IG90aGVyd2lzZVxuICogYHV0aWwuaW5zcGVjdGAgd2hlbiBgbm9kZTp1dGlsYCBsb2Fkcywgb3IgYSBgSlNPTi5zdHJpbmdpZnlgIGZhbGxiYWNrIHdoZW5cbiAqIGl0IGRvZXMgbm90LiBXaGVuIHN0ZGVyciBpcyB1bmF2YWlsYWJsZSAoZXZlcnkgYnJvd3NlciksIGJpbmRzXG4gKiB7QGxpbmsgY3JlYXRlRm9ybWF0dGVyfSBwcmVmaXhlcyBpbnRvIGdsb2JhbCBgY29uc29sZS4qYCBjYWxscyBhbmQgc2tpcHMgdGhlXG4gKiBgbm9kZTp1dGlsYCBpbXBvcnQgZW50aXJlbHkuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGVMb2dnZXJGYWN0b3J5KGdsb2JhbFByb2Nlc3NTdGRFcnI6IGFueSk6IFByb21pc2U8TG9nZ2VyRmFjdG9yeT4ge1xuICAvLyBJbmRpcmVjdCBzcGVjaWZpZXIgc28gdGhpcyBicm93c2VyLXNhZmUgbW9kdWxlIGRvZXNuJ3Qgc3RhdGljYWxseSBwdWxsIGluXG4gIC8vIG5vZGUgdHlwZXM6IGBub2RlOnV0aWxgIGlzIG9wdGlvbmFsICh0aGUgSlNPTiBmYWxsYmFjayBjb3ZlcnMgaXRzIGFic2VuY2UpLlxuICBjb25zdCBub2RlVXRpbCA9IFwibm9kZTp1dGlsXCI7XG4gIC8vIEdhdGVkLCBub3QganVzdCBjYXVnaHQ6IHRoZSBpbmRpcmVjdCBzcGVjaWZpZXIgZGVmZWF0cyBidW5kbGVyIGFuYWx5c2lzIGJ5XG4gIC8vIGRlc2lnbiwgc28gYSBjbGllbnQgYnVpbGQgZW1pdHMgYSBsaXRlcmFsIGBpbXBvcnQoXCJub2RlOnV0aWxcIilgIHRoYXQgbm9cbiAgLy8gYnJvd3NlciBjYW4gcmVzb2x2ZSwgYW5kIHRoZSBjYXVnaHQgcmVqZWN0aW9uIHN0aWxsIHN1cmZhY2VkIGFzIGEgY29uc29sZVxuICAvLyBlcnJvci4gYHV0aWxzYCBvbmx5IGZlZWRzIHRoZSBzdGRlcnIgYnJhbmNoIG9mIHRoZSBlbWl0dGVyIGJlbG93LCBzbyBub1xuICAvLyBzdGRlcnIgbWVhbnMgdGhlIGltcG9ydCBoYXMgbm90aGluZyB0byBzZXJ2ZSBhbmQgaXMgc2tpcHBlZCBvdXRyaWdodC5cbiAgY29uc3QgdXRpbHM6IHsgaW5zcGVjdD86IGFueSB9IHwgdW5kZWZpbmVkID1cbiAgICBnbG9iYWxQcm9jZXNzU3RkRXJyID09PSB1bmRlZmluZWRcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IGF3YWl0IGltcG9ydCgvKiBAdml0ZS1pZ25vcmUgKi8gbm9kZVV0aWwpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gIHJldHVybiBjb25zb2xlTG9nZ2VyRmFjdG9yeShnbG9iYWxQcm9jZXNzU3RkRXJyLCB1dGlscyk7XG59XG5cbi8qKlxuICogVGhlIHN5bmNocm9ub3VzIGNvcmUgb2Yge0BsaW5rIGNyZWF0ZUNvbnNvbGVMb2dnZXJGYWN0b3J5fSwgc3BsaXQgb3V0IHNvIHRoZVxuICogc2FtZSBlbWl0dGVyIGFsc28gc2VydmVzIGFzIHRoZSBib290c3RyYXAgc2luayBiZWZvcmUgYW55IGFzeW5jIGZhY3RvcnkgaGFzXG4gKiByZXNvbHZlZC4gYHV0aWxzYCBpcyBgbm9kZTp1dGlsYCB3aGVuIGl0IGxvYWRlZDsgd2l0aG91dCBpdCwgb2JqZWN0IGFyZ3VtZW50c1xuICogZm9ybWF0IHRocm91Z2ggdGhlIGBKU09OLnN0cmluZ2lmeWAgZmFsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGNvbnNvbGVMb2dnZXJGYWN0b3J5KFxuICBnbG9iYWxQcm9jZXNzU3RkRXJyOiBhbnksXG4gIHV0aWxzPzogeyBpbnNwZWN0PzogYW55IH0gfCB1bmRlZmluZWQsXG4pOiBMb2dnZXJGYWN0b3J5IHtcbiAgY29uc3QgYnVuSW5zcGVjdCA9XG4gICAgZ2xvYmFsQnVuICE9PSB1bmRlZmluZWQgJiYgIXRvQm9vbGVhbihnbG9iYWxCdW4uZW52Py5MT0dfQlVOX0NPTlNPTEVfRElTQUJMRUQpXG4gICAgICA/IGdsb2JhbEJ1bi5pbnNwZWN0XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgY29uc3QgcmVzZXRDb2xvcnNQcmVmaXggPSBidW5JbnNwZWN0ICE9PSB1bmRlZmluZWQ7XG5cbiAgY29uc3QgaW5zcGVjdCA9IChhcmc6IGFueSwgY29sb3JzPzogYm9vbGVhbikgPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykgfHwgKHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiYgYXJnICE9PSBudWxsKSkge1xuICAgICAgaWYgKGJ1bkluc3BlY3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gYnVuSW5zcGVjdChhcmcsIHtcbiAgICAgICAgICBjb2xvcnM6IGNvbG9ycyxcbiAgICAgICAgICBkZXB0aDogdXRpbHM/Lmluc3BlY3Q/LmRlZmF1bHRPcHRpb25zPy5kZXB0aCA/PyB1bmRlZmluZWQsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICh1dGlscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB1dGlscy5pbnNwZWN0KGFyZywge1xuICAgICAgICAgIC4uLnV0aWxzPy5pbnNwZWN0Py5kZWZhdWx0T3B0aW9ucyxcbiAgICAgICAgICBjb2xvcnM6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNlZW4gPSBuZXcgV2Vha1NldCgpO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnLCAoXywgdmFsdWUpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSByZXR1cm4gXCJbQ2lyY3VsYXJdXCI7XG4gICAgICAgICAgICBzZWVuLmFkZCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBTdHJpbmcoYXJnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZmFjdG9yeSA9IChuYW1lPzogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcHJlZml4Rm9ybWF0dGVyID0gY3JlYXRlRm9ybWF0dGVyKG5hbWUsIGdsb2JhbFByb2Nlc3NTdGRFcnIsIHJlc2V0Q29sb3JzUHJlZml4KTtcbiAgICBjb25zdCBsb2dnZXIgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBMT0dfTEVWRUxTLm1hcCgobGV2ZWwpID0+IHtcbiAgICAgICAgY29uc3QgeyBwcmVmaXgsIGNvbG9ycywgcmVzZXRDb2xvcnMgfSA9IHByZWZpeEZvcm1hdHRlcihsZXZlbCk7XG4gICAgICAgIGNvbnN0IGVtaXR0ZXIgPSAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgICBpZiAoIXNob3VsZEVtaXQobGV2ZWwsIHRydWUpKSByZXR1cm47XG4gICAgICAgICAgaWYgKGdsb2JhbFByb2Nlc3NTdGRFcnIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZVBhcnRzID0gcHJlZml4ID8gW3ByZWZpeF0gOiBbXTtcbiAgICAgICAgICAgIG1lc3NhZ2VQYXJ0cy5wdXNoKC4uLmFyZ3MubWFwKChhcmcpID0+IGluc3BlY3QoYXJnLCBjb2xvcnMpKSk7XG4gICAgICAgICAgICBpZiAocmVzZXRDb2xvcnMpIG1lc3NhZ2VQYXJ0cy5wdXNoKExPR19MRVZFTF9DT0xPUl9SRVNFVCk7XG4gICAgICAgICAgICBnbG9iYWxQcm9jZXNzU3RkRXJyLndyaXRlKG1lc3NhZ2VQYXJ0cy5qb2luKFwiIFwiKSArIFwiXFxuXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgbGV2ZWxGbiA9IGNvbnNvbGVbbGV2ZWxdO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBsZXZlbEZuICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgbGV2ZWxGbiA9IGNvbnNvbGUubG9nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByZWZpeCkgbGV2ZWxGbiA9IGxldmVsRm4uYmluZChjb25zb2xlLCBwcmVmaXgpO1xuICAgICAgICAgICAgbGV2ZWxGbiguLi5hcmdzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBbbGV2ZWwsIGVtaXR0ZXJdO1xuICAgICAgfSksXG4gICAgKSBhcyBMb2dnZXI7XG4gICAgLy8gQ29udmVuaWVuY2UgbGV2ZWxzIHNoYXJlIHRoZSBpbmZvIHNpbmsuXG4gICAgbG9nZ2VyLnN1Y2Nlc3MgPSBsb2dnZXIuaW5mbztcbiAgICBsb2dnZXIuc3RhcnQgPSBsb2dnZXIuaW5mbztcbiAgICByZXR1cm4gbG9nZ2VyO1xuICB9O1xuICBjb25zdCBkZWZhdWx0RmFjdG9yeSA9IG1lbW9pemUoZmFjdG9yeSk7XG4gIHJldHVybiAobmFtZT86IHN0cmluZykgPT4gKG5hbWUgPyBmYWN0b3J5KG5hbWUpIDogZGVmYXVsdEZhY3RvcnkoKSk7XG59XG5cbi8qKlxuICogRnVsbCBjb25zb2xlIHNpbmsgd2l0aCBvcHRpb25hbCBgbm9kZTp1dGlsYCBpbnNwZWN0aW9uLiBNZW1vaXplZCBzb1xuICogY29uY3VycmVudCBhbmQgcmVwZWF0IGNhbGxlcnMgc2hhcmUgb25lIGluLWZsaWdodCBwcm9taXNlIGFuZCBzZXR0bGVkIHJlc3VsdC5cbiAqL1xuY29uc3QgcmVzb2x2ZUZhY3RvcnkgPSBtZW1vaXplKGFzeW5jICgpOiBQcm9taXNlPExvZ2dlckZhY3Rvcnk+ID0+IHtcbiAgcmV0dXJuIGNyZWF0ZUNvbnNvbGVMb2dnZXJGYWN0b3J5KGdsb2JhbFByb2Nlc3NTdGRFcnIpO1xufSk7XG5cbi8qKlxuICogQWN0aXZlIGZhY3Rvcnkgc3RhcnRzIGFzIGEgc3luYyBjb25zb2xlIHNpbmsgKG5vIGBhd2FpdGAsIHNvIHRoaXMgbW9kdWxlXG4gKiBmaW5pc2hlcyBldmFsdWF0aW5nIGltbWVkaWF0ZWx5KSBhbmQgc3dhcHMgdG8ge0BsaW5rIHJlc29sdmVGYWN0b3J5fSdzXG4gKiByZXN1bHQgd2hlbiBzZXJ2ZXItc2lkZSBhcmd1bWVudCBpbnNwZWN0aW9uIGlzIHJlYWR5LlxuICovXG5sZXQgYWN0aXZlRmFjdG9yeTogTG9nZ2VyRmFjdG9yeSA9IGNvbnNvbGVMb2dnZXJGYWN0b3J5KGdsb2JhbFByb2Nlc3NTdGRFcnIpO1xudm9pZCByZXNvbHZlRmFjdG9yeSgpLnRoZW4oXG4gIChmYWN0b3J5KSA9PiB7XG4gICAgYWN0aXZlRmFjdG9yeSA9IGZhY3Rvcnk7XG4gIH0sXG4gICgpID0+IHtcbiAgICAvLyBLZWVwIHRoZSBzeW5jIGNvbnNvbGUgc2luazsgbmV2ZXIgbGVhdmUgaW1wb3J0ZXJzIHdpdGhvdXQgYSBmYWN0b3J5LlxuICB9LFxuKTtcblxuLyoqXG4gKiBCdWlsZCBhIGxvZ2dlciB0aGF0IHJlYmluZHMgd2hlbiB7QGxpbmsgYWN0aXZlRmFjdG9yeX0gdXBncmFkZXMuIENhbGxlcnMgdGhhdFxuICogY2FwdHVyZSBgY29uc3QgbG9nID0gbG9nZ2VyKFwieFwiKWAgYXQgbW9kdWxlIHNjb3BlIHN0aWxsIGdldCB0aGUgdXBncmFkZWRcbiAqIGZvcm1hdHRlciBvbmNlIGl0IGFycml2ZXMsIHdpdGhvdXQgZXZlcnkgY2FsbCBzaXRlIHdhaXRpbmcgb24gYSBwcm9taXNlLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2dnZXIobmFtZT86IHN0cmluZyk6IExvZ2dlciB7XG4gIGxldCBib3VuZDogeyBmYWN0b3J5OiBMb2dnZXJGYWN0b3J5OyBsb2dnZXI6IExvZ2dlciB9IHwgdW5kZWZpbmVkO1xuICBjb25zdCBzaW5rID0gKCk6IExvZ2dlciA9PiB7XG4gICAgaWYgKGJvdW5kPy5mYWN0b3J5ICE9PSBhY3RpdmVGYWN0b3J5KSB7XG4gICAgICBib3VuZCA9IHsgZmFjdG9yeTogYWN0aXZlRmFjdG9yeSwgbG9nZ2VyOiBhY3RpdmVGYWN0b3J5KG5hbWUpIH07XG4gICAgfVxuICAgIHJldHVybiBib3VuZC5sb2dnZXI7XG4gIH07XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgWy4uLkxPR19MRVZFTFMsIFwic3VjY2Vzc1wiLCBcInN0YXJ0XCJdLm1hcCgobGV2ZWwpID0+IFtcbiAgICAgIGxldmVsLFxuICAgICAgKC4uLmFyZ3M6IGFueVtdKSA9PiBzaW5rKClbbGV2ZWwgYXMga2V5b2YgTG9nZ2VyXSguLi5hcmdzKSxcbiAgICBdKSxcbiAgKSBhcyBMb2dnZXI7XG59XG5cbi8qKlxuICogQnVpbGQgYSBsaW5lIHByZWZpeCBvZiBgTEVWRUwgW25hbWVdYCBvbiBOb2RlL0J1biBob3N0cywgb3IgYFtuYW1lXWAgYWxvbmVcbiAqIGluIGJyb3dzZXJzIChlaXRoZXIgcGFydCBvbWl0dGVkIHdoZW4gYWJzZW50KS4gQXBwbGllcyBwZXItbGV2ZWwgQU5TSSBjb2xvclxuICogd2hlbiBgc3RyZWFtU3VwcG9ydHNDb2xvcmAgaXMgdHJ1ZSBmb3IgdGhlIGdpdmVuIHN0ZGVyciBzdHJlYW0uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUZvcm1hdHRlcihcbiAgbmFtZTogYW55LFxuICBzdHJlYW06IGFueSxcbiAgcmVzZXRDb2xvcnNQcmVmaXg/OiBib29sZWFuLFxuKTogKGxldmVsPzogTG9nTGV2ZWwpID0+IHsgcHJlZml4OiBzdHJpbmc7IGNvbG9yczogYm9vbGVhbjsgcmVzZXRDb2xvcnM6IGJvb2xlYW4gfSB7XG4gIGNvbnN0IGdsb2IgPSBnbG9iYWxUaGlzIGFzIHsgd2luZG93PzogdW5rbm93bjsgZG9jdW1lbnQ/OiB1bmtub3duIH07XG4gIGNvbnN0IGlzQnJvd3NlciA9IGdsb2Iud2luZG93ICE9PSB1bmRlZmluZWQgJiYgZ2xvYi5kb2N1bWVudCAhPT0gdW5kZWZpbmVkO1xuICBjb25zdCBzdXBwb3J0c0NvbG9yID0gIWlzQnJvd3NlciA/IHN0cmVhbVN1cHBvcnRzQ29sb3Ioc3RyZWFtKSA6IGZhbHNlO1xuICBjb25zdCBuYW1lUHJlZml4ID0gbmFtZSA/IFwiW1wiICsgbmFtZSArIFwiXVwiIDogdW5kZWZpbmVkO1xuICByZXR1cm4gKGxldmVsPzogTG9nTGV2ZWwpID0+IHtcbiAgICBjb25zdCBjb2xvciA9IHN1cHBvcnRzQ29sb3IgJiYgbGV2ZWwgIT09IHVuZGVmaW5lZCA/IExPR19MRVZFTF9DT0xPUlNbbGV2ZWxdIDogdW5kZWZpbmVkO1xuICAgIGxldCBwcmVmaXggPSBbIWlzQnJvd3NlciAmJiBsZXZlbCA/IGxldmVsLnRvVXBwZXJDYXNlKCkgOiB1bmRlZmluZWQsIG5hbWVQcmVmaXhdXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAuam9pbihcIiBcIik7XG4gICAgbGV0IHJlc2V0Q29sb3JzID0gZmFsc2U7XG4gICAgaWYgKGNvbG9yKSB7XG4gICAgICBjb25zdCBhcHBseVJlc2V0Q29sb3JzUHJlZml4ID0gcmVzZXRDb2xvcnNQcmVmaXggfHwgXCJpbmZvXCIgPT09IGxldmVsO1xuICAgICAgaWYgKCFhcHBseVJlc2V0Q29sb3JzUHJlZml4KSByZXNldENvbG9ycyA9IHRydWU7XG4gICAgICBwcmVmaXggPSBhcHBseVJlc2V0Q29sb3JzUHJlZml4ID8gY29sb3IgKyBwcmVmaXggKyBMT0dfTEVWRUxfQ09MT1JfUkVTRVQgOiBjb2xvciArIHByZWZpeDtcbiAgICB9XG4gICAgcmV0dXJuIHsgcHJlZml4LCBjb2xvcnM6IGNvbG9yID8gdHJ1ZSA6IGZhbHNlLCByZXNldENvbG9ycyB9O1xuICB9O1xufVxuXG4vKiogVHJ1ZSB3aGVuIGBzdHJlYW1gIGlzIGEgVFRZIGFuZCB0aGUgdGVybWluYWwgaXMgbm90IGBkdW1iYC4gKi9cbmZ1bmN0aW9uIHN0cmVhbVN1cHBvcnRzQ29sb3Ioc3RyZWFtPzogdW5rbm93bik6IGJvb2xlYW4ge1xuICBpZiAoZ2xvYmFsUHJvY2VzcyA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBzdHJlYW0gIT09IFwib2JqZWN0XCIgfHwgc3RyZWFtID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IHsgaXNUVFkgfSA9IHN0cmVhbSBhcyB7IGlzVFRZPzogdW5rbm93biB9O1xuICBpZiAoaXNUVFkgIT09IHRydWUpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgdGVybSA9IGdsb2JhbFByb2Nlc3MuZW52Py5URVJNPy50b0xvd2VyQ2FzZSgpO1xuICBpZiAoXCJkdW1iXCIgPT0gdGVybSkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqIFBhcnNlIGEgcmF3IHZhbHVlIGFzIHtAbGluayBMb2dMZXZlbH0gKHRyaW1tZWQsIGNhc2UtaW5zZW5zaXRpdmUpLiAqL1xuZnVuY3Rpb24gcGFyc2VMb2dMZXZlbChyYXc6IHVua25vd24pOiBMb2dMZXZlbCB8IHVuZGVmaW5lZCB7XG4gIGlmIChyYXcgPT09IHVuZGVmaW5lZCB8fCByYXcgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGxldCB0ZXh0ID0gdHlwZW9mIHJhdyA9PT0gXCJzdHJpbmdcIiA/IHJhdyA6IFN0cmluZyhyYXcpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDI7IGkrKykge1xuICAgIGlmIChpID4gMCkge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IHRleHQudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodGV4dCA9PT0gbm9ybWFsaXplZCkgYnJlYWs7XG4gICAgICB0ZXh0ID0gbm9ybWFsaXplZDtcbiAgICB9XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICBicmVhaztcbiAgICB9IGVsc2UgaWYgKHRleHQgaW4gTE9HX0xFVkVMX1JBTkspIHtcbiAgICAgIHJldHVybiB0ZXh0IGFzIExvZ0xldmVsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKiogQWN0aXZlIHRocmVzaG9sZCBmcm9tIGBwcm9jZXNzLmVudi5MT0dfTEVWRUxgLCBkZWZhdWx0IHtAbGluayBERUZBVUxUX0xFVkVMfS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY3RpdmVMZXZlbCgpOiBMb2dMZXZlbCB7XG4gIHJldHVybiBwYXJzZUxvZ0xldmVsKGdsb2JhbFByb2Nlc3M/LmVudj8uTE9HX0xFVkVMKSA/PyBERUZBVUxUX0xFVkVMO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgYHJhd2AgbWVldHMgdGhlIGN1cnJlbnQgYExPR19MRVZFTGAgdGhyZXNob2xkLlxuICpcbiAqIFBhcnNlcyBgcmF3YCBhcyBhIHtAbGluayBMb2dMZXZlbH07IHdoZW4gcGFyc2luZyBmYWlscywgcmV0dXJuc1xuICogYGRlZmF1bHRSZXN1bHRgIGlmIHN1cHBsaWVkLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkRW1pdChyYXc6IHVua25vd24sIGRlZmF1bHRSZXN1bHQ/OiBib29sZWFuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGxldmVsID0gcGFyc2VMb2dMZXZlbChyYXcpO1xuICBpZiAobGV2ZWwgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRlZmF1bHRSZXN1bHQgPz8gZmFsc2U7XG4gIHJldHVybiBMT0dfTEVWRUxfUkFOS1tsZXZlbF0gPj0gTE9HX0xFVkVMX1JBTktbYWN0aXZlTGV2ZWwoKV07XG59XG5cbi8qKlxuICogV2hldGhlciBhIGNhbGwgYXQgYGxldmVsYCB3b3VsZCBiZSBlbWl0dGVkIGF0IHRoZSBjdXJyZW50XG4gKiBgcHJvY2Vzcy5lbnYuTE9HX0xFVkVMYCB0aHJlc2hvbGQuIFVzZSBiZWZvcmUgYnVpbGRpbmcgZXhwZW5zaXZlIGRlYnVnXG4gKiBwYXlsb2Fkcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogaWYgKGlzTGV2ZWxFbmFibGVkKFwiZGVidWdcIikpIHtcbiAqICAgbG9nLmRlYnVnKFwibW91bnRzOnJlc29sdmVyXCIsIHsgY29udHJpYnV0aW9uOiBhd2FpdCBoZWF2eVNuYXBzaG90KCkgfSk7XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0xldmVsRW5hYmxlZChsZXZlbDogTG9nTGV2ZWwpOiBib29sZWFuIHtcbiAgcmV0dXJuIHNob3VsZEVtaXQobGV2ZWwpO1xufVxuXG5jb25zdCBMT0dHRVJfTkFNRV9SRUdFWCA9IC9eKD86W2Etel1bYS16MC05Ky4tXSo6XFwvXFwvKT8uKlxcLyhbXi8uXSspKD86XFwuW14vXSspPyQvaTtcblxuLyoqXG4gKiBEZXJpdmUgdGhlIHRhZyBzdHJpbmcgZnJvbSBhIGxvZ2dlciBuYW1lLCBwbHVnaW4sIG9yIHBhdGguIFNsYXNoLSBhbmRcbiAqIFVSTC1zaGFwZWQgc3RyaW5ncyB1c2UgdGhlIGxhc3QgcGF0aCBzZWdtZW50IChleHRlbnNpb24gc3RyaXBwZWQpOyBwbGFpblxuICogc3RyaW5ncyBwYXNzIHRocm91Z2ggdW5jaGFuZ2VkLiBFbXB0eSBvciBtaXNzaW5nIG5hbWVzIC0+IGB1bmRlZmluZWRgXG4gKiAodW50YWdnZWQgc2luaykuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RMb2dnZXJOYW1lKGxvZ2dlck5hbWU6IE5hbWVMaWtlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFsb2dnZXJOYW1lKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAodHlwZW9mIGxvZ2dlck5hbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBtYXRjaCA9IGxvZ2dlck5hbWUubWF0Y2goTE9HR0VSX05BTUVfUkVHRVgpO1xuICAgIHJldHVybiBtYXRjaD8uWzFdID8/IGxvZ2dlck5hbWU7XG4gIH1cbiAgcmV0dXJuIGV4dHJhY3RMb2dnZXJOYW1lKGxvZ2dlck5hbWUubmFtZSk7XG59XG5cbi8qKlxuICogQnVpbGQgYSB0YWdnZWQgbG9nZ2VyIGZvciBhIHBsdWdpbiBvciBtb2R1bGUuXG4gKlxuICogVGhlIHRhZyBpcyBgW25hbWVdYCB3aGVuIGBsb2dnZXJOYW1lYCBpcyBhIG5vbi1lbXB0eSBzdHJpbmcsIGFcbiAqIHtAbGluayBOYW1lTGlrZX0gd2l0aCBgbmFtZWAsIG9yIGEgZmlsZSAvIFVSTCBwYXRoICh0aGUgYmFzZW5hbWUgd2l0aG91dFxuICogZXh0ZW5zaW9uIGlzIHVzZWQpLiBUaGUgY29uc29sZSBzaW5rIHByZXBlbmRzIGBMRVZFTCBbbmFtZV1gIG9uIE5vZGUvQnVuXG4gKiBob3N0cyBvciBgW25hbWVdYCBhbG9uZSBpbiBicm93c2VycyB2aWEge0BsaW5rIGNyZWF0ZUZvcm1hdHRlcn0uXG4gKlxuICogQ2FsbHMgYmVsb3cgYHByb2Nlc3MuZW52LkxPR19MRVZFTGAgYXJlIGRyb3BwZWQgYnkge0BsaW5rIHNob3VsZEVtaXR9IGJlZm9yZVxuICogdGhlIHNpbmsgZm9ybWF0cyBvciB3cml0ZXMgdGhlIGxpbmUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG4gKlxuICogY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImdlbmllL2NoYXRcIik7XG4gKiBsb2dnZXIuaW5mbyhcInN0YXJ0aW5nXCIpO1xuICogbG9nZ2VyLndhcm4oXCJtaXNzaW5nIG9wdGlvbmFsIGNvbmZpZ1wiLCB7IHJlYXNvbjogXCJubyBlbnYgdmFyXCIgfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dnZXIobG9nZ2VyTmFtZTogTmFtZUxpa2UgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBMb2dnZXIge1xuICBjb25zdCBuYW1lID0gZXh0cmFjdExvZ2dlck5hbWUobG9nZ2VyTmFtZSk7XG4gIHJldHVybiBjcmVhdGVMb2dnZXIobmFtZSk7XG59XG4iXX0=
|
package/lib/src/options.d.ts
CHANGED
|
@@ -59,8 +59,18 @@ export declare const DatabricksOptionsSchema: z.ZodObject<{
|
|
|
59
59
|
export type DatabricksOptions = z.input<typeof DatabricksOptionsSchema>;
|
|
60
60
|
/** Key format emitted by {@link serializeOpts}. */
|
|
61
61
|
export type OptionSerializationFormat = "flag" | "env";
|
|
62
|
+
/** Namespace every option field while retaining its owning Zod field schemas. */
|
|
63
|
+
export type NamespacedOptionShape<T extends z.ZodRawShape, Prefix extends string> = {
|
|
64
|
+
[Key in keyof T as Key extends string ? `${Prefix}${Capitalize<Key>}` : never]: T[Key];
|
|
65
|
+
};
|
|
62
66
|
/** Serialize complete parsed options as JSON keyed by flags or environment names. */
|
|
63
67
|
export declare function serializeOpts<T extends z.ZodRawShape>(schema: z.ZodObject<T>, values: z.input<z.ZodObject<T>>, format: OptionSerializationFormat): string;
|
|
68
|
+
/** Serialize complete parsed options as a process environment map. */
|
|
69
|
+
export declare function serializeOptsEnvironment<T extends z.ZodRawShape>(schema: z.ZodObject<T>, values: z.input<z.ZodObject<T>>): Readonly<Record<string, string>>;
|
|
70
|
+
/** Namespace a reusable option schema so composed CLI flags render as `--<namespace>-<field>`. */
|
|
71
|
+
export declare function namespaceOpts<T extends z.ZodRawShape, Prefix extends string>(schema: z.ZodObject<T>, prefix: Prefix): z.ZodObject<NamespacedOptionShape<T, Prefix>>;
|
|
72
|
+
/** Parse namespaced option values back through their owning schema. */
|
|
73
|
+
export declare function unnamespaceOpts<T extends z.ZodRawShape>(schema: z.ZodObject<T>, values: object, prefix: string): z.output<z.ZodObject<T>>;
|
|
64
74
|
export declare const LakebaseOptionsSchema: z.ZodObject<{
|
|
65
75
|
lakebaseEndpoint: z.ZodOptional<z.ZodString>;
|
|
66
76
|
}, z.core.$strict>;
|
|
@@ -69,21 +79,42 @@ export type LakebaseOptions = z.input<typeof LakebaseOptionsSchema>;
|
|
|
69
79
|
export type OptionValueMap = Readonly<Record<string, unknown>> | null;
|
|
70
80
|
/** Parse only supplied flag and environment values through an owning Zod object schema. */
|
|
71
81
|
export declare function parseOpts<T extends z.ZodRawShape>(schema: z.ZodObject<T>, flags?: OptionValueMap, environment?: OptionValueMap): Partial<z.output<z.ZodObject<T>>>;
|
|
72
|
-
/**
|
|
73
|
-
export
|
|
82
|
+
/** Supported listener transport schemes. */
|
|
83
|
+
export type ListenScheme = "tcp" | "unix";
|
|
84
|
+
/** TCP listener returned by {@link listenAddressSchema}. */
|
|
85
|
+
export interface TcpListenAddress {
|
|
86
|
+
readonly scheme: "tcp";
|
|
74
87
|
readonly host: string;
|
|
75
88
|
readonly port: number;
|
|
76
89
|
}
|
|
90
|
+
/** Unix-domain listener returned by {@link listenAddressSchema}. */
|
|
91
|
+
export interface UnixListenAddress {
|
|
92
|
+
readonly scheme: "unix";
|
|
93
|
+
readonly path: string;
|
|
94
|
+
}
|
|
95
|
+
/** Transport-aware listener address. */
|
|
96
|
+
export type ListenAddress = TcpListenAddress | UnixListenAddress;
|
|
77
97
|
/** Defaults and validation policy for {@link listenAddressSchema}. */
|
|
78
98
|
export interface ListenAddressOptions {
|
|
79
99
|
readonly port: number;
|
|
80
100
|
readonly host?: string;
|
|
81
101
|
readonly loopback?: boolean;
|
|
102
|
+
readonly scheme?: ListenScheme;
|
|
103
|
+
readonly schemes?: readonly ListenScheme[];
|
|
104
|
+
readonly withDefault?: boolean;
|
|
82
105
|
}
|
|
83
|
-
/**
|
|
84
|
-
export
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
106
|
+
/** Raw listener input accepted before transport-aware normalization. */
|
|
107
|
+
export type ListenAddressInput = ListenAddress | string | number | undefined;
|
|
108
|
+
export declare function listenAddressSchema(options: ListenAddressOptions & {
|
|
109
|
+
readonly schemes: readonly ["tcp", "unix"];
|
|
110
|
+
readonly withDefault: false;
|
|
111
|
+
}): z.ZodType<ListenAddress, unknown>;
|
|
112
|
+
export declare function listenAddressSchema(options: ListenAddressOptions & {
|
|
113
|
+
readonly schemes: readonly ["tcp", "unix"];
|
|
114
|
+
}): z.ZodDefault<z.ZodType<ListenAddress, unknown>>;
|
|
115
|
+
export declare function listenAddressSchema(options: ListenAddressOptions & {
|
|
116
|
+
readonly withDefault: false;
|
|
117
|
+
}): z.ZodType<TcpListenAddress, unknown>;
|
|
118
|
+
export declare function listenAddressSchema(options: ListenAddressOptions): z.ZodDefault<z.ZodType<TcpListenAddress, unknown>>;
|
|
119
|
+
/** Render a listener address as a `tcp://` or `unix://` URL. */
|
|
89
120
|
export declare function formatListenAddress(address: ListenAddress): string;
|