aws-delivlib 15.0.60 → 15.1.1

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.
@@ -51,7 +51,10 @@ export interface BuildSpecStruct {
51
51
  'run-as'?: string;
52
52
  'env'?: EnvStruct;
53
53
  'phases'?: {
54
- [key: string]: PhaseStruct;
54
+ install?: InstallPhaseStruct;
55
+ pre_build?: PhaseStruct;
56
+ build?: PhaseStruct;
57
+ post_build?: PhaseStruct;
55
58
  };
56
59
  'artifacts'?: PrimaryArtifactStruct;
57
60
  'cache'?: CacheStruct;
@@ -70,9 +73,15 @@ export interface EnvStruct {
70
73
  }
71
74
  export interface PhaseStruct {
72
75
  'run-as'?: string;
76
+ 'on-failure'?: string;
73
77
  'commands': string[];
74
78
  'finally'?: string[];
75
79
  }
80
+ export interface InstallPhaseStruct extends PhaseStruct {
81
+ 'runtime-versions'?: {
82
+ [key: string]: string;
83
+ };
84
+ }
76
85
  export interface ReportStruct {
77
86
  'files'?: string[];
78
87
  'base-directory'?: string;
package/lib/build-spec.js CHANGED
@@ -67,11 +67,18 @@ class BuildSpec {
67
67
  'parameter-store': mergeDict(a['parameter-store'], b['parameter-store'], equalObjects),
68
68
  'variables': mergeDict(a.variables, b.variables, equalObjects),
69
69
  })),
70
- 'phases': mergeDict(this.spec.phases, other.spec.phases, (a, b) => ({
71
- 'run-as': mergeObj(this.spec['run-as'], other.spec['run-as'], equalObjects),
72
- 'commands': mergeList(a.commands, b.commands),
73
- 'finally': mergeList(a.finally, b.finally),
74
- })),
70
+ 'phases': mergeDict(this.spec.phases, other.spec.phases, (a, b, phase) => {
71
+ const merged = {
72
+ 'run-as': mergeObj(a['run-as'], b['run-as'], equalObjects),
73
+ 'on-failure': mergeObj(a['on-failure'], b['on-failure'], equalObjects),
74
+ 'commands': mergeList(a.commands, b.commands),
75
+ 'finally': mergeList(a.finally, b.finally),
76
+ };
77
+ if (phase === 'install') {
78
+ merged['runtime-versions'] = mergeDict(a['runtime-versions'], b['runtime-versions'], equalObjects);
79
+ }
80
+ return (0, util_1.noUndefined)(merged);
81
+ }),
75
82
  'artifacts': mergeObj(this.spec.artifacts, other.spec.artifacts, mergeArtifacts),
