@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.
- package/.github/workflows/build-and-prettify.yaml +65 -0
- package/.github/workflows/npm-publish.yml +35 -0
- package/.prettierignore +2 -0
- package/.prettierrc +4 -0
- package/CHANGELOG.md +50 -0
- package/README.md +35 -139
- package/build/api_gateway/checkFeasibility.js +32 -0
- package/build/api_gateway/checkFeasibility.js.map +1 -0
- package/build/api_gateway/checkFireWallBlocking.js +24 -0
- package/build/api_gateway/checkFireWallBlocking.js.map +1 -0
- package/build/api_gateway/genReq.js +199 -0
- package/build/api_gateway/genReq.js.map +1 -0
- package/build/api_gateway/index.js +275 -0
- package/build/api_gateway/index.js.map +1 -0
- package/build/endpoints/gen_report/gen_json.js +22 -0
- package/build/endpoints/gen_report/gen_json.js.map +1 -0
- package/build/endpoints/gen_report/gen_markdown.js +66 -0
- package/build/endpoints/gen_report/gen_markdown.js.map +1 -0
- package/build/endpoints/gen_report/utility/iterate_n_store.js +46 -0
- package/build/endpoints/gen_report/utility/iterate_n_store.js.map +1 -0
- package/build/endpoints/index.js +89 -0
- package/build/endpoints/index.js.map +1 -0
- package/build/endpoints/next_js/client_jsFilesHref.js +91 -0
- package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -0
- package/build/endpoints/next_js/client_jsonParse.js +78 -0
- package/build/endpoints/next_js/client_jsonParse.js.map +1 -0
- package/build/endpoints/next_js/client_subsequentRequests.js +199 -0
- package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -0
- package/build/endpoints/next_js/getWebpacks.js +45 -0
- package/build/endpoints/next_js/getWebpacks.js.map +1 -0
- package/build/globalConfig.js +11 -0
- package/build/globalConfig.js.map +1 -0
- package/build/index.js +166 -0
- package/build/index.js.map +1 -0
- package/build/lazyLoad/downloadFilesUtil.js +128 -0
- package/build/lazyLoad/downloadFilesUtil.js.map +1 -0
- package/build/lazyLoad/downloadLoadedJsUtil.js +51 -0
- package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -0
- package/build/lazyLoad/globals.js +22 -0
- package/build/lazyLoad/globals.js.map +1 -0
- package/build/lazyLoad/index.js +170 -0
- package/build/lazyLoad/index.js.map +1 -0
- package/build/lazyLoad/next_js/next_GetJSScript.js +94 -0
- package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -0
- package/build/lazyLoad/next_js/next_GetLazyResources.js +202 -0
- package/build/lazyLoad/next_js/next_GetLazyResources.js.map +1 -0
- package/build/lazyLoad/next_js/next_SubsequentRequests.js +120 -0
- package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -0
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js +188 -0
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -0
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +75 -0
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -0
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +94 -0
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -0
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js +68 -0
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -0
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +95 -0
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -0
- package/build/map/index.js +58 -0
- package/build/map/index.js.map +1 -0
- package/build/map/next_js/getFetchInstances.js +108 -0
- package/build/map/next_js/getFetchInstances.js.map +1 -0
- package/build/map/next_js/getWebpackConnections.js +227 -0
- package/build/map/next_js/getWebpackConnections.js.map +1 -0
- package/build/map/next_js/interactive.js +32 -0
- package/build/map/next_js/interactive.js.map +1 -0
- package/build/map/next_js/interactive_helpers/commandHandler.js +190 -0
- package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -0
- package/build/map/next_js/interactive_helpers/commandHelpers.js +91 -0
- package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -0
- package/build/map/next_js/interactive_helpers/helpMenu.js +11 -0
- package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -0
- package/build/map/next_js/interactive_helpers/keybindings.js +80 -0
- package/build/map/next_js/interactive_helpers/keybindings.js.map +1 -0
- package/build/map/next_js/interactive_helpers/printer.js +17 -0
- package/build/map/next_js/interactive_helpers/printer.js.map +1 -0
- package/build/map/next_js/interactive_helpers/ui.js +81 -0
- package/build/map/next_js/interactive_helpers/ui.js.map +1 -0
- package/build/map/next_js/resolveFetch.js +201 -0
- package/build/map/next_js/resolveFetch.js.map +1 -0
- package/build/run/index.js +62 -0
- package/build/run/index.js.map +1 -0
- package/build/strings/index.js +238 -0
- package/build/strings/index.js.map +1 -0
- package/build/strings/openapi.js +55 -0
- package/build/strings/openapi.js.map +1 -0
- package/build/strings/permutate.js +55 -0
- package/build/strings/permutate.js.map +1 -0
- package/build/strings/secrets.js +89 -0
- package/build/strings/secrets.js.map +1 -0
- package/build/techDetect/index.js +229 -0
- package/build/techDetect/index.js.map +1 -0
- package/build/utility/ai.js +69 -0
- package/build/utility/ai.js.map +1 -0
- package/build/utility/globals.js +84 -0
- package/build/utility/globals.js.map +1 -0
- package/build/utility/interfaces.js +2 -0
- package/build/utility/interfaces.js.map +1 -0
- package/build/utility/makeReq.js +265 -0
- package/build/utility/makeReq.js.map +1 -0
- package/build/utility/resolvePath.js +44 -0
- package/build/utility/resolvePath.js.map +1 -0
- package/{utility → build/utility}/runSandboxed.js +10 -13
- package/build/utility/runSandboxed.js.map +1 -0
- package/{utility → build/utility}/urlUtils.js +9 -11
- package/build/utility/urlUtils.js.map +1 -0
- package/docs/CNAME +1 -0
- package/docs/README.md +20 -0
- package/docs/api-gateway.md +68 -0
- package/docs/endpoints.md +49 -0
- package/docs/example-scenario.md +258 -0
- package/docs/interactive-mode.md +76 -0
- package/docs/lazyload.md +56 -0
- package/docs/map.md +53 -0
- package/docs/run.md +54 -0
- package/docs/strings.md +75 -0
- package/package.json +50 -38
- package/api_gateway/checkFeasibility.js +0 -25
- package/api_gateway/checkFireWallBlocking.js +0 -17
- package/api_gateway/genReq.js +0 -214
- package/api_gateway/index.js +0 -325
- package/endpoints/index.js +0 -7
- package/globalConfig.js +0 -12
- package/index.js +0 -69
- package/lazyLoad/downloadFilesUtil.js +0 -122
- package/lazyLoad/downloadLoadedJsUtil.js +0 -54
- package/lazyLoad/globals.js +0 -15
- package/lazyLoad/index.js +0 -167
- package/lazyLoad/next_js/next_GetJSScript.js +0 -99
- package/lazyLoad/next_js/next_GetLazyResources.js +0 -201
- package/lazyLoad/next_js/next_SubsequentRequests.js +0 -138
- package/lazyLoad/nuxt_js/nuxt_astParse.js +0 -194
- package/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +0 -77
- package/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +0 -99
- package/research/firewall_bypass.md +0 -38
- package/research/next_js.md +0 -116
- package/research/nuxt_js.md +0 -125
- package/research/vue_js.md +0 -9
- package/strings/index.js +0 -145
- package/techDetect/index.js +0 -156
- package/utility/globals.js +0 -6
- package/utility/makeReq.js +0 -179
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/utility/interfaces.ts"],"names":[],"mappings":""}
|