@devramps/sdk-typescript 0.1.4 → 0.1.5

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.
@@ -3,16 +3,19 @@ import type { StepLogger } from "../logging/step-logger";
3
3
  import type { PrepareOutput } from "../output/step-output";
4
4
  import type { ZodStandardJSONSchemaPayload } from "zod/v4/core";
5
5
  export type StepKind = "simple" | "polling";
6
+ export interface StepData<S extends ZodType = ZodType> {
7
+ schema: S;
8
+ stepType: string;
9
+ stepKind: StepKind;
10
+ requiresApproval: boolean;
11
+ }
6
12
  export interface StepMetadata<S extends ZodType = ZodType> {
7
13
  name?: string;
8
14
  shortDescription?: string;
9
15
  longDescription?: string;
10
16
  yamlExample?: string;
11
- schema: S;
12
- stepKind: StepKind;
13
- requiresApproval: boolean;
14
17
  stepType: string;
15
- jsonSchema: ZodStandardJSONSchemaPayload<S>;
18
+ paramsJsonSchema: ZodStandardJSONSchemaPayload<S>;
16
19
  documentationUrl?: string;
17
20
  }
18
21
  /**
@@ -31,6 +34,7 @@ export declare abstract class BaseStep<TParams = unknown> {
31
34
  * Implemented by the @Step decorator.
32
35
  */
33
36
  getMetadata(): StepMetadata;
37
+ getData(): StepData;
34
38
  /**
35
39
  * Optional prepare method for approval flow.
36
40
  * Override this to require approval before execution.
@@ -23,6 +23,9 @@ class BaseStep {
23
23
  getMetadata() {
24
24
  throw new Error("getMetadata not implemented. Did you forget to add the @Step decorator?");
25
25
  }
26
+ getData() {
27
+ throw new Error("getData not implemented. Did you forget to add the @Step decorator?");
28
+ }
26
29
  /**
27
30
  * Optional prepare method for approval flow.
28
31
  * Override this to require approval before execution.
@@ -35,4 +38,4 @@ class BaseStep {
35
38
  }
36
39
  }
37
40
  exports.BaseStep = BaseStep;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UvYmFzZS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHdEQUFvRDtBQUVwRCx1REFBb0Q7QUFrQnBEOzs7R0FHRztBQUNILE1BQXNCLFFBQVE7SUFDbEIsTUFBTSxHQUFlLElBQUksd0JBQVUsRUFBRSxDQUFDO0lBRWhEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxNQUFrQjtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULE1BQU0sSUFBSSxLQUFLLENBQ2IseUVBQXlFLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZ0I7UUFDNUIsOERBQThEO1FBQzlELGlFQUFpRTtRQUNqRSxPQUFPLHlCQUFXLENBQUMsTUFBTSxDQUN2QixzQ0FBc0MsRUFDdEMseUJBQXlCLENBQzFCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFsQ0QsNEJBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBab2RUeXBlIH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHR5cGUgeyBTdGVwTG9nZ2VyIH0gZnJvbSBcIi4uL2xvZ2dpbmcvc3RlcC1sb2dnZXJcIjtcbmltcG9ydCB7IE5vT3BMb2dnZXIgfSBmcm9tIFwiLi4vbG9nZ2luZy9zdGVwLWxvZ2dlclwiO1xuaW1wb3J0IHR5cGUgeyBQcmVwYXJlT3V0cHV0IH0gZnJvbSBcIi4uL291dHB1dC9zdGVwLW91dHB1dFwiO1xuaW1wb3J0IHsgU3RlcE91dHB1dHMgfSBmcm9tIFwiLi4vb3V0cHV0L3N0ZXAtb3V0cHV0XCI7XG5pbXBvcnQgdHlwZSB7IFpvZFN0YW5kYXJkSlNPTlNjaGVtYVBheWxvYWQgfSBmcm9tIFwiem9kL3Y0L2NvcmVcIjtcblxuZXhwb3J0IHR5cGUgU3RlcEtpbmQgPSBcInNpbXBsZVwiIHwgXCJwb2xsaW5nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcE1ldGFkYXRhPFMgZXh0ZW5kcyBab2RUeXBlID0gWm9kVHlwZT4ge1xuICBuYW1lPzogc3RyaW5nO1xuICBzaG9ydERlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsb25nRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHlhbWxFeGFtcGxlPzogc3RyaW5nO1xuICBzY2hlbWE6IFM7XG4gIHN0ZXBLaW5kOiBTdGVwS2luZDtcbiAgcmVxdWlyZXNBcHByb3ZhbDogYm9vbGVhbjtcbiAgc3RlcFR5cGU6IHN0cmluZztcbiAganNvblNjaGVtYTogWm9kU3RhbmRhcmRKU09OU2NoZW1hUGF5bG9hZDxTPjtcbiAgZG9jdW1lbnRhdGlvblVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgc3RlcHMuXG4gKiBQcm92aWRlcyBsb2dnaW5nIGFuZCBjb21tb24gZnVuY3Rpb25hbGl0eS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTdGVwPFRQYXJhbXMgPSB1bmtub3duPiB7XG4gIHByb3RlY3RlZCBsb2dnZXI6IFN0ZXBMb2dnZXIgPSBuZXcgTm9PcExvZ2dlcigpO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJlZ2lzdHJ5IHRvIGluamVjdCB0aGUgbG9nZ2VyIGJlZm9yZSBleGVjdXRpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3NldExvZ2dlcihsb2dnZXI6IFN0ZXBMb2dnZXIpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIG1ldGFkYXRhIGFib3V0IHRoaXMgc3RlcC5cbiAgICogSW1wbGVtZW50ZWQgYnkgdGhlIEBTdGVwIGRlY29yYXRvci5cbiAgICovXG4gIGdldE1ldGFkYXRhKCk6IFN0ZXBNZXRhZGF0YSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJnZXRNZXRhZGF0YSBub3QgaW1wbGVtZW50ZWQuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCB0aGUgQFN0ZXAgZGVjb3JhdG9yP1wiXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcmVwYXJlIG1ldGhvZCBmb3IgYXBwcm92YWwgZmxvdy5cbiAgICogT3ZlcnJpZGUgdGhpcyB0byByZXF1aXJlIGFwcHJvdmFsIGJlZm9yZSBleGVjdXRpb24uXG4gICAqIElmIG5vdCBvdmVycmlkZGVuLCB0aGUgc3RlcCB3aWxsIG5vdCByZXF1aXJlIGFwcHJvdmFsLlxuICAgKi9cbiAgYXN5bmMgcHJlcGFyZShfcGFyYW1zOiBUUGFyYW1zKTogUHJvbWlzZTxQcmVwYXJlT3V0cHV0PiB7XG4gICAgLy8gRGVmYXVsdDogbm8gYXBwcm92YWwgcmVxdWlyZWQgLSB0aGlzIHNob3VsZCBuZXZlciBiZSBjYWxsZWRcbiAgICAvLyBUaGUgcmVnaXN0cnkgY2hlY2tzIGlmIHByZXBhcmUgaXMgb3ZlcnJpZGRlbiBiZWZvcmUgY2FsbGluZyBpdFxuICAgIHJldHVybiBTdGVwT3V0cHV0cy5mYWlsZWQoXG4gICAgICBcInByZXBhcmUoKSBjYWxsZWQgYnV0IG5vdCBpbXBsZW1lbnRlZFwiLFxuICAgICAgXCJQUkVQQVJFX05PVF9JTVBMRU1FTlRFRFwiXG4gICAgKTtcbiAgfVxufVxuXG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UvYmFzZS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHdEQUFvRDtBQUVwRCx1REFBb0Q7QUFzQnBEOzs7R0FHRztBQUNILE1BQXNCLFFBQVE7SUFDbEIsTUFBTSxHQUFlLElBQUksd0JBQVUsRUFBRSxDQUFDO0lBRWhEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxNQUFrQjtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULE1BQU0sSUFBSSxLQUFLLENBQ2IseUVBQXlFLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZ0I7UUFDNUIsOERBQThEO1FBQzlELGlFQUFpRTtRQUNqRSxPQUFPLHlCQUFXLENBQUMsTUFBTSxDQUN2QixzQ0FBc0MsRUFDdEMseUJBQXlCLENBQzFCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4Q0QsNEJBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBab2RUeXBlIH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHR5cGUgeyBTdGVwTG9nZ2VyIH0gZnJvbSBcIi4uL2xvZ2dpbmcvc3RlcC1sb2dnZXJcIjtcbmltcG9ydCB7IE5vT3BMb2dnZXIgfSBmcm9tIFwiLi4vbG9nZ2luZy9zdGVwLWxvZ2dlclwiO1xuaW1wb3J0IHR5cGUgeyBQcmVwYXJlT3V0cHV0IH0gZnJvbSBcIi4uL291dHB1dC9zdGVwLW91dHB1dFwiO1xuaW1wb3J0IHsgU3RlcE91dHB1dHMgfSBmcm9tIFwiLi4vb3V0cHV0L3N0ZXAtb3V0cHV0XCI7XG5pbXBvcnQgdHlwZSB7IFpvZFN0YW5kYXJkSlNPTlNjaGVtYVBheWxvYWQgfSBmcm9tIFwiem9kL3Y0L2NvcmVcIjtcblxuZXhwb3J0IHR5cGUgU3RlcEtpbmQgPSBcInNpbXBsZVwiIHwgXCJwb2xsaW5nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcERhdGE8UyBleHRlbmRzIFpvZFR5cGUgPSBab2RUeXBlPiB7XG4gIHNjaGVtYTogUztcbiAgc3RlcFR5cGU6IHN0cmluZztcbiAgc3RlcEtpbmQ6IFN0ZXBLaW5kO1xuICByZXF1aXJlc0FwcHJvdmFsOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBNZXRhZGF0YTxTIGV4dGVuZHMgWm9kVHlwZSA9IFpvZFR5cGU+IHtcbiAgbmFtZT86IHN0cmluZztcbiAgc2hvcnREZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbG9uZ0Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB5YW1sRXhhbXBsZT86IHN0cmluZztcbiAgc3RlcFR5cGU6IHN0cmluZztcbiAgcGFyYW1zSnNvblNjaGVtYTogWm9kU3RhbmRhcmRKU09OU2NoZW1hUGF5bG9hZDxTPjtcbiAgZG9jdW1lbnRhdGlvblVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgc3RlcHMuXG4gKiBQcm92aWRlcyBsb2dnaW5nIGFuZCBjb21tb24gZnVuY3Rpb25hbGl0eS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTdGVwPFRQYXJhbXMgPSB1bmtub3duPiB7XG4gIHByb3RlY3RlZCBsb2dnZXI6IFN0ZXBMb2dnZXIgPSBuZXcgTm9PcExvZ2dlcigpO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJlZ2lzdHJ5IHRvIGluamVjdCB0aGUgbG9nZ2VyIGJlZm9yZSBleGVjdXRpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3NldExvZ2dlcihsb2dnZXI6IFN0ZXBMb2dnZXIpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIG1ldGFkYXRhIGFib3V0IHRoaXMgc3RlcC5cbiAgICogSW1wbGVtZW50ZWQgYnkgdGhlIEBTdGVwIGRlY29yYXRvci5cbiAgICovXG4gIGdldE1ldGFkYXRhKCk6IFN0ZXBNZXRhZGF0YSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJnZXRNZXRhZGF0YSBub3QgaW1wbGVtZW50ZWQuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCB0aGUgQFN0ZXAgZGVjb3JhdG9yP1wiXG4gICAgKTtcbiAgfVxuXG4gIGdldERhdGEoKTogU3RlcERhdGEge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiZ2V0RGF0YSBub3QgaW1wbGVtZW50ZWQuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCB0aGUgQFN0ZXAgZGVjb3JhdG9yP1wiXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcmVwYXJlIG1ldGhvZCBmb3IgYXBwcm92YWwgZmxvdy5cbiAgICogT3ZlcnJpZGUgdGhpcyB0byByZXF1aXJlIGFwcHJvdmFsIGJlZm9yZSBleGVjdXRpb24uXG4gICAqIElmIG5vdCBvdmVycmlkZGVuLCB0aGUgc3RlcCB3aWxsIG5vdCByZXF1aXJlIGFwcHJvdmFsLlxuICAgKi9cbiAgYXN5bmMgcHJlcGFyZShfcGFyYW1zOiBUUGFyYW1zKTogUHJvbWlzZTxQcmVwYXJlT3V0cHV0PiB7XG4gICAgLy8gRGVmYXVsdDogbm8gYXBwcm92YWwgcmVxdWlyZWQgLSB0aGlzIHNob3VsZCBuZXZlciBiZSBjYWxsZWRcbiAgICAvLyBUaGUgcmVnaXN0cnkgY2hlY2tzIGlmIHByZXBhcmUgaXMgb3ZlcnJpZGRlbiBiZWZvcmUgY2FsbGluZyBpdFxuICAgIHJldHVybiBTdGVwT3V0cHV0cy5mYWlsZWQoXG4gICAgICBcInByZXBhcmUoKSBjYWxsZWQgYnV0IG5vdCBpbXBsZW1lbnRlZFwiLFxuICAgICAgXCJQUkVQQVJFX05PVF9JTVBMRU1FTlRFRFwiXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { type ZodType, z } from "zod";
2
2
  import { BaseStep } from "../base/base-step";
3
- export interface StepConfig<S extends ZodType> {
3
+ export interface StepConfig<S extends ZodType = ZodType> {
4
4
  name?: string;
5
5
  type: string;
6
6
  shortDescription?: string;
@@ -31,6 +31,16 @@ function Step(config) {
31
31
  return function (Base) {
32
32
  const Enhanced = class extends Base {
33
33
  getMetadata() {
34
+ return {
35
+ name: config.name,
36
+ stepType: config.type,
37
+ shortDescription: config.shortDescription,
38
+ longDescription: config.longDescription,
39
+ yamlExample: config.yamlExample,
40
+ paramsJsonSchema: zod_1.z.toJSONSchema(config.schema),
41
+ };
42
+ }
43
+ getData() {
34
44
  // Detect step kind by checking for PollingStep methods
35
45
  const hasPollingMethods = "trigger" in this &&
36
46
  typeof this.trigger === "function" &&
@@ -40,13 +50,8 @@ function Step(config) {
40
50
  // Check if prepare is overridden (not the default BaseStep.prepare)
41
51
  const requiresApproval = this.prepare !== base_step_1.BaseStep.prototype.prepare;
42
52
  return {
43
- name: config.name,
44
53
  stepType: config.type,
45
- shortDescription: config.shortDescription,
46
- longDescription: config.longDescription,
47
- yamlExample: config.yamlExample,
48
54
  schema: config.schema,
49
- jsonSchema: zod_1.z.toJSONSchema(config.schema),
50
55
  stepKind,
51
56
  requiresApproval,
52
57
  };
@@ -55,4 +60,4 @@ function Step(config) {
55
60
  return Enhanced;
56
61
  };
57
62
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL3N0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFxQ0Esb0JBa0NDO0FBdkVELDZCQUFzQztBQUV0QyxpREFBNkM7QUFXN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsU0FBZ0IsSUFBSSxDQUFvQixNQUFxQjtJQUMzRCxPQUFPLFVBQ0wsSUFBTztRQUVQLE1BQU0sUUFBUSxHQUFHLEtBQU0sU0FBUSxJQUFJO1lBQ3hCLFdBQVc7Z0JBQ2xCLHVEQUF1RDtnQkFDdkQsTUFBTSxpQkFBaUIsR0FDckIsU0FBUyxJQUFJLElBQUk7b0JBQ2pCLE9BQVEsSUFBWSxDQUFDLE9BQU8sS0FBSyxVQUFVO29CQUMzQyxNQUFNLElBQUksSUFBSTtvQkFDZCxPQUFRLElBQVksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO2dCQUUzQyxNQUFNLFFBQVEsR0FBYSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBRXBFLG9FQUFvRTtnQkFDcEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLG9CQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFFckUsT0FBTztvQkFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDckIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtvQkFDekMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO29CQUN2QyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7b0JBQy9CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDckIsVUFBVSxFQUFFLE9BQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztvQkFDekMsUUFBUTtvQkFDUixnQkFBZ0I7aUJBQ2pCLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQztRQUVGLE9BQU8sUUFBYSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFpvZFR5cGUsIHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgdHlwZSB7IFN0ZXBLaW5kLCBTdGVwTWV0YWRhdGEgfSBmcm9tIFwiLi4vYmFzZS9iYXNlLXN0ZXBcIjtcbmltcG9ydCB7IEJhc2VTdGVwIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS1zdGVwXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcENvbmZpZzxTIGV4dGVuZHMgWm9kVHlwZT4ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHNob3J0RGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxvbmdEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgeWFtbEV4YW1wbGU/OiBzdHJpbmc7XG4gIHNjaGVtYTogUztcbn1cblxuLyoqXG4gKiBEZWNvcmF0b3IgdGhhdCBhZGRzIG1ldGFkYXRhIHRvIGEgc3RlcCBjbGFzcy5cbiAqIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGFsbCBzdGVwcyB0byBiZSByZWdpc3RlcmVkIHdpdGggU3RlcFJlZ2lzdHJ5LlxuICpcbiAqIFRoZSBkZWNvcmF0ZWQgY2xhc3MgbXVzdCBleHRlbmQgU2ltcGxlU3RlcCBvciBQb2xsaW5nU3RlcC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogQFN0ZXAoeyBuYW1lOiBcIk15IFN0ZXBcIiwgdHlwZTogXCJteS1zdGVwXCIsIHNjaGVtYTogbXlTY2hlbWEgfSlcbiAqIGNsYXNzIE15U3RlcCBleHRlbmRzIFNpbXBsZVN0ZXA8TXlQYXJhbXM+IHtcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlDbGllbnQ6IEFwaUNsaWVudCkge1xuICogICAgIHN1cGVyKCk7XG4gKiAgIH1cbiAqXG4gKiAgIGFzeW5jIHJ1bihwYXJhbXM6IE15UGFyYW1zKTogUHJvbWlzZTxSdW5PdXRwdXQ+IHtcbiAqICAgICBhd2FpdCB0aGlzLmFwaUNsaWVudC5kb1NvbWV0aGluZygpO1xuICogICAgIHJldHVybiBTdGVwT3V0cHV0cy5zdWNjZXNzKCk7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiAvLyBSZWdpc3RlciB3aXRoIGRlcGVuZGVuY2llcyBpbmplY3RlZFxuICogU3RlcFJlZ2lzdHJ5LnJ1bihbbmV3IE15U3RlcChhcGlDbGllbnQpXSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFN0ZXA8UyBleHRlbmRzIFpvZFR5cGU+KGNvbmZpZzogU3RlcENvbmZpZzxTPikge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBCYXNlU3RlcDx6LmluZmVyPFM+Pj4oXG4gICAgQmFzZTogVFxuICApOiBUIHtcbiAgICBjb25zdCBFbmhhbmNlZCA9IGNsYXNzIGV4dGVuZHMgQmFzZSB7XG4gICAgICBvdmVycmlkZSBnZXRNZXRhZGF0YSgpOiBTdGVwTWV0YWRhdGE8Uz4ge1xuICAgICAgICAvLyBEZXRlY3Qgc3RlcCBraW5kIGJ5IGNoZWNraW5nIGZvciBQb2xsaW5nU3RlcCBtZXRob2RzXG4gICAgICAgIGNvbnN0IGhhc1BvbGxpbmdNZXRob2RzID1cbiAgICAgICAgICBcInRyaWdnZXJcIiBpbiB0aGlzICYmXG4gICAgICAgICAgdHlwZW9mICh0aGlzIGFzIGFueSkudHJpZ2dlciA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgXCJwb2xsXCIgaW4gdGhpcyAmJlxuICAgICAgICAgIHR5cGVvZiAodGhpcyBhcyBhbnkpLnBvbGwgPT09IFwiZnVuY3Rpb25cIjtcblxuICAgICAgICBjb25zdCBzdGVwS2luZDogU3RlcEtpbmQgPSBoYXNQb2xsaW5nTWV0aG9kcyA/IFwicG9sbGluZ1wiIDogXCJzaW1wbGVcIjtcblxuICAgICAgICAvLyBDaGVjayBpZiBwcmVwYXJlIGlzIG92ZXJyaWRkZW4gKG5vdCB0aGUgZGVmYXVsdCBCYXNlU3RlcC5wcmVwYXJlKVxuICAgICAgICBjb25zdCByZXF1aXJlc0FwcHJvdmFsID0gdGhpcy5wcmVwYXJlICE9PSBCYXNlU3RlcC5wcm90b3R5cGUucHJlcGFyZTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGNvbmZpZy5uYW1lLFxuICAgICAgICAgIHN0ZXBUeXBlOiBjb25maWcudHlwZSxcbiAgICAgICAgICBzaG9ydERlc2NyaXB0aW9uOiBjb25maWcuc2hvcnREZXNjcmlwdGlvbixcbiAgICAgICAgICBsb25nRGVzY3JpcHRpb246IGNvbmZpZy5sb25nRGVzY3JpcHRpb24sXG4gICAgICAgICAgeWFtbEV4YW1wbGU6IGNvbmZpZy55YW1sRXhhbXBsZSxcbiAgICAgICAgICBzY2hlbWE6IGNvbmZpZy5zY2hlbWEsXG4gICAgICAgICAganNvblNjaGVtYTogei50b0pTT05TY2hlbWEoY29uZmlnLnNjaGVtYSksXG4gICAgICAgICAgc3RlcEtpbmQsXG4gICAgICAgICAgcmVxdWlyZXNBcHByb3ZhbCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIEVuaGFuY2VkIGFzIFQ7XG4gIH07XG59XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL3N0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFxQ0Esb0JBd0NDO0FBN0VELDZCQUFzQztBQUV0QyxpREFBNkM7QUFXN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsU0FBZ0IsSUFBSSxDQUFvQixNQUFxQjtJQUMzRCxPQUFPLFVBQ0wsSUFBTztRQUVQLE1BQU0sUUFBUSxHQUFHLEtBQU0sU0FBUSxJQUFJO1lBQ3hCLFdBQVc7Z0JBQ2xCLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ3JCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7b0JBQ3pDLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtvQkFDdkMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO29CQUMvQixnQkFBZ0IsRUFBRSxPQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7aUJBQ2hELENBQUM7WUFDSixDQUFDO1lBRVEsT0FBTztnQkFDZCx1REFBdUQ7Z0JBQ3ZELE1BQU0saUJBQWlCLEdBQ3JCLFNBQVMsSUFBSSxJQUFJO29CQUNqQixPQUFRLElBQVksQ0FBQyxPQUFPLEtBQUssVUFBVTtvQkFDM0MsTUFBTSxJQUFJLElBQUk7b0JBQ2QsT0FBUSxJQUFZLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztnQkFFM0MsTUFBTSxRQUFRLEdBQWEsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUVwRSxvRUFBb0U7Z0JBQ3BFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sS0FBSyxvQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBRXJFLE9BQU87b0JBQ0wsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNyQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07b0JBQ3JCLFFBQVE7b0JBQ1IsZ0JBQWdCO2lCQUNqQixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7UUFFRixPQUFPLFFBQWEsQ0FBQztJQUN2QixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBab2RUeXBlLCB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHR5cGUgeyBTdGVwRGF0YSwgU3RlcEtpbmQsIFN0ZXBNZXRhZGF0YSB9IGZyb20gXCIuLi9iYXNlL2Jhc2Utc3RlcFwiO1xuaW1wb3J0IHsgQmFzZVN0ZXAgfSBmcm9tIFwiLi4vYmFzZS9iYXNlLXN0ZXBcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGVwQ29uZmlnPFMgZXh0ZW5kcyBab2RUeXBlID0gWm9kVHlwZT4ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHNob3J0RGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxvbmdEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgeWFtbEV4YW1wbGU/OiBzdHJpbmc7XG4gIHNjaGVtYTogUztcbn1cblxuLyoqXG4gKiBEZWNvcmF0b3IgdGhhdCBhZGRzIG1ldGFkYXRhIHRvIGEgc3RlcCBjbGFzcy5cbiAqIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGFsbCBzdGVwcyB0byBiZSByZWdpc3RlcmVkIHdpdGggU3RlcFJlZ2lzdHJ5LlxuICpcbiAqIFRoZSBkZWNvcmF0ZWQgY2xhc3MgbXVzdCBleHRlbmQgU2ltcGxlU3RlcCBvciBQb2xsaW5nU3RlcC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogQFN0ZXAoeyBuYW1lOiBcIk15IFN0ZXBcIiwgdHlwZTogXCJteS1zdGVwXCIsIHNjaGVtYTogbXlTY2hlbWEgfSlcbiAqIGNsYXNzIE15U3RlcCBleHRlbmRzIFNpbXBsZVN0ZXA8TXlQYXJhbXM+IHtcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlDbGllbnQ6IEFwaUNsaWVudCkge1xuICogICAgIHN1cGVyKCk7XG4gKiAgIH1cbiAqXG4gKiAgIGFzeW5jIHJ1bihwYXJhbXM6IE15UGFyYW1zKTogUHJvbWlzZTxSdW5PdXRwdXQ+IHtcbiAqICAgICBhd2FpdCB0aGlzLmFwaUNsaWVudC5kb1NvbWV0aGluZygpO1xuICogICAgIHJldHVybiBTdGVwT3V0cHV0cy5zdWNjZXNzKCk7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiAvLyBSZWdpc3RlciB3aXRoIGRlcGVuZGVuY2llcyBpbmplY3RlZFxuICogU3RlcFJlZ2lzdHJ5LnJ1bihbbmV3IE15U3RlcChhcGlDbGllbnQpXSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFN0ZXA8UyBleHRlbmRzIFpvZFR5cGU+KGNvbmZpZzogU3RlcENvbmZpZzxTPikge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBCYXNlU3RlcDx6LmluZmVyPFM+Pj4oXG4gICAgQmFzZTogVFxuICApOiBUIHtcbiAgICBjb25zdCBFbmhhbmNlZCA9IGNsYXNzIGV4dGVuZHMgQmFzZSB7XG4gICAgICBvdmVycmlkZSBnZXRNZXRhZGF0YSgpOiBTdGVwTWV0YWRhdGE8Uz4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGNvbmZpZy5uYW1lLFxuICAgICAgICAgIHN0ZXBUeXBlOiBjb25maWcudHlwZSxcbiAgICAgICAgICBzaG9ydERlc2NyaXB0aW9uOiBjb25maWcuc2hvcnREZXNjcmlwdGlvbixcbiAgICAgICAgICBsb25nRGVzY3JpcHRpb246IGNvbmZpZy5sb25nRGVzY3JpcHRpb24sXG4gICAgICAgICAgeWFtbEV4YW1wbGU6IGNvbmZpZy55YW1sRXhhbXBsZSxcbiAgICAgICAgICBwYXJhbXNKc29uU2NoZW1hOiB6LnRvSlNPTlNjaGVtYShjb25maWcuc2NoZW1hKSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgb3ZlcnJpZGUgZ2V0RGF0YSgpOiBTdGVwRGF0YTxTPiB7XG4gICAgICAgIC8vIERldGVjdCBzdGVwIGtpbmQgYnkgY2hlY2tpbmcgZm9yIFBvbGxpbmdTdGVwIG1ldGhvZHNcbiAgICAgICAgY29uc3QgaGFzUG9sbGluZ01ldGhvZHMgPVxuICAgICAgICAgIFwidHJpZ2dlclwiIGluIHRoaXMgJiZcbiAgICAgICAgICB0eXBlb2YgKHRoaXMgYXMgYW55KS50cmlnZ2VyID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICBcInBvbGxcIiBpbiB0aGlzICYmXG4gICAgICAgICAgdHlwZW9mICh0aGlzIGFzIGFueSkucG9sbCA9PT0gXCJmdW5jdGlvblwiO1xuXG4gICAgICAgIGNvbnN0IHN0ZXBLaW5kOiBTdGVwS2luZCA9IGhhc1BvbGxpbmdNZXRob2RzID8gXCJwb2xsaW5nXCIgOiBcInNpbXBsZVwiO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHByZXBhcmUgaXMgb3ZlcnJpZGRlbiAobm90IHRoZSBkZWZhdWx0IEJhc2VTdGVwLnByZXBhcmUpXG4gICAgICAgIGNvbnN0IHJlcXVpcmVzQXBwcm92YWwgPSB0aGlzLnByZXBhcmUgIT09IEJhc2VTdGVwLnByb3RvdHlwZS5wcmVwYXJlO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3RlcFR5cGU6IGNvbmZpZy50eXBlLFxuICAgICAgICAgIHNjaGVtYTogY29uZmlnLnNjaGVtYSxcbiAgICAgICAgICBzdGVwS2luZCxcbiAgICAgICAgICByZXF1aXJlc0FwcHJvdmFsLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gRW5oYW5jZWQgYXMgVDtcbiAgfTtcbn1cbiJdfQ==
@@ -144,23 +144,23 @@ class StepRegistry {
144
144
  return;
145
145
  }
146
146
  try {
147
- const metadata = instance.getMetadata();
147
+ const data = instance.getData();
148
148
  // Inject logger
149
149
  const logger = new step_logger_1.StepLogger({
150
150
  logDir: this.logDir,
151
151
  executionId: this.executionId,
152
- stepType: metadata.stepType,
152
+ stepType: data.stepType,
153
153
  });
154
154
  instance._setLogger(logger);
155
155
  // Validate params against the step's schema
156
- const parseResult = metadata.schema.safeParse(params);
156
+ const parseResult = data.schema.safeParse(params);
157
157
  if (!parseResult.success) {
158
158
  this.writeOutput(step_output_1.StepOutputs.failed(`Invalid params: ${parseResult.error.message}`, "INVALID_PARAMS"));
159
159
  return;
160
160
  }
161
161
  const validatedParams = parseResult.data;
162
162
  // Route to appropriate phase based on step kind and input context
163
- const output = await this.routeExecution(instance, metadata, validatedParams, approvalContext, pollingState);
163
+ const output = await this.routeExecution(instance, data, validatedParams, approvalContext, pollingState);
164
164
  this.writeOutput(output);
165
165
  }
166
166
  catch (error) {
@@ -168,15 +168,15 @@ class StepRegistry {
168
168
  this.writeOutput(step_output_1.StepOutputs.failed(errorMessage, "EXECUTION_ERROR"));
169
169
  }
170
170
  }
171
- async routeExecution(instance, metadata, params, approvalContext, pollingState) {
172
- const requiresApproval = metadata.requiresApproval;
173
- if (metadata.stepKind === "simple") {
171
+ async routeExecution(instance, data, params, approvalContext, pollingState) {
172
+ const requiresApproval = data.requiresApproval;
173
+ if (data.stepKind === "simple") {
174
174
  return this.routeSimpleStep(instance, params, requiresApproval, approvalContext);
175
175
  }
176
- if (metadata.stepKind === "polling") {
176
+ if (data.stepKind === "polling") {
177
177
  return this.routePollingStep(instance, params, requiresApproval, approvalContext, pollingState);
178
178
  }
179
- return step_output_1.StepOutputs.failed(`Unknown step kind: ${metadata.stepKind}`, "UNKNOWN_STEP_KIND");
179
+ return step_output_1.StepOutputs.failed(`Unknown step kind: ${data.stepKind}`, "UNKNOWN_STEP_KIND");
180
180
  }
181
181
  /**
182
182
  * Route SimpleStep execution based on approval state.
@@ -235,4 +235,4 @@ class StepRegistry {
235
235
  }
236
236
  }
237
237
  exports.StepRegistry = StepRegistry;
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWdpc3RyeS9zdGVwLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0Isd0RBQWdDO0FBQ2hDLDhDQUFvQjtBQUlwQix3REFBb0Q7QUFFcEQsdURBQTJFO0FBRTNFLGdGQUFnRjtBQUNoRixnQkFBZ0I7QUFDaEIsZ0ZBQWdGO0FBRWhGLE1BQU0sNEJBQTRCLEdBQUcsYUFBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxHQUFHLEVBQUUsYUFBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztDQUN0QyxDQUFDLENBQUM7QUFFSCxNQUFNLHlCQUF5QixHQUFHLGFBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsR0FBRyxFQUFFLGFBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3pCLElBQUksRUFBRSxhQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLE1BQU0sRUFBRSxhQUFDLENBQUMsTUFBTSxDQUFDLGFBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxhQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckMsNERBQTREO0lBQzVELGVBQWUsRUFBRSxtQ0FBcUIsQ0FBQyxRQUFRLEVBQUU7SUFDakQsWUFBWSxFQUFFLGFBQUMsQ0FBQyxNQUFNLENBQUMsYUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLGFBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN2RCxDQUFDLENBQUM7QUFFVSxRQUFBLHVCQUF1QixHQUFHLGFBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7SUFDakUseUJBQXlCO0lBQ3pCLDRCQUE0QjtDQUM3QixDQUFDLENBQUM7QUFJSCxnRkFBZ0Y7QUFDaEYsZ0JBQWdCO0FBQ2hCLGdGQUFn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SUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLHNEQUFzRDtZQUN0RCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxXQUFXLENBQUMsTUFBa0I7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM5QixFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUNGO0FBalFELG9DQWlRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IG1pbmltaXN0IGZyb20gXCJtaW5pbWlzdFwiO1xuaW1wb3J0IHogZnJvbSBcInpvZFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlU3RlcCwgU3RlcE1ldGFkYXRhIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS1zdGVwXCI7XG5pbXBvcnQgdHlwZSB7IFNpbXBsZVN0ZXAgfSBmcm9tIFwiLi4vYmFzZS9zaW1wbGUtc3RlcFwiO1xuaW1wb3J0IHR5cGUgeyBQb2xsaW5nU3RlcCB9IGZyb20gXCIuLi9iYXNlL3BvbGxpbmctc3RlcFwiO1xuaW1wb3J0IHsgU3RlcExvZ2dlciB9IGZyb20gXCIuLi9sb2dnaW5nL3N0ZXAtbG9nZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IEFwcHJvdmFsQ29udGV4dCwgU3RlcE91dHB1dCB9IGZyb20gXCIuLi9vdXRwdXQvc3RlcC1vdXRwdXRcIjtcbmltcG9ydCB7IEFwcHJvdmFsQ29udGV4dFNjaGVtYSwgU3RlcE91dHB1dHMgfSBmcm9tIFwiLi4vb3V0cHV0L3N0ZXAtb3V0cHV0XCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJbnB1dCBTY2hlbWFzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBTdGVwUmVnaXN0cnlTeW50aGVzaXplU2NoZW1hID0gei5vYmplY3Qoe1xuICBqb2I6IHoubGl0ZXJhbChcIlNZTlRIRVNJWkUtTUVUQURBVEFcIiksXG59KTtcblxuY29uc3QgU3RlcFJlZ2lzdHJ5RXhlY3V0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgam9iOiB6LmxpdGVyYWwoXCJFWEVDVVRFXCIpLFxuICB0eXBlOiB6LnN0cmluZygpLFxuICBwYXJhbXM6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLFxuICAvLyBPcHRpb25hbCBjb250ZXh0IC0gcHJlc2VuY2UgZGV0ZXJtaW5lcyB3aGljaCBwaGFzZSB0byBydW5cbiAgYXBwcm92YWxDb250ZXh0OiBBcHByb3ZhbENvbnRleHRTY2hlbWEub3B0aW9uYWwoKSxcbiAgcG9sbGluZ1N0YXRlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LmFueSgpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdGVwUmVnaXN0cnlJbnB1dFNjaGVtYSA9IHouZGlzY3JpbWluYXRlZFVuaW9uKFwiam9iXCIsIFtcbiAgU3RlcFJlZ2lzdHJ5RXhlY3V0ZVNjaGVtYSxcbiAgU3RlcFJlZ2lzdHJ5U3ludGhlc2l6ZVNjaGVtYSxcbl0pO1xuXG5leHBvcnQgdHlwZSBTdGVwUmVnaXN0cnlJbnB1dCA9IHouaW5mZXI8dHlwZW9mIFN0ZXBSZWdpc3RyeUlucHV0U2NoZW1hPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbmZpZ3VyYXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IERFRkFVTFRfT1VUUFVUX1BBVEggPSBcIi90bXAvc3RlcC1vdXRwdXQuanNvblwiO1xuY29uc3QgREVGQVVMVF9MT0dfRElSID0gXCIvdG1wL3N0ZXAtbG9nc1wiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3RlcFJlZ2lzdHJ5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY2xhc3MgU3RlcFJlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBzdGVwczogTWFwPHN0cmluZywgQmFzZVN0ZXA8dW5rbm93bj4+O1xuICBwcml2YXRlIG91dHB1dFBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSBsb2dEaXI6IHN0cmluZztcbiAgcHJpdmF0ZSBleGVjdXRpb25JZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgc3RlcHM6IEJhc2VTdGVwPHVua25vd24+W10sXG4gICAgb3V0cHV0UGF0aDogc3RyaW5nLFxuICAgIGxvZ0Rpcjogc3RyaW5nLFxuICAgIGV4ZWN1dGlvbklkOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5zdGVwcyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLm91dHB1dFBhdGggPSBvdXRwdXRQYXRoO1xuICAgIHRoaXMubG9nRGlyID0gbG9nRGlyO1xuICAgIHRoaXMuZXhlY3V0aW9uSWQgPSBleGVjdXRpb25JZDtcblxuICAgIGZvciAoY29uc3QgaW5zdGFuY2Ugb2Ygc3RlcHMpIHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gaW5zdGFuY2UuZ2V0TWV0YWRhdGEoKTtcbiAgICAgIHRoaXMuc3RlcHMuc2V0KG1ldGFkYXRhLnN0ZXBUeXBlLCBpbnN0YW5jZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1haW4gZW50cnlwb2ludCBmb3IgcnVubmluZyBzdGVwcy5cbiAgICogUGFyc2VzIENMSSBhcmdzIGFuZCBlaXRoZXIgc3ludGhlc2l6ZXMgbWV0YWRhdGEgb3IgZXhlY3V0ZXMgYSBzdGVwLlxuICAgKlxuICAgKiBVc2FnZSBpbiB1c2VyJ3MgZW50cnlwb2ludCBmaWxlOlxuICAgKiBgYGBcbiAgICogU3RlcFJlZ2lzdHJ5LnJ1bihbXG4gICAqICAgbmV3IE15U3RlcDEoZGVwZW5kZW5jeTEsIGRlcGVuZGVuY3kyKSxcbiAgICogICBuZXcgTXlTdGVwMihjb25maWcpXG4gICAqIF0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQ0xJIGFyZ3VtZW50czpcbiAgICogLSAtLWlucHV0OiBKU09OIGJsb2Igd2l0aCBqb2IgdHlwZSBhbmQgcGFyYW1ldGVyc1xuICAgKiAtIC0tb3V0cHV0OiBQYXRoIHRvIHdyaXRlIG91dHB1dCBKU09OIChkZWZhdWx0OiAvdG1wL3N0ZXAtb3V0cHV0Lmpzb24pXG4gICAqIC0gLS1sb2ctZGlyOiBEaXJlY3RvcnkgZm9yIGxvZyBmaWxlcyAoZGVmYXVsdDogL3RtcC9zdGVwLWxvZ3MpXG4gICAqIC0gLS1leGVjdXRpb24taWQ6IFVuaXF1ZSBJRCBmb3IgdGhpcyBleGVjdXRpb24gKHJlcXVpcmVkIGZvciBsb2dnaW5nKVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJ1bihzdGVwczogQmFzZVN0ZXA8dW5rbm93bj5bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGFyZ3MgPSBtaW5pbWlzdChwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpO1xuICAgIGNvbnN0IG91dHB1dFBhdGggPSBhcmdzW1wib3V0cHV0XCJdIHx8IERFRkFVTFRfT1VUUFVUX1BBVEg7XG4gICAgY29uc3QgbG9nRGlyID0gYXJnc1tcImxvZy1kaXJcIl0gfHwgREVGQVVMVF9MT0dfRElSO1xuICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gYXJnc1tcImV4ZWN1dGlvbi1pZFwiXSB8fCBgZXhlYy0ke0RhdGUubm93KCl9YDtcblxuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gbmV3IFN0ZXBSZWdpc3RyeShzdGVwcywgb3V0cHV0UGF0aCwgbG9nRGlyLCBleGVjdXRpb25JZCk7XG4gICAgYXdhaXQgcmVnaXN0cnkuZXhlY3V0ZShhcmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZShhcmdzOiBtaW5pbWlzdC5QYXJzZWRBcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gU3RlcFJlZ2lzdHJ5SW5wdXRTY2hlbWEucGFyc2UoSlNPTi5wYXJzZShhcmdzW1wiaW5wdXRcIl0pKTtcblxuICAgICAgc3dpdGNoIChpbnB1dC5qb2IpIHtcbiAgICAgICAgY2FzZSBcIlNZTlRIRVNJWkUtTUVUQURBVEFcIjoge1xuICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5zeW50aGVzaXplTWV0YWRhdGEoKTtcbiAgICAgICAgICB0aGlzLndyaXRlT3V0cHV0KHsgc3RhdHVzOiBcIlNVQ0NFU1NcIiwgZGF0YTogeyBtZXRhZGF0YSB9IH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBcIkVYRUNVVEVcIjoge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVN0ZXAoXG4gICAgICAgICAgICBpbnB1dC50eXBlLFxuICAgICAgICAgICAgaW5wdXQucGFyYW1zLFxuICAgICAgICAgICAgaW5wdXQuYXBwcm92YWxDb250ZXh0LFxuICAgICAgICAgICAgaW5wdXQucG9sbGluZ1N0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICB0aGlzLndyaXRlT3V0cHV0KFN0ZXBPdXRwdXRzLmZhaWxlZChlcnJvck1lc3NhZ2UsIFwiUkVHSVNUUllfRVJST1JcIikpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3ludGhlc2l6ZU1ldGFkYXRhKCk6IFN0ZXBNZXRhZGF0YVtdIHtcbiAgICBjb25zdCBtZXRhZGF0YTogU3RlcE1ldGFkYXRhW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgaW5zdGFuY2Ugb2YgdGhpcy5zdGVwcy52YWx1ZXMoKSkge1xuICAgICAgbWV0YWRhdGEucHVzaChpbnN0YW5jZS5nZXRNZXRhZGF0YSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4ZWN1dGVTdGVwKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIGFwcHJvdmFsQ29udGV4dD86IEFwcHJvdmFsQ29udGV4dCxcbiAgICBwb2xsaW5nU3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuc3RlcHMuZ2V0KHR5cGUpO1xuXG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgdGhpcy53cml0ZU91dHB1dChcbiAgICAgICAgU3RlcE91dHB1dHMuZmFpbGVkKFxuICAgICAgICAgIGBObyBzdGVwIHJlZ2lzdGVyZWQgd2l0aCB0eXBlOiAke3R5cGV9YCxcbiAgICAgICAgICBcIlNURVBfTk9UX0ZPVU5EXCJcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBpbnN0YW5jZS5nZXRNZXRhZGF0YSgpO1xuXG4gICAgICAvLyBJbmplY3QgbG9nZ2VyXG4gICAgICBjb25zdCBsb2dnZXIgPSBuZXcgU3RlcExvZ2dlcih7XG4gICAgICAgIGxvZ0RpcjogdGhpcy5sb2dEaXIsXG4gICAgICAgIGV4ZWN1dGlvbklkOiB0aGlzLmV4ZWN1dGlvbklkLFxuICAgICAgICBzdGVwVHlwZTogbWV0YWRhdGEuc3RlcFR5cGUsXG4gICAgICB9KTtcbiAgICAgIGluc3RhbmNlLl9zZXRMb2dnZXIobG9nZ2VyKTtcblxuICAgICAgLy8gVmFsaWRhdGUgcGFyYW1zIGFnYWluc3QgdGhlIHN0ZXAncyBzY2hlbWFcbiAgICAgIGNvbnN0IHBhcnNlUmVzdWx0ID0gbWV0YWRhdGEuc2NoZW1hLnNhZmVQYXJzZShwYXJhbXMpO1xuICAgICAgaWYgKCFwYXJzZVJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgIHRoaXMud3JpdGVPdXRwdXQoXG4gICAgICAgICAgU3RlcE91dHB1dHMuZmFpbGVkKFxuICAgICAgICAgICAgYEludmFsaWQgcGFyYW1zOiAke3BhcnNlUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIFwiSU5WQUxJRF9QQVJBTVNcIlxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWxpZGF0ZWRQYXJhbXMgPSBwYXJzZVJlc3VsdC5kYXRhO1xuXG4gICAgICAvLyBSb3V0ZSB0byBhcHByb3ByaWF0ZSBwaGFzZSBiYXNlZCBvbiBzdGVwIGtpbmQgYW5kIGlucHV0IGNvbnRleHRcbiAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHRoaXMucm91dGVFeGVjdXRpb24oXG4gICAgICAgIGluc3RhbmNlLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgdmFsaWRhdGVkUGFyYW1zLFxuICAgICAgICBhcHByb3ZhbENvbnRleHQsXG4gICAgICAgIHBvbGxpbmdTdGF0ZVxuICAgICAgKTtcblxuICAgICAgdGhpcy53cml0ZU91dHB1dChvdXRwdXQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICB0aGlzLndyaXRlT3V0cHV0KFN0ZXBPdXRwdXRzLmZhaWxlZChlcnJvck1lc3NhZ2UsIFwiRVhFQ1VUSU9OX0VSUk9SXCIpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJvdXRlRXhlY3V0aW9uKFxuICAgIGluc3RhbmNlOiBCYXNlU3RlcDx1bmtub3duPixcbiAgICBtZXRhZGF0YTogU3RlcE1ldGFkYXRhLFxuICAgIHBhcmFtczogdW5rbm93bixcbiAgICBhcHByb3ZhbENvbnRleHQ/OiBBcHByb3ZhbENvbnRleHQsXG4gICAgcG9sbGluZ1N0YXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKTogUHJvbWlzZTxTdGVwT3V0cHV0PiB7XG4gICAgY29uc3QgcmVxdWlyZXNBcHByb3ZhbCA9IG1ldGFkYXRhLnJlcXVpcmVzQXBwcm92YWw7XG5cbiAgICBpZiAobWV0YWRhdGEuc3RlcEtpbmQgPT09IFwic2ltcGxlXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlU2ltcGxlU3RlcChcbiAgICAgICAgaW5zdGFuY2UgYXMgU2ltcGxlU3RlcDx1bmtub3duPixcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICByZXF1aXJlc0FwcHJvdmFsLFxuICAgICAgICBhcHByb3ZhbENvbnRleHRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLnN0ZXBLaW5kID09PSBcInBvbGxpbmdcIikge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVQb2xsaW5nU3RlcChcbiAgICAgICAgaW5zdGFuY2UgYXMgUG9sbGluZ1N0ZXA8dW5rbm93biwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+LFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHJlcXVpcmVzQXBwcm92YWwsXG4gICAgICAgIGFwcHJvdmFsQ29udGV4dCxcbiAgICAgICAgcG9sbGluZ1N0YXRlXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBTdGVwT3V0cHV0cy5mYWlsZWQoXG4gICAgICBgVW5rbm93biBzdGVwIGtpbmQ6ICR7bWV0YWRhdGEuc3RlcEtpbmR9YCxcbiAgICAgIFwiVU5LTk9XTl9TVEVQX0tJTkRcIlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUm91dGUgU2ltcGxlU3RlcCBleGVjdXRpb24gYmFzZWQgb24gYXBwcm92YWwgc3RhdGUuXG4gICAqXG4gICAqIHwgcmVxdWlyZXNBcHByb3ZhbCB8IGFwcHJvdmFsQ29udGV4dCBwcm92aWRlZD8gfCBBY3Rpb24gICAgICAgICAgICAgIHxcbiAgICogfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICAgKiB8IE5vICAgICAgICAgICAgICAgfCAtICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2FsbCBydW4ocGFyYW1zKSAgICB8XG4gICAqIHwgWWVzICAgICAgICAgICAgICB8IE5vICAgICAgICAgICAgICAgICAgICAgICAgfCBDYWxsIHByZXBhcmUocGFyYW1zKXxcbiAgICogfCBZZXMgICAgICAgICAgICAgIHwgWWVzICAgICAgICAgICAgICAgICAgICAgICB8IENhbGwgcnVuKHBhcmFtcywgYXBwcm92YWwpIHxcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcm91dGVTaW1wbGVTdGVwKFxuICAgIGluc3RhbmNlOiBTaW1wbGVTdGVwPHVua25vd24+LFxuICAgIHBhcmFtczogdW5rbm93bixcbiAgICByZXF1aXJlc0FwcHJvdmFsOiBib29sZWFuLFxuICAgIGFwcHJvdmFsQ29udGV4dD86IEFwcHJvdmFsQ29udGV4dFxuICApOiBQcm9taXNlPFN0ZXBPdXRwdXQ+IHtcbiAgICBpZiAoIXJlcXVpcmVzQXBwcm92YWwpIHtcbiAgICAgIC8vIE5vIGFwcHJvdmFsIG5lZWRlZCAtIGp1c3QgcnVuXG4gICAgICByZXR1cm4gaW5zdGFuY2UuZXhlY3V0ZShwYXJhbXMsIHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgaWYgKCFhcHByb3ZhbENvbnRleHQpIHtcbiAgICAgIC8vIE5lZWRzIGFwcHJvdmFsIGJ1dCBkb24ndCBoYXZlIGl0IHlldCAtIGNhbGwgcHJlcGFyZVxuICAgICAgcmV0dXJuIGluc3RhbmNlLnByZXBhcmUocGFyYW1zKTtcbiAgICB9XG5cbiAgICAvLyBIYXZlIGFwcHJvdmFsIC0gcnVuIHdpdGggYXBwcm92YWwgY29udGV4dFxuICAgIHJldHVybiBpbnN0YW5jZS5leGVjdXRlKHBhcmFtcywgYXBwcm92YWxDb250ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3V0ZSBQb2xsaW5nU3RlcCBleGVjdXRpb24gYmFzZWQgb24gYXBwcm92YWwgYW5kIHBvbGxpbmcgc3RhdGUuXG4gICAqXG4gICAqIHwgcmVxdWlyZXNBcHByb3ZhbCB8IGFwcHJvdmFsQ29udGV4dD8gfCBwb2xsaW5nU3RhdGU/IHwgQWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8LS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAgICogfCBObyAgICAgICAgICAgICAgIHwgLSAgICAgICAgICAgICAgICB8IE5vICAgICAgICAgICAgfCBDYWxsIHRyaWdnZXIocGFyYW1zKSAgICAgICAgICB8XG4gICAqIHwgTm8gICAgICAgICAgICAgICB8IC0gICAgICAgICAgICAgICAgfCBZZXMgICAgICAgICAgIHwgQ2FsbCBwb2xsKHBhcmFtcywgcG9sbGluZ1N0YXRlKXxcbiAgICogfCBZZXMgICAgICAgICAgICAgIHwgTm8gICAgICAgICAgICAgICB8IE5vICAgICAgICAgICAgfCBDYWxsIHByZXBhcmUocGFyYW1zKSAgICAgICAgICB8XG4gICAqIHwgWWVzICAgICAgICAgICAgICB8IFllcyAgICAgICAgICAgICAgfCBObyAgICAgICAgICAgIHwgQ2FsbCB0cmlnZ2VyKHBhcmFtcywgYXBwcm92YWwpfFxuICAgKiB8IFllcyAgICAgICAgICAgICAgfCBZZXMgICAgICAgICAgICAgIHwgWWVzICAgICAgICAgICB8IENhbGwgcG9sbChwYXJhbXMsIHBvbGxpbmdTdGF0ZSl8XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJvdXRlUG9sbGluZ1N0ZXAoXG4gICAgaW5zdGFuY2U6IFBvbGxpbmdTdGVwPHVua25vd24sIFJlY29yZDxzdHJpbmcsIHVua25vd24+PixcbiAgICBwYXJhbXM6IHVua25vd24sXG4gICAgcmVxdWlyZXNBcHByb3ZhbDogYm9vbGVhbixcbiAgICBhcHByb3ZhbENvbnRleHQ/OiBBcHByb3ZhbENvbnRleHQsXG4gICAgcG9sbGluZ1N0YXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKTogUHJvbWlzZTxTdGVwT3V0cHV0PiB7XG4gICAgLy8gSWYgd2UgaGF2ZSBwb2xsaW5nIHN0YXRlLCB3ZSdyZSBpbiB0aGUgcG9sbCBwaGFzZSAocmVnYXJkbGVzcyBvZiBhcHByb3ZhbClcbiAgICBpZiAocG9sbGluZ1N0YXRlKSB7XG4gICAgICByZXR1cm4gaW5zdGFuY2UuZXhlY3V0ZVBvbGwocGFyYW1zLCBwb2xsaW5nU3RhdGUpO1xuICAgIH1cblxuICAgIGlmICghcmVxdWlyZXNBcHByb3ZhbCkge1xuICAgICAgLy8gTm8gYXBwcm92YWwgbmVlZGVkIC0gdHJpZ2dlciBkaXJlY3RseVxuICAgICAgcmV0dXJuIGluc3RhbmNlLmV4ZWN1dGVUcmlnZ2VyKHBhcmFtcywgdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBpZiAoIWFwcHJvdmFsQ29udGV4dCkge1xuICAgICAgLy8gTmVlZHMgYXBwcm92YWwgYnV0IGRvbid0IGhhdmUgaXQgeWV0IC0gY2FsbCBwcmVwYXJlXG4gICAgICByZXR1cm4gaW5zdGFuY2UucHJlcGFyZShwYXJhbXMpO1xuICAgIH1cblxuICAgIC8vIEhhdmUgYXBwcm92YWwgLSB0cmlnZ2VyIHdpdGggYXBwcm92YWwgY29udGV4dFxuICAgIHJldHVybiBpbnN0YW5jZS5leGVjdXRlVHJpZ2dlcihwYXJhbXMsIGFwcHJvdmFsQ29udGV4dCk7XG4gIH1cblxuICBwcml2YXRlIHdyaXRlT3V0cHV0KG91dHB1dDogU3RlcE91dHB1dCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dERpciA9IHBhdGguZGlybmFtZSh0aGlzLm91dHB1dFBhdGgpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhvdXRwdXREaXIpKSB7XG4gICAgICBmcy5ta2RpclN5bmMob3V0cHV0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMub3V0cHV0UGF0aCwgSlNPTi5zdHJpbmdpZnkob3V0cHV0LCBudWxsLCAyKSk7XG4gIH1cbn1cbiJdfQ==
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWdpc3RyeS9zdGVwLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0Isd0RBQWdDO0FBQ2hDLDhDQUFvQjtBQUlwQix3REFBb0Q7QUFFcEQsdURBQTJFO0FBRTNFLGdGQUFnRjtBQUNoRixnQkFBZ0I7QUFDaEIsZ0ZBQWdGO0FBRWhGLE1BQU0sNEJBQTRCLEdBQUcsYUFBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxHQUFHLEVBQUUsYUFBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztDQUN0QyxDQUFDLENBQUM7QUFFSCxNQUFNLHlCQUF5QixHQUFHLGFBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsR0FBRyxFQUFFLGFBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3pCLElBQUksRUFBRSxhQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLE1BQU0sRUFBRSxhQUFDLENBQUMsTUFBTSxDQUFDLGFBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxhQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckMsNERBQTREO0lBQzVELGVBQWUsRUFBRSxtQ0FBcUIsQ0FBQyxRQUFRLEVBQUU7SUFDakQsWUFBWSxFQUFFLGFBQUMsQ0FBQyxNQUFNLENBQUMsYUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLGFBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN2RCxDQUFDLENBQUM7QUFFVSxRQUFBLHVCQUF1QixHQUFHLGFBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7SUFDakUseUJBQXlCO0lBQ3pCLDRCQUE0QjtDQUM3QixDQUFDLENBQUM7QUFJSCxnRkFBZ0Y7QUFDaEYsZ0JBQWdCO0FBQ2hCLGdGQUFn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QUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixzREFBc0Q7WUFDdEQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxnREFBZ0Q7UUFDaEQsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQWtCO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRjtBQWpRRCxvQ0FpUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBtaW5pbWlzdCBmcm9tIFwibWluaW1pc3RcIjtcbmltcG9ydCB6IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB0eXBlIHsgQmFzZVN0ZXAsIFN0ZXBEYXRhLCBTdGVwTWV0YWRhdGEgfSBmcm9tIFwiLi4vYmFzZS9iYXNlLXN0ZXBcIjtcbmltcG9ydCB0eXBlIHsgU2ltcGxlU3RlcCB9IGZyb20gXCIuLi9iYXNlL3NpbXBsZS1zdGVwXCI7XG5pbXBvcnQgdHlwZSB7IFBvbGxpbmdTdGVwIH0gZnJvbSBcIi4uL2Jhc2UvcG9sbGluZy1zdGVwXCI7XG5pbXBvcnQgeyBTdGVwTG9nZ2VyIH0gZnJvbSBcIi4uL2xvZ2dpbmcvc3RlcC1sb2dnZXJcIjtcbmltcG9ydCB0eXBlIHsgQXBwcm92YWxDb250ZXh0LCBTdGVwT3V0cHV0IH0gZnJvbSBcIi4uL291dHB1dC9zdGVwLW91dHB1dFwiO1xuaW1wb3J0IHsgQXBwcm92YWxDb250ZXh0U2NoZW1hLCBTdGVwT3V0cHV0cyB9IGZyb20gXCIuLi9vdXRwdXQvc3RlcC1vdXRwdXRcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIElucHV0IFNjaGVtYXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IFN0ZXBSZWdpc3RyeVN5bnRoZXNpemVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGpvYjogei5saXRlcmFsKFwiU1lOVEhFU0laRS1NRVRBREFUQVwiKSxcbn0pO1xuXG5jb25zdCBTdGVwUmVnaXN0cnlFeGVjdXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICBqb2I6IHoubGl0ZXJhbChcIkVYRUNVVEVcIiksXG4gIHR5cGU6IHouc3RyaW5nKCksXG4gIHBhcmFtczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5hbnkoKSksXG4gIC8vIE9wdGlvbmFsIGNvbnRleHQgLSBwcmVzZW5jZSBkZXRlcm1pbmVzIHdoaWNoIHBoYXNlIHRvIHJ1blxuICBhcHByb3ZhbENvbnRleHQ6IEFwcHJvdmFsQ29udGV4dFNjaGVtYS5vcHRpb25hbCgpLFxuICBwb2xsaW5nU3RhdGU6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFN0ZXBSZWdpc3RyeUlucHV0U2NoZW1hID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJqb2JcIiwgW1xuICBTdGVwUmVnaXN0cnlFeGVjdXRlU2NoZW1hLFxuICBTdGVwUmVnaXN0cnlTeW50aGVzaXplU2NoZW1hLFxuXSk7XG5cbmV4cG9ydCB0eXBlIFN0ZXBSZWdpc3RyeUlucHV0ID0gei5pbmZlcjx0eXBlb2YgU3RlcFJlZ2lzdHJ5SW5wdXRTY2hlbWE+O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29uZmlndXJhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgREVGQVVMVF9PVVRQVVRfUEFUSCA9IFwiL3RtcC9zdGVwLW91dHB1dC5qc29uXCI7XG5jb25zdCBERUZBVUxUX0xPR19ESVIgPSBcIi90bXAvc3RlcC1sb2dzXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTdGVwUmVnaXN0cnlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjbGFzcyBTdGVwUmVnaXN0cnkge1xuICBwcml2YXRlIHN0ZXBzOiBNYXA8c3RyaW5nLCBCYXNlU3RlcDx1bmtub3duPj47XG4gIHByaXZhdGUgb3V0cHV0UGF0aDogc3RyaW5nO1xuICBwcml2YXRlIGxvZ0Rpcjogc3RyaW5nO1xuICBwcml2YXRlIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBzdGVwczogQmFzZVN0ZXA8dW5rbm93bj5bXSxcbiAgICBvdXRwdXRQYXRoOiBzdHJpbmcsXG4gICAgbG9nRGlyOiBzdHJpbmcsXG4gICAgZXhlY3V0aW9uSWQ6IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLnN0ZXBzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMub3V0cHV0UGF0aCA9IG91dHB1dFBhdGg7XG4gICAgdGhpcy5sb2dEaXIgPSBsb2dEaXI7XG4gICAgdGhpcy5leGVjdXRpb25JZCA9IGV4ZWN1dGlvbklkO1xuXG4gICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiBzdGVwcykge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBpbnN0YW5jZS5nZXRNZXRhZGF0YSgpO1xuICAgICAgdGhpcy5zdGVwcy5zZXQobWV0YWRhdGEuc3RlcFR5cGUsIGluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFpbiBlbnRyeXBvaW50IGZvciBydW5uaW5nIHN0ZXBzLlxuICAgKiBQYXJzZXMgQ0xJIGFyZ3MgYW5kIGVpdGhlciBzeW50aGVzaXplcyBtZXRhZGF0YSBvciBleGVjdXRlcyBhIHN0ZXAuXG4gICAqXG4gICAqIFVzYWdlIGluIHVzZXIncyBlbnRyeXBvaW50IGZpbGU6XG4gICAqIGBgYFxuICAgKiBTdGVwUmVnaXN0cnkucnVuKFtcbiAgICogICBuZXcgTXlTdGVwMShkZXBlbmRlbmN5MSwgZGVwZW5kZW5jeTIpLFxuICAgKiAgIG5ldyBNeVN0ZXAyKGNvbmZpZylcbiAgICogXSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBDTEkgYXJndW1lbnRzOlxuICAgKiAtIC0taW5wdXQ6IEpTT04gYmxvYiB3aXRoIGpvYiB0eXBlIGFuZCBwYXJhbWV0ZXJzXG4gICAqIC0gLS1vdXRwdXQ6IFBhdGggdG8gd3JpdGUgb3V0cHV0IEpTT04gKGRlZmF1bHQ6IC90bXAvc3RlcC1vdXRwdXQuanNvbilcbiAgICogLSAtLWxvZy1kaXI6IERpcmVjdG9yeSBmb3IgbG9nIGZpbGVzIChkZWZhdWx0OiAvdG1wL3N0ZXAtbG9ncylcbiAgICogLSAtLWV4ZWN1dGlvbi1pZDogVW5pcXVlIElEIGZvciB0aGlzIGV4ZWN1dGlvbiAocmVxdWlyZWQgZm9yIGxvZ2dpbmcpXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgcnVuKHN0ZXBzOiBCYXNlU3RlcDx1bmtub3duPltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYXJncyA9IG1pbmltaXN0KHByb2Nlc3MuYXJndi5zbGljZSgyKSk7XG4gICAgY29uc3Qgb3V0cHV0UGF0aCA9IGFyZ3NbXCJvdXRwdXRcIl0gfHwgREVGQVVMVF9PVVRQVVRfUEFUSDtcbiAgICBjb25zdCBsb2dEaXIgPSBhcmdzW1wibG9nLWRpclwiXSB8fCBERUZBVUxUX0xPR19ESVI7XG4gICAgY29uc3QgZXhlY3V0aW9uSWQgPSBhcmdzW1wiZXhlY3V0aW9uLWlkXCJdIHx8IGBleGVjLSR7RGF0ZS5ub3coKX1gO1xuXG4gICAgY29uc3QgcmVnaXN0cnkgPSBuZXcgU3RlcFJlZ2lzdHJ5KHN0ZXBzLCBvdXRwdXRQYXRoLCBsb2dEaXIsIGV4ZWN1dGlvbklkKTtcbiAgICBhd2FpdCByZWdpc3RyeS5leGVjdXRlKGFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBleGVjdXRlKGFyZ3M6IG1pbmltaXN0LlBhcnNlZEFyZ3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5wdXQgPSBTdGVwUmVnaXN0cnlJbnB1dFNjaGVtYS5wYXJzZShKU09OLnBhcnNlKGFyZ3NbXCJpbnB1dFwiXSkpO1xuXG4gICAgICBzd2l0Y2ggKGlucHV0LmpvYikge1xuICAgICAgICBjYXNlIFwiU1lOVEhFU0laRS1NRVRBREFUQVwiOiB7XG4gICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLnN5bnRoZXNpemVNZXRhZGF0YSgpO1xuICAgICAgICAgIHRoaXMud3JpdGVPdXRwdXQoeyBzdGF0dXM6IFwiU1VDQ0VTU1wiLCBkYXRhOiB7IG1ldGFkYXRhIH0gfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIFwiRVhFQ1VURVwiOiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlU3RlcChcbiAgICAgICAgICAgIGlucHV0LnR5cGUsXG4gICAgICAgICAgICBpbnB1dC5wYXJhbXMsXG4gICAgICAgICAgICBpbnB1dC5hcHByb3ZhbENvbnRleHQsXG4gICAgICAgICAgICBpbnB1dC5wb2xsaW5nU3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgICAgIHRoaXMud3JpdGVPdXRwdXQoU3RlcE91dHB1dHMuZmFpbGVkKGVycm9yTWVzc2FnZSwgXCJSRUdJU1RSWV9FUlJPUlwiKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzeW50aGVzaXplTWV0YWRhdGEoKTogU3RlcE1ldGFkYXRhW10ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBTdGVwTWV0YWRhdGFbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiB0aGlzLnN0ZXBzLnZhbHVlcygpKSB7XG4gICAgICBtZXRhZGF0YS5wdXNoKGluc3RhbmNlLmdldE1ldGFkYXRhKCkpO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZVN0ZXAoXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIHBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgYXBwcm92YWxDb250ZXh0PzogQXBwcm92YWxDb250ZXh0LFxuICAgIHBvbGxpbmdTdGF0ZT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5zdGVwcy5nZXQodHlwZSk7XG5cbiAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICB0aGlzLndyaXRlT3V0cHV0KFxuICAgICAgICBTdGVwT3V0cHV0cy5mYWlsZWQoXG4gICAgICAgICAgYE5vIHN0ZXAgcmVnaXN0ZXJlZCB3aXRoIHR5cGU6ICR7dHlwZX1gLFxuICAgICAgICAgIFwiU1RFUF9OT1RfRk9VTkRcIlxuICAgICAgICApXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gaW5zdGFuY2UuZ2V0RGF0YSgpO1xuXG4gICAgICAvLyBJbmplY3QgbG9nZ2VyXG4gICAgICBjb25zdCBsb2dnZXIgPSBuZXcgU3RlcExvZ2dlcih7XG4gICAgICAgIGxvZ0RpcjogdGhpcy5sb2dEaXIsXG4gICAgICAgIGV4ZWN1dGlvbklkOiB0aGlzLmV4ZWN1dGlvbklkLFxuICAgICAgICBzdGVwVHlwZTogZGF0YS5zdGVwVHlwZSxcbiAgICAgIH0pO1xuICAgICAgaW5zdGFuY2UuX3NldExvZ2dlcihsb2dnZXIpO1xuXG4gICAgICAvLyBWYWxpZGF0ZSBwYXJhbXMgYWdhaW5zdCB0aGUgc3RlcCdzIHNjaGVtYVxuICAgICAgY29uc3QgcGFyc2VSZXN1bHQgPSBkYXRhLnNjaGVtYS5zYWZlUGFyc2UocGFyYW1zKTtcbiAgICAgIGlmICghcGFyc2VSZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICB0aGlzLndyaXRlT3V0cHV0KFxuICAgICAgICAgIFN0ZXBPdXRwdXRzLmZhaWxlZChcbiAgICAgICAgICAgIGBJbnZhbGlkIHBhcmFtczogJHtwYXJzZVJlc3VsdC5lcnJvci5tZXNzYWdlfWAsXG4gICAgICAgICAgICBcIklOVkFMSURfUEFSQU1TXCJcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWRhdGVkUGFyYW1zID0gcGFyc2VSZXN1bHQuZGF0YTtcblxuICAgICAgLy8gUm91dGUgdG8gYXBwcm9wcmlhdGUgcGhhc2UgYmFzZWQgb24gc3RlcCBraW5kIGFuZCBpbnB1dCBjb250ZXh0XG4gICAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCB0aGlzLnJvdXRlRXhlY3V0aW9uKFxuICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdmFsaWRhdGVkUGFyYW1zLFxuICAgICAgICBhcHByb3ZhbENvbnRleHQsXG4gICAgICAgIHBvbGxpbmdTdGF0ZVxuICAgICAgKTtcblxuICAgICAgdGhpcy53cml0ZU91dHB1dChvdXRwdXQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICB0aGlzLndyaXRlT3V0cHV0KFN0ZXBPdXRwdXRzLmZhaWxlZChlcnJvck1lc3NhZ2UsIFwiRVhFQ1VUSU9OX0VSUk9SXCIpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJvdXRlRXhlY3V0aW9uKFxuICAgIGluc3RhbmNlOiBCYXNlU3RlcDx1bmtub3duPixcbiAgICBkYXRhOiBTdGVwRGF0YSxcbiAgICBwYXJhbXM6IHVua25vd24sXG4gICAgYXBwcm92YWxDb250ZXh0PzogQXBwcm92YWxDb250ZXh0LFxuICAgIHBvbGxpbmdTdGF0ZT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICk6IFByb21pc2U8U3RlcE91dHB1dD4ge1xuICAgIGNvbnN0IHJlcXVpcmVzQXBwcm92YWwgPSBkYXRhLnJlcXVpcmVzQXBwcm92YWw7XG5cbiAgICBpZiAoZGF0YS5zdGVwS2luZCA9PT0gXCJzaW1wbGVcIikge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVTaW1wbGVTdGVwKFxuICAgICAgICBpbnN0YW5jZSBhcyBTaW1wbGVTdGVwPHVua25vd24+LFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHJlcXVpcmVzQXBwcm92YWwsXG4gICAgICAgIGFwcHJvdmFsQ29udGV4dFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5zdGVwS2luZCA9PT0gXCJwb2xsaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlUG9sbGluZ1N0ZXAoXG4gICAgICAgIGluc3RhbmNlIGFzIFBvbGxpbmdTdGVwPHVua25vd24sIFJlY29yZDxzdHJpbmcsIHVua25vd24+PixcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICByZXF1aXJlc0FwcHJvdmFsLFxuICAgICAgICBhcHByb3ZhbENvbnRleHQsXG4gICAgICAgIHBvbGxpbmdTdGF0ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gU3RlcE91dHB1dHMuZmFpbGVkKFxuICAgICAgYFVua25vd24gc3RlcCBraW5kOiAke2RhdGEuc3RlcEtpbmR9YCxcbiAgICAgIFwiVU5LTk9XTl9TVEVQX0tJTkRcIlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUm91dGUgU2ltcGxlU3RlcCBleGVjdXRpb24gYmFzZWQgb24gYXBwcm92YWwgc3RhdGUuXG4gICAqXG4gICAqIHwgcmVxdWlyZXNBcHByb3ZhbCB8IGFwcHJvdmFsQ29udGV4dCBwcm92aWRlZD8gfCBBY3Rpb24gICAgICAgICAgICAgIHxcbiAgICogfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICAgKiB8IE5vICAgICAgICAgICAgICAgfCAtICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2FsbCBydW4ocGFyYW1zKSAgICB8XG4gICAqIHwgWWVzICAgICAgICAgICAgICB8IE5vICAgICAgICAgICAgICAgICAgICAgICAgfCBDYWxsIHByZXBhcmUocGFyYW1zKXxcbiAgICogfCBZZXMgICAgICAgICAgICAgIHwgWWVzICAgICAgICAgICAgICAgICAgICAgICB8IENhbGwgcnVuKHBhcmFtcywgYXBwcm92YWwpIHxcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcm91dGVTaW1wbGVTdGVwKFxuICAgIGluc3RhbmNlOiBTaW1wbGVTdGVwPHVua25vd24+LFxuICAgIHBhcmFtczogdW5rbm93bixcbiAgICByZXF1aXJlc0FwcHJvdmFsOiBib29sZWFuLFxuICAgIGFwcHJvdmFsQ29udGV4dD86IEFwcHJvdmFsQ29udGV4dFxuICApOiBQcm9taXNlPFN0ZXBPdXRwdXQ+IHtcbiAgICBpZiAoIXJlcXVpcmVzQXBwcm92YWwpIHtcbiAgICAgIC8vIE5vIGFwcHJvdmFsIG5lZWRlZCAtIGp1c3QgcnVuXG4gICAgICByZXR1cm4gaW5zdGFuY2UuZXhlY3V0ZShwYXJhbXMsIHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgaWYgKCFhcHByb3ZhbENvbnRleHQpIHtcbiAgICAgIC8vIE5lZWRzIGFwcHJvdmFsIGJ1dCBkb24ndCBoYXZlIGl0IHlldCAtIGNhbGwgcHJlcGFyZVxuICAgICAgcmV0dXJuIGluc3RhbmNlLnByZXBhcmUocGFyYW1zKTtcbiAgICB9XG5cbiAgICAvLyBIYXZlIGFwcHJvdmFsIC0gcnVuIHdpdGggYXBwcm92YWwgY29udGV4dFxuICAgIHJldHVybiBpbnN0YW5jZS5leGVjdXRlKHBhcmFtcywgYXBwcm92YWxDb250ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3V0ZSBQb2xsaW5nU3RlcCBleGVjdXRpb24gYmFzZWQgb24gYXBwcm92YWwgYW5kIHBvbGxpbmcgc3RhdGUuXG4gICAqXG4gICAqIHwgcmVxdWlyZXNBcHByb3ZhbCB8IGFwcHJvdmFsQ29udGV4dD8gfCBwb2xsaW5nU3RhdGU/IHwgQWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8LS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAgICogfCBObyAgICAgICAgICAgICAgIHwgLSAgICAgICAgICAgICAgICB8IE5vICAgICAgICAgICAgfCBDYWxsIHRyaWdnZXIocGFyYW1zKSAgICAgICAgICB8XG4gICAqIHwgTm8gICAgICAgICAgICAgICB8IC0gICAgICAgICAgICAgICAgfCBZZXMgICAgICAgICAgIHwgQ2FsbCBwb2xsKHBhcmFtcywgcG9sbGluZ1N0YXRlKXxcbiAgICogfCBZZXMgICAgICAgICAgICAgIHwgTm8gICAgICAgICAgICAgICB8IE5vICAgICAgICAgICAgfCBDYWxsIHByZXBhcmUocGFyYW1zKSAgICAgICAgICB8XG4gICAqIHwgWWVzICAgICAgICAgICAgICB8IFllcyAgICAgICAgICAgICAgfCBObyAgICAgICAgICAgIHwgQ2FsbCB0cmlnZ2VyKHBhcmFtcywgYXBwcm92YWwpfFxuICAgKiB8IFllcyAgICAgICAgICAgICAgfCBZZXMgICAgICAgICAgICAgIHwgWWVzICAgICAgICAgICB8IENhbGwgcG9sbChwYXJhbXMsIHBvbGxpbmdTdGF0ZSl8XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJvdXRlUG9sbGluZ1N0ZXAoXG4gICAgaW5zdGFuY2U6IFBvbGxpbmdTdGVwPHVua25vd24sIFJlY29yZDxzdHJpbmcsIHVua25vd24+PixcbiAgICBwYXJhbXM6IHVua25vd24sXG4gICAgcmVxdWlyZXNBcHByb3ZhbDogYm9vbGVhbixcbiAgICBhcHByb3ZhbENvbnRleHQ/OiBBcHByb3ZhbENvbnRleHQsXG4gICAgcG9sbGluZ1N0YXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKTogUHJvbWlzZTxTdGVwT3V0cHV0PiB7XG4gICAgLy8gSWYgd2UgaGF2ZSBwb2xsaW5nIHN0YXRlLCB3ZSdyZSBpbiB0aGUgcG9sbCBwaGFzZSAocmVnYXJkbGVzcyBvZiBhcHByb3ZhbClcbiAgICBpZiAocG9sbGluZ1N0YXRlKSB7XG4gICAgICByZXR1cm4gaW5zdGFuY2UuZXhlY3V0ZVBvbGwocGFyYW1zLCBwb2xsaW5nU3RhdGUpO1xuICAgIH1cblxuICAgIGlmICghcmVxdWlyZXNBcHByb3ZhbCkge1xuICAgICAgLy8gTm8gYXBwcm92YWwgbmVlZGVkIC0gdHJpZ2dlciBkaXJlY3RseVxuICAgICAgcmV0dXJuIGluc3RhbmNlLmV4ZWN1dGVUcmlnZ2VyKHBhcmFtcywgdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBpZiAoIWFwcHJvdmFsQ29udGV4dCkge1xuICAgICAgLy8gTmVlZHMgYXBwcm92YWwgYnV0IGRvbid0IGhhdmUgaXQgeWV0IC0gY2FsbCBwcmVwYXJlXG4gICAgICByZXR1cm4gaW5zdGFuY2UucHJlcGFyZShwYXJhbXMpO1xuICAgIH1cblxuICAgIC8vIEhhdmUgYXBwcm92YWwgLSB0cmlnZ2VyIHdpdGggYXBwcm92YWwgY29udGV4dFxuICAgIHJldHVybiBpbnN0YW5jZS5leGVjdXRlVHJpZ2dlcihwYXJhbXMsIGFwcHJvdmFsQ29udGV4dCk7XG4gIH1cblxuICBwcml2YXRlIHdyaXRlT3V0cHV0KG91dHB1dDogU3RlcE91dHB1dCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dERpciA9IHBhdGguZGlybmFtZSh0aGlzLm91dHB1dFBhdGgpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhvdXRwdXREaXIpKSB7XG4gICAgICBmcy5ta2RpclN5bmMob3V0cHV0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMub3V0cHV0UGF0aCwgSlNPTi5zdHJpbmdpZnkob3V0cHV0LCBudWxsLCAyKSk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devramps/sdk-typescript",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "SDK for building custom deployment steps for DevRamps",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -5,7 +5,7 @@ const path = require("path");
5
5
  const { execSync } = require("child_process");
6
6
 
7
7
  // Get optional folder name from command line args, default to "step-registry"
8
- const folderName = process.argv[2] || "step-registry";
8
+ const folderName = process.argv[3] || "step-registry";
9
9
 
10
10
  // Define the base directory
11
11
  const baseDir = path.join(process.cwd(), folderName);
@@ -67,7 +67,10 @@ export class RealDeploymentService implements DeploymentService {
67
67
  }
68
68
  }
69
69
  `;
70
- fs.writeFileSync(path.join(srcDir, "deployment-service.ts"), deploymentServiceContent);
70
+ fs.writeFileSync(
71
+ path.join(srcDir, "deployment-service.ts"),
72
+ deploymentServiceContent
73
+ );
71
74
 
72
75
  // Create my-first-step.ts
73
76
  console.log("Creating my-first-step.ts...");
@@ -162,7 +165,7 @@ const tsconfigContent = `{
162
165
  "outDir": "./dist",
163
166
  "rootDir": "./src"
164
167
  },
165
- "include": ["src/**/*", "tst/**/*"],
168
+ "include": ["src/**/*"],
166
169
  "exclude": ["node_modules", "dist"]
167
170
  }
168
171
  `;
@@ -277,16 +280,16 @@ describe("MyFirstStep", () => {
277
280
  fs.writeFileSync(path.join(tstStepsDir, "my-first-step.test.ts"), testContent);
278
281
 
279
282
  // Update package.json to add build and start scripts
280
- console.log('Adding build and start scripts to package.json...');
281
- const packageJsonPath = path.join(baseDir, 'package.json');
282
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
283
+ console.log("Adding build and start scripts to package.json...");
284
+ const packageJsonPath = path.join(baseDir, "package.json");
285
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
283
286
  packageJson.scripts = {
284
287
  ...packageJson.scripts,
285
288
  "build-step-registry": "tsc -p tsconfig.json",
286
289
  "start-step-registry": "node ./dist/index.js",
287
- "test": "jest",
290
+ test: "jest",
288
291
  "test:watch": "jest --watch",
289
- "test:coverage": "jest --coverage"
292
+ "test:coverage": "jest --coverage",
290
293
  };
291
294
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
292
295