@appland/appmap 3.17.1 → 3.18.2

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 (45) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/built/appmap.html +1 -1
  3. package/built/main.js.LICENSE.txt +2 -2
  4. package/built/main.js.map +1 -1
  5. package/built/package.json +1 -1
  6. package/built/src/cmds/agentInstaller/agentInstaller.js.map +1 -1
  7. package/built/src/cmds/agentInstaller/agentInstallerProcedure.js +1 -4
  8. package/built/src/cmds/agentInstaller/agentInstallerProcedure.js.map +1 -1
  9. package/built/src/cmds/agentInstaller/gradleInstaller.js +0 -7
  10. package/built/src/cmds/agentInstaller/gradleInstaller.js.map +1 -1
  11. package/built/src/cmds/agentInstaller/javaScriptAgentInstaller.js +0 -12
  12. package/built/src/cmds/agentInstaller/javaScriptAgentInstaller.js.map +1 -1
  13. package/built/src/cmds/agentInstaller/mavenInstaller.js +0 -7
  14. package/built/src/cmds/agentInstaller/mavenInstaller.js.map +1 -1
  15. package/built/src/cmds/agentInstaller/pythonAgentInstaller.js +0 -12
  16. package/built/src/cmds/agentInstaller/pythonAgentInstaller.js.map +1 -1
  17. package/built/src/cmds/agentInstaller/rubyAgentInstaller.js +0 -6
  18. package/built/src/cmds/agentInstaller/rubyAgentInstaller.js.map +1 -1
  19. package/built/src/cmds/record/createRecording.js +5 -1
  20. package/built/src/cmds/record/createRecording.js.map +1 -1
  21. package/built/src/fingerprint/canonicalize/info.js +2 -2
  22. package/built/src/fingerprint/canonicalize/info.js.map +1 -1
  23. package/built/src/fingerprint/canonicalize/sqlNormalized.js +2 -2
  24. package/built/src/fingerprint/canonicalize/sqlNormalized.js.map +1 -1
  25. package/built/src/fingerprint/canonicalize/sqlTables.js +2 -2
  26. package/built/src/fingerprint/canonicalize/sqlTables.js.map +1 -1
  27. package/built/src/fingerprint/canonicalize/trace.js +3 -3
  28. package/built/src/fingerprint/canonicalize/trace.js.map +1 -1
  29. package/built/src/fingerprint/canonicalize/update.js +3 -3
  30. package/built/src/fingerprint/canonicalize/update.js.map +1 -1
  31. package/built/src/functionStats.js +3 -3
  32. package/built/src/functionStats.js.map +1 -1
  33. package/built/src/openapi/method.js +5 -44
  34. package/built/src/openapi/method.js.map +1 -1
  35. package/built/src/openapi/response.js +2 -2
  36. package/built/src/openapi/response.js.map +1 -1
  37. package/built/src/openapi/util.js +3 -1
  38. package/built/src/openapi/util.js.map +1 -1
  39. package/built/src/search/matchSpec.js +5 -5
  40. package/built/src/search/matchSpec.js.map +1 -1
  41. package/built/src/search/trigram.js +2 -2
  42. package/built/src/search/trigram.js.map +1 -1
  43. package/package.json +2 -2
  44. package/built/src/database.js +0 -172
  45. package/built/src/database.js.map +0 -1
@@ -17,6 +17,8 @@ function classNameToOpenAPIType(className) {
17
17
  case 'trueclass':
18
18
  case 'falseclass':
19
19
  return 'boolean';
20
+ case 'string':
21
+ return 'string';
20
22
  default:
21
23
  return undefined;
22
24
  }
