@appland/appmap 3.140.1 → 3.141.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 (51) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/built/cmds/index/index.js +1 -1
  3. package/built/cmds/index/index.js.map +1 -1
  4. package/built/cmds/index/rpc.js +2 -1
  5. package/built/cmds/index/rpc.js.map +1 -1
  6. package/built/docs/appmap-docs.md +27 -0
  7. package/built/docs/get-started-with-appmap/add-appmap-to-your-code-editor.md +98 -0
  8. package/built/docs/get-started-with-appmap/index.md +20 -0
  9. package/built/docs/get-started-with-appmap/making-appmap-data.md +151 -0
  10. package/built/docs/get-started-with-appmap/navie-ai-quickstart.md +73 -0
  11. package/built/docs/guides/exporting-appmap-diagrams.md +1 -1
  12. package/built/docs/guides/handling-large-appmap-diagrams.md +1 -1
  13. package/built/docs/guides/index.md +3 -1
  14. package/built/docs/{navie/using-navie.md → guides/navie-best-practices.md} +20 -14
  15. package/built/docs/guides/navigating-code-objects.md +67 -0
  16. package/built/docs/guides/openapi.md +1 -1
  17. package/built/docs/guides/reading-sql-in-appmap-diagrams.md +1 -1
  18. package/built/docs/guides/refine-appmap-data.md +1 -1
  19. package/built/docs/guides/reverse-engineering.md +2 -2
  20. package/built/docs/guides/runtime-code-review.md +1 -1
  21. package/built/docs/guides/{configuring-analysis.md → using-appmap-analysis.md} +53 -5
  22. package/built/docs/guides/using-appmap-diagrams.md +2 -2
  23. package/built/docs/integrations/atlassian-confluence.md +1 -1
  24. package/built/docs/navie/bring-your-own-model.md +148 -12
  25. package/built/docs/navie/how-navie-works.md +1 -1
  26. package/built/docs/navie/index.md +1 -3
  27. package/built/docs/reference/appmap-java.md +1 -1
  28. package/built/docs/reference/appmap-python.md +46 -20
  29. package/built/fulltext/FileIndex.js +51 -17
  30. package/built/fulltext/FileIndex.js.map +1 -1
  31. package/built/fulltext/listGitProjectFIles.js +42 -18
  32. package/built/fulltext/listGitProjectFIles.js.map +1 -1
  33. package/built/fulltext/listProjectFiles.js +5 -5
  34. package/built/fulltext/listProjectFiles.js.map +1 -1
  35. package/built/fulltext/queryKeywords.js +1 -1
  36. package/built/fulltext/queryKeywords.js.map +1 -1
  37. package/built/fulltext/querySymbols.js +58 -0
  38. package/built/fulltext/querySymbols.js.map +1 -0
  39. package/built/html/appmap.js +5 -2
  40. package/built/html/appmap.js.map +2 -2
  41. package/built/html/sequenceDiagram.js +5 -2
  42. package/built/html/sequenceDiagram.js.map +2 -2
  43. package/built/lib/handleWorkingDirectory.js +2 -2
  44. package/built/lib/handleWorkingDirectory.js.map +1 -1
  45. package/built/rpc/configuration.js +2 -0
  46. package/built/rpc/configuration.js.map +1 -1
  47. package/built/telemetry.js +4 -7
  48. package/built/telemetry.js.map +1 -1
  49. package/package.json +1 -2
  50. package/built/docs/navie/byok/intellij.md +0 -35
  51. package/built/docs/navie/byok/vs-code.md +0 -115
@@ -36,7 +36,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
36
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
39
- var _FileIndex_indexDirectory, _FileIndex_insert;
39
+ var _FileIndex_insert;
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
41
  exports.filterFiles = exports.buildFileIndex = exports.restoreFileIndex = exports.FileIndex = void 0;
42
42
  const promises_1 = require("node:fs/promises");
@@ -49,14 +49,18 @@ const listProjectFiles_1 = __importDefault(require("./listProjectFiles"));
49
49
  const queryKeywords_1 = __importDefault(require("./queryKeywords"));
50
50
  const telemetry_1 = require("../telemetry");
51
51
  const listGitProjectFIles_1 = __importDefault(require("./listGitProjectFIles"));
52
+ const querySymbols_1 = __importDefault(require("./querySymbols"));
52
53
  class FileIndex {
53
54
  constructor(database) {
54
55
  this.database = database;
55
- _FileIndex_indexDirectory.set(this, this.database.transaction((directory, fileNames) => {
56
- for (const fileName of fileNames) {
57
- this.indexFile(directory, fileName);
56
+ this.indexDirectory = this.database.transaction((directory, fileNames, options, offset, limit) => {
57
+ const startIndex = offset !== null && offset !== void 0 ? offset : 0;
58
+ const endIndex = limit ? Math.min(startIndex + limit, fileNames.length) : fileNames.length;
59
+ for (let i = startIndex; i < endIndex; i++) {
60
+ const fileName = fileNames[i];
61
+ this.indexFile(directory, fileName, options);
58
62
  }
59
- }));
63
+ });
60
64
  _FileIndex_insert.set(this, void 0);
61
65
  this.database.exec(`CREATE VIRTUAL TABLE files USING fts5(directory UNINDEXED, file_name UNINDEXED, terms, tokenize = 'porter unicode61')`);
62
66
  this.database.pragma('journal_mode = OFF');
@@ -80,23 +84,50 @@ class FileIndex {
80
84
  score: row.score,
81
85
  }));
82
86
  }
