@workflow/utils 5.0.0-beta.3 → 5.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/parse-name.d.ts +11 -0
- package/dist/parse-name.d.ts.map +1 -1
- package/dist/parse-name.js +44 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { pluralize } from './pluralize.js';
|
|
2
|
-
export { formatStepName, formatWorkflowName, parseClassName, parseStepName, parseWorkflowName, } from './parse-name.js';
|
|
2
|
+
export { formatStepName, formatWorkflowName, parseClassName, parseStepName, parseWorkflowName, stepDisplayName, workflowDisplayName, } from './parse-name.js';
|
|
3
3
|
export { once, type PromiseWithResolvers, withResolvers } from './promise.js';
|
|
4
4
|
export { parseDurationToDate } from './time.js';
|
|
5
5
|
export { isVercelWorldTarget, resolveWorkflowTargetWorld, usesVercelWorld, } from './world-target.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,KAAK,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { pluralize } from './pluralize.js';
|
|
2
|
-
export { formatStepName, formatWorkflowName, parseClassName, parseStepName, parseWorkflowName, } from './parse-name.js';
|
|
2
|
+
export { formatStepName, formatWorkflowName, parseClassName, parseStepName, parseWorkflowName, stepDisplayName, workflowDisplayName, } from './parse-name.js';
|
|
3
3
|
export { once, withResolvers } from './promise.js';
|
|
4
4
|
export { parseDurationToDate } from './time.js';
|
|
5
5
|
export { isVercelWorldTarget, resolveWorkflowTargetWorld, usesVercelWorld, } from './world-target.js';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixtQkFBbUIsR0FDcEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsSUFBSSxFQUE2QixhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLGVBQWUsR0FDaEIsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHBsdXJhbGl6ZSB9IGZyb20gJy4vcGx1cmFsaXplLmpzJztcbmV4cG9ydCB7XG4gIGZvcm1hdFN0ZXBOYW1lLFxuICBmb3JtYXRXb3JrZmxvd05hbWUsXG4gIHBhcnNlQ2xhc3NOYW1lLFxuICBwYXJzZVN0ZXBOYW1lLFxuICBwYXJzZVdvcmtmbG93TmFtZSxcbiAgc3RlcERpc3BsYXlOYW1lLFxuICB3b3JrZmxvd0Rpc3BsYXlOYW1lLFxufSBmcm9tICcuL3BhcnNlLW5hbWUuanMnO1xuZXhwb3J0IHsgb25jZSwgdHlwZSBQcm9taXNlV2l0aFJlc29sdmVycywgd2l0aFJlc29sdmVycyB9IGZyb20gJy4vcHJvbWlzZS5qcyc7XG5leHBvcnQgeyBwYXJzZUR1cmF0aW9uVG9EYXRlIH0gZnJvbSAnLi90aW1lLmpzJztcbmV4cG9ydCB7XG4gIGlzVmVyY2VsV29ybGRUYXJnZXQsXG4gIHJlc29sdmVXb3JrZmxvd1RhcmdldFdvcmxkLFxuICB1c2VzVmVyY2VsV29ybGQsXG59IGZyb20gJy4vd29ybGQtdGFyZ2V0LmpzJztcbiJdfQ==
|
package/dist/parse-name.d.ts
CHANGED
|
@@ -46,4 +46,15 @@ export declare function parseClassName(name: string): {
|
|
|
46
46
|
*/
|
|
47
47
|
export declare function formatStepName(name: string): string;
|
|
48
48
|
export declare function formatWorkflowName(name: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Best-effort short display name for spans and UI labels. Accepts either the
|
|
51
|
+
* raw machine name (`workflow//./src/jobs/order//processOrder`) or the
|
|
52
|
+
* queue-sanitized form (`workflow----src-jobs-order--processOrder`, where
|
|
53
|
+
* every non-alphanumeric character was replaced with `-`) and returns just
|
|
54
|
+
* the function name (`processOrder`). Falls back to the input unchanged when
|
|
55
|
+
* neither form is recognized.
|
|
56
|
+
*/
|
|
57
|
+
export declare function workflowDisplayName(name: string): string;
|
|
58
|
+
/** See {@link workflowDisplayName} — the step-name equivalent. */
|
|
59
|
+
export declare function stepDisplayName(name: string): string;
|
|
49
60
|
//# sourceMappingURL=parse-name.d.ts.map
|
package/dist/parse-name.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-name.d.ts","sourceRoot":"","sources":["../src/parse-name.ts"],"names":[],"mappings":"AAyDA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM;eAxD9B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SA0DpE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM;eAnE1B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SAqEpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM;eA9E3B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SAgFpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
|
1
|
+
{"version":3,"file":"parse-name.d.ts","sourceRoot":"","sources":["../src/parse-name.ts"],"names":[],"mappings":"AAyDA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM;eAxD9B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SA0DpE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM;eAnE1B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SAqEpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM;eA9E3B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SAgFpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD"}
|
package/dist/parse-name.js
CHANGED
|
@@ -93,9 +93,52 @@ export function formatStepName(name) {
|
|
|
93
93
|
export function formatWorkflowName(name) {
|
|
94
94
|
return formatParsedName(parseWorkflowName(name), name);
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Best-effort short display name for spans and UI labels. Accepts either the
|
|
98
|
+
* raw machine name (`workflow//./src/jobs/order//processOrder`) or the
|
|
99
|
+
* queue-sanitized form (`workflow----src-jobs-order--processOrder`, where
|
|
100
|
+
* every non-alphanumeric character was replaced with `-`) and returns just
|
|
101
|
+
* the function name (`processOrder`). Falls back to the input unchanged when
|
|
102
|
+
* neither form is recognized.
|
|
103
|
+
*/
|
|
104
|
+
export function workflowDisplayName(name) {
|
|
105
|
+
return (parseWorkflowName(name)?.shortName ??
|
|
106
|
+
shortNameFromSanitized('workflow', name) ??
|
|
107
|
+
name);
|
|
108
|
+
}
|
|
109
|
+
/** See {@link workflowDisplayName} — the step-name equivalent. */
|
|
110
|
+
export function stepDisplayName(name) {
|
|
111
|
+
return (parseStepName(name)?.shortName ??
|
|
112
|
+
shortNameFromSanitized('step', name) ??
|
|
113
|
+
name);
|
|
114
|
+
}
|
|
115
|
+
function shortNameFromSanitized(tag, name) {
|
|
116
|
+
if (!name.startsWith(`${tag}--`))
|
|
117
|
+
return null;
|
|
118
|
+
// The `//` separators became `--`, and within the function-name part any
|
|
119
|
+
// nested-function `/` became `-`. Function names are mostly dash-free, so
|
|
120
|
+
// the innermost name is the last dash-free segment. This is best-effort:
|
|
121
|
+
// `$` is a valid JS identifier character but is also sanitized to `-`, so
|
|
122
|
+
// a name like `process$Order` displays as `Order` — accepted limitation.
|
|
123
|
+
const segments = name.split('--').filter(Boolean);
|
|
124
|
+
const functionPart = segments.at(-1);
|
|
125
|
+
let shortName = functionPart?.split('-').filter(Boolean).at(-1) ?? '';
|
|
126
|
+
// Mirror parseName's default-export handling: display default exports as
|
|
127
|
+
// the module's short name (the module part is the second-to-last `--`
|
|
128
|
+
// segment; its last `-` segment is the module short name), so the same
|
|
129
|
+
// workflow doesn't render as e.g. `order` from the raw name but
|
|
130
|
+
// `default` from the sanitized name.
|
|
131
|
+
if (['default', '__default'].includes(shortName)) {
|
|
132
|
+
const moduleShortName = segments.at(-2)?.split('-').filter(Boolean).at(-1);
|
|
133
|
+
if (moduleShortName && moduleShortName !== tag) {
|
|
134
|
+
shortName = moduleShortName;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return shortName || null;
|
|
138
|
+
}
|
|
96
139
|
function formatParsedName(parsed, fallback) {
|
|
97
140
|
if (!parsed)
|
|
98
141
|
return fallback;
|
|
99
142
|
return `${parsed.shortName} (${parsed.moduleSpecifier})`;
|
|
100
143
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZS1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxTQUFTLFNBQVMsQ0FDaEIsR0FBVyxFQUNYLElBQVk7SUFFWixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELDJEQUEyRDtJQUMzRCxTQUFTO0lBQ1Qsc0RBQXNEO0lBQ3RELGlDQUFpQztJQUNqQyxzR0FBc0c7SUFDdEcsa0dBQWtHO0lBQ2xHLDZGQUE2RjtJQUM3RixNQUFNLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCwyRUFBMkU7SUFDM0UsSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFckQsZ0RBQWdEO0lBQ2hELHlFQUF5RTtJQUN6RSwyRUFBMkU7SUFDM0UsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JDLDJDQUEyQztRQUMzQyxlQUFlLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUQsQ0FBQztTQUFNLENBQUM7UUFDTixtRUFBbUU7UUFDbkUsb0VBQW9FO1FBQ3BFLE1BQU0sY0FBYyxHQUNsQixlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2pELGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsZUFBZSxHQUFHLGNBQWMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCx1RUFBdUU7SUFDdkUsZ0ZBQWdGO0lBQ2hGLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BFLFNBQVMsR0FBRyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxTQUFTO1FBQ1QsZUFBZTtRQUNmLFlBQVk7S0FDYixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE9BQU8sU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZO0lBQ3hDLE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE9BQU8sU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE9BQU8sZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBWTtJQUM3QyxPQUFPLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUN2QixNQUlRLEVBQ1IsUUFBZ0I7SUFFaEIsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUM3QixPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsZUFBZSxHQUFHLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGFyc2UgYSBtYWNoaW5lIHJlYWRhYmxlIG5hbWUuXG4gKlxuICogQHNlZSB7QGxpbmsgLi4vLi4vc3djLXBsdWdpbi13b3JrZmxvdy90cmFuc2Zvcm0vc3JjL25hbWluZy5yc30gZm9yIHRoZSBuYW1pbmcgc2NoZW1lLlxuICovXG5mdW5jdGlvbiBwYXJzZU5hbWUoXG4gIHRhZzogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmdcbik6IHsgc2hvcnROYW1lOiBzdHJpbmc7IG1vZHVsZVNwZWNpZmllcjogc3RyaW5nOyBmdW5jdGlvbk5hbWU6IHN0cmluZyB9IHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBMb29rcyBsaWtlIHtwcmVmaXh9Ly97bW9kdWxlU3BlY2lmaWVyfS8ve2Z1bmN0aW9uX25hbWV9XCJcbiAgLy8gV2hlcmU6XG4gIC8vIC0ge3ByZWZpeH0gaXMgZWl0aGVyICd3b3JrZmxvdycsICdzdGVwJywgb3IgJ2NsYXNzJ1xuICAvLyAtIHttb2R1bGVTcGVjaWZpZXJ9IGlzIGVpdGhlcjpcbiAgLy8gICAtIEEgbW9kdWxlIHNwZWNpZmllciAoZS5nLiwgYHBvaW50QDAuMC4xYCwgYEBteW9yZy9zaGFyZWRAMS4yLjNgKSB3aGVuIHByb3ZpZGVkIHZpYSBwbHVnaW4gY29uZmlnXG4gIC8vICAgLSBBIHJlbGF0aXZlIHBhdGggcHJlZml4ZWQgd2l0aCBgLi9gIChlLmcuLCBgLi9zcmMvam9icy9vcmRlcmApIHdoZW4gbm8gc3BlY2lmaWVyIGlzIHByb3ZpZGVkXG4gIC8vIC0ge2Z1bmN0aW9uX25hbWV9IGlzIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiAod2l0aCBuZXN0ZWQgZnVuY3Rpb25zIHVzaW5nIGAvYCBzZXBhcmF0b3JzKVxuICBjb25zdCBbcHJlZml4LCBtb2R1bGVTcGVjaWZpZXIsIC4uLmZ1bmN0aW9uTmFtZVBhcnRzXSA9IG5hbWUuc3BsaXQoJy8vJyk7XG4gIGlmIChwcmVmaXggIT09IHRhZyB8fCAhbW9kdWxlU3BlY2lmaWVyIHx8IGZ1bmN0aW9uTmFtZVBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgZnVuY3Rpb25OYW1lID0gZnVuY3Rpb25OYW1lUGFydHMuam9pbignLy8nKTtcbiAgLy8gRm9yIG5lc3RlZCBmdW5jdGlvbnMgbGlrZSBcInByb2Nlc3NPcmRlci9pbm5lclN0ZXBcIiwgZ2V0IGp1c3QgXCJpbm5lclN0ZXBcIlxuICBsZXQgc2hvcnROYW1lID0gZnVuY3Rpb25OYW1lLnNwbGl0KCcvJykuYXQoLTEpID8/ICcnO1xuXG4gIC8vIEV4dHJhY3QgYSByZWFzb25hYmxlIG5hbWUgZm9yIGRlZmF1bHQgZXhwb3J0c1xuICAvLyBGb3IgbW9kdWxlIHNwZWNpZmllcnMgbGlrZSBcInBvaW50QDAuMC4xXCIsIHVzZSB0aGUgcGFja2FnZSBuYW1lIFwicG9pbnRcIlxuICAvLyBGb3IgcmVsYXRpdmUgcGF0aHMgbGlrZSBcIi4vc3JjL2pvYnMvb3JkZXJcIiwgdXNlIHRoZSBsYXN0IHNlZ21lbnQgXCJvcmRlclwiXG4gIGxldCBtb2R1bGVTaG9ydE5hbWUgPSAnJztcbiAgaWYgKG1vZHVsZVNwZWNpZmllci5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgLy8gUmVsYXRpdmUgcGF0aDogdXNlIHRoZSBsYXN0IHBhdGggc2VnbWVudFxuICAgIG1vZHVsZVNob3J0TmFtZSA9IG1vZHVsZVNwZWNpZmllci5zcGxpdCgnLycpLmF0KC0xKSA/PyAnJztcbiAgfSBlbHNlIHtcbiAgICAvLyBNb2R1bGUgc3BlY2lmaWVyOiBleHRyYWN0IHBhY2thZ2UgbmFtZSAoc3RyaXAgdmVyc2lvbiBhbmQgc2NvcGUpXG4gICAgLy8gZS5nLiwgXCJAbXlvcmcvc2hhcmVkQDEuMi4zXCIgLT4gXCJzaGFyZWRcIiwgXCJwb2ludEAwLjAuMVwiIC0+IFwicG9pbnRcIlxuICAgIGNvbnN0IHdpdGhvdXRWZXJzaW9uID1cbiAgICAgIG1vZHVsZVNwZWNpZmllci5zcGxpdCgnQCcpLnNsaWNlKDAsIC0xKS5qb2luKCdAJykgfHxcbiAgICAgIG1vZHVsZVNwZWNpZmllci5zcGxpdCgnQCcpWzBdO1xuICAgIG1vZHVsZVNob3J0TmFtZSA9IHdpdGhvdXRWZXJzaW9uPy5zcGxpdCgnLycpLmF0KC0xKSA/PyAnJztcbiAgfVxuXG4gIC8vIERlZmF1bHQgZXhwb3J0cyB3aWxsIHVzZSB0aGUgbW9kdWxlIHNob3J0IG5hbWUuIFwiX19kZWZhdWx0XCIgd2FzIG9ubHlcbiAgLy8gdXNlZCBmb3Igb25lIHBhY2thZ2UgdmVyc2lvbiwgc28gdGhpcyBpcyBhIG1pbm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZpeC5cbiAgaWYgKFsnZGVmYXVsdCcsICdfX2RlZmF1bHQnXS5pbmNsdWRlcyhzaG9ydE5hbWUpICYmIG1vZHVsZVNob3J0TmFtZSkge1xuICAgIHNob3J0TmFtZSA9IG1vZHVsZVNob3J0TmFtZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc2hvcnROYW1lLFxuICAgIG1vZHVsZVNwZWNpZmllcixcbiAgICBmdW5jdGlvbk5hbWUsXG4gIH07XG59XG5cbi8qKlxuICogUGFyc2UgYSB3b3JrZmxvdyBuYW1lIGludG8gaXRzIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgd29ya2Zsb3cgbmFtZSB0byBwYXJzZSAoZS5nLiwgXCJ3b3JrZmxvdy8vLi9zcmMvam9icy9vcmRlci8vcHJvY2Vzc09yZGVyXCIgb3IgXCJ3b3JrZmxvdy8vbXlwYWNrYWdlQDEuMC4wLy9wcm9jZXNzT3JkZXJcIikuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBgc2hvcnROYW1lYCwgYG1vZHVsZVNwZWNpZmllcmAsIGFuZCBgZnVuY3Rpb25OYW1lYCBwcm9wZXJ0aWVzLlxuICogV2hlbiB0aGUgbmFtZSBpcyBpbnZhbGlkLCByZXR1cm5zIGBudWxsYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlV29ya2Zsb3dOYW1lKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4gcGFyc2VOYW1lKCd3b3JrZmxvdycsIG5hbWUpO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgc3RlcCBuYW1lIGludG8gaXRzIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgc3RlcCBuYW1lIHRvIHBhcnNlIChlLmcuLCBcInN0ZXAvLy4vc3JjL2pvYnMvb3JkZXIvL2ZldGNoRGF0YVwiIG9yIFwic3RlcC8vQG15b3JnL3Rhc2tzQDIuMC4wLy9wcm9jZXNzT3JkZXJcIikuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBgc2hvcnROYW1lYCwgYG1vZHVsZVNwZWNpZmllcmAsIGFuZCBgZnVuY3Rpb25OYW1lYCBwcm9wZXJ0aWVzLlxuICogV2hlbiB0aGUgbmFtZSBpcyBpbnZhbGlkLCByZXR1cm5zIGBudWxsYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3RlcE5hbWUobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYXJzZU5hbWUoJ3N0ZXAnLCBuYW1lKTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIGNsYXNzIElEIGludG8gaXRzIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgY2xhc3MgSUQgdG8gcGFyc2UgKGUuZy4sIFwiY2xhc3MvLy4vc3JjL21vZGVscy9Qb2ludC8vUG9pbnRcIiBvciBcImNsYXNzLy9wb2ludEAwLjAuMS8vUG9pbnRcIikuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBgc2hvcnROYW1lYCwgYG1vZHVsZVNwZWNpZmllcmAsIGFuZCBgZnVuY3Rpb25OYW1lYCAoY2xhc3NOYW1lKSBwcm9wZXJ0aWVzLlxuICogV2hlbiB0aGUgbmFtZSBpcyBpbnZhbGlkLCByZXR1cm5zIGBudWxsYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2xhc3NOYW1lKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4gcGFyc2VOYW1lKCdjbGFzcycsIG5hbWUpO1xufVxuXG4vKipcbiAqIEh1bWFuLWZyaWVuZGx5IHNpbmdsZS1saW5lIHJlbmRlcmluZyBvZiBhIHN0ZXAgb3Igd29ya2Zsb3cgbmFtZSBmb3IgbG9nXG4gKiBtZXNzYWdlcy4gUGFyc2VzIHRoZSBtYWNoaW5lIG5hbWUgKGBzdGVwLy8uL3dvcmtmbG93cy8xX3NpbXBsZS8vYWRkYCkgYW5kXG4gKiByZW5kZXJzIGl0IGFzIGBhZGQgKC4vd29ya2Zsb3dzLzFfc2ltcGxlKWAgc28gdXNlcnMgc2VlIHRoZSBzaG9ydCBmdW5jdGlvblxuICogbmFtZSBhbmQgdGhlIHNvdXJjZSBtb2R1bGUgc3BlY2lmaWVyIHdpdGhvdXQgdGhlIGludGVybmFsIGAvL2Agc3ludGF4LlxuICpcbiAqIEZhbGxzIGJhY2sgdG8gdGhlIHJhdyBuYW1lIGlmIHBhcnNpbmcgZmFpbHMgKGUuZy4gb2xkZXIgbmFtZSBmb3JtYXRzIG9yXG4gKiB1c2VyLXByb3ZpZGVkIHN0cmluZ3Mgd2UgZG9uJ3QgcmVjb2duaXplKSBzbyBsb2dzIG5ldmVyIHNpbGVudGx5IGRyb3BcbiAqIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U3RlcE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdFBhcnNlZE5hbWUocGFyc2VTdGVwTmFtZShuYW1lKSwgbmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXb3JrZmxvd05hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdFBhcnNlZE5hbWUocGFyc2VXb3JrZmxvd05hbWUobmFtZSksIG5hbWUpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQYXJzZWROYW1lKFxuICBwYXJzZWQ6IHtcbiAgICBzaG9ydE5hbWU6IHN0cmluZztcbiAgICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZztcbiAgICBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgfSB8IG51bGwsXG4gIGZhbGxiYWNrOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGlmICghcGFyc2VkKSByZXR1cm4gZmFsbGJhY2s7XG4gIHJldHVybiBgJHtwYXJzZWQuc2hvcnROYW1lfSAoJHtwYXJzZWQubW9kdWxlU3BlY2lmaWVyfSlgO1xufVxuIl19
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZS1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxTQUFTLFNBQVMsQ0FDaEIsR0FBVyxFQUNYLElBQVk7SUFFWixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELDJEQUEyRDtJQUMzRCxTQUFTO0lBQ1Qsc0RBQXNEO0lBQ3RELGlDQUFpQztJQUNqQyxzR0FBc0c7SUFDdEcsa0dBQWtHO0lBQ2xHLDZGQUE2RjtJQUM3RixNQUFNLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCwyRUFBMkU7SUFDM0UsSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFckQsZ0RBQWdEO0lBQ2hELHlFQUF5RTtJQUN6RSwyRUFBMkU7SUFDM0UsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JDLDJDQUEyQztRQUMzQyxlQUFlLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMs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LEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0RSx5RUFBeUU7SUFDekUsc0VBQXNFO0lBQ3RFLHVFQUF1RTtJQUN2RSxnRUFBZ0U7SUFDaEUscUNBQXFDO0lBQ3JDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDakQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxlQUFlLElBQUksZUFBZSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQy9DLFNBQVMsR0FBRyxlQUFlLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsSUFBSSxJQUFJLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQ3ZCLE1BSVEsRUFDUixRQUFnQjtJQUVoQixJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQzdCLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxlQUFlLEdBQUcsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJzZSBhIG1hY2hpbmUgcmVhZGFibGUgbmFtZS5cbiAqXG4gKiBAc2VlIHtAbGluayAuLi8uLi9zd2MtcGx1Z2luLXdvcmtmbG93L3RyYW5zZm9ybS9zcmMvbmFtaW5nLnJzfSBmb3IgdGhlIG5hbWluZyBzY2hlbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlTmFtZShcbiAgdGFnOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZ1xuKTogeyBzaG9ydE5hbWU6IHN0cmluZzsgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7IGZ1bmN0aW9uTmFtZTogc3RyaW5nIH0gfCBudWxsIHtcbiAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIExvb2tzIGxpa2Uge3ByZWZpeH0vL3ttb2R1bGVTcGVjaWZpZXJ9Ly97ZnVuY3Rpb25fbmFtZX1cIlxuICAvLyBXaGVyZTpcbiAgLy8gLSB7cHJlZml4fSBpcyBlaXRoZXIgJ3dvcmtmbG93JywgJ3N0ZXAnLCBvciAnY2xhc3MnXG4gIC8vIC0ge21vZHVsZVNwZWNpZmllcn0gaXMgZWl0aGVyOlxuICAvLyAgIC0gQSBtb2R1bGUgc3BlY2lmaWVyIChlLmcuLCBgcG9pbnRAMC4wLjFgLCBgQG15b3JnL3NoYXJlZEAxLjIuM2ApIHdoZW4gcHJvdmlkZWQgdmlhIHBsdWdpbiBjb25maWdcbiAgLy8gICAtIEEgcmVsYXRpdmUgcGF0aCBwcmVmaXhlZCB3aXRoIGAuL2AgKGUuZy4sIGAuL3NyYy9qb2JzL29yZGVyYCkgd2hlbiBubyBzcGVjaWZpZXIgaXMgcHJvdmlkZWRcbiAgLy8gLSB7ZnVuY3Rpb25fbmFtZX0gaXMgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uICh3aXRoIG5lc3RlZCBmdW5jdGlvbnMgdXNpbmcgYC9gIHNlcGFyYXRvcnMpXG4gIGNvbnN0IFtwcmVmaXgsIG1vZHVsZVNwZWNpZmllciwgLi4uZnVuY3Rpb25OYW1lUGFydHNdID0gbmFtZS5zcGxpdCgnLy8nKTtcbiAgaWYgKHByZWZpeCAhPT0gdGFnIHx8ICFtb2R1bGVTcGVjaWZpZXIgfHwgZnVuY3Rpb25OYW1lUGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBmdW5jdGlvbk5hbWUgPSBmdW5jdGlvbk5hbWVQYXJ0cy5qb2luKCcvLycpO1xuICAvLyBGb3IgbmVzdGVkIGZ1bmN0aW9ucyBsaWtlIFwicHJvY2Vzc09yZGVyL2lubmVyU3RlcFwiLCBnZXQganVzdCBcImlubmVyU3RlcFwiXG4gIGxldCBzaG9ydE5hbWUgPSBmdW5jdGlvbk5hbWUuc3BsaXQoJy8nKS5hdCgtMSkgPz8gJyc7XG5cbiAgLy8gRXh0cmFjdCBhIHJlYXNvbmFibGUgbmFtZSBmb3IgZGVmYXVsdCBleHBvcnRzXG4gIC8vIEZvciBtb2R1bGUgc3BlY2lmaWVycyBsaWtlIFwicG9pbnRAMC4wLjFcIiwgdXNlIHRoZSBwYWNrYWdlIG5hbWUgXCJwb2ludFwiXG4gIC8vIEZvciByZWxhdGl2ZSBwYXRocyBsaWtlIFwiLi9zcmMvam9icy9vcmRlclwiLCB1c2UgdGhlIGxhc3Qgc2VnbWVudCBcIm9yZGVyXCJcbiAgbGV0IG1vZHVsZVNob3J0TmFtZSA9ICcnO1xuICBpZiAobW9kdWxlU3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy4vJykpIHtcbiAgICAvLyBSZWxhdGl2ZSBwYXRoOiB1c2UgdGhlIGxhc3QgcGF0aCBzZWdtZW50XG4gICAgbW9kdWxlU2hvcnROYW1lID0gbW9kdWxlU3BlY2lmaWVyLnNwbGl0KCcvJykuYXQoLTEpID8/ICcnO1xuICB9IGVsc2Uge1xuICAgIC8vIE1vZHVsZSBzcGVjaWZpZXI6IGV4dHJhY3QgcGFja2FnZSBuYW1lIChzdHJpcCB2ZXJzaW9uIGFuZCBzY29wZSlcbiAgICAvLyBlLmcuLCBcIkBteW9yZy9zaGFyZWRAMS4yLjNcIiAtPiBcInNoYXJlZFwiLCBcInBvaW50QDAuMC4xXCIgLT4gXCJwb2ludFwiXG4gICAgY29uc3Qgd2l0aG91dFZlcnNpb24gPVxuICAgICAgbW9kdWxlU3BlY2lmaWVyLnNwbGl0KCdAJykuc2xpY2UoMCwgLTEpLmpvaW4oJ0AnKSB8fFxuICAgICAgbW9kdWxlU3BlY2lmaWVyLnNwbGl0KCdAJylbMF07XG4gICAgbW9kdWxlU2hvcnROYW1lID0gd2l0aG91dFZlcnNpb24/LnNwbGl0KCcvJykuYXQoLTEpID8/ICcnO1xuICB9XG5cbiAgLy8gRGVmYXVsdCBleHBvcnRzIHdpbGwgdXNlIHRoZSBtb2R1bGUgc2hvcnQgbmFtZS4gXCJfX2RlZmF1bHRcIiB3YXMgb25seVxuICAvLyB1c2VkIGZvciBvbmUgcGFja2FnZSB2ZXJzaW9uLCBzbyB0aGlzIGlzIGEgbWlub3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZml4LlxuICBpZiAoWydkZWZhdWx0JywgJ19fZGVmYXVsdCddLmluY2x1ZGVzKHNob3J0TmFtZSkgJiYgbW9kdWxlU2hvcnROYW1lKSB7XG4gICAgc2hvcnROYW1lID0gbW9kdWxlU2hvcnROYW1lO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzaG9ydE5hbWUsXG4gICAgbW9kdWxlU3BlY2lmaWVyLFxuICAgIGZ1bmN0aW9uTmFtZSxcbiAgfTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIHdvcmtmbG93IG5hbWUgaW50byBpdHMgY29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSB3b3JrZmxvdyBuYW1lIHRvIHBhcnNlIChlLmcuLCBcIndvcmtmbG93Ly8uL3NyYy9qb2JzL29yZGVyLy9wcm9jZXNzT3JkZXJcIiBvciBcIndvcmtmbG93Ly9teXBhY2thZ2VAMS4wLjAvL3Byb2Nlc3NPcmRlclwiKS5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGBzaG9ydE5hbWVgLCBgbW9kdWxlU3BlY2lmaWVyYCwgYW5kIGBmdW5jdGlvbk5hbWVgIHByb3BlcnRpZXMuXG4gKiBXaGVuIHRoZSBuYW1lIGlzIGludmFsaWQsIHJldHVybnMgYG51bGxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXb3JrZmxvd05hbWUobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYXJzZU5hbWUoJ3dvcmtmbG93JywgbmFtZSk7XG59XG5cbi8qKlxuICogUGFyc2UgYSBzdGVwIG5hbWUgaW50byBpdHMgY29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBzdGVwIG5hbWUgdG8gcGFyc2UgKGUuZy4sIFwic3RlcC8vLi9zcmMvam9icy9vcmRlci8vZmV0Y2hEYXRhXCIgb3IgXCJzdGVwLy9AbXlvcmcvdGFza3NAMi4wLjAvL3Byb2Nlc3NPcmRlclwiKS5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGBzaG9ydE5hbWVgLCBgbW9kdWxlU3BlY2lmaWVyYCwgYW5kIGBmdW5jdGlvbk5hbWVgIHByb3BlcnRpZXMuXG4gKiBXaGVuIHRoZSBuYW1lIGlzIGludmFsaWQsIHJldHVybnMgYG51bGxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTdGVwTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHBhcnNlTmFtZSgnc3RlcCcsIG5hbWUpO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgY2xhc3MgSUQgaW50byBpdHMgY29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBjbGFzcyBJRCB0byBwYXJzZSAoZS5nLiwgXCJjbGFzcy8vLi9zcmMvbW9kZWxzL1BvaW50Ly9Qb2ludFwiIG9yIFwiY2xhc3MvL3BvaW50QDAuMC4xLy9Qb2ludFwiKS5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGBzaG9ydE5hbWVgLCBgbW9kdWxlU3BlY2lmaWVyYCwgYW5kIGBmdW5jdGlvbk5hbWVgIChjbGFzc05hbWUpIHByb3BlcnRpZXMuXG4gKiBXaGVuIHRoZSBuYW1lIGlzIGludmFsaWQsIHJldHVybnMgYG51bGxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDbGFzc05hbWUobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYXJzZU5hbWUoJ2NsYXNzJywgbmFtZSk7XG59XG5cbi8qKlxuICogSHVtYW4tZnJpZW5kbHkgc2luZ2xlLWxpbmUgcmVuZGVyaW5nIG9mIGEgc3RlcCBvciB3b3JrZmxvdyBuYW1lIGZvciBsb2dcbiAqIG1lc3NhZ2VzLiBQYXJzZXMgdGhlIG1hY2hpbmUgbmFtZSAoYHN0ZXAvLy4vd29ya2Zsb3dzLzFfc2ltcGxlLy9hZGRgKSBhbmRcbiAqIHJlbmRlcnMgaXQgYXMgYGFkZCAoLi93b3JrZmxvd3MvMV9zaW1wbGUpYCBzbyB1c2VycyBzZWUgdGhlIHNob3J0IGZ1bmN0aW9uXG4gKiBuYW1lIGFuZCB0aGUgc291cmNlIG1vZHVsZSBzcGVjaWZpZXIgd2l0aG91dCB0aGUgaW50ZXJuYWwgYC8vYCBzeW50YXguXG4gKlxuICogRmFsbHMgYmFjayB0byB0aGUgcmF3IG5hbWUgaWYgcGFyc2luZyBmYWlscyAoZS5nLiBvbGRlciBuYW1lIGZvcm1hdHMgb3JcbiAqIHVzZXItcHJvdmlkZWQgc3RyaW5ncyB3ZSBkb24ndCByZWNvZ25pemUpIHNvIGxvZ3MgbmV2ZXIgc2lsZW50bHkgZHJvcFxuICogaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTdGVwTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0UGFyc2VkTmFtZShwYXJzZVN0ZXBOYW1lKG5hbWUpLCBuYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFdvcmtmbG93TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0UGFyc2VkTmFtZShwYXJzZVdvcmtmbG93TmFtZShuYW1lKSwgbmFtZSk7XG59XG5cbi8qKlxuICogQmVzdC1lZmZvcnQgc2hvcnQgZGlzcGxheSBuYW1lIGZvciBzcGFucyBhbmQgVUkgbGFiZWxzLiBBY2NlcHRzIGVpdGhlciB0aGVcbiAqIHJhdyBtYWNoaW5lIG5hbWUgKGB3b3JrZmxvdy8vLi9zcmMvam9icy9vcmRlci8vcHJvY2Vzc09yZGVyYCkgb3IgdGhlXG4gKiBxdWV1ZS1zYW5pdGl6ZWQgZm9ybSAoYHdvcmtmbG93LS0tLXNyYy1qb2JzLW9yZGVyLS1wcm9jZXNzT3JkZXJgLCB3aGVyZVxuICogZXZlcnkgbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXIgd2FzIHJlcGxhY2VkIHdpdGggYC1gKSBhbmQgcmV0dXJucyBqdXN0XG4gKiB0aGUgZnVuY3Rpb24gbmFtZSAoYHByb2Nlc3NPcmRlcmApLiBGYWxscyBiYWNrIHRvIHRoZSBpbnB1dCB1bmNoYW5nZWQgd2hlblxuICogbmVpdGhlciBmb3JtIGlzIHJlY29nbml6ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvd0Rpc3BsYXlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgcGFyc2VXb3JrZmxvd05hbWUobmFtZSk/LnNob3J0TmFtZSA/P1xuICAgIHNob3J0TmFtZUZyb21TYW5pdGl6ZWQoJ3dvcmtmbG93JywgbmFtZSkgPz9cbiAgICBuYW1lXG4gICk7XG59XG5cbi8qKiBTZWUge0BsaW5rIHdvcmtmbG93RGlzcGxheU5hbWV9IOKAlCB0aGUgc3RlcC1uYW1lIGVxdWl2YWxlbnQuICovXG5leHBvcnQgZnVuY3Rpb24gc3RlcERpc3BsYXlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgcGFyc2VTdGVwTmFtZShuYW1lKT8uc2hvcnROYW1lID8/XG4gICAgc2hvcnROYW1lRnJvbVNhbml0aXplZCgnc3RlcCcsIG5hbWUpID8/XG4gICAgbmFtZVxuICApO1xufVxuXG5mdW5jdGlvbiBzaG9ydE5hbWVGcm9tU2FuaXRpemVkKHRhZzogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFuYW1lLnN0YXJ0c1dpdGgoYCR7dGFnfS0tYCkpIHJldHVybiBudWxsO1xuICAvLyBUaGUgYC8vYCBzZXBhcmF0b3JzIGJlY2FtZSBgLS1gLCBhbmQgd2l0aGluIHRoZSBmdW5jdGlvbi1uYW1lIHBhcnQgYW55XG4gIC8vIG5lc3RlZC1mdW5jdGlvbiBgL2AgYmVjYW1lIGAtYC4gRnVuY3Rpb24gbmFtZXMgYXJlIG1vc3RseSBkYXNoLWZyZWUsIHNvXG4gIC8vIHRoZSBpbm5lcm1vc3QgbmFtZSBpcyB0aGUgbGFzdCBkYXNoLWZyZWUgc2VnbWVudC4gVGhpcyBpcyBiZXN0LWVmZm9ydDpcbiAgLy8gYCRgIGlzIGEgdmFsaWQgSlMgaWRlbnRpZmllciBjaGFyYWN0ZXIgYnV0IGlzIGFsc28gc2FuaXRpemVkIHRvIGAtYCwgc29cbiAgLy8gYSBuYW1lIGxpa2UgYHByb2Nlc3MkT3JkZXJgIGRpc3BsYXlzIGFzIGBPcmRlcmAg4oCUIGFjY2VwdGVkIGxpbWl0YXRpb24uXG4gIGNvbnN0IHNlZ21lbnRzID0gbmFtZS5zcGxpdCgnLS0nKS5maWx0ZXIoQm9vbGVhbik7XG4gIGNvbnN0IGZ1bmN0aW9uUGFydCA9IHNlZ21lbnRzLmF0KC0xKTtcbiAgbGV0IHNob3J0TmFtZSA9IGZ1bmN0aW9uUGFydD8uc3BsaXQoJy0nKS5maWx0ZXIoQm9vbGVhbikuYXQoLTEpID8/ICcnO1xuICAvLyBNaXJyb3IgcGFyc2VOYW1lJ3MgZGVmYXVsdC1leHBvcnQgaGFuZGxpbmc6IGRpc3BsYXkgZGVmYXVsdCBleHBvcnRzIGFzXG4gIC8vIHRoZSBtb2R1bGUncyBzaG9ydCBuYW1lICh0aGUgbW9kdWxlIHBhcnQgaXMgdGhlIHNlY29uZC10by1sYXN0IGAtLWBcbiAgLy8gc2VnbWVudDsgaXRzIGxhc3QgYC1gIHNlZ21lbnQgaXMgdGhlIG1vZHVsZSBzaG9ydCBuYW1lKSwgc28gdGhlIHNhbWVcbiAgLy8gd29ya2Zsb3cgZG9lc24ndCByZW5kZXIgYXMgZS5nLiBgb3JkZXJgIGZyb20gdGhlIHJhdyBuYW1lIGJ1dFxuICAvLyBgZGVmYXVsdGAgZnJvbSB0aGUgc2FuaXRpemVkIG5hbWUuXG4gIGlmIChbJ2RlZmF1bHQnLCAnX19kZWZhdWx0J10uaW5jbHVkZXMoc2hvcnROYW1lKSkge1xuICAgIGNvbnN0IG1vZHVsZVNob3J0TmFtZSA9IHNlZ21lbnRzLmF0KC0yKT8uc3BsaXQoJy0nKS5maWx0ZXIoQm9vbGVhbikuYXQoLTEpO1xuICAgIGlmIChtb2R1bGVTaG9ydE5hbWUgJiYgbW9kdWxlU2hvcnROYW1lICE9PSB0YWcpIHtcbiAgICAgIHNob3J0TmFtZSA9IG1vZHVsZVNob3J0TmFtZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNob3J0TmFtZSB8fCBudWxsO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQYXJzZWROYW1lKFxuICBwYXJzZWQ6IHtcbiAgICBzaG9ydE5hbWU6IHN0cmluZztcbiAgICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZztcbiAgICBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgfSB8IG51bGwsXG4gIGZhbGxiYWNrOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGlmICghcGFyc2VkKSByZXR1cm4gZmFsbGJhY2s7XG4gIHJldHVybiBgJHtwYXJzZWQuc2hvcnROYW1lfSAoJHtwYXJzZWQubW9kdWxlU3BlY2lmaWVyfSlgO1xufVxuIl19
|