@cloudsnorkel/cdk-github-runners 0.9.4 → 0.9.5

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.
Files changed (93) hide show
  1. package/.gitattributes +3 -3
  2. package/.jsii +315 -267
  3. package/API.md +43 -7
  4. package/README.md +15 -2
  5. package/assets/{providers/image-builders → image-builders}/aws-image-builder/delete-ami.lambda/index.js +2 -2
  6. package/assets/{providers/image-builders → image-builders}/aws-image-builder/filter-failed-builds.lambda/index.js +1 -1
  7. package/assets/{providers/image-builders → image-builders}/aws-image-builder/versioner.lambda/index.js +2 -2
  8. package/lib/access.js +1 -1
  9. package/lib/image-builders/api.js +47 -0
  10. package/lib/{providers/image-builders → image-builders}/aws-image-builder/ami.d.ts +2 -3
  11. package/lib/image-builders/aws-image-builder/ami.js +93 -0
  12. package/lib/{providers/image-builders → image-builders}/aws-image-builder/builder.d.ts +9 -2
  13. package/lib/image-builders/aws-image-builder/builder.js +529 -0
  14. package/lib/image-builders/aws-image-builder/common.js +46 -0
  15. package/lib/{providers/image-builders → image-builders}/aws-image-builder/container.d.ts +1 -1
  16. package/lib/image-builders/aws-image-builder/container.js +63 -0
  17. package/lib/{providers/image-builders → image-builders}/aws-image-builder/delete-ami-function.d.ts +1 -1
  18. package/lib/image-builders/aws-image-builder/delete-ami-function.js +23 -0
  19. package/lib/image-builders/aws-image-builder/delete-ami.lambda.js +87 -0
  20. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/ami.d.ts +2 -2
  21. package/lib/image-builders/aws-image-builder/deprecated/ami.js +240 -0
  22. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/common.d.ts +1 -1
  23. package/lib/image-builders/aws-image-builder/deprecated/common.js +144 -0
  24. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/container.d.ts +1 -1
  25. package/lib/image-builders/aws-image-builder/deprecated/container.js +222 -0
  26. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/index.js +1 -1
  27. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/linux-components.d.ts +1 -1
  28. package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +172 -0
  29. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/windows-components.d.ts +1 -1
  30. package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +126 -0
  31. package/lib/{providers/image-builders → image-builders}/aws-image-builder/filter-failed-builds-function.d.ts +1 -1
  32. package/lib/image-builders/aws-image-builder/filter-failed-builds-function.js +23 -0
  33. package/lib/image-builders/aws-image-builder/filter-failed-builds.lambda.js +18 -0
  34. package/lib/{providers/image-builders → image-builders}/aws-image-builder/index.js +1 -1
  35. package/lib/{providers/image-builders → image-builders}/aws-image-builder/versioner-function.d.ts +1 -1
  36. package/lib/image-builders/aws-image-builder/versioner-function.js +23 -0
  37. package/lib/image-builders/aws-image-builder/versioner.lambda.js +96 -0
  38. package/lib/{providers/image-builders → image-builders}/codebuild-deprecated.d.ts +2 -2
  39. package/lib/image-builders/codebuild-deprecated.js +373 -0
  40. package/lib/{providers/image-builders → image-builders}/codebuild.d.ts +2 -2
  41. package/lib/image-builders/codebuild.js +287 -0
  42. package/lib/{providers/image-builders → image-builders}/common.d.ts +4 -2
  43. package/lib/image-builders/common.js +61 -0
  44. package/lib/{providers/image-builders → image-builders}/components.d.ts +8 -2
  45. package/lib/image-builders/components.js +568 -0
  46. package/lib/{providers/image-builders → image-builders}/index.js +1 -1
  47. package/lib/{providers/image-builders → image-builders}/static.d.ts +1 -1
  48. package/lib/image-builders/static.js +58 -0
  49. package/lib/providers/codebuild.d.ts +1 -1
  50. package/lib/providers/codebuild.js +4 -4
  51. package/lib/providers/common.js +3 -3
  52. package/lib/providers/ec2.d.ts +1 -1
  53. package/lib/providers/ec2.js +4 -4
  54. package/lib/providers/ecs.d.ts +1 -1
  55. package/lib/providers/ecs.js +3 -3
  56. package/lib/providers/fargate.d.ts +1 -1
  57. package/lib/providers/fargate.js +4 -4
  58. package/lib/providers/index.d.ts +1 -1
  59. package/lib/providers/index.js +2 -2
  60. package/lib/providers/lambda.d.ts +1 -1
  61. package/lib/providers/lambda.js +4 -4
  62. package/lib/runner.js +1 -1
  63. package/lib/secrets.js +1 -1
  64. package/package.json +10 -10
  65. package/lib/providers/image-builders/api.js +0 -47
  66. package/lib/providers/image-builders/aws-image-builder/ami.js +0 -81
  67. package/lib/providers/image-builders/aws-image-builder/builder.js +0 -520
  68. package/lib/providers/image-builders/aws-image-builder/common.js +0 -46
  69. package/lib/providers/image-builders/aws-image-builder/container.js +0 -63
  70. package/lib/providers/image-builders/aws-image-builder/delete-ami-function.js +0 -23
  71. package/lib/providers/image-builders/aws-image-builder/delete-ami.lambda.js +0 -87
  72. package/lib/providers/image-builders/aws-image-builder/deprecated/ami.js +0 -240
  73. package/lib/providers/image-builders/aws-image-builder/deprecated/common.js +0 -144
  74. package/lib/providers/image-builders/aws-image-builder/deprecated/container.js +0 -222
  75. package/lib/providers/image-builders/aws-image-builder/deprecated/linux-components.js +0 -172
  76. package/lib/providers/image-builders/aws-image-builder/deprecated/windows-components.js +0 -129
  77. package/lib/providers/image-builders/aws-image-builder/filter-failed-builds-function.js +0 -23
  78. package/lib/providers/image-builders/aws-image-builder/filter-failed-builds.lambda.js +0 -18
  79. package/lib/providers/image-builders/aws-image-builder/versioner-function.js +0 -23
  80. package/lib/providers/image-builders/aws-image-builder/versioner.lambda.js +0 -96
  81. package/lib/providers/image-builders/codebuild-deprecated.js +0 -373
  82. package/lib/providers/image-builders/codebuild.js +0 -287
  83. package/lib/providers/image-builders/common.js +0 -61
  84. package/lib/providers/image-builders/components.js +0 -535
  85. package/lib/providers/image-builders/static.js +0 -58
  86. /package/lib/{providers/image-builders → image-builders}/api.d.ts +0 -0
  87. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/common.d.ts +0 -0
  88. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/delete-ami.lambda.d.ts +0 -0
  89. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/index.d.ts +0 -0
  90. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/filter-failed-builds.lambda.d.ts +0 -0
  91. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/index.d.ts +0 -0
  92. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/versioner.lambda.d.ts +0 -0
  93. /package/lib/{providers/image-builders → image-builders}/index.d.ts +0 -0
