@appland/appmap 3.17.2 → 3.18.3

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 (98) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/built/appmap.html +1 -1
  3. package/built/main.js.LICENSE.txt +5 -5
  4. package/built/main.js.map +1 -1
  5. package/built/package.json +2 -2
  6. package/built/src/cmds/agentInstaller/agentInstaller.js +1 -1
  7. package/built/src/cmds/agentInstaller/agentInstaller.js.map +1 -1
  8. package/built/src/cmds/agentInstaller/agentInstallerProcedure.js +1 -1
  9. package/built/src/cmds/agentInstaller/agentInstallerProcedure.js.map +1 -1
  10. package/built/src/cmds/agentInstaller/agentProcedure.js +6 -6
  11. package/built/src/cmds/agentInstaller/agentProcedure.js.map +1 -1
  12. package/built/src/cmds/agentInstaller/commandRunner.js +4 -4
  13. package/built/src/cmds/agentInstaller/commandRunner.js.map +1 -1
  14. package/built/src/cmds/agentInstaller/commandUtil.js +1 -1
  15. package/built/src/cmds/agentInstaller/commandUtil.js.map +1 -1
  16. package/built/src/cmds/agentInstaller/gradleInstaller.js +6 -6
  17. package/built/src/cmds/agentInstaller/gradleInstaller.js.map +1 -1
  18. package/built/src/cmds/agentInstaller/install-agent.js +4 -4
  19. package/built/src/cmds/agentInstaller/install-agent.js.map +1 -1
  20. package/built/src/cmds/agentInstaller/javaBuildToolInstaller.js +3 -3
  21. package/built/src/cmds/agentInstaller/javaBuildToolInstaller.js.map +1 -1
  22. package/built/src/cmds/agentInstaller/javaScriptAgentInstaller.js +7 -7
  23. package/built/src/cmds/agentInstaller/javaScriptAgentInstaller.js.map +1 -1
  24. package/built/src/cmds/agentInstaller/mavenInstaller.js +5 -5
  25. package/built/src/cmds/agentInstaller/mavenInstaller.js.map +1 -1
  26. package/built/src/cmds/agentInstaller/projectConfiguration.js +7 -7
  27. package/built/src/cmds/agentInstaller/projectConfiguration.js.map +1 -1
  28. package/built/src/cmds/agentInstaller/pythonAgentInstaller.js +8 -8
  29. package/built/src/cmds/agentInstaller/pythonAgentInstaller.js.map +1 -1
  30. package/built/src/cmds/agentInstaller/rubyAgentInstaller.js +5 -5
  31. package/built/src/cmds/agentInstaller/rubyAgentInstaller.js.map +1 -1
  32. package/built/src/cmds/agentInstaller/sourceUtil.js +1 -1
  33. package/built/src/cmds/agentInstaller/sourceUtil.js.map +1 -1
  34. package/built/src/cmds/agentInstaller/status.js +2 -2
  35. package/built/src/cmds/agentInstaller/status.js.map +1 -1
  36. package/built/src/cmds/errors.js +1 -1
  37. package/built/src/cmds/errors.js.map +1 -1
  38. package/built/src/cmds/open/open.js +4 -4
  39. package/built/src/cmds/open/open.js.map +1 -1
  40. package/built/src/cmds/open/openers.js +3 -3
  41. package/built/src/cmds/open/openers.js.map +1 -1
  42. package/built/src/cmds/open/serveAndOpenAppMap.js +13 -13
  43. package/built/src/cmds/open/serveAndOpenAppMap.js.map +1 -1
  44. package/built/src/cmds/open/showAppMap.js +1 -1
  45. package/built/src/cmds/open/showAppMap.js.map +1 -1
  46. package/built/src/cmds/prune/prune.js +2 -2
  47. package/built/src/cmds/prune/prune.js.map +1 -1
  48. package/built/src/cmds/prune/pruneAppMap.js +1 -1
  49. package/built/src/cmds/prune/pruneAppMap.js.map +1 -1
  50. package/built/src/cmds/record/configureConnection.js +3 -3
  51. package/built/src/cmds/record/configureConnection.js.map +1 -1
  52. package/built/src/cmds/record/configureRemainingRequestOptions.js +1 -1
  53. package/built/src/cmds/record/configureRemainingRequestOptions.js.map +1 -1
  54. package/built/src/cmds/record/confirmProcessCharacteristics.js +3 -3
  55. package/built/src/cmds/record/confirmProcessCharacteristics.js.map +1 -1
  56. package/built/src/cmds/record/createRecording.js +5 -1
  57. package/built/src/cmds/record/createRecording.js.map +1 -1
  58. package/built/src/cmds/record/intro.js +1 -1
  59. package/built/src/cmds/record/intro.js.map +1 -1
  60. package/built/src/cmds/record/record.js +7 -7
  61. package/built/src/cmds/record/record.js.map +1 -1
  62. package/built/src/cmds/record/testConnection.js +1 -1
  63. package/built/src/cmds/record/testConnection.js.map +1 -1
  64. package/built/src/cmds/runCommand.js +1 -1
  65. package/built/src/cmds/runCommand.js.map +1 -1
  66. package/built/src/cmds/userInteraction.js +3 -3
  67. package/built/src/cmds/userInteraction.js.map +1 -1
  68. package/built/src/fingerprint/canonicalize/info.js +2 -2
  69. package/built/src/fingerprint/canonicalize/info.js.map +1 -1
  70. package/built/src/fingerprint/canonicalize/sqlNormalized.js +2 -2
  71. package/built/src/fingerprint/canonicalize/sqlNormalized.js.map +1 -1
  72. package/built/src/fingerprint/canonicalize/sqlTables.js +3 -3
  73. package/built/src/fingerprint/canonicalize/sqlTables.js.map +1 -1
  74. package/built/src/fingerprint/canonicalize/trace.js +4 -4
  75. package/built/src/fingerprint/canonicalize/trace.js.map +1 -1
  76. package/built/src/fingerprint/canonicalize/update.js +3 -3
  77. package/built/src/fingerprint/canonicalize/update.js.map +1 -1
  78. package/built/src/functionStats.js +4 -3
  79. package/built/src/functionStats.js.map +1 -1
  80. package/built/src/openapi/command.js +2 -2
  81. package/built/src/openapi/command.js.map +1 -1
  82. package/built/src/openapi/method.js +5 -44
  83. package/built/src/openapi/method.js.map +1 -1
  84. package/built/src/openapi/response.js +2 -2
  85. package/built/src/openapi/response.js.map +1 -1
  86. package/built/src/openapi/util.js +3 -1
  87. package/built/src/openapi/util.js.map +1 -1
  88. package/built/src/search/matchSpec.js +5 -5
  89. package/built/src/search/matchSpec.js.map +1 -1
  90. package/built/src/search/trigram.js +2 -2
  91. package/built/src/search/trigram.js.map +1 -1
  92. package/built/src/service/config/validator.js +5 -3
  93. package/built/src/service/config/validator.js.map +1 -1
  94. package/built/src/telemetry.js +5 -5
  95. package/built/src/telemetry.js.map +1 -1
  96. package/package.json +2 -2
  97. package/built/src/database.js +0 -172
  98. package/built/src/database.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.17.2",
