@shriyanss/js-recon 1.2.2 → 1.3.1-alpha.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.
Files changed (117) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/build/analyze/engine/astEngine.js +32 -26
  3. package/build/analyze/engine/astEngine.js.map +1 -1
  4. package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
  5. package/build/analyze/helpers/schemas.js +1 -0
  6. package/build/analyze/helpers/schemas.js.map +1 -1
  7. package/build/endpoints/next_js/client_jsFilesHref.js +4 -2
  8. package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
  9. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  10. package/build/endpoints/next_js/client_subsequentRequests.js +12 -4
  11. package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
  12. package/build/globalConfig.js +1 -1
  13. package/build/globalConfig.js.map +1 -1
  14. package/build/index.js +16 -2
  15. package/build/index.js.map +1 -1
  16. package/build/lazyLoad/downloadFilesUtil.js +74 -80
  17. package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
  18. package/build/lazyLoad/downloadLoadedJsUtil.js +1 -1
  19. package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -1
  20. package/build/lazyLoad/index.js +31 -46
  21. package/build/lazyLoad/index.js.map +1 -1
  22. package/build/lazyLoad/next_js/NextJsCrawler.js +76 -22
  23. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  24. package/build/lazyLoad/next_js/next_GetJSScript.js +1 -1
  25. package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
  26. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +1 -1
  27. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  28. package/build/lazyLoad/next_js/next_SubsequentRequests.js +4 -2
  29. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
  30. package/build/lazyLoad/next_js/next_bruteForceJsFiles.js +8 -3
  31. package/build/lazyLoad/next_js/next_bruteForceJsFiles.js.map +1 -1
  32. package/build/lazyLoad/next_js/next_getClientSidePaths.js +83 -0
  33. package/build/lazyLoad/next_js/next_getClientSidePaths.js.map +1 -0
  34. package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
  35. package/build/lazyLoad/react/react_getScriptTags.js +29 -0
  36. package/build/lazyLoad/react/react_getScriptTags.js.map +1 -0
  37. package/build/lazyLoad/react/react_sourcemapUrls.js +44 -0
  38. package/build/lazyLoad/react/react_sourcemapUrls.js.map +1 -0
  39. package/build/lazyLoad/react/react_webpackChunkPaths.js +188 -0
  40. package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -0
  41. package/build/lazyLoad/techDetect/checkAngularJS.js +70 -0
  42. package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -0
  43. package/build/lazyLoad/techDetect/checkNextJS.js +45 -0
  44. package/build/lazyLoad/techDetect/checkNextJS.js.map +1 -0
  45. package/build/lazyLoad/techDetect/checkNuxtJS.js +39 -0
  46. package/build/lazyLoad/techDetect/checkNuxtJS.js.map +1 -0
  47. package/build/lazyLoad/techDetect/checkReact.js +44 -0
  48. package/build/lazyLoad/techDetect/checkReact.js.map +1 -0
  49. package/build/lazyLoad/techDetect/checkSvelte.js +69 -0
  50. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -0
  51. package/build/lazyLoad/techDetect/checkVueJS.js +118 -0
  52. package/build/lazyLoad/techDetect/checkVueJS.js.map +1 -0
  53. package/build/lazyLoad/techDetect/index.js +14 -254
  54. package/build/lazyLoad/techDetect/index.js.map +1 -1
  55. package/build/lazyLoad/vue/vue_RuntimeJs.js +122 -54
  56. package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -1
  57. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +4 -0
  58. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
  59. package/build/lazyLoad/vue/vue_discoverJsFiles.js +68 -0
  60. package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -0
  61. package/build/lazyLoad/vue/vue_getClientSidePaths.js +122 -0
  62. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -0
  63. package/build/lazyLoad/vue/vue_jsImports.js +40 -34
  64. package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
  65. package/build/lazyLoad/vue/vue_pageSrc.js +60 -0
  66. package/build/lazyLoad/vue/vue_pageSrc.js.map +1 -0
  67. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +8 -0
  68. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -1
  69. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +136 -0
  70. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -0
  71. package/build/lazyLoad/vue/vue_severalJsFilesHome.js +5 -0
  72. package/build/lazyLoad/vue/vue_severalJsFilesHome.js.map +1 -1
  73. package/build/lazyLoad/vue/vue_viteMapDeps.js +89 -0
  74. package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -0
  75. package/build/map/index.js +19 -0
  76. package/build/map/index.js.map +1 -1
  77. package/build/map/next_js/getExports.js +3 -1
  78. package/build/map/next_js/getExports.js.map +1 -1
  79. package/build/map/next_js/getTurbopackConnections.js +255 -0
  80. package/build/map/next_js/getTurbopackConnections.js.map +1 -0
  81. package/build/map/next_js/getWebpackConnections.js +3 -4
  82. package/build/map/next_js/getWebpackConnections.js.map +1 -1
  83. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +14 -10
  84. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
  85. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
  86. package/build/map/next_js/resolveFetch.js +2 -1
  87. package/build/map/next_js/resolveFetch.js.map +1 -1
  88. package/build/map/next_js/utils.js.map +1 -1
  89. package/build/map/vue_js/getViteConnections.js +293 -0
  90. package/build/map/vue_js/getViteConnections.js.map +1 -0
  91. package/build/map/vue_js/interactive.js +39 -0
  92. package/build/map/vue_js/interactive.js.map +1 -0
  93. package/build/map/vue_js/interactive_helpers/commandHandler.js +285 -0
  94. package/build/map/vue_js/interactive_helpers/commandHandler.js.map +1 -0
  95. package/build/map/vue_js/interactive_helpers/commandHelpers.js +39 -0
  96. package/build/map/vue_js/interactive_helpers/commandHelpers.js.map +1 -0
  97. package/build/map/vue_js/interactive_helpers/helpMenu.js +11 -0
  98. package/build/map/vue_js/interactive_helpers/helpMenu.js.map +1 -0
  99. package/build/mcp/cli.js +381 -0
  100. package/build/mcp/cli.js.map +1 -0
  101. package/build/mcp/commands.js +147 -0
  102. package/build/mcp/commands.js.map +1 -0
  103. package/build/mcp/config.js +68 -0
  104. package/build/mcp/config.js.map +1 -0
  105. package/build/mcp/index.js +29 -0
  106. package/build/mcp/index.js.map +1 -0
  107. package/build/mcp/providers.js +153 -0
  108. package/build/mcp/providers.js.map +1 -0
  109. package/build/mcp/tools.js +185 -0
  110. package/build/mcp/tools.js.map +1 -0
  111. package/build/run/index.js +35 -16
  112. package/build/run/index.js.map +1 -1
  113. package/build/utility/makeReq.js +25 -55
  114. package/build/utility/makeReq.js.map +1 -1
  115. package/build/utility/puppeteerInstance.js +5 -0
  116. package/build/utility/puppeteerInstance.js.map +1 -0
  117. package/package.json +10 -3