@@ -1,129 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.WindowsComponents = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const common_1 = require("../../../common");
8
- const builder_1 = require("../builder");
9
- /**
10
- * Components for Windows that can be used with AWS Image Builder based builders. These cannot be used by {@link CodeBuildImageBuilder}.
11
- *
12
- * @deprecated Use `RunnerImageComponent` instead.
13
- */
14
- class WindowsComponents {
15
- static cloudwatchAgent(scope, id) {
16
- return new builder_1.ImageBuilderComponent(scope, id, {
17
- platform: 'Windows',
18
- displayName: 'CloudWatch agent',
19
- description: 'Install latest version of CloudWatch agent for sending logs to CloudWatch',
20
- commands: [
21
- 'Start-Process msiexec.exe -Wait -ArgumentList \'/i https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi /qn\'',
22
- ],
23
- });
24
- }
25
- static awsCli(scope, id) {
26
- return new builder_1.ImageBuilderComponent(scope, id, {
27
- platform: 'Windows',
28
- displayName: 'AWS CLI',
29
- description: 'Install latest version of AWS CLI',
30
- commands: [
31
- 'Start-Process msiexec.exe -Wait -ArgumentList \'/i https://awscli.amazonaws.com/AWSCLIV2.msi /qn\'',
32
- ],
33
- });
34
- }
35
- static githubCli(scope, id) {
36
- return new builder_1.ImageBuilderComponent(scope, id, {
37
- platform: 'Windows',
38
- displayName: 'GitHub CLI',
39
- description: 'Install latest version of gh',
40
- commands: [
41
- 'cmd /c curl -w "%{redirect_url}" -fsS https://github.com/cli/cli/releases/latest > $Env:TEMP\\latest-gh',
42
- '$LatestUrl = Get-Content $Env:TEMP\\latest-gh',
43
- '$GH_VERSION = ($LatestUrl -Split \'/\')[-1].substring(1)',
44
- 'Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_windows_amd64.msi" -OutFile gh.msi',
45
- 'Start-Process msiexec.exe -Wait -ArgumentList \'/i gh.msi /qn\'',
46
- 'del gh.msi',
47
- ],
48
- });
49
- }
50
- static git(scope, id) {
51
- return new builder_1.ImageBuilderComponent(scope, id, {
52
- platform: 'Windows',
53
- displayName: 'Git',
54
- description: 'Install latest version of git',
55
- commands: [
56
- 'cmd /c curl -w "%{redirect_url}" -fsS https://github.com/git-for-windows/git/releases/latest > $Env:TEMP\\latest-git',
57
- '$LatestUrl = Get-Content $Env:TEMP\\latest-git',
58
- '$GIT_VERSION = ($LatestUrl -Split \'/\')[-1].substring(1)',
59
- '$GIT_VERSION_SHORT = ($GIT_VERSION -Split \'.windows.\')[0]',
60
- '$GIT_REVISION = ($GIT_VERSION -Split \'.windows.\')[1]',
61
- 'If ($GIT_REVISION -gt 1) {$GIT_VERSION_SHORT = "$GIT_VERSION_SHORT.$GIT_REVISION"}',
62
- 'Invoke-WebRequest -UseBasicParsing -Uri https://github.com/git-for-windows/git/releases/download/v${GIT_VERSION}/Git-${GIT_VERSION_SHORT}-64-bit.exe -OutFile git-setup.exe',
63
- 'Start-Process git-setup.exe -Wait -ArgumentList \'/VERYSILENT\'',
64
- 'del git-setup.exe',
65
- ],
66
- });
67
- }
68
- static githubRunner(scope, id, runnerVersion) {
69
- let runnerCommands;
70
- if (runnerVersion.is(common_1.RunnerVersion.latest())) {
71
- runnerCommands = [
72
- 'cmd /c curl -w "%{redirect_url}" -fsS https://github.com/actions/runner/releases/latest > $Env:TEMP\\latest-gha',
73
- '$LatestUrl = Get-Content $Env:TEMP\\latest-gha',
74
- '$RUNNER_VERSION = ($LatestUrl -Split \'/\')[-1].substring(1)',
75
- ];
76
- }
77
- else {
78
- runnerCommands = [`$RUNNER_VERSION = '${runnerVersion.version}'`];
79
- }
80
- return new builder_1.ImageBuilderComponent(scope, id, {
81
- platform: 'Windows',
82
- displayName: 'GitHub Actions Runner',
83
- description: 'Install latest version of GitHub Actions Runner',
84
- commands: runnerCommands.concat([
85
- 'Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-win-x64-${RUNNER_VERSION}.zip" -OutFile actions.zip',
86
- 'Expand-Archive actions.zip -DestinationPath C:\\actions',
87
- 'del actions.zip',
88
- `echo ${runnerVersion.version} | Out-File -Encoding ASCII -NoNewline C:\\actions\\RUNNER_VERSION`,
89
- ]),
90
- });
91
- }
92
- static docker(scope, id) {
93
- return new builder_1.ImageBuilderComponent(scope, id, {
94
- platform: 'Windows',
95
- displayName: 'Docker',
96
- description: 'Install latest version of Docker',
97
- commands: [
98
- 'Invoke-WebRequest -UseBasicParsing -Uri https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe -OutFile docker-setup.exe',
99
- 'Start-Process \'docker-setup.exe\' -Wait -ArgumentList \'/install --quiet --accept-license\'',
100
- 'del docker-setup.exe',
101
- 'cmd /c curl -w "%{redirect_url}" -fsS https://github.com/docker/compose/releases/latest > $Env:TEMP\\latest-docker-compose',
102
- '$LatestUrl = Get-Content $Env:TEMP\\latest-docker-compose',
103
- '$LatestDockerCompose = ($LatestUrl -Split \'/\')[-1]',
104
- 'Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/docker/compose/releases/download/${LatestDockerCompose}/docker-compose-Windows-x86_64.exe" -OutFile $Env:ProgramFiles\\Docker\\docker-compose.exe',
105
- 'copy $Env:ProgramFiles\\Docker\\docker-compose.exe $Env:ProgramFiles\\Docker\\cli-plugins\\docker-compose.exe',
106
- ],
107
- });
108
- }
109
- static extraCertificates(scope, id, path) {
110
- return new builder_1.ImageBuilderComponent(scope, id, {
111
- platform: 'Windows',
112
- displayName: 'Extra certificates',
113
- description: 'Install self-signed certificates to provide access to GitHub Enterprise Server',
114
- commands: [
115
- 'Import-Certificate -FilePath certs\\certs.pem -CertStoreLocation Cert:\\LocalMachine\\Root',
116
- ],
117
- assets: [
118
- {
119
- path: 'certs',
120
- asset: new aws_cdk_lib_1.aws_s3_assets.Asset(scope, `${id} Asset`, { path }),
121
- },
122
- ],
123
- });
124
- }
125
- }
126
- _a = JSII_RTTI_SYMBOL_1;
127
- WindowsComponents[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.WindowsComponents", version: "0.9.4" };
128
- exports.WindowsComponents = WindowsComponents;
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9pbWFnZS1idWlsZGVycy9hd3MtaW1hZ2UtYnVpbGRlci9kZXByZWNhdGVkL3dpbmRvd3MtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF5RDtBQUV6RCw0Q0FBZ0Q7QUFDaEQsd0NBQW1EO0FBRW5EOzs7O0dBSUc7QUFDSCxNQUFhLGlCQUFpQjtJQUNyQixNQUFNLENBQUMsZUFBZSxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUN4RCxPQUFPLElBQUksK0JBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMxQyxRQUFRLEVBQUUsU0FBUztZQUNuQixXQUFXLEVBQUUsa0JBQWtCO1lBQy9CLFdBQVcsRUFBRSwyRUFBMkU7WUFDeEYsUUFBUSxFQUFFO2dCQUNSLDJKQUEySjthQUM1SjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUMvQyxPQUFPLElBQUksK0JBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMxQyxRQUFRLEVBQUUsU0FBUztZQUNuQixXQUFXLEVBQUUsU0FBUztZQUN0QixXQUFXLEVBQUUsbUNBQW1DO1lBQ2hELFFBQVEsRUFBRTtnQkFDUixvR0FBb0c7YUFDckc7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixFQUFFLEVBQVU7UUFDbEQsT0FBTyxJQUFJLCtCQUFxQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUMsUUFBUSxFQUFFLFNBQVM7WUFDbkIsV0FBVyxFQUFFLFlBQVk7WUFDekIsV0FBVyxFQUFFLDhCQUE4QjtZQUMzQyxRQUFRLEVBQUU7Z0JBQ1IseUdBQXlHO2dCQUN6RywrQ0FBK0M7Z0JBQy9DLDBEQUEwRDtnQkFDMUQsMEpBQTBKO2dCQUMxSixpRUFBaUU7Z0JBQ2pFLFlBQVk7YUFDYjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUM1QyxPQUFPLElBQUksK0JBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMxQyxRQUFRLEVBQUUsU0FBUztZQUNuQixXQUFXLEVBQUUsS0FBSztZQUNsQixXQUFXLEVBQUUsK0JBQStCO1lBQzVDLFFBQVEsRUFBRTtnQkFDUixzSEFBc0g7Z0JBQ3RILGdEQUFnRDtnQkFDaEQsMkRBQTJEO2dCQUMzRCw2REFBNkQ7Z0JBQzdELHdEQUF3RDtnQkFDeEQsb0ZBQW9GO2dCQUNwRiw2S0FBNks7Z0JBQzdLLGlFQUFpRTtnQkFDakUsbUJBQW1CO2FBQ3BCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsYUFBNEI7UUFDbkYsSUFBSSxjQUF3QixDQUFDO1FBQzdCLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FBQyxzQkFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDNUMsY0FBYyxHQUFHO2dCQUNmLGlIQUFpSDtnQkFDakgsZ0RBQWdEO2dCQUNoRCw4REFBOEQ7YUFDL0QsQ0FBQztTQUNIO2FBQU07WUFDTCxjQUFjLEdBQUcsQ0FBQyxzQkFBc0IsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7U0FDbkU7UUFFRCxPQUFPLElBQUksK0JBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMxQyxRQUFRLEVBQUUsU0FBUztZQUNuQixXQUFXLEVBQUUsdUJBQXVCO1lBQ3BDLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsUUFBUSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUM7Z0JBQzlCLG9MQUFvTDtnQkFDcEwseURBQXlEO2dCQUN6RCxpQkFBaUI7Z0JBQ2pCLFFBQVEsYUFBYSxDQUFDLE9BQU8sb0VBQW9FO2FBQ2xHLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFnQixFQUFFLEVBQVU7UUFDL0MsT0FBTyxJQUFJLCtCQUFxQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUMsUUFBUSxFQUFFLFNBQVM7WUFDbkIsV0FBVyxFQUFFLFFBQVE7WUFDckIsV0FBVyxFQUFFLGtDQUFrQztZQUMvQyxRQUFRLEVBQUU7Z0JBQ1IsOElBQThJO2dCQUM5SSw4RkFBOEY7Z0JBQzlGLHNCQUFzQjtnQkFDdEIsNEhBQTRIO2dCQUM1SCwyREFBMkQ7Z0JBQzNELHNEQUFzRDtnQkFDdEQsZ05BQWdOO2dCQUNoTiwrR0FBK0c7YUFDaEg7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQVk7UUFDeEUsT0FBTyxJQUFJLCtCQUFxQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUMsUUFBUSxFQUFFLFNBQVM7WUFDbkIsV0FBVyxFQUFFLG9CQUFvQjtZQUNqQyxXQUFXLEVBQUUsZ0ZBQWdGO1lBQzdGLFFBQVEsRUFBRTtnQkFDUiw0RkFBNEY7YUFDN0Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLElBQUksMkJBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDM0Q7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7QUFwSFUsOENBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzX3MzX2Fzc2V0cyBhcyBzM19hc3NldHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFJ1bm5lclZlcnNpb24gfSBmcm9tICcuLi8uLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgSW1hZ2VCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYnVpbGRlcic7XG5cbi8qKlxuICogQ29tcG9uZW50cyBmb3IgV2luZG93cyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggQVdTIEltYWdlIEJ1aWxkZXIgYmFzZWQgYnVpbGRlcnMuIFRoZXNlIGNhbm5vdCBiZSB1c2VkIGJ5IHtAbGluayBDb2RlQnVpbGRJbWFnZUJ1aWxkZXJ9LlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBgUnVubmVySW1hZ2VDb21wb25lbnRgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBXaW5kb3dzQ29tcG9uZW50cyB7XG4gIHB1YmxpYyBzdGF0aWMgY2xvdWR3YXRjaEFnZW50KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IEltYWdlQnVpbGRlckNvbXBvbmVudChzY29wZSwgaWQsIHtcbiAgICAgIHBsYXRmb3JtOiAnV2luZG93cycsXG4gICAgICBkaXNwbGF5TmFtZTogJ0Nsb3VkV2F0Y2ggYWdlbnQnLFxuICAgICAgZGVzY3JpcHRpb246ICdJbnN0YWxsIGxhdGVzdCB2ZXJzaW9uIG9mIENsb3VkV2F0Y2ggYWdlbnQgZm9yIHNlbmRpbmcgbG9ncyB0byBDbG91ZFdhdGNoJyxcbiAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICdTdGFydC1Qcm9jZXNzIG1zaWV4ZWMuZXhlIC1XYWl0IC1Bcmd1bWVudExpc3QgXFwnL2kgaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2FtYXpvbmNsb3Vkd2F0Y2gtYWdlbnQvd2luZG93cy9hbWQ2NC9sYXRlc3QvYW1hem9uLWNsb3Vkd2F0Y2gtYWdlbnQubXNpIC9xblxcJycsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhd3NDbGkoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgSW1hZ2VCdWlsZGVyQ29tcG9uZW50KHNjb3BlLCBpZCwge1xuICAgICAgcGxhdGZvcm06ICdXaW5kb3dzJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnQVdTIENMSScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0luc3RhbGwgbGF0ZXN0IHZlcnNpb24gb2YgQVdTIENMSScsXG4gICAgICBjb21tYW5kczogW1xuICAgICAgICAnU3RhcnQtUHJvY2VzcyBtc2lleGVjLmV4ZSAtV2FpdCAtQXJndW1lbnRMaXN0IFxcJy9pIGh0dHBzOi8vYXdzY2xpLmFtYXpvbmF3cy5jb20vQVdTQ0xJVjIubXNpIC9xblxcJycsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnaXRodWJDbGkoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgSW1hZ2VCdWlsZGVyQ29tcG9uZW50KHNjb3BlLCBpZCwge1xuICAgICAgcGxhdGZvcm06ICdXaW5kb3dzJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnR2l0SHViIENMSScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0luc3RhbGwgbGF0ZXN0IHZlcnNpb24gb2YgZ2gnLFxuICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgJ2NtZCAvYyBjdXJsIC13IFwiJXtyZWRpcmVjdF91cmx9XCIgLWZzUyBodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaS9yZWxlYXNlcy9sYXRlc3QgPiAkRW52OlRFTVBcXFxcbGF0ZXN0LWdoJyxcbiAgICAgICAgJyRMYXRlc3RVcmwgPSBHZXQtQ29udGVudCAkRW52OlRFTVBcXFxcbGF0ZXN0LWdoJyxcbiAgICAgICAgJyRHSF9WRVJTSU9OID0gKCRMYXRlc3RVcmwgLVNwbGl0IFxcJy9cXCcpWy0xXS5zdWJzdHJpbmcoMSknLFxuICAgICAgICAnSW52b2tlLVdlYlJlcXVlc3QgLVVzZUJhc2ljUGFyc2luZyAtVXJpIFwiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvcmVsZWFzZXMvZG93bmxvYWQvdiR7R0hfVkVSU0lPTn0vZ2hfJHtHSF9WRVJTSU9OfV93aW5kb3dzX2FtZDY0Lm1zaVwiIC1PdXRGaWxlIGdoLm1zaScsXG4gICAgICAgICdTdGFydC1Qcm9jZXNzIG1zaWV4ZWMuZXhlIC1XYWl0IC1Bcmd1bWVudExpc3QgXFwnL2kgZ2gubXNpIC9xblxcJycsXG4gICAgICAgICdkZWwgZ2gubXNpJyxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdpdChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBJbWFnZUJ1aWxkZXJDb21wb25lbnQoc2NvcGUsIGlkLCB7XG4gICAgICBwbGF0Zm9ybTogJ1dpbmRvd3MnLFxuICAgICAgZGlzcGxheU5hbWU6ICdHaXQnLFxuICAgICAgZGVzY3JpcHRpb246ICdJbnN0YWxsIGxhdGVzdCB2ZXJzaW9uIG9mIGdpdCcsXG4gICAgICBjb21tYW5kczogW1xuICAgICAgICAnY21kIC9jIGN1cmwgLXcgXCIle3JlZGlyZWN0X3VybH1cIiAtZnNTIGh0dHBzOi8vZ2l0aHViLmNvbS9naXQtZm9yLXdpbmRvd3MvZ2l0L3JlbGVhc2VzL2xhdGVzdCA+ICRFbnY6VEVNUFxcXFxsYXRlc3QtZ2l0JyxcbiAgICAgICAgJyRMYXRlc3RVcmwgPSBHZXQtQ29udGVudCAkRW52OlRFTVBcXFxcbGF0ZXN0LWdpdCcsXG4gICAgICAgICckR0lUX1ZFUlNJT04gPSAoJExhdGVzdFVybCAtU3BsaXQgXFwnL1xcJylbLTFdLnN1YnN0cmluZygxKScsXG4gICAgICAgICckR0lUX1ZFUlNJT05fU0hPUlQgPSAoJEdJVF9WRVJTSU9OIC1TcGxpdCBcXCcud2luZG93cy5cXCcpWzBdJyxcbiAgICAgICAgJyRHSVRfUkVWSVNJT04gPSAoJEdJVF9WRVJTSU9OIC1TcGxpdCBcXCcud2luZG93cy5cXCcpWzFdJyxcbiAgICAgICAgJ0lmICgkR0lUX1JFVklTSU9OIC1ndCAxKSB7JEdJVF9WRVJTSU9OX1NIT1JUID0gXCIkR0lUX1ZFUlNJT05fU0hPUlQuJEdJVF9SRVZJU0lPTlwifScsXG4gICAgICAgICdJbnZva2UtV2ViUmVxdWVzdCAtVXNlQmFzaWNQYXJzaW5nIC1VcmkgaHR0cHM6Ly9naXRodWIuY29tL2dpdC1mb3Itd2luZG93cy9naXQvcmVsZWFzZXMvZG93bmxvYWQvdiR7R0lUX1ZFUlNJT059L0dpdC0ke0dJVF9WRVJTSU9OX1NIT1JUfS02NC1iaXQuZXhlIC1PdXRGaWxlIGdpdC1zZXR1cC5leGUnLFxuICAgICAgICAnU3RhcnQtUHJvY2VzcyBnaXQtc2V0dXAuZXhlIC1XYWl0IC1Bcmd1bWVudExpc3QgXFwnL1ZFUllTSUxFTlRcXCcnLFxuICAgICAgICAnZGVsIGdpdC1zZXR1cC5leGUnLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2l0aHViUnVubmVyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHJ1bm5lclZlcnNpb246IFJ1bm5lclZlcnNpb24pIHtcbiAgICBsZXQgcnVubmVyQ29tbWFuZHM6IHN0cmluZ1tdO1xuICAgIGlmIChydW5uZXJWZXJzaW9uLmlzKFJ1bm5lclZlcnNpb24ubGF0ZXN0KCkpKSB7XG4gICAgICBydW5uZXJDb21tYW5kcyA9IFtcbiAgICAgICAgJ2NtZCAvYyBjdXJsIC13IFwiJXtyZWRpcmVjdF91cmx9XCIgLWZzUyBodHRwczovL2dpdGh1Yi5jb20vYWN0aW9ucy9ydW5uZXIvcmVsZWFzZXMvbGF0ZXN0ID4gJEVudjpURU1QXFxcXGxhdGVzdC1naGEnLFxuICAgICAgICAnJExhdGVzdFVybCA9IEdldC1Db250ZW50ICRFbnY6VEVNUFxcXFxsYXRlc3QtZ2hhJyxcbiAgICAgICAgJyRSVU5ORVJfVkVSU0lPTiA9ICgkTGF0ZXN0VXJsIC1TcGxpdCBcXCcvXFwnKVstMV0uc3Vic3RyaW5nKDEpJyxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJ1bm5lckNvbW1hbmRzID0gW2AkUlVOTkVSX1ZFUlNJT04gPSAnJHtydW5uZXJWZXJzaW9uLnZlcnNpb259J2BdO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1hZ2VCdWlsZGVyQ29tcG9uZW50KHNjb3BlLCBpZCwge1xuICAgICAgcGxhdGZvcm06ICdXaW5kb3dzJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnR2l0SHViIEFjdGlvbnMgUnVubmVyJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnSW5zdGFsbCBsYXRlc3QgdmVyc2lvbiBvZiBHaXRIdWIgQWN0aW9ucyBSdW5uZXInLFxuICAgICAgY29tbWFuZHM6IHJ1bm5lckNvbW1hbmRzLmNvbmNhdChbXG4gICAgICAgICdJbnZva2UtV2ViUmVxdWVzdCAtVXNlQmFzaWNQYXJzaW5nIC1VcmkgXCJodHRwczovL2dpdGh1Yi5jb20vYWN0aW9ucy9ydW5uZXIvcmVsZWFzZXMvZG93bmxvYWQvdiR7UlVOTkVSX1ZFUlNJT059L2FjdGlvbnMtcnVubmVyLXdpbi14NjQtJHtSVU5ORVJfVkVSU0lPTn0uemlwXCIgLU91dEZpbGUgYWN0aW9ucy56aXAnLFxuICAgICAgICAnRXhwYW5kLUFyY2hpdmUgYWN0aW9ucy56aXAgLURlc3RpbmF0aW9uUGF0aCBDOlxcXFxhY3Rpb25zJyxcbiAgICAgICAgJ2RlbCBhY3Rpb25zLnppcCcsXG4gICAgICAgIGBlY2hvICR7cnVubmVyVmVyc2lvbi52ZXJzaW9ufSB8IE91dC1GaWxlIC1FbmNvZGluZyBBU0NJSSAtTm9OZXdsaW5lIEM6XFxcXGFjdGlvbnNcXFxcUlVOTkVSX1ZFUlNJT05gLFxuICAgICAgXSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRvY2tlcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBJbWFnZUJ1aWxkZXJDb21wb25lbnQoc2NvcGUsIGlkLCB7XG4gICAgICBwbGF0Zm9ybTogJ1dpbmRvd3MnLFxuICAgICAgZGlzcGxheU5hbWU6ICdEb2NrZXInLFxuICAgICAgZGVzY3JpcHRpb246ICdJbnN0YWxsIGxhdGVzdCB2ZXJzaW9uIG9mIERvY2tlcicsXG4gICAgICBjb21tYW5kczogW1xuICAgICAgICAnSW52b2tlLVdlYlJlcXVlc3QgLVVzZUJhc2ljUGFyc2luZyAtVXJpIGh0dHBzOi8vZGVza3RvcC5kb2NrZXIuY29tL3dpbi9tYWluL2FtZDY0L0RvY2tlciUyMERlc2t0b3AlMjBJbnN0YWxsZXIuZXhlIC1PdXRGaWxlIGRvY2tlci1zZXR1cC5leGUnLFxuICAgICAgICAnU3RhcnQtUHJvY2VzcyBcXCdkb2NrZXItc2V0dXAuZXhlXFwnIC1XYWl0IC1Bcmd1bWVudExpc3QgXFwnL2luc3RhbGwgLS1xdWlldCAtLWFjY2VwdC1saWNlbnNlXFwnJyxcbiAgICAgICAgJ2RlbCBkb2NrZXItc2V0dXAuZXhlJyxcbiAgICAgICAgJ2NtZCAvYyBjdXJsIC13IFwiJXtyZWRpcmVjdF91cmx9XCIgLWZzUyBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2NvbXBvc2UvcmVsZWFzZXMvbGF0ZXN0ID4gJEVudjpURU1QXFxcXGxhdGVzdC1kb2NrZXItY29tcG9zZScsXG4gICAgICAgICckTGF0ZXN0VXJsID0gR2V0LUNvbnRlbnQgJEVudjpURU1QXFxcXGxhdGVzdC1kb2NrZXItY29tcG9zZScsXG4gICAgICAgICckTGF0ZXN0RG9ja2VyQ29tcG9zZSA9ICgkTGF0ZXN0VXJsIC1TcGxpdCBcXCcvXFwnKVstMV0nLFxuICAgICAgICAnSW52b2tlLVdlYlJlcXVlc3QgLVVzZUJhc2ljUGFyc2luZyAtVXJpICBcImh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXIvY29tcG9zZS9yZWxlYXNlcy9kb3dubG9hZC8ke0xhdGVzdERvY2tlckNvbXBvc2V9L2RvY2tlci1jb21wb3NlLVdpbmRvd3MteDg2XzY0LmV4ZVwiIC1PdXRGaWxlICRFbnY6UHJvZ3JhbUZpbGVzXFxcXERvY2tlclxcXFxkb2NrZXItY29tcG9zZS5leGUnLFxuICAgICAgICAnY29weSAkRW52OlByb2dyYW1GaWxlc1xcXFxEb2NrZXJcXFxcZG9ja2VyLWNvbXBvc2UuZXhlICRFbnY6UHJvZ3JhbUZpbGVzXFxcXERvY2tlclxcXFxjbGktcGx1Z2luc1xcXFxkb2NrZXItY29tcG9zZS5leGUnLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZXh0cmFDZXJ0aWZpY2F0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBJbWFnZUJ1aWxkZXJDb21wb25lbnQoc2NvcGUsIGlkLCB7XG4gICAgICBwbGF0Zm9ybTogJ1dpbmRvd3MnLFxuICAgICAgZGlzcGxheU5hbWU6ICdFeHRyYSBjZXJ0aWZpY2F0ZXMnLFxuICAgICAgZGVzY3JpcHRpb246ICdJbnN0YWxsIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlcyB0byBwcm92aWRlIGFjY2VzcyB0byBHaXRIdWIgRW50ZXJwcmlzZSBTZXJ2ZXInLFxuICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgJ0ltcG9ydC1DZXJ0aWZpY2F0ZSAtRmlsZVBhdGggY2VydHNcXFxcY2VydHMucGVtIC1DZXJ0U3RvcmVMb2NhdGlvbiBDZXJ0OlxcXFxMb2NhbE1hY2hpbmVcXFxcUm9vdCcsXG4gICAgICBdLFxuICAgICAgYXNzZXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwYXRoOiAnY2VydHMnLFxuICAgICAgICAgIGFzc2V0OiBuZXcgczNfYXNzZXRzLkFzc2V0KHNjb3BlLCBgJHtpZH0gQXNzZXRgLCB7IHBhdGggfSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FilterFailedBuildsFunction = void 0;
4
- // ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
5
- const path = require("path");
6
- const lambda = require("aws-cdk-lib/aws-lambda");
7
- /**
8
- * An AWS Lambda function which executes src/providers/image-builders/aws-image-builder/filter-failed-builds.
9
- */
10
- class FilterFailedBuildsFunction extends lambda.Function {
11
- constructor(scope, id, props) {
12
- super(scope, id, {
13
- description: 'src/providers/image-builders/aws-image-builder/filter-failed-builds.lambda.ts',
14
- ...props,
15
- runtime: new lambda.Runtime('nodejs16.x', lambda.RuntimeFamily.NODEJS),
16
- handler: 'index.handler',
17
- code: lambda.Code.fromAsset(path.join(__dirname, '../../../../assets/providers/image-builders/aws-image-builder/filter-failed-builds.lambda')),
18
- });
19
- this.addEnvironment('AWS_NODEJS_CONNECTION_REUSE_ENABLED', '1', { removeInEdge: true });
20
- }
21
- }
22
- exports.FilterFailedBuildsFunction = FilterFailedBuildsFunction;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWZhaWxlZC1idWlsZHMtZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2ltYWdlLWJ1aWxkZXJzL2F3cy1pbWFnZS1idWlsZGVyL2ZpbHRlci1mYWlsZWQtYnVpbGRzLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZFQUE2RTtBQUM3RSw2QkFBNkI7QUFDN0IsaURBQWlEO0FBU2pEOztHQUVHO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxNQUFNLENBQUMsUUFBUTtJQUM3RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVDO1FBQy9FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLCtFQUErRTtZQUM1RixHQUFHLEtBQUs7WUFDUixPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN0RSxPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsMkZBQTJGLENBQUMsQ0FBQztTQUMvSSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7Q0FDRjtBQVhELGdFQVdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy5qcyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BzIGZvciBGaWx0ZXJGYWlsZWRCdWlsZHNGdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckZhaWxlZEJ1aWxkc0Z1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9wcm92aWRlcnMvaW1hZ2UtYnVpbGRlcnMvYXdzLWltYWdlLWJ1aWxkZXIvZmlsdGVyLWZhaWxlZC1idWlsZHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBGaWx0ZXJGYWlsZWRCdWlsZHNGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogRmlsdGVyRmFpbGVkQnVpbGRzRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZGVzY3JpcHRpb246ICdzcmMvcHJvdmlkZXJzL2ltYWdlLWJ1aWxkZXJzL2F3cy1pbWFnZS1idWlsZGVyL2ZpbHRlci1mYWlsZWQtYnVpbGRzLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMTYueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uLy4uL2Fzc2V0cy9wcm92aWRlcnMvaW1hZ2UtYnVpbGRlcnMvYXdzLWltYWdlLWJ1aWxkZXIvZmlsdGVyLWZhaWxlZC1idWlsZHMubGFtYmRhJykpLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoJ0FXU19OT0RFSlNfQ09OTkVDVElPTl9SRVVTRV9FTkFCTEVEJywgJzEnLCB7IHJlbW92ZUluRWRnZTogdHJ1ZSB9KTtcbiAgfVxufSJdfQ==
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /* eslint-disable-next-line import/no-extraneous-dependencies */
4
- const AWS = require("aws-sdk");
5
- const sns = new AWS.SNS();
6
- exports.handler = async function (event) {
7
- console.log(JSON.stringify(event));
8
- for (const record of event.Records) {
9
- let message = JSON.parse(record.Sns.Message);
10
- if (message.state.status === 'FAILED') {
11
- await sns.publish({
12
- TopicArn: process.env.TARGET_TOPIC_ARN,
13
- Message: record.Sns.Message,
14
- }).promise();
15
- }
16
- }
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWZhaWxlZC1idWlsZHMubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9pbWFnZS1idWlsZGVycy9hd3MtaW1hZ2UtYnVpbGRlci9maWx0ZXItZmFpbGVkLWJ1aWxkcy5sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxnRUFBZ0U7QUFDaEUsK0JBQStCO0FBRS9CLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRTFCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxXQUFVLEtBQXlCO0lBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25DLEtBQUssTUFBTSxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUNsQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDckMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUNoQixRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Z0JBQ3RDLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU87YUFDNUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2Q7S0FDRjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMsaW1wb3J0L25vLXVucmVzb2x2ZWQgKi9cbmltcG9ydCAqIGFzIEFXU0xhbWJkYSBmcm9tICdhd3MtbGFtYmRhJztcbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcblxuY29uc3Qgc25zID0gbmV3IEFXUy5TTlMoKTtcblxuZXhwb3J0cy5oYW5kbGVyID0gYXN5bmMgZnVuY3Rpb24oZXZlbnQ6IEFXU0xhbWJkYS5TTlNFdmVudCkge1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShldmVudCkpO1xuICBmb3IgKGNvbnN0IHJlY29yZCBvZiBldmVudC5SZWNvcmRzKSB7XG4gICAgbGV0IG1lc3NhZ2UgPSBKU09OLnBhcnNlKHJlY29yZC5TbnMuTWVzc2FnZSk7XG4gICAgaWYgKG1lc3NhZ2Uuc3RhdGUuc3RhdHVzID09PSAnRkFJTEVEJykge1xuICAgICAgYXdhaXQgc25zLnB1Ymxpc2goe1xuICAgICAgICBUb3BpY0FybjogcHJvY2Vzcy5lbnYuVEFSR0VUX1RPUElDX0FSTixcbiAgICAgICAgTWVzc2FnZTogcmVjb3JkLlNucy5NZXNzYWdlLFxuICAgICAgfSkucHJvbWlzZSgpO1xuICAgIH1cbiAgfVxufTtcbiJdfQ==
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VersionerFunction = void 0;
4
- // ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
5
- const path = require("path");
6
- const lambda = require("aws-cdk-lib/aws-lambda");
7
- /**
8
- * An AWS Lambda function which executes src/providers/image-builders/aws-image-builder/versioner.
9
- */
10
- class VersionerFunction extends lambda.Function {
11
- constructor(scope, id, props) {
12
- super(scope, id, {
13
- description: 'src/providers/image-builders/aws-image-builder/versioner.lambda.ts',
14
- ...props,
15
- runtime: new lambda.Runtime('nodejs16.x', lambda.RuntimeFamily.NODEJS),
16
- handler: 'index.handler',
17
- code: lambda.Code.fromAsset(path.join(__dirname, '../../../../assets/providers/image-builders/aws-image-builder/versioner.lambda')),
18
- });
19
- this.addEnvironment('AWS_NODEJS_CONNECTION_REUSE_ENABLED', '1', { removeInEdge: true });
20
- }
21
- }
22
- exports.VersionerFunction = VersionerFunction;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmVyLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9pbWFnZS1idWlsZGVycy9hd3MtaW1hZ2UtYnVpbGRlci92ZXJzaW9uZXItZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkVBQTZFO0FBQzdFLDZCQUE2QjtBQUM3QixpREFBaUQ7QUFTakQ7O0dBRUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLE1BQU0sQ0FBQyxRQUFRO0lBQ3BELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsb0VBQW9FO1lBQ2pGLEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnRkFBZ0YsQ0FBQyxDQUFDO1NBQ3BJLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBWEQsOENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLmpzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIFZlcnNpb25lckZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbmVyRnVuY3Rpb25Qcm9wcyBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbk9wdGlvbnMge1xufVxuXG4vKipcbiAqIEFuIEFXUyBMYW1iZGEgZnVuY3Rpb24gd2hpY2ggZXhlY3V0ZXMgc3JjL3Byb3ZpZGVycy9pbWFnZS1idWlsZGVycy9hd3MtaW1hZ2UtYnVpbGRlci92ZXJzaW9uZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZXJzaW9uZXJGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogVmVyc2lvbmVyRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZGVzY3JpcHRpb246ICdzcmMvcHJvdmlkZXJzL2ltYWdlLWJ1aWxkZXJzL2F3cy1pbWFnZS1idWlsZGVyL3ZlcnNpb25lci5sYW1iZGEudHMnLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBydW50aW1lOiBuZXcgbGFtYmRhLlJ1bnRpbWUoJ25vZGVqczE2LngnLCBsYW1iZGEuUnVudGltZUZhbWlseS5OT0RFSlMpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi8uLi8uLi9hc3NldHMvcHJvdmlkZXJzL2ltYWdlLWJ1aWxkZXJzL2F3cy1pbWFnZS1idWlsZGVyL3ZlcnNpb25lci5sYW1iZGEnKSksXG4gICAgfSk7XG4gICAgdGhpcy5hZGRFbnZpcm9ubWVudCgnQVdTX05PREVKU19DT05ORUNUSU9OX1JFVVNFX0VOQUJMRUQnLCAnMScsIHsgcmVtb3ZlSW5FZGdlOiB0cnVlIH0pO1xuICB9XG59Il19
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handler = void 0;
4
- /* eslint-disable import/no-extraneous-dependencies */
5
- const AWS = require("aws-sdk");
6
- const semver_1 = require("semver");
7
- const lambda_helpers_1 = require("../../../lambda-helpers");
8
- const ib = new AWS.Imagebuilder();
9
- /* eslint-disable @typescript-eslint/no-require-imports, import/no-extraneous-dependencies */
10
- async function handler(event, context) {
11
- console.log(JSON.stringify({ ...event, ResponseURL: '...' }));
12
- try {
13
- const objectType = event.ResourceProperties.ObjectType;
14
- const objectName = event.ResourceProperties.ObjectName;
15
- switch (event.RequestType) {
16
- case 'Create':
17
- case 'Update':
18
- let version = '1.0.0';
19
- let allVersions = [];
20
- try {
21
- switch (objectType) {
22
- case 'Component': {
23
- let result = {};
24
- do {
25
- result = await ib.listComponents({
26
- filters: [{
27
- name: 'name',
28
- values: [objectName],
29
- }],
30
- nextToken: result.nextToken,
31
- }).promise();
32
- allVersions = allVersions.concat(result.componentVersionList.map(i => i.version || '1.0.0'));
33
- } while (result.nextToken);
34
- break;
35
- }
36
- case 'ImageRecipe': {
37
- let result = {};
38
- do {
39
- result = await ib.listImageRecipes({
40
- filters: [{
41
- name: 'name',
42
- values: [objectName],
43
- }],
44
- nextToken: result.nextToken,
45
- }).promise();
46
- allVersions = allVersions.concat(result.imageRecipeSummaryList.map(i => i.arn?.split('/').pop() || '1.0.0'));
47
- } while (result.nextToken);
48
- break;
49
- }
50
- case 'ContainerRecipe': {
51
- let result = {};
52
- do {
53
- result = await ib.listContainerRecipes({
54
- filters: [{
55
- name: 'name',
56
- values: [objectName],
57
- }],
58
- nextToken: result.nextToken,
59
- }).promise();
60
- allVersions = allVersions.concat(result.containerRecipeSummaryList.map(i => i.arn?.split('/').pop() || '1.0.0'));
61
- } while (result.nextToken);
62
- break;
63
- }
64
- }
65
- }
66
- catch (e) {
67
- if (e.code !== 'ResourceNotFoundException') {
68
- throw e;
69
- }
70
- else {
71
- console.log('Resource not found, assuming first version');
72
- }
73
- }
74
- version = (0, semver_1.maxSatisfying)(allVersions, '>=0.0.0');
75
- if (version === null) {
76
- version = '1.0.0';
77
- }
78
- console.log(`Found versions ${allVersions} -- latest is ${version}`);
79
- version = (0, semver_1.inc)(version, 'patch');
80
- if (version === null) {
81
- throw new Error('Unable to bump version');
82
- }
83
- await (0, lambda_helpers_1.customResourceRespond)(event, 'SUCCESS', 'OK', version, {});
84
- break;
85
- case 'Delete':
86
- await (0, lambda_helpers_1.customResourceRespond)(event, 'SUCCESS', 'OK', event.PhysicalResourceId, {});
87
- break;
88
- }
89
- }
90
- catch (e) {
91
- console.log(e);
92
- await (0, lambda_helpers_1.customResourceRespond)(event, 'FAILED', e.message || 'Internal Error', context.logStreamName, {});
93
- }
94
- }
95
- exports.handler = handler;
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmVyLmxhbWJkYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvaW1hZ2UtYnVpbGRlcnMvYXdzLWltYWdlLWJ1aWxkZXIvdmVyc2lvbmVyLmxhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxzREFBc0Q7QUFDdEQsK0JBQStCO0FBQy9CLG1DQUE0QztBQUM1Qyw0REFBZ0U7QUFFaEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7QUFFbEMsNkZBQTZGO0FBQ3RGLEtBQUssVUFBVSxPQUFPLENBQUMsS0FBa0QsRUFBRSxPQUEwQjtJQUMxRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTlELElBQUk7UUFDRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7UUFFdkQsUUFBUSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3pCLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxRQUFRO2dCQUNYLElBQUksT0FBTyxHQUFrQixPQUFPLENBQUM7Z0JBQ3JDLElBQUksV0FBVyxHQUFhLEVBQUUsQ0FBQztnQkFDL0IsSUFBSTtvQkFDRixRQUFRLFVBQVUsRUFBRTt3QkFDbEIsS0FBSyxXQUFXLENBQUMsQ0FBQzs0QkFDaEIsSUFBSSxNQUFNLEdBQTRDLEVBQUUsQ0FBQzs0QkFDekQsR0FBRztnQ0FDRCxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDO29DQUMvQixPQUFPLEVBQUUsQ0FBQzs0Q0FDUixJQUFJLEVBQUUsTUFBTTs0Q0FDWixNQUFNLEVBQUUsQ0FBQyxVQUFVLENB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RWpFLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsTUFBTSxJQUFBLHNDQUFxQixFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEYsTUFBTTtTQUNUO0tBQ0Y7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixNQUFNLElBQUEsc0NBQXFCLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRyxDQUFXLENBQUMsT0FBTyxJQUFJLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDbkg7QUFDSCxDQUFDO0FBdEZELDBCQXNGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMsaW1wb3J0L25vLXVucmVzb2x2ZWQgKi9cbmltcG9ydCAqIGFzIEFXU0xhbWJkYSBmcm9tICdhd3MtbGFtYmRhJztcbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0ICogYXMgQVdTIGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHsgaW5jLCBtYXhTYXRpc2Z5aW5nIH0gZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IGN1c3RvbVJlc291cmNlUmVzcG9uZCB9IGZyb20gJy4uLy4uLy4uL2xhbWJkYS1oZWxwZXJzJztcblxuY29uc3QgaWIgPSBuZXcgQVdTLkltYWdlYnVpbGRlcigpO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzLCBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LCBjb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dCkge1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IC4uLmV2ZW50LCBSZXNwb25zZVVSTDogJy4uLicgfSkpO1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgb2JqZWN0VHlwZSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5PYmplY3RUeXBlO1xuICAgIGNvbnN0IG9iamVjdE5hbWUgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuT2JqZWN0TmFtZTtcblxuICAgIHN3aXRjaCAoZXZlbnQuUmVxdWVzdFR5cGUpIHtcbiAgICAgIGNhc2UgJ0NyZWF0ZSc6XG4gICAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgICBsZXQgdmVyc2lvbjogc3RyaW5nIHwgbnVsbCA9ICcxLjAuMCc7XG4gICAgICAgIGxldCBhbGxWZXJzaW9uczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzd2l0Y2ggKG9iamVjdFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0NvbXBvbmVudCc6IHtcbiAgICAgICAgICAgICAgbGV0IHJlc3VsdDogQVdTLkltYWdlYnVpbGRlci5MaXN0Q29tcG9uZW50c1Jlc3BvbnNlID0ge307XG4gICAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBpYi5saXN0Q29tcG9uZW50cyh7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJzOiBbe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlczogW29iamVjdE5hbWVdLFxuICAgICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICAgICAgICBuZXh0VG9rZW46IHJlc3VsdC5uZXh0VG9rZW4sXG4gICAgICAgICAgICAgICAgfSkucHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIGFsbFZlcnNpb25zID0gYWxsVmVyc2lvbnMuY29uY2F0KHJlc3VsdC5jb21wb25lbnRWZXJzaW9uTGlzdCEubWFwKGkgPT4gaS52ZXJzaW9uIHx8ICcxLjAuMCcpKTtcbiAgICAgICAgICAgICAgfSB3aGlsZSAocmVzdWx0Lm5leHRUb2tlbik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnSW1hZ2VSZWNpcGUnOiB7XG4gICAgICAgICAgICAgIGxldCByZXN1bHQ6IEFXUy5JbWFnZWJ1aWxkZXIuTGlzdEltYWdlUmVjaXBlc1Jlc3BvbnNlID0ge307XG4gICAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBpYi5saXN0SW1hZ2VSZWNpcGVzKHtcbiAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiBbb2JqZWN0TmFtZV0sXG4gICAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICAgIG5leHRUb2tlbjogcmVzdWx0Lm5leHRUb2tlbixcbiAgICAgICAgICAgICAgICB9KS5wcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgYWxsVmVyc2lvbnMgPSBhbGxWZXJzaW9ucy5jb25jYXQocmVzdWx0LmltYWdlUmVjaXBlU3VtbWFyeUxpc3QhLm1hcChpID0+IGkuYXJuPy5zcGxpdCgnLycpLnBvcCgpIHx8ICcxLjAuMCcpKTtcbiAgICAgICAgICAgICAgfSB3aGlsZSAocmVzdWx0Lm5leHRUb2tlbik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQ29udGFpbmVyUmVjaXBlJzoge1xuICAgICAgICAgICAgICBsZXQgcmVzdWx0OiBBV1MuSW1hZ2VidWlsZGVyLkxpc3RDb250YWluZXJSZWNpcGVzUmVzcG9uc2UgPSB7fTtcbiAgICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGliLmxpc3RDb250YWluZXJSZWNpcGVzKHtcbiAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiBbb2JqZWN0TmFtZV0sXG4gICAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICAgIG5leHRUb2tlbjogcmVzdWx0Lm5leHRUb2tlbixcbiAgICAgICAgICAgICAgICB9KS5wcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgYWxsVmVyc2lvbnMgPSBhbGxWZXJzaW9ucy5jb25jYXQocmVzdWx0LmNvbnRhaW5lclJlY2lwZVN1bW1hcnlMaXN0IS5tYXAoaSA9PiBpLmFybj8uc3BsaXQoJy8nKS5wb3AoKSB8fCAnMS4wLjAnKSk7XG4gICAgICAgICAgICAgIH0gd2hpbGUgKHJlc3VsdC5uZXh0VG9rZW4pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoKGUgYXMgYW55KS5jb2RlICE9PSAnUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXNvdXJjZSBub3QgZm91bmQsIGFzc3VtaW5nIGZpcnN0IHZlcnNpb24nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2ZXJzaW9uID0gbWF4U2F0aXNmeWluZyhhbGxWZXJzaW9ucywgJz49MC4wLjAnKTtcbiAgICAgICAgaWYgKHZlcnNpb24gPT09IG51bGwpIHtcbiAgICAgICAgICB2ZXJzaW9uID0gJzEuMC4wJztcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhgRm91bmQgdmVyc2lvbnMgJHthbGxWZXJzaW9uc30gLS0gbGF0ZXN0IGlzICR7dmVyc2lvbn1gKTtcblxuICAgICAgICB2ZXJzaW9uID0gaW5jKHZlcnNpb24sICdwYXRjaCcpO1xuICAgICAgICBpZiAodmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGJ1bXAgdmVyc2lvbicpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGN1c3RvbVJlc291cmNlUmVzcG9uZChldmVudCwgJ1NVQ0NFU1MnLCAnT0snLCB2ZXJzaW9uLCB7fSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICBhd2FpdCBjdXN0b21SZXNvdXJjZVJlc3BvbmQoZXZlbnQsICdTVUNDRVNTJywgJ09LJywgZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkLCB7fSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIGF3YWl0IGN1c3RvbVJlc291cmNlUmVzcG9uZChldmVudCwgJ0ZBSUxFRCcsIChlIGFzIEVycm9yKS5tZXNzYWdlIHx8ICdJbnRlcm5hbCBFcnJvcicsIGNvbnRleHQubG9nU3RyZWFtTmFtZSwge30pO1xuICB9XG59XG4iXX0=