@pwrdrvr/microapps-cdk 0.2.9 → 0.2.12
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/.gitattributes +18 -18
- package/.jsii +1264 -165
- package/API.md +511 -8
- package/README.md +29 -0
- package/changelog.md +2 -0
- package/lib/MicroApps.d.ts +126 -105
- package/lib/MicroApps.d.ts.map +1 -0
- package/lib/MicroApps.js +32 -30
- package/lib/MicroAppsAPIGwy.d.ts +28 -61
- package/lib/MicroAppsAPIGwy.d.ts.map +1 -0
- package/lib/MicroAppsAPIGwy.js +14 -23
- package/lib/MicroAppsCF.d.ts +85 -104
- package/lib/MicroAppsCF.d.ts.map +1 -0
- package/lib/MicroAppsCF.js +58 -41
- package/lib/MicroAppsEdgeToOrigin.d.ts +108 -0
- package/lib/MicroAppsEdgeToOrigin.d.ts.map +1 -0
- package/lib/MicroAppsEdgeToOrigin.js +139 -0
- package/lib/MicroAppsS3.d.ts +19 -69
- package/lib/MicroAppsS3.d.ts.map +1 -0
- package/lib/MicroAppsS3.js +5 -32
- package/lib/MicroAppsSvcs.d.ts +58 -86
- package/lib/MicroAppsSvcs.d.ts.map +1 -0
- package/lib/MicroAppsSvcs.js +36 -95
- package/lib/MicroAppsTable.d.ts +60 -0
- package/lib/MicroAppsTable.d.ts.map +1 -0
- package/lib/MicroAppsTable.js +42 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +3 -1
- package/lib/microapps-deployer/index.js +174 -113
- package/lib/microapps-deployer/index.js.map +3 -3
- package/lib/microapps-edge-to-origin/index.js +97 -0
- package/lib/microapps-edge-to-origin/index.js.map +7 -0
- package/lib/microapps-router/index.js +54 -69
- package/lib/microapps-router/index.js.map +3 -3
- package/lib/microapps-router/templates/appFrame.html +0 -0
- package/lib/utils/ReverseDomain.d.ts +1 -0
- package/lib/utils/ReverseDomain.d.ts.map +1 -0
- package/package.json +29 -24
- package/releasetag.txt +1 -0
- package/version.txt +1 -0
- package/patches/@aws-cdk+aws-apigatewayv2-alpha+2.8.0-alpha.0.patch +0 -39
package/lib/MicroAppsS3.d.ts
CHANGED
|
@@ -4,142 +4,92 @@ import * as cforigins from 'aws-cdk-lib/aws-cloudfront-origins';
|
|
|
4
4
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
5
5
|
import { Construct } from 'constructs';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @experimental
|
|
7
|
+
* Represents a MicroApps S3
|
|
10
8
|
*/
|
|
11
9
|
export interface IMicroAppsS3 {
|
|
12
10
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* @experimental
|
|
11
|
+
* S3 bucket for deployed applications
|
|
16
12
|
*/
|
|
17
13
|
readonly bucketApps: s3.IBucket;
|
|
18
14
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* @experimental
|
|
15
|
+
* CloudFront Origin Access Identity for the deployed applications bucket
|
|
22
16
|
*/
|
|
23
17
|
readonly bucketAppsOAI: cf.OriginAccessIdentity;
|
|
24
18
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* @experimental
|
|
19
|
+
* CloudFront Origin for the deployed applications bucket
|
|
28
20
|
*/
|
|
29
21
|
readonly bucketAppsOrigin: cforigins.S3Origin;
|
|
30
22
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* @experimental
|
|
23
|
+
* S3 bucket for staged applications (prior to deploy)
|
|
34
24
|
*/
|
|
35
25
|
readonly bucketAppsStaging: s3.IBucket;
|
|
36
26
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* @experimental
|
|
27
|
+
* S3 bucket for CloudFront logs
|
|
40
28
|
*/
|
|
41
29
|
readonly bucketLogs: s3.IBucket;
|
|
42
30
|
}
|
|
43
31
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* @experimental
|
|
32
|
+
* Properties to initialize an instance of `MicroAppsS3`.
|
|
47
33
|
*/
|
|
48
34
|
export interface MicroAppsS3Props {
|
|
49
35
|
/**
|
|
50
|
-
*
|
|
36
|
+
* RemovalPolicy override for child resources
|
|
51
37
|
*
|
|
52
38
|
* Note: if set to DESTROY the S3 buckets will have `autoDeleteObjects` set to `true`
|
|
53
39
|
*
|
|
54
40
|
* @default - per resource default
|
|
55
|
-
* @experimental
|
|
56
41
|
*/
|
|
57
42
|
readonly removalPolicy?: RemovalPolicy;
|
|
58
43
|
/**
|
|
59
|
-
*
|
|
44
|
+
* S3 deployed apps bucket name
|
|
60
45
|
*
|
|
61
46
|
* @default auto-assigned
|
|
62
|
-
* @experimental
|
|
63
47
|
*/
|
|
64
48
|
readonly bucketAppsName?: string;
|
|
65
49
|
/**
|
|
66
|
-
*
|
|
50
|
+
* S3 staging apps bucket name
|
|
67
51
|
*
|
|
68
52
|
* @default auto-assigned
|
|
69
|
-
* @experimental
|
|
70
53
|
*/
|
|
71
54
|
readonly bucketAppsStagingName?: string;
|
|
72
55
|
/**
|
|
73
|
-
*
|
|
56
|
+
* S3 logs bucket name
|
|
74
57
|
*
|
|
75
58
|
* @default auto-assigned
|
|
76
|
-
* @experimental
|
|
77
59
|
*/
|
|
78
60
|
readonly bucketLogsName?: string;
|
|
79
61
|
/**
|
|
80
|
-
*
|
|
62
|
+
* Optional asset name root
|
|
81
63
|
*
|
|
64
|
+
* @example microapps
|
|
82
65
|
* @default - resource names auto assigned
|
|
83
|
-
* @experimental
|
|
84
|
-
* @example
|
|
85
|
-
*
|
|
86
|
-
* microapps
|
|
87
66
|
*/
|
|
88
67
|
readonly assetNameRoot?: string;
|
|
89
68
|
/**
|
|
90
|
-
*
|
|
69
|
+
* Optional asset name suffix
|
|
91
70
|
*
|
|
71
|
+
* @example -dev-pr-12
|
|
92
72
|
* @default none
|
|
93
|
-
* @experimental
|
|
94
|
-
* @example
|
|
95
|
-
*
|
|
96
|
-
* -dev-pr-12
|
|
97
73
|
*/
|
|
98
74
|
readonly assetNameSuffix?: string;
|
|
99
75
|
}
|
|
100
76
|
/**
|
|
101
|
-
*
|
|
77
|
+
* Create the durable MicroApps S3 Buckets
|
|
102
78
|
*
|
|
103
|
-
*
|
|
79
|
+
* These should be created in a stack that will not be deleted if
|
|
80
|
+
* there are breaking changes to MicroApps in the future.
|
|
104
81
|
*/
|
|
105
82
|
export declare class MicroAppsS3 extends Construct implements IMicroAppsS3 {
|
|
106
83
|
private _bucketApps;
|
|
107
|
-
/**
|
|
108
|
-
* (experimental) S3 bucket for deployed applications.
|
|
109
|
-
*
|
|
110
|
-
* @experimental
|
|
111
|
-
*/
|
|
112
84
|
get bucketApps(): s3.IBucket;
|
|
113
85
|
private _bucketAppsOAI;
|
|
114
|
-
/**
|
|
115
|
-
* (experimental) CloudFront Origin Access Identity for the deployed applications bucket.
|
|
116
|
-
*
|
|
117
|
-
* @experimental
|
|
118
|
-
*/
|
|
119
86
|
get bucketAppsOAI(): cf.OriginAccessIdentity;
|
|
120
87
|
private _bucketAppsOrigin;
|
|
121
|
-
/**
|
|
122
|
-
* (experimental) CloudFront Origin for the deployed applications bucket.
|
|
123
|
-
*
|
|
124
|
-
* @experimental
|
|
125
|
-
*/
|
|
126
88
|
get bucketAppsOrigin(): cforigins.S3Origin;
|
|
127
89
|
private _bucketAppsStaging;
|
|
128
|
-
/**
|
|
129
|
-
* (experimental) S3 bucket for staged applications (prior to deploy).
|
|
130
|
-
*
|
|
131
|
-
* @experimental
|
|
132
|
-
*/
|
|
133
90
|
get bucketAppsStaging(): s3.IBucket;
|
|
134
91
|
private _bucketLogs;
|
|
135
|
-
/**
|
|
136
|
-
* (experimental) S3 bucket for CloudFront logs.
|
|
137
|
-
*
|
|
138
|
-
* @experimental
|
|
139
|
-
*/
|
|
140
92
|
get bucketLogs(): s3.IBucket;
|
|
141
|
-
/**
|
|
142
|
-
* @experimental
|
|
143
|
-
*/
|
|
144
93
|
constructor(scope: Construct, id: string, props?: MicroAppsS3Props);
|
|
145
94
|
}
|
|
95
|
+
//# sourceMappingURL=MicroAppsS3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MicroAppsS3.d.ts","sourceRoot":"","sources":["../src/MicroAppsS3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,KAAK,SAAS,MAAM,oCAAoC,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,oBAAoB,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC;IAE9C;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,OAAO,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,SAAU,YAAW,YAAY;IAChE,OAAO,CAAC,WAAW,CAAa;IAChC,IAAW,UAAU,IAAI,EAAE,CAAC,OAAO,CAElC;IAED,OAAO,CAAC,cAAc,CAA0B;IAChD,IAAW,aAAa,IAAI,EAAE,CAAC,oBAAoB,CAElD;IAED,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,IAAW,gBAAgB,IAAI,SAAS,CAAC,QAAQ,CAEhD;IAED,OAAO,CAAC,kBAAkB,CAAa;IACvC,IAAW,iBAAiB,IAAI,EAAE,CAAC,OAAO,CAEzC;IAED,OAAO,CAAC,WAAW,CAAa;IAChC,IAAW,UAAU,IAAI,EAAE,CAAC,OAAO,CAElC;gBAEW,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB;CAgDnE"}
|
package/lib/MicroAppsS3.js
CHANGED
|
@@ -9,14 +9,12 @@ const cforigins = require("aws-cdk-lib/aws-cloudfront-origins");
|
|
|
9
9
|
const s3 = require("aws-cdk-lib/aws-s3");
|
|
10
10
|
const constructs_1 = require("constructs");
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Create the durable MicroApps S3 Buckets
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
* These should be created in a stack that will not be deleted if
|
|
15
|
+
* there are breaking changes to MicroApps in the future.
|
|
15
16
|
*/
|
|
16
17
|
class MicroAppsS3 extends constructs_1.Construct {
|
|
17
|
-
/**
|
|
18
|
-
* @experimental
|
|
19
|
-
*/
|
|
20
18
|
constructor(scope, id, props) {
|
|
21
19
|
super(scope, id);
|
|
22
20
|
if (props === undefined) {
|
|
@@ -58,48 +56,23 @@ class MicroAppsS3 extends constructs_1.Construct {
|
|
|
58
56
|
originAccessIdentity: this.bucketAppsOAI,
|
|
59
57
|
});
|
|
60
58
|
}
|
|
61
|
-
/**
|
|
62
|
-
* (experimental) S3 bucket for deployed applications.
|
|
63
|
-
*
|
|
64
|
-
* @experimental
|
|
65
|
-
*/
|
|
66
59
|
get bucketApps() {
|
|
67
60
|
return this._bucketApps;
|
|
68
61
|
}
|
|
69
|
-
/**
|
|
70
|
-
* (experimental) CloudFront Origin Access Identity for the deployed applications bucket.
|
|
71
|
-
*
|
|
72
|
-
* @experimental
|
|
73
|
-
*/
|
|
74
62
|
get bucketAppsOAI() {
|
|
75
63
|
return this._bucketAppsOAI;
|
|
76
64
|
}
|
|
77
|
-
/**
|
|
78
|
-
* (experimental) CloudFront Origin for the deployed applications bucket.
|
|
79
|
-
*
|
|
80
|
-
* @experimental
|
|
81
|
-
*/
|
|
82
65
|
get bucketAppsOrigin() {
|
|
83
66
|
return this._bucketAppsOrigin;
|
|
84
67
|
}
|
|
85
|
-
/**
|
|
86
|
-
* (experimental) S3 bucket for staged applications (prior to deploy).
|
|
87
|
-
*
|
|
88
|
-
* @experimental
|
|
89
|
-
*/
|
|
90
68
|
get bucketAppsStaging() {
|
|
91
69
|
return this._bucketAppsStaging;
|
|
92
70
|
}
|
|
93
|
-
/**
|
|
94
|
-
* (experimental) S3 bucket for CloudFront logs.
|
|
95
|
-
*
|
|
96
|
-
* @experimental
|
|
97
|
-
*/
|
|
98
71
|
get bucketLogs() {
|
|
99
72
|
return this._bucketLogs;
|
|
100
73
|
}
|
|
101
74
|
}
|
|
102
75
|
exports.MicroAppsS3 = MicroAppsS3;
|
|
103
76
|
_a = JSII_RTTI_SYMBOL_1;
|
|
104
|
-
MicroAppsS3[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroAppsS3", version: "0.2.
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
MicroAppsS3[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroAppsS3", version: "0.2.12" };
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzUzMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTWljcm9BcHBzUzMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsaURBQWlEO0FBQ2pELGdFQUFnRTtBQUNoRSx5Q0FBeUM7QUFDekMsMkNBQXVDO0FBbUZ2Qzs7Ozs7R0FLRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBMEJ4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN0QztRQUVELE1BQU0sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVoRSx3REFBd0Q7UUFDeEQsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLEtBQUssMkJBQWEsQ0FBQyxPQUFPLENBQUM7UUFFbEUsRUFBRTtRQUNGLGdEQUFnRDtRQUNoRCxFQUFFO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUM3QyxVQUFVLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDaEMsaUJBQWlCLEVBQUUsaUJBQWlCO1lBQ3BDLGFBQWE7U0FDZCxDQUFDLENBQUM7UUFFSCxFQUFFO1FBQ0Ysc0JBQXNCO1FBQ3RCLEVBQUU7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzdDLFVBQVUsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNoQyxpQkFBaUIsRUFBRSxpQkFBaUI7WUFDcEMsYUFBYTtTQUNkLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN2RCxVQUFVLEVBQUUsS0FBSyxDQUFDLHFCQUFxQjtZQUN2QyxpQkFBaUIsRUFBRSxpQkFBaUI7WUFDcEMsYUFBYTtTQUNkLENBQUMsQ0FBQztRQUVILDRCQUE0QjtRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDN0QsT0FBTyxFQUFFLGFBQWEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxHQUFHLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3hGLENBQUMsQ0FBQztRQUNILElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsYUFBYTtTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBdkVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUdELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUdELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBR0QsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOztBQXhCSCxrQ0EwRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2YgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgY2ZvcmlnaW5zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBNaWNyb0FwcHMgUzNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWljcm9BcHBzUzMge1xuICAvKipcbiAgICogUzMgYnVja2V0IGZvciBkZXBsb3llZCBhcHBsaWNhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldEFwcHM6IHMzLklCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIENsb3VkRnJvbnQgT3JpZ2luIEFjY2VzcyBJZGVudGl0eSBmb3IgdGhlIGRlcGxveWVkIGFwcGxpY2F0aW9ucyBidWNrZXRcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldEFwcHNPQUk6IGNmLk9yaWdpbkFjY2Vzc0lkZW50aXR5O1xuXG4gIC8qKlxuICAgKiBDbG91ZEZyb250IE9yaWdpbiBmb3IgdGhlIGRlcGxveWVkIGFwcGxpY2F0aW9ucyBidWNrZXRcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldEFwcHNPcmlnaW46IGNmb3JpZ2lucy5TM09yaWdpbjtcblxuICAvKipcbiAgICogUzMgYnVja2V0IGZvciBzdGFnZWQgYXBwbGljYXRpb25zIChwcmlvciB0byBkZXBsb3kpXG4gICAqL1xuICByZWFkb25seSBidWNrZXRBcHBzU3RhZ2luZzogczMuSUJ1Y2tldDtcblxuICAvKipcbiAgICogUzMgYnVja2V0IGZvciBDbG91ZEZyb250IGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldExvZ3M6IHMzLklCdWNrZXQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBpbml0aWFsaXplIGFuIGluc3RhbmNlIG9mIGBNaWNyb0FwcHNTM2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWljcm9BcHBzUzNQcm9wcyB7XG4gIC8qKlxuICAgKiBSZW1vdmFsUG9saWN5IG92ZXJyaWRlIGZvciBjaGlsZCByZXNvdXJjZXNcbiAgICpcbiAgICogTm90ZTogaWYgc2V0IHRvIERFU1RST1kgdGhlIFMzIGJ1Y2tldHMgd2lsbCBoYXZlIGBhdXRvRGVsZXRlT2JqZWN0c2Agc2V0IHRvIGB0cnVlYFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHBlciByZXNvdXJjZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogUzMgZGVwbG95ZWQgYXBwcyBidWNrZXQgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdXRvLWFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSBidWNrZXRBcHBzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUzMgc3RhZ2luZyBhcHBzIGJ1Y2tldCBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IGF1dG8tYXNzaWduZWRcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldEFwcHNTdGFnaW5nTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUzMgbG9ncyBidWNrZXQgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdXRvLWFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSBidWNrZXRMb2dzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgYXNzZXQgbmFtZSByb290XG4gICAqXG4gICAqIEBleGFtcGxlIG1pY3JvYXBwc1xuICAgKiBAZGVmYXVsdCAtIHJlc291cmNlIG5hbWVzIGF1dG8gYXNzaWduZWRcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TmFtZVJvb3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFzc2V0IG5hbWUgc3VmZml4XG4gICAqXG4gICAqIEBleGFtcGxlIC1kZXYtcHItMTJcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXROYW1lU3VmZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgZHVyYWJsZSBNaWNyb0FwcHMgUzMgQnVja2V0c1xuICpcbiAqIFRoZXNlIHNob3VsZCBiZSBjcmVhdGVkIGluIGEgc3RhY2sgdGhhdCB3aWxsIG5vdCBiZSBkZWxldGVkIGlmXG4gKiB0aGVyZSBhcmUgYnJlYWtpbmcgY2hhbmdlcyB0byBNaWNyb0FwcHMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1pY3JvQXBwc1MzIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSU1pY3JvQXBwc1MzIHtcbiAgcHJpdmF0ZSBfYnVja2V0QXBwczogczMuSUJ1Y2tldDtcbiAgcHVibGljIGdldCBidWNrZXRBcHBzKCk6IHMzLklCdWNrZXQge1xuICAgIHJldHVybiB0aGlzLl9idWNrZXRBcHBzO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVja2V0QXBwc09BSTogY2YuT3JpZ2luQWNjZXNzSWRlbnRpdHk7XG4gIHB1YmxpYyBnZXQgYnVja2V0QXBwc09BSSgpOiBjZi5PcmlnaW5BY2Nlc3NJZGVudGl0eSB7XG4gICAgcmV0dXJuIHRoaXMuX2J1Y2tldEFwcHNPQUk7XG4gIH1cblxuICBwcml2YXRlIF9idWNrZXRBcHBzT3JpZ2luOiBjZm9yaWdpbnMuUzNPcmlnaW47XG4gIHB1YmxpYyBnZXQgYnVja2V0QXBwc09yaWdpbigpOiBjZm9yaWdpbnMuUzNPcmlnaW4ge1xuICAgIHJldHVybiB0aGlzLl9idWNrZXRBcHBzT3JpZ2luO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVja2V0QXBwc1N0YWdpbmc6IHMzLklCdWNrZXQ7XG4gIHB1YmxpYyBnZXQgYnVja2V0QXBwc1N0YWdpbmcoKTogczMuSUJ1Y2tldCB7XG4gICAgcmV0dXJuIHRoaXMuX2J1Y2tldEFwcHNTdGFnaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVja2V0TG9nczogczMuSUJ1Y2tldDtcbiAgcHVibGljIGdldCBidWNrZXRMb2dzKCk6IHMzLklCdWNrZXQge1xuICAgIHJldHVybiB0aGlzLl9idWNrZXRMb2dzO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBNaWNyb0FwcHNTM1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb3BzIG11c3QgYmUgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgeyByZW1vdmFsUG9saWN5LCBhc3NldE5hbWVSb290LCBhc3NldE5hbWVTdWZmaXggfSA9IHByb3BzO1xuXG4gICAgLy8gVXNlIEF1dG8tRGVsZXRlIFMzQnVja2V0IGlmIHJlbW92YWwgcG9saWN5IGlzIERFU1RST1lcbiAgICBjb25zdCBzM0F1dG9EZWxldGVJdGVtcyA9IHJlbW92YWxQb2xpY3kgPT09IFJlbW92YWxQb2xpY3kuREVTVFJPWTtcblxuICAgIC8vXG4gICAgLy8gUzMgQnVja2V0IGZvciBMb2dnaW5nIC0gVXNhYmxlIGJ5IG1hbnkgc3RhY2tzXG4gICAgLy9cbiAgICB0aGlzLl9idWNrZXRMb2dzID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnbG9ncycsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHByb3BzLmJ1Y2tldExvZ3NOYW1lLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHMzQXV0b0RlbGV0ZUl0ZW1zLFxuICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICB9KTtcblxuICAgIC8vXG4gICAgLy8gUzMgQnVja2V0cyBmb3IgQXBwc1xuICAgIC8vXG4gICAgdGhpcy5fYnVja2V0QXBwcyA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ2FwcHMnLCB7XG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5idWNrZXRBcHBzTmFtZSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiBzM0F1dG9EZWxldGVJdGVtcyxcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgfSk7XG4gICAgdGhpcy5fYnVja2V0QXBwc1N0YWdpbmcgPSBuZXcgczMuQnVja2V0KHRoaXMsICdzdGFnaW5nJywge1xuICAgICAgYnVja2V0TmFtZTogcHJvcHMuYnVja2V0QXBwc1N0YWdpbmdOYW1lLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHMzQXV0b0RlbGV0ZUl0ZW1zLFxuICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBTMyBPcmlnaW4gSWRlbnRpdHlcbiAgICB0aGlzLl9idWNrZXRBcHBzT0FJID0gbmV3IGNmLk9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsICdvYWknLCB7XG4gICAgICBjb21tZW50OiBhc3NldE5hbWVSb290ICE9PSB1bmRlZmluZWQgPyBgJHthc3NldE5hbWVSb290fSR7YXNzZXROYW1lU3VmZml4fWAgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gICAgaWYgKHJlbW92YWxQb2xpY3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fYnVja2V0QXBwc09BSS5hcHBseVJlbW92YWxQb2xpY3kocmVtb3ZhbFBvbGljeSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIE9yaWdpbiBmb3IgQ2xvdWRGcm9udFxuICAgIHRoaXMuX2J1Y2tldEFwcHNPcmlnaW4gPSBuZXcgY2ZvcmlnaW5zLlMzT3JpZ2luKHRoaXMuX2J1Y2tldEFwcHMsIHtcbiAgICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5OiB0aGlzLmJ1Y2tldEFwcHNPQUksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/MicroAppsSvcs.d.ts
CHANGED
|
@@ -6,82 +6,65 @@ import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
|
6
6
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
7
7
|
import { Construct } from 'constructs';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @experimental
|
|
9
|
+
* Properties to initialize an instance of `MicroAppsSvcs`.
|
|
12
10
|
*/
|
|
13
11
|
export interface MicroAppsSvcsProps {
|
|
14
12
|
/**
|
|
15
|
-
*
|
|
13
|
+
* RemovalPolicy override for child resources
|
|
16
14
|
*
|
|
17
15
|
* Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`
|
|
18
16
|
*
|
|
19
17
|
* @default - per resource default
|
|
20
|
-
* @experimental
|
|
21
18
|
*/
|
|
22
19
|
readonly removalPolicy?: RemovalPolicy;
|
|
23
20
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* @experimental
|
|
21
|
+
* S3 bucket for deployed applications
|
|
27
22
|
*/
|
|
28
23
|
readonly bucketApps: s3.IBucket;
|
|
29
24
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* @experimental
|
|
25
|
+
* CloudFront Origin Access Identity for the deployed applications bucket
|
|
33
26
|
*/
|
|
34
27
|
readonly bucketAppsOAI: cf.OriginAccessIdentity;
|
|
35
28
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* @experimental
|
|
29
|
+
* S3 bucket for staged applications (prior to deploy)
|
|
39
30
|
*/
|
|
40
31
|
readonly bucketAppsStaging: s3.IBucket;
|
|
41
32
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* @experimental
|
|
33
|
+
* API Gateway v2 HTTP for Router and app
|
|
45
34
|
*/
|
|
46
35
|
readonly httpApi: apigwy.HttpApi;
|
|
47
36
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* @experimental
|
|
37
|
+
* Application environment, passed as `NODE_ENV`
|
|
38
|
+
* to the Router and Deployer Lambda functions
|
|
51
39
|
*/
|
|
52
40
|
readonly appEnv: string;
|
|
53
41
|
/**
|
|
54
|
-
*
|
|
42
|
+
* Optional asset name root
|
|
55
43
|
*
|
|
44
|
+
* @example microapps
|
|
56
45
|
* @default - resource names auto assigned
|
|
57
|
-
* @experimental
|
|
58
|
-
* @example
|
|
59
|
-
*
|
|
60
|
-
* microapps
|
|
61
46
|
*/
|
|
62
47
|
readonly assetNameRoot?: string;
|
|
63
48
|
/**
|
|
64
|
-
*
|
|
49
|
+
* Optional asset name suffix
|
|
65
50
|
*
|
|
51
|
+
* @example -dev-pr-12
|
|
66
52
|
* @default none
|
|
67
|
-
* @experimental
|
|
68
|
-
* @example
|
|
69
|
-
*
|
|
70
|
-
* -dev-pr-12
|
|
71
53
|
*/
|
|
72
54
|
readonly assetNameSuffix?: string;
|
|
73
55
|
/**
|
|
74
|
-
*
|
|
56
|
+
* Use a strict S3 Bucket Policy that prevents applications
|
|
57
|
+
* from reading/writing/modifying/deleting files in the S3 Bucket
|
|
58
|
+
* outside of the path that is specific to their app/version.
|
|
75
59
|
*
|
|
76
60
|
* This setting should be used when applications are less than
|
|
77
61
|
* fully trusted.
|
|
78
62
|
*
|
|
79
63
|
* @default false
|
|
80
|
-
* @experimental
|
|
81
64
|
*/
|
|
82
65
|
readonly s3StrictBucketPolicy?: boolean;
|
|
83
66
|
/**
|
|
84
|
-
*
|
|
67
|
+
* Applies when using s3StrictBucketPolicy = true
|
|
85
68
|
*
|
|
86
69
|
* IAM Role or IAM User names to exclude from the DENY rules on the S3 Bucket Policy.
|
|
87
70
|
*
|
|
@@ -90,15 +73,13 @@ export interface MicroAppsSvcsProps {
|
|
|
90
73
|
* Typically any admin roles / users that need to view or manage the S3 Bucket
|
|
91
74
|
* would be added to this list.
|
|
92
75
|
*
|
|
93
|
-
* @
|
|
94
|
-
* @experimental
|
|
95
|
-
* @example
|
|
76
|
+
* @example ['arn:aws:iam::1234567890123:role/AdminAccess', 'arn:aws:iam::1234567890123:user/MyAdminUser']
|
|
96
77
|
*
|
|
97
|
-
*
|
|
78
|
+
* @see s3PolicyBypassAROAs
|
|
98
79
|
*/
|
|
99
80
|
readonly s3PolicyBypassPrincipalARNs?: string[];
|
|
100
81
|
/**
|
|
101
|
-
*
|
|
82
|
+
* Applies when using s3StrictBucketPolicy = true
|
|
102
83
|
*
|
|
103
84
|
* AROAs of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.
|
|
104
85
|
* This allows sessions that assume the IAM Role to be excluded from the
|
|
@@ -117,95 +98,86 @@ export interface MicroAppsSvcsProps {
|
|
|
117
98
|
* wildcard matches and does not do wildcard matches implicitly either.
|
|
118
99
|
*
|
|
119
100
|
* The AROA must be used because there are only 3 Principal variables available:
|
|
120
|
-
*
|
|
121
|
-
*
|
|
101
|
+
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable
|
|
102
|
+
* aws:username, aws:userid, aws:PrincipalTag
|
|
122
103
|
*
|
|
123
104
|
* For an assumed role, aws:username is blank, aws:userid is:
|
|
124
|
-
*
|
|
105
|
+
* [unique id AKA AROA for Role]:[session name]
|
|
125
106
|
*
|
|
126
107
|
* Table of unique ID prefixes such as AROA:
|
|
127
|
-
*
|
|
108
|
+
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-prefixes
|
|
128
109
|
*
|
|
129
110
|
* The name of the role is simply not available for an assumed role and, if it was,
|
|
130
111
|
* a complicated comparison would be requierd to prevent exclusion
|
|
131
112
|
* of applying the Deny Rule to roles from other accounts.
|
|
132
113
|
*
|
|
133
114
|
* To get the AROA with the AWS CLI:
|
|
134
|
-
*
|
|
135
|
-
*
|
|
115
|
+
* aws iam get-role --role-name ROLE-NAME
|
|
116
|
+
* aws iam get-user -–user-name USER-NAME
|
|
136
117
|
*
|
|
137
|
-
* @
|
|
138
|
-
* @experimental
|
|
139
|
-
* @example
|
|
118
|
+
* @example [ 'AROA1234567890123' ]
|
|
140
119
|
*
|
|
141
|
-
*
|
|
120
|
+
* @see s3StrictBucketPolicy
|
|
142
121
|
*/
|
|
143
122
|
readonly s3PolicyBypassAROAs?: string[];
|
|
144
123
|
/**
|
|
145
|
-
*
|
|
124
|
+
* Path prefix on the root of the deployment
|
|
146
125
|
*
|
|
126
|
+
* @example dev/
|
|
147
127
|
* @default none
|
|
148
|
-
* @experimental
|
|
149
|
-
* @example
|
|
150
|
-
*
|
|
151
|
-
* dev/
|
|
152
128
|
*/
|
|
153
129
|
readonly rootPathPrefix?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Require IAM auth on API Gateway
|
|
132
|
+
*
|
|
133
|
+
* @default true
|
|
134
|
+
*/
|
|
135
|
+
readonly requireIAMAuthorization?: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Existing table for apps/versions/rules
|
|
138
|
+
*
|
|
139
|
+
* @warning - It is *strongly* suggested that production stacks create
|
|
140
|
+
* their own DynamoDB Table and pass it into this construct, for protection
|
|
141
|
+
* against data loss due to logical ID changes, the ability to configure
|
|
142
|
+
* Provisioned capacity with Auto Scaling, the ability to add additional indices, etc.
|
|
143
|
+
*
|
|
144
|
+
* Requirements:
|
|
145
|
+
* - Hash Key: `PK`
|
|
146
|
+
* - Sort Key: `SK`
|
|
147
|
+
*
|
|
148
|
+
* @default created by construct
|
|
149
|
+
*/
|
|
150
|
+
readonly table?: dynamodb.ITable;
|
|
154
151
|
}
|
|
155
152
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
* @experimental
|
|
153
|
+
* Represents a MicroApps Services
|
|
159
154
|
*/
|
|
160
155
|
export interface IMicroAppsSvcs {
|
|
161
156
|
/**
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* @experimental
|
|
157
|
+
* DynamoDB table used by Router, Deployer, and Release console app
|
|
165
158
|
*/
|
|
166
159
|
readonly table: dynamodb.ITable;
|
|
167
160
|
/**
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
* @experimental
|
|
161
|
+
* Lambda function for the Deployer
|
|
171
162
|
*/
|
|
172
163
|
readonly deployerFunc: lambda.IFunction;
|
|
173
164
|
/**
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
* @experimental
|
|
165
|
+
* Lambda function for the Router
|
|
177
166
|
*/
|
|
178
167
|
readonly routerFunc: lambda.IFunction;
|
|
179
168
|
}
|
|
180
169
|
/**
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
* @experimental
|
|
170
|
+
* Create a new MicroApps Services construct, including the Deployer
|
|
171
|
+
* and Router Lambda Functions, and the DynamoDB Table used by both.
|
|
184
172
|
*/
|
|
185
173
|
export declare class MicroAppsSvcs extends Construct implements IMicroAppsSvcs {
|
|
174
|
+
private _ownedTable?;
|
|
186
175
|
private _table;
|
|
187
|
-
/**
|
|
188
|
-
* (experimental) DynamoDB table used by Router, Deployer, and Release console app.
|
|
189
|
-
*
|
|
190
|
-
* @experimental
|
|
191
|
-
*/
|
|
192
176
|
get table(): dynamodb.ITable;
|
|
193
177
|
private _deployerFunc;
|
|
194
|
-
/**
|
|
195
|
-
* (experimental) Lambda function for the Deployer.
|
|
196
|
-
*
|
|
197
|
-
* @experimental
|
|
198
|
-
*/
|
|
199
178
|
get deployerFunc(): lambda.IFunction;
|
|
200
179
|
private _routerFunc;
|
|
201
|
-
/**
|
|
202
|
-
* (experimental) Lambda function for the Router.
|
|
203
|
-
*
|
|
204
|
-
* @experimental
|
|
205
|
-
*/
|
|
206
180
|
get routerFunc(): lambda.IFunction;
|
|
207
|
-
/**
|
|
208
|
-
* @experimental
|
|
209
|
-
*/
|
|
210
181
|
constructor(scope: Construct, id: string, props?: MicroAppsSvcsProps);
|
|
211
182
|
}
|
|
183
|
+
//# sourceMappingURL=MicroAppsSvcs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MicroAppsSvcs.d.ts","sourceRoot":"","sources":["../src/MicroAppsSvcs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iCAAiC,CAAC;AAG1D,OAAO,EAAiB,aAAa,EAAS,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAGjD,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,oBAAoB,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,OAAO,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAElC;;;;;;;;;OASG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAExC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAE3C;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAU,YAAW,cAAc;IACpE,OAAO,CAAC,WAAW,CAAC,CAAiB;IACrC,OAAO,CAAC,MAAM,CAAkB;IAChC,IAAW,KAAK,IAAI,QAAQ,CAAC,MAAM,CAElC;IAED,OAAO,CAAC,aAAa,CAAkB;IACvC,IAAW,YAAY,IAAI,MAAM,CAAC,SAAS,CAE1C;IAED,OAAO,CAAC,WAAW,CAAkB;IACrC,IAAW,UAAU,IAAI,MAAM,CAAC,SAAS,CAExC;gBAEW,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB;CAibrE"}
|