@@ -0,0 +1,29 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import chalk from "chalk";
11
+ import { loadConfig } from "./config.js";
12
+ import { startCli } from "./cli.js";
13
+ /**
14
+ * Main entry point for the MCP module.
15
+ * Loads configuration and starts the interactive CLI session.
16
+ */
17
+ const mcp = (cli, configFile, apiKey, model, provider) => __awaiter(void 0, void 0, void 0, function* () {
18
+ console.log(chalk.cyan("[i] Loading 'MCP' module"));
19
+ const config = loadConfig(configFile);
20
+ if (cli) {
21
+ yield startCli(config, apiKey, model, provider);
22
+ }
23
+ else {
24
+ console.log(chalk.yellow("[!] MCP module currently requires --cli flag for interactive mode."));
25
+ console.log(chalk.cyan("[i] Usage: js-recon mcp --cli"));
26
+ }
27
+ });
28
+ export default mcp;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,GAAG,GAAG,CACR,GAAY,EACZ,UAA8B,EAC9B,MAA0B,EAC1B,KAAyB,EACzB,QAA4B,EACf,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEtC,IAAI,GAAG,EAAE,CAAC;QACN,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -0,0 +1,153 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import OpenAI from "openai";
11
+ import Anthropic from "@anthropic-ai/sdk";
12
+ import chalk from "chalk";
13
+ // Rough pricing per 1M tokens (input / output)
14
+ const PRICING = {
15
+ "gpt-4o-mini": { input: 0.15, output: 0.6 },
16
+ "gpt-4o": { input: 2.5, output: 10 },
17
+ "gpt-4.1-mini": { input: 0.4, output: 1.6 },
18
+ "gpt-4.1-nano": { input: 0.1, output: 0.4 },
19
+ "gpt-4.1": { input: 2.0, output: 8.0 },
20
+ "claude-sonnet-4-20250514": { input: 3, output: 15 },
21
+ "claude-3-5-haiku-20241022": { input: 0.8, output: 4 },
22
+ "claude-3-5-sonnet-20241022": { input: 3, output: 15 },
23
+ };
24
+ const DEFAULT_PRICING = { input: 1, output: 3 };
25
+ export class SessionUsage {
26
+ constructor(model) {
27
+ this.stats = { promptTokens: 0, completionTokens: 0, totalTokens: 0, estimatedCost: 0 };
28
+ this.model = model;
29
+ }
30
+ addUsage(promptTokens, completionTokens) {
31
+ this.stats.promptTokens += promptTokens;
32
+ this.stats.completionTokens += completionTokens;
33
+ this.stats.totalTokens += promptTokens + completionTokens;
34
+ const pricing = PRICING[this.model] || DEFAULT_PRICING;
35
+ this.stats.estimatedCost =
36
+ (this.stats.promptTokens / 1000000) * pricing.input +
37
+ (this.stats.completionTokens / 1000000) * pricing.output;
38
+ }
39
+ getStats() {
40
+ return Object.assign({}, this.stats);
41
+ }
42
+ formatCost() {
43
+ const s = this.stats;
44
+ return [
45
+ chalk.cyan(`Model: ${this.model}`),
46
+ `Prompt tokens: ${s.promptTokens.toLocaleString()}`,
47
+ `Completion tokens: ${s.completionTokens.toLocaleString()}`,
48
+ `Total tokens: ${s.totalTokens.toLocaleString()}`,
49
+ chalk.green(`Estimated cost: $${s.estimatedCost.toFixed(6)}`),
50
+ ].join("\n");
51
+ }
52
+ }
53
+ export class OpenAIProvider {
54
+ constructor(apiKey, model) {
55
+ this.name = "openai";
56
+ this.client = new OpenAI({ apiKey });
57
+ this.model = model;
58
+ }
59
+ chat(messages) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ var _a, _b;
62
+ try {
63
+ const response = yield this.client.chat.completions.create({
64
+ model: this.model,
65
+ messages: messages.map((m) => ({ role: m.role, content: m.content })),
66
+ temperature: 0.3,
67
+ });
68
+ const content = ((_b = (_a = response.choices[0]) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.content) || "";
69
+ const usage = response.usage;
70
+ return {
71
+ content,
72
+ promptTokens: (usage === null || usage === void 0 ? void 0 : usage.prompt_tokens) || 0,
73
+ completionTokens: (usage === null || usage === void 0 ? void 0 : usage.completion_tokens) || 0,
74
+ };
75
+ }
76
+ catch (err) {
77
+ throw new Error(`OpenAI API error: ${err.message}`);
78
+ }
79
+ });
80
+ }
81
+ }
82
+ export class AnthropicProvider {
83
+ constructor(apiKey, model) {
84
+ this.name = "anthropic";
85
+ this.client = new Anthropic({ apiKey });
86
+ this.model = model;
87
+ }
88
+ chat(messages) {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ var _a, _b;
91
+ try {
92
+ // Anthropic requires system message separate from messages
93
+ const systemMsg = messages.find((m) => m.role === "system");
94
+ const chatMsgs = messages
95
+ .filter((m) => m.role !== "system")
96
+ .map((m) => ({
97
+ role: m.role,
98
+ content: m.content,
99
+ }));
100
+ const response = yield this.client.messages.create({
101
+ model: this.model,
102
+ max_tokens: 4096,
103
+ system: (systemMsg === null || systemMsg === void 0 ? void 0 : systemMsg.content) || "",
104
+ messages: chatMsgs,
105
+ });
106
+ const content = response.content
107
+ .filter((block) => block.type === "text")
108
+ .map((block) => block.text)
109
+ .join("");
110
+ return {
111
+ content,
112
+ promptTokens: ((_a = response.usage) === null || _a === void 0 ? void 0 : _a.input_tokens) || 0,
113
+ completionTokens: ((_b = response.usage) === null || _b === void 0 ? void 0 : _b.output_tokens) || 0,
114
+ };
115
+ }
116
+ catch (err) {
117
+ throw new Error(`Anthropic API error: ${err.message}`);
118
+ }
119
+ });
120
+ }
121
+ }
122
+ /**
123
+ * Creates the appropriate LLM provider based on configuration.
124
+ */
125
+ export const createProvider = (provider, apiKey, model) => {
126
+ if (provider === "anthropic") {
127
+ return new AnthropicProvider(apiKey, model);
128
+ }
129
+ return new OpenAIProvider(apiKey, model);
130
+ };
131
+ /**
132
+ * Lists available models for a given provider.
133
+ */
134
+ export const listModels = (provider, apiKey) => __awaiter(void 0, void 0, void 0, function* () {
135
+ if (provider === "openai") {
136
+ return ["gpt-4o", "gpt-4o-mini", "gpt-4.1", "gpt-4.1-mini", "gpt-4.1-nano", "o1", "o1-mini", "o3-mini"];
137
+ }
138
+ else {
139
+ return [
140
+ "claude-sonnet-4-20250514",
141
+ "claude-3-5-sonnet-20241022",
142
+ "claude-3-5-haiku-20241022",
143
+ "claude-3-opus-20240229",
144
+ ];
145
+ }
146
+ });
147
+ /**
148
+ * Auto-detects a default model based on the provider.
149
+ */
150
+ export const getDefaultModel = (provider) => {
151
+ return provider === "openai" ? "gpt-4o-mini" : "claude-3-5-sonnet-20241022";
152
+ };
153
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/mcp/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import fs from "fs";
11
+ import path from "path";
12
+ import chalk from "chalk";
13
+ import lazyLoad from "../lazyLoad/index.js";
14
+ import run from "../run/index.js";
15
+ import * as globalsUtil from "../utility/globals.js";
16
+ import configureSandbox from "../utility/configureSandbox.js";
17
+ /**
18
+ * Builds a tree-style directory listing string for a given path (recursive, max depth).
19
+ */
20
+ const buildDirTree = (dirPath, prefix = "", maxDepth = 3, currentDepth = 0) => {
21
+ if (currentDepth >= maxDepth || !fs.existsSync(dirPath))
22
+ return "";
23
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
24
+ let result = "";
25
+ for (let i = 0; i < entries.length; i++) {
26
+ const entry = entries[i];
27
+ const isLast = i === entries.length - 1;
28
+ const connector = isLast ? "└── " : "├── ";
29
+ const childPrefix = isLast ? " " : "│ ";
30
+ const fullPath = path.join(dirPath, entry.name);
31
+ if (entry.isDirectory()) {
32
+ const childCount = fs.readdirSync(fullPath).length;
33
+ result += `${prefix}${connector}${entry.name}/ (${childCount} items)\n`;
34
+ result += buildDirTree(fullPath, prefix + childPrefix, maxDepth, currentDepth + 1);
35
+ }
36
+ else {
37
+ const size = fs.statSync(fullPath).size;
38
+ const sizeStr = size > 1024 ? `${(size / 1024).toFixed(1)}KB` : `${size}B`;
39
+ result += `${prefix}${connector}${entry.name} (${sizeStr})\n`;
40
+ }
41
+ }
42
+ return result;
43
+ };
44
+ /**
45
+ * Runs the lazyload module against a target URL.
46
+ */
47
+ export const runLazyload = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, outputDir = "output", threads = 1, sourcemapDir = "extracted") {
48
+ try {
49
+ console.log(chalk.cyan(`\n[mcp] Running lazyload against ${url}...`));
50
+ yield lazyLoad(url, outputDir, false, [], threads, false, "extracted_urls.json", false, false, sourcemapDir, false, "research.json", 10);
51
+ return { success: true, message: `Lazyload complete. Files saved to ${outputDir}/`, outputDir };
52
+ }
53
+ catch (err) {
54
+ return { success: false, message: `Lazyload failed: ${err.message}` };
55
+ }
56
+ });
57
+ /**
58
+ * Runs the full pipeline (run module) against a target URL.
59
+ */
60
+ export const runFullPipeline = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, outputDir = "output", threads = 1, sourcemapDir = "extracted") {
61
+ try {
62
+ console.log(chalk.cyan(`\n[mcp] Running full pipeline against ${url}...`));
63
+ const cmd = {
64
+ url,
65
+ output: outputDir,
66
+ strictScope: false,
67
+ scope: "*",
68
+ threads: String(threads),
69
+ apiGateway: false,
70
+ apiGatewayConfig: ".api_gateway_config.json",
71
+ cacheFile: ".resp_cache.json",
72
+ disableCache: false,
73
+ yes: false,
74
+ secrets: false,
75
+ ai: undefined,
76
+ aiThreads: "5",
77
+ aiProvider: "openai",
78
+ aiEndpoint: undefined,
79
+ openaiApiKey: undefined,
80
+ model: "gpt-4o-mini",
81
+ mapOpenapiChunkTag: false,
82
+ timeout: "30000",
83
+ insecure: false,
84
+ sandbox: true,
85
+ sourcemapDir,
86
+ research: false,
87
+ researchOutput: "research.json",
88
+ maxIterations: "10",
89
+ };
90
+ globalsUtil.setRequestTimeout(30000);
91
+ configureSandbox(cmd);
92
+ yield run(cmd);
93
+ return { success: true, message: `Full pipeline complete. Output in ${outputDir}/`, outputDir };
94
+ }
95
+ catch (err) {
96
+ return { success: false, message: `Run failed: ${err.message}` };
97
+ }
98
+ });
99
+ /**
100
+ * Summarizes the output directory for lazyload — returns a directory tree overview.
101
+ */
102
+ export const summarizeLazyloadOutput = (outputDir) => {
103
+ if (!fs.existsSync(outputDir)) {
104
+ return `Output directory '${outputDir}' does not exist.`;
105
+ }
106
+ const tree = buildDirTree(outputDir, "", 4);
107
+ const totalFiles = countFiles(outputDir);
108
+ return `Directory structure of ${outputDir} (${totalFiles} total files):\n\n${tree}`;
109
+ };
110
+ /**
111
+ * Reads and summarizes the output files from a run module execution.
112
+ */
113
+ export const summarizeRunOutput = (workingDir = ".") => {
114
+ const summaryParts = [];
115
+ // Check for common output files
116
+ const filesToCheck = [
117
+ { path: "endpoints.json", label: "Endpoints" },
118
+ { path: "mapped.json", label: "Mapped Functions" },
119
+ { path: "analyze.json", label: "Analysis Results" },
120
+ { path: "strings.json", label: "Extracted Strings" },
121
+ { path: "extracted_urls.json", label: "Extracted URLs" },
122
+ { path: "mapped-openapi.json", label: "OpenAPI Spec" },
123
+ ];
124
+ for (const file of filesToCheck) {
125
+ const filePath = path.join(workingDir, file.path);
126
+ if (fs.existsSync(filePath)) {
127
+ try {
128
+ const content = fs.readFileSync(filePath, "utf-8");
129
+ const parsed = JSON.parse(content);
130
+ if (Array.isArray(parsed)) {
131
+ summaryParts.push(`**${file.label}** (${file.path}): ${parsed.length} items`);
132
+ // Show first few items as preview
133
+ if (parsed.length > 0) {
134
+ const preview = JSON.stringify(parsed.slice(0, 3), null, 2);
135
+ summaryParts.push(` Preview (first 3):\n${preview}`);
136
+ }
137
+ }
138
+ else if (typeof parsed === "object") {
139
+ const keys = Object.keys(parsed);
140
+ summaryParts.push(`**${file.label}** (${file.path}): ${keys.length} top-level keys`);
141
+ summaryParts.push(` Keys: ${keys.slice(0, 10).join(", ")}${keys.length > 10 ? "..." : ""}`);
142
+ }
143
+ }
144
+ catch (_a) {
145
+ const size = fs.statSync(filePath).size;
146
+ summaryParts.push(`**${file.label}** (${file.path}): ${(size / 1024).toFixed(1)}KB`);
147
+ }
148
+ }
149
+ }
150
+ // Check for report files
151
+ for (const ext of ["html", "md"]) {
152
+ const reportPath = path.join(workingDir, `report.${ext}`);
153
+ if (fs.existsSync(reportPath)) {
154
+ const size = fs.statSync(reportPath).size;
155
+ summaryParts.push(`**Report** (report.${ext}): ${(size / 1024).toFixed(1)}KB`);
156
+ }
157
+ }
158
+ // Check output directory tree
159
+ const outputDir = path.join(workingDir, "output");
160
+ if (fs.existsSync(outputDir)) {
161
+ const totalFiles = countFiles(outputDir);
162
+ summaryParts.push(`\n**Downloaded Files** (output/): ${totalFiles} files`);
163
+ summaryParts.push(buildDirTree(outputDir, " ", 3));
164
+ }
165
+ if (summaryParts.length === 0) {
166
+ return "No output files found. The run may not have completed yet.";
167
+ }
168
+ return summaryParts.join("\n\n");
169
+ };
170
+ const countFiles = (dirPath) => {
171
+ let count = 0;
172
+ if (!fs.existsSync(dirPath))
173
+ return 0;
174
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
175
+ for (const entry of entries) {
176
+ if (entry.isDirectory()) {
177
+ count += countFiles(path.join(dirPath, entry.name));
178
+ }
179
+ else {
180
+ count++;
181
+ }
182
+ }
183
+ return count;
184
+ };
185
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
72
72
  clearJsonUrls();
