@appland/appmap 3.75.1 → 3.77.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 (41) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/built/cli.js +4 -179
  3. package/built/cli.js.map +1 -1
  4. package/built/cmds/openapi.js +4 -23
  5. package/built/cmds/openapi.js.map +1 -1
  6. package/built/cmds/prune/prune.js +8 -7
  7. package/built/cmds/prune/prune.js.map +1 -1
  8. package/built/cmds/prune/pruneAppMap.js +13 -47
  9. package/built/cmds/prune/pruneAppMap.js.map +1 -1
  10. package/built/cmds/sequenceDiagram.js +13 -3
  11. package/built/cmds/sequenceDiagram.js.map +1 -1
  12. package/built/depends.js +1 -1
  13. package/built/depends.js.map +1 -1
  14. package/built/fingerprint/canonicalize.js +0 -3
  15. package/built/fingerprint/canonicalize.js.map +1 -1
  16. package/built/fingerprint/fingerprintDirectoryCommand.js +2 -1
  17. package/built/fingerprint/fingerprintDirectoryCommand.js.map +1 -1
  18. package/built/fingerprint/fingerprintQueue.js +2 -2
  19. package/built/fingerprint/fingerprintQueue.js.map +1 -1
  20. package/built/fingerprint/fingerprinter.js +18 -29
  21. package/built/fingerprint/fingerprinter.js.map +1 -1
  22. package/built/html/appmap.js +83 -80
  23. package/built/html/appmap.js.map +4 -4
  24. package/built/html/sequenceDiagram.js +83 -80
  25. package/built/html/sequenceDiagram.js.map +4 -4
  26. package/built/lib/fileSizeFilter.js +26 -0
  27. package/built/lib/fileSizeFilter.js.map +1 -0
  28. package/built/lib/filterAppMap.js +9 -0
  29. package/built/lib/filterAppMap.js.map +1 -0
  30. package/built/lib/flattenMetadata.js +1 -1
  31. package/built/lib/serveAndOpen.js +3 -3
  32. package/built/lib/serveAndOpen.js.map +1 -1
  33. package/built/lib/sqlErrorLog.js +24 -0
  34. package/built/lib/sqlErrorLog.js.map +1 -0
  35. package/package.json +1 -1
  36. package/built/fingerprint/canonicalize/info.js +0 -48
  37. package/built/fingerprint/canonicalize/info.js.map +0 -1
  38. package/built/fingerprint/canonicalize/trace.js +0 -51
  39. package/built/fingerprint/canonicalize/trace.js.map +0 -1
  40. package/built/fingerprint/canonicalize/update.js +0 -67
  41. package/built/fingerprint/canonicalize/update.js.map +0 -1
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fileSizeFilter = exports.DefaultMaxAppMapSizeInMB = void 0;
4
+ const promises_1 = require("fs/promises");
5
+ exports.DefaultMaxAppMapSizeInMB = 50;
6
+ // Skip files that are larger than a specified max size.
7
+ function fileSizeFilter(maxFileSize) {
8
+ return async (file) => {
9
+ let fileStat;
10
+ try {
11
+ fileStat = await (0, promises_1.stat)(file);
12
+ }
13
+ catch (_a) {
14
+ return { enable: false, message: `File ${file} not found` };
15
+ }
16
+ if (fileStat.size <= maxFileSize)
17
+ return { enable: true };
18
+ else
19
+ return {
20
+ enable: false,
21
+ message: `Skipping ${file} as its file size of ${fileStat.size} bytes is larger than the maximum configured file size of ${maxFileSize} bytes`,
22
+ };
23
+ };
24
+ }
25
+ exports.fileSizeFilter = fileSizeFilter;
26
+ //# sourceMappingURL=fileSizeFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSizeFilter.js","sourceRoot":"","sources":["../../src/lib/fileSizeFilter.ts"],"names":[],"mappings":";;;AACA,0CAAmC;AAGtB,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C,wDAAwD;AACxD,SAAgB,cAAc,CAAC,WAAmB;IAChD,OAAO,KAAK,EAAE,IAAY,EAAkD,EAAE;QAC5E,IAAI,QAAe,CAAC;QACpB,IAAI;YACF,QAAQ,GAAG,MAAM,IAAA,eAAI,EAAC,IAAI,CAAC,CAAC;SAC7B;QAAC,WAAM;YACN,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,CAAC;SAC7D;QAED,IAAI,QAAQ,CAAC,IAAI,IAAI,WAAW;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;YAExD,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,YAAY,IAAI,wBAAwB,QAAQ,CAAC,IAAI,6DAA6D,WAAW,QAAQ;aAC/I,CAAC;IACN,CAAC,CAAC;AACJ,CAAC;AAhBD,wCAgBC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const models_1 = require("@appland/models");
4
+ function filterAppMap(appMap, serializedFilter) {
5
+ const appmapFilter = (0, models_1.deserializeFilter)((0, models_1.filterStringToFilterState)(serializedFilter));
6
+ return appmapFilter.filter(appMap, []);
7
+ }
8
+ exports.default = filterAppMap;
9
+ //# sourceMappingURL=filterAppMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterAppMap.js","sourceRoot":"","sources":["../../src/lib/filterAppMap.ts"],"names":[],"mappings":";;AAAA,4CAAuF;AAEvF,SAAwB,YAAY,CAAC,MAAc,EAAE,gBAAwB;IAC3E,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,IAAA,kCAAyB,EAAC,gBAAgB,CAAC,CAAC,CAAC;IACpF,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAHD,+BAGC"}
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const repositoryInfo_1 = __importDefault(require("./repositoryInfo"));
7
7
  /** Flattens metadata into a string-string map suitable for use in telemetry.
8
- * Ignores git, exception and fingerprints.
8
+ * Ignores git and exception.
9
9
  */
