@macedon-technologies/batman 1.9.1 → 1.10.0
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 +19 -19
- package/lib/Application.js +2 -1
- package/lib/BatmanProject.js +4 -132
- package/lib/BootcampApplication.js +2 -1
- package/lib/BootcampProject.js +4 -132
- package/lib/CodeOwnersFile.js +1 -1
- package/lib/PrCleanupWorkflow.d.ts +1 -0
- package/lib/PrCleanupWorkflow.js +2 -2
- package/lib/ProductionDeployWorkflow.js +1 -1
- package/lib/StagingDeployWorkflow.js +1 -1
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +132 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
},
|
|
156
156
|
"locationInModule": {
|
|
157
157
|
"filename": "src/BatmanProject.ts",
|
|
158
|
-
"line":
|
|
158
|
+
"line": 45
|
|
159
159
|
},
|
|
160
160
|
"parameters": [
|
|
161
161
|
{
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
"kind": "class",
|
|
170
170
|
"locationInModule": {
|
|
171
171
|
"filename": "src/BatmanProject.ts",
|
|
172
|
-
"line":
|
|
172
|
+
"line": 44
|
|
173
173
|
},
|
|
174
174
|
"name": "BatmanProject",
|
|
175
175
|
"symbolId": "src/BatmanProject:BatmanProject"
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
"kind": "interface",
|
|
188
188
|
"locationInModule": {
|
|
189
189
|
"filename": "src/BatmanProject.ts",
|
|
190
|
-
"line":
|
|
190
|
+
"line": 10
|
|
191
191
|
},
|
|
192
192
|
"name": "BatmanProjectOptions",
|
|
193
193
|
"properties": [
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
"immutable": true,
|
|
201
201
|
"locationInModule": {
|
|
202
202
|
"filename": "src/BatmanProject.ts",
|
|
203
|
-
"line":
|
|
203
|
+
"line": 15
|
|
204
204
|
},
|
|
205
205
|
"name": "dev",
|
|
206
206
|
"type": {
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
"immutable": true,
|
|
217
217
|
"locationInModule": {
|
|
218
218
|
"filename": "src/BatmanProject.ts",
|
|
219
|
-
"line":
|
|
219
|
+
"line": 25
|
|
220
220
|
},
|
|
221
221
|
"name": "prod",
|
|
222
222
|
"type": {
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
"immutable": true,
|
|
233
233
|
"locationInModule": {
|
|
234
234
|
"filename": "src/BatmanProject.ts",
|
|
235
|
-
"line":
|
|
235
|
+
"line": 20
|
|
236
236
|
},
|
|
237
237
|
"name": "staging",
|
|
238
238
|
"type": {
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
"immutable": true,
|
|
249
249
|
"locationInModule": {
|
|
250
250
|
"filename": "src/BatmanProject.ts",
|
|
251
|
-
"line":
|
|
251
|
+
"line": 35
|
|
252
252
|
},
|
|
253
253
|
"name": "additionalCodeOwners",
|
|
254
254
|
"optional": true,
|
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
"immutable": true,
|
|
271
271
|
"locationInModule": {
|
|
272
272
|
"filename": "src/BatmanProject.ts",
|
|
273
|
-
"line":
|
|
273
|
+
"line": 30
|
|
274
274
|
},
|
|
275
275
|
"name": "additionalTags",
|
|
276
276
|
"optional": true,
|
|
@@ -292,7 +292,7 @@
|
|
|
292
292
|
"immutable": true,
|
|
293
293
|
"locationInModule": {
|
|
294
294
|
"filename": "src/BatmanProject.ts",
|
|
295
|
-
"line":
|
|
295
|
+
"line": 40
|
|
296
296
|
},
|
|
297
297
|
"name": "websiteDeps",
|
|
298
298
|
"optional": true,
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
},
|
|
322
322
|
"locationInModule": {
|
|
323
323
|
"filename": "src/BootcampProject.ts",
|
|
324
|
-
"line":
|
|
324
|
+
"line": 41
|
|
325
325
|
},
|
|
326
326
|
"parameters": [
|
|
327
327
|
{
|
|
@@ -335,7 +335,7 @@
|
|
|
335
335
|
"kind": "class",
|
|
336
336
|
"locationInModule": {
|
|
337
337
|
"filename": "src/BootcampProject.ts",
|
|
338
|
-
"line":
|
|
338
|
+
"line": 40
|
|
339
339
|
},
|
|
340
340
|
"name": "BootcampProject",
|
|
341
341
|
"symbolId": "src/BootcampProject:BootcampProject"
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
"kind": "interface",
|
|
354
354
|
"locationInModule": {
|
|
355
355
|
"filename": "src/BootcampProject.ts",
|
|
356
|
-
"line":
|
|
356
|
+
"line": 12
|
|
357
357
|
},
|
|
358
358
|
"name": "BootcampProjectOptions",
|
|
359
359
|
"properties": [
|
|
@@ -366,7 +366,7 @@
|
|
|
366
366
|
"immutable": true,
|
|
367
367
|
"locationInModule": {
|
|
368
368
|
"filename": "src/BootcampProject.ts",
|
|
369
|
-
"line":
|
|
369
|
+
"line": 17
|
|
370
370
|
},
|
|
371
371
|
"name": "dev",
|
|
372
372
|
"type": {
|
|
@@ -382,7 +382,7 @@
|
|
|
382
382
|
"immutable": true,
|
|
383
383
|
"locationInModule": {
|
|
384
384
|
"filename": "src/BootcampProject.ts",
|
|
385
|
-
"line":
|
|
385
|
+
"line": 27
|
|
386
386
|
},
|
|
387
387
|
"name": "prod",
|
|
388
388
|
"type": {
|
|
@@ -398,7 +398,7 @@
|
|
|
398
398
|
"immutable": true,
|
|
399
399
|
"locationInModule": {
|
|
400
400
|
"filename": "src/BootcampProject.ts",
|
|
401
|
-
"line":
|
|
401
|
+
"line": 22
|
|
402
402
|
},
|
|
403
403
|
"name": "staging",
|
|
404
404
|
"type": {
|
|
@@ -414,7 +414,7 @@
|
|
|
414
414
|
"immutable": true,
|
|
415
415
|
"locationInModule": {
|
|
416
416
|
"filename": "src/BootcampProject.ts",
|
|
417
|
-
"line":
|
|
417
|
+
"line": 37
|
|
418
418
|
},
|
|
419
419
|
"name": "additionalCodeOwners",
|
|
420
420
|
"optional": true,
|
|
@@ -436,7 +436,7 @@
|
|
|
436
436
|
"immutable": true,
|
|
437
437
|
"locationInModule": {
|
|
438
438
|
"filename": "src/BootcampProject.ts",
|
|
439
|
-
"line":
|
|
439
|
+
"line": 32
|
|
440
440
|
},
|
|
441
441
|
"name": "additionalTags",
|
|
442
442
|
"optional": true,
|
|
@@ -918,6 +918,6 @@
|
|
|
918
918
|
"symbolId": "src/StagingDeployWorkflow:StagingDeployWorkflowOptions"
|
|
919
919
|
}
|
|
920
920
|
},
|
|
921
|
-
"version": "1.
|
|
922
|
-
"fingerprint": "
|
|
921
|
+
"version": "1.10.0",
|
|
922
|
+
"fingerprint": "3JY6uTxLjp6n6T0hpsH4c0Zz7T0GvNLUEnMZ4cW24gA="
|
|
923
923
|
}
|
package/lib/Application.js
CHANGED
|
@@ -56,6 +56,7 @@ class Application {
|
|
|
56
56
|
new PrCleanupWorkflow_1.PrCleanupWorkflow(project, {
|
|
57
57
|
roleArn: options.dev.githubActionRoleArn,
|
|
58
58
|
awsRegion: options.dev.region,
|
|
59
|
+
projectName: project.name,
|
|
59
60
|
});
|
|
60
61
|
new StagingDeployWorkflow_1.StagingDeployWorkflow(project, {
|
|
61
62
|
roleArn: options.staging.githubActionRoleArn,
|
|
@@ -72,4 +73,4 @@ class Application {
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
exports.Application = Application;
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQXNEO0FBQ3RELHVEQUFvRDtBQUNwRCxpRUFBOEQ7QUFDOUQseUVBQXNFO0FBQ3RFLHFEQUFrRDtBQUNsRCxpRUFBOEQ7QUFDOUQsdURBQW9EO0FBQ3BELHlDQUF5RDtBQUN6RCxpREFBOEM7QUFDOUMsMkRBQXdEO0FBQ3hELHlEQUFzRDtBQUN0RCx5RUFBc0U7QUFDdEUsbUVBQWdFO0FBQ2hFLDZFQUEwRTtBQWMxRTs7R0FFRztBQUNILE1BQWEsV0FBVztJQUN0QixZQUFZLE9BQTRCLEVBQUUsT0FBMkI7UUFDbkUsZ0NBQWdDO1FBRWhDLElBQUksbUJBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDcEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLGlDQUFlLENBQUMsT0FBTyxFQUFFO1lBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7U0FDakIsQ0FBQyxDQUFDO1FBRUgscUJBQXFCO1FBQ3JCLElBQUksMkNBQW9CLENBQUMsT0FBTyxFQUFFO1lBQ2hDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJLDJDQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLHlCQUF5QjtRQUN6QixJQUFJLG1DQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksdURBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMsdUJBQXVCO1FBQ3ZCLElBQUksaUNBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QixvQkFBb0I7UUFDcEIsSUFBSSwyQkFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLHNCQUFzQjtRQUN0QixJQUFJLCtCQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUIsa0NBQWtDO1FBQ2xDLElBQUksbUNBQWdCLENBQUMsT0FBTyxFQUFFO1lBQzVCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQzdCLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1NBQ3JELENBQUMsQ0FBQztRQUVILElBQUkscUNBQWlCLENBQUMsT0FBTyxFQUFFO1lBQzdCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQzdCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtTQUMxQixDQUFDLENBQUM7UUFFSCxJQUFJLDZDQUFxQixDQUFDLE9BQU8sRUFBRTtZQUNqQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDNUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNqQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7U0FDekQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLEVBQUU7WUFDcEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpFRCxrQ0FpRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgQXBpQ29uc3RydWN0RmlsZSB9IGZyb20gJy4vQXBpQ29uc3RydWN0RmlsZSc7XG5pbXBvcnQgeyBBcGlGdW5jdGlvbkZpbGUgfSBmcm9tICcuL0FwaUZ1bmN0aW9uRmlsZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblN0YWNrRmlsZSB9IGZyb20gJy4vQXBwbGljYXRpb25TdGFja0ZpbGUnO1xuaW1wb3J0IHsgQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlIH0gZnJvbSAnLi9CYXNlQXBwbGljYXRpb25TdGFja0ZpbGUnO1xuaW1wb3J0IHsgQ29kZVJhYmJpdEZpbGUgfSBmcm9tICcuL0NvZGVSYWJiaXRGaWxlJztcbmltcG9ydCB7IEdpdEh1YlJvbGVzU3RhY2tGaWxlIH0gZnJvbSAnLi9HaXRIdWJSb2xlc1N0YWNrRmlsZSc7XG5pbXBvcnQgeyBMb2NhbERldkFwcEZpbGUgfSBmcm9tICcuL0xvY2FsRGV2QXBwRmlsZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudENvbmZpZywgTWFpbkZpbGUgfSBmcm9tICcuL01haW5GaWxlJztcbmltcG9ydCB7IE1haW5UZXN0RmlsZSB9IGZyb20gJy4vTWFpblRlc3RGaWxlJztcbmltcG9ydCB7IFByQ2xlYW51cFdvcmtmbG93IH0gZnJvbSAnLi9QckNsZWFudXBXb3JrZmxvdyc7XG5pbXBvcnQgeyBQckRlcGxveVdvcmtmbG93IH0gZnJvbSAnLi9QckRlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFByb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFN0YWdpbmdEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vU3RhZ2luZ0RlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFN0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9TdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZyBleHRlbmRzIEVudmlyb25tZW50Q29uZmlnIHtcbiAgcmVhZG9ubHkgZ2l0aHViQWN0aW9uUm9sZUFybjogYGFybjphd3M6aWFtOjoke3N0cmluZ306cm9sZS8ke3N0cmluZ31gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGdpdGh1YlJlcG9zaXRvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgZGV2OiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBzdGFnaW5nOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBwcm9kOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQXBwbGljYXRpb24gY29uc3RydWN0IHRoYXQgY3JlYXRlcyBhbGwgc3RhbmRhcmQgcHJvamVjdCBmaWxlc1xuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBBcHBsaWNhdGlvbk9wdGlvbnMpIHtcbiAgICAvLyBDcmVhdGUgbWFpbiBlbnRyeSBwb2ludCBmaWxlc1xuXG4gICAgbmV3IE1haW5GaWxlKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgICAgc3RhZ2luZzogb3B0aW9ucy5zdGFnaW5nLFxuICAgICAgcHJvZDogb3B0aW9ucy5wcm9kLFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IG9wdGlvbnMuYWRkaXRpb25hbFRhZ3MsXG4gICAgfSk7XG5cbiAgICBuZXcgTG9jYWxEZXZBcHBGaWxlKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHN0YWNrIGZpbGVzXG4gICAgbmV3IEdpdEh1YlJvbGVzU3RhY2tGaWxlKHByb2plY3QsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IG9wdGlvbnMuZ2l0aHViUmVwb3NpdG9yeSxcbiAgICB9KTtcblxuICAgIG5ldyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUocHJvamVjdCk7XG4gICAgbmV3IEFwcGxpY2F0aW9uU3RhY2tGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIGNvbnN0cnVjdCBmaWxlc1xuICAgIG5ldyBBcGlDb25zdHJ1Y3RGaWxlKHByb2plY3QpO1xuICAgIG5ldyBTdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBoYW5kbGVyIGZpbGVzXG4gICAgbmV3IEFwaUZ1bmN0aW9uRmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSB0ZXN0IGZpbGVzXG4gICAgbmV3IE1haW5UZXN0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBjb25maWcgZmlsZXNcbiAgICBuZXcgQ29kZVJhYmJpdEZpbGUocHJvamVjdCk7XG5cbiAgICAvLyBDcmVhdGUgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzXG4gICAgbmV3IFByRGVwbG95V29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5kZXYuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5kZXYucmVnaW9uLFxuICAgICAgY2xlcmtQdWJsaXNoYWJsZUtleTogb3B0aW9ucy5kZXYuY2xlcmtQdWJsaXNoYWJsZUtleSxcbiAgICB9KTtcblxuICAgIG5ldyBQckNsZWFudXBXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgIH0pO1xuXG4gICAgbmV3IFN0YWdpbmdEZXBsb3lXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLnN0YWdpbmcuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5zdGFnaW5nLnJlZ2lvbixcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBjbGVya1B1Ymxpc2hhYmxlS2V5OiBvcHRpb25zLnN0YWdpbmcuY2xlcmtQdWJsaXNoYWJsZUtleSxcbiAgICB9KTtcblxuICAgIG5ldyBQcm9kdWN0aW9uRGVwbG95V29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5wcm9kLmdpdGh1YkFjdGlvblJvbGVBcm4sXG4gICAgICBhd3NSZWdpb246IG9wdGlvbnMucHJvZC5yZWdpb24sXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgY2xlcmtQdWJsaXNoYWJsZUtleTogb3B0aW9ucy5wcm9kLmNsZXJrUHVibGlzaGFibGVLZXksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/BatmanProject.js
CHANGED
|
@@ -9,6 +9,7 @@ const Application_1 = require("./Application");
|
|
|
9
9
|
const CodeOwnersFile_1 = require("./CodeOwnersFile");
|
|
10
10
|
const DataDogAspectFile_1 = require("./DataDogAspectFile");
|
|
11
11
|
const GitHubRolesFile_1 = require("./GitHubRolesFile");
|
|
12
|
+
const utils_1 = require("./utils");
|
|
12
13
|
const ViteReactProject_1 = require("./ViteReactProject");
|
|
13
14
|
class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
|
|
14
15
|
constructor(options) {
|
|
@@ -65,136 +66,7 @@ class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
|
|
|
65
66
|
},
|
|
66
67
|
},
|
|
67
68
|
readme: {
|
|
68
|
-
contents:
|
|
69
|
-
`# ${options.name}`,
|
|
70
|
-
'',
|
|
71
|
-
'This project was bootstrapped with [Batman](https://github.com/macedon-technologies/platform-common).',
|
|
72
|
-
'',
|
|
73
|
-
'## What Batman Created',
|
|
74
|
-
'',
|
|
75
|
-
'### CDK Infrastructure (`src/`)',
|
|
76
|
-
'',
|
|
77
|
-
'| File | Description |',
|
|
78
|
-
'|------|-------------|',
|
|
79
|
-
'| `src/main.ts` | CDK app entry point — instantiates dev, staging, and prod `ApplicationStack`s |',
|
|
80
|
-
'| `src/LocalDevApp.ts` | Local development CDK app — used by `yarn cdk:dev` |',
|
|
81
|
-
'| `src/GitHubRoles.ts` | CDK app for deploying the GitHub OIDC IAM role (one-time bootstrap) |',
|
|
82
|
-
'| `src/stacks/ApplicationStack.ts` | Your primary stack — extend it to add resources |',
|
|
83
|
-
'| `src/stacks/BaseApplicationStack.ts` | Base stack with VPC, API, static website, Datadog, and Route 53 wired up |',
|
|
84
|
-
'| `src/stacks/GitHubRolesStack.ts` | IAM role stack for GitHub Actions OIDC authentication |',
|
|
85
|
-
'| `src/constructs/Api.ts` | API Gateway + Lambda construct with Clerk JWT authorizer |',
|
|
86
|
-
'| `src/constructs/StaticWebsite.ts` | CloudFront + S3 + ACM + Route 53 construct |',
|
|
87
|
-
'| `src/constructs/handler/Api.Function.ts` | Lambda handler entry point |',
|
|
88
|
-
'| `src/aspects/DataDogAspect.ts` | CDK aspect that wires all Lambda functions to Datadog |',
|
|
89
|
-
'',
|
|
90
|
-
'### Frontend (`web/`)',
|
|
91
|
-
'',
|
|
92
|
-
'| File | Description |',
|
|
93
|
-
'|------|-------------|',
|
|
94
|
-
'| `web/src/main.tsx` | React app entry point with Clerk and React Query providers |',
|
|
95
|
-
'| `web/src/App.tsx` | Root application component |',
|
|
96
|
-
'| `web/src/App.css` / `web/src/index.css` | Base stylesheets (Tailwind CSS v4) |',
|
|
97
|
-
'| `web/src/config.ts` | `useConfig()` hook — loads runtime config from `config.json` |',
|
|
98
|
-
'| `web/src/services/BaseService.ts` | `useBaseQuery()` — authenticated API fetch hook |',
|
|
99
|
-
'| `web/src/services/RootService.ts` | Example service using `useBaseQuery` |',
|
|
100
|
-
'| `web/public/config.json` | Runtime config (API base URL, Clerk publishable key) |',
|
|
101
|
-
'',
|
|
102
|
-
'### GitHub Actions Workflows (`.github/workflows/`)',
|
|
103
|
-
'',
|
|
104
|
-
'| File | Trigger |',
|
|
105
|
-
'|------|---------|',
|
|
106
|
-
'| `pr-deploy.yml` | On pull request open/update — deploys a per-PR dev stack |',
|
|
107
|
-
'| `pr-cleanup.yml` | On pull request close — tears down the per-PR dev stack |',
|
|
108
|
-
'| `staging-deploy.yml` | On push to `main` — deploys to staging |',
|
|
109
|
-
'| `production-deploy.yml` | Manually triggered — deploys to production |',
|
|
110
|
-
'',
|
|
111
|
-
'---',
|
|
112
|
-
'',
|
|
113
|
-
'## Files You Can Edit',
|
|
114
|
-
'',
|
|
115
|
-
'These files are generated once and never overwritten by Batman. Modify them freely.',
|
|
116
|
-
'',
|
|
117
|
-
'| File | What to do with it |',
|
|
118
|
-
'|------|--------------------|',
|
|
119
|
-
'| `src/stacks/ApplicationStack.ts` | **Start here.** Add CDK constructs to build your infrastructure |',
|
|
120
|
-
'| `src/constructs/Api.ts` | Extend the API — add Lambda integrations, routes, or override methods |',
|
|
121
|
-
'| `src/constructs/StaticWebsite.ts` | Customize CloudFront behaviors, S3 settings, or deployment options |',
|
|
122
|
-
'| `src/constructs/handler/Api.Function.ts` | Implement your Lambda handler logic |',
|
|
123
|
-
'| `src/stacks/GitHubRolesStack.ts` | Add IAM permissions needed by GitHub Actions |',
|
|
124
|
-
'| `src/main.ts` | Adjust stack instantiation or add additional stacks |',
|
|
125
|
-
'| `web/src/App.tsx` | Build your UI here |',
|
|
126
|
-
'| `web/src/App.css` / `web/src/index.css` | Style your application |',
|
|
127
|
-
'| `web/src/main.tsx` | Adjust top-level providers or routing |',
|
|
128
|
-
'| `web/src/services/RootService.ts` | Add or replace API service hooks |',
|
|
129
|
-
'| `web/public/config.json` | Update for local development (API URL, Clerk key) |',
|
|
130
|
-
'',
|
|
131
|
-
'## Files You Cannot Edit',
|
|
132
|
-
'',
|
|
133
|
-
'These files are **managed by Batman** and will be overwritten every time `npx projen` runs. Do not edit them directly — make changes in `.projenrc.ts` instead.',
|
|
134
|
-
'',
|
|
135
|
-
'> [!IMPORTANT]',
|
|
136
|
-
'> If you have ANY changes you want to make to these files, notify #team-batman on Slack. ',
|
|
137
|
-
'> We maintain these files as part of the core Batman experience, and your feedback is crucial to ensure they meet your needs.',
|
|
138
|
-
'',
|
|
139
|
-
'| File | Why it\'s managed |',
|
|
140
|
-
'|------|-----------------|',
|
|
141
|
-
'| `src/stacks/BaseApplicationStack.ts` | Core stack wiring — updated with Batman releases |',
|
|
142
|
-
'| `src/aspects/DataDogAspect.ts` | Datadog CDK aspect |',
|
|
143
|
-
'| `web/vite.config.ts` | Vite configuration |',
|
|
144
|
-
'| `web/eslint.config.js` | ESLint configuration |',
|
|
145
|
-
'| `web/postcss.config.js` | PostCSS / Tailwind configuration |',
|
|
146
|
-
'| `web/index.html` | HTML entry point |',
|
|
147
|
-
'| `web/tsconfig.json` / `web/tsconfig.app.json` / `web/tsconfig.node.json` | TypeScript configuration |',
|
|
148
|
-
'| `web/src/vite-env.d.ts` | Vite type declarations |',
|
|
149
|
-
'| `web/src/config.ts` | Runtime config hook — shape driven by `.projenrc.ts` |',
|
|
150
|
-
'| `web/src/services/BaseService.ts` | Base authenticated fetch hook |',
|
|
151
|
-
'| `.github/CODEOWNERS` | Code ownership policy |',
|
|
152
|
-
'| `.github/workflows/*.yml` | All CI/CD workflows |',
|
|
153
|
-
'',
|
|
154
|
-
'> **Tip:** Files with a `~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". ~~` header are managed files.',
|
|
155
|
-
'',
|
|
156
|
-
'---',
|
|
157
|
-
'',
|
|
158
|
-
'## Where to Start',
|
|
159
|
-
'',
|
|
160
|
-
'1. **`src/stacks/ApplicationStack.ts`** — Add your CDK constructs here. The base stack already provides `this.api`, `this.vpc`, `this.hostedZone`, and `this.datadog` as protected properties.',
|
|
161
|
-
'',
|
|
162
|
-
'2. **`web/`** — Build your frontend. Start with `web/src/App.tsx` and add services alongside `web/src/services/RootService.ts`.',
|
|
163
|
-
'',
|
|
164
|
-
'3. **`src/constructs/handler/Api.Function.ts`** — Implement your backend Lambda handler logic here.',
|
|
165
|
-
'',
|
|
166
|
-
'---',
|
|
167
|
-
'',
|
|
168
|
-
'## Development Workflow',
|
|
169
|
-
'',
|
|
170
|
-
'```bash',
|
|
171
|
-
'# Install dependencies',
|
|
172
|
-
'yarn install',
|
|
173
|
-
'',
|
|
174
|
-
'# Start local dev server (backend Lambda + Vite frontend in parallel)',
|
|
175
|
-
'yarn dev',
|
|
176
|
-
'',
|
|
177
|
-
'# Deploy a personal dev stack to AWS',
|
|
178
|
-
'yarn cdk:dev --context local-dev-prefix=your-handle deploy',
|
|
179
|
-
'',
|
|
180
|
-
'# Run tests',
|
|
181
|
-
'yarn test',
|
|
182
|
-
'',
|
|
183
|
-
'# Re-synthesize project files after editing .projenrc.ts',
|
|
184
|
-
'npx projen',
|
|
185
|
-
'```',
|
|
186
|
-
'',
|
|
187
|
-
'---',
|
|
188
|
-
'',
|
|
189
|
-
'## Upgrading Batman',
|
|
190
|
-
'',
|
|
191
|
-
'```bash',
|
|
192
|
-
'yarn add @macedon-technologies/batman@latest',
|
|
193
|
-
'npx projen',
|
|
194
|
-
'```',
|
|
195
|
-
'',
|
|
196
|
-
'This updates all managed files to the latest Batman standards. Your editable sample files are never touched.',
|
|
197
|
-
].join('\n'),
|
|
69
|
+
contents: (0, utils_1.readmeContents)(options.name),
|
|
198
70
|
},
|
|
199
71
|
});
|
|
200
72
|
// Create standard project files
|
|
@@ -244,5 +116,5 @@ class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
|
|
|
244
116
|
}
|
|
245
117
|
exports.BatmanProject = BatmanProject;
|
|
246
118
|
_a = JSII_RTTI_SYMBOL_1;
|
|
247
|
-
BatmanProject[_a] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmF0bWFuUHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXRtYW5Qcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOENBQW9GO0FBQ3BGLDhDQUFzRDtBQUN0RCwrQ0FBMEU7QUFDMUUscURBQWtEO0FBQ2xELDJEQUF3RDtBQUN4RCx1REFBb0Q7QUFDcEQseURBQXNEO0FBb0N0RCxNQUFhLGFBQWMsU0FBUSw0QkFBbUI7SUFDcEQsWUFBWSxPQUE2QjtRQUN2QyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTO1lBQzNDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxNQUFNO1lBQzVELElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsS0FBSztZQUNwQixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CO2dCQUNuQixnQkFBZ0I7Z0JBQ2hCLFdBQVc7Z0JBQ1gsSUFBSTtnQkFDSixxQkFBcUI7Z0JBQ3JCLHNCQUFzQjtnQkFDdEIsMkJBQTJCO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLG1DQUFtQztnQkFDbkMsY0FBYztnQkFDZCxpQ0FBaUM7Z0JBQ2pDLFNBQVM7Z0JBQ1QsaUJBQWlCO2dCQUNqQixHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTthQUN0QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxxQ0FBcUM7Z0JBQ3JDLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO2FBQ3pCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1EQUFtRDtnQkFDbkQsY0FBYztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRTthQUMzQjtZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFHLE9BQU8sQ0FBQyxR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RSxJQUFJO1lBQ1osTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFcEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQWMsRUFBRSxFQUFFO1lBQ3pDLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0QsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDbEIsSUFBSSxFQUFFLFlBQVksQ0FDaEIsZ0ZBQWdGLEVBQ2hGLFNBQVMsQ0FBQyxVQUFVLENBQ3JCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxFQUFFLGdGQUFnRjtZQUN0RixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFHTCxDQUFDOztBQXJQSCxzQ0FzUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwLCBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgQXBwbGljYXRpb24sIEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL0FwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvZGVPd25lcnNGaWxlIH0gZnJvbSAnLi9Db2RlT3duZXJzRmlsZSc7XG5pbXBvcnQgeyBEYXRhRG9nQXNwZWN0RmlsZSB9IGZyb20gJy4vRGF0YURvZ0FzcGVjdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNGaWxlIH0gZnJvbSAnLi9HaXRIdWJSb2xlc0ZpbGUnO1xuaW1wb3J0IHsgVml0ZVJlYWN0UHJvamVjdCB9IGZyb20gJy4vVml0ZVJlYWN0UHJvamVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmF0bWFuUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRldjogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcblxuICAvKipcbiAgICogRGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2luZzogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcblxuICAvKipcbiAgICogUHJvZHVjdGlvbiBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBwcm9kOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHRhZ3MgdG8gYXBwbHkgdG8gYWxsIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbFRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvZGUgb3duZXJzIHRvIGFkZCB0byB0aGUgQ09ERU9XTkVSUyBmaWxlXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsQ29kZU93bmVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXZWJzaXRlIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcmVhZG9ubHkgd2Vic2l0ZURlcHM/OiBzdHJpbmdbXTtcbn1cblxuXG5leHBvcnQgY2xhc3MgQmF0bWFuUHJvamVjdCBleHRlbmRzIEF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBCYXRtYW5Qcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBjZGtWZXJzaW9uOiBvcHRpb25zLmNka1ZlcnNpb24gfHwgJzIuMjI0LjAnLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2ggfHwgJ21haW4nLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIGJ1aWxkV29ya2Zsb3c6IGZhbHNlLFxuICAgICAgZGVwczogW1xuICAgICAgICAnQHR5cGVzL2F3cy1sYW1iZGEnLFxuICAgICAgICAnQHR5cGVzL2V4cHJlc3MnLFxuICAgICAgICAnQHR5cGVzL3BnJyxcbiAgICAgICAgJ3BnJyxcbiAgICAgICAgJ0Bhd3Mtc2RrL3Jkcy1zaWduZXInLFxuICAgICAgICAnQG1hdHRoZXdib25pZy9zZWNyZXQnLFxuICAgICAgICAnZGF0YWRvZy1jZGstY29uc3RydWN0cy12MicsXG4gICAgICAgICdAY2RrbGFicy9hd3MtbGFtYmRhLXJ1c3QnLFxuICAgICAgICAnQGF3cy1sYW1iZGEtcG93ZXJ0b29scy9wYXJhbWV0ZXJzJyxcbiAgICAgICAgJ2pzb253ZWJ0b2tlbicsXG4gICAgICAgICdAYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyJyxcbiAgICAgICAgJ2V4cHJlc3MnLFxuICAgICAgICAnc2VydmVybGVzcy1odHRwJyxcbiAgICAgICAgLi4ub3B0aW9ucy5kZXBzIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIGRldkRlcHM6IFtcbiAgICAgICAgJ0B0eXBlcy9qc29ud2VidG9rZW4nLFxuICAgICAgICAnbm9kZW1vbicsXG4gICAgICAgICdjb25jdXJyZW50bHknLFxuICAgICAgICAnQG1hY2Vkb24tdGVjaG5vbG9naWVzL2JhdG1hbkBeMS4wLjAnLFxuICAgICAgICAuLi5vcHRpb25zLmRldkRlcHMgfHwgW10sXG4gICAgICBdLFxuICAgICAgZ2l0aWdub3JlOiBbXG4gICAgICAgICdzcmMvY29uc3RydWN0cy9oYW5kbGVyL2NsZXJrLWF1dGhvcml6ZXIvdGFyZ2V0LyoqJyxcbiAgICAgICAgJyoqLy5EU19TdG9yZScsXG4gICAgICAgIC4uLm9wdGlvbnMuZ2l0aWdub3JlIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIC4uLm9wdGlvbnMudHNjb25maWcsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIC4uLm9wdGlvbnMudHNjb25maWc/LmNvbXBpbGVyT3B0aW9ucyxcbiAgICAgICAgICBpc29sYXRlZE1vZHVsZXM6IHRydWUsXG4gICAgICAgICAgYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBtaW5Ob2RlVmVyc2lvbjogb3B0aW9ucy5taW5Ob2RlVmVyc2lvbiB8fCAnMjInLFxuICAgICAgZGVwc1VwZ3JhZGVPcHRpb25zOiB7XG4gICAgICAgIHdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBHaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgICAgICBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlYWRtZToge1xuICAgICAgICBjb250ZW50czogW1xuICAgICAgICAgIGAjICR7b3B0aW9ucy5uYW1lfWAsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ1RoaXMgcHJvamVjdCB3YXMgYm9vdHN0cmFwcGVkIHdpdGggW0JhdG1hbl0oaHR0cHM6Ly9naXRodWIuY29tL21hY2Vkb24tdGVjaG5vbG9naWVzL3BsYXRmb3JtLWNvbW1vbikuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyMgV2hhdCBCYXRtYW4gQ3JlYXRlZCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJyMjIyBDREsgSW5mcmFzdHJ1Y3R1cmUgKGBzcmMvYCknLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICd8IEZpbGUgfCBEZXNjcmlwdGlvbiB8JyxcbiAgICAgICAgICAnfC0tLS0tLXwtLS0tLS0tLS0tLS0tfCcsXG4gICAgICAgICAgJ3wgYHNyYy9tYWluLnRzYCB8IENESyBhcHAgZW50cnkgcG9pbnQg4oCUIGluc3RhbnRpYXRlcyBkZXYsIHN0YWdpbmcsIGFuZCBwcm9kIGBBcHBsaWNhdGlvblN0YWNrYHMgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9Mb2NhbERldkFwcC50c2AgfCBMb2NhbCBkZXZlbG9wbWVudCBDREsgYXBwIOKAlCB1c2VkIGJ5IGB5YXJuIGNkazpkZXZgIHwnLFxuICAgICAgICAgICd8IGBzcmMvR2l0SHViUm9sZXMudHNgIHwgQ0RLIGFwcCBmb3IgZGVwbG95aW5nIHRoZSBHaXRIdWIgT0lEQyBJQU0gcm9sZSAob25lLXRpbWUgYm9vdHN0cmFwKSB8JyxcbiAgICAgICAgICAnfCBgc3JjL3N0YWNrcy9BcHBsaWNhdGlvblN0YWNrLnRzYCB8IFlvdXIgcHJpbWFyeSBzdGFjayDigJQgZXh0ZW5kIGl0IHRvIGFkZCByZXNvdXJjZXMgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9zdGFja3MvQmFzZUFwcGxpY2F0aW9uU3RhY2sudHNgIHwgQmFzZSBzdGFjayB3aXRoIFZQQywgQVBJLCBzdGF0aWMgd2Vic2l0ZSwgRGF0YWRvZywgYW5kIFJvdXRlIDUzIHdpcmVkIHVwIHwnLFxuICAgICAgICAgICd8IGBzcmMvc3RhY2tzL0dpdEh1YlJvbGVzU3RhY2sudHNgIHwgSUFNIHJvbGUgc3RhY2sgZm9yIEdpdEh1YiBBY3Rpb25zIE9JREMgYXV0aGVudGljYXRpb24gfCcsXG4gICAgICAgICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL0FwaS50c2AgfCBBUEkgR2F0ZXdheSArIExhbWJkYSBjb25zdHJ1Y3Qgd2l0aCBDbGVyayBKV1QgYXV0aG9yaXplciB8JyxcbiAgICAgICAgICAnfCBgc3JjL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZS50c2AgfCBDbG91ZEZyb250ICsgUzMgKyBBQ00gKyBSb3V0ZSA1MyBjb25zdHJ1Y3QgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzYCB8IExhbWJkYSBoYW5kbGVyIGVudHJ5IHBvaW50IHwnLFxuICAgICAgICAgICd8IGBzcmMvYXNwZWN0cy9EYXRhRG9nQXNwZWN0LnRzYCB8IENESyBhc3BlY3QgdGhhdCB3aXJlcyBhbGwgTGFtYmRhIGZ1bmN0aW9ucyB0byBEYXRhZG9nIHwnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICcjIyMgRnJvbnRlbmQgKGB3ZWIvYCknLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICd8IEZpbGUgfCBEZXNjcmlwdGlvbiB8JyxcbiAgICAgICAgICAnfC0tLS0tLXwtLS0tLS0tLS0tLS0tfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvbWFpbi50c3hgIHwgUmVhY3QgYXBwIGVudHJ5IHBvaW50IHdpdGggQ2xlcmsgYW5kIFJlYWN0IFF1ZXJ5IHByb3ZpZGVycyB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9BcHAudHN4YCB8IFJvb3QgYXBwbGljYXRpb24gY29tcG9uZW50IHwnLFxuICAgICAgICAgICd8IGB3ZWIvc3JjL0FwcC5jc3NgIC8gYHdlYi9zcmMvaW5kZXguY3NzYCB8IEJhc2Ugc3R5bGVzaGVldHMgKFRhaWx3aW5kIENTUyB2NCkgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvY29uZmlnLnRzYCB8IGB1c2VDb25maWcoKWAgaG9vayDigJQgbG9hZHMgcnVudGltZSBjb25maWcgZnJvbSBgY29uZmlnLmpzb25gIHwnLFxuICAgICAgICAgICd8IGB3ZWIvc3JjL3NlcnZpY2VzL0Jhc2VTZXJ2aWNlLnRzYCB8IGB1c2VCYXNlUXVlcnkoKWAg4oCUIGF1dGhlbnRpY2F0ZWQgQVBJIGZldGNoIGhvb2sgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvc2VydmljZXMvUm9vdFNlcnZpY2UudHNgIHwgRXhhbXBsZSBzZXJ2aWNlIHVzaW5nIGB1c2VCYXNlUXVlcnlgIHwnLFxuICAgICAgICAgICd8IGB3ZWIvcHVibGljL2NvbmZpZy5qc29uYCB8IFJ1bnRpbWUgY29uZmlnIChBUEkgYmFzZSBVUkwsIENsZXJrIHB1Ymxpc2hhYmxlIGtleSkgfCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJyMjIyBHaXRIdWIgQWN0aW9ucyBXb3JrZmxvd3MgKGAuZ2l0aHViL3dvcmtmbG93cy9gKScsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ3wgRmlsZSB8IFRyaWdnZXIgfCcsXG4gICAgICAgICAgJ3wtLS0tLS18LS0tLS0tLS0tfCcsXG4gICAgICAgICAgJ3wgYHByLWRlcGxveS55bWxgIHwgT24gcHVsbCByZXF1ZXN0IG9wZW4vdXBkYXRlIOKAlCBkZXBsb3lzIGEgcGVyLVBSIGRldiBzdGFjayB8JyxcbiAgICAgICAgICAnfCBgcHItY2xlYW51cC55bWxgIHwgT24gcHVsbCByZXF1ZXN0IGNsb3NlIOKAlCB0ZWFycyBkb3duIHRoZSBwZXItUFIgZGV2IHN0YWNrIHwnLFxuICAgICAgICAgICd8IGBzdGFnaW5nLWRlcGxveS55bWxgIHwgT24gcHVzaCB0byBgbWFpbmAg4oCUIGRlcGxveXMgdG8gc3RhZ2luZyB8JyxcbiAgICAgICAgICAnfCBgcHJvZHVjdGlvbi1kZXBsb3kueW1sYCB8IE1hbnVhbGx5IHRyaWdnZXJlZCDigJQgZGVwbG95cyB0byBwcm9kdWN0aW9uIHwnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICctLS0nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICcjIyBGaWxlcyBZb3UgQ2FuIEVkaXQnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdUaGVzZSBmaWxlcyBhcmUgZ2VuZXJhdGVkIG9uY2UgYW5kIG5ldmVyIG92ZXJ3cml0dGVuIGJ5IEJhdG1hbi4gTW9kaWZ5IHRoZW0gZnJlZWx5LicsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ3wgRmlsZSB8IFdoYXQgdG8gZG8gd2l0aCBpdCB8JyxcbiAgICAgICAgICAnfC0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLXwnLFxuICAgICAgICAgICd8IGBzcmMvc3RhY2tzL0FwcGxpY2F0aW9uU3RhY2sudHNgIHwgKipTdGFydCBoZXJlLioqIEFkZCBDREsgY29uc3RydWN0cyB0byBidWlsZCB5b3VyIGluZnJhc3RydWN0dXJlIHwnLFxuICAgICAgICAgICd8IGBzcmMvY29uc3RydWN0cy9BcGkudHNgIHwgRXh0ZW5kIHRoZSBBUEkg4oCUIGFkZCBMYW1iZGEgaW50ZWdyYXRpb25zLCByb3V0ZXMsIG9yIG92ZXJyaWRlIG1ldGhvZHMgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL1N0YXRpY1dlYnNpdGUudHNgIHwgQ3VzdG9taXplIENsb3VkRnJvbnQgYmVoYXZpb3JzLCBTMyBzZXR0aW5ncywgb3IgZGVwbG95bWVudCBvcHRpb25zIHwnLFxuICAgICAgICAgICd8IGBzcmMvY29uc3RydWN0cy9oYW5kbGVyL0FwaS5GdW5jdGlvbi50c2AgfCBJbXBsZW1lbnQgeW91ciBMYW1iZGEgaGFuZGxlciBsb2dpYyB8JyxcbiAgICAgICAgICAnfCBgc3JjL3N0YWNrcy9HaXRIdWJSb2xlc1N0YWNrLnRzYCB8IEFkZCBJQU0gcGVybWlzc2lvbnMgbmVlZGVkIGJ5IEdpdEh1YiBBY3Rpb25zIHwnLFxuICAgICAgICAgICd8IGBzcmMvbWFpbi50c2AgfCBBZGp1c3Qgc3RhY2sgaW5zdGFudGlhdGlvbiBvciBhZGQgYWRkaXRpb25hbCBzdGFja3MgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvQXBwLnRzeGAgfCBCdWlsZCB5b3VyIFVJIGhlcmUgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvQXBwLmNzc2AgLyBgd2ViL3NyYy9pbmRleC5jc3NgIHwgU3R5bGUgeW91ciBhcHBsaWNhdGlvbiB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9tYWluLnRzeGAgfCBBZGp1c3QgdG9wLWxldmVsIHByb3ZpZGVycyBvciByb3V0aW5nIHwnLFxuICAgICAgICAgICd8IGB3ZWIvc3JjL3NlcnZpY2VzL1Jvb3RTZXJ2aWNlLnRzYCB8IEFkZCBvciByZXBsYWNlIEFQSSBzZXJ2aWNlIGhvb2tzIHwnLFxuICAgICAgICAgICd8IGB3ZWIvcHVibGljL2NvbmZpZy5qc29uYCB8IFVwZGF0ZSBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQgKEFQSSBVUkwsIENsZXJrIGtleSkgfCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJyMjIEZpbGVzIFlvdSBDYW5ub3QgRWRpdCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ1RoZXNlIGZpbGVzIGFyZSAqKm1hbmFnZWQgYnkgQmF0bWFuKiogYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZXZlcnkgdGltZSBgbnB4IHByb2plbmAgcnVucy4gRG8gbm90IGVkaXQgdGhlbSBkaXJlY3RseSDigJQgbWFrZSBjaGFuZ2VzIGluIGAucHJvamVucmMudHNgIGluc3RlYWQuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnPiBbIUlNUE9SVEFOVF0nLFxuICAgICAgICAgICc+IElmIHlvdSBoYXZlIEFOWSBjaGFuZ2VzIHlvdSB3YW50IHRvIG1ha2UgdG8gdGhlc2UgZmlsZXMsIG5vdGlmeSAjdGVhbS1iYXRtYW4gb24gU2xhY2suICcsXG4gICAgICAgICAgJz4gV2UgbWFpbnRhaW4gdGhlc2UgZmlsZXMgYXMgcGFydCBvZiB0aGUgY29yZSBCYXRtYW4gZXhwZXJpZW5jZSwgYW5kIHlvdXIgZmVlZGJhY2sgaXMgY3J1Y2lhbCB0byBlbnN1cmUgdGhleSBtZWV0IHlvdXIgbmVlZHMuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnfCBGaWxlIHwgV2h5IGl0XFwncyBtYW5hZ2VkIHwnLFxuICAgICAgICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tfCcsXG4gICAgICAgICAgJ3wgYHNyYy9zdGFja3MvQmFzZUFwcGxpY2F0aW9uU3RhY2sudHNgIHwgQ29yZSBzdGFjayB3aXJpbmcg4oCUIHVwZGF0ZWQgd2l0aCBCYXRtYW4gcmVsZWFzZXMgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9hc3BlY3RzL0RhdGFEb2dBc3BlY3QudHNgIHwgRGF0YWRvZyBDREsgYXNwZWN0IHwnLFxuICAgICAgICAgICd8IGB3ZWIvdml0ZS5jb25maWcudHNgIHwgVml0ZSBjb25maWd1cmF0aW9uIHwnLFxuICAgICAgICAgICd8IGB3ZWIvZXNsaW50LmNvbmZpZy5qc2AgfCBFU0xpbnQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAgICAgICAnfCBgd2ViL3Bvc3Rjc3MuY29uZmlnLmpzYCB8IFBvc3RDU1MgLyBUYWlsd2luZCBjb25maWd1cmF0aW9uIHwnLFxuICAgICAgICAgICd8IGB3ZWIvaW5kZXguaHRtbGAgfCBIVE1MIGVudHJ5IHBvaW50IHwnLFxuICAgICAgICAgICd8IGB3ZWIvdHNjb25maWcuanNvbmAgLyBgd2ViL3RzY29uZmlnLmFwcC5qc29uYCAvIGB3ZWIvdHNjb25maWcubm9kZS5qc29uYCB8IFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy92aXRlLWVudi5kLnRzYCB8IFZpdGUgdHlwZSBkZWNsYXJhdGlvbnMgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvY29uZmlnLnRzYCB8IFJ1bnRpbWUgY29uZmlnIGhvb2sg4oCUIHNoYXBlIGRyaXZlbiBieSBgLnByb2plbnJjLnRzYCB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9zZXJ2aWNlcy9CYXNlU2VydmljZS50c2AgfCBCYXNlIGF1dGhlbnRpY2F0ZWQgZmV0Y2ggaG9vayB8JyxcbiAgICAgICAgICAnfCBgLmdpdGh1Yi9DT0RFT1dORVJTYCB8IENvZGUgb3duZXJzaGlwIHBvbGljeSB8JyxcbiAgICAgICAgICAnfCBgLmdpdGh1Yi93b3JrZmxvd3MvKi55bWxgIHwgQWxsIENJL0NEIHdvcmtmbG93cyB8JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnPiAqKlRpcDoqKiBGaWxlcyB3aXRoIGEgYH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi4gfn5gIGhlYWRlciBhcmUgbWFuYWdlZCBmaWxlcy4nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICctLS0nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICcjIyBXaGVyZSB0byBTdGFydCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJzEuICoqYHNyYy9zdGFja3MvQXBwbGljYXRpb25TdGFjay50c2AqKiDigJQgQWRkIHlvdXIgQ0RLIGNvbnN0cnVjdHMgaGVyZS4gVGhlIGJhc2Ugc3RhY2sgYWxyZWFkeSBwcm92aWRlcyBgdGhpcy5hcGlgLCBgdGhpcy52cGNgLCBgdGhpcy5ob3N0ZWRab25lYCwgYW5kIGB0aGlzLmRhdGFkb2dgIGFzIHByb3RlY3RlZCBwcm9wZXJ0aWVzLicsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJzIuICoqYHdlYi9gKiog4oCUIEJ1aWxkIHlvdXIgZnJvbnRlbmQuIFN0YXJ0IHdpdGggYHdlYi9zcmMvQXBwLnRzeGAgYW5kIGFkZCBzZXJ2aWNlcyBhbG9uZ3NpZGUgYHdlYi9zcmMvc2VydmljZXMvUm9vdFNlcnZpY2UudHNgLicsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJzMuICoqYHNyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzYCoqIOKAlCBJbXBsZW1lbnQgeW91ciBiYWNrZW5kIExhbWJkYSBoYW5kbGVyIGxvZ2ljIGhlcmUuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnLS0tJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyMgRGV2ZWxvcG1lbnQgV29ya2Zsb3cnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdgYGBiYXNoJyxcbiAgICAgICAgICAnIyBJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgICAgJ3lhcm4gaW5zdGFsbCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJyMgU3RhcnQgbG9jYWwgZGV2IHNlcnZlciAoYmFja2VuZCBMYW1iZGEgKyBWaXRlIGZyb250ZW5kIGluIHBhcmFsbGVsKScsXG4gICAgICAgICAgJ3lhcm4gZGV2JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyBEZXBsb3kgYSBwZXJzb25hbCBkZXYgc3RhY2sgdG8gQVdTJyxcbiAgICAgICAgICAneWFybiBjZGs6ZGV2IC0tY29udGV4dCBsb2NhbC1kZXYtcHJlZml4PXlvdXItaGFuZGxlIGRlcGxveScsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJyMgUnVuIHRlc3RzJyxcbiAgICAgICAgICAneWFybiB0ZXN0JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyBSZS1zeW50aGVzaXplIHByb2plY3QgZmlsZXMgYWZ0ZXIgZWRpdGluZyAucHJvamVucmMudHMnLFxuICAgICAgICAgICducHggcHJvamVuJyxcbiAgICAgICAgICAnYGBgJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnLS0tJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyMgVXBncmFkaW5nIEJhdG1hbicsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ2BgYGJhc2gnLFxuICAgICAgICAgICd5YXJuIGFkZCBAbWFjZWRvbi10ZWNobm9sb2dpZXMvYmF0bWFuQGxhdGVzdCcsXG4gICAgICAgICAgJ25weCBwcm9qZW4nLFxuICAgICAgICAgICdgYGAnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdUaGlzIHVwZGF0ZXMgYWxsIG1hbmFnZWQgZmlsZXMgdG8gdGhlIGxhdGVzdCBCYXRtYW4gc3RhbmRhcmRzLiBZb3VyIGVkaXRhYmxlIHNhbXBsZSBmaWxlcyBhcmUgbmV2ZXIgdG91Y2hlZC4nLFxuICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgfSxcbiAgICB9KTtcblxuXG4gICAgLy8gQ3JlYXRlIHN0YW5kYXJkIHByb2plY3QgZmlsZXNcbiAgICBjb25zdCBQUklNQVJZX0FDQ09VTlQgPSAnMDE1OTU1ODE3MjYzJztcbiAgICBjb25zdCBQUklNQVJZX1JFR0lPTiA9ICd1cy1lYXN0LTEnO1xuXG4gICAgbmV3IEFwcGxpY2F0aW9uKHRoaXMsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IGBtYWNlZG9uLXRlY2hub2xvZ2llcy8ke29wdGlvbnMubmFtZX1gLFxuICAgICAgZGV2OiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGV2LFxuICAgICAgfSxcbiAgICAgIHN0YWdpbmc6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5zdGFnaW5nLFxuICAgICAgfSxcbiAgICAgIHByb2Q6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXYsXG4gICAgICB9LFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IG9wdGlvbnMuYWRkaXRpb25hbFRhZ3MsXG4gICAgfSk7XG5cbiAgICBuZXcgR2l0SHViUm9sZXNGaWxlKHRoaXMsIHtcbiAgICAgIGFjY291bnQ6IFBSSU1BUllfQUNDT1VOVCxcbiAgICAgIHByaW1hcnlSZWdpb246IFBSSU1BUllfUkVHSU9OLFxuICAgIH0pO1xuXG4gICAgbmV3IENvZGVPd25lcnNGaWxlKHRoaXMsIHtcbiAgICAgIGFkZGl0aW9uYWxPd25lcnM6IG9wdGlvbnMuYWRkaXRpb25hbENvZGVPd25lcnMsXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YURvZ0FzcGVjdEZpbGUodGhpcyk7XG5cbiAgICBjb25zdCB2aXRlUmVhY3QgPSBuZXcgVml0ZVJlYWN0UHJvamVjdCh7XG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAgICAgcGFyZW50OiB0aGlzLFxuICAgICAgb3V0ZGlyOiAnd2ViJyxcbiAgICAgIGRlcHM6IG9wdGlvbnMud2Vic2l0ZURlcHMsXG4gICAgfSk7XG4gICAgdml0ZVJlYWN0LmFkZENvbmZpZ0ZpZWxkKCdzb21ldGhpbmcnLCAnbnVtYmVyJyk7XG4gICAgdml0ZVJlYWN0LmFkZENvbmZpZ0ZpZWxkKCdzb21ldGhpbmdFbHNlJywgJ3N0cmluZycpO1xuXG4gICAgY29uc3QgY29uY3VycmVudGx5ID0gKC4uLmFyZ3M6IHN0cmluZ1tdKSA9PiB7XG4gICAgICByZXR1cm4gYGNvbmN1cnJlbnRseSAke2FyZ3MubWFwKGEgPT4gYFwiJHthfVwiYCkuam9pbignICcpfWA7XG4gICAgfTtcblxuICAgIHRoaXMuYWRkVGFzaygnZGV2Jywge1xuICAgICAgZXhlYzogY29uY3VycmVudGx5KFxuICAgICAgICAnbm9kZW1vbiAtLXdhdGNoIC4vc3JjL2NvbnN0cnVjdHMvaGFuZGxlciAtLXdhdGNoIC4vbG9jYWwvZGV2LnRzIC4vbG9jYWwvZGV2LnRzJyxcbiAgICAgICAgdml0ZVJlYWN0LmRldkNvbW1hbmQsXG4gICAgICApLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRUYXNrKCdjZGs6ZGV2Jywge1xuICAgICAgZXhlYzogJ3lhcm4gY2RrIC1hIFwibnB4IHRzLW5vZGUgLVAgdHNjb25maWcuanNvbiAtLXByZWZlci10cy1leHRzIHNyYy9Mb2NhbERldkFwcC50c1wiJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG5cbiAgfVxufVxuIl19
|
|
119
|
+
BatmanProject[_a] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.10.0" };
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmF0bWFuUHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXRtYW5Qcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOENBQW9GO0FBQ3BGLDhDQUFzRDtBQUN0RCwrQ0FBMEU7QUFDMUUscURBQWtEO0FBQ2xELDJEQUF3RDtBQUN4RCx1REFBb0Q7QUFDcEQsbUNBQXlDO0FBQ3pDLHlEQUFzRDtBQW9DdEQsTUFBYSxhQUFjLFNBQVEsNEJBQW1CO0lBQ3BELFlBQVksT0FBNkI7UUFDdkMsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUztZQUMzQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsb0JBQW9CLElBQUksTUFBTTtZQUM1RCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsSUFBSSxFQUFFO2dCQUNKLG1CQUFtQjtnQkFDbkIsZ0JBQWdCO2dCQUNoQixXQUFXO2dCQUNYLElBQUk7Z0JBQ0oscUJBQXFCO2dCQUNyQixzQkFBc0I7Z0JBQ3RCLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2dCQUMxQixtQ0FBbUM7Z0JBQ25DLGNBQWM7Z0JBQ2QsaUNBQWlDO2dCQUNqQyxTQUFTO2dCQUNULGlCQUFpQjtnQkFDakIsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUU7YUFDdEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULGNBQWM7Z0JBQ2QscUNBQXFDO2dCQUNyQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRTthQUN6QjtZQUNELFNBQVMsRUFBRTtnQkFDVCxtREFBbUQ7Z0JBQ25ELGNBQWM7Z0JBQ2QsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUU7YUFDM0I7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxPQUFPLENBQUMsUUFBUTtnQkFDbkIsZUFBZSxFQUFFO29CQUNmLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxlQUFlO29CQUNwQyxlQUFlLEVBQUUsSUFBSTtvQkFDckIsMEJBQTBCLEVBQUUsSUFBSTtpQkFDakM7YUFDRjtZQUNELFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUk7WUFDOUMsa0JBQWtCLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRTtvQkFDZixpQkFBaUIsRUFBRSwwQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQzt3QkFDM0QsTUFBTSxFQUFFLGNBQWM7cUJBQ3ZCLENBQUM7aUJBQ0g7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsSUFBQSxzQkFBYyxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7YUFDdkM7U0FDRixDQUFDLENBQUM7UUFHSCxnQ0FBZ0M7UUFDaEMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQztRQUVuQyxJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFO1lBQ3BCLGdCQUFnQixFQUFFLHdCQUF3QixPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3hELEdBQUcsRUFBRTtnQkFDSCxHQUFHLE9BQU8sQ0FBQyxHQUFHO2FBQ2Y7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxPQUFPLENBQUMsT0FBTzthQUNuQjtZQUNELElBQUksRUFBRTtnQkFDSixHQUFHLE9BQU8sQ0FBQyxHQUFHO2FBQ2Y7WUFDRCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQ0FBZSxDQUFDLElBQUksRUFBRTtZQUN4QixPQUFPLEVBQUUsZUFBZTtZQUN4QixhQUFhLEVBQUUsY0FBYztTQUM5QixDQUFDLENBQUM7UUFFSCxJQUFJLCtCQUFjLENBQUMsSUFBSSxFQUFFO1lBQ3ZCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QixNQUFNLFNBQVMsR0FBRyxJQUFJLG1DQUFnQixDQUFDO1lBQ3JDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixvQkFBb0IsRUFBRSxNQUFNO1lBQzVCLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFcEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQWMsRUFBRSxFQUFFO1lBQ3pDLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0QsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDbEIsSUFBSSxFQUFFLFlBQVksQ0FDaEIsZ0ZBQWdGLEVBQ2hGLFNBQVMsQ0FBQyxVQUFVLENBQ3JCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxFQUFFLGdGQUFnRjtZQUN0RixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFHTCxDQUFDOztBQXBISCxzQ0FxSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwLCBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgQXBwbGljYXRpb24sIEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL0FwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvZGVPd25lcnNGaWxlIH0gZnJvbSAnLi9Db2RlT3duZXJzRmlsZSc7XG5pbXBvcnQgeyBEYXRhRG9nQXNwZWN0RmlsZSB9IGZyb20gJy4vRGF0YURvZ0FzcGVjdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNGaWxlIH0gZnJvbSAnLi9HaXRIdWJSb2xlc0ZpbGUnO1xuaW1wb3J0IHsgcmVhZG1lQ29udGVudHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFZpdGVSZWFjdFByb2plY3QgfSBmcm9tICcuL1ZpdGVSZWFjdFByb2plY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhdG1hblByb2plY3RPcHRpb25zIGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXY6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdpbmc6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZDogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCB0YWdzIHRvIGFwcGx5IHRvIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb2RlIG93bmVycyB0byBhZGQgdG8gdGhlIENPREVPV05FUlMgZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbENvZGVPd25lcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2Vic2l0ZSBkZXBlbmRlbmNpZXNcbiAgICovXG4gIHJlYWRvbmx5IHdlYnNpdGVEZXBzPzogc3RyaW5nW107XG59XG5cblxuZXhwb3J0IGNsYXNzIEJhdG1hblByb2plY3QgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQmF0bWFuUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY2RrVmVyc2lvbjogb3B0aW9ucy5jZGtWZXJzaW9uIHx8ICcyLjIyNC4wJyxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoIHx8ICdtYWluJyxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBidWlsZFdvcmtmbG93OiBmYWxzZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgJ0B0eXBlcy9hd3MtbGFtYmRhJyxcbiAgICAgICAgJ0B0eXBlcy9leHByZXNzJyxcbiAgICAgICAgJ0B0eXBlcy9wZycsXG4gICAgICAgICdwZycsXG4gICAgICAgICdAYXdzLXNkay9yZHMtc2lnbmVyJyxcbiAgICAgICAgJ0BtYXR0aGV3Ym9uaWcvc2VjcmV0JyxcbiAgICAgICAgJ2RhdGFkb2ctY2RrLWNvbnN0cnVjdHMtdjInLFxuICAgICAgICAnQGNka2xhYnMvYXdzLWxhbWJkYS1ydXN0JyxcbiAgICAgICAgJ0Bhd3MtbGFtYmRhLXBvd2VydG9vbHMvcGFyYW1ldGVycycsXG4gICAgICAgICdqc29ud2VidG9rZW4nLFxuICAgICAgICAnQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlcicsXG4gICAgICAgICdleHByZXNzJyxcbiAgICAgICAgJ3NlcnZlcmxlc3MtaHR0cCcsXG4gICAgICAgIC4uLm9wdGlvbnMuZGVwcyB8fCBbXSxcbiAgICAgIF0sXG4gICAgICBkZXZEZXBzOiBbXG4gICAgICAgICdAdHlwZXMvanNvbndlYnRva2VuJyxcbiAgICAgICAgJ25vZGVtb24nLFxuICAgICAgICAnY29uY3VycmVudGx5JyxcbiAgICAgICAgJ0BtYWNlZG9uLXRlY2hub2xvZ2llcy9iYXRtYW5AXjEuMC4wJyxcbiAgICAgICAgLi4ub3B0aW9ucy5kZXZEZXBzIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIGdpdGlnbm9yZTogW1xuICAgICAgICAnc3JjL2NvbnN0cnVjdHMvaGFuZGxlci9jbGVyay1hdXRob3JpemVyL3RhcmdldC8qKicsXG4gICAgICAgICcqKi8uRFNfU3RvcmUnLFxuICAgICAgICAuLi5vcHRpb25zLmdpdGlnbm9yZSB8fCBbXSxcbiAgICAgIF0sXG4gICAgICB0c2NvbmZpZzoge1xuICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnLFxuICAgICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMsXG4gICAgICAgICAgaXNvbGF0ZWRNb2R1bGVzOiB0cnVlLFxuICAgICAgICAgIGFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgbWluTm9kZVZlcnNpb246IG9wdGlvbnMubWluTm9kZVZlcnNpb24gfHwgJzIyJyxcbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICB3b3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogR2l0aHViQ3JlZGVudGlhbHMuZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oe1xuICAgICAgICAgICAgc2VjcmV0OiAnR0lUSFVCX1RPS0VOJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICByZWFkbWU6IHtcbiAgICAgICAgY29udGVudHM6IHJlYWRtZUNvbnRlbnRzKG9wdGlvbnMubmFtZSksXG4gICAgICB9LFxuICAgIH0pO1xuXG5cbiAgICAvLyBDcmVhdGUgc3RhbmRhcmQgcHJvamVjdCBmaWxlc1xuICAgIGNvbnN0IFBSSU1BUllfQUNDT1VOVCA9ICcwMTU5NTU4MTcyNjMnO1xuICAgIGNvbnN0IFBSSU1BUllfUkVHSU9OID0gJ3VzLWVhc3QtMSc7XG5cbiAgICBuZXcgQXBwbGljYXRpb24odGhpcywge1xuICAgICAgZ2l0aHViUmVwb3NpdG9yeTogYG1hY2Vkb24tdGVjaG5vbG9naWVzLyR7b3B0aW9ucy5uYW1lfWAsXG4gICAgICBkZXY6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXYsXG4gICAgICB9LFxuICAgICAgc3RhZ2luZzoge1xuICAgICAgICAuLi5vcHRpb25zLnN0YWdpbmcsXG4gICAgICB9LFxuICAgICAgcHJvZDoge1xuICAgICAgICAuLi5vcHRpb25zLmRldixcbiAgICAgIH0sXG4gICAgICBhZGRpdGlvbmFsVGFnczogb3B0aW9ucy5hZGRpdGlvbmFsVGFncyxcbiAgICB9KTtcblxuICAgIG5ldyBHaXRIdWJSb2xlc0ZpbGUodGhpcywge1xuICAgICAgYWNjb3VudDogUFJJTUFSWV9BQ0NPVU5ULFxuICAgICAgcHJpbWFyeVJlZ2lvbjogUFJJTUFSWV9SRUdJT04sXG4gICAgfSk7XG5cbiAgICBuZXcgQ29kZU93bmVyc0ZpbGUodGhpcywge1xuICAgICAgYWRkaXRpb25hbE93bmVyczogb3B0aW9ucy5hZGRpdGlvbmFsQ29kZU93bmVycyxcbiAgICB9KTtcblxuICAgIG5ldyBEYXRhRG9nQXNwZWN0RmlsZSh0aGlzKTtcblxuICAgIGNvbnN0IHZpdGVSZWFjdCA9IG5ldyBWaXRlUmVhY3RQcm9qZWN0KHtcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICBvdXRkaXI6ICd3ZWInLFxuICAgICAgZGVwczogb3B0aW9ucy53ZWJzaXRlRGVwcyxcbiAgICB9KTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZycsICdudW1iZXInKTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZ0Vsc2UnLCAnc3RyaW5nJyk7XG5cbiAgICBjb25zdCBjb25jdXJyZW50bHkgPSAoLi4uYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIHJldHVybiBgY29uY3VycmVudGx5ICR7YXJncy5tYXAoYSA9PiBgXCIke2F9XCJgKS5qb2luKCcgJyl9YDtcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRUYXNrKCdkZXYnLCB7XG4gICAgICBleGVjOiBjb25jdXJyZW50bHkoXG4gICAgICAgICdub2RlbW9uIC0td2F0Y2ggLi9zcmMvY29uc3RydWN0cy9oYW5kbGVyIC0td2F0Y2ggLi9sb2NhbC9kZXYudHMgLi9sb2NhbC9kZXYudHMnLFxuICAgICAgICB2aXRlUmVhY3QuZGV2Q29tbWFuZCxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2NkazpkZXYnLCB7XG4gICAgICBleGVjOiAneWFybiBjZGsgLWEgXCJucHggdHMtbm9kZSAtUCB0c2NvbmZpZy5qc29uIC0tcHJlZmVyLXRzLWV4dHMgc3JjL0xvY2FsRGV2QXBwLnRzXCInLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cblxuICB9XG59XG4iXX0=
|
|
@@ -56,6 +56,7 @@ class BootcampApplication {
|
|
|
56
56
|
new PrCleanupWorkflow_1.PrCleanupWorkflow(project, {
|
|
57
57
|
roleArn: options.dev.githubActionRoleArn,
|
|
58
58
|
awsRegion: options.dev.region,
|
|
59
|
+
projectName: project.name,
|
|
59
60
|
});
|
|
60
61
|
new StagingDeployWorkflow_1.StagingDeployWorkflow(project, {
|
|
61
62
|
roleArn: options.staging.githubActionRoleArn,
|
|
@@ -72,4 +73,4 @@ class BootcampApplication {
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
exports.BootcampApplication = BootcampApplication;
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBBcHBsaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Cb290Y2FtcEFwcGxpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlEQUFzRDtBQUN0RCx1REFBb0Q7QUFDcEQseUVBQXNFO0FBQ3RFLGlGQUE4RTtBQUM5RSxxREFBa0Q7QUFDbEQsaUVBQThEO0FBQzlELHVEQUFvRDtBQUNwRCx5Q0FBeUQ7QUFDekQsaURBQThDO0FBQzlDLDJEQUF3RDtBQUN4RCx5REFBc0Q7QUFDdEQseUVBQXNFO0FBQ3RFLG1FQUFnRTtBQUNoRSw2RUFBMEU7QUFjMUU7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtJQUM5QixZQUFZLE9BQTRCLEVBQUUsT0FBMkI7UUFDbkUsZ0NBQWdDO1FBRWhDLElBQUksbUJBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDcEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLGlDQUFlLENBQUMsT0FBTyxFQUFFO1lBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7U0FDakIsQ0FBQyxDQUFDO1FBRUgscUJBQXFCO1FBQ3JCLElBQUksMkNBQW9CLENBQUMsT0FBTyxFQUFFO1lBQ2hDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJLDJEQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLHlCQUF5QjtRQUN6QixJQUFJLG1DQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksdURBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMsdUJBQXVCO1FBQ3ZCLElBQUksaUNBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QixvQkFBb0I7UUFDcEIsSUFBSSwyQkFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLHNCQUFzQjtRQUN0QixJQUFJLCtCQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUIsa0NBQWtDO1FBQ2xDLElBQUksbUNBQWdCLENBQUMsT0FBTyxFQUFFO1lBQzVCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQzdCLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1NBQ3JELENBQUMsQ0FBQztRQUVILElBQUkscUNBQWlCLENBQUMsT0FBTyxFQUFFO1lBQzdCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQzdCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtTQUMxQixDQUFDLENBQUM7UUFFSCxJQUFJLDZDQUFxQixDQUFDLE9BQU8sRUFBRTtZQUNqQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDNUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNqQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7U0FDekQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLEVBQUU7WUFDcEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpFRCxrREFpRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgQXBpQ29uc3RydWN0RmlsZSB9IGZyb20gJy4vQXBpQ29uc3RydWN0RmlsZSc7XG5pbXBvcnQgeyBBcGlGdW5jdGlvbkZpbGUgfSBmcm9tICcuL0FwaUZ1bmN0aW9uRmlsZSc7XG5pbXBvcnQgeyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBCb290Y2FtcEFwcGxpY2F0aW9uU3RhY2tGaWxlIH0gZnJvbSAnLi9Cb290Y2FtcEFwcGxpY2F0aW9uU3RhY2tGaWxlJztcbmltcG9ydCB7IENvZGVSYWJiaXRGaWxlIH0gZnJvbSAnLi9Db2RlUmFiYml0RmlsZSc7XG5pbXBvcnQgeyBHaXRIdWJSb2xlc1N0YWNrRmlsZSB9IGZyb20gJy4vR2l0SHViUm9sZXNTdGFja0ZpbGUnO1xuaW1wb3J0IHsgTG9jYWxEZXZBcHBGaWxlIH0gZnJvbSAnLi9Mb2NhbERldkFwcEZpbGUnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRDb25maWcsIE1haW5GaWxlIH0gZnJvbSAnLi9NYWluRmlsZSc7XG5pbXBvcnQgeyBNYWluVGVzdEZpbGUgfSBmcm9tICcuL01haW5UZXN0RmlsZSc7XG5pbXBvcnQgeyBQckNsZWFudXBXb3JrZmxvdyB9IGZyb20gJy4vUHJDbGVhbnVwV29ya2Zsb3cnO1xuaW1wb3J0IHsgUHJEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vUHJEZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBQcm9kdWN0aW9uRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuL1Byb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBTdGFnaW5nRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuL1N0YWdpbmdEZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBTdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZSB9IGZyb20gJy4vU3RhdGljV2Vic2l0ZUNvbnN0cnVjdEZpbGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgZXh0ZW5kcyBFbnZpcm9ubWVudENvbmZpZyB7XG4gIHJlYWRvbmx5IGdpdGh1YkFjdGlvblJvbGVBcm46IGBhcm46YXdzOmlhbTo6JHtzdHJpbmd9OnJvbGUvJHtzdHJpbmd9YDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbk9wdGlvbnMge1xuICByZWFkb25seSBnaXRodWJSZXBvc2l0b3J5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRldjogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcbiAgcmVhZG9ubHkgc3RhZ2luZzogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcbiAgcmVhZG9ubHkgcHJvZDogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcbiAgcmVhZG9ubHkgYWRkaXRpb25hbFRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNvbnN0cnVjdCB0aGF0IGNyZWF0ZXMgYWxsIHN0YW5kYXJkIHByb2plY3QgZmlsZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RjYW1wQXBwbGljYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBBcHBsaWNhdGlvbk9wdGlvbnMpIHtcbiAgICAvLyBDcmVhdGUgbWFpbiBlbnRyeSBwb2ludCBmaWxlc1xuXG4gICAgbmV3IE1haW5GaWxlKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgICAgc3RhZ2luZzogb3B0aW9ucy5zdGFnaW5nLFxuICAgICAgcHJvZDogb3B0aW9ucy5wcm9kLFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IG9wdGlvbnMuYWRkaXRpb25hbFRhZ3MsXG4gICAgfSk7XG5cbiAgICBuZXcgTG9jYWxEZXZBcHBGaWxlKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHN0YWNrIGZpbGVzXG4gICAgbmV3IEdpdEh1YlJvbGVzU3RhY2tGaWxlKHByb2plY3QsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IG9wdGlvbnMuZ2l0aHViUmVwb3NpdG9yeSxcbiAgICB9KTtcblxuICAgIG5ldyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUocHJvamVjdCk7XG4gICAgbmV3IEJvb3RjYW1wQXBwbGljYXRpb25TdGFja0ZpbGUocHJvamVjdCk7XG5cbiAgICAvLyBDcmVhdGUgY29uc3RydWN0IGZpbGVzXG4gICAgbmV3IEFwaUNvbnN0cnVjdEZpbGUocHJvamVjdCk7XG4gICAgbmV3IFN0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIGhhbmRsZXIgZmlsZXNcbiAgICBuZXcgQXBpRnVuY3Rpb25GaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIHRlc3QgZmlsZXNcbiAgICBuZXcgTWFpblRlc3RGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIGNvbmZpZyBmaWxlc1xuICAgIG5ldyBDb2RlUmFiYml0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvd3NcbiAgICBuZXcgUHJEZXBsb3lXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBjbGVya1B1Ymxpc2hhYmxlS2V5OiBvcHRpb25zLmRldi5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgIH0pO1xuXG4gICAgbmV3IFByQ2xlYW51cFdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuZGV2LmdpdGh1YkFjdGlvblJvbGVBcm4sXG4gICAgICBhd3NSZWdpb246IG9wdGlvbnMuZGV2LnJlZ2lvbixcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgfSk7XG5cbiAgICBuZXcgU3RhZ2luZ0RlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuc3RhZ2luZy5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnN0YWdpbmcucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMuc3RhZ2luZy5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgIH0pO1xuXG4gICAgbmV3IFByb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLnByb2QuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5wcm9kLnJlZ2lvbixcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBjbGVya1B1Ymxpc2hhYmxlS2V5OiBvcHRpb25zLnByb2QuY2xlcmtQdWJsaXNoYWJsZUtleSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/BootcampProject.js
CHANGED
|
@@ -9,6 +9,7 @@ const BootcampApplication_1 = require("./BootcampApplication");
|
|
|
9
9
|
const CodeOwnersFile_1 = require("./CodeOwnersFile");
|
|
10
10
|
const DataDogAspectFile_1 = require("./DataDogAspectFile");
|
|
11
11
|
const GitHubRolesFile_1 = require("./GitHubRolesFile");
|
|
12
|
+
const utils_1 = require("./utils");
|
|
12
13
|
const ViteReactProject_1 = require("./ViteReactProject");
|
|
13
14
|
class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
|
|
14
15
|
constructor(options) {
|
|
@@ -66,136 +67,7 @@ class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
|
|
|
66
67
|
},
|
|
67
68
|
},
|
|
68
69
|
readme: {
|
|
69
|
-
contents:
|
|
70
|
-
`# ${options.name}`,
|
|
71
|
-
'',
|
|
72
|
-
'This project was bootstrapped with [Batman](https://github.com/macedon-technologies/platform-common).',
|
|
73
|
-
'',
|
|
74
|
-
'## What Batman Created',
|
|
75
|
-
'',
|
|
76
|
-
'### CDK Infrastructure (`src/`)',
|
|
77
|
-
'',
|
|
78
|
-
'| File | Description |',
|
|
79
|
-
'|------|-------------|',
|
|
80
|
-
'| `src/main.ts` | CDK app entry point — instantiates dev, staging, and prod `ApplicationStack`s |',
|
|
81
|
-
'| `src/LocalDevApp.ts` | Local development CDK app — used by `yarn cdk:dev` |',
|
|
82
|
-
'| `src/GitHubRoles.ts` | CDK app for deploying the GitHub OIDC IAM role (one-time bootstrap) |',
|
|
83
|
-
'| `src/stacks/ApplicationStack.ts` | Your primary stack — extend it to add resources |',
|
|
84
|
-
'| `src/stacks/BaseApplicationStack.ts` | Base stack with VPC, API, static website, Datadog, and Route 53 wired up |',
|
|
85
|
-
'| `src/stacks/GitHubRolesStack.ts` | IAM role stack for GitHub Actions OIDC authentication |',
|
|
86
|
-
'| `src/constructs/Api.ts` | API Gateway + Lambda construct with Clerk JWT authorizer |',
|
|
87
|
-
'| `src/constructs/StaticWebsite.ts` | CloudFront + S3 + ACM + Route 53 construct |',
|
|
88
|
-
'| `src/constructs/handler/Api.Function.ts` | Lambda handler entry point |',
|
|
89
|
-
'| `src/aspects/DataDogAspect.ts` | CDK aspect that wires all Lambda functions to Datadog |',
|
|
90
|
-
'',
|
|
91
|
-
'### Frontend (`web/`)',
|
|
92
|
-
'',
|
|
93
|
-
'| File | Description |',
|
|
94
|
-
'|------|-------------|',
|
|
95
|
-
'| `web/src/main.tsx` | React app entry point with Clerk and React Query providers |',
|
|
96
|
-
'| `web/src/App.tsx` | Root application component |',
|
|
97
|
-
'| `web/src/App.css` / `web/src/index.css` | Base stylesheets (Tailwind CSS v4) |',
|
|
98
|
-
'| `web/src/config.ts` | `useConfig()` hook — loads runtime config from `config.json` |',
|
|
99
|
-
'| `web/src/services/BaseService.ts` | `useBaseQuery()` — authenticated API fetch hook |',
|
|
100
|
-
'| `web/src/services/RootService.ts` | Example service using `useBaseQuery` |',
|
|
101
|
-
'| `web/public/config.json` | Runtime config (API base URL, Clerk publishable key) |',
|
|
102
|
-
'',
|
|
103
|
-
'### GitHub Actions Workflows (`.github/workflows/`)',
|
|
104
|
-
'',
|
|
105
|
-
'| File | Trigger |',
|
|
106
|
-
'|------|---------|',
|
|
107
|
-
'| `pr-deploy.yml` | On pull request open/update — deploys a per-PR dev stack |',
|
|
108
|
-
'| `pr-cleanup.yml` | On pull request close — tears down the per-PR dev stack |',
|
|
109
|
-
'| `staging-deploy.yml` | On push to `main` — deploys to staging |',
|
|
110
|
-
'| `production-deploy.yml` | Manually triggered — deploys to production |',
|
|
111
|
-
'',
|
|
112
|
-
'---',
|
|
113
|
-
'',
|
|
114
|
-
'## Files You Can Edit',
|
|
115
|
-
'',
|
|
116
|
-
'These files are generated once and never overwritten by Batman. Modify them freely.',
|
|
117
|
-
'',
|
|
118
|
-
'| File | What to do with it |',
|
|
119
|
-
'|------|--------------------|',
|
|
120
|
-
'| `src/stacks/ApplicationStack.ts` | **Start here.** Add CDK constructs to build your infrastructure |',
|
|
121
|
-
'| `src/constructs/Api.ts` | Extend the API — add Lambda integrations, routes, or override methods |',
|
|
122
|
-
'| `src/constructs/StaticWebsite.ts` | Customize CloudFront behaviors, S3 settings, or deployment options |',
|
|
123
|
-
'| `src/constructs/handler/Api.Function.ts` | Implement your Lambda handler logic |',
|
|
124
|
-
'| `src/stacks/GitHubRolesStack.ts` | Add IAM permissions needed by GitHub Actions |',
|
|
125
|
-
'| `src/main.ts` | Adjust stack instantiation or add additional stacks |',
|
|
126
|
-
'| `web/src/App.tsx` | Build your UI here |',
|
|
127
|
-
'| `web/src/App.css` / `web/src/index.css` | Style your application |',
|
|
128
|
-
'| `web/src/main.tsx` | Adjust top-level providers or routing |',
|
|
129
|
-
'| `web/src/services/RootService.ts` | Add or replace API service hooks |',
|
|
130
|
-
'| `web/public/config.json` | Update for local development (API URL, Clerk key) |',
|
|
131
|
-
'',
|
|
132
|
-
'## Files You Cannot Edit',
|
|
133
|
-
'',
|
|
134
|
-
'These files are **managed by Batman** and will be overwritten every time `npx projen` runs. Do not edit them directly — make changes in `.projenrc.ts` instead.',
|
|
135
|
-
'',
|
|
136
|
-
'> [!IMPORTANT]',
|
|
137
|
-
'> If you have ANY changes you want to make to these files, notify #team-batman on Slack. ',
|
|
138
|
-
'> We maintain these files as part of the core Batman experience, and your feedback is crucial to ensure they meet your needs.',
|
|
139
|
-
'',
|
|
140
|
-
'| File | Why it\'s managed |',
|
|
141
|
-
'|------|-----------------|',
|
|
142
|
-
'| `src/stacks/BaseApplicationStack.ts` | Core stack wiring — updated with Batman releases |',
|
|
143
|
-
'| `src/aspects/DataDogAspect.ts` | Datadog CDK aspect |',
|
|
144
|
-
'| `web/vite.config.ts` | Vite configuration |',
|
|
145
|
-
'| `web/eslint.config.js` | ESLint configuration |',
|
|
146
|
-
'| `web/postcss.config.js` | PostCSS / Tailwind configuration |',
|
|
147
|
-
'| `web/index.html` | HTML entry point |',
|
|
148
|
-
'| `web/tsconfig.json` / `web/tsconfig.app.json` / `web/tsconfig.node.json` | TypeScript configuration |',
|
|
149
|
-
'| `web/src/vite-env.d.ts` | Vite type declarations |',
|
|
150
|
-
'| `web/src/config.ts` | Runtime config hook — shape driven by `.projenrc.ts` |',
|
|
151
|
-
'| `web/src/services/BaseService.ts` | Base authenticated fetch hook |',
|
|
152
|
-
'| `.github/CODEOWNERS` | Code ownership policy |',
|
|
153
|
-
'| `.github/workflows/*.yml` | All CI/CD workflows |',
|
|
154
|
-
'',
|
|
155
|
-
'> **Tip:** Files with a `~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". ~~` header are managed files.',
|
|
156
|
-
'',
|
|
157
|
-
'---',
|
|
158
|
-
'',
|
|
159
|
-
'## Where to Start',
|
|
160
|
-
'',
|
|
161
|
-
'1. **`src/stacks/ApplicationStack.ts`** — Add your CDK constructs here. The base stack already provides `this.api`, `this.vpc`, `this.hostedZone`, and `this.datadog` as protected properties.',
|
|
162
|
-
'',
|
|
163
|
-
'2. **`web/`** — Build your frontend. Start with `web/src/App.tsx` and add services alongside `web/src/services/RootService.ts`.',
|
|
164
|
-
'',
|
|
165
|
-
'3. **`src/constructs/handler/Api.Function.ts`** — Implement your backend Lambda handler logic here.',
|
|
166
|
-
'',
|
|
167
|
-
'---',
|
|
168
|
-
'',
|
|
169
|
-
'## Development Workflow',
|
|
170
|
-
'',
|
|
171
|
-
'```bash',
|
|
172
|
-
'# Install dependencies',
|
|
173
|
-
'yarn install',
|
|
174
|
-
'',
|
|
175
|
-
'# Start local dev server (backend Lambda + Vite frontend in parallel)',
|
|
176
|
-
'yarn dev',
|
|
177
|
-
'',
|
|
178
|
-
'# Deploy a personal dev stack to AWS',
|
|
179
|
-
'yarn cdk:dev --context local-dev-prefix=your-handle deploy',
|
|
180
|
-
'',
|
|
181
|
-
'# Run tests',
|
|
182
|
-
'yarn test',
|
|
183
|
-
'',
|
|
184
|
-
'# Re-synthesize project files after editing .projenrc.ts',
|
|
185
|
-
'npx projen',
|
|
186
|
-
'```',
|
|
187
|
-
'',
|
|
188
|
-
'---',
|
|
189
|
-
'',
|
|
190
|
-
'## Upgrading Batman',
|
|
191
|
-
'',
|
|
192
|
-
'```bash',
|
|
193
|
-
'yarn add @macedon-technologies/batman@latest',
|
|
194
|
-
'npx projen',
|
|
195
|
-
'```',
|
|
196
|
-
'',
|
|
197
|
-
'This updates all managed files to the latest Batman standards. Your editable sample files are never touched.',
|
|
198
|
-
].join('\n'),
|
|
70
|
+
contents: (0, utils_1.readmeContents)(options.name),
|
|
199
71
|
},
|
|
200
72
|
});
|
|
201
73
|
// Create standard project files
|
|
@@ -244,5 +116,5 @@ class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
|
|
|
244
116
|
}
|
|
245
117
|
exports.BootcampProject = BootcampProject;
|
|
246
118
|
_a = JSII_RTTI_SYMBOL_1;
|
|
247
|
-
BootcampProject[_a] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jvb3RjYW1wUHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUFvRjtBQUNwRiw4Q0FBc0Q7QUFFdEQsK0RBQTREO0FBQzVELHFEQUFrRDtBQUNsRCwyREFBd0Q7QUFDeEQsdURBQW9EO0FBQ3BELHlEQUFzRDtBQStCdEQsTUFBYSxlQUFnQixTQUFRLDRCQUFtQjtJQUN0RCxZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVM7WUFDM0Msb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixJQUFJLE1BQU07WUFDNUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLElBQUksRUFBRTtnQkFDSixtQkFBbUI7Z0JBQ25CLGdCQUFnQjtnQkFDaEIsV0FBVztnQkFDWCxJQUFJO2dCQUNKLHFCQUFxQjtnQkFDckIsc0JBQXNCO2dCQUN0QiwyQkFBMkI7Z0JBQzNCLDBCQUEwQjtnQkFDMUIsbUNBQW1DO2dCQUNuQyxjQUFjO2dCQUNkLGlDQUFpQztnQkFDakMsU0FBUztnQkFDVCxpQkFBaUI7Z0JBQ2pCLGFBQWE7Z0JBQ2IsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUU7YUFDdEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULGNBQWM7Z0JBQ2QscUNBQXFDO2dCQUNyQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRTthQUN6QjtZQUNELFNBQVMsRUFBRTtnQkFDVCxtREFBbUQ7Z0JBQ25ELGNBQWM7Z0JBQ2QsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUU7YUFDM0I7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxPQUFPLENBQUMsUUFBUTtnQkFDbkIsZUFBZSxFQUFFO29CQUNmLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxlQUFlO29CQUNwQyxlQUFlLEVBQUUsSUFBSTtvQkFDckIsMEJBQTBCLEVBQUUsSUFBSTtpQkFDakM7YUFDRjtZQUNELFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUk7WUFDOUMsa0JBQWtCLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRTtvQkFDZixpQkFBaUIsRUFBRSwwQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQzt3QkFDM0QsTUFBTSxFQUFFLGNBQWM7cUJBQ3ZCLENBQUM7aUJBQ0g7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUU7b0JBQ1IsS0FBSyxPQUFPLENBQUMsSUFBSSxFQUFFO29CQUNuQixFQUFFO29CQUNGLHVHQUF1RztvQkFDdkcsRUFBRTtvQkFDRix3QkFBd0I7b0JBQ3hCLEVBQUU7b0JBQ0YsaUNBQWlDO29CQUNqQyxFQUFFO29CQUNGLHdCQUF3QjtvQkFDeEIsd0JBQXdCO29CQUN4QixtR0FBbUc7b0JBQ25HLCtFQUErRTtvQkFDL0UsZ0dBQWdHO29CQUNoRyx3RkFBd0Y7b0JBQ3hGLHFIQUFxSDtvQkFDckgsOEZBQThGO29CQUM5Rix3RkFBd0Y7b0JBQ3hGLG9GQUFvRjtvQkFDcEYsMkVBQTJFO29CQUMzRSw0RkFBNEY7b0JBQzVGLEVBQUU7b0JBQ0YsdUJBQXVCO29CQUN2QixFQUFFO29CQUNGLHdCQUF3QjtvQkFDeEIsd0JBQXdCO29CQUN4QixxRkFBcUY7b0JBQ3JGLG9EQUFvRDtvQkFDcEQsa0ZBQWtGO29CQUNsRix3RkFBd0Y7b0JBQ3hGLHlGQUF5RjtvQkFDekYsOEVBQThFO29CQUM5RSxxRkFBcUY7b0JBQ3JGLEVBQUU7b0JBQ0YscURBQXFEO29CQUNyRCxFQUFFO29CQUNGLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUNwQixnRkFBZ0Y7b0JBQ2hGLGdGQUFnRjtvQkFDaEYsbUVBQW1FO29CQUNuRSwwRUFBMEU7b0JBQzFFLEVBQUU7b0JBQ0YsS0FBSztvQkFDTCxFQUFFO29CQUNGLHVCQUF1QjtvQkFDdkIsRUFBRTtvQkFDRixxRkFBcUY7b0JBQ3JGLEVBQUU7b0JBQ0YsK0JBQStCO29CQUMvQiwrQkFBK0I7b0JBQy9CLHdHQUF3RztvQkFDeEcscUdBQXFHO29CQUNyRyw0R0FBNEc7b0JBQzVHLG9GQUFvRjtvQkFDcEYscUZBQXFGO29CQUNyRix5RUFBeUU7b0JBQ3pFLDRDQUE0QztvQkFDNUMsc0VBQXNFO29CQUN0RSxnRUFBZ0U7b0JBQ2hFLDBFQUEwRTtvQkFDMUUsa0ZBQWtGO29CQUNsRixFQUFFO29CQUNGLDBCQUEwQjtvQkFDMUIsRUFBRTtvQkFDRixpS0FBaUs7b0JBQ2pLLEVBQUU7b0JBQ0YsZ0JBQWdCO29CQUNoQiwyRkFBMkY7b0JBQzNGLCtIQUErSDtvQkFDL0gsRUFBRTtvQkFDRiw4QkFBOEI7b0JBQzlCLDRCQUE0QjtvQkFDNUIsNkZBQTZGO29CQUM3Rix5REFBeUQ7b0JBQ3pELCtDQUErQztvQkFDL0MsbURBQW1EO29CQUNuRCxnRUFBZ0U7b0JBQ2hFLHlDQUF5QztvQkFDekMseUdBQXlHO29CQUN6RyxzREFBc0Q7b0JBQ3RELGdGQUFnRjtvQkFDaEYsdUVBQXVFO29CQUN2RSxrREFBa0Q7b0JBQ2xELHFEQUFxRDtvQkFDckQsRUFBRTtvQkFDRixtSUFBbUk7b0JBQ25JLEVBQUU7b0JBQ0YsS0FBSztvQkFDTCxFQUFFO29CQUNGLG1CQUFtQjtvQkFDbkIsRUFBRTtvQkFDRixnTUFBZ007b0JBQ2hNLEVBQUU7b0JBQ0YsaUlBQWlJO29CQUNqSSxFQUFFO29CQUNGLHFHQUFxRztvQkFDckcsRUFBRTtvQkFDRixLQUFLO29CQUNMLEVBQUU7b0JBQ0YseUJBQXlCO29CQUN6QixFQUFFO29CQUNGLFNBQVM7b0JBQ1Qsd0JBQXdCO29CQUN4QixjQUFjO29CQUNkLEVBQUU7b0JBQ0YsdUVBQXVFO29CQUN2RSxVQUFVO29CQUNWLEVBQUU7b0JBQ0Ysc0NBQXNDO29CQUN0Qyw0REFBNEQ7b0JBQzVELEVBQUU7b0JBQ0YsYUFBYTtvQkFDYixXQUFXO29CQUNYLEVBQUU7b0JBQ0YsMERBQTBEO29CQUMxRCxZQUFZO29CQUNaLEtBQUs7b0JBQ0wsRUFBRTtvQkFDRixLQUFLO29CQUNMLEVBQUU7b0JBQ0YscUJBQXFCO29CQUNyQixFQUFFO29CQUNGLFNBQVM7b0JBQ1QsOENBQThDO29CQUM5QyxZQUFZO29CQUNaLEtBQUs7b0JBQ0wsRUFBRTtvQkFDRiw4R0FBOEc7aUJBQy9HLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNiO1NBQ0YsQ0FBQyxDQUFDO1FBR0gsZ0NBQWdDO1FBQ2hDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN2QyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUM7UUFFbkMsSUFBSSx5Q0FBbUIsQ0FBQyxJQUFJLEVBQUU7WUFDNUIsZ0JBQWdCLEVBQUUsd0JBQXdCLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDeEQsR0FBRyxFQUFFO2dCQUNILEdBQUcsT0FBTyxDQUFDLEdBQUc7YUFDZjtZQUNELE9BQU8sRUFBRTtnQkFDUCxHQUFHLE9BQU8sQ0FBQyxPQUFPO2FBQ25CO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEdBQUcsT0FBTyxDQUFDLEdBQUc7YUFDZjtZQUNELGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLGlDQUFlLENBQUMsSUFBSSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLGFBQWEsRUFBRSxjQUFjO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksK0JBQWMsQ0FBQyxJQUFJLEVBQUU7WUFDdkIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtTQUMvQyxDQUFDLENBQUM7UUFFSCxJQUFJLHFDQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVCLE1BQU0sU0FBUyxHQUFHLElBQUksbUNBQWdCLENBQUM7WUFDckMsSUFBSSxFQUFFLEtBQUs7WUFDWCxvQkFBb0IsRUFBRSxNQUFNO1lBQzVCLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRCxTQUFTLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVwRCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBYyxFQUFFLEVBQUU7WUFDekMsT0FBTyxnQkFBZ0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNsQixJQUFJLEVBQUUsWUFBWSxDQUNoQixnRkFBZ0YsRUFDaEYsU0FBUyxDQUFDLFVBQVUsQ0FDckI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixJQUFJLEVBQUUsZ0ZBQWdGO1lBQ3RGLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUdMLENBQUM7O0FBclBILDBDQXNQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAsIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgR2l0aHViQ3JlZGVudGlhbHMgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnIH0gZnJvbSAnLi9BcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBCb290Y2FtcEFwcGxpY2F0aW9uIH0gZnJvbSAnLi9Cb290Y2FtcEFwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvZGVPd25lcnNGaWxlIH0gZnJvbSAnLi9Db2RlT3duZXJzRmlsZSc7XG5pbXBvcnQgeyBEYXRhRG9nQXNwZWN0RmlsZSB9IGZyb20gJy4vRGF0YURvZ0FzcGVjdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNGaWxlIH0gZnJvbSAnLi9HaXRIdWJSb2xlc0ZpbGUnO1xuaW1wb3J0IHsgVml0ZVJlYWN0UHJvamVjdCB9IGZyb20gJy4vVml0ZVJlYWN0UHJvamVjdCc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBCb290Y2FtcFByb2plY3RPcHRpb25zIGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXY6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdpbmc6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZDogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCB0YWdzIHRvIGFwcGx5IHRvIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb2RlIG93bmVycyB0byBhZGQgdG8gdGhlIENPREVPV05FUlMgZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbENvZGVPd25lcnM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEJvb3RjYW1wUHJvamVjdCBleHRlbmRzIEF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBCb290Y2FtcFByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGNka1ZlcnNpb246IG9wdGlvbnMuY2RrVmVyc2lvbiB8fCAnMi4yMjQuMCcsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogb3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaCB8fCAnbWFpbicsXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgICAgYnVpbGRXb3JrZmxvdzogZmFsc2UsXG4gICAgICBkZXBzOiBbXG4gICAgICAgICdAdHlwZXMvYXdzLWxhbWJkYScsXG4gICAgICAgICdAdHlwZXMvZXhwcmVzcycsXG4gICAgICAgICdAdHlwZXMvcGcnLFxuICAgICAgICAncGcnLFxuICAgICAgICAnQGF3cy1zZGsvcmRzLXNpZ25lcicsXG4gICAgICAgICdAbWF0dGhld2JvbmlnL3NlY3JldCcsXG4gICAgICAgICdkYXRhZG9nLWNkay1jb25zdHJ1Y3RzLXYyJyxcbiAgICAgICAgJ0BjZGtsYWJzL2F3cy1sYW1iZGEtcnVzdCcsXG4gICAgICAgICdAYXdzLWxhbWJkYS1wb3dlcnRvb2xzL3BhcmFtZXRlcnMnLFxuICAgICAgICAnanNvbndlYnRva2VuJyxcbiAgICAgICAgJ0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXInLFxuICAgICAgICAnZXhwcmVzcycsXG4gICAgICAgICdzZXJ2ZXJsZXNzLWh0dHAnLFxuICAgICAgICAnY2RrLXJkcy1zcWwnLFxuICAgICAgICAuLi5vcHRpb25zLmRlcHMgfHwgW10sXG4gICAgICBdLFxuICAgICAgZGV2RGVwczogW1xuICAgICAgICAnQHR5cGVzL2pzb253ZWJ0b2tlbicsXG4gICAgICAgICdub2RlbW9uJyxcbiAgICAgICAgJ2NvbmN1cnJlbnRseScsXG4gICAgICAgICdAbWFjZWRvbi10ZWNobm9sb2dpZXMvYmF0bWFuQF4xLjAuMCcsXG4gICAgICAgIC4uLm9wdGlvbnMuZGV2RGVwcyB8fCBbXSxcbiAgICAgIF0sXG4gICAgICBnaXRpZ25vcmU6IFtcbiAgICAgICAgJ3NyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvY2xlcmstYXV0aG9yaXplci90YXJnZXQvKionLFxuICAgICAgICAnKiovLkRTX1N0b3JlJyxcbiAgICAgICAgLi4ub3B0aW9ucy5naXRpZ25vcmUgfHwgW10sXG4gICAgICBdLFxuICAgICAgdHNjb25maWc6IHtcbiAgICAgICAgLi4ub3B0aW9ucy50c2NvbmZpZyxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgLi4ub3B0aW9ucy50c2NvbmZpZz8uY29tcGlsZXJPcHRpb25zLFxuICAgICAgICAgIGlzb2xhdGVkTW9kdWxlczogdHJ1ZSxcbiAgICAgICAgICBhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIG1pbk5vZGVWZXJzaW9uOiBvcHRpb25zLm1pbk5vZGVWZXJzaW9uIHx8ICcyMicsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgd29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IEdpdGh1YkNyZWRlbnRpYWxzLmZyb21QZXJzb25hbEFjY2Vzc1Rva2VuKHtcbiAgICAgICAgICAgIHNlY3JldDogJ0dJVEhVQl9UT0tFTicsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVhZG1lOiB7XG4gICAgICAgIGNvbnRlbnRzOiBbXG4gICAgICAgICAgYCMgJHtvcHRpb25zLm5hbWV9YCxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnVGhpcyBwcm9qZWN0IHdhcyBib290c3RyYXBwZWQgd2l0aCBbQmF0bWFuXShodHRwczovL2dpdGh1Yi5jb20vbWFjZWRvbi10ZWNobm9sb2dpZXMvcGxhdGZvcm0tY29tbW9uKS4nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICcjIyBXaGF0IEJhdG1hbiBDcmVhdGVkJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyMjIENESyBJbmZyYXN0cnVjdHVyZSAoYHNyYy9gKScsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ3wgRmlsZSB8IERlc2NyaXB0aW9uIHwnLFxuICAgICAgICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS18JyxcbiAgICAgICAgICAnfCBgc3JjL21haW4udHNgIHwgQ0RLIGFwcCBlbnRyeSBwb2ludCDigJQgaW5zdGFudGlhdGVzIGRldiwgc3RhZ2luZywgYW5kIHByb2QgYEFwcGxpY2F0aW9uU3RhY2tgcyB8JyxcbiAgICAgICAgICAnfCBgc3JjL0xvY2FsRGV2QXBwLnRzYCB8IExvY2FsIGRldmVsb3BtZW50IENESyBhcHAg4oCUIHVzZWQgYnkgYHlhcm4gY2RrOmRldmAgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9HaXRIdWJSb2xlcy50c2AgfCBDREsgYXBwIGZvciBkZXBsb3lpbmcgdGhlIEdpdEh1YiBPSURDIElBTSByb2xlIChvbmUtdGltZSBib290c3RyYXApIHwnLFxuICAgICAgICAgICd8IGBzcmMvc3RhY2tzL0FwcGxpY2F0aW9uU3RhY2sudHNgIHwgWW91ciBwcmltYXJ5IHN0YWNrIOKAlCBleHRlbmQgaXQgdG8gYWRkIHJlc291cmNlcyB8JyxcbiAgICAgICAgICAnfCBgc3JjL3N0YWNrcy9CYXNlQXBwbGljYXRpb25TdGFjay50c2AgfCBCYXNlIHN0YWNrIHdpdGggVlBDLCBBUEksIHN0YXRpYyB3ZWJzaXRlLCBEYXRhZG9nLCBhbmQgUm91dGUgNTMgd2lyZWQgdXAgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9zdGFja3MvR2l0SHViUm9sZXNTdGFjay50c2AgfCBJQU0gcm9sZSBzdGFjayBmb3IgR2l0SHViIEFjdGlvbnMgT0lEQyBhdXRoZW50aWNhdGlvbiB8JyxcbiAgICAgICAgICAnfCBgc3JjL2NvbnN0cnVjdHMvQXBpLnRzYCB8IEFQSSBHYXRld2F5ICsgTGFtYmRhIGNvbnN0cnVjdCB3aXRoIENsZXJrIEpXVCBhdXRob3JpemVyIHwnLFxuICAgICAgICAgICd8IGBzcmMvY29uc3RydWN0cy9TdGF0aWNXZWJzaXRlLnRzYCB8IENsb3VkRnJvbnQgKyBTMyArIEFDTSArIFJvdXRlIDUzIGNvbnN0cnVjdCB8JyxcbiAgICAgICAgICAnfCBgc3JjL2NvbnN0cnVjdHMvaGFuZGxlci9BcGkuRnVuY3Rpb24udHNgIHwgTGFtYmRhIGhhbmRsZXIgZW50cnkgcG9pbnQgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9hc3BlY3RzL0RhdGFEb2dBc3BlY3QudHNgIHwgQ0RLIGFzcGVjdCB0aGF0IHdpcmVzIGFsbCBMYW1iZGEgZnVuY3Rpb25zIHRvIERhdGFkb2cgfCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJyMjIyBGcm9udGVuZCAoYHdlYi9gKScsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ3wgRmlsZSB8IERlc2NyaXB0aW9uIHwnLFxuICAgICAgICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS18JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9tYWluLnRzeGAgfCBSZWFjdCBhcHAgZW50cnkgcG9pbnQgd2l0aCBDbGVyayBhbmQgUmVhY3QgUXVlcnkgcHJvdmlkZXJzIHwnLFxuICAgICAgICAgICd8IGB3ZWIvc3JjL0FwcC50c3hgIHwgUm9vdCBhcHBsaWNhdGlvbiBjb21wb25lbnQgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvQXBwLmNzc2AgLyBgd2ViL3NyYy9pbmRleC5jc3NgIHwgQmFzZSBzdHlsZXNoZWV0cyAoVGFpbHdpbmQgQ1NTIHY0KSB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9jb25maWcudHNgIHwgYHVzZUNvbmZpZygpYCBob29rIOKAlCBsb2FkcyBydW50aW1lIGNvbmZpZyBmcm9tIGBjb25maWcuanNvbmAgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvc2VydmljZXMvQmFzZVNlcnZpY2UudHNgIHwgYHVzZUJhc2VRdWVyeSgpYCDigJQgYXV0aGVudGljYXRlZCBBUEkgZmV0Y2ggaG9vayB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9zZXJ2aWNlcy9Sb290U2VydmljZS50c2AgfCBFeGFtcGxlIHNlcnZpY2UgdXNpbmcgYHVzZUJhc2VRdWVyeWAgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9wdWJsaWMvY29uZmlnLmpzb25gIHwgUnVudGltZSBjb25maWcgKEFQSSBiYXNlIFVSTCwgQ2xlcmsgcHVibGlzaGFibGUga2V5KSB8JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyMjIEdpdEh1YiBBY3Rpb25zIFdvcmtmbG93cyAoYC5naXRodWIvd29ya2Zsb3dzL2ApJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnfCBGaWxlIHwgVHJpZ2dlciB8JyxcbiAgICAgICAgICAnfC0tLS0tLXwtLS0tLS0tLS18JyxcbiAgICAgICAgICAnfCBgcHItZGVwbG95LnltbGAgfCBPbiBwdWxsIHJlcXVlc3Qgb3Blbi91cGRhdGUg4oCUIGRlcGxveXMgYSBwZXItUFIgZGV2IHN0YWNrIHwnLFxuICAgICAgICAgICd8IGBwci1jbGVhbnVwLnltbGAgfCBPbiBwdWxsIHJlcXVlc3QgY2xvc2Ug4oCUIHRlYXJzIGRvd24gdGhlIHBlci1QUiBkZXYgc3RhY2sgfCcsXG4gICAgICAgICAgJ3wgYHN0YWdpbmctZGVwbG95LnltbGAgfCBPbiBwdXNoIHRvIGBtYWluYCDigJQgZGVwbG95cyB0byBzdGFnaW5nIHwnLFxuICAgICAgICAgICd8IGBwcm9kdWN0aW9uLWRlcGxveS55bWxgIHwgTWFudWFsbHkgdHJpZ2dlcmVkIOKAlCBkZXBsb3lzIHRvIHByb2R1Y3Rpb24gfCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJy0tLScsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJyMjIEZpbGVzIFlvdSBDYW4gRWRpdCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ1RoZXNlIGZpbGVzIGFyZSBnZW5lcmF0ZWQgb25jZSBhbmQgbmV2ZXIgb3ZlcndyaXR0ZW4gYnkgQmF0bWFuLiBNb2RpZnkgdGhlbSBmcmVlbHkuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnfCBGaWxlIHwgV2hhdCB0byBkbyB3aXRoIGl0IHwnLFxuICAgICAgICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfCcsXG4gICAgICAgICAgJ3wgYHNyYy9zdGFja3MvQXBwbGljYXRpb25TdGFjay50c2AgfCAqKlN0YXJ0IGhlcmUuKiogQWRkIENESyBjb25zdHJ1Y3RzIHRvIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL0FwaS50c2AgfCBFeHRlbmQgdGhlIEFQSSDigJQgYWRkIExhbWJkYSBpbnRlZ3JhdGlvbnMsIHJvdXRlcywgb3Igb3ZlcnJpZGUgbWV0aG9kcyB8JyxcbiAgICAgICAgICAnfCBgc3JjL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZS50c2AgfCBDdXN0b21pemUgQ2xvdWRGcm9udCBiZWhhdmlvcnMsIFMzIHNldHRpbmdzLCBvciBkZXBsb3ltZW50IG9wdGlvbnMgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzYCB8IEltcGxlbWVudCB5b3VyIExhbWJkYSBoYW5kbGVyIGxvZ2ljIHwnLFxuICAgICAgICAgICd8IGBzcmMvc3RhY2tzL0dpdEh1YlJvbGVzU3RhY2sudHNgIHwgQWRkIElBTSBwZXJtaXNzaW9ucyBuZWVkZWQgYnkgR2l0SHViIEFjdGlvbnMgfCcsXG4gICAgICAgICAgJ3wgYHNyYy9tYWluLnRzYCB8IEFkanVzdCBzdGFjayBpbnN0YW50aWF0aW9uIG9yIGFkZCBhZGRpdGlvbmFsIHN0YWNrcyB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9BcHAudHN4YCB8IEJ1aWxkIHlvdXIgVUkgaGVyZSB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9BcHAuY3NzYCAvIGB3ZWIvc3JjL2luZGV4LmNzc2AgfCBTdHlsZSB5b3VyIGFwcGxpY2F0aW9uIHwnLFxuICAgICAgICAgICd8IGB3ZWIvc3JjL21haW4udHN4YCB8IEFkanVzdCB0b3AtbGV2ZWwgcHJvdmlkZXJzIG9yIHJvdXRpbmcgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9zcmMvc2VydmljZXMvUm9vdFNlcnZpY2UudHNgIHwgQWRkIG9yIHJlcGxhY2UgQVBJIHNlcnZpY2UgaG9va3MgfCcsXG4gICAgICAgICAgJ3wgYHdlYi9wdWJsaWMvY29uZmlnLmpzb25gIHwgVXBkYXRlIGZvciBsb2NhbCBkZXZlbG9wbWVudCAoQVBJIFVSTCwgQ2xlcmsga2V5KSB8JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyMgRmlsZXMgWW91IENhbm5vdCBFZGl0JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnVGhlc2UgZmlsZXMgYXJlICoqbWFuYWdlZCBieSBCYXRtYW4qKiBhbmQgd2lsbCBiZSBvdmVyd3JpdHRlbiBldmVyeSB0aW1lIGBucHggcHJvamVuYCBydW5zLiBEbyBub3QgZWRpdCB0aGVtIGRpcmVjdGx5IOKAlCBtYWtlIGNoYW5nZXMgaW4gYC5wcm9qZW5yYy50c2AgaW5zdGVhZC4nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICc+IFshSU1QT1JUQU5UXScsXG4gICAgICAgICAgJz4gSWYgeW91IGhhdmUgQU5ZIGNoYW5nZXMgeW91IHdhbnQgdG8gbWFrZSB0byB0aGVzZSBmaWxlcywgbm90aWZ5ICN0ZWFtLWJhdG1hbiBvbiBTbGFjay4gJyxcbiAgICAgICAgICAnPiBXZSBtYWludGFpbiB0aGVzZSBmaWxlcyBhcyBwYXJ0IG9mIHRoZSBjb3JlIEJhdG1hbiBleHBlcmllbmNlLCBhbmQgeW91ciBmZWVkYmFjayBpcyBjcnVjaWFsIHRvIGVuc3VyZSB0aGV5IG1lZXQgeW91ciBuZWVkcy4nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICd8IEZpbGUgfCBXaHkgaXRcXCdzIG1hbmFnZWQgfCcsXG4gICAgICAgICAgJ3wtLS0tLS18LS0tLS0tLS0tLS0tLS0tLS18JyxcbiAgICAgICAgICAnfCBgc3JjL3N0YWNrcy9CYXNlQXBwbGljYXRpb25TdGFjay50c2AgfCBDb3JlIHN0YWNrIHdpcmluZyDigJQgdXBkYXRlZCB3aXRoIEJhdG1hbiByZWxlYXNlcyB8JyxcbiAgICAgICAgICAnfCBgc3JjL2FzcGVjdHMvRGF0YURvZ0FzcGVjdC50c2AgfCBEYXRhZG9nIENESyBhc3BlY3QgfCcsXG4gICAgICAgICAgJ3wgYHdlYi92aXRlLmNvbmZpZy50c2AgfCBWaXRlIGNvbmZpZ3VyYXRpb24gfCcsXG4gICAgICAgICAgJ3wgYHdlYi9lc2xpbnQuY29uZmlnLmpzYCB8IEVTTGludCBjb25maWd1cmF0aW9uIHwnLFxuICAgICAgICAgICd8IGB3ZWIvcG9zdGNzcy5jb25maWcuanNgIHwgUG9zdENTUyAvIFRhaWx3aW5kIGNvbmZpZ3VyYXRpb24gfCcsXG4gICAgICAgICAgJ3wgYHdlYi9pbmRleC5odG1sYCB8IEhUTUwgZW50cnkgcG9pbnQgfCcsXG4gICAgICAgICAgJ3wgYHdlYi90c2NvbmZpZy5qc29uYCAvIGB3ZWIvdHNjb25maWcuYXBwLmpzb25gIC8gYHdlYi90c2NvbmZpZy5ub2RlLmpzb25gIHwgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIHwnLFxuICAgICAgICAgICd8IGB3ZWIvc3JjL3ZpdGUtZW52LmQudHNgIHwgVml0ZSB0eXBlIGRlY2xhcmF0aW9ucyB8JyxcbiAgICAgICAgICAnfCBgd2ViL3NyYy9jb25maWcudHNgIHwgUnVudGltZSBjb25maWcgaG9vayDigJQgc2hhcGUgZHJpdmVuIGJ5IGAucHJvamVucmMudHNgIHwnLFxuICAgICAgICAgICd8IGB3ZWIvc3JjL3NlcnZpY2VzL0Jhc2VTZXJ2aWNlLnRzYCB8IEJhc2UgYXV0aGVudGljYXRlZCBmZXRjaCBob29rIHwnLFxuICAgICAgICAgICd8IGAuZ2l0aHViL0NPREVPV05FUlNgIHwgQ29kZSBvd25lcnNoaXAgcG9saWN5IHwnLFxuICAgICAgICAgICd8IGAuZ2l0aHViL3dvcmtmbG93cy8qLnltbGAgfCBBbGwgQ0kvQ0Qgd29ya2Zsb3dzIHwnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICc+ICoqVGlwOioqIEZpbGVzIHdpdGggYSBgfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLiB+fmAgaGVhZGVyIGFyZSBtYW5hZ2VkIGZpbGVzLicsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJy0tLScsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJyMjIFdoZXJlIHRvIFN0YXJ0JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnMS4gKipgc3JjL3N0YWNrcy9BcHBsaWNhdGlvblN0YWNrLnRzYCoqIOKAlCBBZGQgeW91ciBDREsgY29uc3RydWN0cyBoZXJlLiBUaGUgYmFzZSBzdGFjayBhbHJlYWR5IHByb3ZpZGVzIGB0aGlzLmFwaWAsIGB0aGlzLnZwY2AsIGB0aGlzLmhvc3RlZFpvbmVgLCBhbmQgYHRoaXMuZGF0YWRvZ2AgYXMgcHJvdGVjdGVkIHByb3BlcnRpZXMuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnMi4gKipgd2ViL2AqKiDigJQgQnVpbGQgeW91ciBmcm9udGVuZC4gU3RhcnQgd2l0aCBgd2ViL3NyYy9BcHAudHN4YCBhbmQgYWRkIHNlcnZpY2VzIGFsb25nc2lkZSBgd2ViL3NyYy9zZXJ2aWNlcy9Sb290U2VydmljZS50c2AuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnMy4gKipgc3JjL2NvbnN0cnVjdHMvaGFuZGxlci9BcGkuRnVuY3Rpb24udHNgKiog4oCUIEltcGxlbWVudCB5b3VyIGJhY2tlbmQgTGFtYmRhIGhhbmRsZXIgbG9naWMgaGVyZS4nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICctLS0nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICcjIyBEZXZlbG9wbWVudCBXb3JrZmxvdycsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ2BgYGJhc2gnLFxuICAgICAgICAgICcjIEluc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAneWFybiBpbnN0YWxsJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyBTdGFydCBsb2NhbCBkZXYgc2VydmVyIChiYWNrZW5kIExhbWJkYSArIFZpdGUgZnJvbnRlbmQgaW4gcGFyYWxsZWwpJyxcbiAgICAgICAgICAneWFybiBkZXYnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICcjIERlcGxveSBhIHBlcnNvbmFsIGRldiBzdGFjayB0byBBV1MnLFxuICAgICAgICAgICd5YXJuIGNkazpkZXYgLS1jb250ZXh0IGxvY2FsLWRldi1wcmVmaXg9eW91ci1oYW5kbGUgZGVwbG95JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnIyBSdW4gdGVzdHMnLFxuICAgICAgICAgICd5YXJuIHRlc3QnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICcjIFJlLXN5bnRoZXNpemUgcHJvamVjdCBmaWxlcyBhZnRlciBlZGl0aW5nIC5wcm9qZW5yYy50cycsXG4gICAgICAgICAgJ25weCBwcm9qZW4nLFxuICAgICAgICAgICdgYGAnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICctLS0nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICcjIyBVcGdyYWRpbmcgQmF0bWFuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnYGBgYmFzaCcsXG4gICAgICAgICAgJ3lhcm4gYWRkIEBtYWNlZG9uLXRlY2hub2xvZ2llcy9iYXRtYW5AbGF0ZXN0JyxcbiAgICAgICAgICAnbnB4IHByb2plbicsXG4gICAgICAgICAgJ2BgYCcsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ1RoaXMgdXBkYXRlcyBhbGwgbWFuYWdlZCBmaWxlcyB0byB0aGUgbGF0ZXN0IEJhdG1hbiBzdGFuZGFyZHMuIFlvdXIgZWRpdGFibGUgc2FtcGxlIGZpbGVzIGFyZSBuZXZlciB0b3VjaGVkLicsXG4gICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICB9LFxuICAgIH0pO1xuXG5cbiAgICAvLyBDcmVhdGUgc3RhbmRhcmQgcHJvamVjdCBmaWxlc1xuICAgIGNvbnN0IFBSSU1BUllfQUNDT1VOVCA9ICcwMTU5NTU4MTcyNjMnO1xuICAgIGNvbnN0IFBSSU1BUllfUkVHSU9OID0gJ3VzLWVhc3QtMSc7XG5cbiAgICBuZXcgQm9vdGNhbXBBcHBsaWNhdGlvbih0aGlzLCB7XG4gICAgICBnaXRodWJSZXBvc2l0b3J5OiBgbWFjZWRvbi10ZWNobm9sb2dpZXMvJHtvcHRpb25zLm5hbWV9YCxcbiAgICAgIGRldjoge1xuICAgICAgICAuLi5vcHRpb25zLmRldixcbiAgICAgIH0sXG4gICAgICBzdGFnaW5nOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuc3RhZ2luZyxcbiAgICAgIH0sXG4gICAgICBwcm9kOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGV2LFxuICAgICAgfSxcbiAgICAgIGFkZGl0aW9uYWxUYWdzOiBvcHRpb25zLmFkZGl0aW9uYWxUYWdzLFxuICAgIH0pO1xuXG4gICAgbmV3IEdpdEh1YlJvbGVzRmlsZSh0aGlzLCB7XG4gICAgICBhY2NvdW50OiBQUklNQVJZX0FDQ09VTlQsXG4gICAgICBwcmltYXJ5UmVnaW9uOiBQUklNQVJZX1JFR0lPTixcbiAgICB9KTtcblxuICAgIG5ldyBDb2RlT3duZXJzRmlsZSh0aGlzLCB7XG4gICAgICBhZGRpdGlvbmFsT3duZXJzOiBvcHRpb25zLmFkZGl0aW9uYWxDb2RlT3duZXJzLFxuICAgIH0pO1xuXG4gICAgbmV3IERhdGFEb2dBc3BlY3RGaWxlKHRoaXMpO1xuXG4gICAgY29uc3Qgdml0ZVJlYWN0ID0gbmV3IFZpdGVSZWFjdFByb2plY3Qoe1xuICAgICAgbmFtZTogJ3dlYicsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAgICAgcGFyZW50OiB0aGlzLFxuICAgICAgb3V0ZGlyOiAnd2ViJyxcbiAgICB9KTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZycsICdudW1iZXInKTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZ0Vsc2UnLCAnc3RyaW5nJyk7XG5cbiAgICBjb25zdCBjb25jdXJyZW50bHkgPSAoLi4uYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIHJldHVybiBgY29uY3VycmVudGx5ICR7YXJncy5tYXAoYSA9PiBgXCIke2F9XCJgKS5qb2luKCcgJyl9YDtcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRUYXNrKCdkZXYnLCB7XG4gICAgICBleGVjOiBjb25jdXJyZW50bHkoXG4gICAgICAgICdub2RlbW9uIC0td2F0Y2ggLi9zcmMvY29uc3RydWN0cy9oYW5kbGVyIC0td2F0Y2ggLi9sb2NhbC9kZXYudHMgLi9sb2NhbC9kZXYudHMnLFxuICAgICAgICB2aXRlUmVhY3QuZGV2Q29tbWFuZCxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2NkazpkZXYnLCB7XG4gICAgICBleGVjOiAneWFybiBjZGsgLWEgXCJucHggdHMtbm9kZSAtUCB0c2NvbmZpZy5qc29uIC0tcHJlZmVyLXRzLWV4dHMgc3JjL0xvY2FsRGV2QXBwLnRzXCInLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cblxuICB9XG59XG4iXX0=
|
|
119
|
+
BootcampProject[_a] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.10.0" };
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jvb3RjYW1wUHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUFvRjtBQUNwRiw4Q0FBc0Q7QUFFdEQsK0RBQTREO0FBQzVELHFEQUFrRDtBQUNsRCwyREFBd0Q7QUFDeEQsdURBQW9EO0FBQ3BELG1DQUF5QztBQUN6Qyx5REFBc0Q7QUErQnRELE1BQWEsZUFBZ0IsU0FBUSw0QkFBbUI7SUFDdEQsWUFBWSxPQUErQjtRQUN6QyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTO1lBQzNDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxNQUFNO1lBQzVELElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsS0FBSztZQUNwQixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CO2dCQUNuQixnQkFBZ0I7Z0JBQ2hCLFdBQVc7Z0JBQ1gsSUFBSTtnQkFDSixxQkFBcUI7Z0JBQ3JCLHNCQUFzQjtnQkFDdEIsMkJBQTJCO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLG1DQUFtQztnQkFDbkMsY0FBYztnQkFDZCxpQ0FBaUM7Z0JBQ2pDLFNBQVM7Z0JBQ1QsaUJBQWlCO2dCQUNqQixhQUFhO2dCQUNiLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFO2FBQ3RCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLHFCQUFxQjtnQkFDckIsU0FBUztnQkFDVCxjQUFjO2dCQUNkLHFDQUFxQztnQkFDckMsR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7YUFDekI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsbURBQW1EO2dCQUNuRCxjQUFjO2dCQUNkLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFO2FBQzNCO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLEdBQUcsT0FBTyxDQUFDLFFBQVE7Z0JBQ25CLGVBQWUsRUFBRTtvQkFDZixHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsZUFBZTtvQkFDcEMsZUFBZSxFQUFFLElBQUk7b0JBQ3JCLDBCQUEwQixFQUFFLElBQUk7aUJBQ2pDO2FBQ0Y7WUFDRCxVQUFVLEVBQUUsS0FBSztZQUNqQixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJO1lBQzlDLGtCQUFrQixFQUFFO2dCQUNsQixlQUFlLEVBQUU7b0JBQ2YsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsdUJBQXVCLENBQUM7d0JBQzNELE1BQU0sRUFBRSxjQUFjO3FCQUN2QixDQUFDO2lCQUNIO2FBQ0Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2FBQ3ZDO1NBQ0YsQ0FBQyxDQUFDO1FBR0gsZ0NBQWdDO1FBQ2hDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN2QyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUM7UUFFbkMsSUFBSSx5Q0FBbUIsQ0FBQyxJQUFJLEVBQUU7WUFDNUIsZ0JBQWdCLEVBQUUsd0JBQXdCLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDeEQsR0FBRyxFQUFFO2dCQUNILEdBQUcsT0FBTyxDQUFDLEdBQUc7YUFDZjtZQUNELE9BQU8sRUFBRTtnQkFDUCxHQUFHLE9BQU8sQ0FBQyxPQUFPO2FBQ25CO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEdBQUcsT0FBTyxDQUFDLEdBQUc7YUFDZjtZQUNELGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLGlDQUFlLENBQUMsSUFBSSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLGFBQWEsRUFBRSxjQUFjO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksK0JBQWMsQ0FBQyxJQUFJLEVBQUU7WUFDdkIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtTQUMvQyxDQUFDLENBQUM7UUFFSCxJQUFJLHFDQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVCLE1BQU0sU0FBUyxHQUFHLElBQUksbUNBQWdCLENBQUM7WUFDckMsSUFBSSxFQUFFLEtBQUs7WUFDWCxvQkFBb0IsRUFBRSxNQUFNO1lBQzVCLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRCxTQUFTLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVwRCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBYyxFQUFFLEVBQUU7WUFDekMsT0FBTyxnQkFBZ0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNsQixJQUFJLEVBQUUsWUFBWSxDQUNoQixnRkFBZ0YsRUFDaEYsU0FBUyxDQUFDLFVBQVUsQ0FDckI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixJQUFJLEVBQUUsZ0ZBQWdGO1lBQ3RGLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUdMLENBQUM7O0FBcEhILDBDQXFIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAsIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgR2l0aHViQ3JlZGVudGlhbHMgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnIH0gZnJvbSAnLi9BcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBCb290Y2FtcEFwcGxpY2F0aW9uIH0gZnJvbSAnLi9Cb290Y2FtcEFwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvZGVPd25lcnNGaWxlIH0gZnJvbSAnLi9Db2RlT3duZXJzRmlsZSc7XG5pbXBvcnQgeyBEYXRhRG9nQXNwZWN0RmlsZSB9IGZyb20gJy4vRGF0YURvZ0FzcGVjdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNGaWxlIH0gZnJvbSAnLi9HaXRIdWJSb2xlc0ZpbGUnO1xuaW1wb3J0IHsgcmVhZG1lQ29udGVudHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFZpdGVSZWFjdFByb2plY3QgfSBmcm9tICcuL1ZpdGVSZWFjdFByb2plY3QnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdGNhbXBQcm9qZWN0T3B0aW9ucyBleHRlbmRzIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIHtcblxuICAvKipcbiAgICogRGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGV2OiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBQcm9kdWN0aW9uIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgdGFncyB0byBhcHBseSB0byBhbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29kZSBvd25lcnMgdG8gYWRkIHRvIHRoZSBDT0RFT1dORVJTIGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxDb2RlT3duZXJzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBCb290Y2FtcFByb2plY3QgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQm9vdGNhbXBQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBjZGtWZXJzaW9uOiBvcHRpb25zLmNka1ZlcnNpb24gfHwgJzIuMjI0LjAnLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2ggfHwgJ21haW4nLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIGJ1aWxkV29ya2Zsb3c6IGZhbHNlLFxuICAgICAgZGVwczogW1xuICAgICAgICAnQHR5cGVzL2F3cy1sYW1iZGEnLFxuICAgICAgICAnQHR5cGVzL2V4cHJlc3MnLFxuICAgICAgICAnQHR5cGVzL3BnJyxcbiAgICAgICAgJ3BnJyxcbiAgICAgICAgJ0Bhd3Mtc2RrL3Jkcy1zaWduZXInLFxuICAgICAgICAnQG1hdHRoZXdib25pZy9zZWNyZXQnLFxuICAgICAgICAnZGF0YWRvZy1jZGstY29uc3RydWN0cy12MicsXG4gICAgICAgICdAY2RrbGFicy9hd3MtbGFtYmRhLXJ1c3QnLFxuICAgICAgICAnQGF3cy1sYW1iZGEtcG93ZXJ0b29scy9wYXJhbWV0ZXJzJyxcbiAgICAgICAgJ2pzb253ZWJ0b2tlbicsXG4gICAgICAgICdAYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyJyxcbiAgICAgICAgJ2V4cHJlc3MnLFxuICAgICAgICAnc2VydmVybGVzcy1odHRwJyxcbiAgICAgICAgJ2Nkay1yZHMtc3FsJyxcbiAgICAgICAgLi4ub3B0aW9ucy5kZXBzIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIGRldkRlcHM6IFtcbiAgICAgICAgJ0B0eXBlcy9qc29ud2VidG9rZW4nLFxuICAgICAgICAnbm9kZW1vbicsXG4gICAgICAgICdjb25jdXJyZW50bHknLFxuICAgICAgICAnQG1hY2Vkb24tdGVjaG5vbG9naWVzL2JhdG1hbkBeMS4wLjAnLFxuICAgICAgICAuLi5vcHRpb25zLmRldkRlcHMgfHwgW10sXG4gICAgICBdLFxuICAgICAgZ2l0aWdub3JlOiBbXG4gICAgICAgICdzcmMvY29uc3RydWN0cy9oYW5kbGVyL2NsZXJrLWF1dGhvcml6ZXIvdGFyZ2V0LyoqJyxcbiAgICAgICAgJyoqLy5EU19TdG9yZScsXG4gICAgICAgIC4uLm9wdGlvbnMuZ2l0aWdub3JlIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIC4uLm9wdGlvbnMudHNjb25maWcsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIC4uLm9wdGlvbnMudHNjb25maWc/LmNvbXBpbGVyT3B0aW9ucyxcbiAgICAgICAgICBpc29sYXRlZE1vZHVsZXM6IHRydWUsXG4gICAgICAgICAgYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBtaW5Ob2RlVmVyc2lvbjogb3B0aW9ucy5taW5Ob2RlVmVyc2lvbiB8fCAnMjInLFxuICAgICAgZGVwc1VwZ3JhZGVPcHRpb25zOiB7XG4gICAgICAgIHdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBHaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgICAgICBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlYWRtZToge1xuICAgICAgICBjb250ZW50czogcmVhZG1lQ29udGVudHMob3B0aW9ucy5uYW1lKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cblxuICAgIC8vIENyZWF0ZSBzdGFuZGFyZCBwcm9qZWN0IGZpbGVzXG4gICAgY29uc3QgUFJJTUFSWV9BQ0NPVU5UID0gJzAxNTk1NTgxNzI2Myc7XG4gICAgY29uc3QgUFJJTUFSWV9SRUdJT04gPSAndXMtZWFzdC0xJztcblxuICAgIG5ldyBCb290Y2FtcEFwcGxpY2F0aW9uKHRoaXMsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IGBtYWNlZG9uLXRlY2hub2xvZ2llcy8ke29wdGlvbnMubmFtZX1gLFxuICAgICAgZGV2OiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGV2LFxuICAgICAgfSxcbiAgICAgIHN0YWdpbmc6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5zdGFnaW5nLFxuICAgICAgfSxcbiAgICAgIHByb2Q6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXYsXG4gICAgICB9LFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IG9wdGlvbnMuYWRkaXRpb25hbFRhZ3MsXG4gICAgfSk7XG5cbiAgICBuZXcgR2l0SHViUm9sZXNGaWxlKHRoaXMsIHtcbiAgICAgIGFjY291bnQ6IFBSSU1BUllfQUNDT1VOVCxcbiAgICAgIHByaW1hcnlSZWdpb246IFBSSU1BUllfUkVHSU9OLFxuICAgIH0pO1xuXG4gICAgbmV3IENvZGVPd25lcnNGaWxlKHRoaXMsIHtcbiAgICAgIGFkZGl0aW9uYWxPd25lcnM6IG9wdGlvbnMuYWRkaXRpb25hbENvZGVPd25lcnMsXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YURvZ0FzcGVjdEZpbGUodGhpcyk7XG5cbiAgICBjb25zdCB2aXRlUmVhY3QgPSBuZXcgVml0ZVJlYWN0UHJvamVjdCh7XG4gICAgICBuYW1lOiAnd2ViJyxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICBvdXRkaXI6ICd3ZWInLFxuICAgIH0pO1xuICAgIHZpdGVSZWFjdC5hZGRDb25maWdGaWVsZCgnc29tZXRoaW5nJywgJ251bWJlcicpO1xuICAgIHZpdGVSZWFjdC5hZGRDb25maWdGaWVsZCgnc29tZXRoaW5nRWxzZScsICdzdHJpbmcnKTtcblxuICAgIGNvbnN0IGNvbmN1cnJlbnRseSA9ICguLi5hcmdzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgcmV0dXJuIGBjb25jdXJyZW50bHkgJHthcmdzLm1hcChhID0+IGBcIiR7YX1cImApLmpvaW4oJyAnKX1gO1xuICAgIH07XG5cbiAgICB0aGlzLmFkZFRhc2soJ2RldicsIHtcbiAgICAgIGV4ZWM6IGNvbmN1cnJlbnRseShcbiAgICAgICAgJ25vZGVtb24gLS13YXRjaCAuL3NyYy9jb25zdHJ1Y3RzL2hhbmRsZXIgLS13YXRjaCAuL2xvY2FsL2Rldi50cyAuL2xvY2FsL2Rldi50cycsXG4gICAgICAgIHZpdGVSZWFjdC5kZXZDb21tYW5kLFxuICAgICAgKSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkVGFzaygnY2RrOmRldicsIHtcbiAgICAgIGV4ZWM6ICd5YXJuIGNkayAtYSBcIm5weCB0cy1ub2RlIC1QIHRzY29uZmlnLmpzb24gLS1wcmVmZXItdHMtZXh0cyBzcmMvTG9jYWxEZXZBcHAudHNcIicsXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuXG4gIH1cbn1cbiJdfQ==
|
package/lib/CodeOwnersFile.js
CHANGED
|
@@ -16,5 +16,5 @@ class CodeOwnersFile extends projen_1.TextFile {
|
|
|
16
16
|
}
|
|
17
17
|
exports.CodeOwnersFile = CodeOwnersFile;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
CodeOwnersFile[_a] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.
|
|
19
|
+
CodeOwnersFile[_a] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.10.0" };
|
|
20
20
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZU93bmVyc0ZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQ29kZU93bmVyc0ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBa0M7QUFPbEMsTUFBYSxjQUFlLFNBQVEsaUJBQVE7SUFDMUMsWUFBWSxPQUE0QixFQUFFLFVBQWlDLEVBQUU7UUFDM0UsTUFBTSxhQUFhLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzNELE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxhQUFhLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7WUFDbkMsS0FBSyxFQUFFLFNBQVM7WUFDaEIsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDOztBQVRILHdDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2RlT3duZXJzRmlsZU9wdGlvbnMge1xuICByZWFkb25seSBhZGRpdGlvbmFsT3duZXJzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBDb2RlT3duZXJzRmlsZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCwgb3B0aW9uczogQ29kZU93bmVyc0ZpbGVPcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBkZWZhdWx0T3duZXJzID0gWycqIEBtYWNlZG9uLXRlY2hub2xvZ2llcy9wbGF0Zm9ybSddO1xuICAgIGNvbnN0IGFsbE93bmVycyA9IFsuLi5kZWZhdWx0T3duZXJzLCAuLi4ob3B0aW9ucy5hZGRpdGlvbmFsT3duZXJzIHx8IFtdKV07XG5cbiAgICBzdXBlcihwcm9qZWN0LCAnLmdpdGh1Yi9DT0RFT1dORVJTJywge1xuICAgICAgbGluZXM6IGFsbE93bmVycyxcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -3,6 +3,7 @@ import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
|
|
|
3
3
|
export interface PrCleanupWorkflowOptions {
|
|
4
4
|
readonly roleArn: string;
|
|
5
5
|
readonly awsRegion: string;
|
|
6
|
+
readonly projectName: string;
|
|
6
7
|
}
|
|
7
8
|
export declare class PrCleanupWorkflow extends YamlFile {
|
|
8
9
|
constructor(project: AwsCdkTypeScriptApp, options: PrCleanupWorkflowOptions);
|
package/lib/PrCleanupWorkflow.js
CHANGED
|
@@ -46,7 +46,7 @@ class PrCleanupWorkflow extends projen_1.YamlFile {
|
|
|
46
46
|
'CLEAN_BRANCH_NAME=${BRANCH_NAME#*/}',
|
|
47
47
|
'echo "Original branch: $BRANCH_NAME"',
|
|
48
48
|
'echo "Clean branch: $CLEAN_BRANCH_NAME"',
|
|
49
|
-
|
|
49
|
+
`STACK_NAME="${options.projectName}-dev-$CLEAN_BRANCH_NAME"`,
|
|
50
50
|
'echo "Deleting stack: $STACK_NAME"',
|
|
51
51
|
'',
|
|
52
52
|
'# Initiate stack deletion',
|
|
@@ -97,4 +97,4 @@ class PrCleanupWorkflow extends projen_1.YamlFile {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
exports.PrCleanupWorkflow = PrCleanupWorkflow;
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJDbGVhbnVwV29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUHJDbGVhbnVwV29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBU2xDLE1BQWEsaUJBQWtCLFNBQVEsaUJBQVE7SUFDN0MsWUFBWSxPQUE0QixFQUFFLE9BQWlDO1FBQ3pFLEtBQUssQ0FBQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUU7WUFDakQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsRUFBRSxFQUFFO29CQUNGLFlBQVksRUFBRTt3QkFDWixLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7cUJBQ2xCO2lCQUNGO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxVQUFVLEVBQUUsT0FBTztvQkFDbkIsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLGVBQWUsRUFBRSxPQUFPO2lCQUN6QjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFO3dCQUNQLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixPQUFPLEVBQUU7NEJBQ1A7Z0NBQ0UsSUFBSSxFQUFFLFVBQVU7Z0NBQ2hCLElBQUksRUFBRSxxQkFBcUI7NkJBQzVCOzRCQUNEO2dDQUNFLElBQUksRUFBRSwyQkFBMkI7Z0NBQ2pDLElBQUksRUFBRSwwQ0FBMEM7Z0NBQ2hELElBQUksRUFBRTtvQ0FDSixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsT0FBTztvQ0FDakMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxTQUFTO2lDQUNoQzs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsNkJBQTZCO2dDQUNuQyxFQUFFLEVBQUUsY0FBYztnQ0FDbEIsR0FBRyxFQUFFO29DQUNILFdBQVcsRUFBRSx3QkFBd0I7aUNBQ3RDO2dDQUNELEdBQUcsRUFBRTtvQ0FDSCxnRUFBZ0U7b0NBQ2hFLHFDQUFxQztvQ0FDckMsc0NBQXNDO29DQUN0Qyx5Q0FBeUM7b0NBQ3pDLGVBQWUsT0FBTyxDQUFDLFdBQVcsMEJBQTBCO29DQUM1RCxvQ0FBb0M7b0NBQ3BDLEVBQUU7b0NBQ0YsMkJBQTJCO29DQUMzQiwwREFBMEQ7b0NBQzFELEVBQUU7b0NBQ0YsdUNBQXVDO29DQUN2QyxrREFBa0Q7b0NBQ2xELHdFQUF3RTtvQ0FDeEUsRUFBRTtvQ0FDRiw4Q0FBOEM7aUNBQy9DLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs2QkFDYjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsc0JBQXNCO2dDQUM1QixJQUFJLEVBQUUsMEJBQTBCO2dDQUNoQyxFQUFFLEVBQUUsV0FBVztnQ0FDZixJQUFJLEVBQUU7b0NBQ0osTUFBTSxFQUFFO3dDQUNOLG9DQUFvQzt3Q0FDcEMsdUNBQXVDO3dDQUN2Qyw4QkFBOEI7d0NBQzlCLDRCQUE0Qjt3Q0FDNUIsMEZBQTBGO3dDQUMxRixJQUFJO3FDQUNMLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQ0FDYjs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsc0JBQXNCO2dDQUM1QixJQUFJLEVBQUUsMEJBQTBCO2dDQUNoQyxFQUFFLEVBQUUsV0FBVztnQ0FDZixJQUFJLEVBQUU7b0NBQ0osTUFBTSxFQUFFO3dDQUNOLG9DQUFvQzt3Q0FDcEMsdUNBQXVDO3dDQUN2Qyw4QkFBOEI7d0NBQzlCLDRCQUE0Qjt3Q0FDNUIsdU5BQXVOO3dDQUN2TixJQUFJO3FDQUNMLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQ0FDYjs2QkFDRjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBN0ZELDhDQTZGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFlhbWxGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJDbGVhbnVwV29ya2Zsb3dPcHRpb25zIHtcbiAgcmVhZG9ubHkgcm9sZUFybjogc3RyaW5nO1xuICByZWFkb25seSBhd3NSZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvamVjdE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFByQ2xlYW51cFdvcmtmbG93IGV4dGVuZHMgWWFtbEZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBQckNsZWFudXBXb3JrZmxvd09wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCAnLmdpdGh1Yi93b3JrZmxvd3MvcHItY2xlYW51cC55bWwnLCB7XG4gICAgICBtYXJrZXI6IHRydWUsXG4gICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBuYW1lOiAnUFIgQ2xlYW51cCcsXG4gICAgICAgIG9uOiB7XG4gICAgICAgICAgcHVsbF9yZXF1ZXN0OiB7XG4gICAgICAgICAgICB0eXBlczogWydjbG9zZWQnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgICdpZC10b2tlbic6ICd3cml0ZScsXG4gICAgICAgICAgJ2NvbnRlbnRzJzogJ3JlYWQnLFxuICAgICAgICAgICdwdWxsLXJlcXVlc3RzJzogJ3dyaXRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgam9iczoge1xuICAgICAgICAgIGNsZWFudXA6IHtcbiAgICAgICAgICAgICdydW5zLW9uJzogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgICAgICAgJ3N0ZXBzJzogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQ29uZmlndXJlIEFXUyBjcmVkZW50aWFscycsXG4gICAgICAgICAgICAgICAgdXNlczogJ2F3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAdjQnLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IG9wdGlvbnMucm9sZUFybixcbiAgICAgICAgICAgICAgICAgICdhd3MtcmVnaW9uJzogb3B0aW9ucy5hd3NSZWdpb24sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEZWxldGUgQ2xvdWRGb3JtYXRpb24gc3RhY2snLFxuICAgICAgICAgICAgICAgIGlkOiAnZGVsZXRlLXN0YWNrJyxcbiAgICAgICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgICAgIEJSQU5DSF9OQU1FOiAnJHt7IGdpdGh1Yi5oZWFkX3JlZiB9fScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICcjIFN0cmlwIGNvbnZlbnRpb25hbCBjb21taXQgcHJlZml4IChmZWF0LywgZml4LywgY2hvcmUvLCBldGMuKScsXG4gICAgICAgICAgICAgICAgICAnQ0xFQU5fQlJBTkNIX05BTUU9JHtCUkFOQ0hfTkFNRSMqL30nLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJPcmlnaW5hbCBicmFuY2g6ICRCUkFOQ0hfTkFNRVwiJyxcbiAgICAgICAgICAgICAgICAgICdlY2hvIFwiQ2xlYW4gYnJhbmNoOiAkQ0xFQU5fQlJBTkNIX05BTUVcIicsXG4gICAgICAgICAgICAgICAgICBgU1RBQ0tfTkFNRT1cIiR7b3B0aW9ucy5wcm9qZWN0TmFtZX0tZGV2LSRDTEVBTl9CUkFOQ0hfTkFNRVwiYCxcbiAgICAgICAgICAgICAgICAgICdlY2hvIFwiRGVsZXRpbmcgc3RhY2s6ICRTVEFDS19OQU1FXCInLFxuICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAnIyBJbml0aWF0ZSBzdGFjayBkZWxldGlvbicsXG4gICAgICAgICAgICAgICAgICAnYXdzIGNsb3VkZm9ybWF0aW9uIGRlbGV0ZS1zdGFjayAtLXN0YWNrLW5hbWUgJFNUQUNLX05BTUUnLFxuICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAnIyBXYWl0IGZvciBzdGFjayBkZWxldGlvbiB0byBjb21wbGV0ZScsXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIldhaXRpbmcgZm9yIHN0YWNrIGRlbGV0aW9uIHRvIGNvbXBsZXRlLi4uXCInLFxuICAgICAgICAgICAgICAgICAgJ2F3cyBjbG91ZGZvcm1hdGlvbiB3YWl0IHN0YWNrLWRlbGV0ZS1jb21wbGV0ZSAtLXN0YWNrLW5hbWUgJFNUQUNLX05BTUUnLFxuICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIlN0YWNrIGRlbGV0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcIicsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDb21tZW50IFBSIC0gU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgdXNlczogJ2FjdGlvbnMvZ2l0aHViLXNjcmlwdEB2NycsXG4gICAgICAgICAgICAgICAgaWY6ICdzdWNjZXNzKCknLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgIHNjcmlwdDogW1xuICAgICAgICAgICAgICAgICAgICAnZ2l0aHViLnJlc3QuaXNzdWVzLmNyZWF0ZUNvbW1lbnQoeycsXG4gICAgICAgICAgICAgICAgICAgICcgIGlzc3VlX251bWJlcjogY29udGV4dC5pc3N1ZS5udW1iZXIsJyxcbiAgICAgICAgICAgICAgICAgICAgJyAgb3duZXI6IGNvbnRleHQucmVwby5vd25lciwnLFxuICAgICAgICAgICAgICAgICAgICAnICByZXBvOiBjb250ZXh0LnJlcG8ucmVwbywnLFxuICAgICAgICAgICAgICAgICAgICAnICBib2R5OiBcXCfwn6e5IFN1Y2Nlc3NmdWxseSBjbGVhbmVkIHVwIEFXUyByZXNvdXJjZXMgZm9yIGJyYW5jaCBgJHt7IGdpdGh1Yi5oZWFkX3JlZiB9fWBcXCcnLFxuICAgICAgICAgICAgICAgICAgICAnfSknLFxuICAgICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NvbW1lbnQgUFIgLSBGYWlsdXJlJyxcbiAgICAgICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9naXRodWItc2NyaXB0QHY3JyxcbiAgICAgICAgICAgICAgICBpZjogJ2ZhaWx1cmUoKScsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgc2NyaXB0OiBbXG4gICAgICAgICAgICAgICAgICAgICdnaXRodWIucmVzdC5pc3N1ZXMuY3JlYXRlQ29tbWVudCh7JyxcbiAgICAgICAgICAgICAgICAgICAgJyAgaXNzdWVfbnVtYmVyOiBjb250ZXh0Lmlzc3VlLm51bWJlciwnLFxuICAgICAgICAgICAgICAgICAgICAnICBvd25lcjogY29udGV4dC5yZXBvLm93bmVyLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIHJlcG86IGNvbnRleHQucmVwby5yZXBvLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIGJvZHk6IFxcJ+KdjCBGYWlsZWQgdG8gY2xlYW4gdXAgQVdTIHJlc291cmNlcyBmb3IgYnJhbmNoIGAke3sgZ2l0aHViLmhlYWRfcmVmIH19YC4gUGxlYXNlIGNoZWNrIHRoZSBbd29ya2Zsb3cgcnVuXSgke3sgZ2l0aHViLnNlcnZlcl91cmwgfX0vJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19L2FjdGlvbnMvcnVucy8ke3sgZ2l0aHViLnJ1bl9pZCB9fSkgZm9yIGRldGFpbHMuXFwnJyxcbiAgICAgICAgICAgICAgICAgICAgJ30pJyxcbiAgICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -94,5 +94,5 @@ class ProductionDeployWorkflow extends projen_1.YamlFile {
|
|
|
94
94
|
}
|
|
95
95
|
exports.ProductionDeployWorkflow = ProductionDeployWorkflow;
|
|
96
96
|
_a = JSII_RTTI_SYMBOL_1;
|
|
97
|
-
ProductionDeployWorkflow[_a] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.
|
|
97
|
+
ProductionDeployWorkflow[_a] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.10.0" };
|
|
98
98
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Byb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFrQztBQVVsQyxNQUFhLHdCQUF5QixTQUFRLGlCQUFRO0lBQ3BELFlBQVksT0FBNEIsRUFBRSxPQUF3QztRQUNoRixLQUFLLENBQUMsT0FBTyxFQUFFLHlDQUF5QyxFQUFFO1lBQ3hELE1BQU0sRUFBRSxJQUFJO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsRUFBRSxFQUFFO29CQUNGLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUM7cUJBQ1o7aUJBQ0Y7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLFVBQVUsRUFBRSxPQUFPO29CQUNuQixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRTt3QkFDTixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsT0FBTyxFQUFFOzRCQUNQO2dDQUNFLElBQUksRUFBRSxVQUFVO2dDQUNoQixJQUFJLEVBQUUscUJBQXFCOzZCQUM1Qjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsZUFBZTtnQ0FDckIsSUFBSSxFQUFFLHVCQUF1QjtnQ0FDN0IsSUFBSSxFQUFFO29DQUNKLGNBQWMsRUFBRSxJQUFJO2lDQUNyQjs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsMkJBQTJCO2dDQUNqQyxJQUFJLEVBQUUsMENBQTBDO2dDQUNoRCxJQUFJLEVBQUU7b0NBQ0osZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU87b0NBQ2pDLFlBQVksRUFBRSxPQUFPLENBQUMsU0FBUztpQ0FDaEM7NkJBQ0Y7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQ0FDNUIsR0FBRyxFQUFFLGdDQUFnQzs2QkFDdEM7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQ0FDMUIsR0FBRyxFQUFFLCtCQUErQixPQUFPLENBQUMsbUJBQW1CLDRFQUE0RTs2QkFDNUk7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQ0FDNUIsRUFBRSxFQUFFLFFBQVE7Z0NBQ1osR0FBRyxFQUFFLHNCQUFzQixPQUFPLENBQUMsV0FBVyxnRUFBZ0U7NkJBQy9HOzRCQUNEO2dDQUNFLElBQUksRUFBRSxpQkFBaUI7Z0NBQ3ZCLEVBQUUsRUFBRSxTQUFTO2dDQUNiLEdBQUcsRUFBRTtvQ0FDSCxzRUFBc0U7b0NBQ3RFLG1EQUFtRDtvQ0FDbkQsa0NBQWtDO2lDQUNuQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7NkJBQ2I7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLGNBQWM7Z0NBQ3BCLEVBQUUsRUFBRSxVQUFVO2dDQUNkLEdBQUcsRUFBRTtvQ0FDSCw0QkFBNEI7b0NBQzVCLGNBQWM7b0NBQ2QscUNBQXFDO29DQUNyQyxrQkFBa0I7b0NBQ2xCLElBQUk7b0NBQ0osd0RBQXdEO29DQUN4RCxpSUFBaUk7b0NBQ2pJLGdDQUFnQztvQ0FDaEMsNkRBQTZEO29DQUM3RCxJQUFJO29DQUNKLHdEQUF3RDtvQ0FDeEQsZ0VBQWdFO29DQUNoRSw0Q0FBNEM7b0NBQzVDLDJJQUEySTtpQ0FDNUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNiO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQXRGSCw0REF1RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3Rpb25EZXBsb3lXb3JrZmxvd09wdGlvbnMge1xuICByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGF3c1JlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBwcm9qZWN0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbGVya1B1Ymxpc2hhYmxlS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9kdWN0aW9uRGVwbG95V29ya2Zsb3cgZXh0ZW5kcyBZYW1sRmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IFByb2R1Y3Rpb25EZXBsb3lXb3JrZmxvd09wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCAnLmdpdGh1Yi93b3JrZmxvd3MvcHJvZHVjdGlvbi1kZXBsb3kueW1sJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgbmFtZTogJ1Byb2R1Y3Rpb24gRGVwbG95JyxcbiAgICAgICAgb246IHtcbiAgICAgICAgICBwdXNoOiB7XG4gICAgICAgICAgICB0YWdzOiBbJyonXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgICdpZC10b2tlbic6ICd3cml0ZScsXG4gICAgICAgICAgJ2NvbnRlbnRzJzogJ3JlYWQnLFxuICAgICAgICB9LFxuICAgICAgICBqb2JzOiB7XG4gICAgICAgICAgZGVwbG95OiB7XG4gICAgICAgICAgICAncnVucy1vbic6ICd1YnVudHUtbGF0ZXN0JyxcbiAgICAgICAgICAgICdzdGVwcyc6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICAgICAgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjUnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL3NldHVwLW5vZGVAdjUnLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdub2RlLXZlcnNpb24nOiAnMjQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQ29uZmlndXJlIEFXUyBjcmVkZW50aWFscycsXG4gICAgICAgICAgICAgICAgdXNlczogJ2F3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAdjQnLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IG9wdGlvbnMucm9sZUFybixcbiAgICAgICAgICAgICAgICAgICdhd3MtcmVnaW9uJzogb3B0aW9ucy5hd3NSZWdpb24sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgICAgICAgICAgcnVuOiAneWFybiBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdVcGRhdGUgY29uZmlnLmpzb24nLFxuICAgICAgICAgICAgICAgIHJ1bjogYGpxICcuY2xlcmtQdWJsaXNoYWJsZUtleSA9IFwiJHtvcHRpb25zLmNsZXJrUHVibGlzaGFibGVLZXl9XCInIHdlYi9wdWJsaWMvY29uZmlnLmpzb24gPiB0bXAuanNvbiAmJiBtdiB0bXAuanNvbiB3ZWIvcHVibGljL2NvbmZpZy5qc29uYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEZXBsb3kgdG8gcHJvZHVjdGlvbicsXG4gICAgICAgICAgICAgICAgaWQ6ICdkZXBsb3knLFxuICAgICAgICAgICAgICAgIHJ1bjogYHlhcm4gY2RrIGRlcGxveSAtZSAke29wdGlvbnMucHJvamVjdE5hbWV9LXByb2QgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLmpzb25gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0V4dHJhY3Qgb3V0cHV0cycsXG4gICAgICAgICAgICAgICAgaWQ6ICdvdXRwdXRzJyxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICdXRUJTSVRFX1VSTD0kKGpxIC1yIFxcJy5bXSB8IC5XZWJzaXRlVXJsIC8vIGVtcHR5XFwnIGNkay1vdXRwdXRzLmpzb24pJyxcbiAgICAgICAgICAgICAgICAgICdlY2hvIFwid2Vic2l0ZV91cmw9JFdFQlNJVEVfVVJMXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJXZWJzaXRlIFVSTDogJFdFQlNJVEVfVVJMXCInLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnTm90aWZ5IFNsYWNrJyxcbiAgICAgICAgICAgICAgICBpZjogJ2Fsd2F5cygpJyxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICdTVEFUVVM9XCIke3sgam9iLnN0YXR1cyB9fVwiJyxcbiAgICAgICAgICAgICAgICAgICdDT0xPUj1cImdvb2RcIicsXG4gICAgICAgICAgICAgICAgICAnaWYgWyBcIiRTVEFUVVNcIiAhPSBcInN1Y2Nlc3NcIiBdOyB0aGVuJyxcbiAgICAgICAgICAgICAgICAgICcgIENPTE9SPVwiZGFuZ2VyXCInLFxuICAgICAgICAgICAgICAgICAgJ2ZpJyxcbiAgICAgICAgICAgICAgICAgICdXRUJTSVRFX1VSTD1cIiR7eyBzdGVwcy5vdXRwdXRzLm91dHB1dHMud2Vic2l0ZV91cmwgfX1cIicsXG4gICAgICAgICAgICAgICAgICAnTUVTU0FHRT1cIlByb2R1Y3Rpb24gRGVwbG95OiAkU1RBVFVTXFxcXG5SZXBvOiAke3sgZ2l0aHViLnJlcG9zaXRvcnkgfX1cXFxcblRhZzogJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fVxcXFxuQ29tbWl0OiAke3sgZ2l0aHViLnNoYSB9fVwiJyxcbiAgICAgICAgICAgICAgICAgICdpZiBbIC1uIFwiJFdFQlNJVEVfVVJMXCIgXTsgdGhlbicsXG4gICAgICAgICAgICAgICAgICAnICBNRVNTQUdFPVwiJE1FU1NBR0VcXFxcbvCfjJAgV2Vic2l0ZTogPCRXRUJTSVRFX1VSTHxWaWV3IFNpdGU+XCInLFxuICAgICAgICAgICAgICAgICAgJ2ZpJyxcbiAgICAgICAgICAgICAgICAgICdjdXJsIC1YIFBPU1QgaHR0cHM6Ly9zbGFjay5jb20vYXBpL2NoYXQucG9zdE1lc3NhZ2UgXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtSCBcIkF1dGhvcml6YXRpb246IEJlYXJlciAke3sgc2VjcmV0cy5TTEFDS19CT1RfVE9LRU4gfX1cIiBcXFxcJyxcbiAgICAgICAgICAgICAgICAgICcgIC1IIFxcJ0NvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvblxcJyBcXFxcJyxcbiAgICAgICAgICAgICAgICAgICcgIC0tZGF0YSBcIntcXFxcXCJjaGFubmVsXFxcXFwiOlxcXFxcIiR7eyBzZWNyZXRzLlNMQUNLX0NIQU5ORUxfSUQgfX1cXFxcXCIsXFxcXFwiYXR0YWNobWVudHNcXFxcXCI6W3tcXFxcXCJjb2xvclxcXFxcIjpcXFxcXCIkQ09MT1JcXFxcXCIsXFxcXFwidGV4dFxcXFxcIjpcXFxcXCIkTUVTU0FHRVxcXFxcIn1dfVwiJyxcbiAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -94,5 +94,5 @@ class StagingDeployWorkflow extends projen_1.YamlFile {
|
|
|
94
94
|
}
|
|
95
95
|
exports.StagingDeployWorkflow = StagingDeployWorkflow;
|
|
96
96
|
_a = JSII_RTTI_SYMBOL_1;
|
|
97
|
-
StagingDeployWorkflow[_a] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.
|
|
97
|
+
StagingDeployWorkflow[_a] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.10.0" };
|
|
98
98
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhZ2luZ0RlcGxveVdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N0YWdpbmdEZXBsb3lXb3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFrQztBQVVsQyxNQUFhLHFCQUFzQixTQUFRLGlCQUFRO0lBQ2pELFlBQVksT0FBNEIsRUFBRSxPQUFxQztRQUM3RSxLQUFLLENBQUMsT0FBTyxFQUFFLHNDQUFzQyxFQUFFO1lBQ3JELE1BQU0sRUFBRSxJQUFJO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsRUFBRSxFQUFFO29CQUNGLElBQUksRUFBRTt3QkFDSixRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7cUJBQ25CO2lCQUNGO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxVQUFVLEVBQUUsT0FBTztvQkFDbkIsVUFBVSxFQUFFLE1BQU07aUJBQ25CO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUU7d0JBQ04sU0FBUyxFQUFFLGVBQWU7d0JBQzFCLE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsSUFBSSxFQUFFLHFCQUFxQjs2QkFDNUI7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLGVBQWU7Z0NBQ3JCLElBQUksRUFBRSx1QkFBdUI7Z0NBQzdCLElBQUksRUFBRTtvQ0FDSixjQUFjLEVBQUUsSUFBSTtpQ0FDckI7NkJBQ0Y7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQ0FDakMsSUFBSSxFQUFFLDBDQUEwQztnQ0FDaEQsSUFBSSxFQUFFO29DQUNKLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxPQUFPO29DQUNqQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFNBQVM7aUNBQ2hDOzZCQUNGOzRCQUNEO2dDQUNFLElBQUksRUFBRSxzQkFBc0I7Z0NBQzVCLEdBQUcsRUFBRSxnQ0FBZ0M7NkJBQ3RDOzRCQUNEO2dDQUNFLElBQUksRUFBRSxvQkFBb0I7Z0NBQzFCLEdBQUcsRUFBRSwrQkFBK0IsT0FBTyxDQUFDLG1CQUFtQiw0RUFBNEU7NkJBQzVJOzRCQUNEO2dDQUNFLElBQUksRUFBRSxtQkFBbUI7Z0NBQ3pCLEVBQUUsRUFBRSxRQUFRO2dDQUNaLEdBQUcsRUFBRSxzQkFBc0IsT0FBTyxDQUFDLFdBQVcsbUVBQW1FOzZCQUNsSDs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsaUJBQWlCO2dDQUN2QixFQUFFLEVBQUUsU0FBUztnQ0FDYixHQUFHLEVBQUU7b0NBQ0gsc0VBQXNFO29DQUN0RSxtREFBbUQ7b0NBQ25ELGtDQUFrQztpQ0FDbkMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNiOzRCQUNEO2dDQUNFLElBQUksRUFBRSxjQUFjO2dDQUNwQixFQUFFLEVBQUUsVUFBVTtnQ0FDZCxHQUFHLEVBQUU7b0NBQ0gsNEJBQTRCO29DQUM1QixjQUFjO29DQUNkLHFDQUFxQztvQ0FDckMsa0JBQWtCO29DQUNsQixJQUFJO29DQUNKLHdEQUF3RDtvQ0FDeEQsaUlBQWlJO29DQUNqSSxnQ0FBZ0M7b0NBQ2hDLDZEQUE2RDtvQ0FDN0QsSUFBSTtvQ0FDSix3REFBd0Q7b0NBQ3hELGdFQUFnRTtvQ0FDaEUsNENBQTRDO29DQUM1QywySUFBMkk7aUNBQzVJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs2QkFDYjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0Rkgsc0RBdUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWWFtbEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFnaW5nRGVwbG95V29ya2Zsb3dPcHRpb25zIHtcbiAgcmVhZG9ubHkgcm9sZUFybjogc3RyaW5nO1xuICByZWFkb25seSBhd3NSZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvamVjdE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgY2xlcmtQdWJsaXNoYWJsZUtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhZ2luZ0RlcGxveVdvcmtmbG93IGV4dGVuZHMgWWFtbEZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBTdGFnaW5nRGVwbG95V29ya2Zsb3dPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCwgJy5naXRodWIvd29ya2Zsb3dzL3N0YWdpbmctZGVwbG95LnltbCcsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6ICdTdGFnaW5nIERlcGxveScsXG4gICAgICAgIG9uOiB7XG4gICAgICAgICAgcHVzaDoge1xuICAgICAgICAgICAgYnJhbmNoZXM6IFsnbWFpbiddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgJ2lkLXRva2VuJzogJ3dyaXRlJyxcbiAgICAgICAgICAnY29udGVudHMnOiAncmVhZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGpvYnM6IHtcbiAgICAgICAgICBkZXBsb3k6IHtcbiAgICAgICAgICAgICdydW5zLW9uJzogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgICAgICAgJ3N0ZXBzJzogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2V0dXAgTm9kZS5qcycsXG4gICAgICAgICAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2NScsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ25vZGUtdmVyc2lvbic6ICcyNCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDb25maWd1cmUgQVdTIGNyZWRlbnRpYWxzJyxcbiAgICAgICAgICAgICAgICB1c2VzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0B2NCcsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ3JvbGUtdG8tYXNzdW1lJzogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICAgICAgICAgICAgJ2F3cy1yZWdpb24nOiBvcHRpb25zLmF3c1JlZ2lvbixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgICAgICBydW46ICd5YXJuIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1VwZGF0ZSBjb25maWcuanNvbicsXG4gICAgICAgICAgICAgICAgcnVuOiBganEgJy5jbGVya1B1Ymxpc2hhYmxlS2V5ID0gXCIke29wdGlvbnMuY2xlcmtQdWJsaXNoYWJsZUtleX1cIicgd2ViL3B1YmxpYy9jb25maWcuanNvbiA+IHRtcC5qc29uICYmIG12IHRtcC5qc29uIHdlYi9wdWJsaWMvY29uZmlnLmpzb25gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RlcGxveSB0byBzdGFnaW5nJyxcbiAgICAgICAgICAgICAgICBpZDogJ2RlcGxveScsXG4gICAgICAgICAgICAgICAgcnVuOiBgeWFybiBjZGsgZGVwbG95IC1lICR7b3B0aW9ucy5wcm9qZWN0TmFtZX0tc3RhZ2luZyAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgLS1vdXRwdXRzLWZpbGUgY2RrLW91dHB1dHMuanNvbmAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRXh0cmFjdCBvdXRwdXRzJyxcbiAgICAgICAgICAgICAgICBpZDogJ291dHB1dHMnLFxuICAgICAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAgICAgJ1dFQlNJVEVfVVJMPSQoanEgLXIgXFwnLltdIHwgLldlYnNpdGVVcmwgLy8gZW1wdHlcXCcgY2RrLW91dHB1dHMuanNvbiknLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJ3ZWJzaXRlX3VybD0kV0VCU0lURV9VUkxcIiA+PiAkR0lUSFVCX09VVFBVVCcsXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIldlYnNpdGUgVVJMOiAkV0VCU0lURV9VUkxcIicsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdOb3RpZnkgU2xhY2snLFxuICAgICAgICAgICAgICAgIGlmOiAnYWx3YXlzKCknLFxuICAgICAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAgICAgJ1NUQVRVUz1cIiR7eyBqb2Iuc3RhdHVzIH19XCInLFxuICAgICAgICAgICAgICAgICAgJ0NPTE9SPVwiZ29vZFwiJyxcbiAgICAgICAgICAgICAgICAgICdpZiBbIFwiJFNUQVRVU1wiICE9IFwic3VjY2Vzc1wiIF07IHRoZW4nLFxuICAgICAgICAgICAgICAgICAgJyAgQ09MT1I9XCJkYW5nZXJcIicsXG4gICAgICAgICAgICAgICAgICAnZmknLFxuICAgICAgICAgICAgICAgICAgJ1dFQlNJVEVfVVJMPVwiJHt7IHN0ZXBzLm91dHB1dHMub3V0cHV0cy53ZWJzaXRlX3VybCB9fVwiJyxcbiAgICAgICAgICAgICAgICAgICdNRVNTQUdFPVwiU3RhZ2luZyBEZXBsb3k6ICRTVEFUVVNcXFxcblJlcG86ICR7eyBnaXRodWIucmVwb3NpdG9yeSB9fVxcXFxuQnJhbmNoOiAke3sgZ2l0aHViLnJlZl9uYW1lIH19XFxcXG5Db21taXQ6ICR7eyBnaXRodWIuc2hhIH19XCInLFxuICAgICAgICAgICAgICAgICAgJ2lmIFsgLW4gXCIkV0VCU0lURV9VUkxcIiBdOyB0aGVuJyxcbiAgICAgICAgICAgICAgICAgICcgIE1FU1NBR0U9XCIkTUVTU0FHRVxcXFxu8J+MkCBXZWJzaXRlOiA8JFdFQlNJVEVfVVJMfFZpZXcgU2l0ZT5cIicsXG4gICAgICAgICAgICAgICAgICAnZmknLFxuICAgICAgICAgICAgICAgICAgJ2N1cmwgLVggUE9TVCBodHRwczovL3NsYWNrLmNvbS9hcGkvY2hhdC5wb3N0TWVzc2FnZSBcXFxcJyxcbiAgICAgICAgICAgICAgICAgICcgIC1IIFwiQXV0aG9yaXphdGlvbjogQmVhcmVyICR7eyBzZWNyZXRzLlNMQUNLX0JPVF9UT0tFTiB9fVwiIFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLUggXFwnQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uXFwnIFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLS1kYXRhIFwie1xcXFxcImNoYW5uZWxcXFxcXCI6XFxcXFwiJHt7IHNlY3JldHMuU0xBQ0tfQ0hBTk5FTF9JRCB9fVxcXFxcIixcXFxcXCJhdHRhY2htZW50c1xcXFxcIjpbe1xcXFxcImNvbG9yXFxcXFwiOlxcXFxcIiRDT0xPUlxcXFxcIixcXFxcXCJ0ZXh0XFxcXFwiOlxcXFxcIiRNRVNTQUdFXFxcXFwifV19XCInLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/lib/utils.d.ts
CHANGED
package/lib/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.serializeTs = serializeTs;
|
|
4
|
+
exports.readmeContents = readmeContents;
|
|
4
5
|
function serializeTs(value, depth = 1) {
|
|
5
6
|
const pad = ' '.repeat(depth);
|
|
6
7
|
const innerPad = ' '.repeat(depth + 1);
|
|
@@ -20,4 +21,134 @@ function serializeTs(value, depth = 1) {
|
|
|
20
21
|
}
|
|
21
22
|
return JSON.stringify(value);
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
+
function readmeContents(projectName) {
|
|
25
|
+
return [
|
|
26
|
+
`# ${projectName}`,
|
|
27
|
+
'',
|
|
28
|
+
'This project was bootstrapped with [Batman](https://github.com/macedon-technologies/platform-common).',
|
|
29
|
+
'',
|
|
30
|
+
'## What Batman Created',
|
|
31
|
+
'',
|
|
32
|
+
'### CDK Infrastructure (`src/`)',
|
|
33
|
+
'',
|
|
34
|
+
'| File | Description |',
|
|
35
|
+
'|------|-------------|',
|
|
36
|
+
'| `src/main.ts` | CDK app entry point — instantiates dev, staging, and prod `ApplicationStack`s |',
|
|
37
|
+
'| `src/LocalDevApp.ts` | Local development CDK app — used by `yarn cdk:dev` - deploys to AWS for slower but more thorough testing |',
|
|
38
|
+
'| `src/GitHubRoles.ts` | CDK app for deploying the GitHub OIDC IAM role (one-time bootstrap) |',
|
|
39
|
+
'| `src/stacks/ApplicationStack.ts` | Your primary stack — extend it to add resources |',
|
|
40
|
+
'| `src/stacks/BaseApplicationStack.ts` | Base stack with VPC, API, static website, Datadog, and Route 53 wired up |',
|
|
41
|
+
'| `src/stacks/GitHubRolesStack.ts` | IAM role stack for GitHub Actions OIDC authentication |',
|
|
42
|
+
'| `src/constructs/Api.ts` | API Gateway + Lambda construct with Clerk JWT authorizer |',
|
|
43
|
+
'| `src/constructs/StaticWebsite.ts` | CloudFront + S3 + ACM + Route 53 construct |',
|
|
44
|
+
'| `src/constructs/handler/Api.Function.ts` | Lambda handler entry point, basic wrapper around Express-compatible app code |',
|
|
45
|
+
'| `src/aspects/DataDogAspect.ts` | CDK aspect that wires all Lambda functions to Datadog |',
|
|
46
|
+
'',
|
|
47
|
+
'### Frontend (`web/`)',
|
|
48
|
+
'',
|
|
49
|
+
'| File | Description |',
|
|
50
|
+
'|------|-------------|',
|
|
51
|
+
'| `web/src/main.tsx` | React app entry point with Clerk and React Query providers |',
|
|
52
|
+
'| `web/src/App.tsx` | Root application component |',
|
|
53
|
+
'| `web/src/App.css` / `web/src/index.css` | Base stylesheets (Tailwind CSS v4) |',
|
|
54
|
+
'| `web/src/config.ts` | `useConfig()` hook — loads runtime config from `config.json` |',
|
|
55
|
+
'| `web/src/services/BaseService.ts` | `useBaseQuery()` — authenticated API fetch hook |',
|
|
56
|
+
'| `web/src/services/RootService.ts` | Example service using `useBaseQuery` |',
|
|
57
|
+
'| `web/public/config.json` | Runtime config (API base URL, Clerk publishable key) |',
|
|
58
|
+
'',
|
|
59
|
+
'### GitHub Actions Workflows (`.github/workflows/`)',
|
|
60
|
+
'',
|
|
61
|
+
'| File | Trigger |',
|
|
62
|
+
'|------|---------|',
|
|
63
|
+
'| `pr-deploy.yml` | On pull request open/update — deploys a per-PR dev stack |',
|
|
64
|
+
'| `pr-cleanup.yml` | On pull request close — tears down the per-PR dev stack |',
|
|
65
|
+
'| `staging-deploy.yml` | On push to `main` — deploys to staging |',
|
|
66
|
+
'| `production-deploy.yml` | Manually triggered — deploys to production |',
|
|
67
|
+
'',
|
|
68
|
+
'---',
|
|
69
|
+
'',
|
|
70
|
+
'## Files You Can Edit',
|
|
71
|
+
'',
|
|
72
|
+
'These files are generated once and never overwritten by Batman. Modify them freely.',
|
|
73
|
+
'',
|
|
74
|
+
'| File | What to do with it |',
|
|
75
|
+
'|------|--------------------|',
|
|
76
|
+
'| `.projenrc.ts | The main Projen configuration file. Additional dependencies for either the API or the Web frontend need to be added here |',
|
|
77
|
+
'| `src/stacks/ApplicationStack.ts` | **Start here.** Add CDK constructs to build your infrastructure |',
|
|
78
|
+
'| `src/constructs/handler/app.ts | The main monolithic API REST server file. Main file you should be modifying |',
|
|
79
|
+
'| `web/src/App.tsx` | Build your UI here |',
|
|
80
|
+
'| `web/src/App.css` / `web/src/index.css` | Style your application |',
|
|
81
|
+
'| `web/src/main.tsx` | Adjust top-level providers or routing |',
|
|
82
|
+
'| `web/src/services/RootService.ts` | Add or replace API service hooks |',
|
|
83
|
+
'| `web/public/config.json` | Update for local development (API URL, Clerk key) |',
|
|
84
|
+
'',
|
|
85
|
+
'## Files You Cannot Edit',
|
|
86
|
+
'',
|
|
87
|
+
'These files are **managed by Batman** and will be overwritten every time `npx projen` runs. Do not edit them directly — make changes in `.projenrc.ts` instead.',
|
|
88
|
+
'',
|
|
89
|
+
'> [!IMPORTANT]',
|
|
90
|
+
'> If you have ANY changes you want to make to these files, notify #team-batman on Slack. ',
|
|
91
|
+
'> We maintain these files as part of the core Batman experience, and your feedback is crucial to ensure they meet your needs.',
|
|
92
|
+
'',
|
|
93
|
+
'| File | Why it\'s managed |',
|
|
94
|
+
'|------|-----------------|',
|
|
95
|
+
'| `src/stacks/BaseApplicationStack.ts` | Core stack wiring — updated with Batman releases |',
|
|
96
|
+
'| `src/aspects/DataDogAspect.ts` | Datadog CDK aspect |',
|
|
97
|
+
'| `web/vite.config.ts` | Vite configuration |',
|
|
98
|
+
'| `web/eslint.config.js` | ESLint configuration |',
|
|
99
|
+
'| `web/postcss.config.js` | PostCSS / Tailwind configuration |',
|
|
100
|
+
'| `web/index.html` | HTML entry point |',
|
|
101
|
+
'| `web/tsconfig.json` / `web/tsconfig.app.json` / `web/tsconfig.node.json` | TypeScript configuration |',
|
|
102
|
+
'| `web/src/vite-env.d.ts` | Vite type declarations |',
|
|
103
|
+
'| `web/src/config.ts` | Runtime config hook — shape driven by `.projenrc.ts` |',
|
|
104
|
+
'| `web/src/services/BaseService.ts` | Base authenticated fetch hook |',
|
|
105
|
+
'| `.github/CODEOWNERS` | Code ownership policy |',
|
|
106
|
+
'| `.github/workflows/*.yml` | All CI/CD workflows |',
|
|
107
|
+
'',
|
|
108
|
+
'> **Tip:** Files with a `~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". ~~` header are managed files.',
|
|
109
|
+
'',
|
|
110
|
+
'---',
|
|
111
|
+
'',
|
|
112
|
+
'## Where to Start',
|
|
113
|
+
'',
|
|
114
|
+
'1. **`src/stacks/ApplicationStack.ts`** — Add your CDK constructs here. The base stack already provides `this.api`, `this.vpc`, `this.hostedZone`, and `this.datadog` as protected properties.',
|
|
115
|
+
'',
|
|
116
|
+
'2. **`web/`** — Build your frontend. Start with `web/src/App.tsx` and add services alongside `web/src/services/RootService.ts`.',
|
|
117
|
+
'',
|
|
118
|
+
'3. **`src/constructs/handler/app.ts`** — Implement your backend Lambda handler logic here.',
|
|
119
|
+
'',
|
|
120
|
+
'4. **`.projenrc.ts`** - Manages project dependencies and configuration. Run `npx projen` after making any changes to this file.',
|
|
121
|
+
'---',
|
|
122
|
+
'',
|
|
123
|
+
'## Development Workflow',
|
|
124
|
+
'',
|
|
125
|
+
'```bash',
|
|
126
|
+
'# Install dependencies',
|
|
127
|
+
'yarn install',
|
|
128
|
+
'',
|
|
129
|
+
'# Start local dev server (backend Lambda + Vite frontend in parallel)',
|
|
130
|
+
'yarn dev',
|
|
131
|
+
'',
|
|
132
|
+
'# Deploy a personal dev stack to AWS as an alternative to local development, provides more thorough end-to-end testing',
|
|
133
|
+
'yarn cdk:dev --context local-dev-prefix=your-handle deploy',
|
|
134
|
+
'',
|
|
135
|
+
'# Run tests',
|
|
136
|
+
'yarn test',
|
|
137
|
+
'',
|
|
138
|
+
'# Re-synthesize project files after editing .projenrc.ts',
|
|
139
|
+
'npx projen',
|
|
140
|
+
'```',
|
|
141
|
+
'',
|
|
142
|
+
'---',
|
|
143
|
+
'',
|
|
144
|
+
'## Upgrading Batman',
|
|
145
|
+
'',
|
|
146
|
+
'```bash',
|
|
147
|
+
'yarn add @macedon-technologies/batman@latest',
|
|
148
|
+
'npx projen',
|
|
149
|
+
'```',
|
|
150
|
+
'',
|
|
151
|
+
'This updates all managed files to the latest Batman standards. Your editable sample files are never touched.',
|
|
152
|
+
].join('\n');
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQ0FnQkM7QUFFRCx3Q0FpSUM7QUFuSkQsU0FBZ0IsV0FBVyxDQUFDLEtBQVUsRUFBRSxLQUFLLEdBQUcsQ0FBQztJQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxLQUFLLEdBQUcsQ0FBQztJQUNuRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEYsT0FBTyxNQUFNLEtBQUssTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2FBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNoRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDZixPQUFPLE1BQU0sT0FBTyxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ25DLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxXQUFtQjtJQUNoRCxPQUFPO1FBQ0wsS0FBSyxXQUFXLEVBQUU7UUFDbEIsRUFBRTtRQUNGLHVHQUF1RztRQUN2RyxFQUFFO1FBQ0Ysd0JBQXdCO1FBQ3hCLEVBQUU7UUFDRixpQ0FBaUM7UUFDakMsRUFBRTtRQUNGLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsbUdBQW1HO1FBQ25HLHFJQUFxSTtRQUNySSxnR0FBZ0c7UUFDaEcsd0ZBQXdGO1FBQ3hGLHFIQUFxSDtRQUNySCw4RkFBOEY7UUFDOUYsd0ZBQXdGO1FBQ3hGLG9GQUFvRjtRQUNwRiw2SEFBNkg7UUFDN0gsNEZBQTRGO1FBQzVGLEVBQUU7UUFDRix1QkFBdUI7UUFDdkIsRUFBRTtRQUNGLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIscUZBQXFGO1FBQ3JGLG9EQUFvRDtRQUNwRCxrRkFBa0Y7UUFDbEYsd0ZBQXdGO1FBQ3hGLHlGQUF5RjtRQUN6Riw4RUFBOEU7UUFDOUUscUZBQXFGO1FBQ3JGLEVBQUU7UUFDRixxREFBcUQ7UUFDckQsRUFBRTtRQUNGLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsZ0ZBQWdGO1FBQ2hGLGdGQUFnRjtRQUNoRixtRUFBbUU7UUFDbkUsMEVBQTBFO1FBQzFFLEVBQUU7UUFDRixLQUFLO1FBQ0wsRUFBRTtRQUNGLHVCQUF1QjtRQUN2QixFQUFFO1FBQ0YscUZBQXFGO1FBQ3JGLEVBQUU7UUFDRiwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLDhJQUE4STtRQUM5SSx3R0FBd0c7UUFDeEcsa0hBQWtIO1FBQ2xILDRDQUE0QztRQUM1QyxzRUFBc0U7UUFDdEUsZ0VBQWdFO1FBQ2hFLDBFQUEwRTtRQUMxRSxrRkFBa0Y7UUFDbEYsRUFBRTtRQUNGLDBCQUEwQjtRQUMxQixFQUFFO1FBQ0YsaUtBQWlLO1FBQ2pLLEVBQUU7UUFDRixnQkFBZ0I7UUFDaEIsMkZBQTJGO1FBQzNGLCtIQUErSDtRQUMvSCxFQUFFO1FBQ0YsOEJBQThCO1FBQzlCLDRCQUE0QjtRQUM1Qiw2RkFBNkY7UUFDN0YseURBQXlEO1FBQ3pELCtDQUErQztRQUMvQyxtREFBbUQ7UUFDbkQsZ0VBQWdFO1FBQ2hFLHlDQUF5QztRQUN6Qyx5R0FBeUc7UUFDekcsc0RBQXNEO1FBQ3RELGdGQUFnRjtRQUNoRix1RUFBdUU7UUFDdkUsa0RBQWtEO1FBQ2xELHFEQUFxRDtRQUNyRCxFQUFFO1FBQ0YsbUlBQW1JO1FBQ25JLEVBQUU7UUFDRixLQUFLO1FBQ0wsRUFBRTtRQUNGLG1CQUFtQjtRQUNuQixFQUFFO1FBQ0YsZ01BQWdNO1FBQ2hNLEVBQUU7UUFDRixpSUFBaUk7UUFDakksRUFBRTtRQUNGLDRGQUE0RjtRQUM1RixFQUFFO1FBQ0YsaUlBQWlJO1FBQ2pJLEtBQUs7UUFDTCxFQUFFO1FBQ0YseUJBQXlCO1FBQ3pCLEVBQUU7UUFDRixTQUFTO1FBQ1Qsd0JBQXdCO1FBQ3hCLGNBQWM7UUFDZCxFQUFFO1FBQ0YsdUVBQXVFO1FBQ3ZFLFVBQVU7UUFDVixFQUFFO1FBQ0Ysd0hBQXdIO1FBQ3hILDREQUE0RDtRQUM1RCxFQUFFO1FBQ0YsYUFBYTtRQUNiLFdBQVc7UUFDWCxFQUFFO1FBQ0YsMERBQTBEO1FBQzFELFlBQVk7UUFDWixLQUFLO1FBQ0wsRUFBRTtRQUNGLEtBQUs7UUFDTCxFQUFFO1FBQ0YscUJBQXFCO1FBQ3JCLEVBQUU7UUFDRixTQUFTO1FBQ1QsOENBQThDO1FBQzlDLFlBQVk7UUFDWixLQUFLO1FBQ0wsRUFBRTtRQUNGLDhHQUE4RztLQUMvRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplVHModmFsdWU6IGFueSwgZGVwdGggPSAxKTogc3RyaW5nIHtcbiAgY29uc3QgcGFkID0gJyAgJy5yZXBlYXQoZGVwdGgpO1xuICBjb25zdCBpbm5lclBhZCA9ICcgICcucmVwZWF0KGRlcHRoICsgMSk7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gYCcke3ZhbHVlfSdgO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIGNvbnN0IGl0ZW1zID0gdmFsdWUubWFwKHYgPT4gYCR7aW5uZXJQYWR9JHtzZXJpYWxpemVUcyh2LCBkZXB0aCArIDEpfWApLmpvaW4oJyxcXG4nKTtcbiAgICByZXR1cm4gYFtcXG4ke2l0ZW1zfSxcXG4ke3BhZH1dYDtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyh2YWx1ZSlcbiAgICAgIC5tYXAoKFtrLCB2XSkgPT4gYCR7aW5uZXJQYWR9JHtrfTogJHtzZXJpYWxpemVUcyh2LCBkZXB0aCArIDEpfWApXG4gICAgICAuam9pbignLFxcbicpO1xuICAgIHJldHVybiBge1xcbiR7ZW50cmllc30sXFxuJHtwYWR9fWA7XG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRtZUNvbnRlbnRzKHByb2plY3ROYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFtcbiAgICBgIyAke3Byb2plY3ROYW1lfWAsXG4gICAgJycsXG4gICAgJ1RoaXMgcHJvamVjdCB3YXMgYm9vdHN0cmFwcGVkIHdpdGggW0JhdG1hbl0oaHR0cHM6Ly9naXRodWIuY29tL21hY2Vkb24tdGVjaG5vbG9naWVzL3BsYXRmb3JtLWNvbW1vbikuJyxcbiAgICAnJyxcbiAgICAnIyMgV2hhdCBCYXRtYW4gQ3JlYXRlZCcsXG4gICAgJycsXG4gICAgJyMjIyBDREsgSW5mcmFzdHJ1Y3R1cmUgKGBzcmMvYCknLFxuICAgICcnLFxuICAgICd8IEZpbGUgfCBEZXNjcmlwdGlvbiB8JyxcbiAgICAnfC0tLS0tLXwtLS0tLS0tLS0tLS0tfCcsXG4gICAgJ3wgYHNyYy9tYWluLnRzYCB8IENESyBhcHAgZW50cnkgcG9pbnQg4oCUIGluc3RhbnRpYXRlcyBkZXYsIHN0YWdpbmcsIGFuZCBwcm9kIGBBcHBsaWNhdGlvblN0YWNrYHMgfCcsXG4gICAgJ3wgYHNyYy9Mb2NhbERldkFwcC50c2AgfCBMb2NhbCBkZXZlbG9wbWVudCBDREsgYXBwIOKAlCB1c2VkIGJ5IGB5YXJuIGNkazpkZXZgIC0gZGVwbG95cyB0byBBV1MgZm9yIHNsb3dlciBidXQgbW9yZSB0aG9yb3VnaCB0ZXN0aW5nIHwnLFxuICAgICd8IGBzcmMvR2l0SHViUm9sZXMudHNgIHwgQ0RLIGFwcCBmb3IgZGVwbG95aW5nIHRoZSBHaXRIdWIgT0lEQyBJQU0gcm9sZSAob25lLXRpbWUgYm9vdHN0cmFwKSB8JyxcbiAgICAnfCBgc3JjL3N0YWNrcy9BcHBsaWNhdGlvblN0YWNrLnRzYCB8IFlvdXIgcHJpbWFyeSBzdGFjayDigJQgZXh0ZW5kIGl0IHRvIGFkZCByZXNvdXJjZXMgfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvQmFzZUFwcGxpY2F0aW9uU3RhY2sudHNgIHwgQmFzZSBzdGFjayB3aXRoIFZQQywgQVBJLCBzdGF0aWMgd2Vic2l0ZSwgRGF0YWRvZywgYW5kIFJvdXRlIDUzIHdpcmVkIHVwIHwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0dpdEh1YlJvbGVzU3RhY2sudHNgIHwgSUFNIHJvbGUgc3RhY2sgZm9yIEdpdEh1YiBBY3Rpb25zIE9JREMgYXV0aGVudGljYXRpb24gfCcsXG4gICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL0FwaS50c2AgfCBBUEkgR2F0ZXdheSArIExhbWJkYSBjb25zdHJ1Y3Qgd2l0aCBDbGVyayBKV1QgYXV0aG9yaXplciB8JyxcbiAgICAnfCBgc3JjL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZS50c2AgfCBDbG91ZEZyb250ICsgUzMgKyBBQ00gKyBSb3V0ZSA1MyBjb25zdHJ1Y3QgfCcsXG4gICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzYCB8IExhbWJkYSBoYW5kbGVyIGVudHJ5IHBvaW50LCBiYXNpYyB3cmFwcGVyIGFyb3VuZCBFeHByZXNzLWNvbXBhdGlibGUgYXBwIGNvZGUgfCcsXG4gICAgJ3wgYHNyYy9hc3BlY3RzL0RhdGFEb2dBc3BlY3QudHNgIHwgQ0RLIGFzcGVjdCB0aGF0IHdpcmVzIGFsbCBMYW1iZGEgZnVuY3Rpb25zIHRvIERhdGFkb2cgfCcsXG4gICAgJycsXG4gICAgJyMjIyBGcm9udGVuZCAoYHdlYi9gKScsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IERlc2NyaXB0aW9uIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS18JyxcbiAgICAnfCBgd2ViL3NyYy9tYWluLnRzeGAgfCBSZWFjdCBhcHAgZW50cnkgcG9pbnQgd2l0aCBDbGVyayBhbmQgUmVhY3QgUXVlcnkgcHJvdmlkZXJzIHwnLFxuICAgICd8IGB3ZWIvc3JjL0FwcC50c3hgIHwgUm9vdCBhcHBsaWNhdGlvbiBjb21wb25lbnQgfCcsXG4gICAgJ3wgYHdlYi9zcmMvQXBwLmNzc2AgLyBgd2ViL3NyYy9pbmRleC5jc3NgIHwgQmFzZSBzdHlsZXNoZWV0cyAoVGFpbHdpbmQgQ1NTIHY0KSB8JyxcbiAgICAnfCBgd2ViL3NyYy9jb25maWcudHNgIHwgYHVzZUNvbmZpZygpYCBob29rIOKAlCBsb2FkcyBydW50aW1lIGNvbmZpZyBmcm9tIGBjb25maWcuanNvbmAgfCcsXG4gICAgJ3wgYHdlYi9zcmMvc2VydmljZXMvQmFzZVNlcnZpY2UudHNgIHwgYHVzZUJhc2VRdWVyeSgpYCDigJQgYXV0aGVudGljYXRlZCBBUEkgZmV0Y2ggaG9vayB8JyxcbiAgICAnfCBgd2ViL3NyYy9zZXJ2aWNlcy9Sb290U2VydmljZS50c2AgfCBFeGFtcGxlIHNlcnZpY2UgdXNpbmcgYHVzZUJhc2VRdWVyeWAgfCcsXG4gICAgJ3wgYHdlYi9wdWJsaWMvY29uZmlnLmpzb25gIHwgUnVudGltZSBjb25maWcgKEFQSSBiYXNlIFVSTCwgQ2xlcmsgcHVibGlzaGFibGUga2V5KSB8JyxcbiAgICAnJyxcbiAgICAnIyMjIEdpdEh1YiBBY3Rpb25zIFdvcmtmbG93cyAoYC5naXRodWIvd29ya2Zsb3dzL2ApJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgVHJpZ2dlciB8JyxcbiAgICAnfC0tLS0tLXwtLS0tLS0tLS18JyxcbiAgICAnfCBgcHItZGVwbG95LnltbGAgfCBPbiBwdWxsIHJlcXVlc3Qgb3Blbi91cGRhdGUg4oCUIGRlcGxveXMgYSBwZXItUFIgZGV2IHN0YWNrIHwnLFxuICAgICd8IGBwci1jbGVhbnVwLnltbGAgfCBPbiBwdWxsIHJlcXVlc3QgY2xvc2Ug4oCUIHRlYXJzIGRvd24gdGhlIHBlci1QUiBkZXYgc3RhY2sgfCcsXG4gICAgJ3wgYHN0YWdpbmctZGVwbG95LnltbGAgfCBPbiBwdXNoIHRvIGBtYWluYCDigJQgZGVwbG95cyB0byBzdGFnaW5nIHwnLFxuICAgICd8IGBwcm9kdWN0aW9uLWRlcGxveS55bWxgIHwgTWFudWFsbHkgdHJpZ2dlcmVkIOKAlCBkZXBsb3lzIHRvIHByb2R1Y3Rpb24gfCcsXG4gICAgJycsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIEZpbGVzIFlvdSBDYW4gRWRpdCcsXG4gICAgJycsXG4gICAgJ1RoZXNlIGZpbGVzIGFyZSBnZW5lcmF0ZWQgb25jZSBhbmQgbmV2ZXIgb3ZlcndyaXR0ZW4gYnkgQmF0bWFuLiBNb2RpZnkgdGhlbSBmcmVlbHkuJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgV2hhdCB0byBkbyB3aXRoIGl0IHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfCcsXG4gICAgJ3wgYC5wcm9qZW5yYy50cyB8IFRoZSBtYWluIFByb2plbiBjb25maWd1cmF0aW9uIGZpbGUuIEFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIGZvciBlaXRoZXIgdGhlIEFQSSBvciB0aGUgV2ViIGZyb250ZW5kIG5lZWQgdG8gYmUgYWRkZWQgaGVyZSB8JyxcbiAgICAnfCBgc3JjL3N0YWNrcy9BcHBsaWNhdGlvblN0YWNrLnRzYCB8ICoqU3RhcnQgaGVyZS4qKiBBZGQgQ0RLIGNvbnN0cnVjdHMgdG8gYnVpbGQgeW91ciBpbmZyYXN0cnVjdHVyZSB8JyxcbiAgICAnfCBgc3JjL2NvbnN0cnVjdHMvaGFuZGxlci9hcHAudHMgfCBUaGUgbWFpbiBtb25vbGl0aGljIEFQSSBSRVNUIHNlcnZlciBmaWxlLiBNYWluIGZpbGUgeW91IHNob3VsZCBiZSBtb2RpZnlpbmcgfCcsXG4gICAgJ3wgYHdlYi9zcmMvQXBwLnRzeGAgfCBCdWlsZCB5b3VyIFVJIGhlcmUgfCcsXG4gICAgJ3wgYHdlYi9zcmMvQXBwLmNzc2AgLyBgd2ViL3NyYy9pbmRleC5jc3NgIHwgU3R5bGUgeW91ciBhcHBsaWNhdGlvbiB8JyxcbiAgICAnfCBgd2ViL3NyYy9tYWluLnRzeGAgfCBBZGp1c3QgdG9wLWxldmVsIHByb3ZpZGVycyBvciByb3V0aW5nIHwnLFxuICAgICd8IGB3ZWIvc3JjL3NlcnZpY2VzL1Jvb3RTZXJ2aWNlLnRzYCB8IEFkZCBvciByZXBsYWNlIEFQSSBzZXJ2aWNlIGhvb2tzIHwnLFxuICAgICd8IGB3ZWIvcHVibGljL2NvbmZpZy5qc29uYCB8IFVwZGF0ZSBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQgKEFQSSBVUkwsIENsZXJrIGtleSkgfCcsXG4gICAgJycsXG4gICAgJyMjIEZpbGVzIFlvdSBDYW5ub3QgRWRpdCcsXG4gICAgJycsXG4gICAgJ1RoZXNlIGZpbGVzIGFyZSAqKm1hbmFnZWQgYnkgQmF0bWFuKiogYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZXZlcnkgdGltZSBgbnB4IHByb2plbmAgcnVucy4gRG8gbm90IGVkaXQgdGhlbSBkaXJlY3RseSDigJQgbWFrZSBjaGFuZ2VzIGluIGAucHJvamVucmMudHNgIGluc3RlYWQuJyxcbiAgICAnJyxcbiAgICAnPiBbIUlNUE9SVEFOVF0nLFxuICAgICc+IElmIHlvdSBoYXZlIEFOWSBjaGFuZ2VzIHlvdSB3YW50IHRvIG1ha2UgdG8gdGhlc2UgZmlsZXMsIG5vdGlmeSAjdGVhbS1iYXRtYW4gb24gU2xhY2suICcsXG4gICAgJz4gV2UgbWFpbnRhaW4gdGhlc2UgZmlsZXMgYXMgcGFydCBvZiB0aGUgY29yZSBCYXRtYW4gZXhwZXJpZW5jZSwgYW5kIHlvdXIgZmVlZGJhY2sgaXMgY3J1Y2lhbCB0byBlbnN1cmUgdGhleSBtZWV0IHlvdXIgbmVlZHMuJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgV2h5IGl0XFwncyBtYW5hZ2VkIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvQmFzZUFwcGxpY2F0aW9uU3RhY2sudHNgIHwgQ29yZSBzdGFjayB3aXJpbmcg4oCUIHVwZGF0ZWQgd2l0aCBCYXRtYW4gcmVsZWFzZXMgfCcsXG4gICAgJ3wgYHNyYy9hc3BlY3RzL0RhdGFEb2dBc3BlY3QudHNgIHwgRGF0YWRvZyBDREsgYXNwZWN0IHwnLFxuICAgICd8IGB3ZWIvdml0ZS5jb25maWcudHNgIHwgVml0ZSBjb25maWd1cmF0aW9uIHwnLFxuICAgICd8IGB3ZWIvZXNsaW50LmNvbmZpZy5qc2AgfCBFU0xpbnQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAnfCBgd2ViL3Bvc3Rjc3MuY29uZmlnLmpzYCB8IFBvc3RDU1MgLyBUYWlsd2luZCBjb25maWd1cmF0aW9uIHwnLFxuICAgICd8IGB3ZWIvaW5kZXguaHRtbGAgfCBIVE1MIGVudHJ5IHBvaW50IHwnLFxuICAgICd8IGB3ZWIvdHNjb25maWcuanNvbmAgLyBgd2ViL3RzY29uZmlnLmFwcC5qc29uYCAvIGB3ZWIvdHNjb25maWcubm9kZS5qc29uYCB8IFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAnfCBgd2ViL3NyYy92aXRlLWVudi5kLnRzYCB8IFZpdGUgdHlwZSBkZWNsYXJhdGlvbnMgfCcsXG4gICAgJ3wgYHdlYi9zcmMvY29uZmlnLnRzYCB8IFJ1bnRpbWUgY29uZmlnIGhvb2sg4oCUIHNoYXBlIGRyaXZlbiBieSBgLnByb2plbnJjLnRzYCB8JyxcbiAgICAnfCBgd2ViL3NyYy9zZXJ2aWNlcy9CYXNlU2VydmljZS50c2AgfCBCYXNlIGF1dGhlbnRpY2F0ZWQgZmV0Y2ggaG9vayB8JyxcbiAgICAnfCBgLmdpdGh1Yi9DT0RFT1dORVJTYCB8IENvZGUgb3duZXJzaGlwIHBvbGljeSB8JyxcbiAgICAnfCBgLmdpdGh1Yi93b3JrZmxvd3MvKi55bWxgIHwgQWxsIENJL0NEIHdvcmtmbG93cyB8JyxcbiAgICAnJyxcbiAgICAnPiAqKlRpcDoqKiBGaWxlcyB3aXRoIGEgYH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi4gfn5gIGhlYWRlciBhcmUgbWFuYWdlZCBmaWxlcy4nLFxuICAgICcnLFxuICAgICctLS0nLFxuICAgICcnLFxuICAgICcjIyBXaGVyZSB0byBTdGFydCcsXG4gICAgJycsXG4gICAgJzEuICoqYHNyYy9zdGFja3MvQXBwbGljYXRpb25TdGFjay50c2AqKiDigJQgQWRkIHlvdXIgQ0RLIGNvbnN0cnVjdHMgaGVyZS4gVGhlIGJhc2Ugc3RhY2sgYWxyZWFkeSBwcm92aWRlcyBgdGhpcy5hcGlgLCBgdGhpcy52cGNgLCBgdGhpcy5ob3N0ZWRab25lYCwgYW5kIGB0aGlzLmRhdGFkb2dgIGFzIHByb3RlY3RlZCBwcm9wZXJ0aWVzLicsXG4gICAgJycsXG4gICAgJzIuICoqYHdlYi9gKiog4oCUIEJ1aWxkIHlvdXIgZnJvbnRlbmQuIFN0YXJ0IHdpdGggYHdlYi9zcmMvQXBwLnRzeGAgYW5kIGFkZCBzZXJ2aWNlcyBhbG9uZ3NpZGUgYHdlYi9zcmMvc2VydmljZXMvUm9vdFNlcnZpY2UudHNgLicsXG4gICAgJycsXG4gICAgJzMuICoqYHNyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvYXBwLnRzYCoqIOKAlCBJbXBsZW1lbnQgeW91ciBiYWNrZW5kIExhbWJkYSBoYW5kbGVyIGxvZ2ljIGhlcmUuJyxcbiAgICAnJyxcbiAgICAnNC4gKipgLnByb2plbnJjLnRzYCoqIC0gTWFuYWdlcyBwcm9qZWN0IGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbi4gUnVuIGBucHggcHJvamVuYCBhZnRlciBtYWtpbmcgYW55IGNoYW5nZXMgdG8gdGhpcyBmaWxlLicsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIERldmVsb3BtZW50IFdvcmtmbG93JyxcbiAgICAnJyxcbiAgICAnYGBgYmFzaCcsXG4gICAgJyMgSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICd5YXJuIGluc3RhbGwnLFxuICAgICcnLFxuICAgICcjIFN0YXJ0IGxvY2FsIGRldiBzZXJ2ZXIgKGJhY2tlbmQgTGFtYmRhICsgVml0ZSBmcm9udGVuZCBpbiBwYXJhbGxlbCknLFxuICAgICd5YXJuIGRldicsXG4gICAgJycsXG4gICAgJyMgRGVwbG95IGEgcGVyc29uYWwgZGV2IHN0YWNrIHRvIEFXUyBhcyBhbiBhbHRlcm5hdGl2ZSB0byBsb2NhbCBkZXZlbG9wbWVudCwgcHJvdmlkZXMgbW9yZSB0aG9yb3VnaCBlbmQtdG8tZW5kIHRlc3RpbmcnLFxuICAgICd5YXJuIGNkazpkZXYgLS1jb250ZXh0IGxvY2FsLWRldi1wcmVmaXg9eW91ci1oYW5kbGUgZGVwbG95JyxcbiAgICAnJyxcbiAgICAnIyBSdW4gdGVzdHMnLFxuICAgICd5YXJuIHRlc3QnLFxuICAgICcnLFxuICAgICcjIFJlLXN5bnRoZXNpemUgcHJvamVjdCBmaWxlcyBhZnRlciBlZGl0aW5nIC5wcm9qZW5yYy50cycsXG4gICAgJ25weCBwcm9qZW4nLFxuICAgICdgYGAnLFxuICAgICcnLFxuICAgICctLS0nLFxuICAgICcnLFxuICAgICcjIyBVcGdyYWRpbmcgQmF0bWFuJyxcbiAgICAnJyxcbiAgICAnYGBgYmFzaCcsXG4gICAgJ3lhcm4gYWRkIEBtYWNlZG9uLXRlY2hub2xvZ2llcy9iYXRtYW5AbGF0ZXN0JyxcbiAgICAnbnB4IHByb2plbicsXG4gICAgJ2BgYCcsXG4gICAgJycsXG4gICAgJ1RoaXMgdXBkYXRlcyBhbGwgbWFuYWdlZCBmaWxlcyB0byB0aGUgbGF0ZXN0IEJhdG1hbiBzdGFuZGFyZHMuIFlvdXIgZWRpdGFibGUgc2FtcGxlIGZpbGVzIGFyZSBuZXZlciB0b3VjaGVkLicsXG4gIF0uam9pbignXFxuJyk7XG59XG4iXX0=
|