83
- async indexDirectories(directories) {
87
+ async indexDirectories(directories, batchSize = 100) {
84
88
  for (const directory of directories) {
85
- const gitState = await telemetry_1.Git.state(directory);
86
- let fileNames;
87
- if (gitState === telemetry_1.GitState.Ok) {
88
- fileNames = await (0, listGitProjectFIles_1.default)(directory);
89
+ try {
90
+ const startTime = new Date().getTime();
91
+ const gitState = await telemetry_1.Git.state(directory);
92
+ const fileNames = gitState === telemetry_1.GitState.Ok
93
+ ? await (0, listGitProjectFIles_1.default)(directory)
94
+ : await (0, listProjectFiles_1.default)(directory);
95
+ const filteredFileNames = await filterFiles(directory, fileNames);
96
+ const options = {
97
+ allowGenericParsing: fileNames.length < 15000,
98
+ allowSymbols: fileNames.length < 15000,
99
+ };
100
+ if ((0, utils_1.verbose)()) {
101
+ if (options.allowSymbols) {
102
+ console.log('Symbol parsing is enabled.');
103
+ console.log(`Generic symbol parsing is ${options.allowGenericParsing ? 'enabled.' : 'disabled.'}`);
104
+ }
105
+ else {
106
+ console.log('Symbol parsing is disabled.');
107
+ }
108
+ }
109
+ for (let i = 0; i < filteredFileNames.length; i += batchSize) {
110
+ this.indexDirectory(directory, filteredFileNames, options, i, batchSize);
111
+ // yield to the event loop after each chunk
112
+ await new Promise((resolve) => setTimeout(resolve, 0));
113
+ }
114
+ const endTime = new Date().getTime();
115
+ console.log(`Indexed ${fileNames.length} files in ${directory} in ${endTime - startTime}ms`);
89
116
  }
90
- else {
91
- fileNames = await (0, listProjectFiles_1.default)(directory);
117
+ catch (error) {
118
+ console.error(`Error processing directory ${directory}:`, error);
92
119
  }
93
- __classPrivateFieldGet(this, _FileIndex_indexDirectory, "f").call(this, directory, await filterFiles(directory, fileNames));
94
120
  }
95
121
  }
96
- indexFile(directory, filePath) {
122
+ indexFile(directory, filePath, options = {}) {
123
+ const { allowGenericParsing = true, allowSymbols = true } = options;
97
124
  const fileNameTokens = filePath.split(node_path_1.default.sep);
98
125
  try {
99
- const terms = (0, queryKeywords_1.default)(fileNameTokens).join(' ');
126
+ let terms = (0, queryKeywords_1.default)(fileNameTokens).join(' ');
127
+ if (allowSymbols) {
128
+ const symbols = (0, querySymbols_1.default)(node_path_1.default.join(directory, filePath), allowGenericParsing);
129
+ terms += ` ${(0, queryKeywords_1.default)(symbols).sort().join(' ')}`;
130
+ }
100
131
  if ((0, utils_1.verbose)())
101
132
  console.log(`Indexing file path ${filePath} with terms ${terms}`);
102
133
  __classPrivateFieldGet(this, _FileIndex_insert, "f").run(directory, filePath, terms);
@@ -108,7 +139,7 @@ class FileIndex {
108
139
  }
109
140
  }
110
141
  exports.FileIndex = FileIndex;
111
- _FileIndex_indexDirectory = new WeakMap(), _FileIndex_insert = new WeakMap();
142
+ _FileIndex_insert = new WeakMap();
112
143
  function restoreFileIndex(indexFileName) {
113
144
  (0, assert_1.default)((0, fs_1.existsSync)(indexFileName), `Index file ${indexFileName} does not exist`);
114
145
  const database = new better_sqlite3_1.default(indexFileName);
@@ -182,6 +213,8 @@ const BINARY_FILE_EXTENSIONS = [
182
213
  'class',
183
214
  'so',
184
215
  'dll',
216
+ 'dylib',
217
+ 'o',
185
218
  'exe',
186
219
  'min.js',
187
220
  'min.css',
@@ -189,7 +222,8 @@ const BINARY_FILE_EXTENSIONS = [
189
222
  async function filterFiles(directory, fileNames) {
190
223
  const result = [];
191
224
  for (const fileName of fileNames) {
192
- if (BINARY_FILE_EXTENSIONS.some((ext) => fileName.toLowerCase().endsWith(ext)))
225
+ const fileExtension = node_path_1.default.extname(fileName).toLowerCase();
226
+ if (BINARY_FILE_EXTENSIONS.some((ext) => ext === fileExtension))
193
227
  continue;
194
228
  try {
195
229
  const stats = await (0, promises_1.stat)((0, node_path_1.join)(directory, fileName));
@@ -1 +1 @@
1
- {"version":3,"file":"FileIndex.js","sourceRoot":"","sources":["../../src/fulltext/FileIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileIndex.js","sourceRoot":"","sources":["../../src/fulltext/FileIndex.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,55 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const executeCommand_1 = require("../lib/executeCommand");
4
3
  const utils_1 = require("../utils");
4
+ const node_child_process_1 = require("node:child_process");
5
+ const util_1 = require("util");
6
+ const exec = (0, util_1.promisify)(node_child_process_1.exec);
5
7
  // Run git ls-files and git status to get a list of all git-managed files. By doing it this way,
6
8
  // we automatically apply any .gitignore rules.
7
9
  async function listGitProjectFiles(directory) {
8
10
  const lsFiles = async () => {
9
- const gitFiles = (await (0, executeCommand_1.executeCommand)('git ls-files', (0, utils_1.verbose)(), (0, utils_1.verbose)(), (0, utils_1.verbose)(), [0], directory)).split('\n');
10
- return gitFiles.filter(Boolean);
11
+ try {
12
+ const { stdout } = await exec('git ls-files', {
13
+ cwd: directory,
14
+ maxBuffer: 1024 ** 2 * 20, // 20 MB
15
+ });
16
+ if ((0, utils_1.verbose)())
17
+ console.log(stdout);
18
+ return stdout.split('\n').filter(Boolean);
19
+ }
20
+ catch (e) {
21
+ if ((0, utils_1.verbose)()) {
22
+ console.error('`git ls-files` failed');
23
+ console.error(e);
24
+ }
25
+ return [];
26
+ }
11
27
  };
12
28
  const statusFiles = async () => {
13
- return (await (0, executeCommand_1.executeCommand)('git status --porcelain', (0, utils_1.verbose)(), (0, utils_1.verbose)(), (0, utils_1.verbose)(), [0], directory))
14
- .split('\n')
15
- .map((line) => {
16
- const [, fileName] = line.split(' ');
17
- return fileName;
18
- });
19
- };
20
- const result = new Set();
21
- // TODO: Boost new and modified files.
22
- for (const file of [...(await lsFiles()), ...(await statusFiles())]) {
23
- if (!file) {
24
- continue;
29
+ try {
30
+ const { stdout } = await exec('git status --porcelain', {
31
+ cwd: directory,
32
+ maxBuffer: 1024 ** 2 * 20, // 20 MB
33
+ });
34
+ if ((0, utils_1.verbose)())
35
+ console.log(stdout);
36
+ return stdout
37
+ .split('\n')
38
+ .map((line) => {
39
+ const [, fileName] = line.split(' ');
40
+ return fileName;
41
+ })
42
+ .filter(Boolean);
25
43
  }
26
- result.add(file);
27
- }
28
- return [...result];
44
+ catch (e) {
45
+ if ((0, utils_1.verbose)()) {
46
+ console.error('`git status --porcelain` failed');
47
+ console.error(e);
48
+ }
49
+ return [];
50
+ }
51
+ };
52
+ return Array.from(new Set([...(await lsFiles()), ...(await statusFiles())]));
29
53
  }
30
54
  exports.default = listGitProjectFiles;
31
55
  //# sourceMappingURL=listGitProjectFIles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listGitProjectFIles.js","sourceRoot":"","sources":["../../src/fulltext/listGitProjectFIles.ts"],"names":[],"mappings":";;AACA,0DAAuD;AACvD,oCAA2C;AAE3C,gGAAgG;AAChG,+CAA+C;AAChC,KAAK,UAAU,mBAAmB,CAAC,SAAiB;IACjE,MAAM,OAAO,GAAG,KAAK,IAAuB,EAAE;QAC5C,MAAM,QAAQ,GAAG,CACf,MAAM,IAAA,+BAAc,EAAC,cAAc,EAAE,IAAA,eAAO,GAAE,EAAE,IAAA,eAAO,GAAE,EAAE,IAAA,eAAO,GAAE,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CACtF,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,IAAuB,EAAE;QAChD,OAAO,CACL,MAAM,IAAA,+BAAc,EAClB,wBAAwB,EACxB,IAAA,eAAO,GAAE,EACT,IAAA,eAAO,GAAE,EACT,IAAA,eAAO,GAAE,EACT,CAAC,CAAC,CAAC,EACH,SAAS,CACV,CACF;aACE,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,sCAAsC;IACtC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE;QACnE,IAAI,CAAC,IAAI,EAAE;YACT,SAAS;SACV;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAClB;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACrB,CAAC;AAnCD,sCAmCC"}
1
+ {"version":3,"file":"listGitProjectFIles.js","sourceRoot":"","sources":["../../src/fulltext/listGitProjectFIles.ts"],"names":[],"mappings":";;AAAA,oCAAmC;AACnC,2DAAoD;AACpD,+BAAiC;AAEjC,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,yBAAM,CAAC,CAAC;AAE/B,gGAAgG;AAChG,+CAA+C;AAChC,KAAK,UAAU,mBAAmB,CAAC,SAAiB;IACjE,MAAM,OAAO,GAAG,KAAK,IAAuB,EAAE;QAC5C,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;gBAC5C,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ;aACpC,CAAC,CAAC;YAEH,IAAI,IAAA,eAAO,GAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEnC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC3C;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,IAAA,eAAO,GAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACvC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAClB;YACD,OAAO,EAAE,CAAC;SACX;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,IAAuB,EAAE;QAChD,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE;gBACtD,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ;aACpC,CAAC,CAAC;YAEH,IAAI,IAAA,eAAO,GAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEnC,OAAO,MAAM;iBACV,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,IAAA,eAAO,GAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAClB;YACD,OAAO,EAAE,CAAC;SACX;IACH,CAAC,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AA9CD,sCA8CC"}
@@ -17,19 +17,19 @@ async function listProjectFiles(directory, fileLimit = DEFAULT_PROJECT_FILE_LIMI
17
17
  // Perform a breadth-first traversal of a directory, collecting all non-binary files and
18
18
  // applying the directory ignore list.
19
19
  const processDir = async (dir) => {
20
- const queue = [dir];
20
+ const queue = ['.'];
21
21
  while (queue.length > 0 && files.length < fileLimit) {
22
22
  const currentDir = queue.shift();
23
23
  (0, assert_1.default)(currentDir, 'queue should not be empty');
24
- const entries = await (0, promises_1.readdir)(currentDir, { withFileTypes: true });
24
+ const entries = await (0, promises_1.readdir)((0, path_1.join)(dir, currentDir), { withFileTypes: true });
25
25
  for (const entry of entries) {
26
- const fullPath = (0, path_1.join)(currentDir, entry.name);
26
+ const path = currentDir === '.' ? entry.name : (0, path_1.join)(currentDir, entry.name);
27
27
  if (entry.isDirectory()) {
28
28
  if (!ignoreDirectory(entry.name))
29
- queue.push(fullPath);
29
+ queue.push(path);
30
30
  }
31
31
  else
32
- files.push(fullPath);
32
+ files.push(path);
33
33
  }
34
34
  }
35
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"listProjectFiles.js","sourceRoot":"","sources":["../../src/fulltext/listProjectFiles.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,0CAAsC;AACtC,+BAAsC;AAEtC,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAExF,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC,0DAA0D;AAC1D,2FAA2F;AAC3F,oBAAoB;AACL,KAAK,UAAU,gBAAgB,CAC5C,SAAiB,EACjB,SAAS,GAAG,0BAA0B;IAEtC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAU,CAAC;IAElC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE1E,wFAAwF;IACxF,sCAAsC;IACtC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;YACnD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,IAAA,gBAAM,EAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;oBACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACxD;;oBAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC7B;SACF;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAE5B,OAAO,KAAK,CAAC;AACf,CAAC;AA7BD,mCA6BC"}
1
+ {"version":3,"file":"listProjectFiles.js","sourceRoot":"","sources":["../../src/fulltext/listProjectFiles.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,0CAAsC;AACtC,+BAAsC;AAEtC,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAExF,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC,0DAA0D;AAC1D,2FAA2F;AAC3F,oBAAoB;AACL,KAAK,UAAU,gBAAgB,CAC5C,SAAiB,EACjB,SAAS,GAAG,0BAA0B;IAEtC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAU,CAAC;IAElC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE1E,wFAAwF;IACxF,sCAAsC;IACtC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;YACnD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,IAAA,gBAAM,EAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,MAAM,IAAI,GAAG,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5E,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;oBACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpD;;oBAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;SACF;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAE5B,OAAO,KAAK,CAAC;AACf,CAAC;AA7BD,mCA6BC"}
@@ -35,7 +35,7 @@ function queryKeywords(words) {
35
35
  .map((word) => sanitizeKeyword(word || ''))
36
36
  .flat()
37
37
  .filter(Boolean)
38
- .map((word) => (0, splitCamelized_1.splitCamelized)(word).split(/[\s]+/g))
38
+ .map((word) => (0, splitCamelized_1.splitCamelized)(word).split(/[\s_]+/g))
39
39
  .flat()
40
40
  .map((str) => str.trim())
41
41
  .filter(Boolean)
@@ -1 +1 @@
1
- {"version":3,"file":"queryKeywords.js","sourceRoot":"","sources":["../../src/fulltext/queryKeywords.ts"],"names":[],"mappings":";;AAAA,0DAAuD;AAEvD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,GAAG;IACH,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,OAAe,EAAY,EAAE,CACpD,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAErD,SAAwB,aAAa,CAAC,KAAoC;IACxE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;SAC1C,IAAI,EAAE;SACN,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,+BAAc,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACnD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;SAChC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAXD,gCAWC"}
1
+ {"version":3,"file":"queryKeywords.js","sourceRoot":"","sources":["../../src/fulltext/queryKeywords.ts"],"names":[],"mappings":";;AAAA,0DAAuD;AAEvD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,GAAG;IACH,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,OAAe,EAAY,EAAE,CACpD,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAErD,SAAwB,aAAa,CAAC,KAAoC;IACxE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;SAC1C,IAAI,EAAE;SACN,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,+BAAc,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACpD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;SAChC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAXD,gCAWC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymbolRegexes = void 0;
4
+ const fs_1 = require("fs");
5
+ exports.SymbolRegexes = {
6
+ cs: /(((interface|class|enum|struct)\s+(?<symbol1>\w+))|((\s|^)(?!using|try|catch|if|while|do|for|switch)(?<!#define\s+?)(?<symbol2>[\w~$]+)\s*?\([^;)]*?\)[\w\s\d<>[\].:\n]*?{))/g,
7
+ cpp: /(((struct|enum|union|class)\s+(?<symbol1>\w+)\s*?\{)|(}\s*?(?<symbol2>\w+)\s*?;)|((\s|^)(?!try|catch|if|while|do|for|switch)(?<!#define\s+?)(?<symbol3>[\w~$]+)\s*?\([^;)]*?\)[\w\s\d<>[\].:\n]*?{))/g,
8
+ rs: /(struct|enum|union|trait|type|fn)\s+(?<symbol1>[\w\p{L}]+)/gu,
9
+ go: /((type\s+(?<symbol1>[\w\p{L}]+))|(func\s+?(\(.*?\)\s*?)?(?<symbol2>[\w\p{L}]+)\s*?\())/gu,
10
+ rb: /(((class|module)\s+(?<symbol1>\w+))|(def\s+?(?<symbol2>\w+)))/g,
11
+ py: /(class|def)\s+(?<symbol1>\w+)/g,
12
+ java: /(((class|@?interface|enum)\s+(?<symbol1>[\w$]+))|((\s|^)(?!try|catch|if|while|do|for|switch)(?<symbol2>[\w$]+)\s*?\([^;)]*?\)[\w\s\d<>[\].:\n]*?{))/g,
13
+ ts: /(((class|interface|enum|type|function)\s+(?<symbol1>[#$\w\p{L}]+))|((\s|^)(?!using|try|catch|if|while|do|for|switch)(?<symbol2>[#$\w\p{L}]+)\s*?\([^;)]*?\)[\w\s<>[\].:\n]*?\{)|((?<symbol3>[#$\w\p{L}]+)\s*?(=|:)\s*?\(.*?\)\s*?=>))/gu,
14
+ kt: /(((class|typealias)\s+(?<symbol1>[\w_]+))|(fun\s+?(<.+?>\s+)?(.*?\.)?(?<symbol2>\w+)))/g,
15
+ php: /(class|trait|function)\s+(?<symbol1>[\w_$]+)/g,
16
+ };
17
+ const genericSymbolRegex = /(((^|\s)(?!using|try|catch|if|while|do|for|switch)(?<symbol1>[#$\w\p{L}~]+)\s*?\(([^;)])*?\)[\w\s<>[\].:\n]*?\{)|(^(?!.*?(?:#|\/\/|"|')).*?(interface|class|enum|struct|union|trait|type(alias|def)?|fu?nc?(tion)?|module|def)\s+?(?<symbol2>[#$\w\p{L}]+))|((?<symbol3>[#$\w\p{L}~]+)\s*?=\s*?[\w\s<>[\].:\n]*?\{))/gmu;
18
+ // Define aliases for common file extensions
19
+ ['js', 'jsx', 'ts', 'tsx', 'vue', 'svelte'].forEach((ext) => {
20
+ exports.SymbolRegexes[ext] = exports.SymbolRegexes.ts;
21
+ });
22
+ ['c', 'cc', 'cxx', 'h', 'hpp', 'cpp', 'hxx'].forEach((ext) => {
23
+ exports.SymbolRegexes[ext] = exports.SymbolRegexes.cpp;
24
+ });
25
+ function getMatches(source, regex) {
26
+ var _a, _b;
27
+ const results = [];
28
+ const matches = source.matchAll(regex);
29
+ for (const match of matches) {
30
+ const { groups } = match;
31
+ const symbol = (_b = (_a = groups === null || groups === void 0 ? void 0 : groups.symbol1) !== null && _a !== void 0 ? _a : groups === null || groups === void 0 ? void 0 : groups.symbol2) !== null && _b !== void 0 ? _b : groups === null || groups === void 0 ? void 0 : groups.symbol3;
32
+ if (symbol)
33
+ results.push(symbol);
34
+ }
35
+ return results;
36
+ }
37
+ function querySymbols(path, allowGeneric = true) {
38
+ var _a;
39
+ const fileExtension = (_a = path.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
40
+ let regex = allowGeneric ? genericSymbolRegex : undefined;
41
+ if (fileExtension && fileExtension in exports.SymbolRegexes) {
42
+ regex = exports.SymbolRegexes[fileExtension];
43
+ }
44
+ if (regex) {
45
+ try {
46
+ // readFileSync performs 2x faster than its async counterpart in this case.
47
+ const content = (0, fs_1.readFileSync)(path, 'utf-8');
48
+ return getMatches(content, regex);
49
+ }
50
+ catch (error) {
51
+ console.warn(`Error reading file ${path}`);
52
+ console.warn(error);
53
+ }
54
+ }
55
+ return [];
56
+ }
57
+ exports.default = querySymbols;
58
+ //# sourceMappingURL=querySymbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"querySymbols.js","sourceRoot":"","sources":["../../src/fulltext/querySymbols.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAErB,QAAA,aAAa,GAA2B;IACnD,EAAE,EAAE,+KAA+K;IACnL,GAAG,EAAE,uMAAuM;IAC5M,EAAE,EAAE,8DAA8D;IAClE,EAAE,EAAE,0FAA0F;IAC9F,EAAE,EAAE,gEAAgE;IACpE,EAAE,EAAE,gCAAgC;IACpC,IAAI,EAAE,sJAAsJ;IAC5J,EAAE,EAAE,yOAAyO;IAC7O,EAAE,EAAE,yFAAyF;IAC7F,GAAG,EAAE,+CAA+C;CACrD,CAAC;AAEF,MAAM,kBAAkB,GACtB,yTAAyT,CAAC;AAE5T,4CAA4C;AAC5C,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;IAC1D,qBAAa,CAAC,GAAG,CAAC,GAAG,qBAAa,CAAC,EAAE,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;IAC3D,qBAAa,CAAC,GAAG,CAAC,GAAG,qBAAa,CAAC,GAAG,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,MAAc,EAAE,KAAa;;IAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzB,MAAM,MAAM,GAAG,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC;QACrE,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAwB,YAAY,CAAC,IAAY,EAAE,YAAY,GAAG,IAAI;;IACpE,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,0CAAE,WAAW,EAAE,CAAC;IAE3D,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,aAAa,IAAI,aAAa,IAAI,qBAAa,EAAE;QACnD,KAAK,GAAG,qBAAa,CAAC,aAAa,CAAC,CAAC;KACtC;IAED,IAAI,KAAK,EAAE;QACT,IAAI;YACF,2EAA2E;YAC3E,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,OAAO,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACnC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrB;KACF;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AApBD,+BAoBC"}
@@ -394,7 +394,7 @@ ${this.actionSpec.elapsedTimeMs} ms`:""}`:""},parameters(){return this.currentEv
394
394
  `)])},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("p",[e._v("Add the following line of code to the "),r("strong",[e._v("top of your Gemfile")]),e._v(".")])},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("p",[e._v(`
395
395
  Finally, run the configuration bootstrapper to automatically create an
396
396
  `),r("i",[e._v("appmap.yml")]),e._v(` file for this project.
397
- `)])}]},void 0,{name:"RubyInstructions",components:{VCodeSnippet:qb},props:{ctaButtonType:{type:String,default:"primary"}}},void 0,!1,void 0,!1,void 0,void 0,void 0),qse=z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[e._m(0),e._v(" "),r("section",[e._m(1),e._v(" "),r("div",[r("v-code-snippet",{attrs:{"clipboard-text":"pip install appmap",kind:e.ctaButtonType}})],1),e._v(" "),r("div",[r("div",{staticClass:"center-block"},[e._v("or")]),e._v(" "),r("v-code-snippet",{attrs:{"clipboard-text":"pipenv install --dev appmap",kind:e.ctaButtonType}})],1),e._v(" "),r("div",[r("div",{staticClass:"center-block"},[e._v("or")]),e._v(" "),r("v-code-snippet",{attrs:{"clipboard-text":"poetry add --dev appmap",kind:e.ctaButtonType}})],1)]),e._v(" "),r("section",[r("h3",[e._v("Configure AppMap")]),e._v(" "),e._m(2),e._v(" "),r("v-code-snippet",{attrs:{"clipboard-text":"python -c 'import appmap'",kind:e.ctaButtonType}})],1)])},staticRenderFns:[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("section",[e._v(`
397
+ `)])}]},void 0,{name:"RubyInstructions",components:{VCodeSnippet:qb},props:{ctaButtonType:{type:String,default:"primary"}}},void 0,!1,void 0,!1,void 0,void 0,void 0),qse=z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[e._m(0),e._v(" "),r("section",[e._m(1),e._v(" "),r("div",[r("v-code-snippet",{attrs:{"clipboard-text":"pip install --require-virtualenv appmap",kind:e.ctaButtonType}}),e._v(" "),e._m(2)],1),e._v(" "),r("div",[r("div",{staticClass:"center-block"},[e._v("or")]),e._v(" "),r("v-code-snippet",{attrs:{"clipboard-text":"pipenv install --dev appmap",kind:e.ctaButtonType}})],1),e._v(" "),r("div",[r("div",{staticClass:"center-block"},[e._v("or")]),e._v(" "),r("v-code-snippet",{attrs:{"clipboard-text":"poetry add --dev appmap",kind:e.ctaButtonType}})],1)]),e._v(" "),r("section",[r("h3",[e._v("Configure AppMap")]),e._v(" "),e._m(3),e._v(" "),r("v-code-snippet",{attrs:{"clipboard-text":"python -c 'import appmap'",kind:e.ctaButtonType}})],1)])},staticRenderFns:[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("section",[e._v(`
398
398
  Manual installation is a good option if:
399
399
 
400
400
  `),r("ol",[r("li",[e._v(`
@@ -402,9 +402,12 @@ ${this.actionSpec.elapsedTimeMs} ms`:""}`:""},parameters(){return this.currentEv
402
402
  `)]),e._v(" "),r("li",[e._v(`
403
403
  You want to install `),r("code",{staticClass:"inline"},[e._v("appmap")]),e._v(` from outside of the code editor.
404
404
  `)])])])},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("h3",[e._v("Add the "),r("code",{staticClass:"inline"},[e._v("appmap")]),e._v(" package to your project")])},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("p",[e._v(`
405
+ Note that this requires that you create and activate a
406
+ `),r("a",{attrs:{href:"https://docs.python.org/3/library/venv.html"}},[e._v("virtual environment")]),e._v(`.
407
+ `)])},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("p",[e._v(`
405
408
  Finalize the installation by running the command below. An `),r("i",[e._v("appmap.yml")]),e._v(` configuration
406
409
  file will automatically be created in the current working directory.
407
- `)])}]},function(e){e&&e("data-v-5d7b36ec_0",{source:".center-block[data-v-5d7b36ec]{display:flex;justify-content:center;margin:1em}",map:void 0,media:void 0})},{name:"PythonInstructions",components:{VCodeSnippet:qb},props:{ctaButtonType:{type:String,default:"primary"}}},"data-v-5d7b36ec",!1,void 0,!1,J,void 0,void 0),Ot,ks,xb={functional:!0,render(e,t){let{_c:r,_v:n,data:i,children:a=[]}=t,{class:o,staticClass:s,style:l,staticStyle:c,attrs:u={},...d}=i;return r("svg",{class:[o,s],style:[l,c],attrs:Object.assign({viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},u),...d},a.concat([r("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15 8A7 7 0 111 8a7 7 0 0114 0zM7.993 3.301l.207.409.367.726.002.005 2.116 4.472 1 2.114.152.323H10.52l-.06-.13-.61-1.31-.195-.42-.001-.002-1.663-3.679-.634 1.322L6.32 9.486v.003h-.001l-.396.86v.002l-.39.865-.06.134H4.16l.154-.323L7.445 4.44V4.44l.35-.726.198-.413z",fill:"#fff"}})]))}},kN={functional:!0,render(e,t){let{_c:r,_v:n,data:i,children:a=[]}=t,{class:o,staticClass:s,style:l,staticStyle:c,attrs:u={},...d}=i;return r("svg",{class:[o,s],style:[l,c],attrs:Object.assign({viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},u),...d},a.concat([r("g",{attrs:{"clip-path":"url(#clip0_168_1364)"}},[r("path",{attrs:{d:"M8 15A7 7 0 108 1a7 7 0 000 14z",fill:"#E13ECB"}}),r("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.2 3.71l-.207-.409-.198.413-.35.726-3.133 6.587-.153.323h1.314l.06-.134.389-.865v-.001l.396-.86.001-.004 1.04-2.355.633-1.322 1.663 3.679v.002l.195.42.61 1.31.06.13h1.317l-.153-.323-.999-2.114L8.57 4.44l-.002-.005L8.2 3.71z",fill:"#fff"}})]),r("defs",[r("clipPath",{attrs:{id:"clip0_168_1364"}},[r("path",{attrs:{fill:"#fff",transform:"translate(1 1)",d:"M0 0h14v14H0z"}})])])]))}},d$e={functional:!0,render(e,t){let{_c:r,_v:n,data:i,children:a=[]}=t,{class:o,staticClass:s,style:l,staticStyle:c,attrs:u={},...d}=i;return r("svg",{class:[o,s],style:[l,c],attrs:Object.assign({width:"61",height:"61",fill:"none",xmlns:"http://www.w3.org/2000/svg"},u),...d},a.concat([r("path",{staticClass:"segment",attrs:{"data-index":"0",d:"M61 29a30 30 0 00-3.941-14.864C54.476 9.608 49.987 5.831 45.5 3.178 41.013.524 36.212.082 31 0c-5.212-.082-8.932.666-13.5 3.178L20 7.5l2.5 4c2.918-1.604 5.471-1.552 8.801-1.5 3.33.052 6.588.808 9.455 2.504a19.165 19.165 0 016.892 7C49.298 22.397 50 25.67 50 29h11z",fill:"#585858"}}),r("path",{staticClass:"segment",attrs:{"data-index":"1",d:"M16.5 56.875C21 59.5 26.154 60.564 31.366 60.5c5.213-.064 10.319-.987 14.815-3.625a30 30 0 0010.826-10.92C59.605 41.435 60.982 37.213 61 32H50c-.012 3.33-.726 5.667-2.386 8.554a19.164 19.164 0 01-6.916 6.976c-2.872 1.685-6.002 2.93-9.332 2.97-3.33.04-6.953-.386-9.866-2l-5 8.375z",fill:"#585858"}}),r("path",{staticClass:"segment",attrs:{"data-index":"2",d:"M15 4.5c-4.514 2.606-8.272 5.863-10.902 10.364a30 30 0 00-.311 29.726C6.322 49.145 9.54 52.8 14 55.5l5.5-8.5c-2.849-1.725-4.627-4.77-6.246-7.68a19.166 19.166 0 01.199-18.99c1.68-2.875 4.163-5.665 7.047-7.33L15 4.5z",fill:"#585858"}}),r("path",{staticClass:"check",attrs:{fill:"#585858",d:"M19.934 30l8.658 7.304-1.934 2.293L18 32.293z"}}),r("path",{staticClass:"check",attrs:{fill:"#585858",d:"M43.878 20.964l-16.61 19.188L25 38.188l16.61-19.187z"}})]))}};(function(e){e[e.NotStarted=0]="NotStarted",e[e.InProgress=1]="InProgress",e[e.Completed=2]="Completed",e[e.NumStatuses=3]="NumStatuses"})(Ot||(Ot={})),function(e){e[e.ProjectPicker=0]="ProjectPicker",e[e.RecordAppMaps=1]="RecordAppMaps",e[e.Navie=2]="Navie",e[e.NumSteps=3]="NumSteps"}(ks||(ks={}));var Yse=z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"status-message",attrs:{"data-cy":"status"}},[r("div",{class:e.progressBarClasses},[r("ProgressIndicator",{attrs:{"data-cy":"status-indicator"}})],1),e._v(" "),r("div",{staticClass:"status-message__body"},[r("p",{class:e.headerClasses,attrs:{"data-cy":"header"}},[r(e.header,{tag:"component"})],1),e._v(" "),e.prompt&&!e.allComplete?r("p",{staticClass:"status-message__prompt",attrs:{"data-cy":"prompt"}},[e.currentStepComplete&&!e.shouldGoBack?[e._v(" Next step: ")]:e._e(),e._v(" "),e.shouldGoBack?[r("a",{attrs:{href:"#","data-cy":"go-back"},on:{click:function(n){return n.preventDefault(),e.$root.$emit("status-jump",e.nextStep)}}},[e._v(`
410
+ `)])}]},function(e){e&&e("data-v-b97511f6_0",{source:".center-block[data-v-b97511f6]{display:flex;justify-content:center;margin:1em}",map:void 0,media:void 0})},{name:"PythonInstructions",components:{VCodeSnippet:qb},props:{ctaButtonType:{type:String,default:"primary"}}},"data-v-b97511f6",!1,void 0,!1,J,void 0,void 0),Ot,ks,xb={functional:!0,render(e,t){let{_c:r,_v:n,data:i,children:a=[]}=t,{class:o,staticClass:s,style:l,staticStyle:c,attrs:u={},...d}=i;return r("svg",{class:[o,s],style:[l,c],attrs:Object.assign({viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},u),...d},a.concat([r("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15 8A7 7 0 111 8a7 7 0 0114 0zM7.993 3.301l.207.409.367.726.002.005 2.116 4.472 1 2.114.152.323H10.52l-.06-.13-.61-1.31-.195-.42-.001-.002-1.663-3.679-.634 1.322L6.32 9.486v.003h-.001l-.396.86v.002l-.39.865-.06.134H4.16l.154-.323L7.445 4.44V4.44l.35-.726.198-.413z",fill:"#fff"}})]))}},kN={functional:!0,render(e,t){let{_c:r,_v:n,data:i,children:a=[]}=t,{class:o,staticClass:s,style:l,staticStyle:c,attrs:u={},...d}=i;return r("svg",{class:[o,s],style:[l,c],attrs:Object.assign({viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},u),...d},a.concat([r("g",{attrs:{"clip-path":"url(#clip0_168_1364)"}},[r("path",{attrs:{d:"M8 15A7 7 0 108 1a7 7 0 000 14z",fill:"#E13ECB"}}),r("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.2 3.71l-.207-.409-.198.413-.35.726-3.133 6.587-.153.323h1.314l.06-.134.389-.865v-.001l.396-.86.001-.004 1.04-2.355.633-1.322 1.663 3.679v.002l.195.42.61 1.31.06.13h1.317l-.153-.323-.999-2.114L8.57 4.44l-.002-.005L8.2 3.71z",fill:"#fff"}})]),r("defs",[r("clipPath",{attrs:{id:"clip0_168_1364"}},[r("path",{attrs:{fill:"#fff",transform:"translate(1 1)",d:"M0 0h14v14H0z"}})])])]))}},d$e={functional:!0,render(e,t){let{_c:r,_v:n,data:i,children:a=[]}=t,{class:o,staticClass:s,style:l,staticStyle:c,attrs:u={},...d}=i;return r("svg",{class:[o,s],style:[l,c],attrs:Object.assign({width:"61",height:"61",fill:"none",xmlns:"http://www.w3.org/2000/svg"},u),...d},a.concat([r("path",{staticClass:"segment",attrs:{"data-index":"0",d:"M61 29a30 30 0 00-3.941-14.864C54.476 9.608 49.987 5.831 45.5 3.178 41.013.524 36.212.082 31 0c-5.212-.082-8.932.666-13.5 3.178L20 7.5l2.5 4c2.918-1.604 5.471-1.552 8.801-1.5 3.33.052 6.588.808 9.455 2.504a19.165 19.165 0 016.892 7C49.298 22.397 50 25.67 50 29h11z",fill:"#585858"}}),r("path",{staticClass:"segment",attrs:{"data-index":"1",d:"M16.5 56.875C21 59.5 26.154 60.564 31.366 60.5c5.213-.064 10.319-.987 14.815-3.625a30 30 0 0010.826-10.92C59.605 41.435 60.982 37.213 61 32H50c-.012 3.33-.726 5.667-2.386 8.554a19.164 19.164 0 01-6.916 6.976c-2.872 1.685-6.002 2.93-9.332 2.97-3.33.04-6.953-.386-9.866-2l-5 8.375z",fill:"#585858"}}),r("path",{staticClass:"segment",attrs:{"data-index":"2",d:"M15 4.5c-4.514 2.606-8.272 5.863-10.902 10.364a30 30 0 00-.311 29.726C6.322 49.145 9.54 52.8 14 55.5l5.5-8.5c-2.849-1.725-4.627-4.77-6.246-7.68a19.166 19.166 0 01.199-18.99c1.68-2.875 4.163-5.665 7.047-7.33L15 4.5z",fill:"#585858"}}),r("path",{staticClass:"check",attrs:{fill:"#585858",d:"M19.934 30l8.658 7.304-1.934 2.293L18 32.293z"}}),r("path",{staticClass:"check",attrs:{fill:"#585858",d:"M43.878 20.964l-16.61 19.188L25 38.188l16.61-19.187z"}})]))}};(function(e){e[e.NotStarted=0]="NotStarted",e[e.InProgress=1]="InProgress",e[e.Completed=2]="Completed",e[e.NumStatuses=3]="NumStatuses"})(Ot||(Ot={})),function(e){e[e.ProjectPicker=0]="ProjectPicker",e[e.RecordAppMaps=1]="RecordAppMaps",e[e.Navie=2]="Navie",e[e.NumSteps=3]="NumSteps"}(ks||(ks={}));var Yse=z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"status-message",attrs:{"data-cy":"status"}},[r("div",{class:e.progressBarClasses},[r("ProgressIndicator",{attrs:{"data-cy":"status-indicator"}})],1),e._v(" "),r("div",{staticClass:"status-message__body"},[r("p",{class:e.headerClasses,attrs:{"data-cy":"header"}},[r(e.header,{tag:"component"})],1),e._v(" "),e.prompt&&!e.allComplete?r("p",{staticClass:"status-message__prompt",attrs:{"data-cy":"prompt"}},[e.currentStepComplete&&!e.shouldGoBack?[e._v(" Next step: ")]:e._e(),e._v(" "),e.shouldGoBack?[r("a",{attrs:{href:"#","data-cy":"go-back"},on:{click:function(n){return n.preventDefault(),e.$root.$emit("status-jump",e.nextStep)}}},[e._v(`
408
411
  Go back
409
412
  `)]),e._v(`
410
413
  and