@shriyanss/js-recon 1.0.0 → 1.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/.github/workflows/build-and-prettify.yaml +65 -0
  2. package/.github/workflows/npm-publish.yml +35 -0
  3. package/.prettierignore +2 -0
  4. package/.prettierrc +4 -0
  5. package/CHANGELOG.md +50 -0
  6. package/README.md +35 -139
  7. package/build/api_gateway/checkFeasibility.js +32 -0
  8. package/build/api_gateway/checkFeasibility.js.map +1 -0
  9. package/build/api_gateway/checkFireWallBlocking.js +24 -0
  10. package/build/api_gateway/checkFireWallBlocking.js.map +1 -0
  11. package/build/api_gateway/genReq.js +199 -0
  12. package/build/api_gateway/genReq.js.map +1 -0
  13. package/build/api_gateway/index.js +275 -0
  14. package/build/api_gateway/index.js.map +1 -0
  15. package/build/endpoints/gen_report/gen_json.js +22 -0
  16. package/build/endpoints/gen_report/gen_json.js.map +1 -0
  17. package/build/endpoints/gen_report/gen_markdown.js +66 -0
  18. package/build/endpoints/gen_report/gen_markdown.js.map +1 -0
  19. package/build/endpoints/gen_report/utility/iterate_n_store.js +46 -0
  20. package/build/endpoints/gen_report/utility/iterate_n_store.js.map +1 -0
  21. package/build/endpoints/index.js +89 -0
  22. package/build/endpoints/index.js.map +1 -0
  23. package/build/endpoints/next_js/client_jsFilesHref.js +91 -0
  24. package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -0
  25. package/build/endpoints/next_js/client_jsonParse.js +78 -0
  26. package/build/endpoints/next_js/client_jsonParse.js.map +1 -0
  27. package/build/endpoints/next_js/client_subsequentRequests.js +199 -0
  28. package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -0
  29. package/build/endpoints/next_js/getWebpacks.js +45 -0
  30. package/build/endpoints/next_js/getWebpacks.js.map +1 -0
  31. package/build/globalConfig.js +11 -0
  32. package/build/globalConfig.js.map +1 -0
  33. package/build/index.js +166 -0
  34. package/build/index.js.map +1 -0
  35. package/build/lazyLoad/downloadFilesUtil.js +128 -0
  36. package/build/lazyLoad/downloadFilesUtil.js.map +1 -0
  37. package/build/lazyLoad/downloadLoadedJsUtil.js +51 -0
  38. package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -0
  39. package/build/lazyLoad/globals.js +22 -0
  40. package/build/lazyLoad/globals.js.map +1 -0
  41. package/build/lazyLoad/index.js +170 -0
  42. package/build/lazyLoad/index.js.map +1 -0
  43. package/build/lazyLoad/next_js/next_GetJSScript.js +94 -0
  44. package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -0
  45. package/build/lazyLoad/next_js/next_GetLazyResources.js +202 -0
  46. package/build/lazyLoad/next_js/next_GetLazyResources.js.map +1 -0
  47. package/build/lazyLoad/next_js/next_SubsequentRequests.js +120 -0
  48. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -0
  49. package/build/lazyLoad/nuxt_js/nuxt_astParse.js +188 -0
  50. package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -0
  51. package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +75 -0
  52. package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -0
  53. package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +94 -0
  54. package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -0
  55. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +68 -0
  56. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -0
  57. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +95 -0
  58. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -0
  59. package/build/map/index.js +58 -0
  60. package/build/map/index.js.map +1 -0
  61. package/build/map/next_js/getFetchInstances.js +108 -0
  62. package/build/map/next_js/getFetchInstances.js.map +1 -0
  63. package/build/map/next_js/getWebpackConnections.js +227 -0
  64. package/build/map/next_js/getWebpackConnections.js.map +1 -0
  65. package/build/map/next_js/interactive.js +32 -0
  66. package/build/map/next_js/interactive.js.map +1 -0
  67. package/build/map/next_js/interactive_helpers/commandHandler.js +190 -0
  68. package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -0
  69. package/build/map/next_js/interactive_helpers/commandHelpers.js +91 -0
  70. package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -0
  71. package/build/map/next_js/interactive_helpers/helpMenu.js +11 -0
  72. package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -0
  73. package/build/map/next_js/interactive_helpers/keybindings.js +80 -0
  74. package/build/map/next_js/interactive_helpers/keybindings.js.map +1 -0
  75. package/build/map/next_js/interactive_helpers/printer.js +17 -0
  76. package/build/map/next_js/interactive_helpers/printer.js.map +1 -0
  77. package/build/map/next_js/interactive_helpers/ui.js +81 -0
  78. package/build/map/next_js/interactive_helpers/ui.js.map +1 -0
  79. package/build/map/next_js/resolveFetch.js +201 -0
  80. package/build/map/next_js/resolveFetch.js.map +1 -0
  81. package/build/run/index.js +62 -0
  82. package/build/run/index.js.map +1 -0
  83. package/build/strings/index.js +238 -0
  84. package/build/strings/index.js.map +1 -0
  85. package/build/strings/openapi.js +55 -0
  86. package/build/strings/openapi.js.map +1 -0
  87. package/build/strings/permutate.js +55 -0
  88. package/build/strings/permutate.js.map +1 -0
  89. package/build/strings/secrets.js +89 -0
  90. package/build/strings/secrets.js.map +1 -0
  91. package/build/techDetect/index.js +229 -0
  92. package/build/techDetect/index.js.map +1 -0
  93. package/build/utility/ai.js +69 -0
  94. package/build/utility/ai.js.map +1 -0
  95. package/build/utility/globals.js +84 -0
  96. package/build/utility/globals.js.map +1 -0
  97. package/build/utility/interfaces.js +2 -0
  98. package/build/utility/interfaces.js.map +1 -0
  99. package/build/utility/makeReq.js +265 -0
  100. package/build/utility/makeReq.js.map +1 -0
  101. package/build/utility/resolvePath.js +44 -0
  102. package/build/utility/resolvePath.js.map +1 -0
  103. package/{utility → build/utility}/runSandboxed.js +10 -13
  104. package/build/utility/runSandboxed.js.map +1 -0
  105. package/{utility → build/utility}/urlUtils.js +9 -11
  106. package/build/utility/urlUtils.js.map +1 -0
  107. package/docs/CNAME +1 -0
  108. package/docs/README.md +20 -0
  109. package/docs/api-gateway.md +68 -0
  110. package/docs/endpoints.md +49 -0
  111. package/docs/example-scenario.md +258 -0
  112. package/docs/interactive-mode.md +76 -0
  113. package/docs/lazyload.md +56 -0
  114. package/docs/map.md +53 -0
  115. package/docs/run.md +54 -0
  116. package/docs/strings.md +75 -0
  117. package/package.json +50 -38
  118. package/api_gateway/checkFeasibility.js +0 -25
  119. package/api_gateway/checkFireWallBlocking.js +0 -17
  120. package/api_gateway/genReq.js +0 -214
  121. package/api_gateway/index.js +0 -325
  122. package/endpoints/index.js +0 -7
  123. package/globalConfig.js +0 -12
  124. package/index.js +0 -69
  125. package/lazyLoad/downloadFilesUtil.js +0 -122
  126. package/lazyLoad/downloadLoadedJsUtil.js +0 -54
  127. package/lazyLoad/globals.js +0 -15
  128. package/lazyLoad/index.js +0 -167
  129. package/lazyLoad/next_js/next_GetJSScript.js +0 -99
  130. package/lazyLoad/next_js/next_GetLazyResources.js +0 -201
  131. package/lazyLoad/next_js/next_SubsequentRequests.js +0 -138
  132. package/lazyLoad/nuxt_js/nuxt_astParse.js +0 -194
  133. package/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +0 -77
  134. package/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +0 -99
  135. package/research/firewall_bypass.md +0 -38
  136. package/research/next_js.md +0 -116
  137. package/research/nuxt_js.md +0 -125
  138. package/research/vue_js.md +0 -9
  139. package/strings/index.js +0 -145
  140. package/techDetect/index.js +0 -156
  141. package/utility/globals.js +0 -6
  142. package/utility/makeReq.js +0 -179
  143. package/utility/resolvePath.js +0 -43
