@appland/appmap 3.68.0 → 3.68.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 CHANGED
@@ -1,3 +1,10 @@
1
+ # [@appland/appmap-v3.68.1](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.68.0...@appland/appmap-v3.68.1) (2023-03-16)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Revert the addition of puppeteer ([b91f57d](https://github.com/getappmap/appmap-js/commit/b91f57d3710e819c708624ea373064c75870314f))
7
+
1
8
  # [@appland/appmap-v3.68.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.67.2...@appland/appmap-v3.68.0) (2023-03-16)
2
9
 
3
10
 
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.openInTool = exports.openInVSCode = exports.vscodeURL = exports.openInBrowser = exports.abspath = void 0;
7
- const serveAndOpen_1 = require("../../lib/serveAndOpen");
7
+ const serveAndOpenAppMap_1 = __importDefault(require("./serveAndOpenAppMap"));
8
8
  const supports_hyperlinks_1 = __importDefault(require("supports-hyperlinks"));
9
9
  const path_1 = require("path");
10
10
  // See also: https://github.com/getappmap/scanner/pull/9/files#diff-3294a832ea2276e554177e0b3007cc2d401c082912c7fbde49fa09141bf1aed1R1
@@ -21,8 +21,8 @@ function abspath(file) {
21
21
  return (0, path_1.resolve)(process.cwd(), file);
22
22
  }
23
23
  exports.abspath = abspath;