73
73
  }
74
74
  console.log(chalk.bgCyan("[1/8] Running lazyload to download JavaScript files..."));
75
- yield lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, false, "", cmd.insecure, false, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations));
75
+ yield lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, false, "", cmd.insecure, false, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations), Number(cmd.maxJsSize));
76
76
  console.log(chalk.bgGreen("[+] Lazyload complete."));
77
77
  if (globalsUtil.getTech() === "") {
78
78
  console.log(chalk.bgRed(`[!] Technology not detected. ${isBatch ? "Skipping this target." : "Quitting."}`));
@@ -81,8 +81,19 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
81
81
  }
82
82
  process.exit(10);
83
83
  }
84
- if (!["next"].includes(globalsUtil.getTech())) {
85
- console.log(chalk.bgYellow(`[!] The tool only supports Next.JS ('next') fully. For ${globalsUtil.getTech()}, only downloading JS files is supported`));
84
+ if (!["next", "vue"].includes(globalsUtil.getTech())) {
85
+ console.log(chalk.bgYellow(`[!] The tool only supports Next.JS ('next') and Vue.JS ('vue') in the run module. For ${globalsUtil.getTech()}, only downloading JS files is supported`));
86
+ return;
87
+ }
88
+ if (globalsUtil.getTech() === "vue") {
89
+ // Vue.JS pipeline: lazyload (done) + map. Other stages aren't Vue-ready yet.
90
+ // Scan the whole download directory: Vue builds frequently spread chunks
91
+ // across multiple asset hosts, and relative imports resolve within each tree.
92
+ const mappedFileVue = isBatch ? `${workingDir}/mapped` : "mapped";
93
+ console.log(chalk.bgCyan("[2/2] Running map to find functions..."));
94
+ yield map(outputDir, mappedFileVue, ["json"], "vue", false, false);
95
+ console.log(chalk.bgGreen("[+] Map complete."));
96
+ console.log(chalk.bgGreenBright(`[+] Analysis complete for ${url}.`));
86
97
  return;
87
98
  }
88
99
  const stringsFile = isBatch ? `${workingDir}/strings.json` : "strings.json";
@@ -103,11 +114,21 @@ const processUrl = (url, outputDir, workingDir, cmd, isBatch) => __awaiter(void
103
114
  yield strings(outputDir, stringsFile, true, extractedUrlsFile, false, false, false);
104
115
  console.log(chalk.bgGreen("[+] Strings complete."));
105
116
  console.log(chalk.bgCyan("[3/8] Running lazyload with subsequent requests to download JavaScript files..."));
106
- yield lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, true, `${extractedUrlsFile}.json`, cmd.insecure, true, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations));
117
+ yield lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, true, `${extractedUrlsFile}.json`, cmd.insecure, true, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations), Number(cmd.maxJsSize));
107
118
  console.log(chalk.bgGreen("[+] Lazyload with subsequent requests complete."));
