@appland/scanner 1.56.0 → 1.59.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.
Files changed (247) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/built/algorithms/dataStructures/graph/Graph.js +53 -62
  3. package/built/algorithms/dataStructures/graph/GraphEdge.js +13 -16
  4. package/built/algorithms/dataStructures/graph/GraphVertex.js +37 -42
  5. package/built/algorithms/dataStructures/linked-list/LinkedList.js +33 -38
  6. package/built/algorithms/dataStructures/linked-list/LinkedListNode.js +6 -10
  7. package/built/algorithms/graph/depth-first-search/index.js +7 -8
  8. package/built/algorithms/graph/detect-cycle/index.js +15 -16
  9. package/built/algorithms/utils/Comparator.js +19 -21
  10. package/built/analyzer/recordSecrets.js +7 -30
  11. package/built/analyzer/secretsRegexes.js +8 -9
  12. package/built/appMapIndex.js +19 -21
  13. package/built/check.js +17 -21
  14. package/built/checkInstance.js +26 -48
  15. package/built/cli/ci/command.js +61 -156
  16. package/built/cli/ci/options.js +0 -1
  17. package/built/cli/codeVersionArgs.js +0 -1
  18. package/built/cli/exitCode.js +0 -1
  19. package/built/cli/fail.js +2 -3
  20. package/built/cli/merge/command.js +21 -63
  21. package/built/cli/merge/options.js +0 -1
  22. package/built/cli/reportUploadURL.js +2 -3
  23. package/built/cli/resolveAppId.js +34 -85
  24. package/built/cli/scan/command.js +52 -94
  25. package/built/cli/scan/formatReport.js +16 -89
  26. package/built/cli/scan/options.js +0 -1
  27. package/built/cli/scan/scanner.js +38 -117
  28. package/built/cli/scan/singleScan.js +61 -109
  29. package/built/cli/scan/watchScan.js +53 -85
  30. package/built/cli/scan.js +39 -132
  31. package/built/cli/scanArgs.js +0 -1
  32. package/built/cli/scanOptions.js +0 -1
  33. package/built/cli/updateCommitStatus.js +10 -47
  34. package/built/cli/upload/command.js +20 -64
  35. package/built/cli/upload/options.js +0 -1
  36. package/built/cli/upload/pruneAppMap.js +20 -0
  37. package/built/cli/upload.js +93 -172
  38. package/built/cli/validateFile.js +13 -52
  39. package/built/cli.js +34 -21
  40. package/built/configuration/configurationProvider.js +151 -233
  41. package/built/configuration/schema/options.json +76 -76
  42. package/built/configuration/types/checkConfig.js +0 -1
  43. package/built/configuration/types/configuration.js +0 -1
  44. package/built/configuration/types/matchEventConfig.js +0 -1
  45. package/built/configuration/types/matchPatternConfig.js +0 -1
  46. package/built/database/index.js +35 -128
  47. package/built/database/visit.js +20 -68
  48. package/built/errors.js +4 -30
  49. package/built/eventUtil.js +10 -35
  50. package/built/findings.js +3 -4
  51. package/built/integration/appland/app/exists.js +33 -76
  52. package/built/integration/appland/app/listFindingStatus.js +3 -36
  53. package/built/integration/appland/appMap/create.js +38 -89
  54. package/built/integration/appland/location.js +0 -1
  55. package/built/integration/appland/mapset/create.js +34 -85
  56. package/built/integration/appland/retry.js +10 -11
  57. package/built/integration/appland/retryOptions.js +0 -1
  58. package/built/integration/appland/scannerJob/create.js +34 -84
  59. package/built/integration/appland/scannerJob/merge.js +28 -74
  60. package/built/integration/appland/scannerJob.js +0 -1
  61. package/built/integration/github/commitStatus.js +3 -4
  62. package/built/integration/vars.js +1 -2
  63. package/built/openapi/index.js +39 -83
  64. package/built/report/appMapMetadata.js +0 -1
  65. package/built/report/findingSummary.js +0 -1
  66. package/built/report/findingsReport.js +14 -16
  67. package/built/report/scanResults.js +50 -72
  68. package/built/report/scanSummary.js +0 -1
  69. package/built/report/summaryReport.js +12 -13
  70. package/built/ruleChecker.js +146 -297
  71. package/built/rules/authzBeforeAuthn.js +25 -59
  72. package/built/rules/circularDependency.js +69 -101
  73. package/built/rules/deserializationOfUntrustedData.js +29 -63
  74. package/built/rules/execOfUntrustedCommand.js +28 -62
  75. package/built/rules/http-500/metadata.js +0 -1
  76. package/built/rules/http-500/rule.js +2 -3
  77. package/built/rules/illegalPackageDependency.js +16 -18
  78. package/built/rules/incompatibleHttpClientRequest.js +30 -69
  79. package/built/rules/insecureCompare.js +12 -13
  80. package/built/rules/jobNotCancelled.js +13 -45
  81. package/built/rules/lib/hasParameterOrReceiver.js +4 -7
  82. package/built/rules/lib/matchEvent.js +12 -13
  83. package/built/rules/lib/matchPattern.js +6 -7
  84. package/built/rules/lib/metadata.js +0 -1
  85. package/built/rules/lib/parseRuleDescription.js +5 -6
  86. package/built/rules/lib/precedingEvents.js +7 -75
  87. package/built/rules/lib/rpcWithoutProtection.js +5 -28
  88. package/built/rules/lib/sanitizesData.js +0 -1
  89. package/built/rules/lib/util.js +34 -73
  90. package/built/rules/logoutWithoutSessionReset.js +24 -58
  91. package/built/rules/missingAuthentication.js +28 -28
  92. package/built/rules/missingContentType.js +8 -9
  93. package/built/rules/nPlusOneQuery.js +35 -87
  94. package/built/rules/queryFromInvalidPackage.js +17 -19
  95. package/built/rules/queryFromView.js +13 -16
  96. package/built/rules/rpcWithoutCircuitBreaker.js +14 -84
  97. package/built/rules/saveWithoutValidation.js +8 -9
  98. package/built/rules/secretInLog.js +29 -92
  99. package/built/rules/slowFunctionCall.js +16 -20
  100. package/built/rules/slowHttpServerRequest.js +9 -11
  101. package/built/rules/slowQuery.js +9 -12
  102. package/built/rules/tooManyJoins.js +26 -51
  103. package/built/rules/tooManyUpdates.js +25 -105
  104. package/built/rules/unbatchedMaterializedQuery.js +26 -30
  105. package/built/rules/updateInGetRequest.js +30 -45
  106. package/built/scope/commandScope.js +24 -144
  107. package/built/scope/httpClientRequestScope.js +11 -98
  108. package/built/scope/httpServerRequestScope.js +11 -98
  109. package/built/scope/rootScope.js +11 -98
  110. package/built/scope/scopeImpl.js +10 -82
  111. package/built/scope/scopeIterator.js +6 -10
  112. package/built/scope/sqlTransactionScope.js +24 -122
  113. package/built/sqlWarning.js +9 -35
  114. package/built/telemetry.js +215 -0
  115. package/built/wellKnownLabels.js +0 -1
  116. package/package.json +7 -3
  117. package/built/algorithms/dataStructures/graph/Graph.js.map +0 -1
  118. package/built/algorithms/dataStructures/graph/GraphEdge.js.map +0 -1
  119. package/built/algorithms/dataStructures/graph/GraphVertex.js.map +0 -1
  120. package/built/algorithms/dataStructures/linked-list/LinkedList.js.map +0 -1
  121. package/built/algorithms/dataStructures/linked-list/LinkedListNode.js.map +0 -1
  122. package/built/algorithms/graph/depth-first-search/index.js.map +0 -1
  123. package/built/algorithms/graph/detect-cycle/index.js.map +0 -1
  124. package/built/algorithms/utils/Comparator.js.map +0 -1
  125. package/built/analyzer/recordSecrets.js.map +0 -1
  126. package/built/analyzer/secretsRegexes.js.map +0 -1
  127. package/built/appMapIndex.js.map +0 -1
  128. package/built/check.js.map +0 -1
  129. package/built/checkInstance.js.map +0 -1
  130. package/built/cli/ci/command.js.map +0 -1
  131. package/built/cli/ci/options.js.map +0 -1
  132. package/built/cli/codeVersionArgs.js.map +0 -1
  133. package/built/cli/exitCode.js.map +0 -1
  134. package/built/cli/fail.js.map +0 -1
  135. package/built/cli/merge/command.js.map +0 -1
  136. package/built/cli/merge/options.js.map +0 -1
  137. package/built/cli/reportUploadURL.js.map +0 -1
  138. package/built/cli/resolveAppId.js.map +0 -1
  139. package/built/cli/scan/command.js.map +0 -1
  140. package/built/cli/scan/formatReport.js.map +0 -1
  141. package/built/cli/scan/options.js.map +0 -1
  142. package/built/cli/scan/scanner.js.map +0 -1
  143. package/built/cli/scan/singleScan.js.map +0 -1
  144. package/built/cli/scan/watchScan.js.map +0 -1
  145. package/built/cli/scan.js.map +0 -1
  146. package/built/cli/scanArgs.js.map +0 -1
  147. package/built/cli/scanOptions.js.map +0 -1
  148. package/built/cli/updateCommitStatus.js.map +0 -1
  149. package/built/cli/upload/command.js.map +0 -1
  150. package/built/cli/upload/options.js.map +0 -1
  151. package/built/cli/upload.js.map +0 -1
  152. package/built/cli/validateFile.js.map +0 -1
  153. package/built/cli.js.map +0 -1
  154. package/built/configuration/configurationProvider.js.map +0 -1
  155. package/built/configuration/types/checkConfig.js.map +0 -1
  156. package/built/configuration/types/configuration.js.map +0 -1
  157. package/built/configuration/types/matchEventConfig.js.map +0 -1
  158. package/built/configuration/types/matchPatternConfig.js.map +0 -1
  159. package/built/database/index.js.map +0 -1
  160. package/built/database/visit.js.map +0 -1
  161. package/built/errors.js.map +0 -1
  162. package/built/eventUtil.js.map +0 -1
  163. package/built/findings.js.map +0 -1
  164. package/built/integration/appland/app/exists.js.map +0 -1
  165. package/built/integration/appland/app/listFindingStatus.js.map +0 -1
  166. package/built/integration/appland/appMap/create.js.map +0 -1
  167. package/built/integration/appland/location.js.map +0 -1
  168. package/built/integration/appland/mapset/create.js.map +0 -1
  169. package/built/integration/appland/retry.js.map +0 -1
  170. package/built/integration/appland/retryOptions.js.map +0 -1
  171. package/built/integration/appland/scannerJob/create.js.map +0 -1
  172. package/built/integration/appland/scannerJob/merge.js.map +0 -1
  173. package/built/integration/appland/scannerJob.js.map +0 -1
  174. package/built/integration/github/commitStatus.js.map +0 -1
  175. package/built/integration/vars.js.map +0 -1
  176. package/built/openapi/index.js.map +0 -1
  177. package/built/openapi/method.js +0 -120
  178. package/built/openapi/method.js.map +0 -1
  179. package/built/openapi/model.js +0 -49
  180. package/built/openapi/model.js.map +0 -1
  181. package/built/openapi/path.js +0 -36
  182. package/built/openapi/path.js.map +0 -1
  183. package/built/openapi/provider.js +0 -133
  184. package/built/openapi/provider.js.map +0 -1
  185. package/built/openapi/response.js +0 -59
  186. package/built/openapi/response.js.map +0 -1
  187. package/built/openapi/rpcRequest.js +0 -130
  188. package/built/openapi/rpcRequest.js.map +0 -1
  189. package/built/openapi/schema.js +0 -42
  190. package/built/openapi/schema.js.map +0 -1
  191. package/built/openapi/securitySchemes.js +0 -32
  192. package/built/openapi/securitySchemes.js.map +0 -1
  193. package/built/openapi/statusCodes.js +0 -68
  194. package/built/openapi/statusCodes.js.map +0 -1
  195. package/built/openapi/util.js +0 -91
  196. package/built/openapi/util.js.map +0 -1
  197. package/built/report/appMapMetadata.js.map +0 -1
  198. package/built/report/findingSummary.js.map +0 -1
  199. package/built/report/findingsReport.js.map +0 -1
  200. package/built/report/scanResults.js.map +0 -1
  201. package/built/report/scanSummary.js.map +0 -1
  202. package/built/report/summaryReport.js.map +0 -1
  203. package/built/ruleChecker.js.map +0 -1
  204. package/built/rules/authzBeforeAuthn.js.map +0 -1
  205. package/built/rules/circularDependency.js.map +0 -1
  206. package/built/rules/deserializationOfUntrustedData.js.map +0 -1
  207. package/built/rules/execOfUntrustedCommand.js.map +0 -1
  208. package/built/rules/http-500/metadata.js.map +0 -1
  209. package/built/rules/http-500/rule.js.map +0 -1
  210. package/built/rules/illegalPackageDependency.js.map +0 -1
  211. package/built/rules/incompatibleHttpClientRequest.js.map +0 -1
  212. package/built/rules/insecureCompare.js.map +0 -1
  213. package/built/rules/jobNotCancelled.js.map +0 -1
  214. package/built/rules/lib/hasParameterOrReceiver.js.map +0 -1
  215. package/built/rules/lib/matchEvent.js.map +0 -1
  216. package/built/rules/lib/matchPattern.js.map +0 -1
  217. package/built/rules/lib/metadata.js.map +0 -1
  218. package/built/rules/lib/parseRuleDescription.js.map +0 -1
  219. package/built/rules/lib/precedingEvents.js.map +0 -1
  220. package/built/rules/lib/rpcWithoutProtection.js.map +0 -1
  221. package/built/rules/lib/sanitizesData.js.map +0 -1
  222. package/built/rules/lib/util.js.map +0 -1
  223. package/built/rules/logoutWithoutSessionReset.js.map +0 -1
  224. package/built/rules/missingAuthentication.js.map +0 -1
  225. package/built/rules/missingContentType.js.map +0 -1
  226. package/built/rules/nPlusOneQuery.js.map +0 -1
  227. package/built/rules/queryFromInvalidPackage.js.map +0 -1
  228. package/built/rules/queryFromView.js.map +0 -1
  229. package/built/rules/rpcWithoutCircuitBreaker.js.map +0 -1
  230. package/built/rules/saveWithoutValidation.js.map +0 -1
  231. package/built/rules/secretInLog.js.map +0 -1
  232. package/built/rules/slowFunctionCall.js.map +0 -1
  233. package/built/rules/slowHttpServerRequest.js.map +0 -1
  234. package/built/rules/slowQuery.js.map +0 -1
  235. package/built/rules/tooManyJoins.js.map +0 -1
  236. package/built/rules/tooManyUpdates.js.map +0 -1
  237. package/built/rules/unbatchedMaterializedQuery.js.map +0 -1
  238. package/built/rules/updateInGetRequest.js.map +0 -1
  239. package/built/scope/commandScope.js.map +0 -1
  240. package/built/scope/httpClientRequestScope.js.map +0 -1
  241. package/built/scope/httpServerRequestScope.js.map +0 -1
  242. package/built/scope/rootScope.js.map +0 -1
  243. package/built/scope/scopeImpl.js.map +0 -1
  244. package/built/scope/scopeIterator.js.map +0 -1
  245. package/built/scope/sqlTransactionScope.js.map +0 -1
  246. package/built/sqlWarning.js.map +0 -1
  247. package/built/wellKnownLabels.js.map +0 -1
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,88 +8,49 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
9
  });