@@ -51,7 +53,7 @@ function classNameToOpenAPIType(className) {
51
53
  const mapper = (t) => mapRubyType(t) || mapPythonType(t) || mapJavaType(t);
52
54
  const mapped = mapper(className.toLowerCase());
53
55
  if (!mapped && !unrecognizedTypes.has(className)) {
54
- console.warn(`Warning: don't know how to map "${className}" to an OpenAPI type. You'll need to update the generated file.`);
56
+ console.warn(`Warning: Don't know how to map "${className}" to an OpenAPI type. You'll need to update the generated file.`);
55
57
  unrecognizedTypes.add(className);
56
58
  return className;
57
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/openapi/util.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/openapi/util.js"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /* eslint-disable max-classes-per-file */
3
- const { analyzeQuery, obfuscate } = require('../database');
3
+ const { analyzeSQL, normalizeSQL } = require('@appland/models');
4
4
  /**
5
5
  * @typedef {import('./types').CodeObject} CodeObject
6
6
  * @typedef {(codeObject: CodeObject) => boolean} MatchFn
@@ -70,9 +70,9 @@ function matchQuery(expectedQuery) {
70
70
  }
71
71
  // TODO: Brute force is probably not a good idea.
72
72
  // Need to store the database type on the codeObject.
73
- return (obfuscate(codeObject.name, 'mysql') === expectedQuery ||
74
- obfuscate(codeObject.name, 'postgres') === expectedQuery ||
75
- obfuscate(codeObject.name, 'sqlite') === expectedQuery);
73
+ return (normalizeSQL(codeObject.name, 'mysql') === expectedQuery ||
74
+ normalizeSQL(codeObject.name, 'postgres') === expectedQuery ||
75
+ normalizeSQL(codeObject.name, 'sqlite') === expectedQuery);
76
76
  };
77
77
  fn.toJSON = () => `query ${expectedQuery}`;
78
78
  return fn;
@@ -86,7 +86,7 @@ function matchTable(tableName) {
86
86
  if (codeObject.type !== 'query') {
87
87
  return false;
88
88
  }
89
- const queryInfo = /** @type {SQLInfo} */ analyzeQuery({
89
+ const queryInfo = /** @type {SQLInfo} */ analyzeSQL({
90
90
  sql: codeObject.name,
91
91
  database_type: codeObject.database_type,
92
92
  });
@@ -1 +1 @@
1
- {"version":3,"file":"matchSpec.js","sourceRoot":"","sources":["../../../src/search/matchSpec.js"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAE3D;;;;GAIG;AAEH;;;GAGG;AACH,SAAS,SAAS,CAAC,YAAY;IAC7B,MAAM,EAAE,GAAG,CAAC,yBAAyB,CAAC,UAAU,EAAE,EAAE,CAClD,UAAU,CAAC,IAAI,KAAK,YAAY,CAAC;IACnC,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC;IAC/B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,YAAY,EAAE,YAAY;IAClD,MAAM,EAAE,GAAG,CAAC,yBAAyB,CAAC,UAAU,EAAE,EAAE,CAClD,UAAU,CAAC,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,CAAC;IACvE,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAI;IACxB,OAAO,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AACD;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAI;IACtB,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AACD;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAI,EAAE,QAAQ;IACnC,MAAM,EAAE,GAAG,CAAC,yCAAyC,CAAC,UAAU,EAAE,EAAE,CAClE,UAAU,CAAC,IAAI,KAAK,IAAI;QACxB,UAAU,CAAC,IAAI,KAAK,UAAU;QAC9B,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC;IACjC,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;IACjE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,aAAa;IAC/B,MAAM,EAAE,GAAG,CAAC,yCAAyC,CAAC,UAAU,EAAE,EAAE;QAClE,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,iDAAiD;QACjD,qDAAqD;QACrD,OAAO,CACL,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,aAAa;YACrD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,aAAa;YACxD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,aAAa,CACvD,CAAC;IACJ,CAAC,CAAC;IACF,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,aAAa,EAAE,CAAC;IAC3C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,SAAS;IAC3B,MAAM,EAAE,GAAG,CAAC,yCAAyC,CAAC,UAAU,EAAE,EAAE;QAClE,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,YAAY,CAAC;YACpD,GAAG,EAAE,UAAU,CAAC,IAAI;YACpB,aAAa,EAAE,UAAU,CAAC,aAAa;SACxC,CAAC,CAAC;QACH,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,SAAS;IAChB,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,SAAS;IAC3B,OAAO,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,iBAAiB;IACrB;;;;;;OAMG;IACH,YAAY,YAAY,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI;QACxE,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,YAAY,EAAE;YAChB,cAAc,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC;CACF;AAED,MAAM,aAAa;IACjB;QACE,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,iBAAiB;IACrB;QACE,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,cAAc;IAClB;;OAEG;IACH,YAAY,SAAS;QACnB,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,cAAc;IAClB;;OAEG;IACH,YAAY,KAAK;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;CACF;AAED,MAAM,cAAc;IAClB;;OAEG;IACH,YAAY,SAAS;QACnB,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG;IACf,iBAAiB;IACjB,iBAAiB;IACjB,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;CACf,CAAC"}
1
+ {"version":3,"file":"matchSpec.js","sourceRoot":"","sources":["../../../src/search/matchSpec.js"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
- const { obfuscate } = require('../database');
2
+ const { normalizeSQL } = require('@appland/models');
3
3
  /** @typedef {import('./types').CodeObject} CodeObject */
4
4
  /** @typedef {import('./types').Event} Event */
5
5
  const normalizeId = (
6
6
  /** @type {CodeObject} */ co,
7
7
  /** @type {Event} */ evt) => {
8
8
  if (co && co.type === 'query') {
9
- return obfuscate(evt.sqlQuery, evt.sql.database_type);
9
+ return normalizeSQL(evt.sqlQuery, evt.sql.database_type);
10
10
  }
11
11
  return co.id;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"trigram.js","sourceRoot":"","sources":["../../../src/search/trigram.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trigram.js","sourceRoot":"","sources":["../../../src/search/trigram.js"],"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.1",
3
+ "version": "3.18.2",
4
4
  "description": "",
5
5
  "bin": "built/src/cli.js",
6
6
  "publishConfig": {
@@ -66,7 +66,7 @@
66
66
  "vuex"
67
67
  ],
68
68
  "dependencies": {
69
- "@appland/components": "1.21.0",
69
+ "@appland/components": "1.23.0",
70
70
  "@appland/diagrams": "1.5.1",
71
71
  "@appland/models": "^1.8.1",
72
72
  "@sidvind/better-ajv-errors": "^0.9.1",
@@ -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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"}