@jjrawlins/cdk-diff-pr-github-action 0.0.1-beta → 0.0.2-beta

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 (92) hide show
  1. package/.jsii +162 -9
  2. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.jsii +163 -10
  3. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.jsii +4070 -0
  4. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.junie/guidelines.md +62 -0
  5. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.tool-versions +3 -0
  6. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.jsii +3946 -0
  7. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.junie/guidelines.md +62 -0
  8. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.tool-versions +3 -0
  9. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.jsii +3917 -0
  10. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.junie/guidelines.md +62 -0
  11. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.tool-versions +3 -0
  12. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/API.md +276 -0
  13. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/LICENSE +202 -0
  14. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/README.md +146 -0
  15. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.d.ts +8 -0
  16. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.js +96 -0
  17. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.d.ts +22 -0
  18. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.js +144 -0
  19. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.d.ts +9 -0
  20. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.js +256 -0
  21. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.d.ts +1 -0
  22. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.js +204 -0
  23. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.d.ts +2 -0
  24. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.js +19 -0
  25. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/package.json +137 -0
  26. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.lock +10 -0
  27. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.sig +1 -0
  28. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/API.md +276 -0
  29. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/LICENSE +202 -0
  30. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/README.md +146 -0
  31. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.d.ts +10 -0
  32. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.js +96 -0
  33. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.d.ts +22 -0
  34. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.js +144 -0
  35. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.d.ts +9 -0
  36. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.js +256 -0
  37. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.d.ts +1 -0
  38. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.js +204 -0
  39. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.d.ts +1 -0
  40. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.js +122 -0
  41. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.d.ts +2 -0
  42. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.js +19 -0
  43. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/package.json +137 -0
  44. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.lock +10 -0
  45. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.sig +1 -0
  46. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/API.md +298 -0
  47. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/LICENSE +202 -0
  48. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/README.md +146 -0
  49. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.d.ts +10 -0
  50. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.js +101 -0
  51. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.d.ts +22 -0
  52. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.js +144 -0
  53. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDriftIamTemplate.d.ts +10 -0
  54. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDriftIamTemplate.js +76 -0
  55. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.d.ts +9 -0
  56. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.js +256 -0
  57. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.d.ts +1 -0
  58. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.js +204 -0
  59. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.d.ts +1 -0
  60. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.js +122 -0
  61. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.d.ts +3 -0
  62. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.js +20 -0
  63. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/package.json +136 -0
  64. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.lock +10 -0
  65. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.sig +1 -0
  66. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/API.md +131 -11
  67. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/README.md +5 -5
  68. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.d.ts +3 -1
  69. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.js +9 -4
  70. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDriftIamTemplate.d.ts +10 -0
  71. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDriftIamTemplate.js +76 -0
  72. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.d.ts +1 -0
  73. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.js +122 -0
  74. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.d.ts +1 -0
  75. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.js +2 -1
  76. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/package.json +1 -2
  77. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.lock +1 -1
  78. package/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.sig +1 -1
  79. package/API.md +125 -5
  80. package/README.md +5 -5
  81. package/lib/CdkDiffIamTemplate.d.ts +3 -1
  82. package/lib/CdkDiffIamTemplate.js +9 -4
  83. package/lib/CdkDiffStackWorkflow.d.ts +2 -2
  84. package/lib/CdkDiffStackWorkflow.js +18 -19
  85. package/lib/CdkDriftIamTemplate.d.ts +10 -0
  86. package/lib/CdkDriftIamTemplate.js +76 -0
  87. package/lib/bin/detect-drift.d.ts +1 -0
  88. package/lib/bin/detect-drift.js +122 -0
  89. package/lib/index.d.ts +1 -0
  90. package/lib/index.js +2 -1
  91. package/package.json +1 -1
  92. package/yalc.lock +1 -1
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
4
+ async function sleep(ms) {
5
+ return new Promise((r) => setTimeout(r, ms));
6
+ }
7
+ async function main() {
8
+ const stackName = process.env.STACK_NAME;
9
+ if (!stackName) {
10
+ console.error('STACK_NAME env var is required');
11
+ process.exit(1);
12
+ }
13
+ // Region and credentials pulled from environment set by actions/configure-aws-credentials
14
+ const client = new client_cloudformation_1.CloudFormationClient({});
15
+ const detect = await client.send(new client_cloudformation_1.DetectStackDriftCommand({ StackName: stackName }));
16
+ if (!detect.StackDriftDetectionId) {
17
+ console.error('Failed to start drift detection');
18
+ process.exit(1);
19
+ }
20
+ const id = detect.StackDriftDetectionId;
21
+ console.log(`Drift detection started: ${id}`);
22
+ let detectionStatus = 'DETECTION_IN_PROGRESS';
23
+ let stackDriftStatus;
24
+ while (detectionStatus === 'DETECTION_IN_PROGRESS') {
25
+ await sleep(5000);
26
+ const res = await client.send(new client_cloudformation_1.DescribeStackDriftDetectionStatusCommand({ StackDriftDetectionId: id }));
27
+ detectionStatus = res.DetectionStatus ?? 'UNKNOWN';
28
+ stackDriftStatus = res.StackDriftStatus;
29
+ console.log(`Detection status: ${detectionStatus}`);
30
+ }
31
+ // Helper to build an HTML report of drifted resources
32
+ const buildHtml = (stack, drifts) => {
33
+ let body = `<h1>Drift report</h1><h2>Stack Name: ${stack}</h2><br>`;
34
+ if (drifts.length === 0) {
35
+ body += 'no drift.';
36
+ return body;
37
+ }
38
+ body += '<table>' +
39
+ '<tr><th>Status</th><th>ID</th><th>Type</th><th>Differences</th></tr>';
40
+ for (const d of drifts) {
41
+ const status = d.StackResourceDriftStatus ?? '-';
42
+ const logicalId = d.LogicalResourceId ?? '-';
43
+ const type = d.ResourceType ?? '-';
44
+ const diffs = (d.PropertyDifferences ?? []).map((pd) => {
45
+ const p = pd.PropertyPath ?? '-';
46
+ const t = pd.DifferenceType ?? '-';
47
+ return `- ${t}: ${p}`;
48
+ }).join('<br>');
49
+ const statusEmoji = status === 'MODIFIED' ? '🟠' : status === 'DELETED' ? '🔴' : status === 'NOT_CHECKED' ? '⚪' : '🟢';
50
+ body += '<tr>' +
51
+ `<td>${statusEmoji} ${status}</td>` +
52
+ `<td>${logicalId}</td>` +
53
+ `<td>${type}</td>` +
54
+ `<td>${diffs}</td>` +
55
+ '</tr>';
56
+ }
57
+ body += '</table>';
58
+ return body;
59
+ };
60
+ async function listDriftedResources() {
61
+ const results = [];
62
+ // Only include resources that are not IN_SYNC
63
+ const filters = ['MODIFIED', 'DELETED', 'NOT_CHECKED'];
64
+ let nextToken = undefined;
65
+ do {
66
+ const resp = await client.send(new client_cloudformation_1.DescribeStackResourceDriftsCommand({
67
+ StackName: stackName,
68
+ NextToken: nextToken,
69
+ StackResourceDriftStatusFilters: filters,
70
+ }));
71
+ if (resp.StackResourceDrifts)
72
+ results.push(...resp.StackResourceDrifts);
73
+ nextToken = resp.NextToken;
74
+ } while (nextToken);
75
+ return results;
76
+ }
77
+ async function postGithubComment(url, token, body) {
78
+ const res = await fetch(url, {
79
+ method: 'POST',
80
+ headers: {
81
+ 'Authorization': `token ${token}`,
82
+ 'Content-Type': 'application/json',
83
+ 'Accept': 'application/vnd.github+json',
84
+ },
85
+ body: JSON.stringify({ body }),
86
+ });
87
+ if (!res.ok) {
88
+ const text = await res.text().catch(() => '');
89
+ console.error(`Failed to post GitHub comment: ${res.status} ${res.statusText} ${text}`);
90
+ }
91
+ }
92
+ // When there is drift, collect details and post a PR comment + step summary
93
+ if (stackDriftStatus !== 'IN_SYNC') {
94
+ console.error(`Drift detected (status: ${stackDriftStatus})`);
95
+ const drifts = await listDriftedResources();
96
+ const html = buildHtml(stackName, drifts);
97
+ // Print to stdout and append to summary if available
98
+ console.log(html);
99
+ const stepSummary = process.env.GITHUB_STEP_SUMMARY;
100
+ if (stepSummary) {
101
+ try {
102
+ const { appendFile } = await Promise.resolve().then(() => require('fs/promises'));
103
+ await appendFile(stepSummary, `${html}\n`, { encoding: 'utf8' });
104
+ }
105
+ catch (e) {
106
+ console.error('Failed to append to GITHUB_STEP_SUMMARY:', e?.message || e);
107
+ }
108
+ }
109
+ const commentUrl = process.env.GITHUB_COMMENT_URL;
110
+ const token = process.env.GITHUB_TOKEN;
111
+ if (commentUrl && token) {
112
+ await postGithubComment(commentUrl, token, html);
113
+ }
114
+ process.exit(1);
115
+ }
116
+ console.log('No drift detected (IN_SYNC)');
117
+ }
118
+ main().catch((e) => {
119
+ console.error(e);
120
+ process.exit(1);
121
+ });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0LWRyaWZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9kZXRlY3QtZHJpZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFPd0M7QUFFeEMsS0FBSyxVQUFVLEtBQUssQ0FBQyxFQUFVO0lBQzdCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDekMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELDBGQUEwRjtJQUMxRixNQUFNLE1BQU0sR0FBRyxJQUFJLDRDQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLCtDQUF1QixDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RixJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTlDLElBQUksZUFBZSxHQUFHLHVCQUF1QixDQUFDO0lB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dXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICBEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kLFxuICBEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZCxcbiAgRGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kT3V0cHV0LFxuICB0eXBlIFN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcblxuYXN5bmMgZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcikge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgbXMpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3Qgc3RhY2tOYW1lID0gcHJvY2Vzcy5lbnYuU1RBQ0tfTkFNRTtcbiAgaWYgKCFzdGFja05hbWUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdTVEFDS19OQU1FIGVudiB2YXIgaXMgcmVxdWlyZWQnKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICAvLyBSZWdpb24gYW5kIGNyZWRlbnRpYWxzIHB1bGxlZCBmcm9tIGVudmlyb25tZW50IHNldCBieSBhY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNcbiAgY29uc3QgY2xpZW50ID0gbmV3IENsb3VkRm9ybWF0aW9uQ2xpZW50KHt9KTtcblxuICBjb25zdCBkZXRlY3QgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgRGV0ZWN0U3RhY2tEcmlmdENvbW1hbmQoeyBTdGFja05hbWU6IHN0YWNrTmFtZSB9KSk7XG4gIGlmICghZGV0ZWN0LlN0YWNrRHJpZnREZXRlY3Rpb25JZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBkcmlmdCBkZXRlY3Rpb24nKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBjb25zdCBpZCA9IGRldGVjdC5TdGFja0RyaWZ0RGV0ZWN0aW9uSWQ7XG4gIGNvbnNvbGUubG9nKGBEcmlmdCBkZXRlY3Rpb24gc3RhcnRlZDogJHtpZH1gKTtcblxuICBsZXQgZGV0ZWN0aW9uU3RhdHVzID0gJ0RFVEVDVElPTl9JTl9QUk9HUkVTUyc7XG4gIGxldCBzdGFja0RyaWZ0U3RhdHVzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgd2hpbGUgKGRldGVjdGlvblN0YXR1cyA9PT0gJ0RFVEVDVElPTl9JTl9QUk9HUkVTUycpIHtcbiAgICBhd2FpdCBzbGVlcCg1MDAwKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kKHsgU3RhY2tEcmlmdERldGVjdGlvbklkOiBpZCB9KSxcbiAgICApO1xuICAgIGRldGVjdGlvblN0YXR1cyA9IHJlcy5EZXRlY3Rpb25TdGF0dXMgPz8gJ1VOS05PV04nO1xuICAgIHN0YWNrRHJpZnRTdGF0dXMgPSByZXMuU3RhY2tEcmlmdFN0YXR1cztcbiAgICBjb25zb2xlLmxvZyhgRGV0ZWN0aW9uIHN0YXR1czogJHtkZXRlY3Rpb25TdGF0dXN9YCk7XG4gIH1cblxuICAvLyBIZWxwZXIgdG8gYnVpbGQgYW4gSFRNTCByZXBvcnQgb2YgZHJpZnRlZCByZXNvdXJjZXNcbiAgY29uc3QgYnVpbGRIdG1sID0gKHN0YWNrOiBzdHJpbmcsIGRyaWZ0czogYW55W10pOiBzdHJpbmcgPT4ge1xuICAgIGxldCBib2R5ID0gYDxoMT5EcmlmdCByZXBvcnQ8L2gxPjxoMj5TdGFjayBOYW1lOiAke3N0YWNrfTwvaDI+PGJyPmA7XG4gICAgaWYgKGRyaWZ0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGJvZHkgKz0gJ25vIGRyaWZ0Lic7XG4gICAgICByZXR1cm4gYm9keTtcbiAgICB9XG4gICAgYm9keSArPSAnPHRhYmxlPicgK1xuICAgICAgJzx0cj48dGg+U3RhdHVzPC90aD48dGg+SUQ8L3RoPjx0aD5UeXBlPC90aD48dGg+RGlmZmVyZW5jZXM8L3RoPjwvdHI+JztcbiAgICBmb3IgKGNvbnN0IGQgb2YgZHJpZnRzKSB7XG4gICAgICBjb25zdCBzdGF0dXMgPSBkLlN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyA/PyAnLSc7XG4gICAgICBjb25zdCBsb2dpY2FsSWQgPSBkLkxvZ2ljYWxSZXNvdXJjZUlkID8/ICctJztcbiAgICAgIGNvbnN0IHR5cGUgPSBkLlJlc291cmNlVHlwZSA/PyAnLSc7XG4gICAgICBjb25zdCBkaWZmcyA9IChkLlByb3BlcnR5RGlmZmVyZW5jZXMgPz8gW10pLm1hcCgocGQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwID0gcGQuUHJvcGVydHlQYXRoID8/ICctJztcbiAgICAgICAgY29uc3QgdCA9IHBkLkRpZmZlcmVuY2VUeXBlID8/ICctJztcbiAgICAgICAgcmV0dXJuIGAtICR7dH06ICR7cH1gO1xuICAgICAgfSkuam9pbignPGJyPicpO1xuICAgICAgY29uc3Qgc3RhdHVzRW1vamkgPSBzdGF0dXMgPT09ICdNT0RJRklFRCcgPyAn8J+foCcgOiBzdGF0dXMgPT09ICdERUxFVEVEJyA/ICfwn5S0JyA6IHN0YXR1cyA9PT0gJ05PVF9DSEVDS0VEJyA/ICfimqonIDogJ/Cfn6InO1xuICAgICAgYm9keSArPSAnPHRyPicgK1xuICAgICAgICBgPHRkPiR7c3RhdHVzRW1vaml9ICR7c3RhdHVzfTwvdGQ+YCArXG4gICAgICAgIGA8dGQ+JHtsb2dpY2FsSWR9PC90ZD5gICtcbiAgICAgICAgYDx0ZD4ke3R5cGV9PC90ZD5gICtcbiAgICAgICAgYDx0ZD4ke2RpZmZzfTwvdGQ+YCArXG4gICAgICAgICc8L3RyPic7XG4gICAgfVxuICAgIGJvZHkgKz0gJzwvdGFibGU+JztcbiAgICByZXR1cm4gYm9keTtcbiAgfTtcblxuICBhc3luYyBmdW5jdGlvbiBsaXN0RHJpZnRlZFJlc291cmNlcygpOiBQcm9taXNlPGFueVtdPiB7XG4gICAgY29uc3QgcmVzdWx0czogYW55W10gPSBbXTtcbiAgICAvLyBPbmx5IGluY2x1ZGUgcmVzb3VyY2VzIHRoYXQgYXJlIG5vdCBJTl9TWU5DXG4gICAgY29uc3QgZmlsdGVyczogU3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzW10gPSBbJ01PRElGSUVEJywgJ0RFTEVURUQnLCAnTk9UX0NIRUNLRUQnXTtcbiAgICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZG8ge1xuICAgICAgY29uc3QgcmVzcDogRGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZE91dHB1dCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICAgIE5leHRUb2tlbjogbmV4dFRva2VuLFxuICAgICAgICBTdGFja1Jlc291cmNlRHJpZnRTdGF0dXNGaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgfSkpO1xuICAgICAgaWYgKHJlc3AuU3RhY2tSZXNvdXJjZURyaWZ0cykgcmVzdWx0cy5wdXNoKC4uLnJlc3AuU3RhY2tSZXNvdXJjZURyaWZ0cyk7XG4gICAgICBuZXh0VG9rZW4gPSByZXNwLk5leHRUb2tlbjtcbiAgICB9IHdoaWxlIChuZXh0VG9rZW4pO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcG9zdEdpdGh1YkNvbW1lbnQodXJsOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIGJvZHk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdBdXRob3JpemF0aW9uJzogYHRva2VuICR7dG9rZW59YCxcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi92bmQuZ2l0aHViK2pzb24nLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgYm9keSB9KSxcbiAgICB9KTtcbiAgICBpZiAoIXJlcy5vaykge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlcy50ZXh0KCkuY2F0Y2goKCkgPT4gJycpO1xuICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHBvc3QgR2l0SHViIGNvbW1lbnQ6ICR7cmVzLnN0YXR1c30gJHtyZXMuc3RhdHVzVGV4dH0gJHt0ZXh0fWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdoZW4gdGhlcmUgaXMgZHJpZnQsIGNvbGxlY3QgZGV0YWlscyBhbmQgcG9zdCBhIFBSIGNvbW1lbnQgKyBzdGVwIHN1bW1hcnlcbiAgaWYgKHN0YWNrRHJpZnRTdGF0dXMgIT09ICdJTl9TWU5DJykge1xuICAgIGNvbnNvbGUuZXJyb3IoYERyaWZ0IGRldGVjdGVkIChzdGF0dXM6ICR7c3RhY2tEcmlmdFN0YXR1c30pYCk7XG4gICAgY29uc3QgZHJpZnRzID0gYXdhaXQgbGlzdERyaWZ0ZWRSZXNvdXJjZXMoKTtcbiAgICBjb25zdCBodG1sID0gYnVpbGRIdG1sKHN0YWNrTmFtZSwgZHJpZnRzKTtcblxuICAgIC8vIFByaW50IHRvIHN0ZG91dCBhbmQgYXBwZW5kIHRvIHN1bW1hcnkgaWYgYXZhaWxhYmxlXG4gICAgY29uc29sZS5sb2coaHRtbCk7XG4gICAgY29uc3Qgc3RlcFN1bW1hcnkgPSBwcm9jZXNzLmVudi5HSVRIVUJfU1RFUF9TVU1NQVJZO1xuICAgIGlmIChzdGVwU3VtbWFyeSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBhcHBlbmRGaWxlIH0gPSBhd2FpdCBpbXBvcnQoJ2ZzL3Byb21pc2VzJyk7XG4gICAgICAgIGF3YWl0IGFwcGVuZEZpbGUoc3RlcFN1bW1hcnksIGAke2h0bWx9XFxuYCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBhcHBlbmQgdG8gR0lUSFVCX1NURVBfU1VNTUFSWTonLCBlPy5tZXNzYWdlIHx8IGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbW1lbnRVcmwgPSBwcm9jZXNzLmVudi5HSVRIVUJfQ09NTUVOVF9VUkw7XG4gICAgY29uc3QgdG9rZW4gPSBwcm9jZXNzLmVudi5HSVRIVUJfVE9LRU47XG4gICAgaWYgKGNvbW1lbnRVcmwgJiYgdG9rZW4pIHtcbiAgICAgIGF3YWl0IHBvc3RHaXRodWJDb21tZW50KGNvbW1lbnRVcmwsIHRva2VuLCBodG1sKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbiAgY29uc29sZS5sb2coJ05vIGRyaWZ0IGRldGVjdGVkIChJTl9TWU5DKScpO1xufVxuXG5tYWluKCkuY2F0Y2goKGUpID0+IHtcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufSk7XG4iXX0=
package/lib/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './CdkDiffStackWorkflow';
2
2
  export * from './CdkDiffIamTemplate';