24
- async function openInBrowser(appMapFile, verifyInSubdir) {
25
- await (0, serveAndOpen_1.serveAndOpenAppMap)(appMapFile, verifyInSubdir);
24
+ async function openInBrowser(appMapFile) {
25
+ await (0, serveAndOpenAppMap_1.default)(appMapFile);
26
26
  }
27
27
  exports.openInBrowser = openInBrowser;
28
28
  function vscodeURL(appMapFile) {
@@ -1 +1 @@
1
- {"version":3,"file":"openers.js","sourceRoot":"","sources":["../../../src/cmds/open/openers.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA4D;AAC5D,8EAAqD;AACrD,+BAAqC;AAErC,sIAAsI;AACtI,SAAS,SAAS,CAAC,QAAgB,EAAE,IAAY;IAC/C,MAAM,GAAG,GAAG,SAAS,CAAC;IACtB,MAAM,GAAG,GAAG,QAAQ,CAAC;IACrB,MAAM,GAAG,GAAG,GAAG,CAAC;IAEhB,IAAI,CAAC,6BAAkB,CAAC,MAAM,EAAE;QAC9B,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAFD,0BAEC;AAEM,KAAK,UAAU,aAAa,CAAC,UAAkB,EAAE,cAAuB;IAC7E,MAAM,IAAA,iCAAkB,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC;AAFD,sCAEC;AAED,SAAgB,SAAS,CAAC,UAAkB;IAC1C,OAAO,IAAA,WAAI,EAAC,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACrD,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,YAAY,CAAC,UAAkB;IACnD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,UAAU,CAAC,UAAkB,EAAE,MAAe;IAClE,MAAM,IAAI,GAAG,GAAG,MAAM,gBAAgB,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAHD,gCAGC"}
1
+ {"version":3,"file":"openers.js","sourceRoot":"","sources":["../../../src/cmds/open/openers.ts"],"names":[],"mappings":";;;;;;AAAA,8EAAsD;AACtD,8EAAqD;AACrD,+BAAqC;AAErC,sIAAsI;AACtI,SAAS,SAAS,CAAC,QAAgB,EAAE,IAAY;IAC/C,MAAM,GAAG,GAAG,SAAS,CAAC;IACtB,MAAM,GAAG,GAAG,QAAQ,CAAC;IACrB,MAAM,GAAG,GAAG,GAAG,CAAC;IAEhB,IAAI,CAAC,6BAAkB,CAAC,MAAM,EAAE;QAC9B,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAFD,0BAEC;AAEM,KAAK,UAAU,aAAa,CAAC,UAAkB;IACpD,MAAM,IAAA,4BAAkB,EAAC,UAAU,CAAC,CAAC;AACvC,CAAC;AAFD,sCAEC;AAED,SAAgB,SAAS,CAAC,UAAkB;IAC1C,OAAO,IAAA,WAAI,EAAC,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACrD,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,YAAY,CAAC,UAAkB;IACnD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,UAAU,CAAC,UAAkB,EAAE,MAAe;IAClE,MAAM,IAAI,GAAG,GAAG,MAAM,gBAAgB,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAHD,gCAGC"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = require("fs");
7
+ const http_1 = require("http");
8
+ const open_1 = __importDefault(require("open"));
9
+ const path_1 = require("path");
10
+ const url_1 = require("url");
11
+ const utils_1 = require("../../utils");
12
+ const userInteraction_1 = __importDefault(require("../userInteraction"));
13
+ function mimeTypeOfName(filename) {
14
+ return ({
15
+ js: 'application/javascript',
16
+ css: 'text/css',
17
+ map: 'application/json',
18
+ }[(0, path_1.extname)(filename)] || 'application/octet-stream');
19
+ }
20
+ async function serveAndOpenAppMap(appMapFile) {
21
+ userInteraction_1.default.progress(`Opening ${appMapFile}`);
22
+ const baseDir = (0, path_1.join)(__dirname, '..', '..', '..', 'built', 'html');
23
+ const server = (0, http_1.createServer)(async (req, res) => {
24
+ const serveStaticFile = (fileName, contentType) => {
25
+ res.writeHead(200, 'OK', { 'Content-Type': contentType });
26
+ const fileStream = (0, fs_1.createReadStream)(fileName);
27
+ fileStream.pipe(res);
28
+ fileStream.on('open', function () {
29
+ if ((0, utils_1.verbose)()) {
30
+ console.log(`${fileName}: 200`);
31
+ }
32
+ res.writeHead(200);
33
+ });
34
+ fileStream.on('error', function (e) {
35
+ if ((0, utils_1.verbose)()) {
36
+ console.log(`${fileName}: 404`);
37
+ }
38
+ res.writeHead(404);
39
+ res.end();
40
+ });
41
+ };
42
+ try {
43
+ if ((0, utils_1.verbose)()) {
44
+ console.log(req.url);
45
+ }
46
+ var requestUrl = (0, url_1.parse)(req.url);
47
+ const pathname = requestUrl.pathname;
48
+ if (pathname === '/') {
49
+ return serveStaticFile((0, path_1.join)(baseDir, 'appmap.html'), 'text/html');
50
+ }
51
+ else if (pathname === '/appmap') {
52
+ const urlParams = new URLSearchParams(requestUrl.query);
53
+ const appMapFile = urlParams.get('file');
54
+ if (appMapFile) {
55
+ return serveStaticFile(appMapFile, 'application/json');
56
+ }
57
+ }
58
+ else if (pathname && !pathname.startsWith('.')) {
59
+ const path = (0, path_1.join)(baseDir, pathname);
60
+ return serveStaticFile(path, mimeTypeOfName(path));
61
+ }
62
+ if ((0, utils_1.verbose)()) {
63
+ console.log(`${pathname}: 404`);
64
+ }
65
+ res.writeHead(404);
66
+ res.end();
67
+ }
68
+ catch (e) {
69
+ console.log(e.stack);
70
+ res.writeHead(500);
71
+ res.end(); // end the response so browsers don't hang
72
+ }
73
+ })
74
+ .listen(0, '127.0.0.1', () => {
75
+ const port = server.address().port;
76
+ tryOpen(`http://localhost:${port}/?appmap=${encodeURIComponent(appMapFile)}`);
77
+ })
78
+ .on('connection', function (socket) {
79
+ // Don't let the open socket keep the process alive.
80
+ socket.unref();
81
+ })
82
+ .unref();
83
+ }
84
+ exports.default = serveAndOpenAppMap;
85
+ async function tryOpen(url) {
86
+ const showMessage = () => userInteraction_1.default.warn(`\nWe could not open the browser automatically.\nOpen ${url} to see the AppMap.\n`);
87
+ const cp = await (0, open_1.default)(url);
88
+ cp.once('error', showMessage);
89
+ cp.once('exit', (code, signal) => (code || signal) && showMessage());
90
+ }
91
+ //# sourceMappingURL=serveAndOpenAppMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serveAndOpenAppMap.js","sourceRoot":"","sources":["../../../src/cmds/open/serveAndOpenAppMap.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const child_process_1 = require("child_process");
7
7
  const userInteraction_1 = __importDefault(require("../userInteraction"));
8
8
  const openers_1 = require("./openers");
9
+ const Openers = [
10
+ { name: 'Browser tab', fn: openers_1.openInBrowser },
11
+ { name: 'VS Code', fn: openers_1.openInVSCode },
12
+ { name: 'IntelliJ', toolId: 'idea', fn: openers_1.openInTool },
13
+ { name: 'PyCharm', toolId: 'pycharm', fn: openers_1.openInTool },
14
+ { name: 'RubyMine', toolId: 'x-mine', fn: openers_1.openInTool },
15
+ ];
9
16
  async function showAppMap(appMapFile) {
10
17
  const termProgram = process.env.TERM_PROGRAM;
11
18
  if (process.platform === 'darwin' && termProgram === 'vscode') {
12
19
  (0, child_process_1.spawn)('code', [(0, openers_1.abspath)(appMapFile)]);
13
20
  }
14
21
  else {
15
- await (0, openers_1.openInBrowser)(appMapFile, false);
22
+ await (0, openers_1.openInBrowser)(appMapFile);
16
23
  }
17
24
  const { action } = await userInteraction_1.default.prompt({
18
25
  type: 'list',
@@ -1 +1 @@
1
- {"version":3,"file":"showAppMap.js","sourceRoot":"","sources":["../../../src/cmds/open/showAppMap.ts"],"names":[],"mappings":";;;;;AAAA,iDAAsC;AACtC,yEAAoC;AACpC,uCAA6E;AAE9D,KAAK,UAAU,UAAU,CAAC,UAAkB;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,WAAW,KAAK,QAAQ,EAAE;QAC7D,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACtC;SAAM;QACL,MAAM,IAAA,uBAAa,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACxC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACjC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE,CAAC,UAAU,UAAU,EAAE,EAAE,MAAM,CAAC;KAC1C,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC/B,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;KAC9B;AACH,CAAC;AAjBD,6BAiBC"}
1
+ {"version":3,"file":"showAppMap.js","sourceRoot":"","sources":["../../../src/cmds/open/showAppMap.ts"],"names":[],"mappings":";;;;;AAAA,iDAAsC;AACtC,yEAAoC;AACpC,uCAA6E;AAQ7E,MAAM,OAAO,GAAa;IACxB,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,uBAAa,EAAE;IAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,sBAAY,EAAE;IACrC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,oBAAU,EAAE;IACpD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,oBAAU,EAAE;IACtD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,oBAAU,EAAE;CACvD,CAAC;AAEa,KAAK,UAAU,UAAU,CAAC,UAAkB;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,WAAW,KAAK,QAAQ,EAAE;QAC7D,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACtC;SAAM;QACL,MAAM,IAAA,uBAAa,EAAC,UAAU,CAAC,CAAC;KACjC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACjC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE,CAAC,UAAU,UAAU,EAAE,EAAE,MAAM,CAAC;KAC1C,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC/B,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;KAC9B;AACH,CAAC;AAjBD,6BAiBC"}
@@ -1,18 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.handler = exports.builder = exports.describe = exports.command = void 0;
7
4
  const promises_1 = require("fs/promises");
8
5
  const path_1 = require("path");
9
- const puppeteer_1 = __importDefault(require("puppeteer"));
10
6
  const handleWorkingDirectory_1 = require("../lib/handleWorkingDirectory");
11
7
  const utils_1 = require("../utils");
12
8
  const models_1 = require("@appland/models");
13
9
  const sequence_diagram_1 = require("@appland/sequence-diagram");
14
- const serveAndOpen_1 = require("../lib/serveAndOpen");
15
- const assert_1 = __importDefault(require("assert"));
16
10
  exports.command = 'sequence-diagram <appmap...>';
17
11
  exports.describe = 'Generate a sequence diagram for an AppMap';
18
12
  const builder = (args) => {
@@ -28,11 +22,6 @@ const builder = (args) => {
28
22
  args.option('output-dir', {
29
23
  describe: 'directory in which to save the sequence diagrams',
30
24
  });
31
- args.option('show-browser', {
32
- describe: 'when using a browser to render the diagram, show the browser window',
33
- type: 'boolean',
34
- default: false,
35
- });
36
25
  args.option('loops', {
37
26
  describe: 'identify loops and collect under a Loop object',
38
27
  type: 'boolean',
@@ -41,8 +30,8 @@ const builder = (args) => {
41
30
  args.option('format', {
42
31
  describe: 'output format',
43
32
  alias: 'f',
44
- choices: ['png', 'plantuml', 'json'],
45
- default: 'png',
33
+ choices: ['plantuml', 'json'],
34
+ default: 'plantuml',
46
35
  });
47
36
  args.option('exclude', {
48
37
  describe: 'code objects to exclude from the diagram',
@@ -58,17 +47,11 @@ const handler = async (argv) => {
58
47
  process.exitCode = 1;
59
48
  return;
60
49
  }
61
- if (argv.format !== 'png' && !sequence_diagram_1.Formatters.includes(argv.format)) {
50
+ if (!sequence_diagram_1.Formatters.includes(argv.format)) {
62
51
  console.log(`Invalid format: ${argv.format}`);
63
52
  process.exitCode = 1;
64
53
  return;
65
54
  }
66
- let browser;
67
- if (argv.format === 'png') {
68
- if ((0, utils_1.verbose)())
69
- console.warn(`Preparing browser for PNG rendering`);
70
- browser = await puppeteer_1.default.launch({ timeout: 120 * 1000, headless: !argv.showBrowser });
71
- }
72
55
  const generateDiagram = async (appmapFileName) => {
73
56
  const appmapData = JSON.parse(await (0, promises_1.readFile)(appmapFileName, 'utf-8'));
74
57
  const appmap = (0, models_1.buildAppMap)().source(appmapData).build();
@@ -77,57 +60,28 @@ const handler = async (argv) => {
77
60
  };
78
61
  if (argv.exclude)
79
62
  specOptions.exclude = Array.isArray(argv.exclude) ? argv.exclude : [argv.exclude];
80
- if (argv.outputDir)
81
- await (0, promises_1.mkdir)(argv.outputDir, { recursive: true });
82
63
  const specification = sequence_diagram_1.Specification.build(appmap, specOptions);
83
64
  const diagram = (0, sequence_diagram_1.buildDiagram)(appmapFileName, appmap, specification);
84
- const printDiagram = async (format) => {
85
- const template = (0, sequence_diagram_1.format)(format, diagram, appmapFileName);
86
- const outputFileName = [
87
- (0, path_1.basename)(appmapFileName, '.appmap.json'),
88
- '.sequence',
89
- template.extension,
90
- ].join('');
91
- let resultPath;
92
- if (argv.outputDir)
93
- resultPath = (0, path_1.join)(argv.outputDir, outputFileName);
94
- else
95
- resultPath = (0, path_1.join)((0, path_1.dirname)(appmapFileName), outputFileName);
96
- await (0, promises_1.writeFile)(resultPath, template.diagram);
97
- return resultPath;
98
- };
99
- if (argv.format === 'png') {
100
- // PNG rendering is performed by loading the sequence
101
- // diagram in a browser and taking a screenshot.
102
- const diagramPath = await printDiagram(sequence_diagram_1.FormatType.JSON);
103
- const outputPath = await new Promise((resolve) => (0, serveAndOpen_1.serveAndOpenSequenceDiagram)(diagramPath, false, async (url) => {
104
- if ((0, utils_1.verbose)())
105
- console.warn(`Rendering PNG`);
106
- (0, assert_1.default)(browser, 'Browser not initialized');
107
- const page = await browser.newPage();
108
- if (argv.verbose)
109
- page.on('console', (msg) => console.log('CONSOLE: ', msg.text()));
110
- const outputPath = (0, path_1.join)((0, path_1.dirname)(diagramPath), [(0, path_1.basename)(diagramPath, '.json'), '.png'].join(''));
111
- await page.goto(url);
112
- await page.waitForSelector('.sequence-diagram');
113
- await page.screenshot({ path: outputPath, fullPage: true });
114
- resolve(outputPath);
115
- }));
116
- console.warn(`Printed diagram ${outputPath}`);
117
- }
118
- else {
119
- // Other forms of output are produced directly by the
120
- // sequence diagram library.
121
- const outputPath = await printDiagram(argv.format);
122
- console.log(`Printed diagram ${outputPath}`);
123
- }
65
+ const template = (0, sequence_diagram_1.format)(argv.format, diagram, appmapFileName);
66
+ if (argv.outputDir)
67
+ await (0, promises_1.mkdir)(argv.outputDir, { recursive: true });
68
+ const outputFileName = [
69
+ (0, path_1.basename)(appmapFileName, '.appmap.json'),
70
+ '.sequence',
71
+ template.extension,
72
+ ].join('');
73
+ let outputPath;
74
+ if (argv.outputDir)
75
+ outputPath = (0, path_1.join)(argv.outputDir, outputFileName);
76
+ else
77
+ outputPath = (0, path_1.join)((0, path_1.dirname)(appmapFileName), outputFileName);
78
+ await (0, promises_1.writeFile)(outputPath, template.diagram);
79
+ console.log(`Printed diagram ${outputPath}`);
124
80
  };
125
81
  for (let i = 0; i < argv.appmap.length; i++) {
126
82
  const appmapFile = argv.appmap[i];
127
83
  await generateDiagram(appmapFile);
128
84
  }
129
- if (browser)
130
- await browser.close();
131
85
  };
132
86
  exports.handler = handler;
133
87
  //# sourceMappingURL=sequenceDiagram.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sequenceDiagram.js","sourceRoot":"","sources":["../../src/cmds/sequenceDiagram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequenceDiagram.js","sourceRoot":"","sources":["../../src/cmds/sequenceDiagram.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- <html><head><title>AppMap Viewer</title><link rel="stylesheet" href="appmap.css"></head><body><div id="app"></div><script src="appmap.js" defer=""></script></body></html>
1
+ <html><head><title>Appmap Viewer</title><link rel="stylesheet" href="page.css"></head><body><div id="app"></div><script src="page.js" defer=""></script></body></html>
@@ -1,2 +1,2 @@
1
1
  .appmap{position:relative;width:100%;min-width:inherit;max-width:inherit;height:100%;min-height:inherit;max-height:inherit;font-size:14px;font-family:IBM Plex Mono,monospace;overflow:hidden;user-select:none}.appmap__content{display:inline-block}.appmap.appmap--theme-dark{background-color:#010306}.appmap.appmap--theme-light{background-color:#fff}.appmap.is-grabbing{cursor:grabbing}.appmap__zoom{position:absolute;top:50%;right:0;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center}.appmap__zoom-button{border:none;border-radius:.5rem;padding:.25rem .5rem;appearance:none;background:#242c41;color:#808b98;font-weight:700;cursor:pointer;opacity:.8}.appmap__zoom-button:hover{opacity:1}.appmap__zoom-bar{margin:3px 6px;position:relative;width:20px;height:90px;cursor:pointer}.appmap__zoom-bar:before{content:"";position:absolute;top:-3px;left:50%;bottom:-3px;margin-left:-3px;width:6px;background:#242c41;opacity:.8}.appmap__zoom-grab{position:absolute;border-radius:3px;left:0;width:100%;height:6px;background:#808b98;cursor:grab}.appmap__context-menu{position:absolute;top:0;left:0;user-select:none}.appmap__context-menu .dropdown-menu{background-color:#242c41;box-shadow:4px 4px 1px #010306;top:100%;left:0;z-index:1000;display:block;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none}.appmap__context-menu .dropdown-menu p{display:block;margin:0;padding:.25rem 1.5rem;color:#808b98;white-space:nowrap;font-style:italic}.appmap__context-menu .dropdown-menu .dropdown-item{display:block;border:0;width:100%;padding:.25rem 1.5rem;color:#eaeaea;cursor:pointer;white-space:nowrap;background-color:transparent}.appmap__context-menu .dropdown-menu .dropdown-item:hover{color:#e3e5e8;background-color:#364262;text-decoration:none}.appmap__component-diagram{font-size:75%}.appmap__component-diagram:not(:root){overflow:visible}.appmap__component-diagram .node.highlight rect,.appmap__component-diagram .node.highlight circle,.appmap__component-diagram .node.highlight ellipse,.appmap__component-diagram .node.highlight path,.appmap__component-diagram .node.highlight polygon{stroke-width:3px}.appmap__component-diagram .node .label{font-size:inherit;font-weight:700;line-height:1}.appmap__component-diagram .node .label__icon,.appmap__component-diagram .cluster .label__icon{cursor:pointer}.appmap__component-diagram .edgePath path{stroke-width:3px}.appmap__component-diagram .edgePath>path{fill:none}.appmap__component-diagram .edgePath marker path{stroke-width:1px;stroke-dasharray:1px,0px}.appmap__component-diagram .nodeLabels{pointer-events:none}.appmap__component-diagram .nodeLabels .package.dim{opacity:1}.appmap--theme-dark .appmap__component-diagram .node.dim .label{fill:#181a1d}.appmap--theme-dark .appmap__component-diagram .node.external-service{fill:#ebdf90}.appmap--theme-dark .appmap__component-diagram .node.external-service .label{fill:#010306}.appmap--theme-dark .appmap__component-diagram .node.external-service.dim{fill:#181914}.appmap--theme-dark .appmap__component-diagram .node.package{fill:#6fddd6}.appmap--theme-dark .appmap__component-diagram .node.package .label{fill:#010306}.appmap--theme-dark .appmap__component-diagram .node.package.dim{fill:#0c191b}.appmap--theme-dark .appmap__component-diagram .node.class{fill:#4362b1}.appmap--theme-dark .appmap__component-diagram .node.class.dim{fill:#080d17}.appmap--theme-dark .appmap__component-diagram .node.database{fill:#9c2fba}.appmap--theme-dark .appmap__component-diagram .node.database path{stroke:#010306}.appmap--theme-dark .appmap__component-diagram .node.database.dim>path{fill:#110718}.appmap--theme-dark .appmap__component-diagram .node.http,.appmap--theme-dark .appmap__component-diagram .node.route{fill:#542168}.appmap--theme-dark .appmap__component-diagram .node.http.dim,.appmap--theme-dark .appmap__component-diagram .node.route.dim{fill:#090610}.appmap--theme-dark .appmap__component-diagram .node.class[data-parent-type=http]{fill:#542168}.appmap--theme-dark .appmap__component-diagram .node.class[data-parent-type=http].dim{fill:#090610}.appmap--theme-dark .appmap__component-diagram .node.io{fill:#f92672}.appmap--theme-dark .appmap__component-diagram .node.io.dim{fill:#1a0711}.appmap--theme-dark .appmap__component-diagram .node .label{fill:#e3e5e8}.appmap--theme-dark .appmap__component-diagram .node.highlight rect,.appmap--theme-dark .appmap__component-diagram .node.highlight circle,.appmap--theme-dark .appmap__component-diagram .node.highlight ellipse,.appmap--theme-dark .appmap__component-diagram .node.highlight path,.appmap--theme-dark .appmap__component-diagram .node.highlight polygon{stroke:#ff07aa}.appmap--theme-dark .appmap__component-diagram .cluster rect{fill:none;stroke:#ff07aa;stroke-width:0}.appmap--theme-dark .appmap__component-diagram .cluster--bordered rect{stroke-width:2}.appmap--theme-dark .appmap__component-diagram .cluster--package rect{fill:#051514;stroke:#6fddd6}.appmap--theme-dark .appmap__component-diagram .cluster--http rect{fill:#000;stroke:#542168}.appmap--theme-dark .appmap__component-diagram .cluster--database rect{stroke:#9c2fba}.appmap--theme-dark .appmap__component-diagram .cluster .label{fill:#e3e5e8;font-size:1rem;font-weight:700}.appmap--theme-dark .appmap__component-diagram .edgePath.highlight path{stroke:#ff07aa}.appmap--theme-dark .appmap__component-diagram .edgePath.highlight marker{fill:#ff07aa}.appmap--theme-dark .appmap__component-diagram .edgePath.highlight--inbound path{stroke:#6fddd6}.appmap--theme-dark .appmap__component-diagram .edgePath.highlight--inbound marker{fill:#6fddd6}.appmap--theme-dark .appmap__component-diagram .edgePath.dim marker{fill:#05070c}.appmap--theme-dark .appmap__component-diagram .edgePath.dim path{stroke:#05070c}.appmap--theme-dark .appmap__component-diagram .edgePath path{stroke:#242c41}.appmap--theme-dark .appmap__component-diagram .edgePath:not(.highlight):not(.dim):hover path{stroke:#5b6fa3}.appmap--theme-dark .appmap__component-diagram .edgePath:not(.highlight):not(.dim):hover marker{fill:#5b6fa3}.appmap--theme-dark .appmap__component-diagram .edgePath marker{fill:#242c41}.appmap--theme-dark .appmap__component-diagram .nodeLabels{fill:#e3e5e8}.appmap--theme-dark .appmap__component-diagram .nodeLabels .dim{opacity:10%}.appmap--theme-dark .appmap__component-diagram .nodeLabels .package{fill:#010306}.appmap--theme-dark .appmap__component-diagram .nodeLabels .label__children-count{fill-opacity:.7}.appmap--theme-light .appmap__component-diagram .node.dim .label{fill:#fff}.appmap--theme-light .appmap__component-diagram .node.external-service{fill:#ebdf90}.appmap--theme-light .appmap__component-diagram .node.external-service .label{fill:#fff}.appmap--theme-light .appmap__component-diagram .node.external-service.dim{fill:#fdfcf4}.appmap--theme-light .appmap__component-diagram .node.package{fill:#008b69}.appmap--theme-light .appmap__component-diagram .node.package .label{fill:#fff}.appmap--theme-light .appmap__component-diagram .node.package.dim{fill:#e6f3f0}.appmap--theme-light .appmap__component-diagram .node.class{fill:#919191}.appmap--theme-light .appmap__component-diagram .node.class.dim{fill:#f4f4f4}.appmap--theme-light .appmap__component-diagram .node.database{fill:#9c2fba}.appmap--theme-light .appmap__component-diagram .node.database path{stroke:#fff}.appmap--theme-light .appmap__component-diagram .node.database.dim>path{fill:#f5eaf8}.appmap--theme-light .appmap__component-diagram .node.http,.appmap--theme-light .appmap__component-diagram .node.route{fill:#8e45aa}.appmap--theme-light .appmap__component-diagram .node.http.dim,.appmap--theme-light .appmap__component-diagram .node.route.dim{fill:#f4ecf7}.appmap--theme-light .appmap__component-diagram .node.class[data-parent-type=http]{fill:#8e45aa}.appmap--theme-light .appmap__component-diagram .node.class[data-parent-type=http].dim{fill:#f4ecf7}.appmap--theme-light .appmap__component-diagram .node.io{fill:#8685ef}.appmap--theme-light .appmap__component-diagram .node.io.dim{fill:#f3f3fd}.appmap--theme-light .appmap__component-diagram .node .label{fill:#fff}.appmap--theme-light .appmap__component-diagram .node.highlight rect,.appmap--theme-light .appmap__component-diagram .node.highlight circle,.appmap--theme-light .appmap__component-diagram .node.highlight ellipse,.appmap--theme-light .appmap__component-diagram .node.highlight path,.appmap--theme-light .appmap__component-diagram .node.highlight polygon{stroke:#474554}.appmap--theme-light .appmap__component-diagram .cluster rect{fill:none;stroke:#474554;stroke-width:0}.appmap--theme-light .appmap__component-diagram .cluster--bordered rect{stroke-width:2}.appmap--theme-light .appmap__component-diagram .cluster--package rect{fill:#000;stroke:#008b69}.appmap--theme-light .appmap__component-diagram .cluster--http rect{fill:#150a19;stroke:#8e45aa}.appmap--theme-light .appmap__component-diagram .cluster--database rect{stroke:#9c2fba}.appmap--theme-light .appmap__component-diagram .cluster .label{fill:#fff;font-size:1rem;font-weight:700}.appmap--theme-light .appmap__component-diagram .edgePath.highlight path{stroke:#474554}.appmap--theme-light .appmap__component-diagram .edgePath.highlight marker{fill:#474554}.appmap--theme-light .appmap__component-diagram .edgePath.highlight--inbound path{stroke:#008b69}.appmap--theme-light .appmap__component-diagram .edgePath.highlight--inbound marker{fill:#008b69}.appmap--theme-light .appmap__component-diagram .edgePath.dim marker{fill:#f3f5f6}.appmap--theme-light .appmap__component-diagram .edgePath.dim path{stroke:#f3f5f6}.appmap--theme-light .appmap__component-diagram .edgePath path{stroke:#889fa5}.appmap--theme-light .appmap__component-diagram .edgePath:not(.highlight):not(.dim):hover path{stroke:#dfe5e7}.appmap--theme-light .appmap__component-diagram .edgePath:not(.highlight):not(.dim):hover marker{fill:#dfe5e7}.appmap--theme-light .appmap__component-diagram .edgePath marker{fill:#889fa5}.appmap--theme-light .appmap__component-diagram .nodeLabels{fill:#fff}.appmap--theme-light .appmap__component-diagram .nodeLabels .dim{opacity:10%}.appmap--theme-light .appmap__component-diagram .nodeLabels .package{fill:#fff}.appmap--theme-light .appmap__component-diagram .nodeLabels .label__children-count{fill-opacity:.7}
2
- /*# sourceMappingURL=appmap.css.map */
2
+ /*# sourceMappingURL=page.css.map */