21
10
  };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
50
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
13
  };
52
14
  Object.defineProperty(exports, "__esModule", { value: true });
53
15
  exports.create = void 0;
54
- var url_1 = require("url");
55
- var src_1 = require("@appland/client/dist/src");
56
- var util_1 = require("../../../rules/lib/util");
57
- var retry_1 = __importDefault(require("../retry"));
58
- function create(scanResults, mapsetId, appMapUUIDByFileName, createOptions, retryOptions) {
59
- if (createOptions === void 0) { createOptions = {}; }
60
- if (retryOptions === void 0) { retryOptions = {}; }
61
- return __awaiter(this, void 0, void 0, function () {
16
+ const url_1 = require("url");
17
+ const src_1 = require("@appland/client/dist/src");
18
+ const util_1 = require("../../../rules/lib/util");
19
+ const retry_1 = __importDefault(require("../retry"));
20
+ function create(scanResults, mapsetId, appMapUUIDByFileName, createOptions = {}, retryOptions = {}) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ if ((0, util_1.verbose)())
23
+ console.warn('Uploading findings');
24
+ let uploadURL;
25
+ let request;
26
+ const retrier = (0, retry_1.default)(`Create scanner job`, retryOptions, makeRequest);
62
27
  function makeRequest() {
63
- return __awaiter(this, void 0, void 0, function () {
64
- var payload;
65
- return __generator(this, function (_a) {
66
- switch (_a.label) {
67
- case 0:
68
- payload = JSON.stringify(__assign({ scan_results: scanResults, mapset: mapsetId, appmap_uuid_by_file_name: appMapUUIDByFileName }, { merge_key: createOptions.mergeKey }));
69
- return [4 /*yield*/, (0, src_1.buildRequest)('api/scanner_jobs')];
70
- case 1:
71
- request = _a.sent();
72
- return [2 /*return*/, new Promise(function (resolve, reject) {
73
- var req = request.requestFunction(request.url, {
74
- method: 'POST',
75
- headers: __assign({ 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) }, request.headers),
76
- }, resolve);
77
- req.on('error', (0, src_1.retryOnError)(retrier, resolve, reject));
78
- req.write(payload);
79
- req.end();
80
- }).then((0, src_1.retryOn503)(retrier))];
81
- }
82
- });
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const payload = JSON.stringify(Object.assign({ scan_results: scanResults, mapset: mapsetId, appmap_uuid_by_file_name: appMapUUIDByFileName }, { merge_key: createOptions.mergeKey }));
30
+ request = yield (0, src_1.buildRequest)('api/scanner_jobs');
31
+ return new Promise((resolve, reject) => {
32
+ const req = request.requestFunction(request.url, {
33
+ method: 'POST',
34
+ headers: Object.assign({ 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) }, request.headers),
35
+ }, resolve);
36
+ req.on('error', (0, src_1.retryOnError)(retrier, resolve, reject));
37
+ req.write(payload);
38
+ req.end();
39
+ }).then((0, src_1.retryOn503)(retrier));
83
40
  });
84
41
  }
85
- var uploadURL, request, retrier;
86
- return __generator(this, function (_a) {
87
- if ((0, util_1.verbose)())
88
- console.warn('Uploading findings');
89
- retrier = (0, retry_1.default)("Create scanner job", retryOptions, makeRequest);
90
- return [2 /*return*/, makeRequest()
91
- .then(src_1.handleError)
92
- .then(function (response) {
93
- if (response.headers.location) {
94
- uploadURL = new url_1.URL(response.headers.location, request.url.href);
95
- }
96
- return (0, src_1.reportJSON)(response);
97
- })
98
- .then(function (uploadResponse) {
99
- uploadResponse.url = uploadURL;
100
- return uploadResponse;
101
- })];
42
+ return makeRequest()
43
+ .then(src_1.handleError)
44
+ .then((response) => {
45
+ if (response.headers.location) {
46
+ uploadURL = new url_1.URL(response.headers.location, request.url.href);
47
+ }
48
+ return (0, src_1.reportJSON)(response);
49
+ })
50
+ .then((uploadResponse) => {
51
+ uploadResponse.url = uploadURL;
52
+ return uploadResponse;
102
53
  });
103
54
  });
104
55
  }