3
+ export * from './CdkDriftIamTemplate';
package/lib/index.js CHANGED
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./CdkDiffStackWorkflow"), exports);
18
18
  __exportStar(require("./CdkDiffIamTemplate"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF1QztBQUN2Qyx1REFBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0Nka0RpZmZTdGFja1dvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vQ2RrRGlmZklhbVRlbXBsYXRlJztcbiJdfQ==
19
+ __exportStar(require("./CdkDriftIamTemplate"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF1QztBQUN2Qyx1REFBcUM7QUFDckMsd0RBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9DZGtEaWZmU3RhY2tXb3JrZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL0Nka0RpZmZJYW1UZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL0Nka0RyaWZ0SWFtVGVtcGxhdGUnO1xuIl19
package/package.json CHANGED
@@ -102,7 +102,7 @@
102
102
  },
103
103
  "main": "lib/index.js",
104
104
  "license": "Apache-2.0",
105
- "version": "0.0.1-beta",
105
+ "version": "0.0.2-beta",
106
106
  "jest": {
107
107
  "coverageProvider": "v8",
108
108
  "testMatch": [
package/yalc.lock CHANGED
@@ -3,7 +3,7 @@
3
3
  "packages": {
4
4
  "@jjrawlins/cdk-diff-pr-github-action": {
5
5
  "version": "0.0.0",
6
- "signature": "621e5901e87edfeab75d768d39765577",
6
+ "signature": "51af33bb4e77689c6fcf023c37a03c3d",
7
7
  "file": true
8
8
  }
9
9
  }