10
10
  function flattenMetadata(metadata) {
11
11
  var _a;
@@ -60,7 +60,7 @@ async function serveAndOpen(file, resources, verifyInSubdir, onListen) {
60
60
  if (pathname === '/') {
61
61
  return serveStaticFile(baseDir, file, 'text/html');
62
62
  }
63
- else if (pathname === '/resource') {
63
+ else if (pathname && pathname.startsWith('/resource')) {
64
64
  const pathname = requestUrl.query;
65
65
  if (pathname)
66
66
  serveStaticFile(process.cwd(), decodeURIComponent(pathname));
@@ -96,7 +96,7 @@ exports.default = serveAndOpen;
96
96
  async function serveAndOpenSequenceDiagram(diagramFile, verifyInSubdir, onListen) {
97
97
  return new Promise((resolve) => {
98
98
  serveAndOpen('sequenceDiagram.html', {
99
- diagram: diagramFile,
99
+ diagram: ['resource', encodeURIComponent(diagramFile)].join('?'),
100
100
  }, verifyInSubdir, async (url) => {
101
101
  onListen(url);
102
102
  resolve(url);
@@ -107,7 +107,7 @@ exports.serveAndOpenSequenceDiagram = serveAndOpenSequenceDiagram;
107
107
  async function serveAndOpenAppMap(appMapFile, verifyInSubdir) {
108
108
  return new Promise((resolve) => {
109
109
  serveAndOpen('appmap.html', {
110
- appmap: appMapFile,
110
+ appmap: ['resource', encodeURIComponent(appMapFile)].join('?'),
111
111
  }, verifyInSubdir, async (url) => {
112
112
  await tryOpen(url);
113
113
  resolve(url);
@@ -1 +1 @@
1
- {"version":3,"file":"serveAndOpen.js","sourceRoot":"","sources":["../../src/lib/serveAndOpen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serveAndOpen.js","sourceRoot":"","sources":["../../src/lib/serveAndOpen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const promises_1 = require("fs/promises");
4
+ const SqlErrors = new Set();
5
+ const SqlParseErrorFileName = 'sql_warning.txt';
6
+ let SqlParseErrorFile;
7
+ async function writeErrorToFile(error) {
8
+ if (!SqlParseErrorFile)
9
+ SqlParseErrorFile = await (0, promises_1.open)(SqlParseErrorFileName, 'w');
10
+ SqlParseErrorFile.write([error.toString(), ''].join('\n'));
11
+ }
12
+ process.on('exit', () => {
13
+ if (SqlParseErrorFile)
14
+ SqlParseErrorFile.close();
15
+ SqlParseErrorFile = undefined;
16
+ });
17
+ function sqlErrorLog(parseError) {
18
+ if (!SqlErrors.has(parseError.sql)) {
19
+ writeErrorToFile(parseError);
20
+ SqlErrors.add(parseError.sql);
21
+ }
22
+ }
23
+ exports.default = sqlErrorLog;
24
+ //# sourceMappingURL=sqlErrorLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlErrorLog.js","sourceRoot":"","sources":["../../src/lib/sqlErrorLog.ts"],"names":[],"mappings":";;AACA,0CAA+C;AAE/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5B,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAChD,IAAI,iBAAyC,CAAC;AAE9C,KAAK,UAAU,gBAAgB,CAAC,KAAiB;IAC/C,IAAI,CAAC,iBAAiB;QAAE,iBAAiB,GAAG,MAAM,IAAA,eAAI,EAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAEnF,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;IACtB,IAAI,iBAAiB;QAAE,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAEjD,iBAAiB,GAAG,SAAS,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,SAAwB,WAAW,CAAC,UAAsB;IACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAClC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC/B;AACH,CAAC;AALD,8BAKC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.75.1",
3
+ "version": "3.77.0",
4
4
  "description": "",
5
5
  "bin": "built/cli.js",
6
6
  "publishConfig": {
@@ -1,48 +0,0 @@
1
- "use strict";
2
- /* eslint-disable class-methods-use-this */
3
- const { analyzeSQL } = require('@appland/models');
4
- const EventTree = require('./eventTree');
5
- /**
6
- * At INFO level, the order of labeled function calls matters. SQL query strings
7
- * are collected, sorted and made unique.
8
- */
9
- class Canonicalize extends EventTree {
10
- sql(event) {
11
- return {
12
- kind: 'sql',
13
- sql: {
14
- analyzed_query: analyzeSQL(event.sqlQuery),
15
- },
16
- };
17
- }
18
- httpClientRequest(event) {
19
- return {
20
- kind: 'http_client_request',
21
- route: event.route,
22
- parameter_names: event.message ? event.message.map((m) => m.name) : null,
23
- status_code: event.httpClientResponse ? event.httpClientResponse.status_code : null,
24
- };
25
- }
26
- httpServerRequest(event) {
27
- return {
28
- kind: 'http_server_request',
29
- route: event.route,
30
- parameter_names: event.message ? event.message.map((m) => m.name) : null,
31
- status_code: event.httpServerResponse
32
- ? event.httpServerResponse.status || event.httpServerResponse.status_code
33
- : null,
34
- };
35
- }
36
- functionCall(event) {
37
- const labels = this.whitelistedLabels(event.codeObject.labels);
38
- if (labels.length === 0) {
39
- return null;
40
- }
41
- return {
42
- kind: 'function',
43
- labels,
44
- };
45
- }
46
- }
47
- module.exports = (appmap) => new Canonicalize(appmap).execute();
48
- //# sourceMappingURL=info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/fingerprint/canonicalize/info.js"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEzC;;;GAGG;AACH,MAAM,YAAa,SAAQ,SAAS;IAClC,GAAG,CAAC,KAAK;QACP,OAAO;YACL,IAAI,EAAE,KAAK;YACX,GAAG,EAAE;gBACH,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC3C;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACxE,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;SACpF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACxE,WAAW,EAAE,KAAK,CAAC,kBAAkB;gBACnC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,WAAW;gBACzE,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,MAAM;SACP,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- /* eslint-disable class-methods-use-this */
3
- const { normalizeSQL, analyzeSQL } = require('@appland/models');
4
- const EventTree = require('./eventTree');
5
- /**
6
- * At TRACE level, the order of labeled function calls matters, and all function class
7
- * and method names are retained. SQL queries are also retained in order. HTTP
8
- * server and client request parameters are retained.
9
- */
10
- class Canonicalize extends EventTree {
11
- sql(event) {
12
- const analyzedQuery = analyzeSQL(event.sqlQuery);
13
- const result = {
14
- kind: 'sql',
15
- sql: {
16
- normalized_query: normalizeSQL(event.sqlQuery, event.sql.database_type),
17
- },
18
- };
19
- if (analyzedQuery && typeof analyzedQuery === 'object') {
20
- result.analyzed_query = analyzedQuery;
21
- }
22
- return result;
23
- }
24
- httpClientRequest(event) {
25
- return {
26
- kind: 'http_client_request',
27
- route: event.route,
28
- parameter_names: event.message ? event.message.map((m) => m.name) : null,
29
- status_code: event.httpClientResponse ? event.httpClientResponse.status_code : null,
30
- };
31
- }
32
- httpServerRequest(event) {
33
- return {
34
- kind: 'http_server_request',
35
- route: event.route,
36
- parameter_names: event.message ? event.message.map((m) => m.name) : null,
37
- status_code: event.httpServerResponse
38
- ? event.httpServerResponse.status || event.httpServerResponse.status_code
39
- : null,
40
- };
41
- }
42
- functionCall(event) {
43
- return {
44
- kind: 'function',
45
- function: event.codeObject.id,
46
- labels: [...event.codeObject.labels],
47
- };
48
- }
49
- }
50
- module.exports = (appmap) => new Canonicalize(appmap).execute();
51
- //# sourceMappingURL=trace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../../src/fingerprint/canonicalize/trace.js"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAChE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,YAAa,SAAQ,SAAS;IAClC,GAAG,CAAC,KAAK;QACP,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,KAAK;YACX,GAAG,EAAE;gBACH,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;aACxE;SACF,CAAC;QACF,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACtD,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACxE,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;SACpF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACxE,WAAW,EAAE,KAAK,CAAC,kBAAkB;gBACnC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,WAAW;gBACzE,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;YAC7B,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;SACrC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC"}
@@ -1,67 +0,0 @@
1
- "use strict";
2
- /* eslint-disable class-methods-use-this */
3
- const { analyzeSQL, normalizeSQL } = require('@appland/models');
4
- const EventTree = require('./eventTree');
5
- /**
6
- * At UPDATE level, the order of events is not important, and the amount of data
7
- * retained about events is minimal. Function labels are retained. HTTP server
8
- * and client request method, route, and status code are retained; but not parameter
9
- * names.
10
- */
11
- class Canonicalize extends EventTree {
12
- /**
13
- *
14
- * @param {Event} event
15
- */
16
- sql(event) {
17
- const analyzedQuery = analyzeSQL(event.sqlQuery);
18
- if (typeof analyzedQuery === 'string') {
19
- const sqlLower = event.sqlQuery.toLowerCase();
20
- if (sqlLower.indexOf('insert') !== -1 || sqlLower.indexOf('update') !== -1) {
21
- return {
22
- kind: 'sql',
23
- sql: {
24
- normalized_query: normalizeSQL(event.sqlQuery, event.sql.database_type),
25
- },
26
- };
27
- }
28
- }
29
- else if (analyzedQuery && analyzedQuery.actions) {
30
- if (['insert', 'update', 'delete'].find((x) => analyzedQuery.actions.includes(x))) {
31
- return {
32
- kind: 'sql',
33
- sql: {
34
- analyzed_query: analyzedQuery,
35
- },
36
- };
37
- }
38
- }
39
- return null;
40
- }
41
- httpClientRequest(event) {
42
- return {
43
- kind: 'http_client_request',
44
- route: event.route,
45
- status_code: event.httpClientResponse ? event.httpClientResponse.status_code : null,
46
- };
47
- }
48
- httpServerRequest(event) {
49
- return {
50
- kind: 'http_server_request',
51
- route: event.route,
52
- status_code: event.httpServerResponse ? event.httpServerResponse.status_code : null,
53
- };
54
- }
55
- functionCall(event) {
56
- const labels = this.whitelistedLabels(event.codeObject.labels);
57
- if (labels.length === 0) {
58
- return null;
59
- }
60
- return {
61
- kind: 'function',
62
- labels,
63
- };
64
- }
65
- }
66
- module.exports = (appmap) => new Canonicalize(appmap).execute();
67
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/fingerprint/canonicalize/update.js"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAChE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,YAAa,SAAQ,SAAS;IAClC;;;OAGG;IACH,GAAG,CAAC,KAAK;QACP,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC1E,OAAO;oBACL,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE;wBACH,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;qBACxE;iBACF,CAAC;aACH;SACF;aAAM,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACjD,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjF,OAAO;oBACL,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE;wBACH,cAAc,EAAE,aAAa;qBAC9B;iBACF,CAAC;aACH;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;SACpF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;SACpF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,MAAM;SACP,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC"}