105
56
  exports.create = create;
106
- //# sourceMappingURL=create.js.map
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,74 +8,39 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
9
  });
21
10
  };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
11
  Object.defineProperty(exports, "__esModule", { value: true });
50
12
  exports.merge = void 0;
51
- var src_1 = require("@appland/client/dist/src");
52
- var url_1 = require("url");
13
+ const src_1 = require("@appland/client/dist/src");
14
+ const url_1 = require("url");
53
15
  function merge(appId, mergeKey) {
54
- return __awaiter(this, void 0, void 0, function () {
55
- var payload, request, uploadURL;
56
- return __generator(this, function (_a) {
57
- switch (_a.label) {
58
- case 0:
59
- console.log("Merging scan results in app ".concat(appId, " with merge key ").concat(mergeKey));
60
- payload = JSON.stringify({
61
- app: appId,
62
- merge_key: mergeKey,
63
- });
64
- return [4 /*yield*/, (0, src_1.buildRequest)('api/scanner_jobs/merge')];
65
- case 1:
66
- request = _a.sent();
67
- return [2 /*return*/, new Promise(function (resolve, reject) {
68
- var req = request.requestFunction(request.url, {
69
- method: 'POST',
70
- headers: __assign({ 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) }, request.headers),
71
- }, resolve);
72
- req.on('error', reject);
73
- req.write(payload);
74
- req.end();
75
- })
76
- .then(src_1.handleError)
77
- .then(function (response) {
78
- if (response.headers.location) {
79
- uploadURL = new url_1.URL(response.headers.location, request.url.href);
80
- }
81
- return (0, src_1.reportJSON)(response);
82
- })
83
- .then(function (uploadResponse) {
84
- uploadResponse.url = uploadURL;
85
- return uploadResponse;
86
- })];
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ console.log(`Merging scan results in app ${appId} with merge key ${mergeKey}`);
18
+ const payload = JSON.stringify({
19
+ app: appId,
20
+ merge_key: mergeKey,
21
+ });
22
+ const request = yield (0, src_1.buildRequest)('api/scanner_jobs/merge');
23
+ let uploadURL;
24
+ return new Promise((resolve, reject) => {
25
+ const req = request.requestFunction(request.url, {
26
+ method: 'POST',
27
+ headers: Object.assign({ 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) }, request.headers),
28
+ }, resolve);
29
+ req.on('error', reject);
30
+ req.write(payload);
31
+ req.end();
32
+ })
33
+ .then(src_1.handleError)
34
+ .then((response) => {
35
+ if (response.headers.location) {
36
+ uploadURL = new url_1.URL(response.headers.location, request.url.href);
87
37
  }
38
+ return (0, src_1.reportJSON)(response);
39
+ })
40
+ .then((uploadResponse) => {
41
+ uploadResponse.url = uploadURL;
42
+ return uploadResponse;
88
43
  });
89
44
  });
90
45
  }
91
46
  exports.merge = merge;
92
- //# sourceMappingURL=merge.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=scannerJob.js.map
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var vars_1 = require("../vars");
3
+ const vars_1 = require("../vars");
4
4
  function postCommitStatus(state, description) {
5
5
  (0, vars_1.validateToken)();
6
6
  (0, vars_1.validateRepo)();
7
7
  (0, vars_1.validateOwner)();
8
8
  (0, vars_1.validateSha)();
9
9
  // eslint-disable-next-line @typescript-eslint/no-var-requires
10
- var octokat = require('octokat');
11
- var octo = new octokat({ token: (0, vars_1.token)() });
10
+ const octokat = require('octokat');
11
+ const octo = new octokat({ token: (0, vars_1.token)() });
12
12
  return octo.repos((0, vars_1.owner)(), (0, vars_1.repo)()).statuses((0, vars_1.sha)()).create({
13
13
  state: state,
14
14
  context: 'appland/scanner',
@@ -16,4 +16,3 @@ function postCommitStatus(state, description) {
16
16
  });
17
17
  }
18
18
  exports.default = postCommitStatus;
19
- //# sourceMappingURL=commitStatus.js.map
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validatePullRequestNumber = exports.validateSha = exports.validateRepo = exports.validateOwner = exports.validateToken = exports.pullRequestNumber = exports.repo = exports.sha = exports.owner = exports.token = exports.branch = void 0;
4
- var errors_1 = require("../errors");
4
+ const errors_1 = require("../errors");
5
5
  function token() {
6
6
  return process.env.GH_STATUS_TOKEN || process.env.GH_TOKEN;
7
7
  }
@@ -74,4 +74,3 @@ function validateRepo() {
74
74
  }
75
75
  }
76
76
  exports.validateRepo = validateRepo;
77
- //# sourceMappingURL=vars.js.map
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
17
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
18
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,93 +22,35 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
22
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
23
  });
