@appland/scanner 1.41.1 → 1.44.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 (79) hide show
  1. package/built/appMapIndex.js +40 -0
  2. package/built/appMapIndex.js.map +1 -0
  3. package/built/check.js +3 -3
  4. package/built/check.js.map +1 -1
  5. package/built/checkInstance.js +4 -4
  6. package/built/checkInstance.js.map +1 -1
  7. package/built/cli/ci/command.js +22 -26
  8. package/built/cli/ci/command.js.map +1 -1
  9. package/built/cli/fail.js +13 -0
  10. package/built/cli/fail.js.map +1 -0
  11. package/built/cli/merge/command.js +102 -0
  12. package/built/cli/merge/command.js.map +1 -0
  13. package/built/cli/merge/options.js +3 -0
  14. package/built/cli/merge/options.js.map +1 -0
  15. package/built/cli/reportUploadURL.js +11 -0
  16. package/built/cli/reportUploadURL.js.map +1 -0
  17. package/built/cli/scan/command.js +5 -1
  18. package/built/cli/scan/command.js.map +1 -1
  19. package/built/cli/scan/scanner.js +2 -2
  20. package/built/cli/scan/scanner.js.map +1 -1
  21. package/built/cli/scan.js +4 -2
  22. package/built/cli/scan.js.map +1 -1
  23. package/built/cli/updateCommitStatus.js +65 -0
  24. package/built/cli/updateCommitStatus.js.map +1 -0
  25. package/built/cli/upload/command.js +10 -5
  26. package/built/cli/upload/command.js.map +1 -1
  27. package/built/cli.js +2 -0
  28. package/built/cli.js.map +1 -1
  29. package/built/database/index.js +136 -161
  30. package/built/database/index.js.map +1 -1
  31. package/built/integration/appland/{fetchStatus.js → app/listFindingStatus.js} +1 -1
  32. package/built/integration/appland/app/listFindingStatus.js.map +1 -0
  33. package/built/integration/appland/{appMap.js → appMap/create.js} +43 -48
  34. package/built/integration/appland/appMap/create.js.map +1 -0
  35. package/built/integration/appland/location.js +3 -0
  36. package/built/integration/appland/location.js.map +1 -0
  37. package/built/integration/appland/{mapset.js → mapset/create.js} +41 -46
  38. package/built/integration/appland/mapset/create.js.map +1 -0
  39. package/built/integration/appland/{upload.js → scannerJob/create.js} +27 -19
  40. package/built/integration/appland/scannerJob/create.js.map +1 -0
  41. package/built/integration/appland/scannerJob/merge.js +92 -0
  42. package/built/integration/appland/scannerJob/merge.js.map +1 -0
  43. package/built/integration/appland/scannerJob.js +3 -0
  44. package/built/integration/appland/scannerJob.js.map +1 -0
  45. package/built/report/summaryReport.js +1 -1
  46. package/built/report/summaryReport.js.map +1 -1
  47. package/built/ruleChecker.js +12 -11
  48. package/built/ruleChecker.js.map +1 -1
  49. package/built/rules/circularDependency.js +1 -0
  50. package/built/rules/circularDependency.js.map +1 -1
  51. package/built/rules/deserializationOfUntrustedData.js +2 -0
  52. package/built/rules/deserializationOfUntrustedData.js.map +1 -1
  53. package/built/rules/http500.js +1 -0
  54. package/built/rules/http500.js.map +1 -1
  55. package/built/rules/illegalPackageDependency.js +1 -0
  56. package/built/rules/illegalPackageDependency.js.map +1 -1
  57. package/built/rules/incompatibleHttpClientRequest.js +1 -0
  58. package/built/rules/incompatibleHttpClientRequest.js.map +1 -1
  59. package/built/rules/insecureCompare.js +1 -0
  60. package/built/rules/insecureCompare.js.map +1 -1
  61. package/built/rules/lib/matchEvent.js +3 -4
  62. package/built/rules/lib/matchEvent.js.map +1 -1
  63. package/built/rules/logoutWithoutSessionReset.js +2 -0
  64. package/built/rules/logoutWithoutSessionReset.js.map +1 -1
  65. package/built/rules/nPlusOneQuery.js +2 -2
  66. package/built/rules/nPlusOneQuery.js.map +1 -1
  67. package/built/rules/tooManyJoins.js +3 -3
  68. package/built/rules/tooManyJoins.js.map +1 -1
  69. package/built/rules/unbatchedMaterializedQuery.js +3 -4
  70. package/built/rules/unbatchedMaterializedQuery.js.map +1 -1
  71. package/built/scope/sqlTransactionScope.js +3 -2
  72. package/built/scope/sqlTransactionScope.js.map +1 -1
  73. package/built/sqlWarning.js +56 -0
  74. package/built/sqlWarning.js.map +1 -0
  75. package/package.json +8 -5
  76. package/built/integration/appland/appMap.js.map +0 -1
  77. package/built/integration/appland/fetchStatus.js.map +0 -1
  78. package/built/integration/appland/mapset.js.map +0 -1
  79. package/built/integration/appland/upload.js.map +0 -1