108
119
  console.log(chalk.bgCyan("[4/8] Running strings again to extract endpoints..."));
109
120
  yield strings(outputDir, stringsFile, true, extractedUrlsFile, cmd.secrets, true, true);
110
121
  console.log(chalk.bgGreen("[+] Strings complete."));
122
+ // a second subsequent_requests pass: the first strings pass only sees initial chunks,
123
+ // so dynamic routes such as `/post/1` are only discovered after the first subsequent
124
+ // crawl + second strings extraction. Re-running subsequent_requests with the freshly
125
+ // updated paths picks up chunks for those dynamic routes (e.g. the post page).
126
+ console.log(chalk.bgCyan("[4.5/8] Re-running lazyload with subsequent requests for newly discovered paths..."));
127
+ yield lazyLoad(url, outputDir, cmd.strictScope, cmd.scope.split(","), cmd.threads, true, `${extractedUrlsFile}.json`, cmd.insecure, false, cmd.sourcemapDir, cmd.research, cmd.researchOutput, Number(cmd.maxIterations));
128
+ console.log(chalk.bgGreen("[+] Lazyload re-pass complete."));
129
+ console.log(chalk.bgCyan("[4.6/8] Re-running strings for chunks from the re-pass..."));
130
+ yield strings(outputDir, stringsFile, true, extractedUrlsFile, cmd.secrets, true, true);
131
+ console.log(chalk.bgGreen("[+] Strings re-pass complete."));
111
132
  console.log(chalk.bgCyan("[5/8] Running map to find functions..."));
