Socket
Socket
Sign inDemoInstall

@aws-cdk/cx-api

Package Overview
Dependencies
Maintainers
5
Versions
543
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/cx-api - npm Package Compare versions

Comparing version 0.33.0 to 0.34.0

91

lib/cloud-artifact.d.ts

@@ -1,25 +0,54 @@

import { CloudAssembly, MissingContext } from './cloud-assembly';
import { CloudAssembly } from './cloud-assembly';
import { Environment } from './environment';
import { MetadataEntry, SynthesisMessage } from './metadata';
import { MetadataEntry, MetadataEntryResult, SynthesisMessage } from './metadata';
/**
* Type of cloud artifact.
*/
export declare enum ArtifactType {
None = "none",
/**
* The artifact is an AWS CloudFormation stack.
*/
AwsCloudFormationStack = "aws:cloudformation:stack"
}
export interface Artifact {
/**
* A manifest for a single artifact within the cloud assembly.
*/
export interface ArtifactManifest {
/**
* The type of artifact.
*/
readonly type: ArtifactType;
/**
* The environment into which this artifact is deployed.
*/
readonly environment: string;
/**
* Associated metadata.
*/
readonly metadata?: {
[path: string]: MetadataEntry[];
};
/**
* IDs of artifacts that must be deployed before this artifact.
*/
readonly dependencies?: string[];
readonly missing?: {
[key: string]: MissingContext;
};
/**
* The set of properties for this artifact (depends on type)
*/
readonly properties?: {
[name: string]: any;
};
readonly autoDeploy?: boolean;
}
/**
* Artifact properties for CloudFormation stacks.
*/
export interface AwsCloudFormationStackProperties {
/**
* A file relative to the assembly root which contains the CloudFormation template for this stack.
*/
readonly templateFile: string;
/**
* Values for CloudFormation stack parameters that should be passed when the stack is deployed.
*/
readonly parameters?: {

@@ -29,24 +58,42 @@ [id: string]: string;

}
/**
* Represents an artifact within a cloud assembly.
*/
export declare class CloudArtifact {
readonly assembly: CloudAssembly;
readonly id: string;
static from(assembly: CloudAssembly, name: string, artifact: Artifact): CloudArtifact;
readonly type: ArtifactType;
readonly missing: {
[key: string]: MissingContext;
};
readonly autoDeploy: boolean;
/**
* Returns a subclass of `CloudArtifact` based on the artifact type defined in the artifact manifest.
* @param assembly The cloud assembly from which to load the artifact
* @param id The artifact ID
* @param artifact The artifact manifest
*/
static from(assembly: CloudAssembly, id: string, artifact: ArtifactManifest): CloudArtifact;
/**
* The artifact's manifest
*/
readonly manifest: ArtifactManifest;
/**
* The set of messages extracted from the artifact's metadata.
*/
readonly messages: SynthesisMessage[];
/**
* The environment into which to deploy this artifact.
*/
readonly environment: Environment;
readonly metadata: {
[path: string]: MetadataEntry[];
};
readonly dependsIDs: string[];
readonly properties: {
[name: string]: any;
};
/**
* Cache of resolved dependencies.
*/
private _deps?;
constructor(assembly: CloudAssembly, id: string, artifact: Artifact);
readonly depends: CloudArtifact[];
protected constructor(assembly: CloudAssembly, id: string, manifest: ArtifactManifest);
/**
* Returns all the artifacts that this artifact depends on.
*/
readonly dependencies: CloudArtifact[];
/**
* @returns all the metadata entries of a specific type in this artifact.
* @param type
*/
findMetadataByType(type: string): MetadataEntryResult[];
private renderMessages;
}

@@ -5,24 +5,35 @@ "use strict";

const metadata_1 = require("./metadata");
/**
* Type of cloud artifact.
*/
var ArtifactType;
(function (ArtifactType) {
ArtifactType["None"] = "none";
/**
* The artifact is an AWS CloudFormation stack.
*/
ArtifactType["AwsCloudFormationStack"] = "aws:cloudformation:stack";
})(ArtifactType = exports.ArtifactType || (exports.ArtifactType = {}));
/**
* Represents an artifact within a cloud assembly.
*/
class CloudArtifact {
constructor(assembly, id, artifact) {
constructor(assembly, id, manifest) {
this.assembly = assembly;
this.id = id;
this.missing = artifact.missing || {};
this.type = artifact.type;
this.environment = environment_1.EnvironmentUtils.parse(artifact.environment);
this.autoDeploy = artifact.autoDeploy === undefined ? true : artifact.autoDeploy;
this.metadata = artifact.metadata || {};
this.manifest = manifest;
this.environment = environment_1.EnvironmentUtils.parse(manifest.environment);
this.messages = this.renderMessages();
this.dependsIDs = artifact.dependencies || [];
this.properties = artifact.properties || {};
this._dependencyIDs = manifest.dependencies || [];
}
static from(assembly, name, artifact) {
/**
* Returns a subclass of `CloudArtifact` based on the artifact type defined in the artifact manifest.
* @param assembly The cloud assembly from which to load the artifact
* @param id The artifact ID
* @param artifact The artifact manifest
*/
static from(assembly, id, artifact) {
switch (artifact.type) {
case ArtifactType.AwsCloudFormationStack:
return new cloudformation_artifact_1.CloudFormationStackArtifact(assembly, name, artifact);
return new cloudformation_artifact_1.CloudFormationStackArtifact(assembly, id, artifact);
default:

@@ -32,7 +43,10 @@ throw new Error(`unsupported artifact type: ${artifact.type}`);

}
get depends() {
/**
* Returns all the artifacts that this artifact depends on.
*/
get dependencies() {
if (this._deps) {
return this._deps;
}
this._deps = this.dependsIDs.map(id => {
this._deps = this._dependencyIDs.map(id => {
const dep = this.assembly.artifacts.find(a => a.id === id);

@@ -46,5 +60,20 @@ if (!dep) {

}
/**
* @returns all the metadata entries of a specific type in this artifact.
* @param type
*/
findMetadataByType(type) {
const result = new Array();
for (const path of Object.keys(this.manifest.metadata || {})) {
for (const entry of (this.manifest.metadata || {})[path]) {
if (entry.type === type) {
result.push({ path, ...entry });
}
}
}
return result;
}
renderMessages() {
const messages = new Array();
for (const [id, metadata] of Object.entries(this.metadata)) {
for (const [id, metadata] of Object.entries(this.manifest.metadata || {})) {
for (const entry of metadata) {

@@ -74,2 +103,2 @@ let level;

const cloudformation_artifact_1 = require("./cloudformation-artifact");
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtDQUE4RDtBQUM5RCx5Q0FBaUo7QUFFakosSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLDZCQUFhLENBQUE7SUFDYixtRUFBbUQsQ0FBQTtBQUNyRCxDQUFDLEVBSFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFHdkI7QUFpQkQsTUFBYSxhQUFhO0lBc0J4QixZQUE0QixRQUF1QixFQUFrQixFQUFVLEVBQUUsUUFBa0I7UUFBdkUsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUFrQixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQzdFLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxFQUFHLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDakYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUcsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsSUFBSSxFQUFHLENBQUM7SUFDL0MsQ0FBQztJQTlCTSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQXVCLEVBQUUsSUFBWSxFQUFFLFFBQWtCO1FBQzFFLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNyQixLQUFLLFlBQVksQ0FBQyxzQkFBc0I7Z0JBQ3RDLE9BQU8sSUFBSSxxREFBMkIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRW5FO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQztJQXdCRCxJQUFXLE9BQU87UUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFFdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxFQUFFLHFDQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQy9FO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBb0IsQ0FBQztRQUUvQyxLQUFLLE1BQU0sQ0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUQsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUU7Z0JBQzVCLElBQUksS0FBNEIsQ0FBQztnQkFDakMsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO29CQUNsQixLQUFLLCtCQUFvQjt3QkFDdkIsS0FBSyxHQUFHLGdDQUFxQixDQUFDLE9BQU8sQ0FBQzt3QkFDdEMsTUFBTTtvQkFDUixLQUFLLDZCQUFrQjt3QkFDckIsS0FBSyxHQUFHLGdDQUFxQixDQUFDLEtBQUssQ0FBQzt3QkFDcEMsTUFBTTtvQkFDUixLQUFLLDRCQUFpQjt3QkFDcEIsS0FBSyxHQUFHLGdDQUFxQixDQUFDLElBQUksQ0FBQzt3QkFDbkMsTUFBTTtvQkFDUjt3QkFDRSxTQUFTO2lCQUNaO2dCQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDckM7U0FDRjtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQXpFRCxzQ0F5RUM7QUFFRCw4REFBOEQ7QUFDOUQsdUVBQXdFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSwgTWlzc2luZ0NvbnRleHQgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IEVudmlyb25tZW50LCBFbnZpcm9ubWVudFV0aWxzIH0gZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBFUlJPUl9NRVRBREFUQV9LRVksIElORk9fTUVUQURBVEFfS0VZLCBNZXRhZGF0YUVudHJ5LCBTeW50aGVzaXNNZXNzYWdlLCBTeW50aGVzaXNNZXNzYWdlTGV2ZWwsIFdBUk5JTkdfTUVUQURBVEFfS0VZIH0gZnJvbSAnLi9tZXRhZGF0YSc7XG5cbmV4cG9ydCBlbnVtIEFydGlmYWN0VHlwZSB7XG4gIE5vbmUgPSAnbm9uZScsXG4gIEF3c0Nsb3VkRm9ybWF0aW9uU3RhY2sgPSAnYXdzOmNsb3VkZm9ybWF0aW9uOnN0YWNrJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcnRpZmFjdCB7XG4gIHJlYWRvbmx5IHR5cGU6IEFydGlmYWN0VHlwZTtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IHN0cmluZzsgLy8gZm9ybWF0OiBhd3M6Ly9hY2NvdW50L3JlZ2lvblxuICByZWFkb25seSBtZXRhZGF0YT86IHsgW3BhdGg6IHN0cmluZ106IE1ldGFkYXRhRW50cnlbXSB9O1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgbWlzc2luZz86IHsgW2tleTogc3RyaW5nXTogTWlzc2luZ0NvbnRleHQgfTtcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xuICByZWFkb25seSBhdXRvRGVwbG95PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHRlbXBsYXRlRmlsZTogc3RyaW5nO1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRBcnRpZmFjdCB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbShhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgbmFtZTogc3RyaW5nLCBhcnRpZmFjdDogQXJ0aWZhY3QpOiBDbG91ZEFydGlmYWN0IHtcbiAgICBzd2l0Y2ggKGFydGlmYWN0LnR5cGUpIHtcbiAgICAgIGNhc2UgQXJ0aWZhY3RUeXBlLkF3c0Nsb3VkRm9ybWF0aW9uU3RhY2s6XG4gICAgICAgIHJldHVybiBuZXcgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KGFzc2VtYmx5LCBuYW1lLCBhcnRpZmFjdCk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgYXJ0aWZhY3QgdHlwZTogJHthcnRpZmFjdC50eXBlfWApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBBcnRpZmFjdFR5cGU7XG4gIHB1YmxpYyByZWFkb25seSBtaXNzaW5nOiB7IFtrZXk6IHN0cmluZ106IE1pc3NpbmdDb250ZXh0IH07XG4gIHB1YmxpYyByZWFkb25seSBhdXRvRGVwbG95OiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZXM6IFN5bnRoZXNpc01lc3NhZ2VbXTtcbiAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcbiAgcHVibGljIHJlYWRvbmx5IG1ldGFkYXRhOiB7IFtwYXRoOiBzdHJpbmddOiBNZXRhZGF0YUVudHJ5W10gfTtcbiAgcHVibGljIHJlYWRvbmx5IGRlcGVuZHNJRHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogeyBbbmFtZTogc3RyaW5nXTogYW55IH07XG5cbiAgcHJpdmF0ZSBfZGVwcz86IENsb3VkQXJ0aWZhY3RbXTsgLy8gY2FjaGVcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IENsb3VkQXNzZW1ibHksIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nLCBhcnRpZmFjdDogQXJ0aWZhY3QpIHtcbiAgICB0aGlzLm1pc3NpbmcgPSBhcnRpZmFjdC5taXNzaW5nIHx8IHsgfTtcbiAgICB0aGlzLnR5cGUgPSBhcnRpZmFjdC50eXBlO1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBFbnZpcm9ubWVudFV0aWxzLnBhcnNlKGFydGlmYWN0LmVudmlyb25tZW50KTtcbiAgICB0aGlzLmF1dG9EZXBsb3kgPSBhcnRpZmFjdC5hdXRvRGVwbG95ID09PSB1bmRlZmluZWQgPyB0cnVlIDogYXJ0aWZhY3QuYXV0b0RlcGxveTtcbiAgICB0aGlzLm1ldGFkYXRhID0gYXJ0aWZhY3QubWV0YWRhdGEgfHwgeyB9O1xuICAgIHRoaXMubWVzc2FnZXMgPSB0aGlzLnJlbmRlck1lc3NhZ2VzKCk7XG4gICAgdGhpcy5kZXBlbmRzSURzID0gYXJ0aWZhY3QuZGVwZW5kZW5jaWVzIHx8IFtdO1xuICAgIHRoaXMucHJvcGVydGllcyA9IGFydGlmYWN0LnByb3BlcnRpZXMgfHwgeyB9O1xuICB9XG5cbiAgcHVibGljIGdldCBkZXBlbmRzKCk6IENsb3VkQXJ0aWZhY3RbXSB7XG4gICAgaWYgKHRoaXMuX2RlcHMpIHsgcmV0dXJuIHRoaXMuX2RlcHM7IH1cblxuICAgIHRoaXMuX2RlcHMgPSB0aGlzLmRlcGVuZHNJRHMubWFwKGlkID0+IHtcbiAgICAgIGNvbnN0IGRlcCA9IHRoaXMuYXNzZW1ibHkuYXJ0aWZhY3RzLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG4gICAgICBpZiAoIWRlcCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFydGlmYWN0ICR7dGhpcy5pZH0gZGVwZW5kcyBvbiBub24tZXhpc3RpbmcgYXJ0aWZhY3QgJHtpZH1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZXA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fZGVwcztcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyTWVzc2FnZXMoKSB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBuZXcgQXJyYXk8U3ludGhlc2lzTWVzc2FnZT4oKTtcblxuICAgIGZvciAoY29uc3QgWyBpZCwgbWV0YWRhdGEgXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm1ldGFkYXRhKSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBtZXRhZGF0YSkge1xuICAgICAgICBsZXQgbGV2ZWw6IFN5bnRoZXNpc01lc3NhZ2VMZXZlbDtcbiAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBXQVJOSU5HX01FVEFEQVRBX0tFWTpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLldBUk5JTkc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVSUk9SX01FVEFEQVRBX0tFWTpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLkVSUk9SO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBJTkZPX01FVEFEQVRBX0tFWTpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLklORk87XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbGV2ZWwsIGVudHJ5LCBpZCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gIH1cbn1cblxuLy8gbmVlZHMgdG8gYmUgZGVmaW5lZCBhdCB0aGUgZW5kIHRvIGF2b2lkIGEgY3ljbGljIGRlcGVuZGVuY3lcbmltcG9ydCB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QnO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtDQUE4RDtBQUM5RCx5Q0FPMkM7QUFFM0M7O0dBRUc7QUFDSCxJQUFZLFlBT1g7QUFQRCxXQUFZLFlBQVk7SUFDdEIsNkJBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsbUVBQW1ELENBQUE7QUFDckQsQ0FBQyxFQVBXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBT3ZCO0FBK0NEOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBMkN4QixZQUFzQyxRQUF1QixFQUFrQixFQUFVLEVBQUUsUUFBMEI7UUFBL0UsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUFrQixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ3ZGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUEvQ0Q7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQXVCLEVBQUUsRUFBVSxFQUFFLFFBQTBCO1FBQ2hGLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNyQixLQUFLLFlBQVksQ0FBQyxzQkFBc0I7Z0JBQ3RDLE9BQU8sSUFBSSxxREFBMkIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRWpFO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQztJQW1DRDs7T0FFRztJQUNILElBQVcsWUFBWTtRQUNyQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBRTtRQUV0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUscUNBQXFDLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDL0U7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxFQUF1QixDQUFDO1FBQ2hELEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUM1RCxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7b0JBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBb0IsQ0FBQztRQUUvQyxLQUFLLE1BQU0sQ0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxFQUFHLENBQUMsRUFBRTtZQUM1RSxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRTtnQkFDNUIsSUFBSSxLQUE0QixDQUFDO2dCQUNqQyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7b0JBQ2xCLEtBQUssK0JBQW9CO3dCQUN2QixLQUFLLEdBQUcsZ0NBQXFCLENBQUMsT0FBTyxDQUFDO3dCQUN0QyxNQUFNO29CQUNSLEtBQUssNkJBQWtCO3dCQUNyQixLQUFLLEdBQUcsZ0NBQXFCLENBQUMsS0FBSyxDQUFDO3dCQUNwQyxNQUFNO29CQUNSLEtBQUssNEJBQWlCO3dCQUNwQixLQUFLLEdBQUcsZ0NBQXFCLENBQUMsSUFBSSxDQUFDO3dCQUNuQyxNQUFNO29CQUNSO3dCQUNFLFNBQVM7aUJBQ1o7Z0JBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNyQztTQUNGO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBN0dELHNDQTZHQztBQUVELDhEQUE4RDtBQUM5RCx1RUFBd0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRVdGlscyB9IGZyb20gJy4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHtcbiAgRVJST1JfTUVUQURBVEFfS0VZLFxuICBJTkZPX01FVEFEQVRBX0tFWSxcbiAgTWV0YWRhdGFFbnRyeSxcbiAgTWV0YWRhdGFFbnRyeVJlc3VsdCxcbiAgU3ludGhlc2lzTWVzc2FnZSxcbiAgU3ludGhlc2lzTWVzc2FnZUxldmVsLFxuICBXQVJOSU5HX01FVEFEQVRBX0tFWSB9IGZyb20gJy4vbWV0YWRhdGEnO1xuXG4vKipcbiAqIFR5cGUgb2YgY2xvdWQgYXJ0aWZhY3QuXG4gKi9cbmV4cG9ydCBlbnVtIEFydGlmYWN0VHlwZSB7XG4gIE5vbmUgPSAnbm9uZScsIC8vIHJlcXVpcmVkIGR1ZSB0byBhIGpzaWkgYnVnXG5cbiAgLyoqXG4gICAqIFRoZSBhcnRpZmFjdCBpcyBhbiBBV1MgQ2xvdWRGb3JtYXRpb24gc3RhY2suXG4gICAqL1xuICBBd3NDbG91ZEZvcm1hdGlvblN0YWNrID0gJ2F3czpjbG91ZGZvcm1hdGlvbjpzdGFjaycsXG59XG5cbi8qKlxuICogQSBtYW5pZmVzdCBmb3IgYSBzaW5nbGUgYXJ0aWZhY3Qgd2l0aGluIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpZmFjdE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGFydGlmYWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogQXJ0aWZhY3RUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgaW50byB3aGljaCB0aGlzIGFydGlmYWN0IGlzIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IHN0cmluZzsgLy8gZm9ybWF0OiBhd3M6Ly9hY2NvdW50L3JlZ2lvblxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGVkIG1ldGFkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiB7IFtwYXRoOiBzdHJpbmddOiBNZXRhZGF0YUVudHJ5W10gfTtcblxuICAvKipcbiAgICogSURzIG9mIGFydGlmYWN0cyB0aGF0IG11c3QgYmUgZGVwbG95ZWQgYmVmb3JlIHRoaXMgYXJ0aWZhY3QuXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHNldCBvZiBwcm9wZXJ0aWVzIGZvciB0aGlzIGFydGlmYWN0IChkZXBlbmRzIG9uIHR5cGUpXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogeyBbbmFtZTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogQXJ0aWZhY3QgcHJvcGVydGllcyBmb3IgQ2xvdWRGb3JtYXRpb24gc3RhY2tzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nsb3VkRm9ybWF0aW9uU3RhY2tQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIEEgZmlsZSByZWxhdGl2ZSB0byB0aGUgYXNzZW1ibHkgcm9vdCB3aGljaCBjb250YWlucyB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgZm9yIHRoaXMgc3RhY2suXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZUZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWVzIGZvciBDbG91ZEZvcm1hdGlvbiBzdGFjayBwYXJhbWV0ZXJzIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB3aGVuIHRoZSBzdGFjayBpcyBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhcnRpZmFjdCB3aXRoaW4gYSBjbG91ZCBhc3NlbWJseS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkQXJ0aWZhY3Qge1xuICAvKipcbiAgICogUmV0dXJucyBhIHN1YmNsYXNzIG9mIGBDbG91ZEFydGlmYWN0YCBiYXNlZCBvbiB0aGUgYXJ0aWZhY3QgdHlwZSBkZWZpbmVkIGluIHRoZSBhcnRpZmFjdCBtYW5pZmVzdC5cbiAgICogQHBhcmFtIGFzc2VtYmx5IFRoZSBjbG91ZCBhc3NlbWJseSBmcm9tIHdoaWNoIHRvIGxvYWQgdGhlIGFydGlmYWN0XG4gICAqIEBwYXJhbSBpZCBUaGUgYXJ0aWZhY3QgSURcbiAgICogQHBhcmFtIGFydGlmYWN0IFRoZSBhcnRpZmFjdCBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBpZDogc3RyaW5nLCBhcnRpZmFjdDogQXJ0aWZhY3RNYW5pZmVzdCk6IENsb3VkQXJ0aWZhY3Qge1xuICAgIHN3aXRjaCAoYXJ0aWZhY3QudHlwZSkge1xuICAgICAgY2FzZSBBcnRpZmFjdFR5cGUuQXdzQ2xvdWRGb3JtYXRpb25TdGFjazpcbiAgICAgICAgcmV0dXJuIG5ldyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgYXJ0aWZhY3QgdHlwZTogJHthcnRpZmFjdC50eXBlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYXJ0aWZhY3QncyBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1hbmlmZXN0OiBBcnRpZmFjdE1hbmlmZXN0O1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIG1lc3NhZ2VzIGV4dHJhY3RlZCBmcm9tIHRoZSBhcnRpZmFjdCdzIG1ldGFkYXRhLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2VzOiBTeW50aGVzaXNNZXNzYWdlW107XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBpbnRvIHdoaWNoIHRvIGRlcGxveSB0aGlzIGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBkZXBlbmRlbmNpZXMuIFVzZWQgd2hlbiB0b3BvbG9naWNhbGx5IHNvcnRpbmcgdGhlIGFydGlmYWN0cyB3aXRoaW4gdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBfZGVwZW5kZW5jeUlEczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENhY2hlIG9mIHJlc29sdmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIHByaXZhdGUgX2RlcHM/OiBDbG91ZEFydGlmYWN0W107XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcsIG1hbmlmZXN0OiBBcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgdGhpcy5tYW5pZmVzdCA9IG1hbmlmZXN0O1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBFbnZpcm9ubWVudFV0aWxzLnBhcnNlKG1hbmlmZXN0LmVudmlyb25tZW50KTtcbiAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5yZW5kZXJNZXNzYWdlcygpO1xuICAgIHRoaXMuX2RlcGVuZGVuY3lJRHMgPSBtYW5pZmVzdC5kZXBlbmRlbmNpZXMgfHwgW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgdGhlIGFydGlmYWN0cyB0aGF0IHRoaXMgYXJ0aWZhY3QgZGVwZW5kcyBvbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVwZW5kZW5jaWVzKCk6IENsb3VkQXJ0aWZhY3RbXSB7XG4gICAgaWYgKHRoaXMuX2RlcHMpIHsgcmV0dXJuIHRoaXMuX2RlcHM7IH1cblxuICAgIHRoaXMuX2RlcHMgPSB0aGlzLl9kZXBlbmRlbmN5SURzLm1hcChpZCA9PiB7XG4gICAgICBjb25zdCBkZXAgPSB0aGlzLmFzc2VtYmx5LmFydGlmYWN0cy5maW5kKGEgPT4gYS5pZCA9PT0gaWQpO1xuICAgICAgaWYgKCFkZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBcnRpZmFjdCAke3RoaXMuaWR9IGRlcGVuZHMgb24gbm9uLWV4aXN0aW5nIGFydGlmYWN0ICR7aWR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVwO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2RlcHM7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYWxsIHRoZSBtZXRhZGF0YSBlbnRyaWVzIG9mIGEgc3BlY2lmaWMgdHlwZSBpbiB0aGlzIGFydGlmYWN0LlxuICAgKiBAcGFyYW0gdHlwZVxuICAgKi9cbiAgcHVibGljIGZpbmRNZXRhZGF0YUJ5VHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8TWV0YWRhdGFFbnRyeVJlc3VsdD4oKTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgT2JqZWN0LmtleXModGhpcy5tYW5pZmVzdC5tZXRhZGF0YSB8fCB7fSkpIHtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgKHRoaXMubWFuaWZlc3QubWV0YWRhdGEgfHwge30pW3BhdGhdKSB7XG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSB0eXBlKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goeyBwYXRoLCAuLi5lbnRyeSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJNZXNzYWdlcygpIHtcbiAgICBjb25zdCBtZXNzYWdlcyA9IG5ldyBBcnJheTxTeW50aGVzaXNNZXNzYWdlPigpO1xuXG4gICAgZm9yIChjb25zdCBbIGlkLCBtZXRhZGF0YSBdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWFuaWZlc3QubWV0YWRhdGEgfHwgeyB9KSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBtZXRhZGF0YSkge1xuICAgICAgICBsZXQgbGV2ZWw6IFN5bnRoZXNpc01lc3NhZ2VMZXZlbDtcbiAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBXQVJOSU5HX01FVEFEQVRBX0tFWTpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLldBUk5JTkc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVSUk9SX01FVEFEQVRBX0tFWTpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLkVSUk9SO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBJTkZPX01FVEFEQVRBX0tFWTpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLklORk87XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbGV2ZWwsIGVudHJ5LCBpZCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gIH1cbn1cblxuLy8gbmVlZHMgdG8gYmUgZGVmaW5lZCBhdCB0aGUgZW5kIHRvIGF2b2lkIGEgY3ljbGljIGRlcGVuZGVuY3lcbmltcG9ydCB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QnO1xuIl19

@@ -1,3 +0,6 @@

import { Artifact, CloudArtifact } from './cloud-artifact';
import { ArtifactManifest, CloudArtifact } from './cloud-artifact';
import { CloudFormationStackArtifact } from './cloudformation-artifact';
/**
* A manifest which describes the cloud assembly.
*/
export interface AssemblyManifest {

@@ -12,5 +15,10 @@ /**

readonly artifacts?: {
[id: string]: Artifact;
[id: string]: ArtifactManifest;
};
/**
* Missing context information. If this field has values, it means that the
* cloud assembly is not complete and should not be deployed.
*/
readonly missing?: MissingContext[];
/**
* Runtime information.

@@ -20,28 +28,85 @@ */

}
/**
* Represents a deployable cloud application.
*/
export declare class CloudAssembly {
/**
* The root directory of the cloud assembly.
*/
readonly directory: string;
/**
* The schema version of the assembly manifest.
*/
readonly version: string;
/**
* All artifacts included in this assembly.
*/
readonly artifacts: CloudArtifact[];
readonly version: string;
readonly missing?: {
[key: string]: MissingContext;
};
/**
* Runtime information such as module versions used to synthesize this assembly.
*/
readonly runtime: RuntimeInfo;
/**
* The raw assembly manifest.
*/
readonly manifest: AssemblyManifest;
/**
* Reads a cloud assembly from the specified directory.
* @param directory The root directory of the assembly.
*/
constructor(directory: string);
/**
* Attempts to find an artifact with a specific identity.
* @returns A `CloudArtifact` object or `undefined` if the artifact does not exist in this assembly.
* @param id The artifact ID
*/
tryGetArtifact(id: string): CloudArtifact | undefined;
getStack(id: string): CloudFormationStackArtifact;
readJson(filePath: string): any;
/**
* Returns a CloudFormation stack artifact from this assembly.
* @param stackName the name of the CloudFormation stack.
* @throws if there is no stack artifact by that name
* @returns a `CloudFormationStackArtifact` object.
*/
getStack(stackName: string): CloudFormationStackArtifact;
/**
* @returns all the CloudFormation stack artifacts that are included in this assembly.
*/
readonly stacks: CloudFormationStackArtifact[];
private validateDeps;
private renderArtifacts;
private renderMissing;
}
/**
* Can be used to build a cloud assembly.
*/
export declare class CloudAssemblyBuilder {
/**
* The root directory of the resulting cloud assembly.
*/
readonly outdir: string;
private readonly artifacts;
private readonly missing;
/**
* Initializes a cloud assembly builder.
* @param outdir The output directory, uses temporary directory if undefined
*/
constructor(outdir?: string);
addArtifact(name: string, artifact: Artifact): void;
build(options?: BuildOptions): CloudAssembly;
/**
* Adds an artifact into the cloud assembly.
* @param id The ID of the artifact.
* @param manifest The artifact manifest
*/
addArtifact(id: string, manifest: ArtifactManifest): void;
/**
* Reports that some context is missing in order for this cloud assembly to be fully synthesized.
* @param missing Missing context information.
*/
addMissing(missing: MissingContext): void;
/**
* Finalizes the cloud assembly into the output directory returns a
* `CloudAssembly` object that can be used to inspect the assembly.
* @param options
*/
build(options?: AssemblyBuildOptions): CloudAssembly;
}
export interface BuildOptions {
export interface AssemblyBuildOptions {
/**

@@ -68,3 +133,13 @@ * Include runtime information (module versions) in manifest.

export interface MissingContext {
/**
* The missing context key.
*/
readonly key: string;
/**
* The provider from which we expect this context key to be obtained.
*/
readonly provider: string;
/**
* A set of provider-specific options.
*/
readonly props: {

@@ -71,0 +146,0 @@ account?: string;

@@ -14,10 +14,16 @@ "use strict";

const MANIFEST_FILE = 'manifest.json';
/**
* Represents a deployable cloud application.
*/
class CloudAssembly {
/**
* Reads a cloud assembly from the specified directory.
* @param directory The root directory of the assembly.
*/
constructor(directory) {
this.directory = directory;
this.manifest = this.readJson(MANIFEST_FILE);
this.manifest = JSON.parse(fs.readFileSync(path.join(directory, MANIFEST_FILE), 'UTF-8'));
this.version = this.manifest.version;
versioning_1.verifyManifestVersion(this.version);
this.artifacts = this.renderArtifacts();
this.missing = this.renderMissing();
this.runtime = this.manifest.runtime || { libraries: {} };

@@ -27,18 +33,29 @@ // force validation of deps by accessing 'depends' on all artifacts

}
/**
* Attempts to find an artifact with a specific identity.
* @returns A `CloudArtifact` object or `undefined` if the artifact does not exist in this assembly.
* @param id The artifact ID
*/
tryGetArtifact(id) {
return this.stacks.find(a => a.id === id);
}
getStack(id) {
const artifact = this.tryGetArtifact(id);
/**
* Returns a CloudFormation stack artifact from this assembly.
* @param stackName the name of the CloudFormation stack.
* @throws if there is no stack artifact by that name
* @returns a `CloudFormationStackArtifact` object.
*/
getStack(stackName) {
const artifact = this.tryGetArtifact(stackName);
if (!artifact) {
throw new Error(`Unable to find artifact with id "${id}"`);
throw new Error(`Unable to find artifact with id "${stackName}"`);
}
if (!(artifact instanceof cloudformation_artifact_1.CloudFormationStackArtifact)) {
throw new Error(`Artifact ${id} is not a CloudFormation stack`);
throw new Error(`Artifact ${stackName} is not a CloudFormation stack`);
}
return artifact;
}
readJson(filePath) {
return JSON.parse(fs.readFileSync(path.join(this.directory, filePath), 'utf-8'));
}
/**
* @returns all the CloudFormation stack artifacts that are included in this assembly.
*/
get stacks() {

@@ -55,3 +72,3 @@ const result = new Array();

for (const artifact of this.artifacts) {
ignore(artifact.depends);
ignore(artifact.dependencies);
}

@@ -64,18 +81,17 @@ }

}
return toposort_1.topologicalSort(result, x => x.id, x => x.dependsIDs);
return toposort_1.topologicalSort(result, x => x.id, x => x._dependencyIDs);
}
renderMissing() {
const missing = {};
for (const artifact of this.artifacts) {
for (const [key, m] of Object.entries(artifact.missing)) {
missing[key] = m;
}
}
return Object.keys(missing).length > 0 ? missing : undefined;
}
}
exports.CloudAssembly = CloudAssembly;
/**
* Can be used to build a cloud assembly.
*/
class CloudAssemblyBuilder {
/**
* Initializes a cloud assembly builder.
* @param outdir The output directory, uses temporary directory if undefined
*/
constructor(outdir) {
this.artifacts = {};
this.missing = new Array();
this.outdir = outdir || fs.mkdtempSync(path.join(os.tmpdir(), 'cdk.out'));

@@ -95,5 +111,22 @@ // we leverage the fact that outdir is long-lived to avoid staging assets into it

}
addArtifact(name, artifact) {
this.artifacts[name] = filterUndefined(artifact);
/**
* Adds an artifact into the cloud assembly.
* @param id The ID of the artifact.
* @param manifest The artifact manifest
*/
addArtifact(id, manifest) {
this.artifacts[id] = filterUndefined(manifest);
}
/**
* Reports that some context is missing in order for this cloud assembly to be fully synthesized.
* @param missing Missing context information.
*/
addMissing(missing) {
this.missing.push(missing);
}
/**
* Finalizes the cloud assembly into the output directory returns a
* `CloudAssembly` object that can be used to inspect the assembly.
* @param options
*/
build(options = {}) {

@@ -103,3 +136,4 @@ const manifest = filterUndefined({

artifacts: this.artifacts,
runtime: options.runtimeInfo
runtime: options.runtimeInfo,
missing: this.missing.length > 0 ? this.missing : undefined
});

@@ -110,3 +144,3 @@ const manifestFilePath = path.join(this.outdir, MANIFEST_FILE);

// need a new version, we'll emit the legacy manifest with only "version".
// this will result in an error "CDK Toolkit >= 0.33.0 is required in order to interact with this program."
// this will result in an error "CDK Toolkit >= 0.34.0 is required in order to interact with this program."
fs.writeFileSync(path.join(this.outdir, 'cdk.out'), JSON.stringify({ version: versioning_1.CLOUD_ASSEMBLY_VERSION }));

@@ -139,2 +173,2 @@ return new CloudAssembly(this.outdir);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUEwQjtBQUMxQix5QkFBMEI7QUFDMUIsNkJBQThCO0FBQzlCLHFEQUEyRDtBQUMzRCx1RUFBd0U7QUFDeEUseUNBQTZDO0FBQzdDLDZDQUE2RTtBQW1CN0U7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7QUFFdEMsTUFBYSxhQUFhO0lBT3hCLFlBQTRCLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDckMsa0NBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRyxFQUFFLENBQUM7UUFFM0QsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sY0FBYyxDQUFDLEVBQVU7UUFDOUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxFQUFVO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFB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Q0gsU0FBUyxlQUFlLENBQUMsR0FBUTtJQUMvQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDdEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3RFO0lBRUQsSUFBSSxPQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO1FBQzVCLE1BQU0sR0FBRyxHQUFRLEVBQUcsQ0FBQztRQUNyQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQ3ZCLFNBQVM7YUFDVjtZQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLEdBQUcsQ0FBQztLQUNaO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsRUFBTztJQUNyQixPQUFPO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5pbXBvcnQgb3MgPSByZXF1aXJlKCdvcycpO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5pbXBvcnQgeyBBcnRpZmFjdCwgQ2xvdWRBcnRpZmFjdCB9IGZyb20gJy4vY2xvdWQtYXJ0aWZhY3QnO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbi1hcnRpZmFjdCc7XG5pbXBvcnQgeyB0b3BvbG9naWNhbFNvcnQgfSBmcm9tICcuL3RvcG9zb3J0JztcbmltcG9ydCB7IENMT1VEX0FTU0VNQkxZX1ZFUlNJT04sIHZlcmlmeU1hbmlmZXN0VmVyc2lvbiB9IGZyb20gJy4vdmVyc2lvbmluZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlNYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBQcm90b2NvbCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXQgb2YgYXJ0aWZhY3RzIGluIHRoaXMgYXNzZW1ibHkuXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdHM/OiB7IFtpZDogc3RyaW5nXTogQXJ0aWZhY3QgfTtcblxuICAvKipcbiAgICogUnVudGltZSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBSdW50aW1lSW5mbztcbn1cblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcm9vdCBtYW5pZmVzdCBmaWxlIG9mIHRoZSBhc3NlbWJseS5cbiAqL1xuY29uc3QgTUFOSUZFU1RfRklMRSA9ICdtYW5pZmVzdC5qc29uJztcblxuZXhwb3J0IGNsYXNzIENsb3VkQXNzZW1ibHkge1xuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWZhY3RzOiBDbG91ZEFydGlmYWN0W107XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBtaXNzaW5nPzogeyBba2V5OiBzdHJpbmddOiBNaXNzaW5nQ29udGV4dCB9O1xuICBwdWJsaWMgcmVhZG9ubHkgcnVudGltZTogUnVudGltZUluZm87XG4gIHB1YmxpYyByZWFkb25seSBtYW5pZmVzdDogQXNzZW1ibHlNYW5pZmVzdDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmcpIHtcbiAgICB0aGlzLm1hbmlmZXN0ID0gdGhpcy5yZWFkSnNvbihNQU5JRkVTVF9GSUxFKTtcblxuICAgIHRoaXMudmVyc2lvbiA9IHRoaXMubWFuaWZlc3QudmVyc2lvbjtcbiAgICB2ZXJpZnlNYW5pZmVzdFZlcnNpb24odGhpcy52ZXJzaW9uKTtcblxuICAgIHRoaXMuYXJ0aWZhY3RzID0gdGhpcy5yZW5kZXJBcnRpZmFjdHMoKTtcbiAgICB0aGlzLm1pc3NpbmcgPSB0aGlzLnJlbmRlck1pc3NpbmcoKTtcbiAgICB0aGlzLnJ1bnRpbWUgPSB0aGlzLm1hbmlmZXN0LnJ1bnRpbWUgfHwgeyBsaWJyYXJpZXM6IHsgfSB9O1xuXG4gICAgLy8gZm9yY2UgdmFsaWRhdGlvbiBvZiBkZXBzIGJ5IGFjY2Vzc2luZyAnZGVwZW5kcycgb24gYWxsIGFydGlmYWN0c1xuICAgIHRoaXMudmFsaWRhdGVEZXBzKCk7XG4gIH1cblxuICBwdWJsaWMgdHJ5R2V0QXJ0aWZhY3QoaWQ6IHN0cmluZyk6IENsb3VkQXJ0aWZhY3QgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0YWNrcy5maW5kKGEgPT4gYS5pZCA9PT0gaWQpO1xuICB9XG5cbiAgcHVibGljIGdldFN0YWNrKGlkOiBzdHJpbmcpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Qge1xuICAgIGNvbnN0IGFydGlmYWN0ID0gdGhpcy50cnlHZXRBcnRpZmFjdChpZCk7XG4gICAgaWYgKCFhcnRpZmFjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZmluZCBhcnRpZmFjdCB3aXRoIGlkIFwiJHtpZH1cImApO1xuICAgIH1cblxuICAgIGlmICghKGFydGlmYWN0IGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBcnRpZmFjdCAke2lkfSBpcyBub3QgYSBDbG91ZEZvcm1hdGlvbiBzdGFja2ApO1xuICAgIH1cblxuICAgIHJldHVybiBhcnRpZmFjdDtcbiAgfVxuXG4gIHB1YmxpYyByZWFkSnNvbihmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbih0aGlzLmRpcmVjdG9yeSwgZmlsZVBhdGgpLCAndXRmLTgnKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YWNrcygpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdD4oKTtcbiAgICBmb3IgKGNvbnN0IGEgb2YgdGhpcy5hcnRpZmFjdHMpIHtcbiAgICAgIGlmIChhIGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZURlcHMoKSB7XG4gICAgZm9yIChjb25zdCBhcnRpZmFjdCBvZiB0aGlzLmFydGlmYWN0cykge1xuICAgICAgaWdub3JlKGFydGlmYWN0LmRlcGVuZHMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQXJ0aWZhY3RzKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxDbG91ZEFydGlmYWN0PigpO1xuICAgIGZvciAoY29uc3QgWyBuYW1lLCBhcnRpZmFjdCBdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWFuaWZlc3QuYXJ0aWZhY3RzIHx8IHsgfSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKENsb3VkQXJ0aWZhY3QuZnJvbSh0aGlzLCBuYW1lLCBhcnRpZmFjdCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0b3BvbG9naWNhbFNvcnQocmVzdWx0LCB4ID0+IHguaWQsIHggPT4geC5kZXBlbmRzSURzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyTWlzc2luZygpIHtcbiAgICBjb25zdCBtaXNzaW5nOiB7IFtrZXk6IHN0cmluZ106IE1pc3NpbmdDb250ZXh0IH0gPSB7IH07XG4gICAgZm9yIChjb25zdCBhcnRpZmFjdCBvZiB0aGlzLmFydGlmYWN0cykge1xuICAgICAgZm9yIChjb25zdCBbIGtleSwgbSBdIG9mIE9iamVjdC5lbnRyaWVzKGFydGlmYWN0Lm1pc3NpbmcpKSB7XG4gICAgICAgIG1pc3Npbmdba2V5XSA9IG07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG1pc3NpbmcpLmxlbmd0aCA+IDAgPyBtaXNzaW5nIDogdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbG91ZEFzc2VtYmx5QnVpbGRlciB7XG4gIHB1YmxpYyByZWFkb25seSBvdXRkaXI6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFydGlmYWN0czogeyBbaWQ6IHN0cmluZ106IEFydGlmYWN0IH0gPSB7IH07XG5cbiAgY29uc3RydWN0b3Iob3V0ZGlyPzogc3RyaW5nKSB7XG4gICAgdGhpcy5vdXRkaXIgPSBvdXRkaXIgfHwgZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrLm91dCcpKTtcblxuICAgIC8vIHdlIGxldmVyYWdlIHRoZSBmYWN0IHRoYXQgb3V0ZGlyIGlzIGxvbmctbGl2ZWQgdG8gYXZvaWQgc3RhZ2luZyBhc3NldHMgaW50byBpdFxuICAgIC8vIHRoYXQgd2VyZSBhbHJlYWR5IHN0YWdlZCAoY29weWluZyBjYW4gYmUgZXhwZW5zaXZlKS4gdGhpcyBpcyBhY2hpZXZlZCBieSB0aGUgZmFjdFxuICAgIC8vIHRoYXQgYXNzZXRzIHVzZSBhIHNvdXJjZSBoYXNoIGFzIHRoZWlyIG5hbWUuIG90aGVyIGFydGlmYWN0cywgYW5kIHRoZSBtYW5pZmVzdCBpdHNlbGYsXG4gICAgLy8gd2lsbCBvdmVyd3JpdGUgZXhpc3RpbmcgZmlsZXMgYXMgbmVlZGVkLlxuXG4gICAgaWYgKGZzLmV4aXN0c1N5bmModGhpcy5vdXRkaXIpKSB7XG4gICAgICBpZiAoIWZzLnN0YXRTeW5jKHRoaXMub3V0ZGlyKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLm91dGRpcn0gbXVzdCBiZSBhIGRpcmVjdG9yeWApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmcy5ta2RpclN5bmModGhpcy5vdXRkaXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRBcnRpZmFjdChuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBBcnRpZmFjdCkge1xuICAgIHRoaXMuYXJ0aWZhY3RzW25hbWVdID0gZmlsdGVyVW5kZWZpbmVkKGFydGlmYWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZChvcHRpb25zOiBCdWlsZE9wdGlvbnMgPSB7IH0pOiBDbG91ZEFzc2VtYmx5IHtcbiAgICBjb25zdCBtYW5pZmVzdDogQXNzZW1ibHlNYW5pZmVzdCA9IGZpbHRlclVuZGVmaW5lZCh7XG4gICAgICB2ZXJzaW9uOiBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OLFxuICAgICAgYXJ0aWZhY3RzOiB0aGlzLmFydGlmYWN0cyxcbiAgICAgIHJ1bnRpbWU6IG9wdGlvbnMucnVudGltZUluZm9cbiAgICB9KTtcblxuICAgIGNvbnN0IG1hbmlmZXN0RmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRkaXIsIE1BTklGRVNUX0ZJTEUpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMobWFuaWZlc3RGaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QsIHVuZGVmaW5lZCwgMikpO1xuXG4gICAgLy8gXCJiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVwiOiBpbiBvcmRlciBmb3IgdGhlIG9sZCBDTEkgdG8gdGVsbCB0aGUgdXNlciB0aGV5XG4gICAgLy8gbmVlZCBhIG5ldyB2ZXJzaW9uLCB3ZSdsbCBlbWl0IHRoZSBsZWdhY3kgbWFuaWZlc3Qgd2l0aCBvbmx5IFwidmVyc2lvblwiLlxuICAgIC8vIHRoaXMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgXCJDREsgVG9vbGtpdCA+PSAwLjMzLjAgaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIHByb2dyYW0uXCJcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbih0aGlzLm91dGRpciwgJ2Nkay5vdXQnKSwgSlNPTi5zdHJpbmdpZnkoeyB2ZXJzaW9uOiBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OIH0pKTtcblxuICAgIHJldHVybiBuZXcgQ2xvdWRBc3NlbWJseSh0aGlzLm91dGRpcik7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZE9wdGlvbnMge1xuICAvKipcbiAgICogSW5jbHVkZSBydW50aW1lIGluZm9ybWF0aW9uIChtb2R1bGUgdmVyc2lvbnMpIGluIG1hbmlmZXN0LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBydW50aW1lSW5mbz86IFJ1bnRpbWVJbmZvO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhcHBsaWNhdGlvbidzIHJ1bnRpbWUgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsaWJyYXJpZXMgbG9hZGVkIGluIHRoZSBhcHBsaWNhdGlvbiwgYXNzb2NpYXRlZCB3aXRoIHRoZWlyIHZlcnNpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlicmFyaWVzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWlzc2luZyBwaWVjZSBvZiBjb250ZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcHM6IHtcbiAgICBhY2NvdW50Pzogc3RyaW5nO1xuICAgIHJlZ2lvbj86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGNvcHkgb2YgYG9iamAgd2l0aG91dCB1bmRlZmluZWQgdmFsdWVzIGluIG1hcHMgb3IgYXJyYXlzLlxuICovXG5mdW5jdGlvbiBmaWx0ZXJVbmRlZmluZWQob2JqOiBhbnkpOiBhbnkge1xuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5maWx0ZXIoeCA9PiB4ICE9PSB1bmRlZmluZWQpLm1hcCh4ID0+IGZpbHRlclVuZGVmaW5lZCh4KSk7XG4gIH1cblxuICBpZiAodHlwZW9mKG9iaikgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgcmV0OiBhbnkgPSB7IH07XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXRba2V5XSA9IGZpbHRlclVuZGVmaW5lZCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBpZ25vcmUoX3g6IGFueSkge1xuICByZXR1cm47XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUEwQjtBQUMxQix5QkFBMEI7QUFDMUIsNkJBQThCO0FBQzlCLHFEQUFtRTtBQUNuRSx1RUFBd0U7QUFDeEUseUNBQTZDO0FBQzdDLDZDQUE2RTtBQTRCN0U7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUEwQnhCOzs7T0FHRztJQUNILFlBQVksU0FBaUI7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUUxRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3JDLGtDQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUcsRUFBRSxDQUFDO1FBRTNELG1FQUFtRTtRQUNuRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsRUFBVTtRQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFD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UyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEU7SUFFRCxJQUFJLE9BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDNUIsTUFBTSxHQUFHLEdBQVEsRUFBRyxDQUFDO1FBQ3JCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDdkIsU0FBUzthQUNWO1lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxFQUFPO0lBQ3JCLE9BQU87QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmltcG9ydCBvcyA9IHJlcXVpcmUoJ29zJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCB7IEFydGlmYWN0TWFuaWZlc3QsIENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QnO1xuaW1wb3J0IHsgdG9wb2xvZ2ljYWxTb3J0IH0gZnJvbSAnLi90b3Bvc29ydCc7XG5pbXBvcnQgeyBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OLCB2ZXJpZnlNYW5pZmVzdFZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb25pbmcnO1xuXG4vKipcbiAqIEEgbWFuaWZlc3Qgd2hpY2ggZGVzY3JpYmVzIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseU1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFByb3RvY29sIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNldCBvZiBhcnRpZmFjdHMgaW4gdGhpcyBhc3NlbWJseS5cbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0cz86IHsgW2lkOiBzdHJpbmddOiBBcnRpZmFjdE1hbmlmZXN0IH07XG5cbiAgLyoqXG4gICAqIE1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi4gSWYgdGhpcyBmaWVsZCBoYXMgdmFsdWVzLCBpdCBtZWFucyB0aGF0IHRoZVxuICAgKiBjbG91ZCBhc3NlbWJseSBpcyBub3QgY29tcGxldGUgYW5kIHNob3VsZCBub3QgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBtaXNzaW5nPzogTWlzc2luZ0NvbnRleHRbXTtcblxuICAvKipcbiAgICogUnVudGltZSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBSdW50aW1lSW5mbztcbn1cblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcm9vdCBtYW5pZmVzdCBmaWxlIG9mIHRoZSBhc3NlbWJseS5cbiAqL1xuY29uc3QgTUFOSUZFU1RfRklMRSA9ICdtYW5pZmVzdC5qc29uJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGVwbG95YWJsZSBjbG91ZCBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkQXNzZW1ibHkge1xuICAvKipcbiAgICogVGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNjaGVtYSB2ZXJzaW9uIG9mIHRoZSBhc3NlbWJseSBtYW5pZmVzdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbCBhcnRpZmFjdHMgaW5jbHVkZWQgaW4gdGhpcyBhc3NlbWJseS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcnRpZmFjdHM6IENsb3VkQXJ0aWZhY3RbXTtcblxuICAvKipcbiAgICogUnVudGltZSBpbmZvcm1hdGlvbiBzdWNoIGFzIG1vZHVsZSB2ZXJzaW9ucyB1c2VkIHRvIHN5bnRoZXNpemUgdGhpcyBhc3NlbWJseS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBydW50aW1lOiBSdW50aW1lSW5mbztcblxuICAvKipcbiAgICogVGhlIHJhdyBhc3NlbWJseSBtYW5pZmVzdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYW5pZmVzdDogQXNzZW1ibHlNYW5pZmVzdDtcblxuICAvKipcbiAgICogUmVhZHMgYSBjbG91ZCBhc3NlbWJseSBmcm9tIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LlxuICAgKiBAcGFyYW0gZGlyZWN0b3J5IFRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgYXNzZW1ibHkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihkaXJlY3Rvcnk6IHN0cmluZykge1xuICAgIHRoaXMuZGlyZWN0b3J5ID0gZGlyZWN0b3J5O1xuICAgIHRoaXMubWFuaWZlc3QgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oZGlyZWN0b3J5LCBNQU5JRkVTVF9GSUxFKSwgJ1VURi04JykpO1xuXG4gICAgdGhpcy52ZXJzaW9uID0gdGhpcy5tYW5pZmVzdC52ZXJzaW9uO1xuICAgIHZlcmlmeU1hbmlmZXN0VmVyc2lvbih0aGlzLnZlcnNpb24pO1xuXG4gICAgdGhpcy5hcnRpZmFjdHMgPSB0aGlzLnJlbmRlckFydGlmYWN0cygpO1xuICAgIHRoaXMucnVudGltZSA9IHRoaXMubWFuaWZlc3QucnVudGltZSB8fCB7IGxpYnJhcmllczogeyB9IH07XG5cbiAgICAvLyBmb3JjZSB2YWxpZGF0aW9uIG9mIGRlcHMgYnkgYWNjZXNzaW5nICdkZXBlbmRzJyBvbiBhbGwgYXJ0aWZhY3RzXG4gICAgdGhpcy52YWxpZGF0ZURlcHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBmaW5kIGFuIGFydGlmYWN0IHdpdGggYSBzcGVjaWZpYyBpZGVudGl0eS5cbiAgICogQHJldHVybnMgQSBgQ2xvdWRBcnRpZmFjdGAgb2JqZWN0IG9yIGB1bmRlZmluZWRgIGlmIHRoZSBhcnRpZmFjdCBkb2VzIG5vdCBleGlzdCBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKiBAcGFyYW0gaWQgVGhlIGFydGlmYWN0IElEXG4gICAqL1xuICBwdWJsaWMgdHJ5R2V0QXJ0aWZhY3QoaWQ6IHN0cmluZyk6IENsb3VkQXJ0aWZhY3QgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0YWNrcy5maW5kKGEgPT4gYS5pZCA9PT0gaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdCBmcm9tIHRoaXMgYXNzZW1ibHkuXG4gICAqIEBwYXJhbSBzdGFja05hbWUgdGhlIG5hbWUgb2YgdGhlIENsb3VkRm9ybWF0aW9uIHN0YWNrLlxuICAgKiBAdGhyb3dzIGlmIHRoZXJlIGlzIG5vIHN0YWNrIGFydGlmYWN0IGJ5IHRoYXQgbmFtZVxuICAgKiBAcmV0dXJucyBhIGBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RgIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBnZXRTdGFjayhzdGFja05hbWU6IHN0cmluZyk6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB7XG4gICAgY29uc3QgYXJ0aWZhY3QgPSB0aGlzLnRyeUdldEFydGlmYWN0KHN0YWNrTmFtZSk7XG4gICAgaWYgKCFhcnRpZmFjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZmluZCBhcnRpZmFjdCB3aXRoIGlkIFwiJHtzdGFja05hbWV9XCJgKTtcbiAgICB9XG5cbiAgICBpZiAoIShhcnRpZmFjdCBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXJ0aWZhY3QgJHtzdGFja05hbWV9IGlzIG5vdCBhIENsb3VkRm9ybWF0aW9uIHN0YWNrYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFydGlmYWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGFsbCB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2sgYXJ0aWZhY3RzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoaXMgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN0YWNrcygpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdD4oKTtcbiAgICBmb3IgKGNvbnN0IGEgb2YgdGhpcy5hcnRpZmFjdHMpIHtcbiAgICAgIGlmIChhIGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZURlcHMoKSB7XG4gICAgZm9yIChjb25zdCBhcnRpZmFjdCBvZiB0aGlzLmFydGlmYWN0cykge1xuICAgICAgaWdub3JlKGFydGlmYWN0LmRlcGVuZGVuY2llcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJBcnRpZmFjdHMoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PENsb3VkQXJ0aWZhY3Q+KCk7XG4gICAgZm9yIChjb25zdCBbIG5hbWUsIGFydGlmYWN0IF0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5tYW5pZmVzdC5hcnRpZmFjdHMgfHwgeyB9KSkge1xuICAgICAgcmVzdWx0LnB1c2goQ2xvdWRBcnRpZmFjdC5mcm9tKHRoaXMsIG5hbWUsIGFydGlmYWN0KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvcG9sb2dpY2FsU29ydChyZXN1bHQsIHggPT4geC5pZCwgeCA9PiB4Ll9kZXBlbmRlbmN5SURzKTtcbiAgfVxufVxuXG4vKipcbiAqIENhbiBiZSB1c2VkIHRvIGJ1aWxkIGEgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEFzc2VtYmx5QnVpbGRlciB7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHJlc3VsdGluZyBjbG91ZCBhc3NlbWJseS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvdXRkaXI6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFydGlmYWN0czogeyBbaWQ6IHN0cmluZ106IEFydGlmYWN0TWFuaWZlc3QgfSA9IHsgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBtaXNzaW5nID0gbmV3IEFycmF5PE1pc3NpbmdDb250ZXh0PigpO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhIGNsb3VkIGFzc2VtYmx5IGJ1aWxkZXIuXG4gICAqIEBwYXJhbSBvdXRkaXIgVGhlIG91dHB1dCBkaXJlY3RvcnksIHVzZXMgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpZiB1bmRlZmluZWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKG91dGRpcj86IHN0cmluZykge1xuICAgIHRoaXMub3V0ZGlyID0gb3V0ZGlyIHx8IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nkay5vdXQnKSk7XG5cbiAgICAvLyB3ZSBsZXZlcmFnZSB0aGUgZmFjdCB0aGF0IG91dGRpciBpcyBsb25nLWxpdmVkIHRvIGF2b2lkIHN0YWdpbmcgYXNzZXRzIGludG8gaXRcbiAgICAvLyB0aGF0IHdlcmUgYWxyZWFkeSBzdGFnZWQgKGNvcHlpbmcgY2FuIGJlIGV4cGVuc2l2ZSkuIHRoaXMgaXMgYWNoaWV2ZWQgYnkgdGhlIGZhY3RcbiAgICAvLyB0aGF0IGFzc2V0cyB1c2UgYSBzb3VyY2UgaGFzaCBhcyB0aGVpciBuYW1lLiBvdGhlciBhcnRpZmFjdHMsIGFuZCB0aGUgbWFuaWZlc3QgaXRzZWxmLFxuICAgIC8vIHdpbGwgb3ZlcndyaXRlIGV4aXN0aW5nIGZpbGVzIGFzIG5lZWRlZC5cblxuICAgIGlmIChmcy5leGlzdHNTeW5jKHRoaXMub3V0ZGlyKSkge1xuICAgICAgaWYgKCFmcy5zdGF0U3luYyh0aGlzLm91dGRpcikuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5vdXRkaXJ9IG11c3QgYmUgYSBkaXJlY3RvcnlgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZnMubWtkaXJTeW5jKHRoaXMub3V0ZGlyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBhcnRpZmFjdCBpbnRvIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAgICogQHBhcmFtIGlkIFRoZSBJRCBvZiB0aGUgYXJ0aWZhY3QuXG4gICAqIEBwYXJhbSBtYW5pZmVzdCBUaGUgYXJ0aWZhY3QgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyBhZGRBcnRpZmFjdChpZDogc3RyaW5nLCBtYW5pZmVzdDogQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHRoaXMuYXJ0aWZhY3RzW2lkXSA9IGZpbHRlclVuZGVmaW5lZChtYW5pZmVzdCk7XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0cyB0aGF0IHNvbWUgY29udGV4dCBpcyBtaXNzaW5nIGluIG9yZGVyIGZvciB0aGlzIGNsb3VkIGFzc2VtYmx5IHRvIGJlIGZ1bGx5IHN5bnRoZXNpemVkLlxuICAgKiBAcGFyYW0gbWlzc2luZyBNaXNzaW5nIGNvbnRleHQgaW5mb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgYWRkTWlzc2luZyhtaXNzaW5nOiBNaXNzaW5nQ29udGV4dCkge1xuICAgIHRoaXMubWlzc2luZy5wdXNoKG1pc3NpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmFsaXplcyB0aGUgY2xvdWQgYXNzZW1ibHkgaW50byB0aGUgb3V0cHV0IGRpcmVjdG9yeSByZXR1cm5zIGFcbiAgICogYENsb3VkQXNzZW1ibHlgIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGluc3BlY3QgdGhlIGFzc2VtYmx5LlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGJ1aWxkKG9wdGlvbnM6IEFzc2VtYmx5QnVpbGRPcHRpb25zID0geyB9KTogQ2xvdWRBc3NlbWJseSB7XG4gICAgY29uc3QgbWFuaWZlc3Q6IEFzc2VtYmx5TWFuaWZlc3QgPSBmaWx0ZXJVbmRlZmluZWQoe1xuICAgICAgdmVyc2lvbjogQ0xPVURfQVNTRU1CTFlfVkVSU0lPTixcbiAgICAgIGFydGlmYWN0czogdGhpcy5hcnRpZmFjdHMsXG4gICAgICBydW50aW1lOiBvcHRpb25zLnJ1bnRpbWVJbmZvLFxuICAgICAgbWlzc2luZzogdGhpcy5taXNzaW5nLmxlbmd0aCA+IDAgPyB0aGlzLm1pc3NpbmcgOiB1bmRlZmluZWRcbiAgICB9KTtcblxuICAgIGNvbnN0IG1hbmlmZXN0RmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRkaXIsIE1BTklGRVNUX0ZJTEUpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMobWFuaWZlc3RGaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QsIHVuZGVmaW5lZCwgMikpO1xuXG4gICAgLy8gXCJiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVwiOiBpbiBvcmRlciBmb3IgdGhlIG9sZCBDTEkgdG8gdGVsbCB0aGUgdXNlciB0aGV5XG4gICAgLy8gbmVlZCBhIG5ldyB2ZXJzaW9uLCB3ZSdsbCBlbWl0IHRoZSBsZWdhY3kgbWFuaWZlc3Qgd2l0aCBvbmx5IFwidmVyc2lvblwiLlxuICAgIC8vIHRoaXMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgXCJDREsgVG9vbGtpdCA+PSAwLjM0LjAgaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIHByb2dyYW0uXCJcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbih0aGlzLm91dGRpciwgJ2Nkay5vdXQnKSwgSlNPTi5zdHJpbmdpZnkoeyB2ZXJzaW9uOiBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OIH0pKTtcblxuICAgIHJldHVybiBuZXcgQ2xvdWRBc3NlbWJseSh0aGlzLm91dGRpcik7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseUJ1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHJ1bnRpbWUgaW5mb3JtYXRpb24gKG1vZHVsZSB2ZXJzaW9ucykgaW4gbWFuaWZlc3QuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWVJbmZvPzogUnVudGltZUluZm87XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGFwcGxpY2F0aW9uJ3MgcnVudGltZSBjb21wb25lbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGxpYnJhcmllcyBsb2FkZWQgaW4gdGhlIGFwcGxpY2F0aW9uLCBhc3NvY2lhdGVkIHdpdGggdGhlaXIgdmVyc2lvbnMuXG4gICAqL1xuICByZWFkb25seSBsaWJyYXJpZXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtaXNzaW5nIHBpZWNlIG9mIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlzc2luZ0NvbnRleHQge1xuICAvKipcbiAgICogVGhlIG1pc3NpbmcgY29udGV4dCBrZXkuXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3ZpZGVyIGZyb20gd2hpY2ggd2UgZXhwZWN0IHRoaXMgY29udGV4dCBrZXkgdG8gYmUgb2J0YWluZWQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBwcm92aWRlci1zcGVjaWZpYyBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcHM6IHtcbiAgICBhY2NvdW50Pzogc3RyaW5nO1xuICAgIHJlZ2lvbj86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGNvcHkgb2YgYG9iamAgd2l0aG91dCB1bmRlZmluZWQgdmFsdWVzIGluIG1hcHMgb3IgYXJyYXlzLlxuICovXG5mdW5jdGlvbiBmaWx0ZXJVbmRlZmluZWQob2JqOiBhbnkpOiBhbnkge1xuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5maWx0ZXIoeCA9PiB4ICE9PSB1bmRlZmluZWQpLm1hcCh4ID0+IGZpbHRlclVuZGVmaW5lZCh4KSk7XG4gIH1cblxuICBpZiAodHlwZW9mKG9iaikgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgcmV0OiBhbnkgPSB7IH07XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXRba2V5XSA9IGZpbHRlclVuZGVmaW5lZCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBpZ25vcmUoX3g6IGFueSkge1xuICByZXR1cm47XG59XG4iXX0=
import { AssetMetadataEntry } from './assets';
import { Artifact, CloudArtifact } from './cloud-artifact';
import { ArtifactManifest, CloudArtifact } from './cloud-artifact';
import { CloudAssembly } from './cloud-assembly';
export declare class CloudFormationStackArtifact extends CloudArtifact {
/**
* The CloudFormation template for this stack.
*/
readonly template: any;
/**
* The file name of the template.
*/
readonly templateFile: string;
/**
* The original name as defined in the CDK app.
*/
readonly originalName: string;
readonly logicalIdToPathMap: {
[logicalId: string]: string;
/**
* Any assets associated with this stack.
*/
readonly assets: AssetMetadataEntry[];
/**
* CloudFormation parameters to pass to the stack.
*/
readonly parameters: {
[id: string]: string;
};
readonly assets: AssetMetadataEntry[];
/**
* The name of this stack. This is read/write and can be used to rename the stack.
*/
name: string;
constructor(assembly: CloudAssembly, name: string, artifact: Artifact);
private buildAssets;
private buildLogicalToPathMap;
constructor(assembly: CloudAssembly, name: string, artifact: ArtifactManifest);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const path = require("path");
const assets_1 = require("./assets");

@@ -11,35 +13,11 @@ const cloud_artifact_1 = require("./cloud-artifact");

}
const properties = this.properties;
this.template = this.assembly.readJson(properties.templateFile);
this.originalName = name;
this.name = this.originalName;
this.logicalIdToPathMap = this.buildLogicalToPathMap();
this.assets = this.buildAssets();
const properties = (this.manifest.properties || {});
this.templateFile = properties.templateFile;
this.parameters = properties.parameters || {};
this.name = this.originalName = name;
this.template = JSON.parse(fs.readFileSync(path.join(this.assembly.directory, this.templateFile), 'utf-8'));
this.assets = this.findMetadataByType(assets_1.ASSET_METADATA).map(e => e.data);
}
buildAssets() {
const assets = new Array();
for (const k of Object.keys(this.metadata)) {
for (const entry of this.metadata[k]) {
if (entry.type === assets_1.ASSET_METADATA) {
assets.push(entry.data);
}
}
}
return assets;
}
buildLogicalToPathMap() {
const map = {};
for (const cpath of Object.keys(this.metadata)) {
const md = this.metadata[cpath];
for (const e of md) {
if (e.type === 'aws:cdk:logicalId') {
const logical = e.data;
map[logical] = cpath;
}
}
}
return map;
}
}
exports.CloudFormationStackArtifact = CloudFormationStackArtifact;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFDQUE4RDtBQUM5RCxxREFBNkY7QUFHN0YsTUFBYSwyQkFBNEIsU0FBUSw4QkFBYTtJQVE1RCxZQUFZLFFBQXVCLEVBQUUsSUFBWSxFQUFFLFFBQWtCO1FBQ25FLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtR0FBbUcsQ0FBQyxDQUFDO1NBQ3RIO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQThDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBc0IsQ0FBQztRQUUvQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzFDLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDcEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLHVCQUFjLEVBQUU7b0JBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN6QjthQUNGO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE1BQU0sR0FBRyxHQUE2QixFQUFFLENBQUM7UUFDekMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNsQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLEVBQUU7b0JBQ2xDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQ3ZCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7aUJBQ3RCO2FBQ0Y7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBbERELGtFQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFTU0VUX01FVEFEQVRBLCBBc3NldE1ldGFkYXRhRW50cnkgfSBmcm9tICcuL2Fzc2V0cyc7XG5pbXBvcnQgeyBBcnRpZmFjdCwgQXdzQ2xvdWRGb3JtYXRpb25TdGFja1Byb3BlcnRpZXMsIENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGNsYXNzIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCBleHRlbmRzIENsb3VkQXJ0aWZhY3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGU6IGFueTtcbiAgcHVibGljIHJlYWRvbmx5IG9yaWdpbmFsTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9naWNhbElkVG9QYXRoTWFwOiB7IFtsb2dpY2FsSWQ6IHN0cmluZ106IHN0cmluZyB9O1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRzOiBBc3NldE1ldGFkYXRhRW50cnlbXTtcblxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBBcnRpZmFjdCkge1xuICAgIHN1cGVyKGFzc2VtYmx5LCBuYW1lLCBhcnRpZmFjdCk7XG5cbiAgICBpZiAoIWFydGlmYWN0LnByb3BlcnRpZXMgfHwgIWFydGlmYWN0LnByb3BlcnRpZXMudGVtcGxhdGVGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQ2xvdWRGb3JtYXRpb24gc3RhY2sgYXJ0aWZhY3QuIE1pc3NpbmcgXCJ0ZW1wbGF0ZUZpbGVcIiBwcm9wZXJ0eSBpbiBjbG91ZCBhc3NlbWJseSBtYW5pZmVzdGApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLnByb3BlcnRpZXMgYXMgQXdzQ2xvdWRGb3JtYXRpb25TdGFja1Byb3BlcnRpZXM7XG4gICAgdGhpcy50ZW1wbGF0ZSA9IHRoaXMuYXNzZW1ibHkucmVhZEpzb24ocHJvcGVydGllcy50ZW1wbGF0ZUZpbGUpO1xuICAgIHRoaXMub3JpZ2luYWxOYW1lID0gbmFtZTtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLm9yaWdpbmFsTmFtZTtcbiAgICB0aGlzLmxvZ2ljYWxJZFRvUGF0aE1hcCA9IHRoaXMuYnVpbGRMb2dpY2FsVG9QYXRoTWFwKCk7XG4gICAgdGhpcy5hc3NldHMgPSB0aGlzLmJ1aWxkQXNzZXRzKCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQXNzZXRzKCkge1xuICAgIGNvbnN0IGFzc2V0cyA9IG5ldyBBcnJheTxBc3NldE1ldGFkYXRhRW50cnk+KCk7XG5cbiAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXModGhpcy5tZXRhZGF0YSkpIHtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5tZXRhZGF0YVtrXSkge1xuICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gQVNTRVRfTUVUQURBVEEpIHtcbiAgICAgICAgICBhc3NldHMucHVzaChlbnRyeS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhc3NldHM7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTG9naWNhbFRvUGF0aE1hcCgpIHtcbiAgICBjb25zdCBtYXA6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGZvciAoY29uc3QgY3BhdGggb2YgT2JqZWN0LmtleXModGhpcy5tZXRhZGF0YSkpIHtcbiAgICAgIGNvbnN0IG1kID0gdGhpcy5tZXRhZGF0YVtjcGF0aF07XG4gICAgICBmb3IgKGNvbnN0IGUgb2YgbWQpIHtcbiAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2F3czpjZGs6bG9naWNhbElkJykge1xuICAgICAgICAgIGNvbnN0IGxvZ2ljYWwgPSBlLmRhdGE7XG4gICAgICAgICAgbWFwW2xvZ2ljYWxdID0gY3BhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUEwQjtBQUMxQiw2QkFBOEI7QUFDOUIscUNBQThEO0FBQzlELHFEQUFxRztBQUdyRyxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBK0I1RCxZQUFZLFFBQXVCLEVBQUUsSUFBWSxFQUFFLFFBQTBCO1FBQzNFLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtR0FBbUcsQ0FBQyxDQUFDO1NBQ3RIO1FBQ0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQXFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsSUFBSSxFQUFHLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNGO0FBN0NELGtFQTZDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCB7IEFTU0VUX01FVEFEQVRBLCBBc3NldE1ldGFkYXRhRW50cnkgfSBmcm9tICcuL2Fzc2V0cyc7XG5pbXBvcnQgeyBBcnRpZmFjdE1hbmlmZXN0LCBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcywgQ2xvdWRBcnRpZmFjdCB9IGZyb20gJy4vY2xvdWQtYXJ0aWZhY3QnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vY2xvdWQtYXNzZW1ibHknO1xuXG5leHBvcnQgY2xhc3MgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgZm9yIHRoaXMgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGU6IGFueTtcblxuICAvKipcbiAgICogVGhlIGZpbGUgbmFtZSBvZiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcmlnaW5hbCBuYW1lIGFzIGRlZmluZWQgaW4gdGhlIENESyBhcHAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb3JpZ2luYWxOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFueSBhc3NldHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRzOiBBc3NldE1ldGFkYXRhRW50cnlbXTtcblxuICAvKipcbiAgICogQ2xvdWRGb3JtYXRpb24gcGFyYW1ldGVycyB0byBwYXNzIHRvIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgc3RhY2suIFRoaXMgaXMgcmVhZC93cml0ZSBhbmQgY2FuIGJlIHVzZWQgdG8gcmVuYW1lIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoYXNzZW1ibHk6IENsb3VkQXNzZW1ibHksIG5hbWU6IHN0cmluZywgYXJ0aWZhY3Q6IEFydGlmYWN0TWFuaWZlc3QpIHtcbiAgICBzdXBlcihhc3NlbWJseSwgbmFtZSwgYXJ0aWZhY3QpO1xuXG4gICAgaWYgKCFhcnRpZmFjdC5wcm9wZXJ0aWVzIHx8ICFhcnRpZmFjdC5wcm9wZXJ0aWVzLnRlbXBsYXRlRmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0LiBNaXNzaW5nIFwidGVtcGxhdGVGaWxlXCIgcHJvcGVydHkgaW4gY2xvdWQgYXNzZW1ibHkgbWFuaWZlc3RgKTtcbiAgICB9XG4gICAgY29uc3QgcHJvcGVydGllcyA9ICh0aGlzLm1hbmlmZXN0LnByb3BlcnRpZXMgfHwge30pIGFzIEF3c0Nsb3VkRm9ybWF0aW9uU3RhY2tQcm9wZXJ0aWVzO1xuICAgIHRoaXMudGVtcGxhdGVGaWxlID0gcHJvcGVydGllcy50ZW1wbGF0ZUZpbGU7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcHJvcGVydGllcy5wYXJhbWV0ZXJzIHx8IHsgfTtcblxuICAgIHRoaXMubmFtZSA9IHRoaXMub3JpZ2luYWxOYW1lID0gbmFtZTtcbiAgICB0aGlzLnRlbXBsYXRlID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCB0aGlzLnRlbXBsYXRlRmlsZSksICd1dGYtOCcpKTtcbiAgICB0aGlzLmFzc2V0cyA9IHRoaXMuZmluZE1ldGFkYXRhQnlUeXBlKEFTU0VUX01FVEFEQVRBKS5tYXAoZSA9PiBlLmRhdGEpO1xuICB9XG59XG4iXX0=

@@ -25,4 +25,6 @@ export declare const OUTDIR_ENV = "CDK_OUTDIR";

/**
* If this context key is set, the CDK will stage assets under the specified
* directory. Otherwise, assets will not be staged.
* Omits stack traces from construct metadata entries.
*/
export declare const DISABLE_METADATA_STACK_TRACE = "aws:cdk:disable-stack-trace";

@@ -30,5 +30,7 @@ "use strict";

/**
* If this context key is set, the CDK will stage assets under the specified
* directory. Otherwise, assets will not be staged.
* Omits stack traces from construct metadata entries.
*/
exports.DISABLE_METADATA_STACK_TRACE = 'aws:cdk:disable-stack-trace';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3hhcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjeGFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtGQUFrRjtBQUNsRixtRkFBbUY7QUFDbkYsMEJBQTBCO0FBQ2IsUUFBQSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBQzFCLFFBQUEsV0FBVyxHQUFHLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxpQ0FBaUMsQ0FBQztBQUU3RTs7R0FFRztBQUNVLFFBQUEsMEJBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFFM0U7O0dBRUc7QUFDVSxRQUFBLDRCQUE0QixHQUFHLDhCQUE4QixDQUFDO0FBRTNFOztHQUVHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxtQ0FBbUMsQ0FBQztBQUU3RTs7O0dBR0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLCtCQUErQixDQUFDO0FBRTdFOztHQUVHO0FBQ1UsUUFBQSw0QkFBNEIsR0FBRyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byBlbWl0IHN5bnRoZXNpcyBvdXRwdXRzLiBDREsgZG9lc24ndCBhbGxvdyBvdXRkaXJcbi8vIHRvIGJlIHNwZWNpZmllZCBib3RoIHRocm91Z2ggdGhlIENES19PVVRESVIgZW52aXJvbm1lbnQgdmFyaWFibGUgYW5kIHRoZSB0aHJvdWdoXG4vLyBhd3M6Y2RrOm91dGRpciBjb250ZXh0LlxuZXhwb3J0IGNvbnN0IE9VVERJUl9FTlYgPSAnQ0RLX09VVERJUic7XG5leHBvcnQgY29uc3QgQ09OVEVYVF9FTlYgPSAnQ0RLX0NPTlRFWFRfSlNPTic7XG5cbi8qKlxuICogQ29udGV4dCBwYXJhbWV0ZXIgZm9yIHRoZSBkZWZhdWx0IEFXUyBhY2NvdW50IHRvIHVzZSBpZiBhIHN0YWNrJ3MgZW52aXJvbm1lbnQgaXMgbm90IHNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUNDT1VOVF9DT05URVhUX0tFWSA9ICdhd3M6Y2RrOnRvb2xraXQ6ZGVmYXVsdC1hY2NvdW50JztcblxuLyoqXG4gKiBDb250ZXh0IHBhcmFtZXRlciBmb3IgdGhlIGRlZmF1bHQgQVdTIHJlZ2lvbiB0byB1c2UgaWYgYSBzdGFjaydzIGVudmlyb25tZW50IGlzIG5vdCBzZXQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFR0lPTl9DT05URVhUX0tFWSA9ICdhd3M6Y2RrOnRvb2xraXQ6ZGVmYXVsdC1yZWdpb24nO1xuXG4vKipcbiAqIEVuYWJsZXMgdGhlIGVtYmVkZGluZyBvZiB0aGUgXCJhd3M6Y2RrOnBhdGhcIiBpbiBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBVEhfTUVUQURBVEFfRU5BQkxFX0NPTlRFWFQgPSAnYXdzOmNkazplbmFibGUtcGF0aC1tZXRhZGF0YSc7XG5cbi8qKlxuICogRGlzYWJsZSB0aGUgY29sbGVjdGlvbiBhbmQgcmVwb3J0aW5nIG9mIHZlcnNpb24gaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBESVNBQkxFX1ZFUlNJT05fUkVQT1JUSU5HID0gJ2F3czpjZGs6ZGlzYWJsZS12ZXJzaW9uLXJlcG9ydGluZyc7XG5cbi8qKlxuICogSWYgdGhpcyBpcyBzZXQsIGFzc2V0IHN0YWdpbmcgaXMgZGlzYWJsZWQuIFRoaXMgbWVhbnMgdGhhdCBhc3NldHMgd2lsbCBub3QgYmUgY29waWVkIHRvXG4gKiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYWJzb2x1dGUgc291cmNlIHBhdGhzLlxuICovXG5leHBvcnQgY29uc3QgRElTQUJMRV9BU1NFVF9TVEFHSU5HX0NPTlRFWFQgPSAnYXdzOmNkazpkaXNhYmxlLWFzc2V0LXN0YWdpbmcnO1xuXG4vKipcbiAqIE9taXRzIHN0YWNrIHRyYWNlcyBmcm9tIGNvbnN0cnVjdCBtZXRhZGF0YSBlbnRyaWVzLlxuICovXG5leHBvcnQgY29uc3QgRElTQUJMRV9NRVRBREFUQV9TVEFDS19UUkFDRSA9ICdhd3M6Y2RrOmRpc2FibGUtc3RhY2stdHJhY2UnO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3hhcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjeGFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtGQUFrRjtBQUNsRixtRkFBbUY7QUFDbkYsMEJBQTBCO0FBQ2IsUUFBQSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBQzFCLFFBQUEsV0FBVyxHQUFHLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxpQ0FBaUMsQ0FBQztBQUU3RTs7R0FFRztBQUNVLFFBQUEsMEJBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFFM0U7O0dBRUc7QUFDVSxRQUFBLDRCQUE0QixHQUFHLDhCQUE4QixDQUFDO0FBRTNFOztHQUVHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxtQ0FBbUMsQ0FBQztBQUU3RTs7O0dBR0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLCtCQUErQixDQUFDO0FBRTdFOzs7O0dBSUc7QUFDVSxRQUFBLDRCQUE0QixHQUFHLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gb3V0cHV0IGRpcmVjdG9yeSBpbnRvIHdoaWNoIHRvIGVtaXQgc3ludGhlc2lzIG91dHB1dHMuIENESyBkb2Vzbid0IGFsbG93IG91dGRpclxuLy8gdG8gYmUgc3BlY2lmaWVkIGJvdGggdGhyb3VnaCB0aGUgQ0RLX09VVERJUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbmQgdGhlIHRocm91Z2hcbi8vIGF3czpjZGs6b3V0ZGlyIGNvbnRleHQuXG5leHBvcnQgY29uc3QgT1VURElSX0VOViA9ICdDREtfT1VURElSJztcbmV4cG9ydCBjb25zdCBDT05URVhUX0VOViA9ICdDREtfQ09OVEVYVF9KU09OJztcblxuLyoqXG4gKiBDb250ZXh0IHBhcmFtZXRlciBmb3IgdGhlIGRlZmF1bHQgQVdTIGFjY291bnQgdG8gdXNlIGlmIGEgc3RhY2sncyBlbnZpcm9ubWVudCBpcyBub3Qgc2V0LlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9BQ0NPVU5UX0NPTlRFWFRfS0VZID0gJ2F3czpjZGs6dG9vbGtpdDpkZWZhdWx0LWFjY291bnQnO1xuXG4vKipcbiAqIENvbnRleHQgcGFyYW1ldGVyIGZvciB0aGUgZGVmYXVsdCBBV1MgcmVnaW9uIHRvIHVzZSBpZiBhIHN0YWNrJ3MgZW52aXJvbm1lbnQgaXMgbm90IHNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVHSU9OX0NPTlRFWFRfS0VZID0gJ2F3czpjZGs6dG9vbGtpdDpkZWZhdWx0LXJlZ2lvbic7XG5cbi8qKlxuICogRW5hYmxlcyB0aGUgZW1iZWRkaW5nIG9mIHRoZSBcImF3czpjZGs6cGF0aFwiIGluIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIG1ldGFkYXRhLlxuICovXG5leHBvcnQgY29uc3QgUEFUSF9NRVRBREFUQV9FTkFCTEVfQ09OVEVYVCA9ICdhd3M6Y2RrOmVuYWJsZS1wYXRoLW1ldGFkYXRhJztcblxuLyoqXG4gKiBEaXNhYmxlIHRoZSBjb2xsZWN0aW9uIGFuZCByZXBvcnRpbmcgb2YgdmVyc2lvbiBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IERJU0FCTEVfVkVSU0lPTl9SRVBPUlRJTkcgPSAnYXdzOmNkazpkaXNhYmxlLXZlcnNpb24tcmVwb3J0aW5nJztcblxuLyoqXG4gKiBJZiB0aGlzIGlzIHNldCwgYXNzZXQgc3RhZ2luZyBpcyBkaXNhYmxlZC4gVGhpcyBtZWFucyB0aGF0IGFzc2V0cyB3aWxsIG5vdCBiZSBjb3BpZWQgdG9cbiAqIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGFuZCB3aWxsIGJlIHJlZmVyZW5jZWQgd2l0aCBhYnNvbHV0ZSBzb3VyY2UgcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBESVNBQkxFX0FTU0VUX1NUQUdJTkdfQ09OVEVYVCA9ICdhd3M6Y2RrOmRpc2FibGUtYXNzZXQtc3RhZ2luZyc7XG5cbi8qKlxuICogSWYgdGhpcyBjb250ZXh0IGtleSBpcyBzZXQsIHRoZSBDREsgd2lsbCBzdGFnZSBhc3NldHMgdW5kZXIgdGhlIHNwZWNpZmllZFxuICogZGlyZWN0b3J5LiBPdGhlcndpc2UsIGFzc2V0cyB3aWxsIG5vdCBiZSBzdGFnZWQuXG4gKiBPbWl0cyBzdGFjayB0cmFjZXMgZnJvbSBjb25zdHJ1Y3QgbWV0YWRhdGEgZW50cmllcy5cbiAqL1xuZXhwb3J0IGNvbnN0IERJU0FCTEVfTUVUQURBVEFfU1RBQ0tfVFJBQ0UgPSAnYXdzOmNkazpkaXNhYmxlLXN0YWNrLXRyYWNlJztcbiJdfQ==

@@ -17,2 +17,10 @@ /**

export declare const PATH_METADATA_KEY = "aws:cdk:path";
/**
* Represents the CloudFormation logical ID of a resource at a certain path.
*/
export declare const LOGICAL_ID_METADATA_KEY = "aws:cdk:logicalId";
/**
* Tag metadata key.
*/
export declare const STACK_TAGS_METADATA_KEY = "aws:cdk:stack-tags";
export declare enum SynthesisMessageLevel {

@@ -40,2 +48,8 @@ INFO = "info",

}
export interface MetadataEntryResult extends MetadataEntry {
/**
* The path in which this entry was defined.
*/
readonly path: string;
}
/**

@@ -42,0 +56,0 @@ * Metadata associated with the objects in the stack's Construct tree

@@ -19,2 +19,10 @@ "use strict";

exports.PATH_METADATA_KEY = 'aws:cdk:path';
/**
* Represents the CloudFormation logical ID of a resource at a certain path.
*/
exports.LOGICAL_ID_METADATA_KEY = 'aws:cdk:logicalId';
/**
* Tag metadata key.
*/
exports.STACK_TAGS_METADATA_KEY = 'aws:cdk:stack-tags';
var SynthesisMessageLevel;

@@ -26,2 +34,2 @@ (function (SynthesisMessageLevel) {

})(SynthesisMessageLevel = exports.SynthesisMessageLevel || (exports.SynthesisMessageLevel = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRyxjQUFjLENBQUM7QUFFaEQ7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDO0FBRXREOztHQUVHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxlQUFlLENBQUM7QUFFbEQ7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztBQUVoRCxJQUFZLHFCQUlYO0FBSkQsV0FBWSxxQkFBcUI7SUFDL0Isc0NBQWEsQ0FBQTtJQUNiLDRDQUFtQixDQUFBO0lBQ25CLHdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLHFCQUFxQixHQUFyQiw2QkFBcUIsS0FBckIsNkJBQXFCLFFBSWhDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIE1ldGFkYXRhIGtleSB1c2VkIHRvIHByaW50IElORk8tbGV2ZWwgbWVzc2FnZXMgYnkgdGhlIHRvb2xraXQgd2hlbiBhbiBhcHAgaXMgc3ludGhlaXplZC5cbiAqL1xuZXhwb3J0IGNvbnN0IElORk9fTUVUQURBVEFfS0VZID0gJ2F3czpjZGs6aW5mbyc7XG5cbi8qKlxuICogTWV0YWRhdGEga2V5IHVzZWQgdG8gcHJpbnQgV0FSTklORy1sZXZlbCBtZXNzYWdlcyBieSB0aGUgdG9vbGtpdCB3aGVuIGFuIGFwcCBpcyBzeW50aGVpemVkLlxuICovXG5leHBvcnQgY29uc3QgV0FSTklOR19NRVRBREFUQV9LRVkgPSAnYXdzOmNkazp3YXJuaW5nJztcblxuLyoqXG4gKiBNZXRhZGF0YSBrZXkgdXNlZCB0byBwcmludCBFUlJPUi1sZXZlbCBtZXNzYWdlcyBieSB0aGUgdG9vbGtpdCB3aGVuIGFuIGFwcCBpcyBzeW50aGVpemVkLlxuICovXG5leHBvcnQgY29uc3QgRVJST1JfTUVUQURBVEFfS0VZID0gJ2F3czpjZGs6ZXJyb3InO1xuXG4vKipcbiAqIFRoZSBrZXkgdXNlZCB3aGVuIENESyBwYXRoIGlzIGVtYmVkZGVkIGluICoqQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUqKiBtZXRhZGF0YSAobm90IGNkayBtZXRhZGF0YSkuXG4gKi9cbmV4cG9ydCBjb25zdCBQQVRIX01FVEFEQVRBX0tFWSA9ICdhd3M6Y2RrOnBhdGgnO1xuXG5leHBvcnQgZW51bSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwge1xuICBJTkZPID0gJ2luZm8nLFxuICBXQVJOSU5HID0gJ3dhcm5pbmcnLFxuICBFUlJPUiA9ICdlcnJvcidcbn1cbi8qKlxuICogQW4gbWV0YWRhdGEgZW50cnkgaW4gdGhlIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBtZXRhZGF0YSBlbnRyeS5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBkYXRhPzogYW55O1xuXG4gIC8qKlxuICAgKiBBIHN0YWNrIHRyYWNlIGZvciB3aGVuIHRoZSBlbnRyeSB3YXMgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBvYmplY3RzIGluIHRoZSBzdGFjaydzIENvbnN0cnVjdCB0cmVlXG4gKi9cbmV4cG9ydCB0eXBlIFN0YWNrTWV0YWRhdGEgPSB7IFtwYXRoOiBzdHJpbmddOiBNZXRhZGF0YUVudHJ5W10gfTtcblxuZXhwb3J0IGludGVyZmFjZSBTeW50aGVzaXNNZXNzYWdlIHtcbiAgcmVhZG9ubHkgbGV2ZWw6IFN5bnRoZXNpc01lc3NhZ2VMZXZlbDtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZW50cnk6IE1ldGFkYXRhRW50cnk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRyxjQUFjLENBQUM7QUFFaEQ7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDO0FBRXREOztHQUVHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxlQUFlLENBQUM7QUFFbEQ7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztBQUVoRDs7R0FFRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsbUJBQW1CLENBQUM7QUFFM0Q7O0dBRUc7QUFDVSxRQUFBLHVCQUF1QixHQUFHLG9CQUFvQixDQUFDO0FBRTVELElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixzQ0FBYSxDQUFBO0lBQ2IsNENBQW1CLENBQUE7SUFDbkIsd0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUFJaEMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogTWV0YWRhdGEga2V5IHVzZWQgdG8gcHJpbnQgSU5GTy1sZXZlbCBtZXNzYWdlcyBieSB0aGUgdG9vbGtpdCB3aGVuIGFuIGFwcCBpcyBzeW50aGVpemVkLlxuICovXG5leHBvcnQgY29uc3QgSU5GT19NRVRBREFUQV9LRVkgPSAnYXdzOmNkazppbmZvJztcblxuLyoqXG4gKiBNZXRhZGF0YSBrZXkgdXNlZCB0byBwcmludCBXQVJOSU5HLWxldmVsIG1lc3NhZ2VzIGJ5IHRoZSB0b29sa2l0IHdoZW4gYW4gYXBwIGlzIHN5bnRoZWl6ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBXQVJOSU5HX01FVEFEQVRBX0tFWSA9ICdhd3M6Y2RrOndhcm5pbmcnO1xuXG4vKipcbiAqIE1ldGFkYXRhIGtleSB1c2VkIHRvIHByaW50IEVSUk9SLWxldmVsIG1lc3NhZ2VzIGJ5IHRoZSB0b29sa2l0IHdoZW4gYW4gYXBwIGlzIHN5bnRoZWl6ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBFUlJPUl9NRVRBREFUQV9LRVkgPSAnYXdzOmNkazplcnJvcic7XG5cbi8qKlxuICogVGhlIGtleSB1c2VkIHdoZW4gQ0RLIHBhdGggaXMgZW1iZWRkZWQgaW4gKipDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSoqIG1ldGFkYXRhIChub3QgY2RrIG1ldGFkYXRhKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBVEhfTUVUQURBVEFfS0VZID0gJ2F3czpjZGs6cGF0aCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBJRCBvZiBhIHJlc291cmNlIGF0IGEgY2VydGFpbiBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgTE9HSUNBTF9JRF9NRVRBREFUQV9LRVkgPSAnYXdzOmNkazpsb2dpY2FsSWQnO1xuXG4vKipcbiAqIFRhZyBtZXRhZGF0YSBrZXkuXG4gKi9cbmV4cG9ydCBjb25zdCBTVEFDS19UQUdTX01FVEFEQVRBX0tFWSA9ICdhd3M6Y2RrOnN0YWNrLXRhZ3MnO1xuXG5leHBvcnQgZW51bSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwge1xuICBJTkZPID0gJ2luZm8nLFxuICBXQVJOSU5HID0gJ3dhcm5pbmcnLFxuICBFUlJPUiA9ICdlcnJvcidcbn1cbi8qKlxuICogQW4gbWV0YWRhdGEgZW50cnkgaW4gdGhlIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBtZXRhZGF0YSBlbnRyeS5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBkYXRhPzogYW55O1xuXG4gIC8qKlxuICAgKiBBIHN0YWNrIHRyYWNlIGZvciB3aGVuIHRoZSBlbnRyeSB3YXMgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFFbnRyeVJlc3VsdCBleHRlbmRzIE1ldGFkYXRhRW50cnkge1xuICAvKipcbiAgICogVGhlIHBhdGggaW4gd2hpY2ggdGhpcyBlbnRyeSB3YXMgZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIG9iamVjdHMgaW4gdGhlIHN0YWNrJ3MgQ29uc3RydWN0IHRyZWVcbiAqL1xuZXhwb3J0IHR5cGUgU3RhY2tNZXRhZGF0YSA9IHsgW3BhdGg6IHN0cmluZ106IE1ldGFkYXRhRW50cnlbXSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoZXNpc01lc3NhZ2Uge1xuICByZWFkb25seSBsZXZlbDogU3ludGhlc2lzTWVzc2FnZUxldmVsO1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBlbnRyeTogTWV0YWRhdGFFbnRyeTtcbn1cbiJdfQ==

@@ -17,3 +17,3 @@ /**

*/
export declare const CLOUD_ASSEMBLY_VERSION = "0.33.0";
export declare const CLOUD_ASSEMBLY_VERSION = "0.34.0";
/**

@@ -20,0 +20,0 @@ * Look at the type of response we get and upgrade it to the latest expected version

@@ -20,3 +20,3 @@ "use strict";

*/
exports.CLOUD_ASSEMBLY_VERSION = '0.33.0';
exports.CLOUD_ASSEMBLY_VERSION = '0.34.0';
/**

@@ -45,2 +45,2 @@ * Look at the type of response we get and upgrade it to the latest expected version

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBa0M7QUFFbEM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxRQUFRLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxjQUFzQjtJQUMxRCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsOEJBQXNCLENBQUMsQ0FBQztJQUUzRCxxREFBcUQ7SUFDckQsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxFQUFFO1FBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxnQkFBZ0Isd0NBQXdDLENBQUMsQ0FBQztLQUN6RjtJQUVELDJEQUEyRDtJQUMzRCxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7UUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FDYix3REFBd0QsOEJBQXNCLEVBQUUsQ0FBQyxDQUFDO0tBQ3JGO0FBQ0gsQ0FBQztBQWRELHNEQWNDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBZTtJQUNsQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixPQUFPLGFBQWEsQ0FBQyxDQUFDO0tBQzNEO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNlbXZlciA9IHJlcXVpcmUoJ3NlbXZlcicpO1xuXG4vKipcbiAqIEJ1bXAgdGhpcyB0byB0aGUgbGlicmFyeSB2ZXJzaW9uIGlmIGFuZCBvbmx5IGlmIHRoZSBDWCBwcm90b2NvbCBjaGFuZ2VzLlxuICpcbiAqIFdlIGNvdWxkIGFsc28gaGF2ZSB1c2VkIDEsIDIsIDMsIC4uLiBoZXJlIHRvIGluZGljYXRlIHByb3RvY29sIHZlcnNpb25zLCBidXRcbiAqIHRob3NlIHRoZW4gc3RpbGwgbmVlZCB0byBiZSBtYXBwZWQgdG8gc29mdHdhcmUgdmVyc2lvbnMgdG8gYmUgdXNlZnVsLiBTbyB3ZVxuICogbWlnaHQgYXMgd2VsbCB1c2UgdGhlIHNvZnR3YXJlIHZlcnNpb24gYXMgcHJvdG9jb2wgdmVyc2lvbiBhbmQgaW1tZWRpYXRlbHlcbiAqIGdlbmVyYXRlIGEgdXNlZnVsIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGlzLlxuICpcbiAqIE5vdGUgdGhlIGZvbGxvd2luZzpcbiAqXG4gKiAtIFRoZSB2ZXJzaW9ucyBhcmUgbm90IGNvbXBhcmVkIGluIGEgc2VtdmVyIHdheSwgdGhleSBhcmUgdXNlZCBhc1xuICogICAgb3BhcXVlIG9yZGVyZWQgdG9rZW5zLlxuICogLSBUaGUgdmVyc2lvbiBuZWVkcyB0byBiZSBzZXQgdG8gdGhlIE5FWFQgcmVsZWFzYWJsZSB2ZXJzaW9uIHdoZW4gaXQnc1xuICogICB1cGRhdGVkIChhcyB0aGUgY3VycmVudCB2ZXJpc29uIGluIHBhY2thZ2UuanNvbiBoYXMgYWxyZWFkeSBiZWVuIHJlbGVhc2VkISlcbiAqIC0gVGhlIHJlcXVlc3QgZG9lcyBub3QgaGF2ZSB2ZXJzaW9uaW5nIHlldCwgb25seSB0aGUgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OID0gJzAuMzMuMCc7XG5cbi8qKlxuICogTG9vayBhdCB0aGUgdHlwZSBvZiByZXNwb25zZSB3ZSBnZXQgYW5kIHVwZ3JhZGUgaXQgdG8gdGhlIGxhdGVzdCBleHBlY3RlZCB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlNYW5pZmVzdFZlcnNpb24obWFuaWZldFZlcnNpb246IHN0cmluZykge1xuICBjb25zdCBmcmFtZXdvcmtWZXJzaW9uID0gcGFyc2VTZW12ZXIobWFuaWZldFZlcnNpb24pO1xuICBjb25zdCB0b29sa2l0VmVyc2lvbiA9IHBhcnNlU2VtdmVyKENMT1VEX0FTU0VNQkxZX1ZFUlNJT04pO1xuXG4gIC8vIGlmIGZyYW1ld29yayA+IGNsaSwgd2UgcmVxdWlyZSBhIG5ld2VyIGNsaSB2ZXJzaW9uXG4gIGlmIChzZW12ZXIuZ3QoZnJhbWV3b3JrVmVyc2lvbiwgdG9vbGtpdFZlcnNpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDREsgQ0xJID49ICR7ZnJhbWV3b3JrVmVyc2lvbn0gaXMgcmVxdWlyZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIGFwcGApO1xuICB9XG5cbiAgLy8gaWYgZnJhbWV3b3JrIDwgY2xpLCB3ZSByZXF1aXJlIGEgbmV3ZXIgZnJhbWV3b3JrIHZlcnNpb25cbiAgaWYgKHNlbXZlci5sdChmcmFtZXdvcmtWZXJzaW9uLCB0b29sa2l0VmVyc2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ0RLIENMSSBjYW4gb25seSBiZSB1c2VkIHdpdGggYXBwcyBjcmVhdGVkIGJ5IENESyA+PSAke0NMT1VEX0FTU0VNQkxZX1ZFUlNJT059YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VTZW12ZXIodmVyc2lvbjogc3RyaW5nKSB7XG4gIGNvbnN0IHZlciA9IHNlbXZlci5jb2VyY2UodmVyc2lvbik7XG4gIGlmICghdmVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgcGFyc2UgXCIke3ZlcnNpb259XCIgYXMgc2VtdmVyYCk7XG4gIH1cblxuICByZXR1cm4gdmVyO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBa0M7QUFFbEM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxRQUFRLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxjQUFzQjtJQUMxRCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsOEJBQXNCLENBQUMsQ0FBQztJQUUzRCxxREFBcUQ7SUFDckQsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxFQUFFO1FBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxnQkFBZ0Isd0NBQXdDLENBQUMsQ0FBQztLQUN6RjtJQUVELDJEQUEyRDtJQUMzRCxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7UUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FDYix3REFBd0QsOEJBQXNCLEVBQUUsQ0FBQyxDQUFDO0tBQ3JGO0FBQ0gsQ0FBQztBQWRELHNEQWNDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBZTtJQUNsQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixPQUFPLGFBQWEsQ0FBQyxDQUFDO0tBQzNEO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNlbXZlciA9IHJlcXVpcmUoJ3NlbXZlcicpO1xuXG4vKipcbiAqIEJ1bXAgdGhpcyB0byB0aGUgbGlicmFyeSB2ZXJzaW9uIGlmIGFuZCBvbmx5IGlmIHRoZSBDWCBwcm90b2NvbCBjaGFuZ2VzLlxuICpcbiAqIFdlIGNvdWxkIGFsc28gaGF2ZSB1c2VkIDEsIDIsIDMsIC4uLiBoZXJlIHRvIGluZGljYXRlIHByb3RvY29sIHZlcnNpb25zLCBidXRcbiAqIHRob3NlIHRoZW4gc3RpbGwgbmVlZCB0byBiZSBtYXBwZWQgdG8gc29mdHdhcmUgdmVyc2lvbnMgdG8gYmUgdXNlZnVsLiBTbyB3ZVxuICogbWlnaHQgYXMgd2VsbCB1c2UgdGhlIHNvZnR3YXJlIHZlcnNpb24gYXMgcHJvdG9jb2wgdmVyc2lvbiBhbmQgaW1tZWRpYXRlbHlcbiAqIGdlbmVyYXRlIGEgdXNlZnVsIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGlzLlxuICpcbiAqIE5vdGUgdGhlIGZvbGxvd2luZzpcbiAqXG4gKiAtIFRoZSB2ZXJzaW9ucyBhcmUgbm90IGNvbXBhcmVkIGluIGEgc2VtdmVyIHdheSwgdGhleSBhcmUgdXNlZCBhc1xuICogICAgb3BhcXVlIG9yZGVyZWQgdG9rZW5zLlxuICogLSBUaGUgdmVyc2lvbiBuZWVkcyB0byBiZSBzZXQgdG8gdGhlIE5FWFQgcmVsZWFzYWJsZSB2ZXJzaW9uIHdoZW4gaXQnc1xuICogICB1cGRhdGVkIChhcyB0aGUgY3VycmVudCB2ZXJpc29uIGluIHBhY2thZ2UuanNvbiBoYXMgYWxyZWFkeSBiZWVuIHJlbGVhc2VkISlcbiAqIC0gVGhlIHJlcXVlc3QgZG9lcyBub3QgaGF2ZSB2ZXJzaW9uaW5nIHlldCwgb25seSB0aGUgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OID0gJzAuMzQuMCc7XG5cbi8qKlxuICogTG9vayBhdCB0aGUgdHlwZSBvZiByZXNwb25zZSB3ZSBnZXQgYW5kIHVwZ3JhZGUgaXQgdG8gdGhlIGxhdGVzdCBleHBlY3RlZCB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlNYW5pZmVzdFZlcnNpb24obWFuaWZldFZlcnNpb246IHN0cmluZykge1xuICBjb25zdCBmcmFtZXdvcmtWZXJzaW9uID0gcGFyc2VTZW12ZXIobWFuaWZldFZlcnNpb24pO1xuICBjb25zdCB0b29sa2l0VmVyc2lvbiA9IHBhcnNlU2VtdmVyKENMT1VEX0FTU0VNQkxZX1ZFUlNJT04pO1xuXG4gIC8vIGlmIGZyYW1ld29yayA+IGNsaSwgd2UgcmVxdWlyZSBhIG5ld2VyIGNsaSB2ZXJzaW9uXG4gIGlmIChzZW12ZXIuZ3QoZnJhbWV3b3JrVmVyc2lvbiwgdG9vbGtpdFZlcnNpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDREsgQ0xJID49ICR7ZnJhbWV3b3JrVmVyc2lvbn0gaXMgcmVxdWlyZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIGFwcGApO1xuICB9XG5cbiAgLy8gaWYgZnJhbWV3b3JrIDwgY2xpLCB3ZSByZXF1aXJlIGEgbmV3ZXIgZnJhbWV3b3JrIHZlcnNpb25cbiAgaWYgKHNlbXZlci5sdChmcmFtZXdvcmtWZXJzaW9uLCB0b29sa2l0VmVyc2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ0RLIENMSSBjYW4gb25seSBiZSB1c2VkIHdpdGggYXBwcyBjcmVhdGVkIGJ5IENESyA+PSAke0NMT1VEX0FTU0VNQkxZX1ZFUlNJT059YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VTZW12ZXIodmVyc2lvbjogc3RyaW5nKSB7XG4gIGNvbnN0IHZlciA9IHNlbXZlci5jb2VyY2UodmVyc2lvbik7XG4gIGlmICghdmVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgcGFyc2UgXCIke3ZlcnNpb259XCIgYXMgc2VtdmVyYCk7XG4gIH1cblxuICByZXR1cm4gdmVyO1xufVxuIl19
{
"name": "semver",
"version": "6.1.0",
"version": "6.1.1",
"description": "The semantic version parser used by npm.",

@@ -29,5 +29,5 @@ "main": "semver.js",

,"_resolved": "https://registry.npmjs.org/semver/-/semver-6.1.0.tgz"
,"_integrity": "sha512-kCqEOOHoBcFs/2Ccuk4Xarm/KiWRSLEX9CAZF8xkJ6ZPlIoTZ8V5f7J16vYLJqDbR7KrxTJpR2lqjIEm2Qx9cQ=="
,"_from": "semver@6.1.0"
,"_resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz"
,"_integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ=="
,"_from": "semver@6.1.1"
}

@@ -415,1 +415,17 @@ semver(1) -- The semantic versioner for npm

higher value components are invalid (`9999999999999999.4.7.4` is likely invalid).
### Clean
* `clean(version)`: Clean a string to be a valid semver if possible
This will return a cleaned and trimmed semver version. If the provided version is not valid a null will be returned. This does not work for ranges.
ex.
* `s.clean(' = v 2.1.5foo')`: `null`
* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'`
* `s.clean(' = v 2.1.5-foo')`: `null`
* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'`
* `s.clean('=v2.1.5')`: `'2.1.5'`
* `s.clean(' =v2.1.5')`: `2.1.5`
* `s.clean(' 2.1.5 ')`: `'2.1.5'`
* `s.clean('~1.0.0')`: `null`

@@ -1259,2 +1259,6 @@ exports = module.exports = SemVer

Range.prototype.test = function (version) {
if (!version) {
return false
}
if (typeof version === 'string') {

@@ -1523,3 +1527,3 @@ version = new SemVer(version, this.options)

exports.coerce = coerce
function coerce (version) {
function coerce (version, options) {
if (version instanceof SemVer) {

@@ -1541,3 +1545,3 @@ return version

'.' + (match[2] || '0') +
'.' + (match[3] || '0'))
'.' + (match[3] || '0'), options)
}
{
"name": "@aws-cdk/cx-api",
"version": "0.33.0",
"version": "0.34.0",
"description": "Cloud executable protocol",

@@ -46,3 +46,3 @@ "main": "lib/index.js",

"dependencies": {
"semver": "^6.0.0"
"semver": "^6.1.1"
},

@@ -62,7 +62,7 @@ "jest": {

"devDependencies": {
"@types/jest": "^24.0.11",
"@types/jest": "^24.0.13",
"@types/semver": "^6.0.0",
"cdk-build-tools": "^0.33.0",
"jest": "^24.7.1",
"pkglint": "^0.33.0"
"cdk-build-tools": "^0.34.0",
"jest": "^24.8.0",
"pkglint": "^0.34.0"
},

@@ -84,3 +84,4 @@ "repository": {

"node": ">= 8.10.0"
}
},
"stability": "experimental"
}
## Cloud Executable protocol
<!--BEGIN STABILITY BANNER-->
---
![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge)
> This API is still under active development and subject to non-backward
> compatible changes or removal in any future version. Use of the API is not recommended in production
> environments. Experimental APIs are not subject to the Semantic Versioning model.
---
<!--END STABILITY BANNER-->
This module is part of the [AWS Cloud Development Kit](https://github.com/awslabs/aws-cdk) project.

@@ -28,10 +28,9 @@ "use strict";

},
missing: {
foo: {
provider: 'context-provider',
props: {
a: 'A',
b: 2
}
}
});
session.addMissing({
key: 'foo',
provider: 'context-provider',
props: {
a: 'A',
b: 2
}

@@ -59,2 +58,5 @@ });

version: versioning_1.CLOUD_ASSEMBLY_VERSION,
missing: [
{ key: 'foo', provider: 'context-provider', props: { a: 'A', b: 2 } }
],
artifacts: {

@@ -73,5 +75,2 @@ 'my-first-artifact': {

},
missing: {
foo: { provider: 'context-provider', props: { a: 'A', b: 2 } }
}
},

@@ -97,2 +96,2 @@ 'minimal-artifact': {

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHktYnVpbGRlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtYXNzZW1ibHktYnVpbGRlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUJBQTBCO0FBQzFCLHlCQUEwQjtBQUMxQiw2QkFBOEI7QUFDOUIsZ0NBQTREO0FBQzVELGtEQUEyRDtBQUUzRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLFFBQVE7SUFDUixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLDhCQUE4QixDQUFDLENBQUMsQ0FBQztJQUN0RixNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDO0lBRXpDLE9BQU87SUFDUCxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFO1FBQ3ZDLElBQUksRUFBRSxrQkFBWSxDQUFDLHNCQUFzQjtRQUN6QyxXQUFXLEVBQUUseUJBQXlCO1FBQ3RDLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO1FBQ2xDLFFBQVEsRUFBRTtZQUNSLEdBQUcsRUFBRSxDQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBRTtTQUMvQztRQUNELFVBQVUsRUFBRTtZQUNWLFlBQVk7WUFDWixVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUFFLEtBQUs7YUFDYjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsR0FBRyxFQUFFO2dCQUNILFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLEtBQUssRUFBRTtvQkFDTCxDQUFDLEVBQUUsR0FBRztvQkFDTixDQUFDLEVBQUUsQ0FBQztpQkFDTDthQUNGO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFO1FBQ3RDLElBQUksRUFBRSxrQkFBWSxDQUFDLHNCQUFzQjtRQUN6QyxXQUFXLEVBQUUsc0JBQXNCO1FBQ25DLFVBQVUsRUFBRTtZQUNWLFlBQVk7U0FDYjtLQUNGLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdkUsU0FBUyxFQUFFO1lBQ1QsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxnQkFBZ0I7YUFDdkI7U0FDRjtLQUNGLENBQUMsQ0FBQyxDQUFDO0lBRUosTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRWpDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFFbkMsT0FBTztJQUNQLGtDQUFrQztJQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzdCLE9BQU8sRUFBRSxtQ0FBc0I7UUFDL0IsU0FBUyxFQUFFO1lBQ1QsbUJBQW1CLEVBQUU7Z0JBQ25CLElBQUksRUFBRSwwQkFBMEI7Z0JBQ2hDLFdBQVcsRUFBRSx5QkFBeUI7Z0JBQ3RDLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUUsRUFBRTtnQkFDNUQsVUFBVSxFQUFFO29CQUNWLFlBQVksRUFBRSxtQkFBbUI7b0JBQ2pDLFVBQVUsRUFBRTt3QkFDVixLQUFLLEVBQUUsTUFBTTt3QkFDYixLQUFLLEVBQUUsS0FBSztxQkFDYjtpQkFDRjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2lCQUMvRDthQUNGO1lBQ0Qsa0JBQWtCLEVBQUU7Z0JBQ2xCLElBQUksRUFBRSwwQkFBMEI7Z0JBQ2hDLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLFVBQVUsRUFBRSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRTthQUNsRDtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsaUNBQWlDO0lBQ2pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ25FLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsZ0JBQWdCO2FBQ3ZCO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7SUFDdEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksMEJBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNwRixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5pbXBvcnQgb3MgPSByZXF1aXJlKCdvcycpO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5pbXBvcnQgeyBBcnRpZmFjdFR5cGUsIENsb3VkQXNzZW1ibHlCdWlsZGVyIH0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7IENMT1VEX0FTU0VNQkxZX1ZFUlNJT04gfSBmcm9tICcuLi9saWIvdmVyc2lvbmluZyc7XG5cbnRlc3QoJ2Nsb3VkIGFzc2VtYmx5IGJ1aWxkZXInLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IG91dGRpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nsb3VkLWFzc2VtYmx5LWJ1aWxkZXItdGVzdHMnKSk7XG4gIGNvbnN0IHNlc3Npb24gPSBuZXcgQ2xvdWRBc3NlbWJseUJ1aWxkZXIob3V0ZGlyKTtcbiAgY29uc3QgdGVtcGxhdGVGaWxlID0gJ2Zvby50ZW1wbGF0ZS5qc29uJztcblxuICAvLyBXSEVOXG4gIHNlc3Npb24uYWRkQXJ0aWZhY3QoJ215LWZpcnN0LWFydGlmYWN0Jywge1xuICAgIHR5cGU6IEFydGlmYWN0VHlwZS5Bd3NDbG91ZEZvcm1hdGlvblN0YWNrLFxuICAgIGVudmlyb25tZW50OiAnYXdzOi8vMTIyMjM0NC91cy1lYXN0LTEnLFxuICAgIGRlcGVuZGVuY2llczogWydtaW5pbWFsLWFydGlmYWN0J10sXG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIGZvbzogWyB7IGRhdGE6IDEyMywgdHlwZTogJ2ZvbycsIHRyYWNlOiBbXSB9IF1cbiAgICB9LFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHRlbXBsYXRlRmlsZSxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgcHJvcDE6ICcxMjM0JyxcbiAgICAgICAgcHJvcDI6ICc1NTUnXG4gICAgICB9XG4gICAgfSxcbiAgICBtaXNzaW5nOiB7XG4gICAgICBmb286IHtcbiAgICAgICAgcHJvdmlkZXI6ICdjb250ZXh0LXByb3ZpZGVyJyxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBhOiAnQScsXG4gICAgICAgICAgYjogMlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBzZXNzaW9uLmFkZEFydGlmYWN0KCdtaW5pbWFsLWFydGlmYWN0Jywge1xuICAgIHR5cGU6IEFydGlmYWN0VHlwZS5Bd3NDbG91ZEZvcm1hdGlvblN0YWNrLFxuICAgIGVudmlyb25tZW50OiAnYXdzOi8vMTExL2hlbG8td29ybGQnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHRlbXBsYXRlRmlsZVxuICAgIH1cbiAgfSk7XG5cbiAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oc2Vzc2lvbi5vdXRkaXIsIHRlbXBsYXRlRmlsZSksIEpTT04uc3RyaW5naWZ5KHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIE15VG9waWM6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6UzM6OlRvcGljJ1xuICAgICAgfVxuICAgIH1cbiAgfSkpO1xuXG4gIGNvbnN0IGFzc2VtYmx5ID0gc2Vzc2lvbi5idWlsZCgpO1xuXG4gIGNvbnN0IG1hbmlmZXN0ID0gYXNzZW1ibHkubWFuaWZlc3Q7XG5cbiAgLy8gVEhFTlxuICAvLyB2ZXJpZnkgdGhlIG1hbmlmZXN0IGxvb2tzIHJpZ2h0XG4gIGV4cGVjdChtYW5pZmVzdCkudG9TdHJpY3RFcXVhbCh7XG4gICAgdmVyc2lvbjogQ0xPVURfQVNTRU1CTFlfVkVSU0lPTixcbiAgICBhcnRpZmFjdHM6IHtcbiAgICAgICdteS1maXJzdC1hcnRpZmFjdCc6IHtcbiAgICAgICAgdHlwZTogJ2F3czpjbG91ZGZvcm1hdGlvbjpzdGFjaycsXG4gICAgICAgIGVudmlyb25tZW50OiAnYXdzOi8vMTIyMjM0NC91cy1lYXN0LTEnLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IFsnbWluaW1hbC1hcnRpZmFjdCddLFxuICAgICAgICBtZXRhZGF0YTogeyBmb286IFsgeyBkYXRhOiAxMjMsIHR5cGU6ICdmb28nLCB0cmFjZTogW10gfSBdIH0sXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICB0ZW1wbGF0ZUZpbGU6ICdmb28udGVtcGxhdGUuanNvbicsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgcHJvcDE6ICcxMjM0JyxcbiAgICAgICAgICAgIHByb3AyOiAnNTU1J1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1pc3Npbmc6IHtcbiAgICAgICAgICBmb286IHsgcHJvdmlkZXI6ICdjb250ZXh0LXByb3ZpZGVyJywgcHJvcHM6IHsgYTogJ0EnLCBiOiAyIH0gfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ21pbmltYWwtYXJ0aWZhY3QnOiB7XG4gICAgICAgIHR5cGU6ICdhd3M6Y2xvdWRmb3JtYXRpb246c3RhY2snLFxuICAgICAgICBlbnZpcm9ubWVudDogJ2F3czovLzExMS9oZWxvLXdvcmxkJyxcbiAgICAgICAgcHJvcGVydGllczogeyB0ZW1wbGF0ZUZpbGU6ICdmb28udGVtcGxhdGUuanNvbicgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gdmVyaWZ5IHdlIGhhdmUgYSB0ZW1wbGF0ZSBmaWxlXG4gIGV4cGVjdChhc3NlbWJseS5nZXRTdGFjaygnbWluaW1hbC1hcnRpZmFjdCcpLnRlbXBsYXRlKS50b1N0cmljdEVxdWFsKHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIE15VG9waWM6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6UzM6OlRvcGljJ1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnb3V0ZGlyIG11c3QgYmUgYSBkaXJlY3RvcnknLCAoKSA9PiB7XG4gIGV4cGVjdCgoKSA9PiBuZXcgQ2xvdWRBc3NlbWJseUJ1aWxkZXIoX19maWxlbmFtZSkpLnRvVGhyb3coJ211c3QgYmUgYSBkaXJlY3RvcnknKTtcbn0pO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHktYnVpbGRlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtYXNzZW1ibHktYnVpbGRlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUJBQTBCO0FBQzFCLHlCQUEwQjtBQUMxQiw2QkFBOEI7QUFDOUIsZ0NBQTREO0FBQzVELGtEQUEyRDtBQUUzRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLFFBQVE7SUFDUixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLDhCQUE4QixDQUFDLENBQUMsQ0FBQztJQUN0RixNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDO0lBRXpDLE9BQU87SUFDUCxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFO1FBQ3ZDLElBQUksRUFBRSxrQkFBWSxDQUFDLHNCQUFzQjtRQUN6QyxXQUFXLEVBQUUseUJBQXlCO1FBQ3RDLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO1FBQ2xDLFFBQVEsRUFBRTtZQUNSLEdBQUcsRUFBRSxDQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBRTtTQUMvQztRQUNELFVBQVUsRUFBRTtZQUNWLFlBQVk7WUFDWixVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUFFLEtBQUs7YUFDYjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNqQixHQUFHLEVBQUUsS0FBSztRQUNWLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsS0FBSyxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsQ0FBQztTQUNMO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRTtRQUN0QyxJQUFJLEVBQUUsa0JBQVksQ0FBQyxzQkFBc0I7UUFDekMsV0FBVyxFQUFFLHNCQUFzQjtRQUNuQyxVQUFVLEVBQUU7WUFDVixZQUFZO1NBQ2I7S0FDRixDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZFLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsZ0JBQWdCO2FBQ3ZCO1NBQ0Y7S0FDRixDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBRW5DLE9BQU87SUFDUCxrQ0FBa0M7SUFDbEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUM3QixPQUFPLEVBQUUsbUNBQXNCO1FBQy9CLE9BQU8sRUFBRTtZQUNQLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7U0FDdEU7UUFDRCxTQUFTLEVBQUU7WUFDVCxtQkFBbUIsRUFBRTtnQkFDbkIsSUFBSSxFQUFFLDBCQUEwQjtnQkFDaEMsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2xDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBRSxFQUFFO2dCQUM1RCxVQUFVLEVBQUU7b0JBQ1YsWUFBWSxFQUFFLG1CQUFtQjtvQkFDakMsVUFBVSxFQUFFO3dCQUNWLEtBQUssRUFBRSxNQUFNO3dCQUNiLEtBQUssRUFBRSxLQUFLO3FCQUNiO2lCQUNGO2FBQ0Y7WUFDRCxrQkFBa0IsRUFBRTtnQkFDbEIsSUFBSSxFQUFFLDBCQUEwQjtnQkFDaEMsV0FBVyxFQUFFLHNCQUFzQjtnQkFDbkMsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFO2FBQ2xEO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxpQ0FBaUM7SUFDakMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDbkUsU0FBUyxFQUFFO1lBQ1QsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxnQkFBZ0I7YUFDdkI7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSwwQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3BGLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmltcG9ydCBvcyA9IHJlcXVpcmUoJ29zJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCB7IEFydGlmYWN0VHlwZSwgQ2xvdWRBc3NlbWJseUJ1aWxkZXIgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgQ0xPVURfQVNTRU1CTFlfVkVSU0lPTiB9IGZyb20gJy4uL2xpYi92ZXJzaW9uaW5nJztcblxudGVzdCgnY2xvdWQgYXNzZW1ibHkgYnVpbGRlcicsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgb3V0ZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2xvdWQtYXNzZW1ibHktYnVpbGRlci10ZXN0cycpKTtcbiAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBDbG91ZEFzc2VtYmx5QnVpbGRlcihvdXRkaXIpO1xuICBjb25zdCB0ZW1wbGF0ZUZpbGUgPSAnZm9vLnRlbXBsYXRlLmpzb24nO1xuXG4gIC8vIFdIRU5cbiAgc2Vzc2lvbi5hZGRBcnRpZmFjdCgnbXktZmlyc3QtYXJ0aWZhY3QnLCB7XG4gICAgdHlwZTogQXJ0aWZhY3RUeXBlLkF3c0Nsb3VkRm9ybWF0aW9uU3RhY2ssXG4gICAgZW52aXJvbm1lbnQ6ICdhd3M6Ly8xMjIyMzQ0L3VzLWVhc3QtMScsXG4gICAgZGVwZW5kZW5jaWVzOiBbJ21pbmltYWwtYXJ0aWZhY3QnXSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgZm9vOiBbIHsgZGF0YTogMTIzLCB0eXBlOiAnZm9vJywgdHJhY2U6IFtdIH0gXVxuICAgIH0sXG4gICAgcHJvcGVydGllczoge1xuICAgICAgdGVtcGxhdGVGaWxlLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBwcm9wMTogJzEyMzQnLFxuICAgICAgICBwcm9wMjogJzU1NSdcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBzZXNzaW9uLmFkZE1pc3Npbmcoe1xuICAgIGtleTogJ2ZvbycsXG4gICAgcHJvdmlkZXI6ICdjb250ZXh0LXByb3ZpZGVyJyxcbiAgICBwcm9wczoge1xuICAgICAgYTogJ0EnLFxuICAgICAgYjogMlxuICAgIH1cbiAgfSk7XG5cbiAgc2Vzc2lvbi5hZGRBcnRpZmFjdCgnbWluaW1hbC1hcnRpZmFjdCcsIHtcbiAgICB0eXBlOiBBcnRpZmFjdFR5cGUuQXdzQ2xvdWRGb3JtYXRpb25TdGFjayxcbiAgICBlbnZpcm9ubWVudDogJ2F3czovLzExMS9oZWxvLXdvcmxkJyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB0ZW1wbGF0ZUZpbGVcbiAgICB9XG4gIH0pO1xuXG4gIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHNlc3Npb24ub3V0ZGlyLCB0ZW1wbGF0ZUZpbGUpLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNeVRvcGljOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlMzOjpUb3BpYydcbiAgICAgIH1cbiAgICB9XG4gIH0pKTtcblxuICBjb25zdCBhc3NlbWJseSA9IHNlc3Npb24uYnVpbGQoKTtcbiAgY29uc3QgbWFuaWZlc3QgPSBhc3NlbWJseS5tYW5pZmVzdDtcblxuICAvLyBUSEVOXG4gIC8vIHZlcmlmeSB0aGUgbWFuaWZlc3QgbG9va3MgcmlnaHRcbiAgZXhwZWN0KG1hbmlmZXN0KS50b1N0cmljdEVxdWFsKHtcbiAgICB2ZXJzaW9uOiBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OLFxuICAgIG1pc3Npbmc6IFtcbiAgICAgIHsga2V5OiAnZm9vJywgcHJvdmlkZXI6ICdjb250ZXh0LXByb3ZpZGVyJywgcHJvcHM6IHsgYTogJ0EnLCBiOiAyIH0gfVxuICAgIF0sXG4gICAgYXJ0aWZhY3RzOiB7XG4gICAgICAnbXktZmlyc3QtYXJ0aWZhY3QnOiB7XG4gICAgICAgIHR5cGU6ICdhd3M6Y2xvdWRmb3JtYXRpb246c3RhY2snLFxuICAgICAgICBlbnZpcm9ubWVudDogJ2F3czovLzEyMjIzNDQvdXMtZWFzdC0xJyxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBbJ21pbmltYWwtYXJ0aWZhY3QnXSxcbiAgICAgICAgbWV0YWRhdGE6IHsgZm9vOiBbIHsgZGF0YTogMTIzLCB0eXBlOiAnZm9vJywgdHJhY2U6IFtdIH0gXSB9LFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdGVtcGxhdGVGaWxlOiAnZm9vLnRlbXBsYXRlLmpzb24nLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIHByb3AxOiAnMTIzNCcsXG4gICAgICAgICAgICBwcm9wMjogJzU1NSdcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgICdtaW5pbWFsLWFydGlmYWN0Jzoge1xuICAgICAgICB0eXBlOiAnYXdzOmNsb3VkZm9ybWF0aW9uOnN0YWNrJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdhd3M6Ly8xMTEvaGVsby13b3JsZCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHsgdGVtcGxhdGVGaWxlOiAnZm9vLnRlbXBsYXRlLmpzb24nIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIHZlcmlmeSB3ZSBoYXZlIGEgdGVtcGxhdGUgZmlsZVxuICBleHBlY3QoYXNzZW1ibHkuZ2V0U3RhY2soJ21pbmltYWwtYXJ0aWZhY3QnKS50ZW1wbGF0ZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNeVRvcGljOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlMzOjpUb3BpYydcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ291dGRpciBtdXN0IGJlIGEgZGlyZWN0b3J5JywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4gbmV3IENsb3VkQXNzZW1ibHlCdWlsZGVyKF9fZmlsZW5hbWUpKS50b1Rocm93KCdtdXN0IGJlIGEgZGlyZWN0b3J5Jyk7XG59KTtcbiJdfQ==

@@ -10,6 +10,6 @@ "use strict";

expect(assembly.artifacts).toEqual([]);
expect(assembly.missing).toBeUndefined();
expect(assembly.runtime).toEqual({ libraries: {} });
expect(assembly.stacks).toEqual([]);
expect(assembly.version).toEqual(versioning_1.CLOUD_ASSEMBLY_VERSION);
expect(assembly.manifest).toMatchSnapshot();
});

@@ -20,3 +20,3 @@ test('assembly a single cloudformation stack', () => {

expect(assembly.stacks).toHaveLength(1);
expect(assembly.missing).toBeUndefined();
expect(assembly.manifest.missing).toBeUndefined();
expect(assembly.runtime).toEqual({ libraries: {} });

@@ -26,17 +26,15 @@ expect(assembly.version).toEqual(versioning_1.CLOUD_ASSEMBLY_VERSION);

const stack = assembly.stacks[0];
expect(stack.manifest).toMatchSnapshot();
expect(stack.assets).toHaveLength(0);
expect(stack.autoDeploy).toBeTruthy();
expect(stack.depends).toEqual([]);
expect(stack.dependencies).toEqual([]);
expect(stack.environment).toEqual({ account: '37736633', region: 'us-region-1', name: 'aws://37736633/us-region-1' });
expect(stack.template).toEqual({ Resources: { MyBucket: { Type: "AWS::S3::Bucket" } } });
expect(stack.messages).toEqual([]);
expect(stack.metadata).toEqual({});
expect(stack.missing).toEqual({});
expect(stack.manifest.metadata).toEqual(undefined);
expect(stack.originalName).toEqual('MyStackName');
expect(stack.name).toEqual('MyStackName');
expect(stack.logicalIdToPathMap).toEqual({});
});
test('assembly with missing context', () => {
const assembly = new lib_1.CloudAssembly(path.join(FIXTURES, 'missing-context'));
expect(assembly.missing).toMatchSnapshot();
expect(assembly.manifest.missing).toMatchSnapshot();
});

@@ -68,6 +66,2 @@ test('assembly with multiple stacks', () => {

});
test('logical id to path map', () => {
const assembly = new lib_1.CloudAssembly(path.join(FIXTURES, 'logical-id-map'));
expect(assembly.stacks[0].logicalIdToPathMap).toEqual({ logicalIdOfFooBar: '/foo/bar' });
});
test('dependencies', () => {

@@ -78,6 +72,6 @@ const assembly = new lib_1.CloudAssembly(path.join(FIXTURES, 'depends'));

expect(assembly.stacks.map(s => s.name)).toEqual(['StackA', 'StackD', 'StackC', 'StackB']);
expect(assembly.stacks[0].depends).toEqual([]);
expect(assembly.stacks[1].depends).toEqual([]);
expect(assembly.stacks[2].depends.map(x => x.id)).toEqual(['StackD']);
expect(assembly.stacks[3].depends.map(x => x.id)).toEqual(['StackC', 'StackD']);
expect(assembly.stacks[0].dependencies).toEqual([]);
expect(assembly.stacks[1].dependencies).toEqual([]);
expect(assembly.stacks[2].dependencies.map(x => x.id)).toEqual(['StackD']);
expect(assembly.stacks[3].dependencies.map(x => x.id)).toEqual(['StackC', 'StackD']);
});

@@ -88,6 +82,6 @@ test('fails for invalid dependencies', () => {

test('verifyManifestVersion', () => {
versioning_1.verifyManifestVersion('0.33.0');
expect(() => versioning_1.verifyManifestVersion('0.31.0')).toThrow('CDK CLI can only be used with apps created by CDK >= 0.33.0');
expect(() => versioning_1.verifyManifestVersion('0.34.0')).toThrow('CDK CLI >= 0.34.0 is required to interact with this app');
versioning_1.verifyManifestVersion('0.34.0');
expect(() => versioning_1.verifyManifestVersion('0.31.0')).toThrow('CDK CLI can only be used with apps created by CDK >= 0.34.0');
expect(() => versioning_1.verifyManifestVersion('0.35.0')).toThrow('CDK CLI >= 0.35.0 is required to interact with this app');
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsb3VkLWFzc2VtYmx5LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBOEI7QUFDOUIsZ0NBQXVDO0FBQ3ZDLGtEQUFrRjtBQUVsRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVsRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRyxFQUFFLENBQUMsQ0FBQztJQUNyRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQ0FBc0IsQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtJQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN4RSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMs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RSxDQUFDLENBQUM7SUFDL0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFFLFFBQVEsQ0FBRSxDQUFDLENBQUM7SUFDeEUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFFLFFBQVEsRUFBRSxRQUFRLENBQUUsQ0FBQyxDQUFDO0FBQ3BGLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtJQUMxQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxtQkFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0FBQzdJLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtJQUNqQyxrQ0FBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUNySCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMseURBQXlELENBQUMsQ0FBQztBQUNuSCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2xpYic7XG5pbXBvcnQgeyBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OLCB2ZXJpZnlNYW5pZmVzdFZlcnNpb24gfSBmcm9tICcuLi9saWIvdmVyc2lvbmluZyc7XG5cbmNvbnN0IEZJWFRVUkVTID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ2ZpeHR1cmVzJyk7XG5cbnRlc3QoJ2VtcHR5IGFzc2VtYmx5JywgKCkgPT4ge1xuICBjb25zdCBhc3NlbWJseSA9IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ2VtcHR5JykpO1xuICBleHBlY3QoYXNzZW1ibHkuYXJ0aWZhY3RzKS50b0VxdWFsKFtdKTtcbiAgZXhwZWN0KGFzc2VtYmx5Lm1pc3NpbmcpLnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KGFzc2VtYmx5LnJ1bnRpbWUpLnRvRXF1YWwoeyBsaWJyYXJpZXM6IHsgfSB9KTtcbiAgZXhwZWN0KGFzc2VtYmx5LnN0YWNrcykudG9FcXVhbChbXSk7XG4gIGV4cGVjdChhc3NlbWJseS52ZXJzaW9uKS50b0VxdWFsKENMT1VEX0FTU0VNQkxZX1ZFUlNJT04pO1xufSk7XG5cbnRlc3QoJ2Fzc2VtYmx5IGEgc2luZ2xlIGNsb3VkZm9ybWF0aW9uIHN0YWNrJywgKCkgPT4ge1xuICBjb25zdCBhc3NlbWJseSA9IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ3NpbmdsZS1zdGFjaycpKTtcbiAgZXhwZWN0KGFzc2VtYmx5LmFydGlmYWN0cykudG9IYXZlTGVuZ3RoKDEpO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzKS50b0hhdmVMZW5ndGgoMSk7XG4gIGV4cGVjdChhc3NlbWJseS5taXNzaW5nKS50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChhc3NlbWJseS5ydW50aW1lKS50b0VxdWFsKHsgbGlicmFyaWVzOiB7IH0gfSk7XG4gIGV4cGVjdChhc3NlbWJseS52ZXJzaW9uKS50b0VxdWFsKENMT1VEX0FTU0VNQkxZX1ZFUlNJT04pO1xuICBleHBlY3QoYXNzZW1ibHkuYXJ0aWZhY3RzWzBdKS50b0VxdWFsKGFzc2VtYmx5LnN0YWNrc1swXSk7XG5cbiAgY29uc3Qgc3RhY2sgPSBhc3NlbWJseS5zdGFja3NbMF07XG4gIGV4cGVjdChzdGFjay5hc3NldHMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgZXhwZWN0KHN0YWNrLmF1dG9EZXBsb3kpLnRvQmVUcnV0aHkoKTtcbiAgZXhwZWN0KHN0YWNrLmRlcGVuZHMpLnRvRXF1YWwoW10pO1xuICBleHBlY3Qoc3RhY2suZW52aXJvbm1lbnQpLnRvRXF1YWwoeyBhY2NvdW50OiAnMzc3MzY2MzMnLCByZWdpb246ICd1cy1yZWdpb24tMScsIG5hbWU6ICdhd3M6Ly8zNzczNjYzMy91cy1yZWdpb24tMScgfSk7XG4gIGV4cGVjdChzdGFjay50ZW1wbGF0ZSkudG9FcXVhbCh7IFJlc291cmNlczogeyBNeUJ1Y2tldDogeyBUeXBlOiBcIkFXUzo6UzM6OkJ1Y2tldFwiIH0gfSB9KTtcbiAgZXhwZWN0KHN0YWNrLm1lc3NhZ2VzKS50b0VxdWFsKFtdKTtcbiAgZXhwZWN0KHN0YWNrLm1ldGFkYXRhKS50b0VxdWFsKHt9KTtcbiAgZXhwZWN0KHN0YWNrLm1pc3NpbmcpLnRvRXF1YWwoe30pO1xuICBleHBlY3Qoc3RhY2sub3JpZ2luYWxOYW1lKS50b0VxdWFsKCdNeVN0YWNrTmFtZScpO1xuICBleHBlY3Qoc3RhY2submFtZSkudG9FcXVhbCgnTXlTdGFja05hbWUnKTtcbiAgZXhwZWN0KHN0YWNrLmxvZ2ljYWxJZFRvUGF0aE1hcCkudG9FcXVhbCh7fSk7XG59KTtcblxudGVzdCgnYXNzZW1ibHkgd2l0aCBtaXNzaW5nIGNvbnRleHQnLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VtYmx5ID0gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnbWlzc2luZy1jb250ZXh0JykpO1xuICBleHBlY3QoYXNzZW1ibHkubWlzc2luZykudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcblxudGVzdCgnYXNzZW1ibHkgd2l0aCBtdWx0aXBsZSBzdGFja3MnLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VtYmx5ID0gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnbXVsdGlwbGUtc3RhY2tzJykpO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzKS50b0hhdmVMZW5ndGgoMik7XG4gIGV4cGVjdChhc3NlbWJseS5hcnRpZmFjdHMpLnRvSGF2ZUxlbmd0aCgyKTtcbn0pO1xuXG50ZXN0KCdmYWlscyBmb3IgaW52YWxpZCBhcnRpZmFjdCB0eXBlJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnaW52YWxpZC1hcnRpZmFjdC10eXBlJykpKVxuICAgIC50b1Rocm93KCd1bnN1cHBvcnRlZCBhcnRpZmFjdCB0eXBlOiB3aG86YW06aScpO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIGZvciBpbnZhbGlkIGVudmlyb25tZW50IGZvcm1hdCcsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ2ludmFsaWQtZW52LWZvcm1hdCcpKSlcbiAgICAudG9UaHJvdygnVW5hYmxlIHRvIHBhcnNlIGVudmlyb25tZW50IHNwZWNpZmljYXRpb24nKTtcbn0pO1xuXG50ZXN0KCdmYWlscyBpZiBzdGFjayBhcnRpZmFjdCBkb2VzIG5vdCBoYXZlIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIGV4cGVjdCgoKSA9PiBuZXcgQ2xvdWRBc3NlbWJseShwYXRoLmpvaW4oRklYVFVSRVMsICdzdGFjay13aXRob3V0LXBhcmFtcycpKSlcbiAgICAudG9UaHJvdygnSW52YWxpZCBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdC4gTWlzc2luZyBcXFwidGVtcGxhdGVGaWxlXFxcIiBwcm9wZXJ0eSBpbiBjbG91ZCBhc3NlbWJseSBtYW5pZmVzdCcpO1xufSk7XG5cbnRlc3QoJ21lc3NhZ2VzJywgKCkgPT4ge1xuICBjb25zdCBhc3NlbWJseSA9IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ21lc3NhZ2VzJykpO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzWzBdLm1lc3NhZ2VzKS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KCdhc3NldHMnLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VtYmx5ID0gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnYXNzZXRzJykpO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzWzBdLmFzc2V0cykudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcblxudGVzdCgnbG9naWNhbCBpZCB0byBwYXRoIG1hcCcsICgpID0+IHtcbiAgY29uc3QgYXNzZW1ibHkgPSBuZXcgQ2xvdWRBc3NlbWJseShwYXRoLmpvaW4oRklYVFVSRVMsICdsb2dpY2FsLWlkLW1hcCcpKTtcbiAgZXhwZWN0KGFzc2VtYmx5LnN0YWNrc1swXS5sb2dpY2FsSWRUb1BhdGhNYXApLnRvRXF1YWwoeyBsb2dpY2FsSWRPZkZvb0JhcjogJy9mb28vYmFyJyB9KTtcbn0pO1xuXG50ZXN0KCdkZXBlbmRlbmNpZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VtYmx5ID0gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnZGVwZW5kcycpKTtcbiAgZXhwZWN0KGFzc2VtYmx5LnN0YWNrcykudG9IYXZlTGVuZ3RoKDQpO1xuXG4gIC8vIGV4cGVjdCBzdGFja3MgdG8gYmUgbGlzdGVkIGluIHRvcG9sb2dpY2FsIG9yZGVyXG4gIGV4cGVjdChhc3NlbWJseS5zdGFja3MubWFwKHMgPT4gcy5uYW1lKSkudG9FcXVhbChbICdTdGFja0EnLCAnU3RhY2tEJywgJ1N0YWNrQycsICdTdGFja0InIF0pO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzWzBdLmRlcGVuZHMpLnRvRXF1YWwoW10pO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzWzFdLmRlcGVuZHMpLnRvRXF1YWwoW10pO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzWzJdLmRlcGVuZHMubWFwKHggPT4geC5pZCkpLnRvRXF1YWwoWyAnU3RhY2tEJyBdKTtcbiAgZXhwZWN0KGFzc2VtYmx5LnN0YWNrc1szXS5kZXBlbmRzLm1hcCh4ID0+IHguaWQpKS50b0VxdWFsKFsgJ1N0YWNrQycsICdTdGFja0QnIF0pO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIGZvciBpbnZhbGlkIGRlcGVuZGVuY2llcycsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ2ludmFsaWQtZGVwZW5kcycpKSkudG9UaHJvdygnQXJ0aWZhY3QgU3RhY2tDIGRlcGVuZHMgb24gbm9uLWV4aXN0aW5nIGFydGlmYWN0IFN0YWNrWCcpO1xufSk7XG5cbnRlc3QoJ3ZlcmlmeU1hbmlmZXN0VmVyc2lvbicsICgpID0+IHtcbiAgdmVyaWZ5TWFuaWZlc3RWZXJzaW9uKCcwLjMzLjAnKTtcbiAgZXhwZWN0KCgpID0+IHZlcmlmeU1hbmlmZXN0VmVyc2lvbignMC4zMS4wJykpLnRvVGhyb3coJ0NESyBDTEkgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGFwcHMgY3JlYXRlZCBieSBDREsgPj0gMC4zMy4wJyk7XG4gIGV4cGVjdCgoKSA9PiB2ZXJpZnlNYW5pZmVzdFZlcnNpb24oJzAuMzQuMCcpKS50b1Rocm93KCdDREsgQ0xJID49IDAuMzQuMCBpcyByZXF1aXJlZCB0byBpbnRlcmFjdCB3aXRoIHRoaXMgYXBwJyk7XG59KTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsb3VkLWFzc2VtYmx5LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBOEI7QUFDOUIsZ0NBQXVDO0FBQ3ZDLGtEQUFrRjtBQUVsRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVsRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUcsRUFBRSxDQUFDLENBQUM7SUFDckQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsbUNBQXNCLENBQUMsQ0FBQztJQUN6RCxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQzlDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtJQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN4RSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMs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QUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtJQUMxQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxtQkFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0FBQzdJLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtJQUNqQyxrQ0FBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUNySCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMseURBQXlELENBQUMsQ0FBQztBQUNuSCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2xpYic7XG5pbXBvcnQgeyBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OLCB2ZXJpZnlNYW5pZmVzdFZlcnNpb24gfSBmcm9tICcuLi9saWIvdmVyc2lvbmluZyc7XG5cbmNvbnN0IEZJWFRVUkVTID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ2ZpeHR1cmVzJyk7XG5cbnRlc3QoJ2VtcHR5IGFzc2VtYmx5JywgKCkgPT4ge1xuICBjb25zdCBhc3NlbWJseSA9IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ2VtcHR5JykpO1xuICBleHBlY3QoYXNzZW1ibHkuYXJ0aWZhY3RzKS50b0VxdWFsKFtdKTtcbiAgZXhwZWN0KGFzc2VtYmx5LnJ1bnRpbWUpLnRvRXF1YWwoeyBsaWJyYXJpZXM6IHsgfSB9KTtcbiAgZXhwZWN0KGFzc2VtYmx5LnN0YWNrcykudG9FcXVhbChbXSk7XG4gIGV4cGVjdChhc3NlbWJseS52ZXJzaW9uKS50b0VxdWFsKENMT1VEX0FTU0VNQkxZX1ZFUlNJT04pO1xuICBleHBlY3QoYXNzZW1ibHkubWFuaWZlc3QpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7XG5cbnRlc3QoJ2Fzc2VtYmx5IGEgc2luZ2xlIGNsb3VkZm9ybWF0aW9uIHN0YWNrJywgKCkgPT4ge1xuICBjb25zdCBhc3NlbWJseSA9IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ3NpbmdsZS1zdGFjaycpKTtcbiAgZXhwZWN0KGFzc2VtYmx5LmFydGlmYWN0cykudG9IYXZlTGVuZ3RoKDEpO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzKS50b0hhdmVMZW5ndGgoMSk7XG4gIGV4cGVjdChhc3NlbWJseS5tYW5pZmVzdC5taXNzaW5nKS50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChhc3NlbWJseS5ydW50aW1lKS50b0VxdWFsKHsgbGlicmFyaWVzOiB7IH0gfSk7XG4gIGV4cGVjdChhc3NlbWJseS52ZXJzaW9uKS50b0VxdWFsKENMT1VEX0FTU0VNQkxZX1ZFUlNJT04pO1xuICBleHBlY3QoYXNzZW1ibHkuYXJ0aWZhY3RzWzBdKS50b0VxdWFsKGFzc2VtYmx5LnN0YWNrc1swXSk7XG5cbiAgY29uc3Qgc3RhY2sgPSBhc3NlbWJseS5zdGFja3NbMF07XG4gIGV4cGVjdChzdGFjay5tYW5pZmVzdCkudG9NYXRjaFNuYXBzaG90KCk7XG4gIGV4cGVjdChzdGFjay5hc3NldHMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgZXhwZWN0KHN0YWNrLmRlcGVuZGVuY2llcykudG9FcXVhbChbXSk7XG4gIGV4cGVjdChzdGFjay5lbnZpcm9ubWVudCkudG9FcXVhbCh7IGFjY291bnQ6ICczNzczNjYzMycsIHJlZ2lvbjogJ3VzLXJlZ2lvbi0xJywgbmFtZTogJ2F3czovLzM3NzM2NjMzL3VzLXJlZ2lvbi0xJyB9KTtcbiAgZXhwZWN0KHN0YWNrLnRlbXBsYXRlKS50b0VxdWFsKHsgUmVzb3VyY2VzOiB7IE15QnVja2V0OiB7IFR5cGU6IFwiQVdTOjpTMzo6QnVja2V0XCIgfSB9IH0pO1xuICBleHBlY3Qoc3RhY2subWVzc2FnZXMpLnRvRXF1YWwoW10pO1xuICBleHBlY3Qoc3RhY2subWFuaWZlc3QubWV0YWRhdGEpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgZXhwZWN0KHN0YWNrLm9yaWdpbmFsTmFtZSkudG9FcXVhbCgnTXlTdGFja05hbWUnKTtcbiAgZXhwZWN0KHN0YWNrLm5hbWUpLnRvRXF1YWwoJ015U3RhY2tOYW1lJyk7XG59KTtcblxudGVzdCgnYXNzZW1ibHkgd2l0aCBtaXNzaW5nIGNvbnRleHQnLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VtYmx5ID0gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnbWlzc2luZy1jb250ZXh0JykpO1xuICBleHBlY3QoYXNzZW1ibHkubWFuaWZlc3QubWlzc2luZykudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcblxudGVzdCgnYXNzZW1ibHkgd2l0aCBtdWx0aXBsZSBzdGFja3MnLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VtYmx5ID0gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnbXVsdGlwbGUtc3RhY2tzJykpO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzKS50b0hhdmVMZW5ndGgoMik7XG4gIGV4cGVjdChhc3NlbWJseS5hcnRpZmFjdHMpLnRvSGF2ZUxlbmd0aCgyKTtcbn0pO1xuXG50ZXN0KCdmYWlscyBmb3IgaW52YWxpZCBhcnRpZmFjdCB0eXBlJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnaW52YWxpZC1hcnRpZmFjdC10eXBlJykpKVxuICAgIC50b1Rocm93KCd1bnN1cHBvcnRlZCBhcnRpZmFjdCB0eXBlOiB3aG86YW06aScpO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIGZvciBpbnZhbGlkIGVudmlyb25tZW50IGZvcm1hdCcsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ2ludmFsaWQtZW52LWZvcm1hdCcpKSlcbiAgICAudG9UaHJvdygnVW5hYmxlIHRvIHBhcnNlIGVudmlyb25tZW50IHNwZWNpZmljYXRpb24nKTtcbn0pO1xuXG50ZXN0KCdmYWlscyBpZiBzdGFjayBhcnRpZmFjdCBkb2VzIG5vdCBoYXZlIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIGV4cGVjdCgoKSA9PiBuZXcgQ2xvdWRBc3NlbWJseShwYXRoLmpvaW4oRklYVFVSRVMsICdzdGFjay13aXRob3V0LXBhcmFtcycpKSlcbiAgICAudG9UaHJvdygnSW52YWxpZCBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdC4gTWlzc2luZyBcXFwidGVtcGxhdGVGaWxlXFxcIiBwcm9wZXJ0eSBpbiBjbG91ZCBhc3NlbWJseSBtYW5pZmVzdCcpO1xufSk7XG5cbnRlc3QoJ21lc3NhZ2VzJywgKCkgPT4ge1xuICBjb25zdCBhc3NlbWJseSA9IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ21lc3NhZ2VzJykpO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzWzBdLm1lc3NhZ2VzKS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KCdhc3NldHMnLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VtYmx5ID0gbmV3IENsb3VkQXNzZW1ibHkocGF0aC5qb2luKEZJWFRVUkVTLCAnYXNzZXRzJykpO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzWzBdLmFzc2V0cykudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcblxudGVzdCgnZGVwZW5kZW5jaWVzJywgKCkgPT4ge1xuICBjb25zdCBhc3NlbWJseSA9IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ2RlcGVuZHMnKSk7XG4gIGV4cGVjdChhc3NlbWJseS5zdGFja3MpLnRvSGF2ZUxlbmd0aCg0KTtcblxuICAvLyBleHBlY3Qgc3RhY2tzIHRvIGJlIGxpc3RlZCBpbiB0b3BvbG9naWNhbCBvcmRlclxuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzLm1hcChzID0+IHMubmFtZSkpLnRvRXF1YWwoWyAnU3RhY2tBJywgJ1N0YWNrRCcsICdTdGFja0MnLCAnU3RhY2tCJyBdKTtcbiAgZXhwZWN0KGFzc2VtYmx5LnN0YWNrc1swXS5kZXBlbmRlbmNpZXMpLnRvRXF1YWwoW10pO1xuICBleHBlY3QoYXNzZW1ibHkuc3RhY2tzWzFdLmRlcGVuZGVuY2llcykudG9FcXVhbChbXSk7XG4gIGV4cGVjdChhc3NlbWJseS5zdGFja3NbMl0uZGVwZW5kZW5jaWVzLm1hcCh4ID0+IHguaWQpKS50b0VxdWFsKFsgJ1N0YWNrRCcgXSk7XG4gIGV4cGVjdChhc3NlbWJseS5zdGFja3NbM10uZGVwZW5kZW5jaWVzLm1hcCh4ID0+IHguaWQpKS50b0VxdWFsKFsgJ1N0YWNrQycsICdTdGFja0QnIF0pO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIGZvciBpbnZhbGlkIGRlcGVuZGVuY2llcycsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+IG5ldyBDbG91ZEFzc2VtYmx5KHBhdGguam9pbihGSVhUVVJFUywgJ2ludmFsaWQtZGVwZW5kcycpKSkudG9UaHJvdygnQXJ0aWZhY3QgU3RhY2tDIGRlcGVuZHMgb24gbm9uLWV4aXN0aW5nIGFydGlmYWN0IFN0YWNrWCcpO1xufSk7XG5cbnRlc3QoJ3ZlcmlmeU1hbmlmZXN0VmVyc2lvbicsICgpID0+IHtcbiAgdmVyaWZ5TWFuaWZlc3RWZXJzaW9uKCcwLjM0LjAnKTtcbiAgZXhwZWN0KCgpID0+IHZlcmlmeU1hbmlmZXN0VmVyc2lvbignMC4zMS4wJykpLnRvVGhyb3coJ0NESyBDTEkgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGFwcHMgY3JlYXRlZCBieSBDREsgPj0gMC4zNC4wJyk7XG4gIGV4cGVjdCgoKSA9PiB2ZXJpZnlNYW5pZmVzdFZlcnNpb24oJzAuMzUuMCcpKS50b1Rocm93KCdDREsgQ0xJID49IDAuMzUuMCBpcyByZXF1aXJlZCB0byBpbnRlcmFjdCB3aXRoIHRoaXMgYXBwJyk7XG59KTsiXX0=
{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "MyStackName": {

{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "StackA": {

{
"version": "0.33.0"
"version": "0.34.0"
}
{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "MyArt": {

{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "StackA": {

{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "MyStackName": {

{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "MyStackName": {

{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "MyStackName": {

{
"version": "0.33.0",
"version": "0.34.0",
"missing": {
"key": "missing:context:key",
"provider": "context-provider",
"props": { "foo": 123 }
},
"artifacts": {

@@ -7,5 +12,2 @@ "MyStackName": {

"environment": "aws://37736633/us-region-1",
"missing": {
"missing:context:key": { "foo": 123 }
},
"properties": {

@@ -12,0 +14,0 @@ "templateFile": "template.json"

{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "MyStackName": {

{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "MyStackName": {

{
"version": "0.33.0",
"version": "0.34.0",
"artifacts": {

@@ -4,0 +4,0 @@ "MyStackName": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc