@mapbox/cloudfriend 9.2.0 → 9.2.1

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 (111) hide show
  1. package/changelog.md +4 -0
  2. package/coverage/clover.xml +598 -0
  3. package/coverage/coverage-final.json +32 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +87 -0
  6. package/coverage/lcov-report/cloudfriend/bin/build-template.js.html +130 -0
  7. package/coverage/lcov-report/cloudfriend/bin/index.html +131 -0
  8. package/coverage/lcov-report/cloudfriend/bin/validate-template.js.html +142 -0
  9. package/coverage/lcov-report/cloudfriend/index.html +116 -0
  10. package/coverage/lcov-report/cloudfriend/index.js.html +307 -0
  11. package/coverage/lcov-report/cloudfriend/lib/build.js.html +217 -0
  12. package/coverage/lcov-report/cloudfriend/lib/conditions.js.html +430 -0
  13. package/coverage/lcov-report/cloudfriend/lib/index.html +206 -0
  14. package/coverage/lcov-report/cloudfriend/lib/intrinsic.js.html +979 -0
  15. package/coverage/lcov-report/cloudfriend/lib/merge.js.html +478 -0
  16. package/coverage/lcov-report/cloudfriend/lib/pseudo.js.html +370 -0
  17. package/coverage/lcov-report/cloudfriend/lib/rules.js.html +349 -0
  18. package/coverage/lcov-report/cloudfriend/lib/shortcuts/cross-account-role.js.html +244 -0
  19. package/coverage/lcov-report/cloudfriend/lib/shortcuts/event-lambda.js.html +367 -0
  20. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-database.js.html +286 -0
  21. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-json-table.js.html +235 -0
  22. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-orc-table.js.html +226 -0
  23. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-parquet-table.js.html +268 -0
  24. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-presto-view.js.html +358 -0
  25. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-spark-view.js.html +241 -0
  26. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-table.js.html +481 -0
  27. package/coverage/lcov-report/cloudfriend/lib/shortcuts/hookshot.js.html +1504 -0
  28. package/coverage/lcov-report/cloudfriend/lib/shortcuts/index.html +416 -0
  29. package/coverage/lcov-report/cloudfriend/lib/shortcuts/index.js.html +154 -0
  30. package/coverage/lcov-report/cloudfriend/lib/shortcuts/kinesis-firehose-base.js.html +418 -0
  31. package/coverage/lcov-report/cloudfriend/lib/shortcuts/lambda.js.html +832 -0
  32. package/coverage/lcov-report/cloudfriend/lib/shortcuts/log-subscription-lambda.js.html +310 -0
  33. package/coverage/lcov-report/cloudfriend/lib/shortcuts/queue-lambda.js.html +364 -0
  34. package/coverage/lcov-report/cloudfriend/lib/shortcuts/queue.js.html +619 -0
  35. package/coverage/lcov-report/cloudfriend/lib/shortcuts/role.js.html +382 -0
  36. package/coverage/lcov-report/cloudfriend/lib/shortcuts/s3-kinesis-firehose.js.html +568 -0
  37. package/coverage/lcov-report/cloudfriend/lib/shortcuts/scheduled-lambda.js.html +490 -0
  38. package/coverage/lcov-report/cloudfriend/lib/shortcuts/service-role.js.html +307 -0
  39. package/coverage/lcov-report/cloudfriend/lib/shortcuts/stream-lambda.js.html +493 -0
  40. package/coverage/lcov-report/cloudfriend/lib/validate.js.html +154 -0
  41. package/coverage/lcov-report/favicon.png +0 -0
  42. package/coverage/lcov-report/index.html +161 -0
  43. package/coverage/lcov-report/prettify.css +1 -0
  44. package/coverage/lcov-report/prettify.js +2 -0
  45. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  46. package/coverage/lcov-report/sorter.js +210 -0
  47. package/coverage/lcov.info +1240 -0
  48. package/jest.config.js +14 -0
  49. package/package.json +15 -13
  50. package/readme.md +1 -1
  51. package/test/bin.test.js +18 -14
  52. package/test/fixtures/shortcuts/cross-account-role-defaults.json +1 -1
  53. package/test/fixtures/shortcuts/cross-account-role-no-defaults.json +1 -1
  54. package/test/fixtures/shortcuts/event-lambda-defaults.json +1 -1
  55. package/test/fixtures/shortcuts/event-lambda-full.json +1 -1
  56. package/test/fixtures/shortcuts/firehose-defaults.json +1 -1
  57. package/test/fixtures/shortcuts/firehose-with-stream.json +1 -1
  58. package/test/fixtures/shortcuts/glue-database-defaults.json +1 -1
  59. package/test/fixtures/shortcuts/glue-database-no-defaults.json +1 -1
  60. package/test/fixtures/shortcuts/glue-json-table-defaults.json +1 -1
  61. package/test/fixtures/shortcuts/glue-json-table-no-defaults.json +1 -1
  62. package/test/fixtures/shortcuts/glue-orc-table-defaults.json +1 -1
  63. package/test/fixtures/shortcuts/glue-orc-table-no-defaults.json +1 -1
  64. package/test/fixtures/shortcuts/glue-parquet-table-defaults.json +1 -1
  65. package/test/fixtures/shortcuts/glue-parquet-table-no-defaults.json +1 -1
  66. package/test/fixtures/shortcuts/glue-table-defaults.json +1 -1
  67. package/test/fixtures/shortcuts/glue-table-no-defaults.json +1 -1
  68. package/test/fixtures/shortcuts/glue-view-defaults.json +1 -1
  69. package/test/fixtures/shortcuts/glue-view-no-defaults.json +1 -1
  70. package/test/fixtures/shortcuts/hookshot-github-secret-ref.json +1 -1
  71. package/test/fixtures/shortcuts/hookshot-github-secret-string.json +1 -1
  72. package/test/fixtures/shortcuts/hookshot-github.json +1 -1
  73. package/test/fixtures/shortcuts/hookshot-passthrough-access-log-format.json +1 -1
  74. package/test/fixtures/shortcuts/hookshot-passthrough-alarms.json +1 -1
  75. package/test/fixtures/shortcuts/hookshot-passthrough-enhanced-logging.json +1 -1
  76. package/test/fixtures/shortcuts/hookshot-passthrough-full-blown-logging.json +1 -1
  77. package/test/fixtures/shortcuts/hookshot-passthrough-logging.json +1 -1
  78. package/test/fixtures/shortcuts/hookshot-passthrough.json +1 -1
  79. package/test/fixtures/shortcuts/lambda-defaults.json +1 -1
  80. package/test/fixtures/shortcuts/lambda-docker.json +1 -1
  81. package/test/fixtures/shortcuts/lambda-full.json +1 -1
  82. package/test/fixtures/shortcuts/lambda-provided-role.json +1 -1
  83. package/test/fixtures/shortcuts/lambda-zipfile.json +1 -1
  84. package/test/fixtures/shortcuts/log-subscription-lambda-defaults.json +1 -1
  85. package/test/fixtures/shortcuts/log-subscription-lambda-no-defaults.json +1 -1
  86. package/test/fixtures/shortcuts/queue-defaults.json +1 -1
  87. package/test/fixtures/shortcuts/queue-external-topic-ref.json +1 -1
  88. package/test/fixtures/shortcuts/queue-external-topic.json +1 -1
  89. package/test/fixtures/shortcuts/queue-fifo-queuename.json +1 -1
  90. package/test/fixtures/shortcuts/queue-fifo.json +1 -1
  91. package/test/fixtures/shortcuts/queue-full.json +1 -1
  92. package/test/fixtures/shortcuts/queue-lambda-zero.json +1 -1
  93. package/test/fixtures/shortcuts/queue-lambda.json +1 -1
  94. package/test/fixtures/shortcuts/role-defaults.json +1 -1
  95. package/test/fixtures/shortcuts/role-no-defaults.json +1 -1
  96. package/test/fixtures/shortcuts/scheduled-lambda-defaults.json +1 -1
  97. package/test/fixtures/shortcuts/scheduled-lambda-full.json +1 -1
  98. package/test/fixtures/shortcuts/service-role-defaults.json +1 -1
  99. package/test/fixtures/shortcuts/service-role-no-defaults.json +1 -1
  100. package/test/fixtures/shortcuts/service-role-no-url-suffix.json +1 -1
  101. package/test/fixtures/shortcuts/service-role-url-suffix-with-replacement.json +1 -1
  102. package/test/fixtures/shortcuts/service-role-url-suffix.json +1 -1
  103. package/test/fixtures/shortcuts/stream-lambda-defaults.json +1 -1
  104. package/test/fixtures/shortcuts/stream-lambda-no-defaults.json +1 -1
  105. package/test/index.test.js +383 -235
  106. package/test/shortcuts.test.js +1224 -1475
  107. package/.nyc_output/2b544c0b-2830-4ad0-97cd-8e661710b0bb.json +0 -1
  108. package/.nyc_output/65e58b48-bf1c-412d-8dd4-d7b564b12d76.json +0 -1
  109. package/.nyc_output/processinfo/2b544c0b-2830-4ad0-97cd-8e661710b0bb.json +0 -1
  110. package/.nyc_output/processinfo/65e58b48-bf1c-412d-8dd4-d7b564b12d76.json +0 -1
  111. package/.nyc_output/processinfo/index.json +0 -1