@@ -40,10 +40,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  var promises_1 = require("fs/promises");
43
- var upload_1 = __importDefault(require("../../integration/appland/upload"));
43
+ var create_1 = require("../../integration/appland/scannerJob/create");
44
44
  var util_1 = require("../../rules/lib/util");
45
45
  var validateFile_1 = __importDefault(require("../validateFile"));
46
46
  var resolveAppId_1 = __importDefault(require("../resolveAppId"));
47
+ var reportUploadURL_1 = __importDefault(require("../reportUploadURL"));
47
48
  exports.default = {
48
49
  command: 'upload',
49
50
  describe: 'Upload Findings to the AppMap Server',
@@ -59,15 +60,18 @@ exports.default = {
59
60
  args.option('app', {
60
61
  describe: 'name of the app to publish the findings for. By default, this is determined by looking in appmap.yml',
61
62
  });
63
+ args.option('merge-key', {
64
+ describe: 'build job identifier. This is used to merge findings from parallelized scans',
65
+ });
62
66
  return args.strict();
63
67
  },
64
68
  handler: function (options) {
65
69
  return __awaiter(this, void 0, void 0, function () {
66
- var _a, isVerbose, reportFile, appmapDir, appIdArg, appId, scanResults, _b, _c;
70
+ var _a, isVerbose, reportFile, appmapDir, appIdArg, mergeKey, appId, scanResults, _b, _c, uploadResponse;
67
71
  return __generator(this, function (_d) {
68
72
  switch (_d.label) {
69
73
  case 0:
70
- _a = options, isVerbose = _a.verbose, reportFile = _a.reportFile, appmapDir = _a.appmapDir, appIdArg = _a.app;
74
+ _a = options, isVerbose = _a.verbose, reportFile = _a.reportFile, appmapDir = _a.appmapDir, appIdArg = _a.app, mergeKey = _a.mergeKey;
71
75
  if (isVerbose) {
72
76
  (0, util_1.verbose)(true);
73
77
  }
@@ -83,9 +87,10 @@ exports.default = {
83
87
  return [4 /*yield*/, (0, promises_1.readFile)(reportFile)];
84
88
  case 4:
85
89
  scanResults = _c.apply(_b, [(_d.sent()).toString()]);
86
- return [4 /*yield*/, (0, upload_1.default)(scanResults, appId)];
90
+ return [4 /*yield*/, (0, create_1.create)(scanResults, appId, mergeKey)];
87
91
  case 5:
88
- _d.sent();
92
+ uploadResponse = _d.sent();
93
+ (0, reportUploadURL_1.default)(uploadResponse.summary.numFindings, uploadResponse.url);
89
94
  return [2 /*return*/];
90
95
  }
91
96
  });
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/cli/upload/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAuC;AAEvC,4EAAsD;AAEtD,6CAA+C;AAE/C,iEAA2C;AAG3C,iEAA2C;AAE3C,kBAAe;IACb,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,sCAAsC;IAChD,OAAO,EAAP,UAAQ,IAAU;QAChB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACxB,QAAQ,EAAE,2BAA2B;YACrC,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YACzB,QAAQ,EAAE,qCAAqC;YAC/C,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,QAAQ,EACN,sGAAsG;SACzG,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IACK,OAAO,EAAb,UAAc,OAAkB;;;;;;wBACxB,KAKF,OAAoC,EAJ7B,SAAS,aAAA,EAClB,UAAU,gBAAA,EACV,SAAS,eAAA,EACJ,QAAQ,SAAA,CAC0B;wBAEzC,IAAI,SAAS,EAAE;4BACb,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;yBACf;6BAEG,SAAS,EAAT,wBAAS;wBAAE,qBAAM,IAAA,sBAAY,EAAC,WAAW,EAAE,SAAU,CAAC,EAAA;;wBAA3C,SAA2C,CAAC;;4BAC7C,qBAAM,IAAA,sBAAY,EAAC,QAAQ,EAAE,SAAS,CAAC,EAAA;;wBAA/C,KAAK,GAAG,SAAuC;wBAEjC,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,KAAK,CAAA;wBAAE,qBAAM,IAAA,mBAAQ,EAAC,UAAU,CAAC,EAAA;;wBAApD,WAAW,GAAG,cAAW,CAAC,SAA0B,CAAC,CAAC,QAAQ,EAAE,EAAgB;wBACtF,qBAAM,IAAA,gBAAM,EAAC,WAAW,EAAE,KAAK,CAAC,EAAA;;wBAAhC,SAAgC,CAAC;;;;;KAClC;CACF,CAAC"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/cli/upload/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAuC;AAEvC,sEAAyF;AAEzF,6CAA+C;AAE/C,iEAA2C;AAG3C,iEAA2C;AAC3C,uEAAiD;AAEjD,kBAAe;IACb,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,sCAAsC;IAChD,OAAO,EAAP,UAAQ,IAAU;QAChB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACxB,QAAQ,EAAE,2BAA2B;YACrC,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YACzB,QAAQ,EAAE,qCAAqC;YAC/C,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,QAAQ,EACN,sGAAsG;SACzG,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACvB,QAAQ,EAAE,8EAA8E;SACzF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IACK,OAAO,EAAb,UAAc,OAAkB;;;;;;wBACxB,KAMF,OAAoC,EAL7B,SAAS,aAAA,EAClB,UAAU,gBAAA,EACV,SAAS,eAAA,EACJ,QAAQ,SAAA,EACb,QAAQ,cAAA,CAC+B;wBAEzC,IAAI,SAAS,EAAE;4BACb,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;yBACf;6BAEG,SAAS,EAAT,wBAAS;wBAAE,qBAAM,IAAA,sBAAY,EAAC,WAAW,EAAE,SAAU,CAAC,EAAA;;wBAA3C,SAA2C,CAAC;;4BAC7C,qBAAM,IAAA,sBAAY,EAAC,QAAQ,EAAE,SAAS,CAAC,EAAA;;wBAA/C,KAAK,GAAG,SAAuC;wBAEjC,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,KAAK,CAAA;wBAAE,qBAAM,IAAA,mBAAQ,EAAC,UAAU,CAAC,EAAA;;wBAApD,WAAW,GAAG,cAAW,CAAC,SAA0B,CAAC,CAAC,QAAQ,EAAE,EAAgB;wBAC/D,qBAAM,IAAA,eAAgB,EAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAA;;wBAArE,cAAc,GAAG,SAAoD;wBAE3E,IAAA,yBAAe,EAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;;;;KACzE;CACF,CAAC"}
package/built/cli.js CHANGED
@@ -8,6 +8,7 @@ var yargs_1 = __importDefault(require("yargs"));
8
8
  var command_1 = __importDefault(require("./cli/scan/command"));
9
9
  var command_2 = __importDefault(require("./cli/upload/command"));
10
10
  var command_3 = __importDefault(require("./cli/ci/command"));
11
+ var command_4 = __importDefault(require("./cli/merge/command"));
11
12
  (0, yargs_1.default)(process.argv.slice(2))
12
13
  .option('verbose', {
13
14
  describe: 'Show verbose output',
@@ -16,6 +17,7 @@ var command_3 = __importDefault(require("./cli/ci/command"));
16
17
  .command(command_1.default)
17
18
  .command(command_2.default)
18
19
  .command(command_3.default)
20
+ .command(command_4.default)
19
21
  .fail(function (msg, err, yargs) {
20
22
  if (msg) {
21
23
  console.log(yargs.help());
package/built/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,gDAA0B;AAC1B,+DAA6C;AAC7C,iEAAiD;AACjD,6DAAyC;AAEzC,IAAA,eAAK,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACzB,MAAM,CAAC,SAAS,EAAE;IACjB,QAAQ,EAAE,qBAAqB;IAC/B,KAAK,EAAE,GAAG;CACX,CAAC;KACD,OAAO,CAAC,iBAAW,CAAC;KACpB,OAAO,CAAC,iBAAa,CAAC;KACtB,OAAO,CAAC,iBAAS,CAAC;KAClB,IAAI,CAAC,UAAC,GAAG,EAAE,GAAG,EAAE,KAAK;IACpB,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAClB;SAAM,IAAI,GAAG,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACpB;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;KACD,MAAM,EAAE;KACR,aAAa,EAAE;KACf,IAAI,EAAE,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,gDAA0B;AAC1B,+DAA6C;AAC7C,iEAAiD;AACjD,6DAAyC;AACzC,gEAA+C;AAE/C,IAAA,eAAK,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACzB,MAAM,CAAC,SAAS,EAAE;IACjB,QAAQ,EAAE,qBAAqB;IAC/B,KAAK,EAAE,GAAG;CACX,CAAC;KACD,OAAO,CAAC,iBAAW,CAAC;KACpB,OAAO,CAAC,iBAAa,CAAC;KACtB,OAAO,CAAC,iBAAS,CAAC;KAClB,OAAO,CAAC,iBAAY,CAAC;KACrB,IAAI,CAAC,UAAC,GAAG,EAAE,GAAG,EAAE,KAAK;IACpB,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAClB;SAAM,IAAI,GAAG,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACpB;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;KACD,MAAM,EAAE;KACR,aAAa,EAAE;KACf,IAAI,EAAE,CAAC,IAAI,CAAC"}
@@ -1,6 +1,4 @@
1
1
  "use strict";
2
- // License: https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE
3
- // Apache License 2.0
4
2
  var __generator = (this && this.__generator) || function (thisArg, body) {
5
3
  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
6
4
  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
@@ -28,6 +26,31 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
26
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
29
27
  }
30
28
  };
29
+ var __read = (this && this.__read) || function (o, n) {
30
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
31
+ if (!m) return o;
32
+ var i = m.call(o), r, ar = [], e;
33
+ try {
34
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
35
+ }
36
+ catch (error) { e = { error: error }; }
37
+ finally {
38
+ try {
39
+ if (r && !r.done && (m = i["return"])) m.call(i);
40
+ }
41
+ finally { if (e) throw e.error; }
42
+ }
43
+ return ar;
44
+ };
45
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
46
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
47
+ if (ar || !(i in from)) {
48
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
49
+ ar[i] = from[i];
50
+ }
51
+ }
52
+ return to.concat(ar || Array.prototype.slice.call(from));
53
+ };
31
54
  var __values = (this && this.__values) || function(o) {
32
55
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
33
56
  if (m) return m.call(o);
@@ -40,155 +63,114 @@ var __values = (this && this.__values) || function(o) {
40
63
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
41
64
  };
42
65
  Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.countJoins = exports.sqlStrings = exports.isSelect = exports.sqlNormalized = exports.obfuscate = void 0;
44
- // TODO: Copied and TypeScript-ified from @appland/models
45
- var visit_1 = require("./visit");
66
+ exports.countJoins = exports.sqlStrings = exports.isSelect = exports.getSqlLabelFromString = exports.getHttpLabel = exports.capitalizeString = void 0;
46
67
  var models_1 = require("@appland/models");
47
- var COMPONENTS_REGEXP_MAP = {
48
- single_quotes: /'(?:[^']|'')*?(?:\\'.*|'(?!'))/g,
49
- double_quotes: /"(?:[^"]|"")*?(?:\\".*|"(?!"))/g,
50
- dollar_quotes: /(\$(?!\d)[^$]*?\$).*?(?:\1|$)/g,
51
- uuids: /\{?(?:[0-9a-fA-F]-*){32}\}?/g,
52
- numeric_literals: /-?\b(?:[0-9]+\.)?[0-9]+([eE][+-]?[0-9]+)?\b/g,
53
- boolean_literals: /\b(?:true|false|null)\b/gi,
54
- hexadecimal_literals: /0x[0-9a-fA-F]+/g,
55
- comments: /(?:#|--).*?(?=\r|\n|$)/gi,
56
- multi_line_comments: /\/\*(?:[^/]|\/[^*])*?(?:\*\/|\/\*.*)/g,
57
- oracle_quoted_strings: /q'\[.*?(?:\]'|$)|q'\{.*?(?:\}'|$)|q'<.*?(?:>'|$)|q'\(.*?(?:\)'|$)/g,
58
- };
59
- // We use these to check whether the query contains any quote characters
60
- // after obfuscation. If so, that's a good indication that the original
61
- // query was malformed, and so our obfuscation can't reliably find
62
- // literals. In such a case, we'll replace the entire query with a
63
- // placeholder.
64
- var CLEANUP_REGEXP = {
65
- mysql: /'|"|\/\*|\*\//,
66
- mysql2: /'|"|\/\*|\*\//,
67
- postgres: /'|\/\*|\*\/|\$(?!\?)/,
68
- sqlite: /'|\/\*|\*\//,
69
- cassandra: /'|\/\*|\*\//,
70
- oracle: /'|\/\*|\*\//,
71
- oracle_enhanced: /'|\/\*|\*\//,
72
- };
73
- /**
74
- * @type {{string: string[]}}
75
- */
76
- var DIALECT_COMPONENTS = {
77
- fallback: Object.keys(COMPONENTS_REGEXP_MAP),
78
- mysql: [
79
- 'single_quotes',
80
- 'double_quotes',
81
- 'numeric_literals',
82
- 'boolean_literals',
83
- 'hexadecimal_literals',
84
- 'comments',
85
- 'multi_line_comments',
86
- ],
87
- postgres: [
88
- 'single_quotes',
89
- 'dollar_quotes',
90
- 'uuids',
91
- 'numeric_literals',
92
- 'boolean_literals',
93
- 'comments',
94
- 'multi_line_comments',
95
- ],
96
- sqlite: [
97
- 'single_quotes',
98
- 'numeric_literals',
99
- 'boolean_literals',
100
- 'hexadecimal_literals',
101
- 'comments',
102
- 'multi_line_comments',
103
- ],
104
- oracle: [
105
- 'single_quotes',
106
- 'oracle_quoted_strings',
107
- 'numeric_literals',
108
- 'comments',
109
- 'multi_line_comments',
110
- ],
111
- cassandra: [
112
- 'single_quotes',
113
- 'uuids',
114
- 'numeric_literals',
115
- 'boolean_literals',
116
- 'hexadecimal_literals',
117
- 'comments',
118
- 'multi_line_comments',
119
- ],
120
- };
121
- var PLACEHOLDER = '?';
122
- /**
123
- * @param {string} dialect
124
- * @returns {RegExp[]}
125
- */
126
- function generateRegexp(dialect) {
127
- var components = DIALECT_COMPONENTS[dialect];
128
- // No Regexp.union in JS
129
- return components.map(function (component) { return COMPONENTS_REGEXP_MAP[component]; });
130
- }
131
- var MYSQL_COMPONENTS_REGEXP = generateRegexp('mysql');
132
- var POSTGRES_COMPONENTS_REGEXP = generateRegexp('postgres');
133
- var SQLITE_COMPONENTS_REGEXP = generateRegexp('sqlite');
134
- var ORACLE_COMPONENTS_REGEXP = generateRegexp('oracle');
135
- var CASSANDRA_COMPONENTS_REGEXP = generateRegexp('cassandra');
136
- var FALLBACK_REGEXP = generateRegexp('fallback');
137
- function detectUnmatchedPairs(obfuscated, adapter) {
138
- if (CLEANUP_REGEXP[adapter]) {
139
- return CLEANUP_REGEXP[adapter].test(obfuscated);
68
+ var visit_1 = require("./visit");
69
+ var url_1 = require("url");
70
+ function capitalizeString(str) {
71
+ if (typeof str !== 'string') {
72
+ return '';
140
73
  }
141
- return CLEANUP_REGEXP.mysql.test(obfuscated);
74
+ return str.slice(0, 1).toUpperCase() + str.slice(1).toLowerCase();
142
75
  }
143
- var FAILED_TO_OBFUSCATE_MESSAGE = 'Failed to obfuscate SQL query - quote characters remained after obfuscation';
144
- /**
145
- * Replaces literal query parameters with parameter symbols (e.g. '?');
146
- *
147
- * @param {string} sql
148
- * @param {string} adapter
149
- * @returns {string}
150
- */
151
- function obfuscate(sql, adapter) {
152
- /** @type {RegExp[]} */ var regexp;
153
- switch (adapter) {
154
- case 'mysql':
155
- case 'mysql2':
156
- regexp = MYSQL_COMPONENTS_REGEXP;
157
- break;
158
- case 'postgres':
159
- regexp = POSTGRES_COMPONENTS_REGEXP;
160
- break;
161
- case 'sqlite':
162
- regexp = SQLITE_COMPONENTS_REGEXP;
163
- break;
164
- case 'oracle':
165
- case 'oracle_enhanced':
166
- regexp = ORACLE_COMPONENTS_REGEXP;
167
- break;
168
- case 'cassandra':
169
- regexp = CASSANDRA_COMPONENTS_REGEXP;
170
- break;
171
- default:
172
- regexp = FALLBACK_REGEXP;
76
+ exports.capitalizeString = capitalizeString;
77
+ function getHttpLabel(event) {
78
+ if (!event.httpServerRequest) {
79
+ return;
173
80
  }
174
- var obfuscated = sql;
175
- // eslint-disable-next-line no-return-assign
176
- regexp.forEach(function (re) { return (obfuscated = obfuscated.replace(re, PLACEHOLDER)); });
177
- if (detectUnmatchedPairs(obfuscated, adapter)) {
178
- obfuscated = FAILED_TO_OBFUSCATE_MESSAGE;
81
+ var requestMethod = event.httpServerRequest.request_method;
82
+ var pathInfo = event.httpServerRequest.path_info;
83
+ var label;
84
+ try {
85
+ // the url is fake, we only care about the path info anyway
86
+ var url = new url_1.URL(pathInfo, 'http://hostname');
87
+ label = requestMethod + " " + url.pathname;
88
+ }
89
+ catch (ex) {
90
+ label = 'HTTP Request';
179
91
  }
180
- return obfuscated;
92
+ return label;
181
93
  }
182
- exports.obfuscate = obfuscate;
183
- function sqlNormalized(query) {
184
- return obfuscate(query.sql, query.database_type);
94
+ exports.getHttpLabel = getHttpLabel;
95
+ var sqlLabels = new Set([
96
+ 'insert',
97
+ 'update',
98
+ 'select',
99
+ 'delete',
100
+ 'alter',
101
+ 'create',
102
+ 'drop',
103
+ 'rename',
104
+ 'truncate',
105
+ 'replace',
106
+ 'savepoint',
107
+ 'release',
108
+ 'rollback',
109
+ 'lock',
110
+ 'unlock',
111
+ 'set',
112
+ 'start',
113
+ 'call',
114
+ 'delete',
115
+ 'do',
116
+ 'perform',
117
+ 'handler',
118
+ 'load',
119
+ 'purge',
120
+ 'reset',
121
+ 'prepare',
122
+ 'execute',
123
+ 'deallocate',
124
+ 'xa',
125
+ ]);
126
+ function getSqlLabelFromString(sqlString) {
127
+ var sqlChars = __spreadArray([], __read(sqlString.trimLeft()), false);
128
+ if (sqlChars.length > 0 && sqlChars[0] === '(') {
129
+ // if the query is wrapped in parenthesis, drop the opening parenthesis
130
+ // it doesn't matter if we leave a hanging closing parenthesis.
131
+ // e.g. (SELECT 1);
132
+ sqlChars.shift();
133
+ }
134
+ // drop sub-queries and parenthesized expressions
135
+ var depth = 0;
136
+ var topLevelSql = sqlChars
137
+ .reduce(function (arr, c) {
138
+ if (c === '(') {
139
+ depth += 1;
140
+ }
141
+ if (depth === 0) {
142
+ arr.push(c);
143
+ }
144
+ if (c === ')') {
145
+ depth -= 1;
146
+ }
147
+ return arr;
148
+ }, [])
149
+ .join('');
150
+ var queryType;
151
+ if (topLevelSql.search(/\s/) === -1) {
152
+ // There's only a single token
153
+ // e.g. BEGIN, COMMIT, CHECKPOINT
154
+ queryType = topLevelSql;
155
+ }
156
+ else {
157
+ // convert non-word sequences to spaces and split by space
158
+ // find the first known token
159
+ queryType =
160
+ topLevelSql
161
+ .replace(/[^\w]+/g, ' ')
162
+ .toLowerCase()
163
+ .split(' ')
164
+ .find(function (t) { return sqlLabels.has(t); }) || 'unknown';
165
+ }
166
+ return ['SQL', capitalizeString(queryType) || null].join(' ');
185
167
  }
186
- exports.sqlNormalized = sqlNormalized;
168
+ exports.getSqlLabelFromString = getSqlLabelFromString;
187
169
  function isSelect(sql) {
188
- return (0, models_1.getSqlLabelFromString)(sql) === 'SQL Select';
170
+ return getSqlLabelFromString(sql) === 'SQL Select';
189
171
  }
190
172
  exports.isSelect = isSelect;
191
- function sqlStrings(event, filter) {
173
+ function sqlStrings(event, appMapIndex, filter) {
192
174
  var _a, _b, e, sql, e_1_1;
193
175
  var e_1, _c;
194
176
  if (filter === void 0) { filter = function () { return true; }; }
@@ -201,19 +183,19 @@ function sqlStrings(event, filter) {
201
183
  case 1:
202
184
  if (!!_b.done) return [3 /*break*/, 4];
203
185
  e = _b.value;
204
- if (!e.event.sqlQuery) {
186
+ if (!e.event.sql) {
205
187
  return [3 /*break*/, 3];
206
188
  }
207
- if (!filter(e.event)) {
189
+ if (!filter(e.event, appMapIndex)) {
208
190
  return [3 /*break*/, 3];
209
191
  }
210
192
  if (!isSelect(e.event.sqlQuery)) {
211
193
  return [3 /*break*/, 3];
212
194
  }
213
- if (!filter(event)) {
195
+ if (!filter(event, appMapIndex)) {
214
196
  return [3 /*break*/, 3];
215
197
  }
216
- sql = sqlNormalized(e.event.sql);
198
+ sql = appMapIndex.sqlNormalized(e.event);
217
199
  return [4 /*yield*/, { event: e.event, sql: sql }];
218
200
  case 2:
219
201
  _d.sent();
@@ -237,23 +219,16 @@ function sqlStrings(event, filter) {
237
219
  });
238
220
  }
239
221
  exports.sqlStrings = sqlStrings;
240
- function countJoins(normalizedSql) {
241
- try {
242
- var ast = (0, models_1.buildQueryAST)(normalizedSql);
243
- var joins_1 = 0;
244
- if (ast) {
245
- (0, visit_1.visit)(ast, {
246
- 'map.join': function (node) {
247
- joins_1 += node.map.length;
248
- },
249
- });
250
- }
251
- return joins_1;
252
- }
253
- catch (_) {
254
- console.warn("Unable to analyze query \"" + normalizedSql + "\"");
222
+ function countJoins(ast) {
223
+ if (!ast)
255
224
  return 0;
256
- }
225
+ var joins = 0;
226
+ (0, visit_1.visit)(ast, {
227
+ 'map.join': function (node) {
228
+ joins += node.map.length;
229
+ },
230
+ });
231
+ return joins;
257
232
  }
258
233
  exports.countJoins = countJoins;
259
234
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"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"}
@@ -48,4 +48,4 @@ function default_1(appId) {
48
48
  });
49
49
  }
50
50
  exports.default = default_1;
51
- //# sourceMappingURL=fetchStatus.js.map
51
+ //# sourceMappingURL=listFindingStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listFindingStatus.js","sourceRoot":"","sources":["../../../../src/integration/appland/app/listFindingStatus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAsE;AAEtE,mBAA+B,KAAa;;;;wBACnC,qBAAM,IAAI,SAAG,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,EAAA;wBAA/C,sBAAO,SAAwC,EAAC;;;;CACjD;AAFD,4BAEC"}
@@ -50,54 +50,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
50
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.AppMap = void 0;
53
+ exports.create = void 0;
54
54
  var src_1 = require("@appland/client/dist/src");
55
55
  var form_data_1 = __importDefault(require("form-data"));
56
- var AppMap = /** @class */ (function () {
57
- function AppMap() {
58
- }
59
- AppMap.upload = function (data, options) {
60
- if (options === void 0) { options = {}; }
61
- return __awaiter(this, void 0, void 0, function () {
62
- var form, request;
63
- return __generator(this, function (_a) {
64
- switch (_a.label) {
65
- case 0:
66
- form = new form_data_1.default();
67
- form.append('data', data.toString());
68
- if (options.app) {
69
- form.append('app', options.app);
70
- }
71
- return [4 /*yield*/, (0, src_1.buildRequest)('api/appmaps')];
72
- case 1:
73
- request = _a.sent();
74
- return [2 /*return*/, new Promise(function (resolve, reject) {
75
- var req = request.requestFunction(request.url, {
76
- method: 'POST',
77
- headers: __assign(__assign({}, request.headers), form.getHeaders()),
78
- }, resolve);
79
- req.on('error', reject);
80
- form.pipe(req);
81
- })
82
- .then(src_1.handleError)
83
- .then(function (response) {
84
- return new Promise(function (resolve, reject) {
85
- var responseData = [];
86
- response
87
- .on('data', function (chunk) {
88
- responseData.push(Buffer.from(chunk));
89
- })
90
- .on('end', function () {
91
- resolve(JSON.parse(Buffer.concat(responseData).toString()));
92
- })
93
- .on('error', reject);
94
- });
95
- })];
96
- }
97
- });
56
+ function create(data, options) {
57
+ if (options === void 0) { options = {}; }
58
+ return __awaiter(this, void 0, void 0, function () {
59
+ var form, request;
60
+ return __generator(this, function (_a) {
61
+ switch (_a.label) {
62
+ case 0:
63
+ form = new form_data_1.default();
64
+ form.append('data', data.toString());
65
+ if (options.app) {
66
+ form.append('app', options.app);
67
+ }
68
+ return [4 /*yield*/, (0, src_1.buildRequest)('api/appmaps')];
69
+ case 1:
70
+ request = _a.sent();
71
+ return [2 /*return*/, new Promise(function (resolve, reject) {
72
+ var req = request.requestFunction(request.url, {
73
+ method: 'POST',
74
+ headers: __assign(__assign({}, request.headers), form.getHeaders()),
75
+ }, resolve);
76
+ req.on('error', reject);
77
+ form.pipe(req);
78
+ })
79
+ .then(src_1.handleError)
80
+ .then(function (response) {
81
+ return new Promise(function (resolve, reject) {
82
+ var responseData = [];
83
+ response
84
+ .on('data', function (chunk) {
85
+ responseData.push(Buffer.from(chunk));
86
+ })
87
+ .on('end', function () {
88
+ resolve(JSON.parse(Buffer.concat(responseData).toString()));
89
+ })
90
+ .on('error', reject);
91
+ });
92
+ })];
93
+ }
98
94
  });
99
- };
100
- return AppMap;
101
- }());
102
- exports.AppMap = AppMap;
103
- //# sourceMappingURL=appMap.js.map
95
+ });
96
+ }
97
+ exports.create = create;
98
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/integration/appland/appMap/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAAqE;AACrE,wDAAiC;AAUjC,SAAsB,MAAM,CAC1B,IAAY,EACZ,OAA2B;IAA3B,wBAAA,EAAA,YAA2B;;;;;;oBAErB,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACrC,IAAI,OAAO,CAAC,GAAG,EAAE;wBACf,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;qBACjC;oBAEe,qBAAM,IAAA,kBAAY,EAAC,aAAa,CAAC,EAAA;;oBAA3C,OAAO,GAAG,SAAiC;oBACjD,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;4BAClD,IAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CACjC,OAAO,CAAC,GAAG,EACX;gCACE,MAAM,EAAE,MAAM;gCACd,OAAO,wBACF,OAAO,CAAC,OAAO,GACf,IAAI,CAAC,UAAU,EAAE,CACrB;6BACF,EACD,OAAO,CACR,CAAC;4BACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;4BACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACjB,CAAC,CAAC;6BACC,IAAI,CAAC,iBAAW,CAAC;6BACjB,IAAI,CAAC,UAAC,QAAyB;4BAC9B,OAAO,IAAI,OAAO,CAAuB,UAAC,OAAO,EAAE,MAAM;gCACvD,IAAM,YAAY,GAAa,EAAE,CAAC;gCAClC,QAAQ;qCACL,EAAE,CAAC,MAAM,EAAE,UAAC,KAAa;oCACxB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC;qCACD,EAAE,CAAC,KAAK,EAAE;oCACT,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAyB,CAAC,CAAC;gCACtF,CAAC,CAAC;qCACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;4BACzB,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,EAAC;;;;CACN;AAxCD,wBAwCC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../src/integration/appland/location.ts"],"names":[],"mappings":""}