76
83
  'cache': mergeObj(this.spec.cache, other.spec.cache, (a, b) => ({
77
84
  paths: mergeList(a.paths, b.paths),
@@ -113,7 +120,7 @@ class BuildSpec {
113
120
  const ret = Object.assign({}, a);
114
121
  for (const [k, v] of Object.entries(b)) {
115
122
  if (ret[k]) {
116
- ret[k] = fn(ret[k], v);
123
+ ret[k] = fn(ret[k], v, k);
117
124
  }
118
125
  else {
119
126
  ret[k] = v;
@@ -167,4 +174,4 @@ function renameKey(xs, orig, rename) {
167
174
  }
168
175
  return ret;
169
176
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJ1aWxkLXNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWdEO0FBR2hELE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFhLFNBQVM7SUFDYixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXVCO1FBQzNDLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBMkI7UUFDOUMsaUZBQWlGO1FBQ2pGLHlEQUF5RDtRQUN6RCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUMxQyxLQUFLLENBQUMsNkJBQTZCLElBQUksRUFBRSxFQUN6QyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2xGLENBQUM7UUFFRixJQUFJLFNBQTRDLENBQUM7UUFDakQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsU0FBUyxHQUFHO2dCQUNWLHFCQUFxQixFQUFFLElBQUEsZ0JBQVMsRUFBQyxtQkFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzNELGdCQUFnQixFQUFFLENBQUM7b0JBQ25CLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztpQkFDbEIsQ0FBQyxDQUFDO2FBQ0osQ0FBQztTQUNIO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBQztZQUNuQixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxJQUFBLGtCQUFXLEVBQUM7Z0JBQ2xCLE9BQU8sRUFB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U0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUMzSTtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBMUlELDhCQTBJQztBQXlFRDs7R0FFRztBQUNILFNBQVMsa0JBQWtCLENBQUksRUFBd0I7SUFDckQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3BCO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFJLEVBQXdCLEVBQUUsSUFBWSxFQUFFLE1BQWM7SUFDMUUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEMsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNsQjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcFZhbHVlcywgbm9VbmRlZmluZWQgfSBmcm9tICcuL3V0aWwnO1xuXG5cbmNvbnN0IE1BR0lDX0FSVElGQUNUX05BTUUgPSAnUFJJTUFSWSc7XG5cbi8qKlxuICogQ2xhc3MgdG8gbW9kZWwgYSBidWlsZHNwZWMgdmVyc2lvbiAwLjJcbiAqXG4gKiBBcnRpZmFjdCBoYW5kbGluZyBpcyBhIGxpdHRsZSBzcGVjaWFsOiBDb2RlQnVpbGQgd2lsbCBpbnRlcnByZXQgdGhlXG4gKiAnYXJ0aWZhY3RzJyBzZWN0aW9uIGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZXJlIGFyZSBzZWNvbmRhcnlcbiAqIGFydGlmYWN0cyBvciBub3QuXG4gKlxuICogSWYgdGhlcmUgaXMgb25seSBvbmUgYXJ0aWZhY3QsIHRoZSBzaW5nbGUgYXJ0aWZhY3QgbXVzdCBnbyBpbnRvIHRoZSB0b3AtbGV2ZWxcbiAqICdhcnRpZmFjdHMnIHNlY3Rpb24uIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBhcnRpZmFjdHMsIGFsbCBvZiB0aGVtIG11c3QgZ29cbiAqIGludG8gdGhlICdzZWNvbmRhcnktYXJ0aWZhY3RzJyBzZWN0aW9uLiBVcG9uIHJlbmRlcmluZyB0byBKU09OLCB0aGUgY2FsbGVyXG4gKiBtdXN0IHN1cHBseSB0aGUgbmFtZSBvZiB0aGUgcHJpbWFyeSBhcnRpZmFjdCAoaXQncyBkZXRlcm1pbmVkIGJ5XG4gKiB0aGUgQ29kZVBpcGVsaW5lIEFjdGlvbiB0aGF0IGludm9rZXMgdGhlIENvZGVCdWlsZCBQcm9qZWN0IHRoYXQgdXNlcyB0aGlzXG4gKiBidWlsZHNwZWMpLlxuICpcbiAqIElOVkFSSUFOVDogaW4tbWVtb3J5LCB0aGUgQnVpbGRTcGVjIHdpbGwgdHJlYXQgYWxsIGFydGlmYWN0cyB0aGUgc2FtZSAoYXNcbiAqIGEgYmFnIG9mIHNlY29uZGFyeSBhcnRpZmFjdHMpLiBBdCB0aGUgZWRnZXMgKGNvbnN0cnVjdGlvbiBvciByZW5kZXJpbmcpLFxuICogaWYgdGhlcmUncyBvbmx5IGEgc2luZ2xlIGFydGlmYWN0IGl0IHdpbGwgYmUgcmVuZGVyZWQgdG8gdGhlIHByaW1hcnlcbiAqIGFydGlmYWN0LlxuICovXG5leHBvcnQgY2xhc3MgQnVpbGRTcGVjIHtcbiAgcHVibGljIHN0YXRpYyBsaXRlcmFsKHN0cnVjdDogQnVpbGRTcGVjU3RydWN0KSB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZFNwZWMoc3RydWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2ltcGxlKHByb3BzOiBTaW1wbGVCdWlsZFNwZWNQcm9wcykge1xuICAgIC8vIFdlIG1lcmdlIHRoZSBwcmltYXJ5IGFydGlmYWN0IGludG8gdGhlIHNlY29uZGFyeSBhcnRpZmFjdHMgdW5kZXIgYSBzcGVjaWFsIGtleVxuICAgIC8vIFRoZXkgd2lsbCBiZSBjb21wYWN0ZWQgYmFjayB0b2dldGhlciBkdXJpbmcgcmVuZGVyaW5nLlxuICAgIGNvbnN0IGFydGlmYWN0RGlyZWN0b3JpZXMgPSBPYmplY3QuYXNzaWduKHt9LFxuICAgICAgcHJvcHMuYWRkaXRpb25hbEFydGlmYWN0RGlyZWN0b3JpZXMgfHwge30sXG4gICAgICBwcm9wcy5hcnRpZmFjdERpcmVjdG9yeSA/IHsgW01BR0lDX0FSVElGQUNUX05BTUVdOiBwcm9wcy5hcnRpZmFjdERpcmVjdG9yeSB9IDoge30sXG4gICAgKTtcblxuICAgIGxldCBhcnRpZmFjdHM6IFByaW1hcnlBcnRpZmFjdFN0cnVjdCB8IHVuZGVmaW5lZDtcbiAgICBpZiAoT2JqZWN0LmtleXMoYXJ0aWZhY3REaXJlY3RvcmllcyB8fCB7fSkubGVuZ3RoID4gMCkge1xuICAgICAgYXJ0aWZhY3RzID0ge1xuICAgICAgICAnc2Vjb25kYXJ5LWFydGlmYWN0cyc6IG1hcFZhbHVlcyhhcnRpZmFjdERpcmVjdG9yaWVzISwgZCA9PiAoe1xuICAgICAgICAgICdiYXNlLWRpcmVjdG9yeSc6IGQsXG4gICAgICAgICAgJ2ZpbGVzJzogWycqKi8qJ10sXG4gICAgICAgIH0pKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBCdWlsZFNwZWMoe1xuICAgICAgdmVyc2lvbjogJzAuMicsXG4gICAgICBwaGFzZXM6IG5vVW5kZWZpbmVkKHtcbiAgICAgICAgaW5zdGFsbDogcHJvcHMuaW5zdGFsbCAhPT0gdW5kZWZpbmVkID8geyBjb21tYW5kczogcHJvcHMuaW5zdGFsbCB9IDogdW5kZWZpbmVkLFxuICAgICAgICBwcmVfYnVpbGQ6IHByb3BzLnByZUJ1aWxkICE9PSB1bmRlZmluZWQgPyB7IGNvbW1hbmRzOiBwcm9wcy5wcmVCdWlsZCB9IDogdW5kZWZpbmVkLFxuICAgICAgICBidWlsZDogcHJvcHMuYnVpbGQgIT09IHVuZGVmaW5lZCA/IHsgY29tbWFuZHM6IHByb3BzLmJ1aWxkIH0gOiB1bmRlZmluZWQsXG4gICAgICB9KSxcbiAgICAgIGFydGlmYWN0cyxcbiAgICAgIHJlcG9ydHM6IHByb3BzLnJlcG9ydHMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGVtcHR5KCkge1xuICAgIHJldHVybiBuZXcgQnVpbGRTcGVjKHsgdmVyc2lvbjogJzAuMicgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3BlYzogQnVpbGRTcGVjU3RydWN0KSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFkZGl0aW9uYWxBcnRpZmFjdE5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5zcGVjLmFydGlmYWN0cyAmJiB0aGlzLnNwZWMuYXJ0aWZhY3RzWydzZWNvbmRhcnktYXJ0aWZhY3RzJ10gfHwge30pLmZpbHRlcihuID0+IG4gIT09IE1BR0lDX0FSVElGQUNUX05BTUUpO1xuICB9XG5cbiAgcHVibGljIG1lcmdlKG90aGVyOiBCdWlsZFNwZWMpOiBCdWlsZFNwZWMge1xuICAgIHJldHVybiBuZXcgQnVpbGRTcGVjKHtcbiAgICAgICd2ZXJzaW9uJzogJzAuMicsXG4gICAgICAncnVuLWFzJzogbWVyZ2VPYmoodGhpcy5zcGVjWydydW4tYXMnXSwgb3RoZXIuc3BlY1sncnVuLWFzJ10sIGVxdWFsT2JqZWN0cyksXG4gICAgICAnZW52JzogbWVyZ2VPYmoodGhpcy5zcGVjLmVudiwgb3RoZXIuc3BlYy5lbnYsIChhLCBiKSA9PiAoe1xuICAgICAgICAncGFyYW1ldGVyLXN0b3JlJzogbWVyZ2VEaWN0KGFbJ3BhcmFtZXRlci1zdG9yZSddLCBiWydwYXJhbWV0ZXItc3RvcmUnXSwgZXF1YWxPYmplY3RzKSxcbiAgICAgICAgJ3ZhcmlhYmxlcyc6IG1lcmdlRGljdChhLnZhcmlhYmxlcywgYi52YXJpYWJsZXMsIGVxdWFsT2JqZWN0cyksXG4gICAgICB9KSksXG4gICAgICAncGhhc2VzJzogbWVyZ2VEaWN0KHRoaXMuc3BlYy5waGFzZXMsIG90aGVyLnNwZWMucGhhc2VzLCAoYSwgYikgPT4gKHtcbiAgICAgICAgJ3J1bi1hcyc6IG1lcmdlT2JqKHRoaXMuc3BlY1sncnVuLWFzJ10sIG90aGVyLnNwZWNbJ3J1bi1hcyddLCBlcXVhbE9iamVjdHMpLFxuICAgICAgICAnY29tbWFuZHMnOiBtZXJnZUxpc3QoYS5jb21tYW5kcywgYi5jb21tYW5kcykhLFxuICAgICAgICAnZmluYWxseSc6IG1lcmdlTGlzdChhLmZpbmFsbHksIGIuZmluYWxseSksXG4gICAgICB9KSksXG4gICAgICAnYXJ0aWZhY3RzJzogbWVyZ2VPYmoodGhpcy5zcGVjLmFydGlmYWN0cywgb3RoZXIuc3BlYy5hcnRpZmFjdHMsIG1lcmdlQXJ0aWZhY3RzKSxcbiAgICAgICdjYWNoZSc6IG1lcmdlT2JqKHRoaXMuc3BlYy5jYWNoZSwgb3RoZXIuc3BlYy5jYWNoZSwgKGEsIGIpID0+ICh7XG4gICAgICAgIHBhdGhzOiBtZXJnZUxpc3QoYS5wYXRocywgYi5wYXRocykhLFxuICAgICAgfSkpLFxuICAgICAgJ3JlcG9ydHMnOiBtZXJnZURpY3QodGhpcy5zcGVjLnJlcG9ydHMsIG90aGVyLnNwZWMucmVwb3J0cywgKGEsIGIpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXBvcnRzIG11c3QgaGF2ZSB1bmlxdWUgbmFtZXMsIGdvdCAke2F9IGFuZCAke2J9YCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1lcmdlQXJ0aWZhY3RzKGE6IFByaW1hcnlBcnRpZmFjdFN0cnVjdCwgYjogUHJpbWFyeUFydGlmYWN0U3RydWN0KTogUHJpbWFyeUFydGlmYWN0U3RydWN0IHtcbiAgICAgIGlmIChhLmZpbGVzIHx8IGIuZmlsZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb25lIG9mIHRoZSBCdWlsZFNwZWNzIG1heSBoYXZlIGEgcHJpbWFyeSBhcnRpZmFjdC4nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXJ0aWZhY3RzID0gT2JqZWN0LmFzc2lnbih7fSwgYVsnc2Vjb25kYXJ5LWFydGlmYWN0cyddIHx8IHt9KTtcbiAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGJbJ3NlY29uZGFyeS1hcnRpZmFjdHMnXSB8fCB7fSkpIHtcbiAgICAgICAgaWYgKGsgaW4gYXJ0aWZhY3RzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBhbHJlYWR5IGFuIGFydGlmYWN0IHdpdGggbmFtZSAke2t9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYXJ0aWZhY3RzW2tdID0gdjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBhLCB7ICdzZWNvbmRhcnktYXJ0aWZhY3RzJzogYXJ0aWZhY3RzIH0pO1xuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gZXF1YWxPYmplY3RzKGE6IHN0cmluZywgYjogc3RyaW5nKSB7XG4gICAgICBpZiAoYSAhPT0gYikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IG1lcmdlIHR3byBkaWZmZXJlbnQgdmFsdWVzIGZvciB0aGUgc2FtZSBrZXk6ICR7SlNPTi5zdHJpbmdpZnkoYSl9LCAke0pTT04uc3RyaW5naWZ5KGIpfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VPYmo8VD4oYTogVCB8IHVuZGVmaW5lZCwgYjogVCB8IHVuZGVmaW5lZCwgZm46IChhOiBULCBiOiBUKSA9PiBUKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiBiOyB9XG4gICAgICBpZiAoYiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiBhOyB9XG4gICAgICByZXR1cm4gZm4oYSwgYik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VEaWN0PFQ+KGFzOiB7IFtrOiBzdHJpbmddOiBUIH0gfCB1bmRlZmluZWQsIGJzOiB7IFtrOiBzdHJpbmddOiBUIH0gfCB1bmRlZmluZWQsIGZuOiAoYTogVCwgYjogVCkgPT4gVCkge1xuICAgICAgcmV0dXJuIG1lcmdlT2JqKGFzLCBicywgKGEsIGIpID0+IHtcbiAgICAgICAgY29uc3QgcmV0ID0gT2JqZWN0LmFzc2lnbih7fSwgYSk7XG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGIpKSB7XG4gICAgICAgICAgaWYgKHJldFtrXSkge1xuICAgICAgICAgICAgcmV0W2tdID0gZm4ocmV0W2tdLCB2KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W2tdID0gdjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lcmdlTGlzdDxUPihhczogVFtdIHwgdW5kZWZpbmVkLCBiczogVFtdIHwgdW5kZWZpbmVkKTogVFtdIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiBtZXJnZU9iaihhcywgYnMsIChhLCBiKSA9PiBhLmNvbmNhdChiKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbmRlcihvcHRpb25zOiBCdWlsZFNwZWNSZW5kZXJPcHRpb25zID0ge30pOiBCdWlsZFNwZWNTdHJ1Y3Qge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNwZWMsIHsgYXJ0aWZhY3RzOiB0aGlzLnJlbmRlckFydGlmYWN0cyhvcHRpb25zKSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQXJ0aWZhY3RzKG9wdGlvbnM6IEJ1aWxkU3BlY1JlbmRlck9wdGlvbnMpOiBQcmltYXJ5QXJ0aWZhY3RTdHJ1Y3QgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5zcGVjLmFydGlmYWN0cyB8fCAhdGhpcy5zcGVjLmFydGlmYWN0c1snc2Vjb25kYXJ5LWFydGlmYWN0cyddKSB7IHJldHVybiB0aGlzLnNwZWMuYXJ0aWZhY3RzOyB9XG5cbiAgICAvLyBTaW1wbGlmeSBhIHNpbmdsZSBcInNlY29uZGFyeS1hcnRpZmFjdHNcIiB0byBhIHNpbmdsZSBwcmltYXJ5IGFydGlmYWN0IChyZWdhcmRsZXNzIG9mIHRoZSBuYW1lKVxuICAgIGNvbnN0IHNpbmdsZUFydCA9IGRpY3RTaW5nbGV0b25WYWx1ZSh0aGlzLnNwZWMuYXJ0aWZhY3RzWydzZWNvbmRhcnktYXJ0aWZhY3RzJ10pO1xuICAgIGlmIChzaW5nbGVBcnQpIHsgcmV0dXJuIHNpbmdsZUFydDsgfVxuXG4gICAgLy8gT3RoZXJ3aXNlIHJlbmFtZSBhICdQUklNQVJZJyBrZXkgaWYgaXQgZXhpc3RzXG4gICAgaWYgKE1BR0lDX0FSVElGQUNUX05BTUUgaW4gdGhpcy5zcGVjLmFydGlmYWN0c1snc2Vjb25kYXJ5LWFydGlmYWN0cyddKSB7XG4gICAgICBpZiAoIW9wdGlvbnMucHJpbWFyeUFydGlmYWN0TmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcGxhY2VtZW50IG5hbWUgZm9yICR7TUFHSUNfQVJUSUZBQ1RfTkFNRX0gYXJ0aWZhY3Qgbm90IHN1cHBsaWVkYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7ICdzZWNvbmRhcnktYXJ0aWZhY3RzJzogcmVuYW1lS2V5KHRoaXMuc3BlYy5hcnRpZmFjdHNbJ3NlY29uZGFyeS1hcnRpZmFjdHMnXSwgTUFHSUNfQVJUSUZBQ1RfTkFNRSwgb3B0aW9ucy5wcmltYXJ5QXJ0aWZhY3ROYW1lKSB9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNwZWMuYXJ0aWZhY3RzO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlQnVpbGRTcGVjUHJvcHMge1xuICBpbnN0YWxsPzogc3RyaW5nW107XG4gIHByZUJ1aWxkPzogc3RyaW5nW107XG4gIGJ1aWxkPzogc3RyaW5nW107XG4gIHJlcG9ydHM/OiB7IFtrZXk6IHN0cmluZ106IFJlcG9ydFN0cnVjdCB9O1xuICBhcnRpZmFjdERpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hlcmUgdGhlIGRpcmVjdG9yaWVzIGZvciBlYWNoIGFydGlmYWN0IGFyZVxuICAgKlxuICAgKiBVc2Ugc3BlY2lhbCBuYW1lIFBSSU1BUlkgdG8gcmVmZXIgdG8gdGhlIHByaW1hcnkgYXJ0aWZhY3QuIFdpbGwgYmVcbiAgICogcmVwbGFjZWQgd2l0aCB0aGUgYWN0dWFsIGFydGlmYWN0IG5hbWUgd2hlbiB0aGUgYnVpbGQgc3BlYyBpcyBzeW50aGVzaXplZC5cbiAgICovXG4gIGFkZGl0aW9uYWxBcnRpZmFjdERpcmVjdG9yaWVzPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkU3BlY1N0cnVjdCB7XG4gICd2ZXJzaW9uJzogJzAuMic7XG4gICdydW4tYXMnPzogc3RyaW5nO1xuICAnZW52Jz86IEVudlN0cnVjdDtcbiAgJ3BoYXNlcyc/OiB7IFtrZXk6IHN0cmluZ106IFBoYXNlU3RydWN0IH07XG4gICdhcnRpZmFjdHMnPzogUHJpbWFyeUFydGlmYWN0U3RydWN0O1xuICAnY2FjaGUnPzogQ2FjaGVTdHJ1Y3Q7XG4gICdyZXBvcnRzJz86IHsgW2tleTogc3RyaW5nXTogUmVwb3J0U3RydWN0IH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52U3RydWN0IHtcbiAgJ3ZhcmlhYmxlcyc/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAncGFyYW1ldGVyLXN0b3JlJz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gICdleHBvcnRlZC12YXJpYWJsZXMnPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGhhc2VTdHJ1Y3Qge1xuICAncnVuLWFzJz86IHN0cmluZztcbiAgJ2NvbW1hbmRzJzogc3RyaW5nW107XG4gICdmaW5hbGx5Jz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFN0cnVjdCB7XG4gICdmaWxlcyc/OiBzdHJpbmdbXTtcbiAgJ2Jhc2UtZGlyZWN0b3J5Jz86IHN0cmluZztcbiAgJ2Rpc2NhcmQtcGF0aHMnPzogJ3llcycgfCAnbm8nO1xuICAnZmlsZS1mb3JtYXQnPzogJ0N1Y3VtYmVySnNvbicgfCAnSnVuaXRYbWwnIHwgJ051bml0WG1sJyB8ICdUZXN0TkdYbWwnIHwgJ1Zpc3VhbFN0dWRpb1RyeCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWZhY3RTdHJ1Y3Qge1xuICAnZmlsZXMnPzogc3RyaW5nW107XG4gICduYW1lJz86IHN0cmluZztcbiAgJ2Jhc2UtZGlyZWN0b3J5Jz86IHN0cmluZztcbiAgJ2Rpc2NhcmQtcGF0aHMnPzogJ3llcycgfCAnbm8nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaW1hcnlBcnRpZmFjdFN0cnVjdCBleHRlbmRzIEFydGlmYWN0U3RydWN0IHtcbiAgJ3NlY29uZGFyeS1hcnRpZmFjdHMnPzogeyBba2V5OiBzdHJpbmddOiBBcnRpZmFjdFN0cnVjdCB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlU3RydWN0IHtcbiAgcGF0aHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkU3BlY1JlbmRlck9wdGlvbnMge1xuICAvKipcbiAgICogUmVwbGFjZSBQUklNQVJZIGFydGlmYWN0IG5hbWUgd2l0aCB0aGlzXG4gICAqXG4gICAqIENhbm5vdCB1c2UgdGhlIHNwZWNpYWwgdGVybSBQUklNQVJZIGlmIHRoaXMgaXMgbm90IHN1cHBsaWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAgQ2Fubm90IHVzZSBQUklNQVJZXG4gICAqL1xuICBwcmltYXJ5QXJ0aWZhY3ROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIElmIHRoZSBkaWN0IGlzIGEgc2luZ2xldG9uIGRpY3QsIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGtleSwgb3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWRcbiAqL1xuZnVuY3Rpb24gZGljdFNpbmdsZXRvblZhbHVlPFQ+KHhzOiB7IFtrZXk6IHN0cmluZ106IFQgfSk6IFQgfCB1bmRlZmluZWQge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoeHMpO1xuICBpZiAoa2V5cy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4geHNba2V5c1swXV07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcmVuYW1lS2V5PFQ+KHhzOiB7IFtrZXk6IHN0cmluZ106IFQgfSwgb3JpZzogc3RyaW5nLCByZW5hbWU6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogVCB9IHtcbiAgY29uc3QgcmV0ID0gT2JqZWN0LmFzc2lnbih7fSwgeHMpO1xuICBpZiAob3JpZyBpbiByZXQpIHtcbiAgICByZXRbcmVuYW1lXSA9IHJldFtvcmlnXTtcbiAgICBkZWxldGUgcmV0W29yaWddO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJ1aWxkLXNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWdEO0FBR2hELE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFhLFNBQVM7SUFDYixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXVCO1FBQzNDLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBMkI7UUFDOUMsaUZBQWlGO1FBQ2pGLHlEQUF5RDtRQUN6RCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUMxQyxLQUFLLENBQUMsNkJBQTZCLElBQUksRUFBRSxFQUN6QyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2xGLENBQUM7UUFFRixJQUFJLFNBQTRDLENBQUM7UUFDakQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsU0FBUyxHQUFHO2dCQUNWLHFCQUFxQixFQUFFLElBQUEsZ0JBQVMsRUFBQyxtQkFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzNELGdCQUFnQixFQUFFLENBQUM7b0JBQ25CLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztpQkFDbEIsQ0FBQyxDQUFDO2FBQ0osQ0FBQztTQUNIO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBQztZQUNuQixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxJQUFBLGtCQUFXLEVBQUM7Z0JBQ2xCLE9BQU8sRUFB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QUFDLENBQUM7UUFDeEIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbEI7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXBWYWx1ZXMsIG5vVW5kZWZpbmVkIH0gZnJvbSAnLi91dGlsJztcblxuXG5jb25zdCBNQUdJQ19BUlRJRkFDVF9OQU1FID0gJ1BSSU1BUlknO1xuXG4vKipcbiAqIENsYXNzIHRvIG1vZGVsIGEgYnVpbGRzcGVjIHZlcnNpb24gMC4yXG4gKlxuICogQXJ0aWZhY3QgaGFuZGxpbmcgaXMgYSBsaXR0bGUgc3BlY2lhbDogQ29kZUJ1aWxkIHdpbGwgaW50ZXJwcmV0IHRoZVxuICogJ2FydGlmYWN0cycgc2VjdGlvbiBkaWZmZXJlbnRseSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGVyZSBhcmUgc2Vjb25kYXJ5XG4gKiBhcnRpZmFjdHMgb3Igbm90LlxuICpcbiAqIElmIHRoZXJlIGlzIG9ubHkgb25lIGFydGlmYWN0LCB0aGUgc2luZ2xlIGFydGlmYWN0IG11c3QgZ28gaW50byB0aGUgdG9wLWxldmVsXG4gKiAnYXJ0aWZhY3RzJyBzZWN0aW9uLiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgYXJ0aWZhY3RzLCBhbGwgb2YgdGhlbSBtdXN0IGdvXG4gKiBpbnRvIHRoZSAnc2Vjb25kYXJ5LWFydGlmYWN0cycgc2VjdGlvbi4gVXBvbiByZW5kZXJpbmcgdG8gSlNPTiwgdGhlIGNhbGxlclxuICogbXVzdCBzdXBwbHkgdGhlIG5hbWUgb2YgdGhlIHByaW1hcnkgYXJ0aWZhY3QgKGl0J3MgZGV0ZXJtaW5lZCBieVxuICogdGhlIENvZGVQaXBlbGluZSBBY3Rpb24gdGhhdCBpbnZva2VzIHRoZSBDb2RlQnVpbGQgUHJvamVjdCB0aGF0IHVzZXMgdGhpc1xuICogYnVpbGRzcGVjKS5cbiAqXG4gKiBJTlZBUklBTlQ6IGluLW1lbW9yeSwgdGhlIEJ1aWxkU3BlYyB3aWxsIHRyZWF0IGFsbCBhcnRpZmFjdHMgdGhlIHNhbWUgKGFzXG4gKiBhIGJhZyBvZiBzZWNvbmRhcnkgYXJ0aWZhY3RzKS4gQXQgdGhlIGVkZ2VzIChjb25zdHJ1Y3Rpb24gb3IgcmVuZGVyaW5nKSxcbiAqIGlmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSBhcnRpZmFjdCBpdCB3aWxsIGJlIHJlbmRlcmVkIHRvIHRoZSBwcmltYXJ5XG4gKiBhcnRpZmFjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEJ1aWxkU3BlYyB7XG4gIHB1YmxpYyBzdGF0aWMgbGl0ZXJhbChzdHJ1Y3Q6IEJ1aWxkU3BlY1N0cnVjdCkge1xuICAgIHJldHVybiBuZXcgQnVpbGRTcGVjKHN0cnVjdCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNpbXBsZShwcm9wczogU2ltcGxlQnVpbGRTcGVjUHJvcHMpIHtcbiAgICAvLyBXZSBtZXJnZSB0aGUgcHJpbWFyeSBhcnRpZmFjdCBpbnRvIHRoZSBzZWNvbmRhcnkgYXJ0aWZhY3RzIHVuZGVyIGEgc3BlY2lhbCBrZXlcbiAgICAvLyBUaGV5IHdpbGwgYmUgY29tcGFjdGVkIGJhY2sgdG9nZXRoZXIgZHVyaW5nIHJlbmRlcmluZy5cbiAgICBjb25zdCBhcnRpZmFjdERpcmVjdG9yaWVzID0gT2JqZWN0LmFzc2lnbih7fSxcbiAgICAgIHByb3BzLmFkZGl0aW9uYWxBcnRpZmFjdERpcmVjdG9yaWVzIHx8IHt9LFxuICAgICAgcHJvcHMuYXJ0aWZhY3REaXJlY3RvcnkgPyB7IFtNQUdJQ19BUlRJRkFDVF9OQU1FXTogcHJvcHMuYXJ0aWZhY3REaXJlY3RvcnkgfSA6IHt9LFxuICAgICk7XG5cbiAgICBsZXQgYXJ0aWZhY3RzOiBQcmltYXJ5QXJ0aWZhY3RTdHJ1Y3QgfCB1bmRlZmluZWQ7XG4gICAgaWYgKE9iamVjdC5rZXlzKGFydGlmYWN0RGlyZWN0b3JpZXMgfHwge30pLmxlbmd0aCA+IDApIHtcbiAgICAgIGFydGlmYWN0cyA9IHtcbiAgICAgICAgJ3NlY29uZGFyeS1hcnRpZmFjdHMnOiBtYXBWYWx1ZXMoYXJ0aWZhY3REaXJlY3RvcmllcyEsIGQgPT4gKHtcbiAgICAgICAgICAnYmFzZS1kaXJlY3RvcnknOiBkLFxuICAgICAgICAgICdmaWxlcyc6IFsnKiovKiddLFxuICAgICAgICB9KSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQnVpbGRTcGVjKHtcbiAgICAgIHZlcnNpb246ICcwLjInLFxuICAgICAgcGhhc2VzOiBub1VuZGVmaW5lZCh7XG4gICAgICAgIGluc3RhbGw6IHByb3BzLmluc3RhbGwgIT09IHVuZGVmaW5lZCA/IHsgY29tbWFuZHM6IHByb3BzLmluc3RhbGwgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJlX2J1aWxkOiBwcm9wcy5wcmVCdWlsZCAhPT0gdW5kZWZpbmVkID8geyBjb21tYW5kczogcHJvcHMucHJlQnVpbGQgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgYnVpbGQ6IHByb3BzLmJ1aWxkICE9PSB1bmRlZmluZWQgPyB7IGNvbW1hbmRzOiBwcm9wcy5idWlsZCB9IDogdW5kZWZpbmVkLFxuICAgICAgfSksXG4gICAgICBhcnRpZmFjdHMsXG4gICAgICByZXBvcnRzOiBwcm9wcy5yZXBvcnRzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlbXB0eSgpIHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkU3BlYyh7IHZlcnNpb246ICcwLjInIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNwZWM6IEJ1aWxkU3BlY1N0cnVjdCkge1xuICB9XG5cbiAgcHVibGljIGdldCBhZGRpdGlvbmFsQXJ0aWZhY3ROYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuc3BlYy5hcnRpZmFjdHMgJiYgdGhpcy5zcGVjLmFydGlmYWN0c1snc2Vjb25kYXJ5LWFydGlmYWN0cyddIHx8IHt9KS5maWx0ZXIobiA9PiBuICE9PSBNQUdJQ19BUlRJRkFDVF9OQU1FKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXJnZShvdGhlcjogQnVpbGRTcGVjKTogQnVpbGRTcGVjIHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkU3BlYyh7XG4gICAgICAndmVyc2lvbic6ICcwLjInLFxuICAgICAgJ3J1bi1hcyc6IG1lcmdlT2JqKHRoaXMuc3BlY1sncnVuLWFzJ10sIG90aGVyLnNwZWNbJ3J1bi1hcyddLCBlcXVhbE9iamVjdHMpLFxuICAgICAgJ2Vudic6IG1lcmdlT2JqKHRoaXMuc3BlYy5lbnYsIG90aGVyLnNwZWMuZW52LCAoYSwgYikgPT4gKHtcbiAgICAgICAgJ3BhcmFtZXRlci1zdG9yZSc6IG1lcmdlRGljdChhWydwYXJhbWV0ZXItc3RvcmUnXSwgYlsncGFyYW1ldGVyLXN0b3JlJ10sIGVxdWFsT2JqZWN0cyksXG4gICAgICAgICd2YXJpYWJsZXMnOiBtZXJnZURpY3QoYS52YXJpYWJsZXMsIGIudmFyaWFibGVzLCBlcXVhbE9iamVjdHMpLFxuICAgICAgfSkpLFxuICAgICAgJ3BoYXNlcyc6IG1lcmdlRGljdCh0aGlzLnNwZWMucGhhc2VzLCBvdGhlci5zcGVjLnBoYXNlcywgKGEsIGIsIHBoYXNlKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lcmdlZDogUGhhc2VTdHJ1Y3QgPSB7XG4gICAgICAgICAgJ3J1bi1hcyc6IG1lcmdlT2JqKGFbJ3J1bi1hcyddLCBiWydydW4tYXMnXSwgZXF1YWxPYmplY3RzKSxcbiAgICAgICAgICAnb24tZmFpbHVyZSc6IG1lcmdlT2JqKGFbJ29uLWZhaWx1cmUnXSwgYlsnb24tZmFpbHVyZSddLCBlcXVhbE9iamVjdHMpLFxuICAgICAgICAgICdjb21tYW5kcyc6IG1lcmdlTGlzdChhLmNvbW1hbmRzLCBiLmNvbW1hbmRzKSEsXG4gICAgICAgICAgJ2ZpbmFsbHknOiBtZXJnZUxpc3QoYS5maW5hbGx5LCBiLmZpbmFsbHkpLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChwaGFzZSA9PT0gJ2luc3RhbGwnKSB7XG4gICAgICAgICAgKG1lcmdlZCBhcyBJbnN0YWxsUGhhc2VTdHJ1Y3QpWydydW50aW1lLXZlcnNpb25zJ10gPSBtZXJnZURpY3QoXG4gICAgICAgICAgICAoYSBhcyBJbnN0YWxsUGhhc2VTdHJ1Y3QpWydydW50aW1lLXZlcnNpb25zJ10sXG4gICAgICAgICAgICAoYiBhcyBJbnN0YWxsUGhhc2VTdHJ1Y3QpWydydW50aW1lLXZlcnNpb25zJ10sXG4gICAgICAgICAgICBlcXVhbE9iamVjdHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub1VuZGVmaW5lZChtZXJnZWQpO1xuICAgICAgfSksXG4gICAgICAnYXJ0aWZhY3RzJzogbWVyZ2VPYmoodGhpcy5zcGVjLmFydGlmYWN0cywgb3RoZXIuc3BlYy5hcnRpZmFjdHMsIG1lcmdlQXJ0aWZhY3RzKSxcbiAgICAgICdjYWNoZSc6IG1lcmdlT2JqKHRoaXMuc3BlYy5jYWNoZSwgb3RoZXIuc3BlYy5jYWNoZSwgKGEsIGIpID0+ICh7XG4gICAgICAgIHBhdGhzOiBtZXJnZUxpc3QoYS5wYXRocywgYi5wYXRocykhLFxuICAgICAgfSkpLFxuICAgICAgJ3JlcG9ydHMnOiBtZXJnZURpY3QodGhpcy5zcGVjLnJlcG9ydHMsIG90aGVyLnNwZWMucmVwb3J0cywgKGEsIGIpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXBvcnRzIG11c3QgaGF2ZSB1bmlxdWUgbmFtZXMsIGdvdCAke2F9IGFuZCAke2J9YCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1lcmdlQXJ0aWZhY3RzKGE6IFByaW1hcnlBcnRpZmFjdFN0cnVjdCwgYjogUHJpbWFyeUFydGlmYWN0U3RydWN0KTogUHJpbWFyeUFydGlmYWN0U3RydWN0IHtcbiAgICAgIGlmIChhLmZpbGVzIHx8IGIuZmlsZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb25lIG9mIHRoZSBCdWlsZFNwZWNzIG1heSBoYXZlIGEgcHJpbWFyeSBhcnRpZmFjdC4nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXJ0aWZhY3RzID0gT2JqZWN0LmFzc2lnbih7fSwgYVsnc2Vjb25kYXJ5LWFydGlmYWN0cyddIHx8IHt9KTtcbiAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGJbJ3NlY29uZGFyeS1hcnRpZmFjdHMnXSB8fCB7fSkpIHtcbiAgICAgICAgaWYgKGsgaW4gYXJ0aWZhY3RzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBhbHJlYWR5IGFuIGFydGlmYWN0IHdpdGggbmFtZSAke2t9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYXJ0aWZhY3RzW2tdID0gdjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBhLCB7ICdzZWNvbmRhcnktYXJ0aWZhY3RzJzogYXJ0aWZhY3RzIH0pO1xuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gZXF1YWxPYmplY3RzKGE6IHN0cmluZywgYjogc3RyaW5nKSB7XG4gICAgICBpZiAoYSAhPT0gYikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IG1lcmdlIHR3byBkaWZmZXJlbnQgdmFsdWVzIGZvciB0aGUgc2FtZSBrZXk6ICR7SlNPTi5zdHJpbmdpZnkoYSl9LCAke0pTT04uc3RyaW5naWZ5KGIpfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VPYmo8VD4oYTogVCB8IHVuZGVmaW5lZCwgYjogVCB8IHVuZGVmaW5lZCwgZm46IChhOiBULCBiOiBUKSA9PiBUKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiBiOyB9XG4gICAgICBpZiAoYiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiBhOyB9XG4gICAgICByZXR1cm4gZm4oYSwgYik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VEaWN0PFQ+KGFzOiB7IFtrOiBzdHJpbmddOiBUIH0gfCB1bmRlZmluZWQsIGJzOiB7IFtrOiBzdHJpbmddOiBUIH0gfCB1bmRlZmluZWQsIGZuOiAoYTogVCwgYjogVCwgazogc3RyaW5nKSA9PiBUKSB7XG4gICAgICByZXR1cm4gbWVyZ2VPYmooYXMsIGJzLCAoYSwgYikgPT4ge1xuICAgICAgICBjb25zdCByZXQgPSBPYmplY3QuYXNzaWduKHt9LCBhKTtcbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoYikpIHtcbiAgICAgICAgICBpZiAocmV0W2tdKSB7XG4gICAgICAgICAgICByZXRba10gPSBmbihyZXRba10sIHYsIGspO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRba10gPSB2O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VMaXN0PFQ+KGFzOiBUW10gfCB1bmRlZmluZWQsIGJzOiBUW10gfCB1bmRlZmluZWQpOiBUW10gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIG1lcmdlT2JqKGFzLCBicywgKGEsIGIpID0+IGEuY29uY2F0KGIpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKG9wdGlvbnM6IEJ1aWxkU3BlY1JlbmRlck9wdGlvbnMgPSB7fSk6IEJ1aWxkU3BlY1N0cnVjdCB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3BlYywgeyBhcnRpZmFjdHM6IHRoaXMucmVuZGVyQXJ0aWZhY3RzKG9wdGlvbnMpIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJBcnRpZmFjdHMob3B0aW9uczogQnVpbGRTcGVjUmVuZGVyT3B0aW9ucyk6IFByaW1hcnlBcnRpZmFjdFN0cnVjdCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLnNwZWMuYXJ0aWZhY3RzIHx8ICF0aGlzLnNwZWMuYXJ0aWZhY3RzWydzZWNvbmRhcnktYXJ0aWZhY3RzJ10pIHsgcmV0dXJuIHRoaXMuc3BlYy5hcnRpZmFjdHM7IH1cblxuICAgIC8vIFNpbXBsaWZ5IGEgc2luZ2xlIFwic2Vjb25kYXJ5LWFydGlmYWN0c1wiIHRvIGEgc2luZ2xlIHByaW1hcnkgYXJ0aWZhY3QgKHJlZ2FyZGxlc3Mgb2YgdGhlIG5hbWUpXG4gICAgY29uc3Qgc2luZ2xlQXJ0ID0gZGljdFNpbmdsZXRvblZhbHVlKHRoaXMuc3BlYy5hcnRpZmFjdHNbJ3NlY29uZGFyeS1hcnRpZmFjdHMnXSk7XG4gICAgaWYgKHNpbmdsZUFydCkgeyByZXR1cm4gc2luZ2xlQXJ0OyB9XG5cbiAgICAvLyBPdGhlcndpc2UgcmVuYW1lIGEgJ1BSSU1BUlknIGtleSBpZiBpdCBleGlzdHNcbiAgICBpZiAoTUFHSUNfQVJUSUZBQ1RfTkFNRSBpbiB0aGlzLnNwZWMuYXJ0aWZhY3RzWydzZWNvbmRhcnktYXJ0aWZhY3RzJ10pIHtcbiAgICAgIGlmICghb3B0aW9ucy5wcmltYXJ5QXJ0aWZhY3ROYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUmVwbGFjZW1lbnQgbmFtZSBmb3IgJHtNQUdJQ19BUlRJRkFDVF9OQU1FfSBhcnRpZmFjdCBub3Qgc3VwcGxpZWRgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgJ3NlY29uZGFyeS1hcnRpZmFjdHMnOiByZW5hbWVLZXkodGhpcy5zcGVjLmFydGlmYWN0c1snc2Vjb25kYXJ5LWFydGlmYWN0cyddLCBNQUdJQ19BUlRJRkFDVF9OQU1FLCBvcHRpb25zLnByaW1hcnlBcnRpZmFjdE5hbWUpIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3BlYy5hcnRpZmFjdHM7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVCdWlsZFNwZWNQcm9wcyB7XG4gIGluc3RhbGw/OiBzdHJpbmdbXTtcbiAgcHJlQnVpbGQ/OiBzdHJpbmdbXTtcbiAgYnVpbGQ/OiBzdHJpbmdbXTtcbiAgcmVwb3J0cz86IHsgW2tleTogc3RyaW5nXTogUmVwb3J0U3RydWN0IH07XG4gIGFydGlmYWN0RGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgZGlyZWN0b3JpZXMgZm9yIGVhY2ggYXJ0aWZhY3QgYXJlXG4gICAqXG4gICAqIFVzZSBzcGVjaWFsIG5hbWUgUFJJTUFSWSB0byByZWZlciB0byB0aGUgcHJpbWFyeSBhcnRpZmFjdC4gV2lsbCBiZVxuICAgKiByZXBsYWNlZCB3aXRoIHRoZSBhY3R1YWwgYXJ0aWZhY3QgbmFtZSB3aGVuIHRoZSBidWlsZCBzcGVjIGlzIHN5bnRoZXNpemVkLlxuICAgKi9cbiAgYWRkaXRpb25hbEFydGlmYWN0RGlyZWN0b3JpZXM/OiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTcGVjU3RydWN0IHtcbiAgJ3ZlcnNpb24nOiAnMC4yJztcbiAgJ3J1bi1hcyc/OiBzdHJpbmc7XG4gICdlbnYnPzogRW52U3RydWN0O1xuICAncGhhc2VzJz86IHtcbiAgICBpbnN0YWxsPzogSW5zdGFsbFBoYXNlU3RydWN0O1xuICAgIHByZV9idWlsZD86IFBoYXNlU3RydWN0O1xuICAgIGJ1aWxkPzogUGhhc2VTdHJ1Y3Q7XG4gICAgcG9zdF9idWlsZD86IFBoYXNlU3RydWN0O1xuICB9O1xuICAnYXJ0aWZhY3RzJz86IFByaW1hcnlBcnRpZmFjdFN0cnVjdDtcbiAgJ2NhY2hlJz86IENhY2hlU3RydWN0O1xuICAncmVwb3J0cyc/OiB7IFtrZXk6IHN0cmluZ106IFJlcG9ydFN0cnVjdCB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudlN0cnVjdCB7XG4gICd2YXJpYWJsZXMnPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgJ3BhcmFtZXRlci1zdG9yZSc/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAnZXhwb3J0ZWQtdmFyaWFibGVzJz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBoYXNlU3RydWN0IHtcbiAgJ3J1bi1hcyc/OiBzdHJpbmc7XG4gICdvbi1mYWlsdXJlJz86IHN0cmluZztcbiAgJ2NvbW1hbmRzJzogc3RyaW5nW107XG4gICdmaW5hbGx5Jz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbGxQaGFzZVN0cnVjdCBleHRlbmRzIFBoYXNlU3RydWN0IHtcbiAgJ3J1bnRpbWUtdmVyc2lvbnMnPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTdHJ1Y3Qge1xuICAnZmlsZXMnPzogc3RyaW5nW107XG4gICdiYXNlLWRpcmVjdG9yeSc/OiBzdHJpbmc7XG4gICdkaXNjYXJkLXBhdGhzJz86ICd5ZXMnIHwgJ25vJztcbiAgJ2ZpbGUtZm9ybWF0Jz86ICdDdWN1bWJlckpzb24nIHwgJ0p1bml0WG1sJyB8ICdOdW5pdFhtbCcgfCAnVGVzdE5HWG1sJyB8ICdWaXN1YWxTdHVkaW9UcngnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFydGlmYWN0U3RydWN0IHtcbiAgJ2ZpbGVzJz86IHN0cmluZ1tdO1xuICAnbmFtZSc/OiBzdHJpbmc7XG4gICdiYXNlLWRpcmVjdG9yeSc/OiBzdHJpbmc7XG4gICdkaXNjYXJkLXBhdGhzJz86ICd5ZXMnIHwgJ25vJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmltYXJ5QXJ0aWZhY3RTdHJ1Y3QgZXh0ZW5kcyBBcnRpZmFjdFN0cnVjdCB7XG4gICdzZWNvbmRhcnktYXJ0aWZhY3RzJz86IHsgW2tleTogc3RyaW5nXTogQXJ0aWZhY3RTdHJ1Y3QgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYWNoZVN0cnVjdCB7XG4gIHBhdGhzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFNwZWNSZW5kZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJlcGxhY2UgUFJJTUFSWSBhcnRpZmFjdCBuYW1lIHdpdGggdGhpc1xuICAgKlxuICAgKiBDYW5ub3QgdXNlIHRoZSBzcGVjaWFsIHRlcm0gUFJJTUFSWSBpZiB0aGlzIGlzIG5vdCBzdXBwbGllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgIENhbm5vdCB1c2UgUFJJTUFSWVxuICAgKi9cbiAgcHJpbWFyeUFydGlmYWN0TmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJZiB0aGUgZGljdCBpcyBhIHNpbmdsZXRvbiBkaWN0LCByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBrZXksIG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkXG4gKi9cbmZ1bmN0aW9uIGRpY3RTaW5nbGV0b25WYWx1ZTxUPih4czogeyBba2V5OiBzdHJpbmddOiBUIH0pOiBUIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHhzKTtcbiAgaWYgKGtleXMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHhzW2tleXNbMF1dO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHJlbmFtZUtleTxUPih4czogeyBba2V5OiBzdHJpbmddOiBUIH0sIG9yaWc6IHN0cmluZywgcmVuYW1lOiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfSB7XG4gIGNvbnN0IHJldCA9IE9iamVjdC5hc3NpZ24oe30sIHhzKTtcbiAgaWYgKG9yaWcgaW4gcmV0KSB7XG4gICAgcmV0W3JlbmFtZV0gPSByZXRbb3JpZ107XG4gICAgZGVsZXRlIHJldFtvcmlnXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuIl19
package/package.json CHANGED
@@ -97,7 +97,7 @@
97
97
  "publishConfig": {
98
98
  "access": "public"
99
99
  },
100
- "version": "15.0.60",
100
+ "version": "15.1.1",
101
101
  "jest": {
102
102
  "coverageProvider": "v8",
103
103
  "testMatch": [