10
24
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
39
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
27
  };
41
28
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.breakingChanges = exports.forURL = exports.forClientRequest = void 0;
43
- var provider_1 = __importDefault(require("./provider"));
44
- var openapi_diff_1 = __importDefault(require("openapi-diff"));
45
- var model_1 = __importDefault(require("./model"));
46
- var securitySchemes_1 = __importDefault(require("./securitySchemes"));
47
- var rpcRequest_1 = require("./rpcRequest");
48
- var fs_1 = require("fs");
49
- var util_1 = require("../rules/lib/util");
50
- var url_1 = require("url");
51
- var forClientRequest = function (event) {
52
- var rpcRequest = (0, rpcRequest_1.rpcRequestForEvent)(event);
53
- if (!rpcRequest) {
54
- return;
29
+ exports.breakingChanges = void 0;
30
+ const fs_1 = require("fs");
31
+ const openapi_diff_1 = __importDefault(require("openapi-diff"));
32
+ const util_1 = require("../rules/lib/util");
33
+ __exportStar(require("@appland/openapi"), exports);
34
+ const breakingChanges = (schemaHead, schemaBase) => __awaiter(void 0, void 0, void 0, function* () {
35
+ if ((0, util_1.verbose)()) {
36
+ (0, fs_1.writeFileSync)('openapi_head.json', JSON.stringify(schemaHead, null, 2));
37
+ (0, fs_1.writeFileSync)('openapi_base.json', JSON.stringify(schemaBase, null, 2));
55
38
  }
56
- var securitySchemes = new securitySchemes_1.default();
57
- var model = new model_1.default();
58
- securitySchemes.addRpcRequest(rpcRequest);
59
- model.addRpcRequest(rpcRequest);
60
- return { paths: model.openapi(), securitySchemes: securitySchemes.openapi() };
61
- };
62
- exports.forClientRequest = forClientRequest;
63
- var forURL = function (url, openapiSchemata) { return __awaiter(void 0, void 0, void 0, function () {
64
- return __generator(this, function (_a) {
65
- return [2 /*return*/, (0, provider_1.default)(new url_1.URL(url).host, openapiSchemata)];
66
- });
67
- }); };
68
- exports.forURL = forURL;
69
- var breakingChanges = function (schemaHead, schemaBase) { return __awaiter(void 0, void 0, void 0, function () {
70
- var result;
71
- return __generator(this, function (_a) {
72
- switch (_a.label) {
73
- case 0:
74
- if ((0, util_1.verbose)()) {
75
- (0, fs_1.writeFileSync)('openapi_head.json', JSON.stringify(schemaHead, null, 2));
76
- (0, fs_1.writeFileSync)('openapi_base.json', JSON.stringify(schemaBase, null, 2));
77
- }
78
- return [4 /*yield*/, openapi_diff_1.default.diffSpecs({
79
- sourceSpec: {
80
- content: JSON.stringify(schemaHead),
81
- location: 'openapi_head.json',
82
- format: 'openapi3',
83
- },
84
- destinationSpec: {
85
- content: JSON.stringify(schemaBase),
86
- location: 'openapi_base.json',
87
- format: 'openapi3',
88
- },
89
- })];
90
- case 1:
91
- result = _a.sent();
92
- if (result.breakingDifferencesFound) {
93
- return [2 /*return*/, result.breakingDifferences];
94
- }
95
- return [2 /*return*/, []];
96
- }
39
+ const result = yield openapi_diff_1.default.diffSpecs({
40
+ sourceSpec: {
41
+ content: JSON.stringify(schemaHead),
42
+ location: 'openapi_head.json',
43
+ format: 'openapi3',
44
+ },
45
+ destinationSpec: {
46
+ content: JSON.stringify(schemaBase),
47
+ location: 'openapi_base.json',
48
+ format: 'openapi3',
49
+ },
97
50
  });
98
- }); };
51
+ if (result.breakingDifferencesFound) {
52
+ return result.breakingDifferences;
53
+ }
54
+ return [];
55
+ });
99
56
  exports.breakingChanges = breakingChanges;
100
- //# sourceMappingURL=index.js.map
@@ -1,2 +1 @@
1
1
  "use strict";
2
- //# sourceMappingURL=appMapMetadata.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=findingSummary.js.map
@@ -3,10 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var chalk_1 = __importDefault(require("chalk"));
7
- var util_1 = require("../rules/lib/util");
8
- function writeln(text) {
9
- if (text === void 0) { text = ''; }
6
+ const chalk_1 = __importDefault(require("chalk"));
7
+ const util_1 = require("../rules/lib/util");
8
+ function writeln(text = '') {
10
9
  process.stdout.write(text);
11
10
  process.stdout.write('\n');
12
11
  }
@@ -15,27 +14,26 @@ function default_1(findings, appMapMetadata, ide) {
15
14
  return;
16
15
  }
17
16
  console.log();
18
- findings.forEach(function (finding) {
19
- var filePath = ide && finding.appMapFile
17
+ findings.forEach((finding) => {
18
+ const filePath = ide && finding.appMapFile
20
19
  ? (0, util_1.ideLink)(finding.appMapFile, ide, finding.event.id)
21
20
  : finding.appMapFile;
22
- var eventMsg = "\tEvent:\t".concat(finding.event.id, " - ").concat(finding.event.toString());
21
+ let eventMsg = `\tEvent:\t${finding.event.id} - ${finding.event.toString()}`;
23
22
  if (finding.event.elapsedTime !== undefined) {
24
- eventMsg += " (".concat(finding.event.elapsedTime, "s)");
23
+ eventMsg += ` (${finding.event.elapsedTime}s)`;
25
24
  }
26
- var message = finding.message;
25
+ const message = finding.message;
27
26
  writeln(chalk_1.default.magenta(message));
28
- writeln("\tLink:\t".concat(chalk_1.default.blue(filePath)));
29
- writeln("\tRule:\t".concat(finding.ruleId));
30
- writeln("\tAppMap name:\t".concat(appMapMetadata[finding.appMapFile].name));
27
+ writeln(`\tLink:\t${chalk_1.default.blue(filePath)}`);
28
+ writeln(`\tRule:\t${finding.ruleId}`);
29
+ writeln(`\tAppMap name:\t${appMapMetadata[finding.appMapFile].name}`);
31
30
  writeln(eventMsg);
32
- writeln("\tScope:\t".concat(finding.scope.id, " - ").concat(finding.scope.toString()));
31
+ writeln(`\tScope:\t${finding.scope.id} - ${finding.scope.toString()}`);
33
32
  if (finding.stack.length > 0) {
34
- writeln("\tStack trace:");
35
- finding.stack.forEach(function (frame) { return console.log("\t\t".concat(frame)); });
33
+ writeln(`\tStack trace:`);
34
+ finding.stack.forEach((frame) => console.log(`\t\t${frame}`));
36
35
  }
37
36
  writeln();
38
37
  });
39
38
  }
40
39
  exports.default = default_1;
41
- //# sourceMappingURL=findingsReport.js.map