@appland/appmap 3.30.0 → 3.32.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.
- package/CHANGELOG.md +31 -0
- package/built/appmap.html +1 -1
- package/built/cli.js +2 -121
- package/built/cli.js.map +1 -1
- package/built/cmds/inspect/inspect.js +55 -0
- package/built/cmds/inspect/inspect.js.map +1 -0
- package/built/cmds/record/recordContext.js +6 -3
- package/built/cmds/record/recordContext.js.map +1 -1
- package/built/fingerprint/fingerprintWatchCommand.js +39 -16
- package/built/fingerprint/fingerprintWatchCommand.js.map +1 -1
- package/built/functionStats.js +9 -0
- package/built/functionStats.js.map +1 -1
- package/built/inspect/context.js +66 -0
- package/built/inspect/context.js.map +1 -0
- package/built/inspect/filter.js +8 -5
- package/built/inspect/filter.js.map +1 -1
- package/built/inspect/home.js +14 -9
- package/built/inspect/home.js.map +1 -1
- package/built/inspect/navigate.js +15 -0
- package/built/inspect/navigate.js.map +1 -0
- package/built/inspect/reset.js +5 -5
- package/built/inspect/reset.js.map +1 -1
- package/built/inspect/ui.js +121 -0
- package/built/inspect/ui.js.map +1 -0
- package/built/inspect/undoFilter.js +5 -5
- package/built/inspect/undoFilter.js.map +1 -1
- package/built/main.js.map +1 -1
- package/built/search/{codeObjectMatcher.js → descentCodeObjectMatcher.js} +50 -17
- package/built/search/descentCodeObjectMatcher.js.map +1 -0
- package/built/search/findCodeObjects.js +96 -126
- package/built/search/findCodeObjects.js.map +1 -1
- package/built/search/findEvents.js +1 -1
- package/built/search/findEvents.js.map +1 -1
- package/built/search/iterateCodeObjectMatcher.js +37 -0
- package/built/search/iterateCodeObjectMatcher.js.map +1 -0
- package/built/search/matchSpec.js +11 -3
- package/built/search/matchSpec.js.map +1 -1
- package/built/utils.js +5 -1
- package/built/utils.js.map +1 -1
- package/package.json +23 -4
- package/built/inspect.js +0 -8
- package/built/inspect.js.map +0 -1
- package/built/search/codeObjectMatcher.js.map +0 -1
|
@@ -1,57 +1,90 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../utils");
|
|
2
4
|
const { MATCH_ABORT, MATCH_CONTINUE, MATCH_COMPLETE } = require('./constants');
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Search code objects in the classMap, looking for matches to a spec.
|
|
7
|
-
*
|
|
8
|
-
* @param {import('./types').CodeObjectMatchSpec} matchSpec
|
|
9
|
-
*/
|
|
10
|
-
constructor(matchSpec) {
|
|
5
|
+
class Matcher {
|
|
6
|
+
constructor(matchSpec, classMap) {
|
|
11
7
|
this.matchSpec = matchSpec;
|
|
8
|
+
this.classMap = classMap;
|
|
12
9
|
this.depth = 0;
|
|
13
10
|
}
|
|
11
|
+
matchClassMap() {
|
|
12
|
+
const findMatchingCodeObject = (item, matches) => {
|
|
13
|
+
const matchResult = this.matchCodeObject(item);
|
|
14
|
+
switch (matchResult) {
|
|
15
|
+
case MATCH_ABORT:
|
|
16
|
+
return;
|
|
17
|
+
case MATCH_COMPLETE:
|
|
18
|
+
matches.push(item);
|
|
19
|
+
return;
|
|
20
|
+
case MATCH_CONTINUE:
|
|
21
|
+
default:
|
|
22
|
+
}
|
|
23
|
+
if (item.children) {
|
|
24
|
+
item.children.forEach((child) => {
|
|
25
|
+
child.parent = item;
|
|
26
|
+
findMatchingCodeObject(child, matches);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
this.popCodeObject();
|
|
30
|
+
};
|
|
31
|
+
let matches = [];
|
|
32
|
+
for (const item of this.classMap) {
|
|
33
|
+
findMatchingCodeObject(item, matches);
|
|
34
|
+
}
|
|
35
|
+
return matches;
|
|
36
|
+
}
|
|
14
37
|
/**
|
|
15
38
|
* This method is called in a depth-first traversal of the class map. It
|
|
16
39
|
* determines if the current code object in the traversal matches the spec.
|
|
17
40
|
*
|
|
18
|
-
* @param {import('./types').CodeObject} codeObject
|
|
19
41
|
* @returns {string} MATCH_COMPLETE, MATCH_ABORT, or MATCH_COMPLETE
|
|
20
42
|
*/
|
|
21
|
-
|
|
43
|
+
matchCodeObject(codeObject) {
|
|
22
44
|
if (this.depth < 0) {
|
|
23
45
|
console.warn(`Search depth ${this.depth} is less than zero; aborting`);
|
|
24
46
|
return MATCH_ABORT;
|
|
25
47
|
}
|
|
26
48
|
if (this.depth >= this.matchSpec.tokens.length) {
|
|
27
|
-
if (verbose()) {
|
|
49
|
+
if ((0, utils_1.verbose)()) {
|
|
28
50
|
console.warn(`Aborting match ${codeObject.name} because the search depth ${this.depth} exceeds the spec length ${this.matchSpec.tokens.length}`);
|
|
29
51
|
}
|
|
30
52
|
return MATCH_ABORT;
|
|
31
53
|
}
|
|
32
54
|
const token = this.matchSpec.tokens[this.depth];
|
|
33
55
|
if (!token(codeObject)) {
|
|
34
|
-
if (verbose()) {
|
|
56
|
+
if ((0, utils_1.verbose)()) {
|
|
35
57
|
console.warn(`${JSON.stringify(token)} at depth ${this.depth} does not match '${codeObject.name}'`);
|
|
36
58
|
}
|
|
37
59
|
return MATCH_ABORT;
|
|
38
60
|
}
|
|
39
61
|
if (this.depth === this.matchSpec.tokens.length - 1) {
|
|
40
|
-
if (verbose()) {
|
|
62
|
+
if ((0, utils_1.verbose)()) {
|
|
41
63
|
console.warn(`${JSON.stringify(token)} at depth ${this.depth} matches '${codeObject.name}' and completes the search`);
|
|
42
64
|
}
|
|
43
65
|
this.depth += 1;
|
|
44
66
|
return MATCH_COMPLETE;
|
|
45
67
|
}
|
|
46
|
-
if (verbose()) {
|
|
68
|
+
if ((0, utils_1.verbose)()) {
|
|
47
69
|
console.warn(`${JSON.stringify(token)} at depth ${this.depth} matches '${codeObject.name}' and the search continues`);
|
|
48
70
|
}
|
|
49
71
|
this.depth += 1;
|
|
50
72
|
return MATCH_CONTINUE;
|
|
51
73
|
}
|
|
52
|
-
|
|
74
|
+
popCodeObject() {
|
|
53
75
|
this.depth -= 1;
|
|
54
76
|
}
|
|
55
77
|
}
|
|
56
|
-
|
|
57
|
-
|
|
78
|
+
class DescentCodeObjectMatcher {
|
|
79
|
+
/**
|
|
80
|
+
* Search code objects in the classMap, looking for matches to a spec.
|
|
81
|
+
*/
|
|
82
|
+
constructor(matchSpec) {
|
|
83
|
+
this.matchSpec = matchSpec;
|
|
84
|
+
}
|
|
85
|
+
matchClassMap(classMap) {
|
|
86
|
+
return new Matcher(this.matchSpec, classMap).matchClassMap();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.default = DescentCodeObjectMatcher;
|
|
90
|
+
//# sourceMappingURL=descentCodeObjectMatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"descentCodeObjectMatcher.js","sourceRoot":"","sources":["../../src/search/descentCodeObjectMatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,22 +3,18 @@
|
|
|
3
3
|
/* eslint-disable consistent-return */
|
|
4
4
|
/* eslint-disable max-classes-per-file */
|
|
5
5
|
/* eslint-disable no-else-return */
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @param {string} functionId
|
|
20
|
-
* @returns {CodeObjectMatchSpec[]}
|
|
21
|
-
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const models_1 = require("@appland/models");
|
|
11
|
+
const promises_1 = require("fs/promises");
|
|
12
|
+
const path_1 = require("path");
|
|
13
|
+
const util_1 = require("util");
|
|
14
|
+
const utils_1 = require("../utils");
|
|
15
|
+
const descentCodeObjectMatcher_1 = __importDefault(require("./descentCodeObjectMatcher"));
|
|
16
|
+
const iterateCodeObjectMatcher_1 = __importDefault(require("./iterateCodeObjectMatcher"));
|
|
17
|
+
const matchSpec_1 = require("./matchSpec");
|
|
22
18
|
function parsePackage(functionId) {
|
|
23
19
|
const packageTokens = functionId.split('/');
|
|
24
20
|
return [
|
|
@@ -27,14 +23,10 @@ function parsePackage(functionId) {
|
|
|
27
23
|
// as a single code object in the class map. So when searching for packages,
|
|
28
24
|
// match either style. From a code standpoint, I've found this much simpler than
|
|
29
25
|
// trying to handle different cases in the match spec.
|
|
30
|
-
new FunctionMatchSpec([functionId], []),
|
|
31
|
-
new FunctionMatchSpec(packageTokens, []),
|
|
26
|
+
new matchSpec_1.FunctionMatchSpec([functionId], []),
|
|
27
|
+
new matchSpec_1.FunctionMatchSpec(packageTokens, []),
|
|
32
28
|
];
|
|
33
29
|
}
|
|
34
|
-
/**
|
|
35
|
-
* @param {string} functionId
|
|
36
|
-
* @returns {CodeObjectMatchSpec[]}
|
|
37
|
-
*/
|
|
38
30
|
function parseClass(functionId) {
|
|
39
31
|
const packageTokens = functionId.split('/');
|
|
40
32
|
if (packageTokens.length === 1) {
|
|
@@ -43,14 +35,10 @@ function parseClass(functionId) {
|
|
|
43
35
|
const className = packageTokens.pop();
|
|
44
36
|
const classNames = className.split('::');
|
|
45
37
|
return [
|
|
46
|
-
new FunctionMatchSpec([packageTokens.join('/')], classNames),
|
|
47
|
-
new FunctionMatchSpec(packageTokens, classNames),
|
|
38
|
+
new matchSpec_1.FunctionMatchSpec([packageTokens.join('/')], classNames),
|
|
39
|
+
new matchSpec_1.FunctionMatchSpec(packageTokens, classNames),
|
|
48
40
|
];
|
|
49
41
|
}
|
|
50
|
-
/**
|
|
51
|
-
* @param {string} functionId
|
|
52
|
-
* @returns {CodeObjectMatchSpec[]}
|
|
53
|
-
*/
|
|
54
42
|
function parseFunction(functionId) {
|
|
55
43
|
const packageTokens = functionId.split('/');
|
|
56
44
|
if (packageTokens.length === 1) {
|
|
@@ -60,68 +48,65 @@ function parseFunction(functionId) {
|
|
|
60
48
|
if (classAndFunction.includes('.')) {
|
|
61
49
|
const [className, functionName] = classAndFunction.split('.');
|
|
62
50
|
return [
|
|
63
|
-
new FunctionMatchSpec([packageTokens.join('/')], className.split('::'), true, functionName),
|
|
64
|
-
new FunctionMatchSpec(packageTokens, className.split('::'), true, functionName),
|
|
51
|
+
new matchSpec_1.FunctionMatchSpec([packageTokens.join('/')], className.split('::'), true, functionName),
|
|
52
|
+
new matchSpec_1.FunctionMatchSpec(packageTokens, className.split('::'), true, functionName),
|
|
65
53
|
];
|
|
66
54
|
}
|
|
67
55
|
else if (classAndFunction.includes('#')) {
|
|
68
56
|
const [className, functionName] = classAndFunction.split('#');
|
|
69
57
|
return [
|
|
70
|
-
new FunctionMatchSpec([packageTokens.join('/')], className.split('::'), false, functionName),
|
|
71
|
-
new FunctionMatchSpec(packageTokens, className.split('::'), false, functionName),
|
|
58
|
+
new matchSpec_1.FunctionMatchSpec([packageTokens.join('/')], className.split('::'), false, functionName),
|
|
59
|
+
new matchSpec_1.FunctionMatchSpec(packageTokens, className.split('::'), false, functionName),
|
|
72
60
|
];
|
|
73
61
|
}
|
|
74
62
|
return [];
|
|
75
63
|
}
|
|
76
|
-
/**
|
|
77
|
-
* @param {string} tableName
|
|
78
|
-
* @returns {CodeObjectMatchSpec[]}
|
|
79
|
-
*/
|
|
80
64
|
function parseTable(tableName) {
|
|
81
|
-
return [new TableMatchSpec(tableName)];
|
|
65
|
+
return [new matchSpec_1.TableMatchSpec(tableName)];
|
|
82
66
|
}
|
|
83
|
-
/**
|
|
84
|
-
* @param {string} routeName
|
|
85
|
-
* @returns {CodeObjectMatchSpec[]}
|
|
86
|
-
*/
|
|
87
67
|
function parseRoute(routeName) {
|
|
88
|
-
return [new RouteMatchSpec(routeName)];
|
|
68
|
+
return [new matchSpec_1.RouteMatchSpec(routeName)];
|
|
89
69
|
}
|
|
90
70
|
function parseHTTP() {
|
|
91
|
-
return [new HTTPMatchSpec()];
|
|
71
|
+
return [new matchSpec_1.HTTPMatchSpec()];
|
|
92
72
|
}
|
|
93
73
|
function parseDatabase() {
|
|
94
|
-
return [new DatabaseMatchSpec()];
|
|
74
|
+
return [new matchSpec_1.DatabaseMatchSpec()];
|
|
95
75
|
}
|
|
96
76
|
function parseQuery(query) {
|
|
97
|
-
return [new QueryMatchSpec(query)];
|
|
77
|
+
return [new matchSpec_1.QueryMatchSpec(query)];
|
|
98
78
|
}
|
|
99
|
-
|
|
100
|
-
* @param {string} codeObjectId
|
|
101
|
-
* @returns {CodeObjectMatchSpec[]}
|
|
102
|
-
*/
|
|
103
|
-
function parseCodeObjectId(codeObjectId) {
|
|
79
|
+
function buildCodeObjectMatcher(codeObjectId) {
|
|
104
80
|
const tokens = codeObjectId.split(':');
|
|
105
81
|
const type = tokens.shift();
|
|
106
82
|
if (!type || tokens.length === 0) {
|
|
107
83
|
return [];
|
|
108
84
|
}
|
|
109
85
|
const id = tokens.join(':');
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
86
|
+
const isRegExpMatch = id.match(matchSpec_1.RegExpRegExp);
|
|
87
|
+
if (isRegExpMatch) {
|
|
88
|
+
const body = isRegExpMatch[1];
|
|
89
|
+
const flags = isRegExpMatch[2];
|
|
90
|
+
const pattern = new RegExp(body, flags);
|
|
91
|
+
return [new iterateCodeObjectMatcher_1.default(type, pattern)];
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
const parsers = {
|
|
95
|
+
package: parsePackage,
|
|
96
|
+
class: parseClass,
|
|
97
|
+
function: parseFunction,
|
|
98
|
+
http: parseHTTP,
|
|
99
|
+
route: parseRoute,
|
|
100
|
+
database: parseDatabase,
|
|
101
|
+
query: parseQuery,
|
|
102
|
+
table: parseTable,
|
|
103
|
+
};
|
|
104
|
+
const parser = parsers[type];
|
|
105
|
+
if (!parser) {
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
return parser(id).map((spec) => new descentCodeObjectMatcher_1.default(spec));
|
|
123
109
|
}
|
|
124
|
-
return parser(id);
|
|
125
110
|
}
|
|
126
111
|
/**
|
|
127
112
|
* Find code objects and AppMaps in a directory that match search criteria.
|
|
@@ -129,38 +114,25 @@ function parseCodeObjectId(codeObjectId) {
|
|
|
129
114
|
* These results can be further refined into specific events using FindEvents.
|
|
130
115
|
*/
|
|
131
116
|
class FindCodeObjects {
|
|
132
|
-
/**
|
|
133
|
-
* @param {string} appMapDir
|
|
134
|
-
* @param {string} codeObjectId
|
|
135
|
-
*/
|
|
136
117
|
constructor(appMapDir, codeObjectId) {
|
|
137
118
|
this.appMapDir = appMapDir;
|
|
138
|
-
this.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (verbose()) {
|
|
143
|
-
this.matchSpecs.forEach((spec) => {
|
|
144
|
-
console.warn(`Searching for: ${JSON.stringify(spec.tokens)}`);
|
|
145
|
-
});
|
|
119
|
+
this.codeObjectId = codeObjectId;
|
|
120
|
+
this.matchers = buildCodeObjectMatcher(codeObjectId);
|
|
121
|
+
if ((0, utils_1.verbose)()) {
|
|
122
|
+
console.warn(`Searching for: ${(0, util_1.inspect)(this.matchers)}`);
|
|
146
123
|
}
|
|
147
124
|
}
|
|
148
|
-
/**
|
|
149
|
-
* @returns {Promise<CodeObjectMatch[]>}
|
|
150
|
-
*/
|
|
151
125
|
async find(
|
|
152
126
|
// eslint-disable-next-line no-unused-vars
|
|
153
|
-
fileCountFn = (
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
// Scan classMaps to identify the AppMaps which contain the function.
|
|
158
|
-
// Scan those AppMaps for the function events.
|
|
127
|
+
fileCountFn = (_count) => { }, progressFn = () => { }) {
|
|
128
|
+
// Scan classMaps to identify the AppMaps which contain the code object.
|
|
129
|
+
// Scan those AppMaps for the code object events.
|
|
159
130
|
// Retain the following context for each matching event:
|
|
160
131
|
// * HTTP server request ancestor
|
|
161
132
|
// * Parent calling function, class, and package
|
|
162
133
|
// * Descendent SQL and HTTP client requests
|
|
163
|
-
|
|
134
|
+
// Because matchers is an array, each one may return the same code object.
|
|
135
|
+
const uniqueMatchIds = new Set();
|
|
164
136
|
const matches = [];
|
|
165
137
|
/**
|
|
166
138
|
* Search a class map file for matching code objects.
|
|
@@ -169,59 +141,57 @@ class FindCodeObjects {
|
|
|
169
141
|
* @param {string} fileName
|
|
170
142
|
* @returns void
|
|
171
143
|
*/
|
|
172
|
-
async
|
|
173
|
-
const indexDir = dirname(fileName);
|
|
174
|
-
if (basename(indexDir) === 'Inventory') {
|
|
144
|
+
const checkClassMap = async (fileName) => {
|
|
145
|
+
const indexDir = (0, path_1.dirname)(fileName);
|
|
146
|
+
if ((0, path_1.basename)(indexDir) === 'Inventory') {
|
|
175
147
|
return;
|
|
176
148
|
}
|
|
177
149
|
let appmapName = indexDir;
|
|
178
150
|
if (indexDir.indexOf(process.cwd()) === 0) {
|
|
179
151
|
appmapName = indexDir.substring(process.cwd().length + 1);
|
|
180
152
|
}
|
|
181
|
-
if (verbose()) {
|
|
153
|
+
if ((0, utils_1.verbose)()) {
|
|
182
154
|
console.warn(`Checking AppMap ${appmapName}`);
|
|
183
155
|
}
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
ancestors.forEach((ancestor) => {
|
|
191
|
-
parent = new CodeObjectModel(ancestor, parent);
|
|
192
|
-
});
|
|
193
|
-
return new CodeObjectModel(item, parent);
|
|
194
|
-
};
|
|
195
|
-
let match;
|
|
196
|
-
const matchResult = matcher.match(item);
|
|
197
|
-
switch (matchResult) {
|
|
198
|
-
case MATCH_ABORT:
|
|
199
|
-
return;
|
|
200
|
-
case MATCH_COMPLETE:
|
|
201
|
-
match = { appmap: appmapName, codeObject: buildCodeObject() };
|
|
202
|
-
if (verbose()) {
|
|
203
|
-
console.warn(`Completed match: ${JSON.stringify(match)}`);
|
|
204
|
-
}
|
|
205
|
-
matches.push(match);
|
|
206
|
-
case MATCH_CONTINUE:
|
|
207
|
-
default:
|
|
156
|
+
const buildCodeObject = (codeObject, parent) => {
|
|
157
|
+
codeObject.parent = parent;
|
|
158
|
+
const id = (0, models_1.codeObjectId)(codeObject).join('');
|
|
159
|
+
codeObject.fqid = [codeObject.type, id].join(':');
|
|
160
|
+
if (codeObject.children) {
|
|
161
|
+
codeObject.children.forEach((child) => buildCodeObject(child, codeObject));
|
|
208
162
|
}
|
|
209
|
-
if (item.children) {
|
|
210
|
-
ancestors.push(item);
|
|
211
|
-
item.children.forEach((child) => findMatchingFunction(child, matcher, ancestors));
|
|
212
|
-
ancestors.pop();
|
|
213
|
-
}
|
|
214
|
-
matcher.pop();
|
|
215
163
|
};
|
|
216
|
-
const classMap = JSON.parse(
|
|
217
|
-
|
|
218
|
-
|
|
164
|
+
const classMap = JSON.parse(await (0, promises_1.readFile)(fileName, 'utf-8'));
|
|
165
|
+
classMap.forEach((co) => buildCodeObject(co));
|
|
166
|
+
this.matchers.forEach((matcher) => {
|
|
167
|
+
let codeObjects;
|
|
168
|
+
try {
|
|
169
|
+
codeObjects = matcher.matchClassMap(classMap);
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
console.warn(e);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
for (const co of codeObjects) {
|
|
176
|
+
const matchKey = [appmapName, co.fqid].join('@');
|
|
177
|
+
if (uniqueMatchIds.has(matchKey))
|
|
178
|
+
return;
|
|
179
|
+
uniqueMatchIds.add(matchKey);
|
|
180
|
+
const match = {
|
|
181
|
+
appmap: appmapName,
|
|
182
|
+
codeObject: co,
|
|
183
|
+
};
|
|
184
|
+
if ((0, utils_1.verbose)()) {
|
|
185
|
+
console.warn(`Completed match: ${co.fqid}`);
|
|
186
|
+
}
|
|
187
|
+
matches.push(match);
|
|
188
|
+
}
|
|
219
189
|
});
|
|
220
190
|
progressFn();
|
|
221
|
-
}
|
|
222
|
-
await processFiles(`${this.appMapDir}/**/classMap.json`, checkClassMap.bind(this), fileCountFn);
|
|
191
|
+
};
|
|
192
|
+
await (0, utils_1.processFiles)(`${this.appMapDir}/**/classMap.json`, checkClassMap.bind(this), fileCountFn);
|
|
223
193
|
return matches;
|
|
224
194
|
}
|
|
225
195
|
}
|
|
226
|
-
|
|
196
|
+
exports.default = FindCodeObjects;
|
|
227
197
|
//# sourceMappingURL=findCodeObjects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findCodeObjects.js","sourceRoot":"","sources":["../../src/search/findCodeObjects.
|
|
1
|
+
{"version":3,"file":"findCodeObjects.js","sourceRoot":"","sources":["../../src/search/findCodeObjects.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,7 +109,7 @@ class FindEvents {
|
|
|
109
109
|
const codeObjectMatch = () => {
|
|
110
110
|
const event = stack[stack.length - 1];
|
|
111
111
|
const matchCodeObject = (/** @type {CodeObject} */ eventCodeObject) => {
|
|
112
|
-
if (this.codeObject.
|
|
112
|
+
if (this.codeObject.fqid === eventCodeObject.fqid) {
|
|
113
113
|
return true;
|
|
114
114
|
}
|
|
115
115
|
if (!eventCodeObject.parent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findEvents.js","sourceRoot":"","sources":["../../src/search/findEvents.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"findEvents.js","sourceRoot":"","sources":["../../src/search/findEvents.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../utils");
|
|
4
|
+
class IterateCodeObjectMatcher {
|
|
5
|
+
/**
|
|
6
|
+
* Search code objects in the classMap, looking for matches to a spec.
|
|
7
|
+
*/
|
|
8
|
+
constructor(type, pattern) {
|
|
9
|
+
this.type = type;
|
|
10
|
+
this.pattern = pattern;
|
|
11
|
+
}
|
|
12
|
+
matchClassMap(classMap) {
|
|
13
|
+
const findMatchingCodeObject = (item, matches) => {
|
|
14
|
+
if (item.type === this.type) {
|
|
15
|
+
const [_type, id] = item.fqid.split(':');
|
|
16
|
+
if (this.pattern.test(id)) {
|
|
17
|
+
if ((0, utils_1.verbose)())
|
|
18
|
+
console.log(`${this.pattern} matches ${item.fqid}`);
|
|
19
|
+
matches.push(item);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (item.children) {
|
|
23
|
+
item.children.forEach((child) => {
|
|
24
|
+
child.parent = item;
|
|
25
|
+
findMatchingCodeObject(child, matches);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
let matches = [];
|
|
30
|
+
for (const item of classMap) {
|
|
31
|
+
findMatchingCodeObject(item, matches);
|
|
32
|
+
}
|
|
33
|
+
return matches;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.default = IterateCodeObjectMatcher;
|
|
37
|
+
//# sourceMappingURL=iterateCodeObjectMatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterateCodeObjectMatcher.js","sourceRoot":"","sources":["../../src/search/iterateCodeObjectMatcher.ts"],"names":[],"mappings":";;AAEA,oCAAmC;AAGnC,MAAqB,wBAAwB;IAC3C;;OAEG;IACH,YAAmB,IAAY,EAAS,OAAe;QAApC,SAAI,GAAJ,IAAI,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAE3D,aAAa,CAAC,QAAsB;QAClC,MAAM,sBAAsB,GAAG,CAC7B,IAAgB,EAChB,OAAqB,EACf,EAAE;YACR,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC3B,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBACzB,IAAI,IAAA,eAAO,GAAE;wBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBACnE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpB;aACF;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC9B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;oBACpB,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEF,IAAI,OAAO,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACvC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAjCD,2CAiCC"}
|
|
@@ -6,6 +6,8 @@ const { analyzeSQL, normalizeSQL } = require('@appland/models');
|
|
|
6
6
|
* @typedef {(codeObject: CodeObject) => boolean} MatchFn
|
|
7
7
|
* @typedef {import('./types').SQLInfo | string} SQLInfo
|
|
8
8
|
*/
|
|
9
|
+
// A pattern to match regular expressions.
|
|
10
|
+
const RegExpRegExp = /^%r{([^}]+)}(\w*)$/;
|
|
9
11
|
/**
|
|
10
12
|
* @param {string} expectedType
|
|
11
13
|
* @returns {MatchFn}
|
|
@@ -86,10 +88,15 @@ function matchTable(tableName) {
|
|
|
86
88
|
if (codeObject.type !== 'query') {
|
|
87
89
|
return false;
|
|
88
90
|
}
|
|
89
|
-
const queryInfo = /** @type {SQLInfo} */ analyzeSQL(
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
const queryInfo = /** @type {SQLInfo} */ analyzeSQL(codeObject.name);
|
|
92
|
+
/*
|
|
93
|
+
// TODO: analyzeSQL expects a string, we are passing it an object.
|
|
94
|
+
// database_type doesn't seem to be expected or needed.
|
|
95
|
+
{
|
|
96
|
+
sql: codeObject.name,
|
|
97
|
+
database_type: codeObject.database_type,
|
|
92
98
|
});
|
|
99
|
+
*/
|
|
93
100
|
if (typeof queryInfo !== 'object') {
|
|
94
101
|
return false;
|
|
95
102
|
}
|
|
@@ -164,6 +171,7 @@ class RouteMatchSpec {
|
|
|
164
171
|
}
|
|
165
172
|
}
|
|
166
173
|
module.exports = {
|
|
174
|
+
RegExpRegExp,
|
|
167
175
|
DatabaseMatchSpec,
|
|
168
176
|
FunctionMatchSpec,
|
|
169
177
|
HTTPMatchSpec,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchSpec.js","sourceRoot":"","sources":["../../src/search/matchSpec.js"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEhE;;;;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,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,aAAa;YACxD,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,aAAa;YAC3D,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,aAAa,CAC1D,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,UAAU,CAAC
|
|
1
|
+
{"version":3,"file":"matchSpec.js","sourceRoot":"","sources":["../../src/search/matchSpec.js"],"names":[],"mappings":"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"}
|
package/built/utils.js
CHANGED
|
@@ -69,13 +69,17 @@ async function writeFileAtomic(dirName, fileName, jobId, data) {
|
|
|
69
69
|
* @param {(filePath: string): void} fn
|
|
70
70
|
* @param {(fileCount: number): void} fileCountFn
|
|
71
71
|
*/
|
|
72
|
-
async function processFiles(pattern, fn,
|
|
72
|
+
async function processFiles(pattern, fn,
|
|
73
|
+
// eslint-disable-next-line no-unused-vars
|
|
74
|
+
fileCountFn = (/** @type {number} */ count) => { }) {
|
|
73
75
|
const q = queue(fn, 5);
|
|
74
76
|
q.pause();
|
|
75
77
|
const files = await promisify(glob)(pattern);
|
|
76
78
|
if (fileCountFn) {
|
|
77
79
|
fileCountFn(files.length);
|
|
78
80
|
}
|
|
81
|
+
if (files.length === 0)
|
|
82
|
+
return;
|
|
79
83
|
files.forEach((file) => q.push(file));
|
|
80
84
|
q.resume();
|
|
81
85
|
await q.drain();
|