112
133
  globalsUtil.setOpenapi(true);
113
134
  if (isBatch) {
@@ -173,14 +194,9 @@ export default (cmd) => __awaiter(void 0, void 0, void 0, function* () {
173
194
  .readFileSync(cmd.url, "utf-8")
174
195
  .split("\n")
175
196
  .filter((url) => url !== "");
176
- // first of all, make a new directory for the tool output
177
- const toolOutputDir = "js_recon_run_output";
178
- if (fs.existsSync(toolOutputDir)) {
179
- console.log(chalk.red(`[!] Output directory ${toolOutputDir} already exists. Please switch to other directory or it might conflict with this process.`));
180
- console.log(chalk.yellow(`[i] For advanced users: use the individual modules separately. See docs at ${CONFIG.modulesDocs}`));
181
- process.exit(14);
197
+ if (!fs.existsSync(cmd.output)) {
198
+ fs.mkdirSync(cmd.output, { recursive: true });
182
199
  }
183
- fs.mkdirSync(toolOutputDir);
184
200
  for (const url of urls) {
185
201
  // Validate URL only
186
202
  let urlObj;
@@ -191,12 +207,15 @@ export default (cmd) => __awaiter(void 0, void 0, void 0, function* () {
191
207
  console.log(chalk.bgRed(`[!] Invalid URL: ${url}`));
192
208
  continue;
193
209
  }
194
- const thisTargetWorkingDir = `${toolOutputDir}/${urlObj.host.replace(":", "_")}`;
195
- if (!fs.existsSync(thisTargetWorkingDir)) {
196
- fs.mkdirSync(thisTargetWorkingDir, { recursive: true });
210
+ const hostDir = urlObj.host.replace(":", "_");
211
+ const thisTargetDir = `${cmd.output}/${hostDir}`;
212
+ if (fs.existsSync(thisTargetDir)) {
213
+ console.log(chalk.red(`[!] Output directory ${thisTargetDir} already exists. Skipping ${url}.`));
214
+ console.log(chalk.yellow(`[i] For advanced users: use the individual modules separately. See docs at ${CONFIG.modulesDocs}`));
215
+ continue;
197
216
  }
198
- const outputDir = `${thisTargetWorkingDir}/output`;
199
- yield processUrl(url, outputDir, thisTargetWorkingDir, cmd, true);
217
+ fs.mkdirSync(thisTargetDir, { recursive: true });
218
+ yield processUrl(url, thisTargetDir, thisTargetDir, cmd, true);
200
219
  }
201
220
  }
202
221
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;GASG;AACH,MAAM,SAAS,GAAG,CAAO,IAAY,EAAE,SAAiB,EAA+B,EAAE;IACrF,kBAAkB;IAClB,IAAI,MAA0B,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACtC,uCAAuC;YACvC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,wBAAwB;YAChF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,wBAAwB;YAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB;YAC/D,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC1B,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC1C,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,GAAG,CACf,GAAW,EACX,SAAiB,EACjB,UAAkB,EAClB,GAAQ,EACR,OAAgB,EACH,EAAE;IACf,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,6BAA6B,GAAG,KAAK,CAAC,CAAC,CAAC;IAExE,IAAI,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wDAAwD,CAAC,CAAC,CAAC;IACpF,MAAM,QAAQ,CACV,GAAG,EACH,SAAS,EACT,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EACpB,GAAG,CAAC,OAAO,EACX,KAAK,EACL,EAAE,EACF,GAAG,CAAC,QAAQ,EACZ,KAAK,EACL,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,cAAc,EAClB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EACzB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CACxB,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAErD,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5G,IAAI,OAAO,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,QAAQ,CACV,yFAAyF,WAAW,CAAC,OAAO,EAAE,0CAA0C,CAC3J,CACJ,CAAC;QACF,OAAO;IACX,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC;QAClC,6EAA6E;QAC7E,yEAAyE;QACzE,8EAA8E;QAC9E,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACpE,MAAM,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC,CAAC;QACtE,OAAO;IACX,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5E,MAAM,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACtF,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7E,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IACxE,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAC1F,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5E,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE/D,2GAA2G;IAC3G,uGAAuG;IACvG,uFAAuF;IACvF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC;IAEpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iFAAiF,CAAC,CAAC,CAAC;IAC7G,MAAM,QAAQ,CACV,GAAG,EACH,SAAS,EACT,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EACpB,GAAG,CAAC,OAAO,EACX,IAAI,EACJ,GAAG,iBAAiB,OAAO,EAC3B,GAAG,CAAC,QAAQ,EACZ,IAAI,EACJ,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,cAAc,EAClB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EACzB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CACxB,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;IACjF,MAAM,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEpD,sFAAsF;IACtF,qFAAqF;IACrF,qFAAqF;IACrF,+EAA+E;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oFAAoF,CAAC,CAAC,CAAC;IAChH,MAAM,QAAQ,CACV,GAAG,EACH,SAAS,EACT,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EACpB,GAAG,CAAC,OAAO,EACX,IAAI,EACJ,GAAG,iBAAiB,OAAO,EAC3B,GAAG,CAAC,QAAQ,EACZ,KAAK,EACL,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,cAAc,EAClB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAC5B,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACvF,MAAM,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAE5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACpE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,OAAO,EAAE,CAAC;QACV,WAAW,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,SAAS,IAAI,UAAU,yBAAyB,CAAC,EAAE,CAAC;QACrE,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,UAAU,GAAG,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAChH,CAAC;SAAM,CAAC;QACJ,MAAM,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAEtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC3E,aAAa;IACb,MAAM,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC5D,MAAM,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,aAAa,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAA,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAe,CAAO,GAAQ,EAAiB,EAAE;IAC7C,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC1D,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9C,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,mCAAmC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,qFAAqF;QACrF,8CAA8C;QAC9C,4DAA4D;QAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CACL,wBAAwB,GAAG,CAAC,MAAM,2FAA2F,CAChI,CACJ,CAAC;YACF,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,CACR,8EAA8E,MAAM,CAAC,WAAW,EAAE,CACrG,CACJ,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC;YACD,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACJ,0FAA0F;QAC1F,MAAM,IAAI,GAAG,EAAE;aACV,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;aAC9B,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAEjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,oBAAoB;YACpB,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBACD,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YAAC,WAAM,CAAC;gBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;gBACpD,SAAS;YACb,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;YAEjD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,aAAa,6BAA6B,GAAG,GAAG,CAAC,CAAC,CAAC;gBACjG,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,CACR,8EAA8E,MAAM,CAAC,WAAW,EAAE,CACrG,CACJ,CAAC;gBACF,SAAS;YACb,CAAC;YAED,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;AACL,CAAC,CAAA,CAAC"}