3
+ "version": "3.18.3",
4
4
  "description": "",
5
5
  "bin": "built/src/cli.js",
6
6
  "publishConfig": {
@@ -68,7 +68,7 @@
68
68
  "dependencies": {
69
69
  "@appland/components": "1.23.0",
70
70
  "@appland/diagrams": "1.5.1",
71
- "@appland/models": "^1.8.1",
71
+ "@appland/models": "^1.14.1",
72
72
  "@sidvind/better-ajv-errors": "^0.9.1",
73
73
  "@types/moo": "^0.5.5",
74
74
  "JSONStream": "^1.3.5",
@@ -1,172 +0,0 @@
1
- "use strict";
2
- // @ts-ignore
3
- const { normalizeSQL } = require('@appland/models');
4
- // https://github.com/newrelic/newrelic-ruby-agent/blob/dev/lib/new_relic/agent/database/obfuscation_helpers.rb
5
- // License: https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE
6
- // Apache License 2.0
7
- const COMPONENTS_REGEXP_MAP = {
8
- single_quotes: /'(?:[^']|'')*?(?:\\'.*|'(?!'))/g,
9
- double_quotes: /"(?:[^"]|"")*?(?:\\".*|"(?!"))/g,
10
- dollar_quotes: /(\$(?!\d)[^$]*?\$).*?(?:\1|$)/g,
11
- uuids: /\{?(?:[0-9a-fA-F]-*){32}\}?/g,
12
- numeric_literals: /-?\b(?:[0-9]+\.)?[0-9]+([eE][+-]?[0-9]+)?\b/g,
13
- boolean_literals: /\b(?:true|false|null)\b/gi,
14
- hexadecimal_literals: /0x[0-9a-fA-F]+/g,
15
- comments: /(?:#|--).*?(?=\r|\n|$)/gi,
16
- multi_line_comments: /\/\*(?:[^/]|\/[^*])*?(?:\*\/|\/\*.*)/g,
17
- oracle_quoted_strings: /q'\[.*?(?:\]'|$)|q'\{.*?(?:\}'|$)|q'<.*?(?:>'|$)|q'\(.*?(?:\)'|$)/g,
18
- };
19
- // We use these to check whether the query contains any quote characters
20
- // after obfuscation. If so, that's a good indication that the original
21
- // query was malformed, and so our obfuscation can't reliably find
22
- // literals. In such a case, we'll replace the entire query with a
23
- // placeholder.
24
- const CLEANUP_REGEXP = {
25
- mysql: /'|"|\/\*|\*\//,
26
- mysql2: /'|"|\/\*|\*\//,
27
- postgres: /'|\/\*|\*\/|\$(?!\?)/,
28
- sqlite: /'|\/\*|\*\//,
29
- cassandra: /'|\/\*|\*\//,
30
- oracle: /'|\/\*|\*\//,
31
- oracle_enhanced: /'|\/\*|\*\//,
32
- };
33
- /**
34
- * @type {{string: string[]}}
35
- */
36
- const DIALECT_COMPONENTS = {
37
- // @ts-ignore
38
- fallback: Object.keys(COMPONENTS_REGEXP_MAP),
39
- mysql: [
40
- 'single_quotes',
41
- 'double_quotes',
42
- 'numeric_literals',
43
- 'boolean_literals',
44
- 'hexadecimal_literals',
45
- 'comments',
46
- 'multi_line_comments',
47
- ],
48
- postgres: [
49
- 'single_quotes',
50
- 'dollar_quotes',
51
- 'uuids',
52
- 'numeric_literals',
53
- 'boolean_literals',
54
- 'comments',
55
- 'multi_line_comments',
56
- ],
57
- sqlite: [
58
- 'single_quotes',
59
- 'numeric_literals',
60
- 'boolean_literals',
61
- 'hexadecimal_literals',
62
- 'comments',
63
- 'multi_line_comments',
64
- ],
65
- oracle: [
66
- 'single_quotes',
67
- 'oracle_quoted_strings',
68
- 'numeric_literals',
69
- 'comments',
70
- 'multi_line_comments',
71
- ],
72
- cassandra: [
73
- 'single_quotes',
74
- 'uuids',
75
- 'numeric_literals',
76
- 'boolean_literals',
77
- 'hexadecimal_literals',
78
- 'comments',
79
- 'multi_line_comments',
80
- ],
81
- };
82
- const PLACEHOLDER = '?';
83
- function obfuscateSingleQuoteLiterals(sql) {
84
- if (!COMPONENTS_REGEXP_MAP.single_quotes.test(sql)) {
85
- return sql;
86
- }
87
- return sql.gsub(COMPONENTS_REGEXP_MAP.single_quotes, PLACEHOLDER);
88
- }
89
- /**
90
- * @param {string} dialect
91
- * @returns {RegExp[]}
92
- */
93
- function generateRegexp(dialect) {
94
- const components = DIALECT_COMPONENTS[dialect];
95
- // No Regexp.union in JS
96
- return components.map((component) => COMPONENTS_REGEXP_MAP[component]);
97
- }
98
- const MYSQL_COMPONENTS_REGEXP = generateRegexp('mysql');
99
- const POSTGRES_COMPONENTS_REGEXP = generateRegexp('postgres');
100
- const SQLITE_COMPONENTS_REGEXP = generateRegexp('sqlite');
101
- const ORACLE_COMPONENTS_REGEXP = generateRegexp('oracle');
102
- const CASSANDRA_COMPONENTS_REGEXP = generateRegexp('cassandra');
103
- const FALLBACK_REGEXP = generateRegexp('fallback');
104
- function detectUnmatchedPairs(obfuscated, adapter) {
105
- if (CLEANUP_REGEXP[adapter]) {
106
- return CLEANUP_REGEXP[adapter].test(obfuscated);
107
- }
108
- return CLEANUP_REGEXP.mysql.test(obfuscated);
109
- }
110
- const FAILED_TO_OBFUSCATE_MESSAGE = 'Failed to obfuscate SQL query - quote characters remained after obfuscation';
111
- /**
112
- * Replaces literal query parameters with parameter symbols (e.g. '?');
113
- *
114
- * @param {string} sql
115
- * @param {string} adapter
116
- * @returns {string}
117
- */
118
- function obfuscate(sql, adapter) {
119
- /** @type {RegExp[]} */ let regexp;
120
- switch (adapter) {
121
- case 'mysql':
122
- case 'mysql2':
123
- regexp = MYSQL_COMPONENTS_REGEXP;
124
- break;
125
- case 'postgres':
126
- regexp = POSTGRES_COMPONENTS_REGEXP;
127
- break;
128
- case 'sqlite':
129
- regexp = SQLITE_COMPONENTS_REGEXP;
130
- break;
131
- case 'oracle':
132
- case 'oracle_enhanced':
133
- regexp = ORACLE_COMPONENTS_REGEXP;
134
- break;
135
- case 'cassandra':
136
- regexp = CASSANDRA_COMPONENTS_REGEXP;
137
- break;
138
- default:
139
- regexp = FALLBACK_REGEXP;
140
- }
141
- let obfuscated = sql;
142
- // eslint-disable-next-line no-return-assign
143
- regexp.forEach((re) => (obfuscated = obfuscated.replace(re, PLACEHOLDER)));
144
- if (detectUnmatchedPairs(obfuscated, adapter)) {
145
- obfuscated = FAILED_TO_OBFUSCATE_MESSAGE;
146
- }
147
- return obfuscated;
148
- }
149
- const QUERY_CACHE = {};
150
- function analyzeQuery(
151
- /** @type {import('./search/types').SQL | string} */ query) {
152
- if (typeof query === 'string') {
153
- // This is a problem because we don't know what SQL dialect to apply.
154
- console.warn(`No database_type available for ${query}`);
155
- return normalizeSQL(query);
156
- }
157
- const { sql, database_type: databaseType } = query;
158
- if (sql && databaseType) {
159
- const obfuscatedSQL = obfuscate(sql, databaseType);
160
- const cachedResult = QUERY_CACHE[obfuscatedSQL];
161
- if (cachedResult) {
162
- return cachedResult;
163
- }
164
- const result = normalizeSQL(obfuscatedSQL);
165
- QUERY_CACHE[obfuscatedSQL] = result;
166
- return result;
167
- }
168
- console.warn(`sql or database_type not available for ${JSON.stringify(query)}`);
169
- return normalizeSQL(sql);
170
- }
171
- module.exports = { analyzeQuery, obfuscate, obfuscateSingleQuoteLiterals };
172
- //# sourceMappingURL=database.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database.js"],"names":[],"mappings":"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"}