package/jest.config.js ADDED
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ testEnvironment: 'node',
5
+ testMatch: ['**/test/*.test.js'],
6
+ collectCoverageFrom: [
7
+ 'index.js',
8
+ 'lib/**/*.js',
9
+ 'bin/**/*.js',
10
+ '!**/node_modules/**'
11
+ ],
12
+ coverageDirectory: 'coverage',
13
+ verbose: true
14
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapbox/cloudfriend",
3
- "version": "9.2.0",
3
+ "version": "9.2.1",
4
4
  "description": "Helper functions for assembling CloudFormation templates in JavaScript",
5
5
  "main": "index.js",
6
6
  "engines": {
@@ -8,11 +8,10 @@
8
8
  },
9
9
  "scripts": {
10
10
  "pretest": "npm run lint && npm run shortcuts-api-doc",
11
- "lint": "eslint index.js test lib bin cloudformation",
11
+ "lint": "eslint index.js test lib bin",
12
12
  "lint:fix": "npm run lint -- --fix",
13
- "test": "nyc tape test/*.test.js | tap-spec",
14
- "test:update": "UPDATE=1 npm run test",
15
- "coverage": "nyc --reporter html tape test/*.test.js && opener coverage/index.html",
13
+ "test": "jest --coverage",
14
+ "test:update": "jest --updateSnapshot",
16
15
  "build-ci-template": "bin/build-template.js cloudformation/ci.template.js > cloudformation/ci.template.json",
17
16
  "shortcuts-api-doc": "jsdoc2md lib/shortcuts/*.js > lib/shortcuts/api.md"
18
17
  },