@@ -0,0 +1,229 @@
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 * as cheerio from "cheerio";
12
+ import makeRequest from "../utility/makeReq.js";
13
+ import puppeteer from "puppeteer";
14
+ /**
15
+ * Detects if a webpage uses Next.js by checking if any HTML tag has a src,
16
+ * srcset, or imageSrcSet attribute that starts with "/_next/".
17
+ * @param {CheerioStatic} $ - The Cheerio object containing the parsed HTML.
18
+ * @returns {Promise<{detected: boolean, evidence: string}>}
19
+ * A promise that resolves to an object with two properties:
20
+ * - detected: A boolean indicating whether Next.js was detected.
21
+ * - evidence: A string with the evidence of the detection, or an empty string
22
+ * if Next.js was not detected.
23
+ */
24
+ const checkNextJS = ($) => __awaiter(void 0, void 0, void 0, function* () {
25
+ let detected = false;
26
+ let evidence = "";
27
+ // iterate through each HTML tag, and file tag value that starts with `/_next/`
28
+ $("*").each((_, el) => {
29
+ const tag = $(el).get(0).tagName;
30
+ // check the value of three attributes
31
+ const src = $(el).attr("src");
32
+ const srcSet = $(el).attr("srcset");
33
+ const imageSrcSet = $(el).attr("imageSrcSet");
34
+ if (src || srcSet || imageSrcSet) {
35
+ if (src && src.startsWith("/_next/")) {
36
+ detected = true;
37
+ evidence = `${tag} :: ${src}`;
38
+ }
39
+ else if (srcSet && srcSet.startsWith("/_next/")) {
40
+ detected = true;
41
+ evidence = `${tag} :: ${srcSet}`;
42
+ }
43
+ else if (imageSrcSet && imageSrcSet.startsWith("/_next/")) {
44
+ detected = true;
45
+ evidence = `${tag} :: ${imageSrcSet}`;
46
+ }
47
+ }
48
+ });
49
+ return { detected, evidence };
50
+ });
51
+ /**
52
+ * Detects if a webpage uses Vue.js by checking if any HTML tag has a data-v-* attribute.
53
+ * @param {CheerioStatic} $ - The Cheerio object containing the parsed HTML.
54
+ * @returns {Promise<{detected: boolean, evidence: string}>}
55
+ * A promise that resolves to an object with two properties:
56
+ * - detected: A boolean indicating whether Vue.js was detected.
57
+ * - evidence: A string with the evidence of the detection, or an empty string
58
+ * if Vue.js was not detected.
59
+ */
60
+ const checkVueJS = ($) => __awaiter(void 0, void 0, void 0, function* () {
61
+ let detected = false;
62
+ let evidence = "";
63
+ $("*").each((_, el) => {
64
+ const tag = $(el).get(0).tagName;
65
+ const attribs = el.attribs;
66
+ if (attribs) {
67
+ for (const [attrName, attrValue] of Object.entries(attribs)) {
68
+ if (attrName.startsWith("data-v-")) {
69
+ detected = true;
70
+ evidence = `${tag} :: ${attrName}`;
71
+ }
72
+ }
73
+ }
74
+ });
75
+ return { detected, evidence };
76
+ });
77
+ const checkNuxtJS = ($) => __awaiter(void 0, void 0, void 0, function* () {
78
+ let detected = false;
79
+ let evidence = "";
80
+ // go through the page source, and check for "/_nuxt" in the src or href attribute
81
+ $("*").each((_, el) => {
82
+ // @ts-ignore
83
+ const tag = $(el).get(0).tagName;
84
+ // @ts-ignore
85
+ const attribs = el.attribs;
86
+ if (attribs) {
87
+ for (const [attrName, attrValue] of Object.entries(attribs)) {
88
+ if (attrName === "src" || attrName === "href") {
89
+ // @ts-ignore
90
+ if (attrValue.includes("/_nuxt")) {
91
+ detected = true;
92
+ evidence = `${attrName} :: ${attrValue}`;
93
+ }
94
+ }
95
+ }
96
+ }
97
+ });
98
+ return { detected, evidence };
99
+ });
100
+ const checkSvelte = ($) => __awaiter(void 0, void 0, void 0, function* () {
101
+ let detected = false;
102
+ let evidence = "";
103
+ // go through the page source, and check for all the class names of all HTML tags
104
+ $("*").each((_, el) => {
105
+ const tag = $(el).get(0).tagName;
106
+ const attribs = el.attribs;
107
+ if (attribs) {
108
+ for (const [attrName, attrValue] of Object.entries(attribs)) {
109
+ if (attrName === "class") {
110
+ // @ts-ignore
111
+ if (attrValue.includes("svelte-")) {
112
+ detected = true;
113
+ evidence = `${attrName} :: ${attrValue}`;
114
+ }
115
+ }
116
+ }
117
+ }
118
+ });
119
+ // now, search for the svelte- id of all elements
120
+ $("*").each((_, el) => {
121
+ const tag = $(el).get(0).tagName;
122
+ const attribs = el.attribs;
123
+ if (attribs) {
124
+ for (const [attrName, attrValue] of Object.entries(attribs)) {
125
+ if (attrName === "id") {
126
+ // @ts-ignore
127
+ if (attrValue.includes("svelte-")) {
128
+ detected = true;
129
+ evidence = `${attrName} :: ${attrValue}`;
130
+ }
131
+ }
132
+ }
133
+ }
134
+ });
135
+ // now, check for the data-sveltekit-reload attribute
136
+ $("*").each((_, el) => {
137
+ const tag = $(el).get(0).tagName;
138
+ const attribs = el.attribs;
139
+ if (attribs) {
140
+ for (const [attrName, attrValue] of Object.entries(attribs)) {
141
+ if (attrName === "data-sveltekit-reload") {
142
+ detected = true;
143
+ evidence = `${attrName} :: ${attrValue}`;
144
+ }
145
+ }
146
+ }
147
+ });
148
+ return { detected, evidence };
149
+ });
150
+ /**
151
+ * Detects the front-end framework used by a webpage.
152
+ * @param {string} url - The URL of the webpage to be detected.
153
+ * @returns {Promise<{name: string, evidence: string}> | null}
154
+ * A promise that resolves to an object with two properties:
155
+ * - name: A string indicating the detected framework, or null if no framework was detected.
156
+ * - evidence: A string with the evidence of the detection, or an empty string if no framework was detected.
157
+ */
158
+ const frameworkDetect = (url) => __awaiter(void 0, void 0, void 0, function* () {
159
+ console.log(chalk.cyan("[i] Detecting front-end framework"));
160
+ // get the page source
161
+ const res = yield makeRequest(url, {});
162
+ // get the page source in the browser
163
+ const browser = yield puppeteer.launch({
164
+ headless: true,
165
+ });
166
+ const page = yield browser.newPage();
167
+ try {
168
+ yield page.goto(url, {
169
+ waitUntil: "networkidle0",
170
+ });
171
+ }
172
+ catch (err) {
173
+ console.log(chalk.yellow("[!] Page load timed out, but continuing with current state"));
174
+ }
175
+ yield new Promise((resolve) => setTimeout(resolve, 5000));
176
+ const pageSource = yield page.content();
177
+ yield browser.close();
178
+ // if (res === null || res === undefined) {
179
+ // return;
180
+ // }
181
+ // const pageSource = await res.text();
182
+ // cheerio to parse the page source
183
+ const $ = cheerio.load(pageSource);
184
+ // check all technologies one by one
185
+ const result_checkNextJS = yield checkNextJS($);
186
+ const result_checkVueJS = yield checkVueJS($);
187
+ const result_checkSvelte = yield checkSvelte($);
188
+ // now, also check with the res response
189
+ const resBody = yield res.text();
190
+ const $res = cheerio.load(resBody);
191
+ const result_checkNextJS_res = yield checkNextJS($res);
192
+ const result_checkVueJS_res = yield checkVueJS($res);
193
+ const result_checkSvelte_res = yield checkSvelte($res);
194
+ if (result_checkNextJS.detected === true ||
195
+ result_checkNextJS_res.detected === true) {
196
+ const evidence = result_checkNextJS.evidence !== ""
197
+ ? result_checkNextJS.evidence
198
+ : result_checkNextJS_res.evidence;
199
+ return { name: "next", evidence };
200
+ }
201
+ else if (result_checkVueJS.detected === true ||
202
+ result_checkVueJS_res.detected === true) {
203
+ console.log(chalk.green("[✓] Vue.js detected"));
204
+ console.log(chalk.cyan(`[i] Checking Nuxt.JS`), chalk.dim("(Nuxt.JS is built on Vue.js)"));
205
+ const result_checkNuxtJS = yield checkNuxtJS($);
206
+ const result_checkNuxtJS_res = yield checkNuxtJS($res);
207
+ if (result_checkNuxtJS.detected === true ||
208
+ result_checkNuxtJS_res.detected === true) {
209
+ const evidence = result_checkNuxtJS.evidence !== ""
210
+ ? result_checkNuxtJS.evidence
211
+ : result_checkNuxtJS_res.evidence;
212
+ return { name: "nuxt", evidence };
213
+ }
214
+ const evidence = result_checkVueJS.evidence !== ""
215
+ ? result_checkVueJS.evidence
216
+ : result_checkVueJS_res.evidence;
217
+ return { name: "vue", evidence };
218
+ }
219
+ else if (result_checkSvelte.detected === true ||
220
+ result_checkSvelte_res.detected === true) {
221
+ const evidence = result_checkSvelte.evidence !== ""
222
+ ? result_checkSvelte.evidence
223
+ : result_checkSvelte_res.evidence;
224
+ return { name: "svelte", evidence };
225
+ }
226
+ return null;
227
+ });
228
+ export default frameworkDetect;
229
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/techDetect/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
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 { Ollama } from "ollama";
12
+ import * as globals from "./globals.js";
13
+ const openai_client = new OpenAI({
14
+ baseURL: globals.getAiEndpoint() || "https://api.openai.com/v1",
15
+ apiKey: globals.getOpenaiApiKey(),
16
+ });
17
+ const ollama_client = new Ollama({
18
+ host: globals.getAiEndpoint() || "http://127.0.0.1:11434",
19
+ });
20
+ const ai = () => __awaiter(void 0, void 0, void 0, function* () {
21
+ let returnVal = { client: undefined, model: globals.getAiModel() };
22
+ const provider = globals.getAiServiceProvider();
23
+ if (provider === "openai") {
24
+ returnVal.client = openai_client;
25
+ }
26
+ else if (provider === "ollama") {
27
+ returnVal.client = ollama_client;
28
+ }
29
+ return returnVal;
30
+ });
31
+ function getCompletion(prompt_1) {
32
+ return __awaiter(this, arguments, void 0, function* (prompt, systemPrompt = "You are a helpful assistant.") {
33
+ var _a, _b, _c, _d;
34
+ const { client, model } = yield ai();
35
+ const provider = globals.getAiServiceProvider();
36
+ if (!client) {
37
+ throw new Error(`AI service provider "${provider}" is not supported or configured.`);
38
+ }
39
+ if (provider === "openai") {
40
+ const completion = yield client.responses.create({
41
+ input: [
42
+ { role: "system", content: systemPrompt },
43
+ { role: "user", content: prompt },
44
+ ],
45
+ model: model || "gpt-4o-mini",
46
+ temperature: 0.1,
47
+ });
48
+ return ((_d = (_c = (_b = (_a = completion === null || completion === void 0 ? void 0 : completion.output) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.text) || "none";
49
+ }
50
+ if (provider === "ollama") {
51
+ const response = yield ollama_client.chat({
52
+ model: model || "llama3.1",
53
+ messages: [
54
+ { role: "system", content: systemPrompt },
55
+ {
56
+ role: "user",
57
+ content: prompt,
58
+ },
59
+ ],
60
+ options: {
61
+ temperature: 0.1,
62
+ },
63
+ });
64
+ return response.message.content || "none";
65
+ }
66
+ });
67
+ }
68
+ export { ai, openai_client, ollama_client, getCompletion };
69
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/utility/ai.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,IAAI,2BAA2B;IAC/D,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE;CACpC,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,IAAI,wBAAwB;CAC5D,CAAC,CAAC;AAEH,MAAM,EAAE,GAAG,GAAS,EAAE;IAClB,IAAI,SAAS,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAEhD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxB,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;IACrC,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA,CAAC;AAEF,SAAe,aAAa;yDACxB,MAAM,EACN,YAAY,GAAG,8BAA8B;;QAE7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACX,wBAAwB,QAAQ,mCAAmC,CACtE,CAAC;QACN,CAAC;QAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC7C,KAAK,EAAE;oBACH,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;iBACpC;gBACD,KAAK,EAAE,KAAK,IAAI,aAAa;gBAC7B,WAAW,EAAE,GAAG;aACnB,CAAC,CAAC;YACH,OAAO,CAAA,MAAA,MAAA,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAG,CAAC,CAAC,0CAAE,OAAO,0CAAG,CAAC,CAAC,0CAAE,IAAI,KAAI,MAAM,CAAC;QACjE,CAAC;QAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC;gBACtC,KAAK,EAAE,KAAK,IAAI,UAAU;gBAC1B,QAAQ,EAAE;oBACN,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC;wBACI,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,MAAM;qBAClB;iBACJ;gBACD,OAAO,EAAE;oBACL,WAAW,EAAE,GAAG;iBACnB;aACJ,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;QAC9C,CAAC;IACL,CAAC;CAAA;AAED,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,84 @@
1
+ // api gateway
2
+ export let apiGatewayConfigFile = "";
3
+ export let useApiGateway = false;
4
+ export const setApiGatewayConfigFile = (file) => {
5
+ apiGatewayConfigFile = file;
6
+ };
7
+ export const setUseApiGateway = (value) => {
8
+ useApiGateway = value;
9
+ };
10
+ // response cache
11
+ export let disableCache = false;
12
+ export let respCacheFile = ".resp_cache.json";
13
+ export const setDisableCache = (value) => {
14
+ disableCache = value;
15
+ };
16
+ export const setRespCacheFile = (file) => {
17
+ respCacheFile = file;
18
+ };
19
+ export const getDisableCache = () => {
20
+ return disableCache;
21
+ };
22
+ export const getRespCacheFile = () => {
23
+ return respCacheFile;
24
+ };
25
+ // auto execute code
26
+ export let yes = false;
27
+ export const setYes = (value) => {
28
+ yes = value;
29
+ };
30
+ export const getYes = () => {
31
+ return yes;
32
+ };
33
+ // AI
34
+ export let ai = [];
35
+ export let openaiApiKey = "";
36
+ export let aiModel = "gpt-4o-mini";
37
+ export let aiServiceProvider = "openai";
38
+ export let aiThreads = 5;
39
+ export let aiEndpoint = undefined;
40
+ export const setAi = (value) => {
41
+ ai = value;
42
+ };
43
+ export const setOpenaiApiKey = (value) => {
44
+ openaiApiKey = value;
45
+ };
46
+ export const getAi = () => {
47
+ return ai;
48
+ };
49
+ export const getOpenaiApiKey = () => {
50
+ return openaiApiKey;
51
+ };
52
+ export const getAiModel = () => {
53
+ return aiModel;
54
+ };
55
+ export const setAiModel = (value) => {
56
+ aiModel = value;
57
+ };
58
+ export const setAiThreads = (value) => {
59
+ aiThreads = value;
60
+ };
61
+ export const getAiThreads = () => {
62
+ return aiThreads;
63
+ };
64
+ export const setAiServiceProvider = (value) => {
65
+ aiServiceProvider = value;
66
+ };
67
+ export const getAiServiceProvider = () => {
68
+ return aiServiceProvider;
69
+ };
70
+ export const setAiEndpoint = (value) => {
71
+ aiEndpoint = value;
72
+ };
73
+ export const getAiEndpoint = () => {
74
+ return aiEndpoint;
75
+ };
76
+ // tech
77
+ export let tech = "";
78
+ export const setTech = (value) => {
79
+ tech = value;
80
+ };
81
+ export const getTech = () => {
82
+ return tech;
83
+ };
84
+ //# sourceMappingURL=globals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/utility/globals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/utility/interfaces.ts"],"names":[],"mappings":""}