@pwrdrvr/microapps-cdk 0.0.28 → 0.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +1884 -185
- package/API.md +890 -60
- package/README.md +2 -8
- package/lib/MicroApps.d.ts +77 -44
- package/lib/MicroApps.js +62 -33
- package/lib/MicroAppsAPIGwy.d.ts +123 -0
- package/lib/MicroAppsAPIGwy.js +178 -0
- package/lib/MicroAppsCF.d.ts +179 -17
- package/lib/MicroAppsCF.js +127 -45
- package/lib/MicroAppsS3.d.ts +114 -17
- package/lib/MicroAppsS3.js +55 -31
- package/lib/MicroAppsSvcs.d.ts +123 -25
- package/lib/MicroAppsSvcs.js +113 -152
- package/lib/index.d.ts +4 -0
- package/lib/index.js +5 -1
- package/lib/microapps-deployer/index.js +116 -88
- package/lib/microapps-deployer/index.js.map +3 -3
- package/lib/microapps-router/index.js +60 -51
- package/lib/microapps-router/index.js.map +3 -3
- package/lib/utils/ReverseDomain.d.ts +4 -0
- package/lib/utils/ReverseDomain.js +15 -0
- package/package.json +45 -45
package/lib/MicroAppsCF.js
CHANGED
|
@@ -1,100 +1,182 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.MicroAppsCF = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path_1 = require("path");
|
|
4
7
|
const cf = require("@aws-cdk/aws-cloudfront");
|
|
5
8
|
const cforigins = require("@aws-cdk/aws-cloudfront-origins");
|
|
6
9
|
const r53 = require("@aws-cdk/aws-route53");
|
|
7
10
|
const r53targets = require("@aws-cdk/aws-route53-targets");
|
|
8
11
|
const cdk = require("@aws-cdk/core");
|
|
12
|
+
const ReverseDomain_1 = require("./utils/ReverseDomain");
|
|
13
|
+
/**
|
|
14
|
+
* @stability stable
|
|
15
|
+
*/
|
|
9
16
|
class MicroAppsCF extends cdk.Construct {
|
|
17
|
+
/**
|
|
18
|
+
* MicroApps - Create just CloudFront resources.
|
|
19
|
+
*
|
|
20
|
+
* @stability stable
|
|
21
|
+
*/
|
|
10
22
|
constructor(scope, id, props) {
|
|
11
23
|
super(scope, id);
|
|
12
24
|
if (props === undefined) {
|
|
13
25
|
throw new Error('props must be set');
|
|
14
26
|
}
|
|
15
|
-
|
|
27
|
+
if ((props.r53Zone === undefined && props.domainNameEdge !== undefined) ||
|
|
28
|
+
(props.r53Zone !== undefined && props.domainNameEdge === undefined)) {
|
|
29
|
+
throw new Error('If either of r53Zone or domainNameEdge are set then the other must be set');
|
|
30
|
+
}
|
|
31
|
+
const { domainNameEdge, domainNameOrigin, httpApi, removalPolicy, certEdge, assetNameRoot, assetNameSuffix, r53Zone, bucketLogs, bucketAppsOrigin, rootPathPrefix, } = props;
|
|
32
|
+
const apigwyOriginRequestPolicy = MicroAppsCF.createAPIOriginPolicy(this, {
|
|
33
|
+
assetNameRoot,
|
|
34
|
+
assetNameSuffix,
|
|
35
|
+
domainNameEdge,
|
|
36
|
+
});
|
|
37
|
+
//
|
|
38
|
+
// Determine URL of the origin FQDN
|
|
39
|
+
//
|
|
40
|
+
let httpOriginFQDN = 'invalid.pwrdrvr.com';
|
|
41
|
+
if (domainNameOrigin !== undefined) {
|
|
42
|
+
httpOriginFQDN = domainNameOrigin;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
httpOriginFQDN = `${httpApi.apiId}.execute-api.${cdk.Aws.REGION}.amazonaws.com`;
|
|
46
|
+
}
|
|
16
47
|
//
|
|
17
48
|
// CloudFront Distro
|
|
18
49
|
//
|
|
19
|
-
const apiGwyOrigin = new cforigins.HttpOrigin(
|
|
50
|
+
const apiGwyOrigin = new cforigins.HttpOrigin(httpOriginFQDN, {
|
|
20
51
|
protocolPolicy: cf.OriginProtocolPolicy.HTTPS_ONLY,
|
|
21
52
|
originSslProtocols: [cf.OriginSslPolicy.TLS_V1_2],
|
|
22
53
|
});
|
|
23
|
-
this._cloudFrontDistro = new cf.Distribution(this, '
|
|
24
|
-
comment: `${assetNameRoot}${assetNameSuffix}
|
|
25
|
-
domainNames: [domainNameEdge],
|
|
54
|
+
this._cloudFrontDistro = new cf.Distribution(this, 'cft', {
|
|
55
|
+
comment: assetNameRoot ? `${assetNameRoot}${assetNameSuffix}` : domainNameEdge,
|
|
56
|
+
domainNames: domainNameEdge !== undefined ? [domainNameEdge] : undefined,
|
|
26
57
|
certificate: certEdge,
|
|
27
58
|
httpVersion: cf.HttpVersion.HTTP2,
|
|
28
59
|
defaultBehavior: {
|
|
29
60
|
allowedMethods: cf.AllowedMethods.ALLOW_ALL,
|
|
30
61
|
cachePolicy: cf.CachePolicy.CACHING_DISABLED,
|
|
31
62
|
compress: true,
|
|
32
|
-
originRequestPolicy:
|
|
63
|
+
originRequestPolicy: apigwyOriginRequestPolicy,
|
|
33
64
|
origin: apiGwyOrigin,
|
|
34
65
|
viewerProtocolPolicy: cf.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
|
|
35
66
|
},
|
|
36
67
|
enableIpv6: true,
|
|
37
68
|
priceClass: cf.PriceClass.PRICE_CLASS_100,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
69
|
+
logBucket: bucketLogs,
|
|
70
|
+
logFilePrefix: props.domainNameEdge
|
|
71
|
+
? `${ReverseDomain_1.reverseDomain(props.domainNameEdge)}/cloudfront-raw/`
|
|
72
|
+
: undefined,
|
|
73
|
+
});
|
|
74
|
+
if (removalPolicy !== undefined) {
|
|
75
|
+
this._cloudFrontDistro.applyRemovalPolicy(removalPolicy);
|
|
76
|
+
}
|
|
77
|
+
// Add routes to the CloudFront Distribution
|
|
78
|
+
MicroAppsCF.addRoutes(scope, {
|
|
79
|
+
apiGwyOrigin,
|
|
80
|
+
bucketAppsOrigin,
|
|
81
|
+
distro: this._cloudFrontDistro,
|
|
82
|
+
apigwyOriginRequestPolicy: apigwyOriginRequestPolicy,
|
|
83
|
+
rootPathPrefix,
|
|
41
84
|
});
|
|
42
|
-
|
|
43
|
-
|
|
85
|
+
//
|
|
86
|
+
// Create the edge name for the CloudFront distro
|
|
87
|
+
//
|
|
88
|
+
if (r53Zone !== undefined) {
|
|
89
|
+
const rrAppsEdge = new r53.RecordSet(this, 'edge-arecord', {
|
|
90
|
+
recordName: domainNameEdge,
|
|
91
|
+
recordType: r53.RecordType.A,
|
|
92
|
+
target: r53.RecordTarget.fromAlias(new r53targets.CloudFrontTarget(this._cloudFrontDistro)),
|
|
93
|
+
zone: r53Zone,
|
|
94
|
+
});
|
|
95
|
+
if (removalPolicy !== undefined) {
|
|
96
|
+
rrAppsEdge.applyRemovalPolicy(removalPolicy);
|
|
97
|
+
}
|
|
44
98
|
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Create or get the origin request policy.
|
|
102
|
+
*
|
|
103
|
+
* If a custom domain name is NOT used for the origin then a policy
|
|
104
|
+
* will be created.
|
|
105
|
+
*
|
|
106
|
+
* If a custom domain name IS used for the origin then the ALL_VIEWER
|
|
107
|
+
* policy will be returned. This policy passes the Host header to the
|
|
108
|
+
* origin, which is fine when using a custom domain name on the origin.
|
|
109
|
+
*
|
|
110
|
+
* @stability stable
|
|
111
|
+
*/
|
|
112
|
+
static createAPIOriginPolicy(scope, props) {
|
|
113
|
+
const { assetNameRoot, assetNameSuffix, domainNameEdge } = props;
|
|
114
|
+
let apigwyOriginRequestPolicy = cf.OriginRequestPolicy.ALL_VIEWER;
|
|
115
|
+
if (domainNameEdge === undefined) {
|
|
116
|
+
// When not using a custom domain name we must limit down the origin policy to
|
|
117
|
+
// prevent it from passing the Host header (distribution_id.cloudfront.net) to
|
|
118
|
+
// apigwy which will then reject it with a 403 because it does not match the
|
|
119
|
+
// execute-api name that apigwy is expecting.
|
|
120
|
+
//
|
|
121
|
+
// 2021-12-28 - There is a bug in the name generation that causes the same asset
|
|
122
|
+
// in different stacks to have the same generated name. We have to make the id
|
|
123
|
+
// in all cases to ensure the generated name is unique.
|
|
124
|
+
apigwyOriginRequestPolicy = new cf.OriginRequestPolicy(scope, `apigwy-origin-policy-${cdk.Stack.of(scope).stackName}`, {
|
|
125
|
+
comment: assetNameRoot ? `${assetNameRoot}-apigwy${assetNameSuffix}` : undefined,
|
|
126
|
+
originRequestPolicyName: assetNameRoot
|
|
127
|
+
? `${assetNameRoot}-apigwy${assetNameSuffix}`
|
|
128
|
+
: undefined,
|
|
129
|
+
cookieBehavior: cf.OriginRequestCookieBehavior.all(),
|
|
130
|
+
queryStringBehavior: cf.OriginRequestQueryStringBehavior.all(),
|
|
131
|
+
headerBehavior: cf.OriginRequestHeaderBehavior.allowList('user-agent', 'referer'),
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return apigwyOriginRequestPolicy;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Add API Gateway and S3 routes to an existing CloudFront Distribution.
|
|
138
|
+
*
|
|
139
|
+
* @stability stable
|
|
140
|
+
*/
|
|
141
|
+
static addRoutes(_scope, props) {
|
|
142
|
+
const { apiGwyOrigin, bucketAppsOrigin, distro, apigwyOriginRequestPolicy, rootPathPrefix = '', } = props;
|
|
45
143
|
//
|
|
46
144
|
// Add Behaviors
|
|
47
145
|
//
|
|
48
|
-
const
|
|
49
|
-
allowedMethods: cf.AllowedMethods.ALLOW_ALL,
|
|
50
|
-
cachePolicy: cf.CachePolicy.CACHING_DISABLED,
|
|
51
|
-
compress: true,
|
|
52
|
-
originRequestPolicy: cf.OriginRequestPolicy.ALL_VIEWER,
|
|
53
|
-
viewerProtocolPolicy: cf.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
|
|
54
|
-
};
|
|
55
|
-
const s3Behavior = {
|
|
146
|
+
const s3BehaviorOptions = {
|
|
56
147
|
allowedMethods: cf.AllowedMethods.ALLOW_GET_HEAD_OPTIONS,
|
|
57
148
|
cachePolicy: cf.CachePolicy.CACHING_OPTIMIZED,
|
|
58
149
|
compress: true,
|
|
59
150
|
originRequestPolicy: cf.OriginRequestPolicy.CORS_S3_ORIGIN,
|
|
60
151
|
viewerProtocolPolicy: cf.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
|
|
61
152
|
};
|
|
62
|
-
const
|
|
63
|
-
allowedMethods: cf.AllowedMethods.
|
|
64
|
-
|
|
153
|
+
const apiGwyBehaviorOptions = {
|
|
154
|
+
allowedMethods: cf.AllowedMethods.ALLOW_ALL,
|
|
155
|
+
// TODO: Caching needs to be set by the app response
|
|
156
|
+
cachePolicy: cf.CachePolicy.CACHING_DISABLED,
|
|
65
157
|
compress: true,
|
|
158
|
+
originRequestPolicy: apigwyOriginRequestPolicy,
|
|
66
159
|
viewerProtocolPolicy: cf.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
|
|
67
160
|
};
|
|
68
161
|
//
|
|
69
|
-
//
|
|
70
|
-
// Pull to the API first, then pull to S3 if it contains /static/
|
|
71
|
-
// Pull anything under /appName/x.y.z/ folder with '.' in file name to S3
|
|
72
|
-
// Let everything else fall through to the API Gateway
|
|
162
|
+
// All static assets are assumed to have a dot in them
|
|
73
163
|
//
|
|
74
|
-
|
|
75
|
-
this._cloudFrontDistro.addBehavior('/*/*/static/*', s3Exports.bucketAppsOrigin, s3Behavior);
|
|
76
|
-
this._cloudFrontDistro.addBehavior('/*/*/*.*', s3Exports.bucketAppsOrigin, s3Behavior);
|
|
77
|
-
this._cloudFrontDistro.addBehavior('/*/*/', apiGwyOrigin, apiGwyVersionRootBehavior);
|
|
164
|
+
distro.addBehavior(path_1.posix.join(rootPathPrefix, '/*/*/*.*'), bucketAppsOrigin, s3BehaviorOptions);
|
|
78
165
|
//
|
|
79
|
-
//
|
|
166
|
+
// Everything that isn't a static asset is going to API Gateway
|
|
167
|
+
// There is no trailing slash because Serverless Next.js wants
|
|
168
|
+
// go load pages at /release/0.0.3 (with no trailing slash).
|
|
80
169
|
//
|
|
81
|
-
|
|
82
|
-
zoneName: r53ZoneName,
|
|
83
|
-
hostedZoneId: r53ZoneID,
|
|
84
|
-
});
|
|
85
|
-
const rrAppsEdge = new r53.RecordSet(this, 'microapps-edge-arecord', {
|
|
86
|
-
recordName: domainNameEdge,
|
|
87
|
-
recordType: r53.RecordType.A,
|
|
88
|
-
target: r53.RecordTarget.fromAlias(new r53targets.CloudFrontTarget(this._cloudFrontDistro)),
|
|
89
|
-
zone,
|
|
90
|
-
});
|
|
91
|
-
if (autoDeleteEverything) {
|
|
92
|
-
rrAppsEdge.applyRemovalPolicy(cdk.RemovalPolicy.DESTROY);
|
|
93
|
-
}
|
|
170
|
+
distro.addBehavior(path_1.posix.join(rootPathPrefix, '/*'), apiGwyOrigin, apiGwyBehaviorOptions);
|
|
94
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* @stability stable
|
|
174
|
+
*/
|
|
95
175
|
get cloudFrontDistro() {
|
|
96
176
|
return this._cloudFrontDistro;
|
|
97
177
|
}
|
|
98
178
|
}
|
|
99
179
|
exports.MicroAppsCF = MicroAppsCF;
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzQ0YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTWljcm9BcHBzQ0YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOENBQThDO0FBQzlDLDZEQUE2RDtBQUM3RCw0Q0FBNEM7QUFDNUMsMkRBQTJEO0FBQzNELHFDQUFxQztBQXdCckMsTUFBYSxXQUFZLFNBQVEsR0FBRyxDQUFDLFNBQVM7SUFNNUMsWUFBWSxLQUFvQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdEM7UUFFRCxNQUFNLEVBQ0osU0FBUyxFQUNULGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsYUFBYSxFQUNiLGVBQWUsRUFDZixXQUFXLEVBQ1gsU0FBUyxHQUNWLEdBQUcsS0FBSyxDQUFDO1FBRVYsRUFBRTtRQUNGLG9CQUFvQjtRQUNwQixFQUFFO1FBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO1lBQzlELGNBQWMsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsVUFBVTtZQUNsRCxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO1NBQ2xELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQ3pFLE9BQU8sRUFBRSxHQUFHLGFBQWEsR0FBRyxlQUFlLEVBQUU7WUFDN0MsV0FBVyxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQzdCLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUs7WUFDakMsZUFBZSxFQUFFO2dCQUNmLGNBQWMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFNBQVM7Z0JBQzNDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtnQkFDNUMsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFVBQVU7Z0JBQ3RELE1BQU0sRUFBRSxZQUFZO2dCQUNwQixvQkFBb0IsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCO2FBQ2hFO1lBQ0QsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZTtZQUN6QyxhQUFhLEVBQUUsSUFBSTtZQUNuQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVO1lBQ3JDLGFBQWEsRUFBRSxHQUFHLGlCQUFpQixrQkFBa0I7U0FDdEQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0RTtRQUVELEVBQUU7UUFDRixnQkFBZ0I7UUFDaEIsRUFBRTtRQUNGLE1BQU0sY0FBYyxHQUEwQjtZQUM1QyxjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxTQUFTO1lBQzNDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtZQUM1QyxRQUFRLEVBQUUsSUFBSTtZQUNkLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVO1lBQ3RELG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUI7U0FDaEUsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUEwQjtZQUN4QyxjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0I7WUFDeEQsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCO1lBQzdDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGNBQWM7WUFDMUQsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQjtTQUNoRSxDQUFDO1FBQ0YsTUFBTSx5QkFBeUIsR0FBMEI7WUFDdkQsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsc0JBQXNCO1lBQ3hELFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLGlCQUFpQjtZQUM3QyxRQUFRLEVBQUUsSUFBSTtZQUNkLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUI7U0FDaEUsQ0FBQztRQUVGLEVBQUU7UUFDRixlQUFlO1FBQ2YsaUVBQWlFO1FBQ2pFLHlFQUF5RTtRQUN6RSxzREFBc0Q7UUFDdEQsRUFBRTtRQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBRXJGLEVBQUU7UUFDRixpREFBaUQ7UUFDakQsRUFBRTtRQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzNFLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFlBQVksRUFBRSxTQUFTO1NBQ3hCLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDbkUsVUFBVSxFQUFFLGNBQWM7WUFDMUIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QixNQUFNLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0YsSUFBSTtTQUNMLENBQUMsQ0FBQztRQUNILElBQUksb0JBQW9CLEVBQUU7WUFDeEIsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBM0dELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7Q0EwR0Y7QUE5R0Qsa0NBOEdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYWNtIGZyb20gJ0Bhd3MtY2RrL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0ICogYXMgY2YgZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgY2ZvcmlnaW5zIGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250LW9yaWdpbnMnO1xuaW1wb3J0ICogYXMgcjUzIGZyb20gJ0Bhd3MtY2RrL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHI1M3RhcmdldHMgZnJvbSAnQGF3cy1jZGsvYXdzLXJvdXRlNTMtdGFyZ2V0cyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBJTWljcm9BcHBzUzNFeHBvcnRzIH0gZnJvbSAnLi9NaWNyb0FwcHNTMyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1pY3JvQXBwc0NGRXhwb3J0cyB7XG4gIHJlYWRvbmx5IGNsb3VkRnJvbnREaXN0cm86IGNmLkRpc3RyaWJ1dGlvbjtcbn1cblxuaW50ZXJmYWNlIE1pY3JvQXBwc0NGUHJvcHMgZXh0ZW5kcyBjZGsuUmVzb3VyY2VQcm9wcyB7XG4gIHJlYWRvbmx5IGF1dG9EZWxldGVFdmVyeXRoaW5nOiBib29sZWFuO1xuICByZWFkb25seSBzM0V4cG9ydHM6IElNaWNyb0FwcHNTM0V4cG9ydHM7XG4gIHJlYWRvbmx5IHJldmVyc2VEb21haW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZG9tYWluTmFtZUVkZ2U6IHN0cmluZztcbiAgcmVhZG9ubHkgZG9tYWluTmFtZU9yaWdpbjogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGFzc2V0TmFtZVJvb3Q6IHN0cmluZztcbiAgcmVhZG9ubHkgYXNzZXROYW1lU3VmZml4OiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgY2VydEVkZ2U6IGFjbS5JQ2VydGlmaWNhdGU7XG5cbiAgcmVhZG9ubHkgcjUzWm9uZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcjUzWm9uZUlEOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNaWNyb0FwcHNDRiBleHRlbmRzIGNkay5Db25zdHJ1Y3QgaW1wbGVtZW50cyBJTWljcm9BcHBzQ0ZFeHBvcnRzIHtcbiAgcHJpdmF0ZSBfY2xvdWRGcm9udERpc3RybzogY2YuRGlzdHJpYnV0aW9uO1xuICBwdWJsaWMgZ2V0IGNsb3VkRnJvbnREaXN0cm8oKTogY2YuRGlzdHJpYnV0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvdWRGcm9udERpc3RybztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IE1pY3JvQXBwc0NGUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHJvcHMgbXVzdCBiZSBzZXQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBzM0V4cG9ydHMsXG4gICAgICBkb21haW5OYW1lRWRnZSxcbiAgICAgIGRvbWFpbk5hbWVPcmlnaW4sXG4gICAgICByZXZlcnNlRG9tYWluTmFtZSxcbiAgICAgIGF1dG9EZWxldGVFdmVyeXRoaW5nLFxuICAgICAgY2VydEVkZ2UsXG4gICAgICBhc3NldE5hbWVSb290LFxuICAgICAgYXNzZXROYW1lU3VmZml4LFxuICAgICAgcjUzWm9uZU5hbWUsXG4gICAgICByNTNab25lSUQsXG4gICAgfSA9IHByb3BzO1xuXG4gICAgLy9cbiAgICAvLyBDbG91ZEZyb250IERpc3Ryb1xuICAgIC8vXG4gICAgY29uc3QgYXBpR3d5T3JpZ2luID0gbmV3IGNmb3JpZ2lucy5IdHRwT3JpZ2luKGRvbWFpbk5hbWVPcmlnaW4sIHtcbiAgICAgIHByb3RvY29sUG9saWN5OiBjZi5PcmlnaW5Qcm90b2NvbFBvbGljeS5IVFRQU19PTkxZLFxuICAgICAgb3JpZ2luU3NsUHJvdG9jb2xzOiBbY2YuT3JpZ2luU3NsUG9saWN5LlRMU19WMV8yXSxcbiAgICB9KTtcbiAgICB0aGlzLl9jbG91ZEZyb250RGlzdHJvID0gbmV3IGNmLkRpc3RyaWJ1dGlvbih0aGlzLCAnbWljcm9hcHBzLWNsb3VkZnJvbnQnLCB7XG4gICAgICBjb21tZW50OiBgJHthc3NldE5hbWVSb290fSR7YXNzZXROYW1lU3VmZml4fWAsXG4gICAgICBkb21haW5OYW1lczogW2RvbWFpbk5hbWVFZGdlXSxcbiAgICAgIGNlcnRpZmljYXRlOiBjZXJ0RWRnZSxcbiAgICAgIGh0dHBWZXJzaW9uOiBjZi5IdHRwVmVyc2lvbi5IVFRQMixcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBhbGxvd2VkTWV0aG9kczogY2YuQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMLFxuICAgICAgICBjYWNoZVBvbGljeTogY2YuQ2FjaGVQb2xpY3kuQ0FDSElOR19ESVNBQkxFRCxcbiAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6IGNmLk9yaWdpblJlcXVlc3RQb2xpY3kuQUxMX1ZJRVdFUixcbiAgICAgICAgb3JpZ2luOiBhcGlHd3lPcmlnaW4sXG4gICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBjZi5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgIH0sXG4gICAgICBlbmFibGVJcHY2OiB0cnVlLFxuICAgICAgcHJpY2VDbGFzczogY2YuUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDAsXG4gICAgICBlbmFibGVMb2dnaW5nOiB0cnVlLFxuICAgICAgbG9nQnVja2V0OiBwcm9wcy5zM0V4cG9ydHMuYnVja2V0TG9ncyxcbiAgICAgIGxvZ0ZpbGVQcmVmaXg6IGAke3JldmVyc2VEb21haW5OYW1lfS9jbG91ZGZyb250LXJhdy9gLFxuICAgIH0pO1xuICAgIGlmIChhdXRvRGVsZXRlRXZlcnl0aGluZykge1xuICAgICAgdGhpcy5fY2xvdWRGcm9udERpc3Ryby5hcHBseVJlbW92YWxQb2xpY3koY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBBZGQgQmVoYXZpb3JzXG4gICAgLy9cbiAgICBjb25zdCBhcGlHd3lCZWhhdmlvcjogY2YuQWRkQmVoYXZpb3JPcHRpb25zID0ge1xuICAgICAgYWxsb3dlZE1ldGhvZHM6IGNmLkFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTCxcbiAgICAgIGNhY2hlUG9saWN5OiBjZi5DYWNoZVBvbGljeS5DQUNISU5HX0RJU0FCTEVELFxuICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5OiBjZi5PcmlnaW5SZXF1ZXN0UG9saWN5LkFMTF9WSUVXRVIsXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2YuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgfTtcbiAgICBjb25zdCBzM0JlaGF2aW9yOiBjZi5BZGRCZWhhdmlvck9wdGlvbnMgPSB7XG4gICAgICBhbGxvd2VkTWV0aG9kczogY2YuQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgIGNhY2hlUG9saWN5OiBjZi5DYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRCxcbiAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeTogY2YuT3JpZ2luUmVxdWVzdFBvbGljeS5DT1JTX1MzX09SSUdJTixcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBjZi5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICB9O1xuICAgIGNvbnN0IGFwaUd3eVZlcnNpb25Sb290QmVoYXZpb3I6IGNmLkFkZEJlaGF2aW9yT3B0aW9ucyA9IHtcbiAgICAgIGFsbG93ZWRNZXRob2RzOiBjZi5BbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgY2FjaGVQb2xpY3k6IGNmLkNhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVELFxuICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2YuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgfTtcblxuICAgIC8vXG4gICAgLy8gU2V0dXAgUm91dGVzXG4gICAgLy8gUHVsbCB0byB0aGUgQVBJIGZpcnN0LCB0aGVuIHB1bGwgdG8gUzMgaWYgaXQgY29udGFpbnMgL3N0YXRpYy9cbiAgICAvLyBQdWxsIGFueXRoaW5nIHVuZGVyIC9hcHBOYW1lL3gueS56LyBmb2xkZXIgd2l0aCAnLicgaW4gZmlsZSBuYW1lIHRvIFMzXG4gICAgLy8gTGV0IGV2ZXJ5dGhpbmcgZWxzZSBmYWxsIHRocm91Z2ggdG8gdGhlIEFQSSBHYXRld2F5XG4gICAgLy9cbiAgICB0aGlzLl9jbG91ZEZyb250RGlzdHJvLmFkZEJlaGF2aW9yKCcvKi8qL2FwaS8qJywgYXBpR3d5T3JpZ2luLCBhcGlHd3lCZWhhdmlvcik7XG4gICAgdGhpcy5fY2xvdWRGcm9udERpc3Ryby5hZGRCZWhhdmlvcignLyovKi9zdGF0aWMvKicsIHMzRXhwb3J0cy5idWNrZXRBcHBzT3JpZ2luLCBzM0JlaGF2aW9yKTtcbiAgICB0aGlzLl9jbG91ZEZyb250RGlzdHJvLmFkZEJlaGF2aW9yKCcvKi8qLyouKicsIHMzRXhwb3J0cy5idWNrZXRBcHBzT3JpZ2luLCBzM0JlaGF2aW9yKTtcbiAgICB0aGlzLl9jbG91ZEZyb250RGlzdHJvLmFkZEJlaGF2aW9yKCcvKi8qLycsIGFwaUd3eU9yaWdpbiwgYXBpR3d5VmVyc2lvblJvb3RCZWhhdmlvcik7XG5cbiAgICAvL1xuICAgIC8vIENyZWF0ZSB0aGUgZWRnZSBuYW1lIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cm9cbiAgICAvL1xuXG4gICAgY29uc3Qgem9uZSA9IHI1My5Ib3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyh0aGlzLCAnbWljcm9hcHBzLXpvbmUnLCB7XG4gICAgICB6b25lTmFtZTogcjUzWm9uZU5hbWUsXG4gICAgICBob3N0ZWRab25lSWQ6IHI1M1pvbmVJRCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJyQXBwc0VkZ2UgPSBuZXcgcjUzLlJlY29yZFNldCh0aGlzLCAnbWljcm9hcHBzLWVkZ2UtYXJlY29yZCcsIHtcbiAgICAgIHJlY29yZE5hbWU6IGRvbWFpbk5hbWVFZGdlLFxuICAgICAgcmVjb3JkVHlwZTogcjUzLlJlY29yZFR5cGUuQSxcbiAgICAgIHRhcmdldDogcjUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHI1M3RhcmdldHMuQ2xvdWRGcm9udFRhcmdldCh0aGlzLl9jbG91ZEZyb250RGlzdHJvKSksXG4gICAgICB6b25lLFxuICAgIH0pO1xuICAgIGlmIChhdXRvRGVsZXRlRXZlcnl0aGluZykge1xuICAgICAgcnJBcHBzRWRnZS5hcHBseVJlbW92YWxQb2xpY3koY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
180
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
181
|
+
MicroAppsCF[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroAppsCF", version: "0.0.29" };
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzQ0YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTWljcm9BcHBzQ0YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBMEM7QUFHMUMsOENBQThDO0FBQzlDLDZEQUE2RDtBQUM3RCw0Q0FBNEM7QUFDNUMsMkRBQTJEO0FBRTNELHFDQUFxQztBQUNyQyx5REFBc0Q7Ozs7QUF5RHRELE1BQWEsV0FBWSxTQUFRLEdBQUcsQ0FBQyxTQUFTOzs7Ozs7SUF5RjVDLFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsSUFDRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDO1lBQ25FLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsRUFDbkU7WUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7U0FDOUY7UUFFRCxNQUFNLEVBQ0osY0FBYyxFQUNkLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsYUFBYSxFQUNiLFFBQVEsRUFDUixhQUFhLEVBQ2IsZUFBZSxFQUNmLE9BQU8sRUFDUCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLGNBQWMsR0FDZixHQUFHLEtBQUssQ0FBQztRQUVWLE1BQU0seUJBQXlCLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRTtZQUN4RSxhQUFhO1lBQ2IsZUFBZTtZQUNmLGNBQWM7U0FDZixDQUFDLENBQUM7UUFFSCxFQUFFO1FBQ0YsbUNBQW1DO1FBQ25DLEVBQUU7UUFDRixJQUFJ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Q0FBQzs7QUF0Rkgsa0NBNkxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9zaXggYXMgcG9zaXhQYXRoIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBhcGlnd3kgZnJvbSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXl2Mic7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnQGF3cy1jZGsvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjZiBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBjZm9yaWdpbnMgZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgKiBhcyByNTMgZnJvbSAnQGF3cy1jZGsvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgcjUzdGFyZ2V0cyBmcm9tICdAYXdzLWNkay9hd3Mtcm91dGU1My10YXJnZXRzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ0Bhd3MtY2RrL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyByZXZlcnNlRG9tYWluIH0gZnJvbSAnLi91dGlscy9SZXZlcnNlRG9tYWluJztcblxuZXhwb3J0IGludGVyZmFjZSBJTWljcm9BcHBzQ0Yge1xuICByZWFkb25seSBjbG91ZEZyb250RGlzdHJvOiBjZi5EaXN0cmlidXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWljcm9BcHBzQ0ZQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBjZGsuUmVtb3ZhbFBvbGljeTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVja2V0QXBwc09yaWdpbjogY2ZvcmlnaW5zLlMzT3JpZ2luO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJ1Y2tldExvZ3M/OiBzMy5JQnVja2V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkb21haW5OYW1lRWRnZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkb21haW5OYW1lT3JpZ2luPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGh0dHBBcGk6IGFwaWd3eS5IdHRwQXBpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFzc2V0TmFtZVJvb3Q/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFzc2V0TmFtZVN1ZmZpeD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNlcnRFZGdlPzogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHI1M1pvbmU/OiByNTMuSUhvc3RlZFpvbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJvb3RQYXRoUHJlZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUFQSU9yaWdpblBvbGljeU9wdGlvbnMge1xuICByZWFkb25seSBhc3NldE5hbWVSb290Pzogc3RyaW5nO1xuICByZWFkb25seSBhc3NldE5hbWVTdWZmaXg/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVFZGdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFJvdXRlc09wdGlvbnMge1xuICByZWFkb25seSBhcGlHd3lPcmlnaW46IGNmLklPcmlnaW47XG4gIHJlYWRvbmx5IGJ1Y2tldEFwcHNPcmlnaW46IGNmb3JpZ2lucy5TM09yaWdpbjtcbiAgcmVhZG9ubHkgZGlzdHJvOiBjZi5EaXN0cmlidXRpb247XG4gIHJlYWRvbmx5IGFwaWd3eU9yaWdpblJlcXVlc3RQb2xpY3k6IGNmLklPcmlnaW5SZXF1ZXN0UG9saWN5O1xuICByZWFkb25seSByb290UGF0aFByZWZpeD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE1pY3JvQXBwc0NGIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCBpbXBsZW1lbnRzIElNaWNyb0FwcHNDRiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQVBJT3JpZ2luUG9saWN5KFxuICAgIHNjb3BlOiBjZGsuQ29uc3RydWN0LFxuICAgIHByb3BzOiBDcmVhdGVBUElPcmlnaW5Qb2xpY3lPcHRpb25zLFxuICApOiBjZi5JT3JpZ2luUmVxdWVzdFBvbGljeSB7XG4gICAgY29uc3QgeyBhc3NldE5hbWVSb290LCBhc3NldE5hbWVTdWZmaXgsIGRvbWFpbk5hbWVFZGdlIH0gPSBwcm9wcztcblxuICAgIGxldCBhcGlnd3lPcmlnaW5SZXF1ZXN0UG9saWN5OiBjZi5JT3JpZ2luUmVxdWVzdFBvbGljeSA9IGNmLk9yaWdpblJlcXVlc3RQb2xpY3kuQUxMX1ZJRVdFUjtcbiAgICBpZiAoZG9tYWluTmFtZUVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gV2hlbiBub3QgdXNpbmcgYSBjdXN0b20gZG9tYWluIG5hbWUgd2UgbXVzdCBsaW1pdCBkb3duIHRoZSBvcmlnaW4gcG9saWN5IHRvXG4gICAgICAvLyBwcmV2ZW50IGl0IGZyb20gcGFzc2luZyB0aGUgSG9zdCBoZWFkZXIgKGRpc3RyaWJ1dGlvbl9pZC5jbG91ZGZyb250Lm5ldCkgdG9cbiAgICAgIC8vIGFwaWd3eSB3aGljaCB3aWxsIHRoZW4gcmVqZWN0IGl0IHdpdGggYSA0MDMgYmVjYXVzZSBpdCBkb2VzIG5vdCBtYXRjaCB0aGVcbiAgICAgIC8vIGV4ZWN1dGUtYXBpIG5hbWUgdGhhdCBhcGlnd3kgaXMgZXhwZWN0aW5nLlxuICAgICAgLy9cbiAgICAgIC8vIDIwMjEtMTItMjggLSBUaGVyZSBpcyBhIGJ1ZyBpbiB0aGUgbmFtZSBnZW5lcmF0aW9uIHRoYXQgY2F1c2VzIHRoZSBzYW1lIGFzc2V0XG4gICAgICAvLyBpbiBkaWZmZXJlbnQgc3RhY2tzIHRvIGhhdmUgdGhlIHNhbWUgZ2VuZXJhdGVkIG5hbWUuICBXZSBoYXZlIHRvIG1ha2UgdGhlIGlkXG4gICAgICAvLyBpbiBhbGwgY2FzZXMgdG8gZW5zdXJlIHRoZSBnZW5lcmF0ZWQgbmFtZSBpcyB1bmlxdWUuXG4gICAgICBhcGlnd3lPcmlnaW5SZXF1ZXN0UG9saWN5ID0gbmV3IGNmLk9yaWdpblJlcXVlc3RQb2xpY3koXG4gICAgICAgIHNjb3BlLFxuICAgICAgICBgYXBpZ3d5LW9yaWdpbi1wb2xpY3ktJHtjZGsuU3RhY2sub2Yoc2NvcGUpLnN0YWNrTmFtZX1gLFxuICAgICAgICB7XG4gICAgICAgICAgY29tbWVudDogYXNzZXROYW1lUm9vdCA/IGAke2Fzc2V0TmFtZVJvb3R9LWFwaWd3eSR7YXNzZXROYW1lU3VmZml4fWAgOiB1bmRlZmluZWQsXG5cbiAgICAgICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5TmFtZTogYXNzZXROYW1lUm9vdFxuICAgICAgICAgICAgPyBgJHthc3NldE5hbWVSb290fS1hcGlnd3kke2Fzc2V0TmFtZVN1ZmZpeH1gXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBjb29raWVCZWhhdmlvcjogY2YuT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yLmFsbCgpLFxuICAgICAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IGNmLk9yaWdpblJlcXVlc3RRdWVyeVN0cmluZ0JlaGF2aW9yLmFsbCgpLFxuICAgICAgICAgIGhlYWRlckJlaGF2aW9yOiBjZi5PcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3IuYWxsb3dMaXN0KCd1c2VyLWFnZW50JywgJ3JlZmVyZXInKSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFwaWd3eU9yaWdpblJlcXVlc3RQb2xpY3k7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBhZGRSb3V0ZXMoX3Njb3BlOiBjZGsuQ29uc3RydWN0LCBwcm9wczogQWRkUm91dGVzT3B0aW9ucykge1xuICAgIGNvbnN0IHtcbiAgICAgIGFwaUd3eU9yaWdpbixcbiAgICAgIGJ1Y2tldEFwcHNPcmlnaW4sXG4gICAgICBkaXN0cm8sXG4gICAgICBhcGlnd3lPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcm9vdFBhdGhQcmVmaXggPSAnJyxcbiAgICB9ID0gcHJvcHM7XG5cbiAgICAvL1xuICAgIC8vIEFkZCBCZWhhdmlvcnNcbiAgICAvL1xuICAgIGNvbnN0IHMzQmVoYXZpb3JPcHRpb25zOiBjZi5BZGRCZWhhdmlvck9wdGlvbnMgPSB7XG4gICAgICBhbGxvd2VkTWV0aG9kczogY2YuQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgIGNhY2hlUG9saWN5OiBjZi5DYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRCxcbiAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeTogY2YuT3JpZ2luUmVxdWVzdFBvbGljeS5DT1JTX1MzX09SSUdJTixcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBjZi5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICB9O1xuICAgIGNvbnN0IGFwaUd3eUJlaGF2aW9yT3B0aW9uczogY2YuQWRkQmVoYXZpb3JPcHRpb25zID0ge1xuICAgICAgYWxsb3dlZE1ldGhvZHM6IGNmLkFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTCxcbiAgICAgIC8vIFRPRE86IENhY2hpbmcgbmVlZHMgdG8gYmUgc2V0IGJ5IHRoZSBhcHAgcmVzcG9uc2VcbiAgICAgIGNhY2hlUG9saWN5OiBjZi5DYWNoZVBvbGljeS5DQUNISU5HX0RJU0FCTEVELFxuICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5OiBhcGlnd3lPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNmLlZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgIH07XG5cbiAgICAvL1xuICAgIC8vIEFsbCBzdGF0aWMgYXNzZXRzIGFyZSBhc3N1bWVkIHRvIGhhdmUgYSBkb3QgaW4gdGhlbVxuICAgIC8vXG4gICAgZGlzdHJvLmFkZEJlaGF2aW9yKFxuICAgICAgcG9zaXhQYXRoLmpvaW4ocm9vdFBhdGhQcmVmaXgsICcvKi8qLyouKicpLFxuICAgICAgYnVja2V0QXBwc09yaWdpbixcbiAgICAgIHMzQmVoYXZpb3JPcHRpb25zLFxuICAgICk7XG5cbiAgICAvL1xuICAgIC8vIEV2ZXJ5dGhpbmcgdGhhdCBpc24ndCBhIHN0YXRpYyBhc3NldCBpcyBnb2luZyB0byBBUEkgR2F0ZXdheVxuICAgIC8vIFRoZXJlIGlzIG5vIHRyYWlsaW5nIHNsYXNoIGJlY2F1c2UgU2VydmVybGVzcyBOZXh0LmpzIHdhbnRzXG4gICAgLy8gZ28gbG9hZCBwYWdlcyBhdCAvcmVsZWFzZS8wLjAuMyAod2l0aCBubyB0cmFpbGluZyBzbGFzaCkuXG4gICAgLy9cbiAgICBkaXN0cm8uYWRkQmVoYXZpb3IocG9zaXhQYXRoLmpvaW4ocm9vdFBhdGhQcmVmaXgsICcvKicpLCBhcGlHd3lPcmlnaW4sIGFwaUd3eUJlaGF2aW9yT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIF9jbG91ZEZyb250RGlzdHJvOiBjZi5EaXN0cmlidXRpb247XG4gIHB1YmxpYyBnZXQgY2xvdWRGcm9udERpc3RybygpOiBjZi5EaXN0cmlidXRpb24ge1xuICAgIHJldHVybiB0aGlzLl9jbG91ZEZyb250RGlzdHJvO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTWljcm9BcHBzQ0ZQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwcm9wcyBtdXN0IGJlIHNldCcpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIChwcm9wcy5yNTNab25lID09PSB1bmRlZmluZWQgJiYgcHJvcHMuZG9tYWluTmFtZUVkZ2UgIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIChwcm9wcy5yNTNab25lICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZG9tYWluTmFtZUVkZ2UgPT09IHVuZGVmaW5lZClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSWYgZWl0aGVyIG9mIHI1M1pvbmUgb3IgZG9tYWluTmFtZUVkZ2UgYXJlIHNldCB0aGVuIHRoZSBvdGhlciBtdXN0IGJlIHNldCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHtcbiAgICAgIGRvbWFpbk5hbWVFZGdlLFxuICAgICAgZG9tYWluTmFtZU9yaWdpbixcbiAgICAgIGh0dHBBcGksXG4gICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgY2VydEVkZ2UsXG4gICAgICBhc3NldE5hbWVSb290LFxuICAgICAgYXNzZXROYW1lU3VmZml4LFxuICAgICAgcjUzWm9uZSxcbiAgICAgIGJ1Y2tldExvZ3MsXG4gICAgICBidWNrZXRBcHBzT3JpZ2luLFxuICAgICAgcm9vdFBhdGhQcmVmaXgsXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgYXBpZ3d5T3JpZ2luUmVxdWVzdFBvbGljeSA9IE1pY3JvQXBwc0NGLmNyZWF0ZUFQSU9yaWdpblBvbGljeSh0aGlzLCB7XG4gICAgICBhc3NldE5hbWVSb290LFxuICAgICAgYXNzZXROYW1lU3VmZml4LFxuICAgICAgZG9tYWluTmFtZUVkZ2UsXG4gICAgfSk7XG5cbiAgICAvL1xuICAgIC8vIERldGVybWluZSBVUkwgb2YgdGhlIG9yaWdpbiBGUUROXG4gICAgLy9cbiAgICBsZXQgaHR0cE9yaWdpbkZRRE46IHN0cmluZyA9ICdpbnZhbGlkLnB3cmRydnIuY29tJztcbiAgICBpZiAoZG9tYWluTmFtZU9yaWdpbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBodHRwT3JpZ2luRlFETiA9IGRvbWFpbk5hbWVPcmlnaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGh0dHBPcmlnaW5GUUROID0gYCR7aHR0cEFwaS5hcGlJZH0uZXhlY3V0ZS1hcGkuJHtjZGsuQXdzLlJFR0lPTn0uYW1hem9uYXdzLmNvbWA7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBDbG91ZEZyb250IERpc3Ryb1xuICAgIC8vXG4gICAgY29uc3QgYXBpR3d5T3JpZ2luID0gbmV3IGNmb3JpZ2lucy5IdHRwT3JpZ2luKGh0dHBPcmlnaW5GUUROLCB7XG4gICAgICBwcm90b2NvbFBvbGljeTogY2YuT3JpZ2luUHJvdG9jb2xQb2xpY3kuSFRUUFNfT05MWSxcbiAgICAgIG9yaWdpblNzbFByb3RvY29sczogW2NmLk9yaWdpblNzbFBvbGljeS5UTFNfVjFfMl0sXG4gICAgfSk7XG4gICAgdGhpcy5fY2xvdWRGcm9udERpc3RybyA9IG5ldyBjZi5EaXN0cmlidXRpb24odGhpcywgJ2NmdCcsIHtcbiAgICAgIGNvbW1lbnQ6IGFzc2V0TmFtZVJvb3QgPyBgJHthc3NldE5hbWVSb290fSR7YXNzZXROYW1lU3VmZml4fWAgOiBkb21haW5OYW1lRWRnZSxcbiAgICAgIGRvbWFpbk5hbWVzOiBkb21haW5OYW1lRWRnZSAhPT0gdW5kZWZpbmVkID8gW2RvbWFpbk5hbWVFZGdlXSA6IHVuZGVmaW5lZCxcbiAgICAgIGNlcnRpZmljYXRlOiBjZXJ0RWRnZSxcbiAgICAgIGh0dHBWZXJzaW9uOiBjZi5IdHRwVmVyc2lvbi5IVFRQMixcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBhbGxvd2VkTWV0aG9kczogY2YuQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMLFxuICAgICAgICBjYWNoZVBvbGljeTogY2YuQ2FjaGVQb2xpY3kuQ0FDSElOR19ESVNBQkxFRCxcbiAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6IGFwaWd3eU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICAgIG9yaWdpbjogYXBpR3d5T3JpZ2luLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2YuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICB9LFxuICAgICAgZW5hYmxlSXB2NjogdHJ1ZSxcbiAgICAgIHByaWNlQ2xhc3M6IGNmLlByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwLFxuICAgICAgbG9nQnVja2V0OiBidWNrZXRMb2dzLFxuICAgICAgbG9nRmlsZVByZWZpeDogcHJvcHMuZG9tYWluTmFtZUVkZ2VcbiAgICAgICAgPyBgJHtyZXZlcnNlRG9tYWluKHByb3BzLmRvbWFpbk5hbWVFZGdlKX0vY2xvdWRmcm9udC1yYXcvYFxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBpZiAocmVtb3ZhbFBvbGljeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jbG91ZEZyb250RGlzdHJvLmFwcGx5UmVtb3ZhbFBvbGljeShyZW1vdmFsUG9saWN5KTtcbiAgICB9XG5cbiAgICAvLyBBZGQgcm91dGVzIHRvIHRoZSBDbG91ZEZyb250IERpc3RyaWJ1dGlvblxuICAgIE1pY3JvQXBwc0NGLmFkZFJvdXRlcyhzY29wZSwge1xuICAgICAgYXBpR3d5T3JpZ2luLFxuICAgICAgYnVja2V0QXBwc09yaWdpbixcbiAgICAgIGRpc3RybzogdGhpcy5fY2xvdWRGcm9udERpc3RybyxcbiAgICAgIGFwaWd3eU9yaWdpblJlcXVlc3RQb2xpY3k6IGFwaWd3eU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByb290UGF0aFByZWZpeCxcbiAgICB9KTtcblxuICAgIC8vXG4gICAgLy8gQ3JlYXRlIHRoZSBlZGdlIG5hbWUgZm9yIHRoZSBDbG91ZEZyb250IGRpc3Ryb1xuICAgIC8vXG5cbiAgICBpZiAocjUzWm9uZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByckFwcHNFZGdlID0gbmV3IHI1My5SZWNvcmRTZXQodGhpcywgJ2VkZ2UtYXJlY29yZCcsIHtcbiAgICAgICAgcmVjb3JkTmFtZTogZG9tYWluTmFtZUVkZ2UsXG4gICAgICAgIHJlY29yZFR5cGU6IHI1My5SZWNvcmRUeXBlLkEsXG4gICAgICAgIHRhcmdldDogcjUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHI1M3RhcmdldHMuQ2xvdWRGcm9udFRhcmdldCh0aGlzLl9jbG91ZEZyb250RGlzdHJvKSksXG4gICAgICAgIHpvbmU6IHI1M1pvbmUsXG4gICAgICB9KTtcbiAgICAgIGlmIChyZW1vdmFsUG9saWN5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcnJBcHBzRWRnZS5hcHBseVJlbW92YWxQb2xpY3kocmVtb3ZhbFBvbGljeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/MicroAppsS3.d.ts
CHANGED
|
@@ -2,42 +2,139 @@ import * as cf from '@aws-cdk/aws-cloudfront';
|
|
|
2
2
|
import * as cforigins from '@aws-cdk/aws-cloudfront-origins';
|
|
3
3
|
import * as s3 from '@aws-cdk/aws-s3';
|
|
4
4
|
import * as cdk from '@aws-cdk/core';
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* @stability stable
|
|
7
|
+
*/
|
|
8
|
+
export interface IMicroAppsS3 {
|
|
9
|
+
/**
|
|
10
|
+
* S3 bucket for deployed applications.
|
|
11
|
+
*
|
|
12
|
+
* @stability stable
|
|
13
|
+
*/
|
|
6
14
|
readonly bucketApps: s3.IBucket;
|
|
7
|
-
|
|
15
|
+
/**
|
|
16
|
+
* CloudFront Origin Access Identity for the deployed applications bucket.
|
|
17
|
+
*
|
|
18
|
+
* @stability stable
|
|
19
|
+
*/
|
|
8
20
|
readonly bucketAppsOAI: cf.OriginAccessIdentity;
|
|
21
|
+
/**
|
|
22
|
+
* CloudFront Origin for the deployed applications bucket.
|
|
23
|
+
*
|
|
24
|
+
* @stability stable
|
|
25
|
+
*/
|
|
9
26
|
readonly bucketAppsOrigin: cforigins.S3Origin;
|
|
27
|
+
/**
|
|
28
|
+
* S3 bucket for staged applications (prior to deploy).
|
|
29
|
+
*
|
|
30
|
+
* @stability stable
|
|
31
|
+
*/
|
|
10
32
|
readonly bucketAppsStaging: s3.IBucket;
|
|
11
|
-
|
|
33
|
+
/**
|
|
34
|
+
* S3 bucket for CloudFront logs.
|
|
35
|
+
*
|
|
36
|
+
* @stability stable
|
|
37
|
+
*/
|
|
12
38
|
readonly bucketLogs: s3.IBucket;
|
|
13
39
|
}
|
|
14
|
-
|
|
40
|
+
/**
|
|
41
|
+
* @stability stable
|
|
42
|
+
*/
|
|
43
|
+
export interface MicroAppsS3Props {
|
|
15
44
|
/**
|
|
16
|
-
*
|
|
17
|
-
* Requires that autoDeleteEverything be set to true.
|
|
45
|
+
* RemovalPolicy override for child resources.
|
|
18
46
|
*
|
|
19
|
-
*
|
|
47
|
+
* Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`
|
|
48
|
+
*
|
|
49
|
+
* @default - per resource default
|
|
50
|
+
* @stability stable
|
|
20
51
|
*/
|
|
21
|
-
readonly
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
52
|
+
readonly removalPolicy?: cdk.RemovalPolicy;
|
|
53
|
+
/**
|
|
54
|
+
* S3 deployed apps bucket name.
|
|
55
|
+
*
|
|
56
|
+
* @default auto-assigned
|
|
57
|
+
* @stability stable
|
|
58
|
+
*/
|
|
59
|
+
readonly bucketAppsName?: string;
|
|
60
|
+
/**
|
|
61
|
+
* S3 staging apps bucket name.
|
|
62
|
+
*
|
|
63
|
+
* @default auto-assigned
|
|
64
|
+
* @stability stable
|
|
65
|
+
*/
|
|
66
|
+
readonly bucketAppsStagingName?: string;
|
|
67
|
+
/**
|
|
68
|
+
* S3 logs bucket name.
|
|
69
|
+
*
|
|
70
|
+
* @default auto-assigned
|
|
71
|
+
* @stability stable
|
|
72
|
+
*/
|
|
73
|
+
readonly bucketLogsName?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Optional asset name root.
|
|
76
|
+
*
|
|
77
|
+
* @default - resource names auto assigned
|
|
78
|
+
* @stability stable
|
|
79
|
+
* @example
|
|
80
|
+
*
|
|
81
|
+
* microapps
|
|
82
|
+
*/
|
|
83
|
+
readonly assetNameRoot?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Optional asset name suffix.
|
|
86
|
+
*
|
|
87
|
+
* @default none
|
|
88
|
+
* @stability stable
|
|
89
|
+
* @example
|
|
90
|
+
*
|
|
91
|
+
* -dev-pr-12
|
|
92
|
+
*/
|
|
93
|
+
readonly assetNameSuffix?: string;
|
|
25
94
|
}
|
|
26
|
-
|
|
95
|
+
/**
|
|
96
|
+
* @stability stable
|
|
97
|
+
*/
|
|
98
|
+
export declare class MicroAppsS3 extends cdk.Construct implements IMicroAppsS3 {
|
|
27
99
|
private _bucketApps;
|
|
100
|
+
/**
|
|
101
|
+
* S3 bucket for deployed applications.
|
|
102
|
+
*
|
|
103
|
+
* @stability stable
|
|
104
|
+
*/
|
|
28
105
|
get bucketApps(): s3.IBucket;
|
|
29
|
-
private _bucketAppsName;
|
|
30
|
-
get bucketAppsName(): string;
|
|
31
106
|
private _bucketAppsOAI;
|
|
107
|
+
/**
|
|
108
|
+
* CloudFront Origin Access Identity for the deployed applications bucket.
|
|
109
|
+
*
|
|
110
|
+
* @stability stable
|
|
111
|
+
*/
|
|
32
112
|
get bucketAppsOAI(): cf.OriginAccessIdentity;
|
|
33
113
|
private _bucketAppsOrigin;
|
|
114
|
+
/**
|
|
115
|
+
* CloudFront Origin for the deployed applications bucket.
|
|
116
|
+
*
|
|
117
|
+
* @stability stable
|
|
118
|
+
*/
|
|
34
119
|
get bucketAppsOrigin(): cforigins.S3Origin;
|
|
35
120
|
private _bucketAppsStaging;
|
|
121
|
+
/**
|
|
122
|
+
* S3 bucket for staged applications (prior to deploy).
|
|
123
|
+
*
|
|
124
|
+
* @stability stable
|
|
125
|
+
*/
|
|
36
126
|
get bucketAppsStaging(): s3.IBucket;
|
|
37
|
-
private _bucketAppsStagingName;
|
|
38
|
-
get bucketAppsStagingName(): string;
|
|
39
127
|
private _bucketLogs;
|
|
128
|
+
/**
|
|
129
|
+
* S3 bucket for CloudFront logs.
|
|
130
|
+
*
|
|
131
|
+
* @stability stable
|
|
132
|
+
*/
|
|
40
133
|
get bucketLogs(): s3.IBucket;
|
|
134
|
+
/**
|
|
135
|
+
* MicroApps - Create just S3 resources.
|
|
136
|
+
*
|
|
137
|
+
* @stability stable
|
|
138
|
+
*/
|
|
41
139
|
constructor(scope: cdk.Construct, id: string, props?: MicroAppsS3Props);
|
|
42
140
|
}
|
|
43
|
-
export {};
|
package/lib/MicroAppsS3.js
CHANGED
|
@@ -1,80 +1,104 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.MicroAppsS3 = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
4
6
|
const cf = require("@aws-cdk/aws-cloudfront");
|
|
5
7
|
const cforigins = require("@aws-cdk/aws-cloudfront-origins");
|
|
6
8
|
const s3 = require("@aws-cdk/aws-s3");
|
|
7
9
|
const cdk = require("@aws-cdk/core");
|
|
10
|
+
/**
|
|
11
|
+
* @stability stable
|
|
12
|
+
*/
|
|
8
13
|
class MicroAppsS3 extends cdk.Construct {
|
|
14
|
+
/**
|
|
15
|
+
* MicroApps - Create just S3 resources.
|
|
16
|
+
*
|
|
17
|
+
* @stability stable
|
|
18
|
+
*/
|
|
9
19
|
constructor(scope, id, props) {
|
|
10
20
|
super(scope, id);
|
|
11
21
|
if (props === undefined) {
|
|
12
22
|
throw new Error('props must be set');
|
|
13
23
|
}
|
|
14
|
-
const {
|
|
15
|
-
// Use Auto-Delete S3Bucket
|
|
16
|
-
|
|
17
|
-
this._bucketAppsStagingName = `${reverseDomainName}-${assetNameRoot}-staging${assetNameSuffix}`;
|
|
18
|
-
const s3RemovalPolicy = autoDeleteEverything
|
|
19
|
-
? cdk.RemovalPolicy.DESTROY
|
|
20
|
-
: cdk.RemovalPolicy.RETAIN;
|
|
21
|
-
const s3AutoDeleteItems = autoDeleteEverything;
|
|
24
|
+
const { removalPolicy, assetNameRoot, assetNameSuffix } = props;
|
|
25
|
+
// Use Auto-Delete S3Bucket if removal policy is DESTROY
|
|
26
|
+
const s3AutoDeleteItems = removalPolicy === cdk.RemovalPolicy.DESTROY;
|
|
22
27
|
//
|
|
23
28
|
// S3 Bucket for Logging - Usable by many stacks
|
|
24
29
|
//
|
|
25
|
-
this._bucketLogs = new s3.Bucket(this, '
|
|
26
|
-
bucketName:
|
|
30
|
+
this._bucketLogs = new s3.Bucket(this, 'logs', {
|
|
31
|
+
bucketName: props.bucketLogsName,
|
|
27
32
|
autoDeleteObjects: s3AutoDeleteItems,
|
|
28
|
-
removalPolicy
|
|
33
|
+
removalPolicy,
|
|
29
34
|
});
|
|
30
35
|
//
|
|
31
36
|
// S3 Buckets for Apps
|
|
32
37
|
//
|
|
33
|
-
this._bucketApps = new s3.Bucket(this, '
|
|
34
|
-
bucketName:
|
|
38
|
+
this._bucketApps = new s3.Bucket(this, 'apps', {
|
|
39
|
+
bucketName: props.bucketAppsName,
|
|
35
40
|
autoDeleteObjects: s3AutoDeleteItems,
|
|
36
|
-
removalPolicy
|
|
41
|
+
removalPolicy,
|
|
37
42
|
});
|
|
38
|
-
this._bucketAppsStaging = new s3.Bucket(this, '
|
|
39
|
-
bucketName:
|
|
43
|
+
this._bucketAppsStaging = new s3.Bucket(this, 'staging', {
|
|
44
|
+
bucketName: props.bucketAppsStagingName,
|
|
40
45
|
autoDeleteObjects: s3AutoDeleteItems,
|
|
41
|
-
removalPolicy
|
|
46
|
+
removalPolicy,
|
|
42
47
|
});
|
|
43
48
|
// Create S3 Origin Identity
|
|
44
|
-
this._bucketAppsOAI = new cf.OriginAccessIdentity(this, '
|
|
45
|
-
comment: `${assetNameRoot}${assetNameSuffix}
|
|
49
|
+
this._bucketAppsOAI = new cf.OriginAccessIdentity(this, 'oai', {
|
|
50
|
+
comment: assetNameRoot !== undefined ? `${assetNameRoot}${assetNameSuffix}` : undefined,
|
|
46
51
|
});
|
|
47
|
-
if (
|
|
48
|
-
this._bucketAppsOAI.applyRemovalPolicy(
|
|
52
|
+
if (removalPolicy !== undefined) {
|
|
53
|
+
this._bucketAppsOAI.applyRemovalPolicy(removalPolicy);
|
|
49
54
|
}
|
|
50
|
-
//
|
|
51
|
-
// Add Origins
|
|
52
|
-
//
|
|
55
|
+
// Add Origin for CloudFront
|
|
53
56
|
this._bucketAppsOrigin = new cforigins.S3Origin(this._bucketApps, {
|
|
54
57
|
originAccessIdentity: this.bucketAppsOAI,
|
|
55
58
|
});
|
|
56
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* S3 bucket for deployed applications.
|
|
62
|
+
*
|
|
63
|
+
* @stability stable
|
|
64
|
+
*/
|
|
57
65
|
get bucketApps() {
|
|
58
66
|
return this._bucketApps;
|
|
59
67
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
/**
|
|
69
|
+
* CloudFront Origin Access Identity for the deployed applications bucket.
|
|
70
|
+
*
|
|
71
|
+
* @stability stable
|
|
72
|
+
*/
|
|
63
73
|
get bucketAppsOAI() {
|
|
64
74
|
return this._bucketAppsOAI;
|
|
65
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* CloudFront Origin for the deployed applications bucket.
|
|
78
|
+
*
|
|
79
|
+
* @stability stable
|
|
80
|
+
*/
|
|
66
81
|
get bucketAppsOrigin() {
|
|
67
82
|
return this._bucketAppsOrigin;
|
|
68
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* S3 bucket for staged applications (prior to deploy).
|
|
86
|
+
*
|
|
87
|
+
* @stability stable
|
|
88
|
+
*/
|
|
69
89
|
get bucketAppsStaging() {
|
|
70
90
|
return this._bucketAppsStaging;
|
|
71
91
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
92
|
+
/**
|
|
93
|
+
* S3 bucket for CloudFront logs.
|
|
94
|
+
*
|
|
95
|
+
* @stability stable
|
|
96
|
+
*/
|
|
75
97
|
get bucketLogs() {
|
|
76
98
|
return this._bucketLogs;
|
|
77
99
|
}
|
|
78
100
|
}
|
|
79
101
|
exports.MicroAppsS3 = MicroAppsS3;
|
|
80
|
-
|
|
102
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
103
|
+
MicroAppsS3[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroAppsS3", version: "0.0.29" };
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzUzMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTWljcm9BcHBzUzMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBOEM7QUFDOUMsNkRBQTZEO0FBQzdELHNDQUFzQztBQUN0QyxxQ0FBcUM7Ozs7QUF1Q3JDLE1BQWEsV0FBWSxTQUFRLEdBQUcsQ0FBQyxTQUFTOzs7Ozs7SUEyQjVDLFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRWhFLHdEQUF3RDtRQUN4RCxNQUFNLGlCQUFpQixHQUFHLGFBQWEsS0FBSyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUV0RSxFQUFFO1FBQ0YsZ0RBQWdEO1FBQ2hELEVBQUU7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzdDLFVBQVUsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNoQyxpQkFBaUIsRUFBRSxpQkFBaUI7WUFDcEMsYUFBYTtTQUNkLENBQUMsQ0FBQztRQUVILEVBQUU7UUFDRixzQkFBc0I7UUFDdEIsRUFBRTtRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDN0MsVUFBVSxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ2hDLGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxhQUFhO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3ZELFVBQVUsRUFBRSxLQUFLLENBQUMscUJBQXFCO1lBQ3ZDLGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxhQUFhO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUM3RCxPQUFPLEVBQUUsYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLEdBQUcsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDeEYsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxhQUFhLEtBQUssU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdkQ7UUFFRCw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQXhFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7Ozs7OztJQUdELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQzs7Ozs7O0lBR0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQzs7Ozs7O0lBR0QsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQzs7Ozs7O0lBR0QsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOztBQXhCSCxrQ0EyRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZiBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBjZm9yaWdpbnMgZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdAYXdzLWNkay9hd3MtczMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElNaWNyb0FwcHNTMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJ1Y2tldEFwcHM6IHMzLklCdWNrZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWNrZXRBcHBzT0FJOiBjZi5PcmlnaW5BY2Nlc3NJZGVudGl0eTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVja2V0QXBwc09yaWdpbjogY2ZvcmlnaW5zLlMzT3JpZ2luO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWNrZXRBcHBzU3RhZ2luZzogczMuSUJ1Y2tldDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWNrZXRMb2dzOiBzMy5JQnVja2V0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pY3JvQXBwc1MzUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogY2RrLlJlbW92YWxQb2xpY3k7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWNrZXRBcHBzTmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVja2V0QXBwc1N0YWdpbmdOYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVja2V0TG9nc05hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXNzZXROYW1lUm9vdD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXNzZXROYW1lU3VmZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWljcm9BcHBzUzMgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IGltcGxlbWVudHMgSU1pY3JvQXBwc1MzIHtcbiAgcHJpdmF0ZSBfYnVja2V0QXBwczogczMuSUJ1Y2tldDtcbiAgcHVibGljIGdldCBidWNrZXRBcHBzKCk6IHMzLklCdWNrZXQge1xuICAgIHJldHVybiB0aGlzLl9idWNrZXRBcHBzO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVja2V0QXBwc09BSTogY2YuT3JpZ2luQWNjZXNzSWRlbnRpdHk7XG4gIHB1YmxpYyBnZXQgYnVja2V0QXBwc09BSSgpOiBjZi5PcmlnaW5BY2Nlc3NJZGVudGl0eSB7XG4gICAgcmV0dXJuIHRoaXMuX2J1Y2tldEFwcHNPQUk7XG4gIH1cblxuICBwcml2YXRlIF9idWNrZXRBcHBzT3JpZ2luOiBjZm9yaWdpbnMuUzNPcmlnaW47XG4gIHB1YmxpYyBnZXQgYnVja2V0QXBwc09yaWdpbigpOiBjZm9yaWdpbnMuUzNPcmlnaW4ge1xuICAgIHJldHVybiB0aGlzLl9idWNrZXRBcHBzT3JpZ2luO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVja2V0QXBwc1N0YWdpbmc6IHMzLklCdWNrZXQ7XG4gIHB1YmxpYyBnZXQgYnVja2V0QXBwc1N0YWdpbmcoKTogczMuSUJ1Y2tldCB7XG4gICAgcmV0dXJuIHRoaXMuX2J1Y2tldEFwcHNTdGFnaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVja2V0TG9nczogczMuSUJ1Y2tldDtcbiAgcHVibGljIGdldCBidWNrZXRMb2dzKCk6IHMzLklCdWNrZXQge1xuICAgIHJldHVybiB0aGlzLl9idWNrZXRMb2dzO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBNaWNyb0FwcHNTM1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb3BzIG11c3QgYmUgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgeyByZW1vdmFsUG9saWN5LCBhc3NldE5hbWVSb290LCBhc3NldE5hbWVTdWZmaXggfSA9IHByb3BzO1xuXG4gICAgLy8gVXNlIEF1dG8tRGVsZXRlIFMzQnVja2V0IGlmIHJlbW92YWwgcG9saWN5IGlzIERFU1RST1lcbiAgICBjb25zdCBzM0F1dG9EZWxldGVJdGVtcyA9IHJlbW92YWxQb2xpY3kgPT09IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1k7XG5cbiAgICAvL1xuICAgIC8vIFMzIEJ1Y2tldCBmb3IgTG9nZ2luZyAtIFVzYWJsZSBieSBtYW55IHN0YWNrc1xuICAgIC8vXG4gICAgdGhpcy5fYnVja2V0TG9ncyA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ2xvZ3MnLCB7XG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5idWNrZXRMb2dzTmFtZSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiBzM0F1dG9EZWxldGVJdGVtcyxcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgfSk7XG5cbiAgICAvL1xuICAgIC8vIFMzIEJ1Y2tldHMgZm9yIEFwcHNcbiAgICAvL1xuICAgIHRoaXMuX2J1Y2tldEFwcHMgPSBuZXcgczMuQnVja2V0KHRoaXMsICdhcHBzJywge1xuICAgICAgYnVja2V0TmFtZTogcHJvcHMuYnVja2V0QXBwc05hbWUsXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogczNBdXRvRGVsZXRlSXRlbXMsXG4gICAgICByZW1vdmFsUG9saWN5LFxuICAgIH0pO1xuICAgIHRoaXMuX2J1Y2tldEFwcHNTdGFnaW5nID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnc3RhZ2luZycsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHByb3BzLmJ1Y2tldEFwcHNTdGFnaW5nTmFtZSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiBzM0F1dG9EZWxldGVJdGVtcyxcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgUzMgT3JpZ2luIElkZW50aXR5XG4gICAgdGhpcy5fYnVja2V0QXBwc09BSSA9IG5ldyBjZi5PcmlnaW5BY2Nlc3NJZGVudGl0eSh0aGlzLCAnb2FpJywge1xuICAgICAgY29tbWVudDogYXNzZXROYW1lUm9vdCAhPT0gdW5kZWZpbmVkID8gYCR7YXNzZXROYW1lUm9vdH0ke2Fzc2V0TmFtZVN1ZmZpeH1gIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICAgIGlmIChyZW1vdmFsUG9saWN5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2J1Y2tldEFwcHNPQUkuYXBwbHlSZW1vdmFsUG9saWN5KHJlbW92YWxQb2xpY3kpO1xuICAgIH1cblxuICAgIC8vIEFkZCBPcmlnaW4gZm9yIENsb3VkRnJvbnRcbiAgICB0aGlzLl9idWNrZXRBcHBzT3JpZ2luID0gbmV3IGNmb3JpZ2lucy5TM09yaWdpbih0aGlzLl9idWNrZXRBcHBzLCB7XG4gICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eTogdGhpcy5idWNrZXRBcHBzT0FJLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|