@@ -35,14 +34,11 @@
35
34
  },
36
35
  "homepage": "https://github.com/mapbox/cloudfriend#readme",
37
36
  "devDependencies": {
38
- "@mapbox/eslint-config-mapbox": "^1.2.1",
39
- "eslint": "^4.18.2",
37
+ "@mapbox/eslint-config-mapbox": "^5.0.1",
38
+ "eslint": "^8.57.0",
40
39
  "eslint-plugin-node": "^6.0.1",
41
- "jsdoc-to-markdown": "^7.1.1",
42
- "nyc": "^14.1.0",
43
- "opener": "^1.4.1",
44
- "tap-spec": "^5.0.0",
45
- "tape": "^4.6.0"
40
+ "jest": "^29.7.0",
41
+ "jsdoc-to-markdown": "^7.1.1"
46
42
  },
47
43
  "dependencies": {
48
44
  "@aws-sdk/client-cloudformation": "^3.848.0",
@@ -50,6 +46,12 @@
50
46
  "redent": "^2.0.0"
51
47
  },
52
48
  "eslintConfig": {
53
- "extends": "@mapbox/eslint-config-mapbox"
49
+ "extends": "@mapbox/eslint-config-mapbox",
50
+ "env": {
51
+ "jest": true
52
+ },
53
+ "ignorePatterns": [
54
+ "test/fixtures/malformed.json"
55
+ ]
54
56
  }
55
57
  }
package/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # cloudfriend
2
2
 
3
- [![Build Status](https://travis-ci.com/mapbox/cloudfriend.svg?branch=master)](https://travis-ci.com/mapbox/cloudfriend)
3
+ [![mapbox/cloudfriend](https://github.com/mapbox/cloudfriend/actions/workflows/test.yml/badge.svg)](https://github.com/mapbox/cloudfriend/actions/workflows/test.yml)
4
4
 
5
5
  Helper functions for assembling CloudFormation templates in JavaScript.
6
6
 
package/test/bin.test.js CHANGED
@@ -1,22 +1,26 @@
1
1
  'use strict';
2
2
 
3
3
  const path = require('path');
4
- const exec = require('child_process').exec;
5
- const test = require('tape');
4
+ const { execFile } = require('child_process');
5
+ const { promisify } = require('util');
6
6
 
7
- test('bin/build-template', (t) => {
7
+ const execFileAsync = promisify(execFile);
8
+
9
+ describe('bin/build-template', () => {
8
10
  const script = path.normalize(__dirname + '/../bin/build-template.js');
9
11
  const template = path.normalize(__dirname + '/fixtures/sync-args.js');
10
- t.test('outputs expected', (q) => {
11
- exec([script, template, '--this', 'that', '-r', 'cn-north-1'].join(' '), (err, stdout, stderr) => {
12
- q.error(err);
13
- q.error(stderr);
14
- const result = JSON.parse(stdout);
15
- q.equal('that', result.this);
16
- q.equal('cn-north-1', result.region);
17
- q.end();
18
- });
12
+
13
+ test('outputs expected', async () => {
14
+ const { stdout, stderr } = await execFileAsync(script, [
15
+ template,
16
+ '--this',
17
+ 'that',
18
+ '-r',
19
+ 'cn-north-1'
20
+ ]);
21
+ expect(stderr).toBeFalsy();
22
+ const result = JSON.parse(stdout);
23
+ expect(result.this).toBe('that');
24
+ expect(result.region).toBe('cn-north-1');
19
25
  });
20
- t.end();
21
26
  });
22
-
@@ -30,4 +30,4 @@
30
30
  }
31
31
  },
32
32
  "Outputs": {}
33
- }
33
+ }
@@ -63,4 +63,4 @@
63
63
  }
64
64
  },
65
65
  "Outputs": {}
66
- }
66
+ }
@@ -199,4 +199,4 @@
199
199
  }
200
200
  },
201
201
  "Outputs": {}
202
- }
202
+ }
@@ -199,4 +199,4 @@
199
199
  }
200
200
  },
201
201
  "Outputs": {}
202
- }
202
+ }
@@ -197,4 +197,4 @@
197
197
  }
198
198
  },
199
199
  "Outputs": {}
200
- }
200
+ }
@@ -231,4 +231,4 @@
231
231
  }
232
232
  },
233
233
  "Outputs": {}
234
- }
234
+ }
@@ -22,4 +22,4 @@
22
22
  }
23
23
  },
24
24
  "Outputs": {}
25
- }
25
+ }
@@ -34,4 +34,4 @@
34
34
  }
35
35
  },
36
36
  "Outputs": {}
37
- }
37
+ }
@@ -45,4 +45,4 @@
45
45
  }
46
46
  },
47
47
  "Outputs": {}
48
- }
48
+ }
@@ -69,4 +69,4 @@
69
69
  }
70
70
  },
71
71
  "Outputs": {}
72
- }
72
+ }
@@ -45,4 +45,4 @@
45
45
  }
46
46
  },
47
47
  "Outputs": {}
48
- }
48
+ }
@@ -69,4 +69,4 @@
69
69
  }
70
70
  },
71
71
  "Outputs": {}
72
- }
72
+ }
@@ -49,4 +49,4 @@
49
49
  }
50
50
  },
51
51
  "Outputs": {}
52
- }
52
+ }
@@ -69,4 +69,4 @@
69
69
  }
70
70
  },
71
71
  "Outputs": {}
72
- }
72
+ }
@@ -37,4 +37,4 @@
37
37
  }
38
38
  },
39
39
  "Outputs": {}
40
- }
40
+ }
@@ -69,4 +69,4 @@
69
69
  }
70
70
  },
71
71
  "Outputs": {}
72
- }
72
+ }
@@ -60,4 +60,4 @@
60
60
  }
61
61
  },
62
62
  "Outputs": {}
63
- }
63
+ }
@@ -88,4 +88,4 @@
88
88
  }
89
89
  },
90
90
  "Outputs": {}
91
- }
91
+ }
@@ -434,4 +434,4 @@
434
434
  }
