@flit/cdk-pipeline 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,18 +1,184 @@
1
- # @flit/cdk
1
+ # @flit/cdk-pipeline
2
2
 
3
- This package exposes some useful CDK constructs to improve deployment workflows.
3
+ This library exposes a highly customizable and extensible L3 pipeline construct intended as an alternative to the CDK native L3 [CodePipeline](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.pipelines.CodePipeline.html) construct which has some inherent limitations in capability and extensibility.
4
+
5
+ This library provides the tools and documentation to get your own pipeline up and running and build your own custom segments.
4
6
 
5
7
  _**Warning:** This package is EXPERIMENTAL and might undergo breaking changes_
6
8
 
9
+ ## Table of contents
10
+
11
+ - [Table of contents](#table-of-contents)
12
+ - [Homepage](https://p-mercury.github.io/jumper-de/modules/_flit_cdk_pipeline)
13
+ - [Usage](#usage)
14
+ - [1. Installation](#1-installation)
15
+ - [2. Basics](#1-basics)
16
+ - [3. Multiple stacks](#3-multiple-stacks)
17
+ - [4. Passing assets](#4-passing-assets)
18
+ - [4. Build your own segment](#3-build-your-own-segment)
19
+
7
20
  ## Usage
8
21
 
9
- ### Installation
22
+ ### 1. Installation
10
23
 
11
24
  ```bash
12
- npm i -g @flit/cdk
25
+ npm i -g @flit/cdk-pipeline
26
+ ```
27
+
28
+ ### 2. Basics
29
+
30
+ The snippet bellow is a basic example of a pipeline which will run whenever a change is detected in a GitHub repository and which will update itself and deploy and update a user defined stack. This example demonstrates the three basic elements that make up a pipeline:
31
+
32
+ #### - Pipeline
33
+
34
+ The Pipeline construct will create a CloudFormation Stack which contains the pipeline and all of the required peripheral resources to make it work.
35
+
36
+ #### - Segment
37
+
38
+ A Segment is simply a pre-configured set of pipeline actions which together represent a commonly used CI/CD pattern, like for example building and deploying a stack.
39
+
40
+ To build properly, a Pipeline requires at least one SourceSegment, exactly one PipelineSegment and at least one other segment.
41
+
42
+ #### - Artifact
43
+
44
+ An Artifact represents a pipeline artifact which can be used to pass information between stages. Every asset needs to be the output of a Segment and can be consumed by any segments that need that output.
45
+
46
+ ```typescript
47
+ import { App, SecretValue, Stack } from "aws-cdk-lib";
48
+ import {
49
+ Pipeline,
50
+ GitHubSourceSegment,
51
+ PipelineSegment,
52
+ StackSegment,
53
+ Artifact,
54
+ } from "@flit/cdk-pipeline";
55
+
56
+ const APP = new App();
57
+
58
+ const sourceArtifact = new Artifact();
59
+
60
+ new Pipeline(APP, "Pipeline", {
61
+ rootDir: "./",
62
+ segments: [
63
+ new GitHubSourceSegment({
64
+ oauthToken: SecretValue.secretsManager("github-access-token"),
65
+ output: sourceArtifact,
66
+ owner: "owner-name",
67
+ repo: "repo-name",
68
+ branch: "branch-name",
69
+ }),
70
+ new PipelineSegment({
71
+ input: sourceArtifact,
72
+ command: "cdk synth Pipeline --strict --exclusively",
73
+ }),
74
+ new StackSegment({
75
+ stack: new Stack(APP, "Stack1"),
76
+ input: sourceArtifact,
77
+ command: "cdk synth Stack1 --strict --exclusively",
78
+ }),
79
+ ],
80
+ });
81
+ ```
82
+
83
+ The above code will produce the following pipeline
84
+
85
+ <div style="width: 300px; height: 340px; overflow-x: hidden; overflow-y: scroll;"><img src="media://pipeline-ouput-example.png" alt="alt text" width="100%"></div>
86
+
87
+ ### 3. Multiple stacks
88
+
89
+ To add another stack to the pipeline you simply add another StackSegment with a new stack instance and the pipeline will handle the rest.
90
+
91
+ ```typescript
92
+ import { App, SecretValue, Stack } from "aws-cdk-lib";
93
+ import {
94
+ Pipeline,
95
+ GitHubSourceSegment,
96
+ PipelineSegment,
97
+ StackSegment,
98
+ Artifact,
99
+ } from "@flit/cdk-pipeline";
100
+
101
+ const APP = new App();
102
+
103
+ const sourceArtifact = new Artifact();
104
+
105
+ new Pipeline(APP, "Pipeline", {
106
+ rootDir: "./",
107
+ segments: [
108
+ new GitHubSourceSegment({
109
+ oauthToken: SecretValue.secretsManager("github-access-token"),
110
+ output: sourceArtifact,
111
+ owner: "owner-name",
112
+ repo: "repo-name",
113
+ branch: "branch-name",
114
+ }),
115
+ new PipelineSegment({
116
+ input: sourceArtifact,
117
+ command: "cdk synth Pipeline --strict --exclusively",
118
+ }),
119
+ new StackSegment({
120
+ stack: new Stack(APP, "Stack1"),
121
+ input: sourceArtifact,
122
+ command: "cdk synth Stack1 --strict --exclusively",
123
+ }),
124
+ new StackSegment({
125
+ stack: new Stack(APP, "Stack2"),
126
+ input: sourceArtifact,
127
+ command: "cdk synth Stack2 --strict --exclusively",
128
+ }),
129
+ ],
130
+ });
131
+ ```
132
+
133
+ ### 3. Passing assets
134
+
135
+ If a segment requires the output artifact of a previous segment it you can simply add an output artifact to the previous stage and pass it as additional input to another segment
136
+
137
+ ```typescript
138
+ import { App, SecretValue, Stack } from "aws-cdk-lib";
139
+ import {
140
+ Pipeline,
141
+ GitHubSourceSegment,
142
+ PipelineSegment,
143
+ StackSegment,
144
+ Artifact,
145
+ } from "@flit/cdk-pipeline";
146
+
147
+ const APP = new App();
148
+
149
+ const sourceArtifact = new Artifact();
150
+ const stack1Artifact = new Artifact();
151
+
152
+ new Pipeline(APP, "Pipeline", {
153
+ rootDir: "./",
154
+ segments: [
155
+ new GitHubSourceSegment({
156
+ oauthToken: SecretValue.secretsManager("jumper-de-github-access-tokens"),
157
+ output: sourceArtifact,
158
+ owner: "p-mercury",
159
+ repo: "jumper-de",
160
+ branch: "main",
161
+ }),
162
+ new PipelineSegment({
163
+ input: sourceArtifact,
164
+ command: "cdk synth Pipeline --strict --exclusively",
165
+ }),
166
+ new StackSegment({
167
+ stack: new Stack(APP, "Stack1"),
168
+ input: sourceArtifact,
169
+ output: stack1Artifact,
170
+ command: "cdk synth Stack1 --strict --exclusively",
171
+ }),
172
+ new StackSegment({
173
+ stack: new Stack(APP, "Stack2"),
174
+ input: [sourceArtifact, stack1Artifact],
175
+ command: "cdk synth Stack2 --strict --exclusively",
176
+ }),
177
+ ],
178
+ });
13
179
  ```
14
180
 
15
- ### Pipeline
181
+ ### 4. Build your own segment
16
182
 
17
183
  An alternative L3 construct which fixes some inherit limitations of the CDK native CodePipeline L3 construct.
18
184
 
@@ -2,7 +2,10 @@ import { Artifact as AwsArtifact } from "aws-cdk-lib/aws-codepipeline";
2
2
  import { Segment } from "./segment";
3
3
  export declare class Artifact extends AwsArtifact {
4
4
  private producer?;
5
+ private consumers;
5
6
  constructor();
6
7
  produce(producer: Segment): void;
7
- getProducer(): Segment | undefined;
8
+ consume(producer: Segment): void;
9
+ obtainProducer(): Segment | undefined;
10
+ obtainConsumers(): Segment[];
8
11
  }
package/dist/artifact.js CHANGED
@@ -1,20 +1,30 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Artifact = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
4
6
  const aws_codepipeline_1 = require("aws-cdk-lib/aws-codepipeline");
5
7
  class Artifact extends aws_codepipeline_1.Artifact {
6
- producer;
7
8
  constructor() {
8
9
  super();
10
+ this.consumers = [];
9
11
  }
10
12
  produce(producer) {
11
13
  if (this.producer)
12
14
  throw new Error("Artifact is already produced");
13
15
  this.producer = producer;
14
16
  }
15
- getProducer() {
17
+ consume(producer) {
18
+ this.consumers.push(producer);
19
+ }
20
+ obtainProducer() {
16
21
  return this.producer;
17
22
  }
23
+ obtainConsumers() {
24
+ return this.consumers;
25
+ }
18
26
  }
27
+ _a = JSII_RTTI_SYMBOL_1;
28
+ Artifact[_a] = { fqn: "@flit/cdk-pipeline.Artifact", version: "1.0.2" };
19
29
  exports.Artifact = Artifact;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQXVFO0FBSXZFLE1BQWEsUUFBUyxTQUFRLDJCQUFXO0lBQy9CLFFBQVEsQ0FBVztJQUMzQjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQVpELDRCQVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJ0aWZhY3QgYXMgQXdzQXJ0aWZhY3QgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiO1xuXG5pbXBvcnQgeyBTZWdtZW50IH0gZnJvbSBcIi4vc2VnbWVudFwiO1xuXG5leHBvcnQgY2xhc3MgQXJ0aWZhY3QgZXh0ZW5kcyBBd3NBcnRpZmFjdCB7XG4gIHByaXZhdGUgcHJvZHVjZXI/OiBTZWdtZW50O1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHByb2R1Y2UocHJvZHVjZXI6IFNlZ21lbnQpIHtcbiAgICBpZiAodGhpcy5wcm9kdWNlcikgdGhyb3cgbmV3IEVycm9yKFwiQXJ0aWZhY3QgaXMgYWxyZWFkeSBwcm9kdWNlZFwiKTtcbiAgICB0aGlzLnByb2R1Y2VyID0gcHJvZHVjZXI7XG4gIH1cbiAgZ2V0UHJvZHVjZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjZXI7XG4gIH1cbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtRUFBdUU7QUFJdkUsTUFBYSxRQUFTLFNBQVEsMkJBQVc7SUFHdkM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUZGLGNBQVMsR0FBYyxFQUFFLENBQUM7SUFHbEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRCxPQUFPLENBQUMsUUFBaUI7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQzs7OztBQWxCVSw0QkFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFydGlmYWN0IGFzIEF3c0FydGlmYWN0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcblxuaW1wb3J0IHsgU2VnbWVudCB9IGZyb20gXCIuL3NlZ21lbnRcIjtcblxuZXhwb3J0IGNsYXNzIEFydGlmYWN0IGV4dGVuZHMgQXdzQXJ0aWZhY3Qge1xuICBwcml2YXRlIHByb2R1Y2VyPzogU2VnbWVudDtcbiAgcHJpdmF0ZSBjb25zdW1lcnM6IFNlZ21lbnRbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHByb2R1Y2UocHJvZHVjZXI6IFNlZ21lbnQpIHtcbiAgICBpZiAodGhpcy5wcm9kdWNlcikgdGhyb3cgbmV3IEVycm9yKFwiQXJ0aWZhY3QgaXMgYWxyZWFkeSBwcm9kdWNlZFwiKTtcbiAgICB0aGlzLnByb2R1Y2VyID0gcHJvZHVjZXI7XG4gIH1cbiAgY29uc3VtZShwcm9kdWNlcjogU2VnbWVudCkge1xuICAgIHRoaXMuY29uc3VtZXJzLnB1c2gocHJvZHVjZXIpO1xuICB9XG4gIG9idGFpblByb2R1Y2VyKCk6IFNlZ21lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y2VyO1xuICB9XG4gIG9idGFpbkNvbnN1bWVycygpOiBTZWdtZW50W10ge1xuICAgIHJldHVybiB0aGlzLmNvbnN1bWVycztcbiAgfVxufVxuIl19
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export * from "./pipeline";
2
1
  export * from "./artifact";
3
- export * from "./source-segment";
4
2
  export * from "./pipeline-segment";
5
- export * from "./stack-segment";
3
+ export * from "./pipeline";
6
4
  export * from "./publish-assets-action";
5
+ export * from "./segment";
6
+ export * from "./source-segment";
7
+ export * from "./stack-segment";
package/dist/index.js CHANGED
@@ -14,10 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./pipeline"), exports);
18
17
  __exportStar(require("./artifact"), exports);
19
- __exportStar(require("./source-segment"), exports);
20
18
  __exportStar(require("./pipeline-segment"), exports);
21
- __exportStar(require("./stack-segment"), exports);
19
+ __exportStar(require("./pipeline"), exports);
22
20
  __exportStar(require("./publish-assets-action"), exports);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiw2Q0FBMkI7QUFDM0IsbURBQWlDO0FBQ2pDLHFEQUFtQztBQUNuQyxrREFBZ0M7QUFDaEMsMERBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGlwZWxpbmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FydGlmYWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb3VyY2Utc2VnbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGlwZWxpbmUtc2VnbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhY2stc2VnbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHVibGlzaC1hc3NldHMtYWN0aW9uXCI7XG4iXX0=
21
+ __exportStar(require("./segment"), exports);
22
+ __exportStar(require("./source-segment"), exports);
23
+ __exportStar(require("./stack-segment"), exports);
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQixxREFBbUM7QUFDbkMsNkNBQTJCO0FBQzNCLDBEQUF3QztBQUN4Qyw0Q0FBMEI7QUFDMUIsbURBQWlDO0FBQ2pDLGtEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2FydGlmYWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9waXBlbGluZS1zZWdtZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9waXBlbGluZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHVibGlzaC1hc3NldHMtYWN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZWdtZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb3VyY2Utc2VnbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhY2stc2VnbWVudFwiO1xuIl19
@@ -1,18 +1,53 @@
1
- import { Stack } from "aws-cdk-lib";
1
+ import { BuildEnvironmentVariable } from "aws-cdk-lib/aws-codebuild";
2
2
  import { Artifact } from "./artifact";
3
- import { Segment, SegmentProps } from "./segment";
4
- import { StackSegmentBuild } from "./stack-segment";
5
- export interface PipelineSegmentProps extends SegmentProps {
6
- command: string | string[];
7
- buildPath: string;
8
- input: Artifact | Artifact[];
9
- output?: Artifact;
10
- manualAproval?: Boolean;
3
+ import { Segment, SegmentConstructed } from "./segment";
4
+ import { Pipeline } from "./pipeline";
5
+ export interface PipelineSegmentProps {
6
+ /**
7
+ * The input arfifact for the build stage.
8
+ */
9
+ readonly input: Artifact | Artifact[];
10
+ /**
11
+ * The command(s) to build the stack.
12
+ * @example "cdk synth StackName --strict --exclusively"
13
+ */
14
+ readonly command: string | string[];
15
+ /**
16
+ * The environmental variables for the build stage.
17
+ */
18
+ readonly environmentVariables?: {
19
+ [key: string]: BuildEnvironmentVariable;
20
+ };
21
+ /**
22
+ * The name of the stack to apply this action to.
23
+ * @deafult The name of the given stack.
24
+ */
25
+ readonly stackName?: string;
26
+ /**
27
+ * The AWS account this Action is supposed to operate in.
28
+ */
29
+ readonly account?: string;
30
+ /**
31
+ * The AWS region the given Action resides in.
32
+ */
33
+ readonly region?: string;
34
+ /**
35
+ * The artifact to hold the stack deployment output file.
36
+ * @default no output artifact
37
+ */
38
+ readonly output?: Artifact;
39
+ /**
40
+ * Does this stage require manual approval of the change set?
41
+ * @default false
42
+ */
43
+ readonly manualApproval?: Boolean;
11
44
  }
45
+ /**
46
+ * @category Segments
47
+ */
12
48
  export declare class PipelineSegment extends Segment {
13
49
  readonly isPipeline: boolean;
14
50
  readonly props: PipelineSegmentProps;
15
- readonly input: Artifact | Artifact[];
16
51
  constructor(props: PipelineSegmentProps);
17
- build(scope: Stack): StackSegmentBuild;
52
+ construct(scope: Pipeline): SegmentConstructed;
18
53
  }
@@ -1,29 +1,29 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.PipelineSegment = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
4
6
  const segment_1 = require("./segment");
5
7
  const stack_segment_1 = require("./stack-segment");
8
+ /**
9
+ * @category Segments
10
+ */
6
11
  class PipelineSegment extends segment_1.Segment {
7
- isPipeline = true;
8
- props;
9
- input;
10
12
  constructor(props) {
11
13
  super(props);
12
- this.input = props.input;
14
+ this.isPipeline = true;
13
15
  this.props = props;
14
16
  }
15
- build(scope) {
16
- return new stack_segment_1.StackSegmentBuild(scope, `Deploy${scope.stackName}`, {
17
+ construct(scope) {
18
+ return new stack_segment_1.StackSegmentConstructed(scope, `Deploy${scope.stackName}`, {
17
19
  ...this.props,
18
20
  stack: scope,
19
- input: this.input.constructor.name === "Array"
20
- ? this.input[0]
21
- : this.input,
22
- extraInputs: this.input.constructor.name === "Array"
23
- ? this.input.slice(1)
24
- : undefined,
21
+ input: this.inputs[0],
22
+ extraInputs: this.inputs.slice(1),
25
23
  });
26
24
  }
27
25
  }
26
+ _a = JSII_RTTI_SYMBOL_1;
27
+ PipelineSegment[_a] = { fqn: "@flit/cdk-pipeline.PipelineSegment", version: "1.0.2" };
28
28
  exports.PipelineSegment = PipelineSegment;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waXBlbGluZS1zZWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW1CQSx1Q0FBa0Q7QUFDbEQsbURBQW9EO0FBVXBELE1BQWEsZUFBZ0IsU0FBUSxpQkFBTztJQUNqQyxVQUFVLEdBQVksSUFBSSxDQUFDO0lBQzNCLEtBQUssQ0FBdUI7SUFDNUIsS0FBSyxDQUF3QjtJQUV0QyxZQUFZLEtBQTJCO1FBQ3JDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVk7UUFDaEIsT0FBTyxJQUFJLGlDQUFpQixDQUFDLEtBQUssRUFBRSxTQUFTLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM5RCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLE9BQU87Z0JBQ3JDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBb0IsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBa0I7WUFDOUIsV0FBVyxFQUNULElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxPQUFPO2dCQUNyQyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBekJELDBDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQnVpbGRTcGVjLFxuICBDb21wdXRlVHlwZSxcbiAgTGludXhCdWlsZEltYWdlLFxuICBQcm9qZWN0LFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuaW1wb3J0IHsgSUFjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQge1xuICBDbG91ZEZvcm1hdGlvbkNyZWF0ZVJlcGxhY2VDaGFuZ2VTZXRBY3Rpb24sXG4gIENsb3VkRm9ybWF0aW9uRXhlY3V0ZUNoYW5nZVNldEFjdGlvbixcbiAgQ29kZUJ1aWxkQWN0aW9uLFxuICBNYW51YWxBcHByb3ZhbEFjdGlvbixcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9uc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgUHVibGlzaEFzc2V0c0FjdGlvbiB9IGZyb20gXCIuL3B1Ymxpc2gtYXNzZXRzLWFjdGlvblwiO1xuaW1wb3J0IHsgQXJ0aWZhY3QgfSBmcm9tIFwiLi9hcnRpZmFjdFwiO1xuaW1wb3J0IHsgU2VnbWVudCwgU2VnbWVudFByb3BzIH0gZnJvbSBcIi4vc2VnbWVudFwiO1xuaW1wb3J0IHsgU3RhY2tTZWdtZW50QnVpbGQgfSBmcm9tIFwiLi9zdGFjay1zZWdtZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVTZWdtZW50UHJvcHMgZXh0ZW5kcyBTZWdtZW50UHJvcHMge1xuICBjb21tYW5kOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgYnVpbGRQYXRoOiBzdHJpbmc7XG4gIGlucHV0OiBBcnRpZmFjdCB8IEFydGlmYWN0W107XG4gIG91dHB1dD86IEFydGlmYWN0O1xuICBtYW51YWxBcHJvdmFsPzogQm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFBpcGVsaW5lU2VnbWVudCBleHRlbmRzIFNlZ21lbnQge1xuICByZWFkb25seSBpc1BpcGVsaW5lOiBib29sZWFuID0gdHJ1ZTtcbiAgcmVhZG9ubHkgcHJvcHM6IFBpcGVsaW5lU2VnbWVudFByb3BzO1xuICByZWFkb25seSBpbnB1dDogQXJ0aWZhY3QgfCBBcnRpZmFjdFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBQaXBlbGluZVNlZ21lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLmlucHV0ID0gcHJvcHMuaW5wdXQ7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgYnVpbGQoc2NvcGU6IFN0YWNrKTogU3RhY2tTZWdtZW50QnVpbGQge1xuICAgIHJldHVybiBuZXcgU3RhY2tTZWdtZW50QnVpbGQoc2NvcGUsIGBEZXBsb3kke3Njb3BlLnN0YWNrTmFtZX1gLCB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgc3RhY2s6IHNjb3BlLFxuICAgICAgaW5wdXQ6XG4gICAgICAgIHRoaXMuaW5wdXQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJBcnJheVwiXG4gICAgICAgICAgPyAodGhpcy5pbnB1dCBhcyBBcnRpZmFjdFtdKVswXVxuICAgICAgICAgIDogKHRoaXMuaW5wdXQgYXMgQXJ0aWZhY3QpLFxuICAgICAgZXh0cmFJbnB1dHM6XG4gICAgICAgIHRoaXMuaW5wdXQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJBcnJheVwiXG4gICAgICAgICAgPyAodGhpcy5pbnB1dCBhcyBBcnRpZmFjdFtdKS5zbGljZSgxKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waXBlbGluZS1zZWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsdUNBQXdEO0FBQ3hELG1EQUEwRDtBQTJDMUQ7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsaUJBQU87SUFJMUMsWUFBWSxLQUEyQjtRQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFKTixlQUFVLEdBQVksSUFBSSxDQUFDO1FBS2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBZTtRQUN2QixPQUFPLElBQUksdUNBQXVCLENBQUMsS0FBSyxFQUFFLFNBQVMsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BFLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7QUFoQlUsMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZEVudmlyb25tZW50VmFyaWFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuXG5pbXBvcnQgeyBBcnRpZmFjdCB9IGZyb20gXCIuL2FydGlmYWN0XCI7XG5pbXBvcnQgeyBTZWdtZW50LCBTZWdtZW50Q29uc3RydWN0ZWQgfSBmcm9tIFwiLi9zZWdtZW50XCI7XG5pbXBvcnQgeyBTdGFja1NlZ21lbnRDb25zdHJ1Y3RlZCB9IGZyb20gXCIuL3N0YWNrLXNlZ21lbnRcIjtcbmltcG9ydCB7IFBpcGVsaW5lIH0gZnJvbSBcIi4vcGlwZWxpbmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVNlZ21lbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgYXJmaWZhY3QgZm9yIHRoZSBidWlsZCBzdGFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0OiBBcnRpZmFjdCB8IEFydGlmYWN0W107XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZChzKSB0byBidWlsZCB0aGUgc3RhY2suXG4gICAqIEBleGFtcGxlIFwiY2RrIHN5bnRoIFN0YWNrTmFtZSAtLXN0cmljdCAtLWV4Y2x1c2l2ZWx5XCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50YWwgdmFyaWFibGVzIGZvciB0aGUgYnVpbGQgc3RhZ2UuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudFZhcmlhYmxlcz86IHsgW2tleTogc3RyaW5nXTogQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlIH07XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgdG8gYXBwbHkgdGhpcyBhY3Rpb24gdG8uXG4gICAqIEBkZWFmdWx0IFRoZSBuYW1lIG9mIHRoZSBnaXZlbiBzdGFjay5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBV1MgYWNjb3VudCB0aGlzIEFjdGlvbiBpcyBzdXBwb3NlZCB0byBvcGVyYXRlIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHRoZSBnaXZlbiBBY3Rpb24gcmVzaWRlcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFydGlmYWN0IHRvIGhvbGQgdGhlIHN0YWNrIGRlcGxveW1lbnQgb3V0cHV0IGZpbGUuXG4gICAqIEBkZWZhdWx0IG5vIG91dHB1dCBhcnRpZmFjdFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0PzogQXJ0aWZhY3Q7XG4gIC8qKlxuICAgKiBEb2VzIHRoaXMgc3RhZ2UgcmVxdWlyZSBtYW51YWwgYXBwcm92YWwgb2YgdGhlIGNoYW5nZSBzZXQ/XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBtYW51YWxBcHByb3ZhbD86IEJvb2xlYW47XG59XG5cbi8qKlxuICogQGNhdGVnb3J5IFNlZ21lbnRzXG4gKi9cbmV4cG9ydCBjbGFzcyBQaXBlbGluZVNlZ21lbnQgZXh0ZW5kcyBTZWdtZW50IHtcbiAgcmVhZG9ubHkgaXNQaXBlbGluZTogYm9vbGVhbiA9IHRydWU7XG4gIHJlYWRvbmx5IHByb3BzOiBQaXBlbGluZVNlZ21lbnRQcm9wcztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogUGlwZWxpbmVTZWdtZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgY29uc3RydWN0KHNjb3BlOiBQaXBlbGluZSk6IFNlZ21lbnRDb25zdHJ1Y3RlZCB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1NlZ21lbnRDb25zdHJ1Y3RlZChzY29wZSwgYERlcGxveSR7c2NvcGUuc3RhY2tOYW1lfWAsIHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBzdGFjazogc2NvcGUsXG4gICAgICBpbnB1dDogdGhpcy5pbnB1dHNbMF0sXG4gICAgICBleHRyYUlucHV0czogdGhpcy5pbnB1dHMuc2xpY2UoMSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -2,9 +2,28 @@ import { Stack, StackProps } from "aws-cdk-lib";
2
2
  import { Construct } from "constructs";
3
3
  import { Segment } from "./segment";
4
4
  export interface PipelineProps extends StackProps {
5
- pipelineName: string;
6
- segments: Segment[];
5
+ /**
6
+ * The name of the generated pipeline.
7
+ * @default Stack ID
8
+ */
9
+ readonly pipelineName?: string;
10
+ /**
11
+ * The path to the cdk projects root directory containing the cdk.json file
12
+ * relative to the asset root
13
+ */
14
+ readonly rootDir: string;
15
+ /**
16
+ * The segments to populating the pipeline.
17
+ */
18
+ readonly segments: Segment[];
7
19
  }
20
+ /**
21
+ * @category Constructs
22
+ */
8
23
  export declare class Pipeline extends Stack {
24
+ readonly props: PipelineProps;
25
+ readonly pipelineName: string;
26
+ readonly rootDir: string;
27
+ readonly buildDir: string;
9
28
  constructor(scope: Construct, id: string, props: PipelineProps);
10
29
  }
package/dist/pipeline.js CHANGED
@@ -1,13 +1,29 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Pipeline = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
4
6
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
7
  const aws_codepipeline_1 = require("aws-cdk-lib/aws-codepipeline");
8
+ const path = require("path");
9
+ /**
10
+ * @category Constructs
11
+ */
6
12
  class Pipeline extends aws_cdk_lib_1.Stack {
7
13
  constructor(scope, id, props) {
8
14
  super(scope, id, props);
15
+ this.props = props;
16
+ this.pipelineName = props.pipelineName ? props.pipelineName : id;
17
+ this.rootDir = props.rootDir;
18
+ this.buildDir = path.join(this.rootDir, this.node.root.outdir);
9
19
  if (!this.bundlingRequired)
10
20
  return;
21
+ props.segments.forEach((segment) => {
22
+ segment.inputs.forEach((artifact) => {
23
+ if (!artifact.obtainProducer())
24
+ throw new Error("Artifact consumed but never produced.");
25
+ });
26
+ });
11
27
  const sourceSegments = props.segments.filter((segment) => segment.isSource);
12
28
  const pipelineSegment = props.segments.find((segment) => segment.isPipeline);
13
29
  const segments = props.segments.filter((segment) => !segment.isSource && !segment.isPipeline);
@@ -20,16 +36,16 @@ class Pipeline extends aws_cdk_lib_1.Stack {
20
36
  actions: [
21
37
  ...sourceSegments.reduce((actions, segment) => [
22
38
  ...actions,
23
- ...segment.build(this).actions,
39
+ ...segment.construct(this).actions,
24
40
  ], []),
25
41
  ],
26
42
  },
27
43
  {
28
44
  stageName: "Pipeline",
29
- actions: [...pipelineSegment.build(this).actions],
45
+ actions: [...pipelineSegment.construct(this).actions],
30
46
  },
31
47
  ...segments.map((segment) => {
32
- const build = segment.build(this);
48
+ const build = segment.construct(this);
33
49
  return {
34
50
  stageName: build.name,
35
51
  actions: build.actions,
@@ -39,5 +55,7 @@ class Pipeline extends aws_cdk_lib_1.Stack {
39
55
  });
40
56
  }
41
57
  }
58
+ _a = JSII_RTTI_SYMBOL_1;
59
+ Pipeline[_a] = { fqn: "@flit/cdk-pipeline.Pipeline", version: "1.0.2" };
42
60
  exports.Pipeline = Pipeline;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdEO0FBRWhELG1FQUlzQztBQWN0QyxNQUFhLFFBQVMsU0FBUSxtQkFBSztJQUNqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUVuQyxNQUFNLGNBQWMsR0FBb0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQzNELENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDcEIsQ0FBQztRQUVyQixNQUFNLGVBQWUsR0FBZ0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3RFLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FDdEIsQ0FBQztRQUVyQixNQUFNLFFBQVEsR0FBYyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxPQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUMvRCxDQUFDO1FBRUYsSUFBSSwyQkFBVyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsTUFBTSxFQUFFO2dCQUNOO29CQUNFLFNBQVMsRUFBRSxRQUFRO29CQUNuQixPQUFPLEVBQUU7d0JBQ1AsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUN0QixDQUFDLE9BQWtCLEVBQUUsT0FBc0IsRUFBRSxFQUFFLENBQUM7NEJBQzlDLEdBQUcsT0FBTzs0QkFDVixHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTzt5QkFDL0IsRUFDRCxFQUFFLENBQ0g7cUJBQ0Y7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsU0FBUyxFQUFFLFVBQVU7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7aUJBQ2xEO2dCQUNELEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtvQkFDbkMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEMsT0FBTzt3QkFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7d0JBQ3JCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztxQkFDdkIsQ0FBQztnQkFDSixDQUFDLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhERCw0QkFnREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIFBpcGVsaW5lIGFzIEF3c1BpcGVsaW5lLFxuICBJQWN0aW9uLFxuICBTdGFnZVByb3BzLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdFwiO1xuXG5pbXBvcnQgeyBTZWdtZW50IH0gZnJvbSBcIi4vc2VnbWVudFwiO1xuaW1wb3J0IHsgU291cmNlU2VnbWVudCB9IGZyb20gXCIuL3NvdXJjZS1zZWdtZW50XCI7XG5pbXBvcnQgeyBQaXBlbGluZVNlZ21lbnQgfSBmcm9tIFwiLi9waXBlbGluZS1zZWdtZW50XCI7XG5pbXBvcnQgeyBTdGFja1NlZ21lbnQgfSBmcm9tIFwiLi9zdGFjay1zZWdtZW50XCI7XG5pbXBvcnQgeyBBcnRpZmFjdCB9IGZyb20gXCIuL2FydGlmYWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICBwaXBlbGluZU5hbWU6IHN0cmluZztcbiAgc2VnbWVudHM6IFNlZ21lbnRbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFBpcGVsaW5lIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCF0aGlzLmJ1bmRsaW5nUmVxdWlyZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHNvdXJjZVNlZ21lbnRzOiBTb3VyY2VTZWdtZW50W10gPSBwcm9wcy5zZWdtZW50cy5maWx0ZXIoXG4gICAgICAoc2VnbWVudDogU2VnbWVudCkgPT4gc2VnbWVudC5pc1NvdXJjZVxuICAgICkgYXMgU291cmNlU2VnbWVudFtdO1xuXG4gICAgY29uc3QgcGlwZWxpbmVTZWdtZW50OiBQaXBlbGluZVNlZ21lbnQgfCB1bmRlZmluZWQgPSBwcm9wcy5zZWdtZW50cy5maW5kKFxuICAgICAgKHNlZ21lbnQ6IFNlZ21lbnQpID0+IHNlZ21lbnQuaXNQaXBlbGluZVxuICAgICkgYXMgUGlwZWxpbmVTZWdtZW50O1xuXG4gICAgY29uc3Qgc2VnbWVudHM6IFNlZ21lbnRbXSA9IHByb3BzLnNlZ21lbnRzLmZpbHRlcihcbiAgICAgIChzZWdtZW50OiBTZWdtZW50KSA9PiAhc2VnbWVudC5pc1NvdXJjZSAmJiAhc2VnbWVudC5pc1BpcGVsaW5lXG4gICAgKTtcblxuICAgIG5ldyBBd3NQaXBlbGluZSh0aGlzLCBcIlBpcGVsaW5lXCIsIHtcbiAgICAgIHBpcGVsaW5lTmFtZTogcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgICAgcmVzdGFydEV4ZWN1dGlvbk9uVXBkYXRlOiB0cnVlLFxuICAgICAgc3RhZ2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzdGFnZU5hbWU6IFwiU291cmNlXCIsXG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgLi4uc291cmNlU2VnbWVudHMucmVkdWNlKFxuICAgICAgICAgICAgICAoYWN0aW9uczogSUFjdGlvbltdLCBzZWdtZW50OiBTb3VyY2VTZWdtZW50KSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uYWN0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5zZWdtZW50LmJ1aWxkKHRoaXMpLmFjdGlvbnMsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFtdXG4gICAgICAgICAgICApLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzdGFnZU5hbWU6IFwiUGlwZWxpbmVcIixcbiAgICAgICAgICBhY3Rpb25zOiBbLi4ucGlwZWxpbmVTZWdtZW50LmJ1aWxkKHRoaXMpLmFjdGlvbnNdLFxuICAgICAgICB9LFxuICAgICAgICAuLi5zZWdtZW50cy5tYXAoKHNlZ21lbnQ6IFNlZ21lbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBidWlsZCA9IHNlZ21lbnQuYnVpbGQodGhpcyk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YWdlTmFtZTogYnVpbGQubmFtZSxcbiAgICAgICAgICAgIGFjdGlvbnM6IGJ1aWxkLmFjdGlvbnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBcUQ7QUFFckQsbUVBQWdGO0FBQ2hGLDZCQUE2QjtBQXdCN0I7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBSztJQUtqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFXLEtBQW9CO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRHlCLFVBQUssR0FBTCxLQUFLLENBQWU7UUFHckUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUVuQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUU7b0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQW9CLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUMzRCxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ3BCLENBQUM7UUFFckIsTUFBTSxlQUFlLEdBQWdDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN0RSxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQ3RCLENBQUM7UUFFckIsTUFBTSxRQUFRLEdBQWMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQy9DLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FDL0QsQ0FBQztRQUVGLElBQUksMkJBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxTQUFTLEVBQUUsUUFBUTtvQkFDbkIsT0FBTyxFQUFFO3dCQUNQLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FDdEIsQ0FBQyxPQUFrQixFQUFFLE9BQXNCLEVBQUUsRUFBRSxDQUFDOzRCQUM5QyxHQUFHLE9BQU87NEJBQ1YsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU87eUJBQ25DLEVBQ0QsRUFBRSxDQUNIO3FCQUNGO2lCQUNGO2dCQUNEO29CQUNFLFNBQVMsRUFBRSxVQUFVO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO2lCQUN0RDtnQkFDRCxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFnQixFQUFFLEVBQUU7b0JBQ25DLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RDLE9BQU87d0JBQ0wsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO3dCQUNyQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87cUJBQ3ZCLENBQUM7Z0JBQ0osQ0FBQyxDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0FBOURVLDRCQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwLCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFBpcGVsaW5lIGFzIEF3c1BpcGVsaW5lLCBJQWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgQXJ0aWZhY3QgfSBmcm9tIFwiLi9hcnRpZmFjdFwiO1xuaW1wb3J0IHsgU2VnbWVudCB9IGZyb20gXCIuL3NlZ21lbnRcIjtcbmltcG9ydCB7IFNvdXJjZVNlZ21lbnQgfSBmcm9tIFwiLi9zb3VyY2Utc2VnbWVudFwiO1xuaW1wb3J0IHsgUGlwZWxpbmVTZWdtZW50IH0gZnJvbSBcIi4vcGlwZWxpbmUtc2VnbWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgcGlwZWxpbmUuXG4gICAqIEBkZWZhdWx0IFN0YWNrIElEXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgY2RrIHByb2plY3RzIHJvb3QgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGNkay5qc29uIGZpbGVcbiAgICogcmVsYXRpdmUgdG8gdGhlIGFzc2V0IHJvb3RcbiAgICovXG4gIHJlYWRvbmx5IHJvb3REaXI6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZWdtZW50cyB0byBwb3B1bGF0aW5nIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlZ21lbnRzOiBTZWdtZW50W107XG59XG5cbi8qKlxuICogQGNhdGVnb3J5IENvbnN0cnVjdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFBpcGVsaW5lIGV4dGVuZHMgU3RhY2sge1xuICByZWFkb25seSBwaXBlbGluZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcm9vdERpcjogc3RyaW5nO1xuICByZWFkb25seSBidWlsZERpcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHJlYWRvbmx5IHByb3BzOiBQaXBlbGluZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnBpcGVsaW5lTmFtZSA9IHByb3BzLnBpcGVsaW5lTmFtZSA/IHByb3BzLnBpcGVsaW5lTmFtZSA6IGlkO1xuICAgIHRoaXMucm9vdERpciA9IHByb3BzLnJvb3REaXI7XG4gICAgdGhpcy5idWlsZERpciA9IHBhdGguam9pbih0aGlzLnJvb3REaXIsICh0aGlzLm5vZGUucm9vdCBhcyBBcHApLm91dGRpcik7XG5cbiAgICBpZiAoIXRoaXMuYnVuZGxpbmdSZXF1aXJlZCkgcmV0dXJuO1xuXG4gICAgcHJvcHMuc2VnbWVudHMuZm9yRWFjaCgoc2VnbWVudDogU2VnbWVudCkgPT4ge1xuICAgICAgc2VnbWVudC5pbnB1dHMuZm9yRWFjaCgoYXJ0aWZhY3Q6IEFydGlmYWN0KSA9PiB7XG4gICAgICAgIGlmICghYXJ0aWZhY3Qub2J0YWluUHJvZHVjZXIoKSlcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcnRpZmFjdCBjb25zdW1lZCBidXQgbmV2ZXIgcHJvZHVjZWQuXCIpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBzb3VyY2VTZWdtZW50czogU291cmNlU2VnbWVudFtdID0gcHJvcHMuc2VnbWVudHMuZmlsdGVyKFxuICAgICAgKHNlZ21lbnQ6IFNlZ21lbnQpID0+IHNlZ21lbnQuaXNTb3VyY2VcbiAgICApIGFzIFNvdXJjZVNlZ21lbnRbXTtcblxuICAgIGNvbnN0IHBpcGVsaW5lU2VnbWVudDogUGlwZWxpbmVTZWdtZW50IHwgdW5kZWZpbmVkID0gcHJvcHMuc2VnbWVudHMuZmluZChcbiAgICAgIChzZWdtZW50OiBTZWdtZW50KSA9PiBzZWdtZW50LmlzUGlwZWxpbmVcbiAgICApIGFzIFBpcGVsaW5lU2VnbWVudDtcblxuICAgIGNvbnN0IHNlZ21lbnRzOiBTZWdtZW50W10gPSBwcm9wcy5zZWdtZW50cy5maWx0ZXIoXG4gICAgICAoc2VnbWVudDogU2VnbWVudCkgPT4gIXNlZ21lbnQuaXNTb3VyY2UgJiYgIXNlZ21lbnQuaXNQaXBlbGluZVxuICAgICk7XG5cbiAgICBuZXcgQXdzUGlwZWxpbmUodGhpcywgXCJQaXBlbGluZVwiLCB7XG4gICAgICBwaXBlbGluZU5hbWU6IHByb3BzLnBpcGVsaW5lTmFtZSxcbiAgICAgIHJlc3RhcnRFeGVjdXRpb25PblVwZGF0ZTogdHJ1ZSxcbiAgICAgIHN0YWdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgc3RhZ2VOYW1lOiBcIlNvdXJjZVwiLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIC4uLnNvdXJjZVNlZ21lbnRzLnJlZHVjZShcbiAgICAgICAgICAgICAgKGFjdGlvbnM6IElBY3Rpb25bXSwgc2VnbWVudDogU291cmNlU2VnbWVudCkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLmFjdGlvbnMsXG4gICAgICAgICAgICAgICAgLi4uc2VnbWVudC5jb25zdHJ1Y3QodGhpcykuYWN0aW9ucyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgW11cbiAgICAgICAgICAgICksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHN0YWdlTmFtZTogXCJQaXBlbGluZVwiLFxuICAgICAgICAgIGFjdGlvbnM6IFsuLi5waXBlbGluZVNlZ21lbnQuY29uc3RydWN0KHRoaXMpLmFjdGlvbnNdLFxuICAgICAgICB9LFxuICAgICAgICAuLi5zZWdtZW50cy5tYXAoKHNlZ21lbnQ6IFNlZ21lbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBidWlsZCA9IHNlZ21lbnQuY29uc3RydWN0KHRoaXMpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFnZU5hbWU6IGJ1aWxkLm5hbWUsXG4gICAgICAgICAgICBhY3Rpb25zOiBidWlsZC5hY3Rpb25zLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -2,10 +2,10 @@ import { Construct } from "constructs";
2
2
  import { ActionBindOptions, ActionConfig, ActionProperties, Artifact, IAction, IStage } from "aws-cdk-lib/aws-codepipeline";
3
3
  import { IRuleTarget, RuleProps, Rule } from "aws-cdk-lib/aws-events";
4
4
  export interface PublishAssetsActionProps {
5
- actionName: string;
6
- input: Artifact;
7
- manifestPath: string;
8
- runOrder?: number;
5
+ readonly actionName: string;
6
+ readonly input: Artifact;
7
+ readonly manifestPath: string;
8
+ readonly runOrder?: number;
9
9
  }
10
10
  export declare class PublishAssetsAction extends Construct implements IAction {
11
11
  readonly actionProperties: ActionProperties;
@@ -1,25 +1,23 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
2
+ var _a;
5
3
  Object.defineProperty(exports, "__esModule", { value: true });
6
4
  exports.PublishAssetsAction = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
6
  const aws_cdk_lib_1 = require("aws-cdk-lib");
8
7
  const constructs_1 = require("constructs");
9
8
  const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
10
9
  const aws_codepipeline_actions_1 = require("aws-cdk-lib/aws-codepipeline-actions");
11
10
  const aws_iam_1 = require("aws-cdk-lib/aws-iam");
12
- const path_1 = __importDefault(require("path"));
11
+ const path = require("path");
13
12
  class PublishAssetsAction extends constructs_1.Construct {
14
- actionProperties;
15
13
  bound(scope, stage, options) {
16
- throw new Error("Method not implemented.");
14
+ throw new Error(`Method not implemented.${!scope && !stage && options}`);
17
15
  }
18
16
  bind(scope, stage, options) {
19
- throw new Error("Method not implemented.");
17
+ throw new Error(`Method not implemented.${!scope && !stage && options}`);
20
18
  }
21
19
  onStateChange(name, target, options) {
22
- throw new Error("Method not implemented.");
20
+ throw new Error(`Method not implemented.${!name && !target && options}`);
23
21
  }
24
22
  constructor(scope, id, props) {
25
23
  super(scope, id);
@@ -57,7 +55,7 @@ class PublishAssetsAction extends constructs_1.Construct {
57
55
  phases: {
58
56
  install: {
59
57
  "runtime-versions": {
60
- nodejs: 16,
58
+ nodejs: 18,
61
59
  },
62
60
  commands: [
63
61
  "npm install -g npm@latest",
@@ -65,7 +63,7 @@ class PublishAssetsAction extends constructs_1.Construct {
65
63
  ],
66
64
  },
67
65
  build: {
68
- commands: `pca ${props.manifestPath ? path_1.default.normalize(props.manifestPath) : "."}`,
66
+ commands: `pca ${props.manifestPath ? path.normalize(props.manifestPath) : "."}`,
69
67
  },
70
68
  },
71
69
  }),
@@ -76,5 +74,7 @@ class PublishAssetsAction extends constructs_1.Construct {
76
74
  this.onStateChange = (name, target, options) => codeBuild.onStateChange(name, target, options);
77
75
  }
78
76
  }
77
+ _a = JSII_RTTI_SYMBOL_1;
78
+ PublishAssetsAction[_a] = { fqn: "@flit/cdk-pipeline.PublishAssetsAction", version: "1.0.2" };
79
79
  exports.PublishAssetsAction = PublishAssetsAction;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1hc3NldHMtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B1Ymxpc2gtYXNzZXRzLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2Q0FBb0M7QUFDcEMsMkNBQXVDO0FBU3ZDLDZEQUFnRjtBQUNoRixtRkFBdUU7QUFDdkUsaURBTzZCO0FBQzdCLGdEQUF3QjtBQVV4QixNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBQ2hDLGdCQUFnQixDQUFtQjtJQUVuRCxLQUFLLENBQ0gsS0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE9BQTBCO1FBRTFCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxDQUNGLEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUEwQjtRQUUxQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGFBQWEsQ0FDWCxJQUFZLEVBQ1osTUFBZ0MsRUFDaEMsT0FBK0I7UUFFL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSwwQ0FBZSxDQUFDO1lBQ3BDLEdBQUcsS0FBSztZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixPQUFPLEVBQUUsSUFBSSx1QkFBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7Z0JBQzdCLFdBQVcsRUFBRTtvQkFDWCxVQUFVLEVBQUUsK0JBQWUsQ0FBQyxnQkFBZ0I7aUJBQzdDO2dCQUNELElBQUksRUFBRSxJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUsNkJBQTZCLEVBQUU7b0JBQ2xELFNBQVMsRUFBRSxJQUFJLDRCQUFrQixDQUMvQixJQUFJLDBCQUFnQixDQUFDLHlCQUF5QixDQUFDLEVBQy9DLElBQUksMEJBQWdCLENBQUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQzdDO29CQUNELGNBQWMsRUFBRTt3QkFDZCxZQUFZLEVBQUUsSUFBSSx3QkFBYyxDQUFDOzRCQUMvQixVQUFVLEVBQUU7Z0NBQ1YsSUFBSSx5QkFBZSxDQUFDO29DQUNsQixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQ0FDM0IsU0FBUyxFQUFFLENBQUMsY0FBYyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLFNBQVMsQ0FBQztvQ0FDMUQsVUFBVSxFQUFFO3dDQUNWLDBCQUEwQixFQUFFOzRDQUMxQix3Q0FBd0MsRUFBRTtnREFDeEMsa0JBQWtCO2dEQUNsQixpQkFBaUI7Z0RBQ2pCLFFBQVE7NkNBQ1Q7eUNBQ0Y7cUNBQ0Y7aUNBQ0YsQ0FBQzs2QkFDSDt5QkFDRixDQUFDO3FCQUNIO2lCQUNGLENBQUM7Z0JBQ0YsU0FBUyxFQUFFLHlCQUFTLENBQUMsVUFBVSxDQUFDO29CQUM5QixPQUFPLEVBQUUsS0FBSztvQkFDZCxNQUFNLEVBQUU7d0JBQ04sT0FBTyxFQUFFOzRCQUNQLGtCQUFrQixFQUFFO2dDQUNsQixNQUFNLEVBQUUsRUFBRTs2QkFDWDs0QkFDRCxRQUFRLEVBQUU7Z0NBQ1IsMkJBQTJCO2dDQUMzQiwwQ0FBMEM7NkJBQzNDO3lCQUNGO3dCQUNELEtBQUssRUFBRTs0QkFDTCxRQUFRLEVBQUUsT0FDUixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FDNUQsRUFBRTt5QkFDSDtxQkFDRjtpQkFDRixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUNWLEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUEwQixFQUNaLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUNuQixJQUFZLEVBQ1osTUFBb0IsRUFDcEIsT0FBbUIsRUFDYixFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQS9GRCxrREErRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFjdGlvbkJpbmRPcHRpb25zLFxuICBBY3Rpb25Db25maWcsXG4gIEFjdGlvblByb3BlcnRpZXMsXG4gIEFydGlmYWN0LFxuICBJQWN0aW9uLFxuICBJU3RhZ2UsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQgeyBCdWlsZFNwZWMsIExpbnV4QnVpbGRJbWFnZSwgUHJvamVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgeyBDb2RlQnVpbGRBY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zXCI7XG5pbXBvcnQge1xuICBBY2NvdW50UHJpbmNpcGFsLFxuICBDb21wb3NpdGVQcmluY2lwYWwsXG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnQsXG4gIFJvbGUsXG4gIFNlcnZpY2VQcmluY2lwYWwsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgSVJ1bGVUYXJnZXQsIFJ1bGVQcm9wcywgUnVsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaEFzc2V0c0FjdGlvblByb3BzIHtcbiAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICBpbnB1dDogQXJ0aWZhY3Q7XG4gIG1hbmlmZXN0UGF0aDogc3RyaW5nO1xuICBydW5PcmRlcj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFB1Ymxpc2hBc3NldHNBY3Rpb24gZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvblByb3BlcnRpZXM6IEFjdGlvblByb3BlcnRpZXM7XG5cbiAgYm91bmQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBzdGFnZTogSVN0YWdlLFxuICAgIG9wdGlvbnM6IEFjdGlvbkJpbmRPcHRpb25zXG4gICk6IEFjdGlvbkNvbmZpZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gIH1cblxuICBiaW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc3RhZ2U6IElTdGFnZSxcbiAgICBvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9uc1xuICApOiBBY3Rpb25Db25maWcge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICB9XG5cbiAgb25TdGF0ZUNoYW5nZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdGFyZ2V0PzogSVJ1bGVUYXJnZXQgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IFJ1bGVQcm9wcyB8IHVuZGVmaW5lZFxuICApOiBSdWxlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQdWJsaXNoQXNzZXRzQWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGNvZGVCdWlsZCA9IG5ldyBDb2RlQnVpbGRBY3Rpb24oe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBpbnB1dDogcHJvcHMuaW5wdXQsXG4gICAgICBwcm9qZWN0OiBuZXcgUHJvamVjdCh0aGlzLCBpZCwge1xuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIGJ1aWxkSW1hZ2U6IExpbnV4QnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl80LFxuICAgICAgICB9LFxuICAgICAgICByb2xlOiBuZXcgUm9sZSh0aGlzLCBcIlVwZGF0ZVBpcGVsaW5lQ29kZUN1aWxkUm9sZVwiLCB7XG4gICAgICAgICAgYXNzdW1lZEJ5OiBuZXcgQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgICAgICAgICAgbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJjb2RlYnVpbGQuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgICAgICAgIG5ldyBBY2NvdW50UHJpbmNpcGFsKFN0YWNrLm9mKHRoaXMpLmFjY291bnQpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICAgICAgc2VsZk11dGF0aW9uOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJzdHM6QXNzdW1lUm9sZVwiXSxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlczogW2Bhcm46KjppYW06OiR7U3RhY2sub2YodGhpcykuYWNjb3VudH06cm9sZS8qYF0sXG4gICAgICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImlhbTpSZXNvdXJjZVRhZy9hd3MtY2RrOmJvb3RzdHJhcC1yb2xlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW1hZ2UtcHVibGlzaGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWxlLXB1Ymxpc2hpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVwbG95XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgYnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgICAgdmVyc2lvbjogXCIwLjJcIixcbiAgICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgICAgICAgXCJydW50aW1lLXZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBub2RlanM6IDE2LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICAgICAgIFwibnBtIGluc3RhbGwgLWcgbnBtQGxhdGVzdFwiLFxuICAgICAgICAgICAgICAgIFwibnBtIGkgLWcgQGZsaXQvcHVibGlzaC1jZGstYXNzZXRzQGxhdGVzdFwiLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1aWxkOiB7XG4gICAgICAgICAgICAgIGNvbW1hbmRzOiBgcGNhICR7XG4gICAgICAgICAgICAgICAgcHJvcHMubWFuaWZlc3RQYXRoID8gcGF0aC5ub3JtYWxpemUocHJvcHMubWFuaWZlc3RQYXRoKSA6IFwiLlwiXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hY3Rpb25Qcm9wZXJ0aWVzID0gY29kZUJ1aWxkLmFjdGlvblByb3BlcnRpZXM7XG4gICAgdGhpcy5iaW5kID0gKFxuICAgICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICAgIHN0YWdlOiBJU3RhZ2UsXG4gICAgICBvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9uc1xuICAgICk6IEFjdGlvbkNvbmZpZyA9PiBjb2RlQnVpbGQuYmluZChzY29wZSwgc3RhZ2UsIG9wdGlvbnMpO1xuICAgIHRoaXMub25TdGF0ZUNoYW5nZSA9IChcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIHRhcmdldD86IElSdWxlVGFyZ2V0LFxuICAgICAgb3B0aW9ucz86IFJ1bGVQcm9wc1xuICAgICk6IFJ1bGUgPT4gY29kZUJ1aWxkLm9uU3RhdGVDaGFuZ2UobmFtZSwgdGFyZ2V0LCBvcHRpb25zKTtcbiAgfVxufVxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1hc3NldHMtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B1Ymxpc2gtYXNzZXRzLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFvQztBQUNwQywyQ0FBdUM7QUFTdkMsNkRBQWdGO0FBQ2hGLG1GQUF1RTtBQUN2RSxpREFPNkI7QUFFN0IsNkJBQTZCO0FBUzdCLE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFHaEQsS0FBSyxDQUNILEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUEwQjtRQUUxQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLEtBQUssSUFBSSxDQUFDLEtBQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLENBQ0YsS0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE9BQTBCO1FBRTFCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBTSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELGFBQWEsQ0FDWCxJQUFZLEVBQ1osTUFBZ0MsRUFDaEMsT0FBK0I7UUFFL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFPLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksMENBQWUsQ0FBQztZQUNwQyxHQUFHLEtBQUs7WUFDUixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsT0FBTyxFQUFFLElBQUksdUJBQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUM3QixXQUFXLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLCtCQUFlLENBQUMsZ0JBQWdCO2lCQUM3QztnQkFDRCxJQUFJLEVBQUUsSUFBSSxjQUFJLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFO29CQUNsRCxTQUFTLEVBQUUsSUFBSSw0QkFBa0IsQ0FDL0IsSUFBSSwwQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxFQUMvQyxJQUFJLDBCQUFnQixDQUFDLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUM3QztvQkFDRCxjQUFjLEVBQUU7d0JBQ2QsWUFBWSxFQUFFLElBQUksd0JBQWMsQ0FBQzs0QkFDL0IsVUFBVSxFQUFFO2dDQUNWLElBQUkseUJBQWUsQ0FBQztvQ0FDbEIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0NBQzNCLFNBQVMsRUFBRSxDQUFDLGNBQWMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxTQUFTLENBQUM7b0NBQzFELFVBQVUsRUFBRTt3Q0FDViwwQkFBMEIsRUFBRTs0Q0FDMUIsd0NBQXdDLEVBQUU7Z0RBQ3hDLGtCQUFrQjtnREFDbEIsaUJBQWlCO2dEQUNqQixRQUFROzZDQUNUO3lDQUNGO3FDQUNGO2lDQUNGLENBQUM7NkJBQ0g7eUJBQ0YsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2dCQUNGLFNBQVMsRUFBRSx5QkFBUyxDQUFDLFVBQVUsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRTs0QkFDUCxrQkFBa0IsRUFBRTtnQ0FDbEIsTUFBTSxFQUFFLEVBQUU7NkJBQ1g7NEJBQ0QsUUFBUSxFQUFFO2dDQUNSLDJCQUEyQjtnQ0FDM0IsMENBQTBDOzZCQUMzQzt5QkFDRjt3QkFDRCxLQUFLLEVBQUU7NEJBQ0wsUUFBUSxFQUFFLE9BQ1IsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQzVELEVBQUU7eUJBQ0g7cUJBQ0Y7aUJBQ0YsQ0FBQzthQUNILENBQUM7U0FDSCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FDVixLQUFnQixFQUNoQixLQUFhLEVBQ2IsT0FBMEIsRUFDWixFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FDbkIsSUFBWSxFQUNaLE1BQW9CLEVBQ3BCLE9BQW1CLEVBQ2IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs7O0FBOUZVLGtEQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQWN0aW9uQmluZE9wdGlvbnMsXG4gIEFjdGlvbkNvbmZpZyxcbiAgQWN0aW9uUHJvcGVydGllcyxcbiAgQXJ0aWZhY3QsXG4gIElBY3Rpb24sXG4gIElTdGFnZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmltcG9ydCB7IEJ1aWxkU3BlYywgTGludXhCdWlsZEltYWdlLCBQcm9qZWN0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIjtcbmltcG9ydCB7IENvZGVCdWlsZEFjdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lLWFjdGlvbnNcIjtcbmltcG9ydCB7XG4gIEFjY291bnRQcmluY2lwYWwsXG4gIENvbXBvc2l0ZVByaW5jaXBhbCxcbiAgUG9saWN5RG9jdW1lbnQsXG4gIFBvbGljeVN0YXRlbWVudCxcbiAgUm9sZSxcbiAgU2VydmljZVByaW5jaXBhbCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IElSdWxlVGFyZ2V0LCBSdWxlUHJvcHMsIFJ1bGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50c1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hBc3NldHNBY3Rpb25Qcm9wcyB7XG4gIHJlYWRvbmx5IGFjdGlvbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgaW5wdXQ6IEFydGlmYWN0O1xuICByZWFkb25seSBtYW5pZmVzdFBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgcnVuT3JkZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaXNoQXNzZXRzQWN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUFjdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSBhY3Rpb25Qcm9wZXJ0aWVzOiBBY3Rpb25Qcm9wZXJ0aWVzO1xuXG4gIGJvdW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc3RhZ2U6IElTdGFnZSxcbiAgICBvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9uc1xuICApOiBBY3Rpb25Db25maWcge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4keyFzY29wZSAmJiAhc3RhZ2UhICYmIG9wdGlvbnN9YCk7XG4gIH1cblxuICBiaW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc3RhZ2U6IElTdGFnZSxcbiAgICBvcHRpb25zOiBBY3Rpb25CaW5kT3B0aW9uc1xuICApOiBBY3Rpb25Db25maWcge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4keyFzY29wZSAmJiAhc3RhZ2UhICYmIG9wdGlvbnN9YCk7XG4gIH1cblxuICBvblN0YXRlQ2hhbmdlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB0YXJnZXQ/OiBJUnVsZVRhcmdldCB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zPzogUnVsZVByb3BzIHwgdW5kZWZpbmVkXG4gICk6IFJ1bGUge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4keyFuYW1lICYmICF0YXJnZXQhICYmIG9wdGlvbnN9YCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaEFzc2V0c0FjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBjb2RlQnVpbGQgPSBuZXcgQ29kZUJ1aWxkQWN0aW9uKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgaW5wdXQ6IHByb3BzLmlucHV0LFxuICAgICAgcHJvamVjdDogbmV3IFByb2plY3QodGhpcywgaWQsIHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBidWlsZEltYWdlOiBMaW51eEJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfNCxcbiAgICAgICAgfSxcbiAgICAgICAgcm9sZTogbmV3IFJvbGUodGhpcywgXCJVcGRhdGVQaXBlbGluZUNvZGVDdWlsZFJvbGVcIiwge1xuICAgICAgICAgIGFzc3VtZWRCeTogbmV3IENvbXBvc2l0ZVByaW5jaXBhbChcbiAgICAgICAgICAgIG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwiY29kZWJ1aWxkLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICAgICAgICBuZXcgQWNjb3VudFByaW5jaXBhbChTdGFjay5vZih0aGlzKS5hY2NvdW50KVxuICAgICAgICAgICksXG4gICAgICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgICAgIHNlbGZNdXRhdGlvbjogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1wic3RzOkFzc3VtZVJvbGVcIl0sXG4gICAgICAgICAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOio6aWFtOjoke1N0YWNrLm9mKHRoaXMpLmFjY291bnR9OnJvbGUvKmBdLFxuICAgICAgICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBcIkZvckFueVZhbHVlOlN0cmluZ0VxdWFsc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpYW06UmVzb3VyY2VUYWcvYXdzLWNkazpib290c3RyYXAtcm9sZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImltYWdlLXB1Ymxpc2hpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZS1wdWJsaXNoaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRlcGxveVwiLFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIGJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgIHZlcnNpb246IFwiMC4yXCIsXG4gICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICBpbnN0YWxsOiB7XG4gICAgICAgICAgICAgIFwicnVudGltZS12ZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgbm9kZWpzOiAxOCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgICBcIm5wbSBpbnN0YWxsIC1nIG5wbUBsYXRlc3RcIixcbiAgICAgICAgICAgICAgICBcIm5wbSBpIC1nIEBmbGl0L3B1Ymxpc2gtY2RrLWFzc2V0c0BsYXRlc3RcIixcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICBjb21tYW5kczogYHBjYSAke1xuICAgICAgICAgICAgICAgIHByb3BzLm1hbmlmZXN0UGF0aCA/IHBhdGgubm9ybWFsaXplKHByb3BzLm1hbmlmZXN0UGF0aCkgOiBcIi5cIlxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWN0aW9uUHJvcGVydGllcyA9IGNvZGVCdWlsZC5hY3Rpb25Qcm9wZXJ0aWVzO1xuICAgIHRoaXMuYmluZCA9IChcbiAgICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgICBzdGFnZTogSVN0YWdlLFxuICAgICAgb3B0aW9uczogQWN0aW9uQmluZE9wdGlvbnNcbiAgICApOiBBY3Rpb25Db25maWcgPT4gY29kZUJ1aWxkLmJpbmQoc2NvcGUsIHN0YWdlLCBvcHRpb25zKTtcbiAgICB0aGlzLm9uU3RhdGVDaGFuZ2UgPSAoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICB0YXJnZXQ/OiBJUnVsZVRhcmdldCxcbiAgICAgIG9wdGlvbnM/OiBSdWxlUHJvcHNcbiAgICApOiBSdWxlID0+IGNvZGVCdWlsZC5vblN0YXRlQ2hhbmdlKG5hbWUsIHRhcmdldCwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
package/dist/segment.d.ts CHANGED
@@ -1,21 +1,22 @@
1
- import { Stack } from "aws-cdk-lib";
2
1
  import { Construct } from "constructs";
2
+ import { Stack } from "aws-cdk-lib";
3
3
  import { IAction } from "aws-cdk-lib/aws-codepipeline";
4
4
  import { Artifact } from "./artifact";
5
+ import { Pipeline } from "./pipeline";
5
6
  export interface SegmentProps {
6
- input?: Artifact | Artifact[];
7
- output?: Artifact | Artifact[];
7
+ readonly input?: Artifact | Artifact[];
8
+ readonly output?: Artifact | Artifact[];
8
9
  }
9
- export declare class Segment {
10
+ export declare abstract class Segment {
10
11
  readonly isSource: boolean;
11
12
  readonly isPipeline: boolean;
12
- dependencies?: Stack[];
13
- readonly inputs?: Artifact[];
14
- readonly outputs?: Artifact[];
13
+ readonly dependencies?: Stack[];
14
+ readonly inputs: Artifact[];
15
+ readonly outputs: Artifact[];
15
16
  constructor(props: SegmentProps);
16
- build(scope: Construct): ISegmentBuild;
17
+ abstract construct(scope: Pipeline): SegmentConstructed;
17
18
  }
18
- export interface ISegmentBuild {
19
+ export declare abstract class SegmentConstructed extends Construct {
19
20
  readonly name: string;
20
21
  readonly actions: IAction[];
21
22
  }