435
435
  }
436
436
  }
437
- }
437
+ }
@@ -426,4 +426,4 @@
426
426
  "Value": "abc123"
427
427
  }
428
428
  }
429
- }
429
+ }
@@ -436,4 +436,4 @@
436
436
  }
437
437
  }
438
438
  }
439
- }
439
+ }
@@ -416,4 +416,4 @@
416
416
  }
417
417
  }
418
418
  }
419
- }
419
+ }
@@ -414,4 +414,4 @@
414
414
  }
415
415
  }
416
416
  }
417
- }
417
+ }
@@ -414,4 +414,4 @@
414
414
  }
415
415
  }
416
416
  }
417
- }
417
+ }
@@ -133,4 +133,4 @@
133
133
  }
134
134
  },
135
135
  "Outputs": {}
136
- }
136
+ }
@@ -131,4 +131,4 @@
131
131
  }
132
132
  },
133
133
  "Outputs": {}
134
- }
134
+ }
@@ -183,4 +183,4 @@
183
183
  }
184
184
  },
185
185
  "Outputs": {}
186
- }
186
+ }
@@ -133,4 +133,4 @@
133
133
  }
134
134
  },
135
135
  "Outputs": {}
136
- }
136
+ }
@@ -132,4 +132,4 @@
132
132
  }
133
133
  },
134
134
  "Outputs": {}
135
- }
135
+ }
@@ -169,4 +169,4 @@
169
169
  }
170
170
  },
171
171
  "Outputs": {}
172
- }
172
+ }
@@ -169,4 +169,4 @@
169
169
  }
170
170
  },
171
171
  "Outputs": {}
172
- }
172
+ }
@@ -104,4 +104,4 @@
104
104
  }
105
105
  },
106
106
  "Outputs": {}
107
- }
107
+ }
@@ -99,4 +99,4 @@
99
99
  }
100
100
  },
101
101
  "Outputs": {}
102
- }
102
+ }
@@ -92,4 +92,4 @@
92
92
  }
93
93
  },
94
94
  "Outputs": {}
95
- }
95
+ }
@@ -49,4 +49,4 @@
49
49
  }
50
50
  },
51
51
  "Outputs": {}
52
- }
52
+ }
@@ -53,4 +53,4 @@
53
53
  }
54
54
  },
55
55
  "Outputs": {}
56
- }
56
+ }
@@ -118,4 +118,4 @@
118
118
  }
119
119
  },
120
120
  "Outputs": {}
121
- }
121
+ }
@@ -174,4 +174,4 @@
174
174
  }
175
175
  },
176
176
  "Outputs": {}
177
- }
177
+ }
@@ -174,4 +174,4 @@
174
174
  }
175
175
  },
176
176
  "Outputs": {}
177
- }
177
+ }
@@ -24,4 +24,4 @@
24
24
  }
25
25
  },
26
26
  "Outputs": {}
27
- }
27
+ }
@@ -63,4 +63,4 @@
63
63
  }
64
64
  },
65
65
  "Outputs": {}
66
- }
66
+ }
@@ -208,4 +208,4 @@
208
208
  }
209
209
  },
210
210
  "Outputs": {}
211
- }
211
+ }
@@ -166,4 +166,4 @@
166
166
  }
167
167
  },
168
168
  "Outputs": {}
169
- }
169
+ }
@@ -26,4 +26,4 @@
26
26
  }
27
27
  },
28
28
  "Outputs": {}
29
- }
29
+ }
@@ -59,4 +59,4 @@
59
59
  }
60
60
  },
61
61
  "Outputs": {}
62
- }
62
+ }
@@ -26,4 +26,4 @@
26
26
  }
27
27
  },
28
28
  "Outputs": {}
29
- }
29
+ }
@@ -26,4 +26,4 @@
26
26
  }
27
27
  },
28
28
  "Outputs": {}
29
- }
29
+ }
@@ -26,4 +26,4 @@
26
26
  }
27
27
  },
28
28
  "Outputs": {}
29
- }
29
+ }
@@ -179,4 +179,4 @@
179
179
  }
180
180
  },
181
181
  "Outputs": {}
182
- }
182
+ }
@@ -187,4 +187,4 @@
187
187
  }
188
188
  },
189
189
  "Outputs": {}
190
- }
190
+ }