From 0458137f0cfb31a9b616d9aaa71d91bbb8eb9957 Mon Sep 17 00:00:00 2001 From: yoannchb-pro <71560747+yoannchb-pro@users.noreply.github.com> Date: Mon, 12 Jun 2023 23:13:47 -0400 Subject: [PATCH] v1.0.2 --- README.md | 1 + assets/logs.png | Bin 26021 -> 21226 bytes assets/question-to-answer.gif | Bin 0 -> 137564 bytes extension/MoodleGPT.js | 4 ++-- extension/MoodleGPT.js.map | 2 +- reset-moodle-inputs/reset.js | 4 ++++ src/utils/normalize-text.ts | 4 ++-- 7 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 assets/question-to-answer.gif diff --git a/README.md b/README.md index d108cb0..95dc750 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ Type back the code on the keyboard and the code will be removed from the - Autocomplete: The extension will complete the question for you. - Clipboard: The response is copied into the clipboard. - Question to answer: The question is converted to the answer and you can click on it to show back the question (or show back the answer). +
Question to Answer ## Settings diff --git a/assets/logs.png b/assets/logs.png index bd622870286d6df8552e7ef58aa8919e1b33af32..612d7f7962bdf842c34bbd528b5b010eec6bb74b 100644 GIT binary patch literal 21226 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 HG{gM~)sX2Y literal 0 HcmV?d00001 diff --git a/extension/MoodleGPT.js b/extension/MoodleGPT.js index 9aa4677..f8f8b99 100644 --- a/extension/MoodleGPT.js +++ b/extension/MoodleGPT.js @@ -61,8 +61,8 @@ */ function normalizeText(text) { return text - .replace(/\n+/g, "\n") - .replace(/[ \t]+/g, " ") + .replace(/(\n\s*)+/gi, "\n") + .replace(/[ \t]+/gi, " ") .toLowerCase() .trim() .replace(/^[a-z\d]\.\s/gi, "") //a. text, b. text, c. text, 1. text, 2. text, 3.text diff --git a/extension/MoodleGPT.js.map b/extension/MoodleGPT.js.map index bf59c03..6ee6e3a 100644 --- a/extension/MoodleGPT.js.map +++ b/extension/MoodleGPT.js.map @@ -1 +1 @@ -{"version":3,"file":"MoodleGPT.js","sources":["../src/utils/title-indications.ts","../node_modules/tslib/tslib.es6.js","../src/utils/logs.ts","../src/utils/normalize-text.ts","../src/core/get-response.ts","../src/utils/html-table-to-string.ts","../src/core/normalize-question.ts","../src/core/questions/radio-checkbox.ts","../src/core/questions/select.ts","../src/core/questions/textbox.ts","../src/core/questions/clipboard.ts","../src/core/questions/number.ts","../src/core/questions/contenteditable.ts","../src/core/reply.ts","../src/core/code-listener.ts","../src/index.ts"],"sourcesContent":["/**\r\n * Show some informations into the document title and remove it after 3000ms\r\n * @param text\r\n */\r\nfunction titleIndications(text: string) {\r\n const backTitle = document.title;\r\n document.title = text;\r\n setTimeout(() => (document.title = backTitle), 3000);\r\n}\r\n\r\nexport default titleIndications;\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","class Logs {\r\n static question(text: string) {\r\n const css = \"color: cyan\";\r\n console.log(\"%c[QUESTION]: %s\", css, text);\r\n }\r\n\r\n static responseTry(text: string, valide: boolean) {\r\n const css = \"color: \" + (valide ? \"green\" : \"red\");\r\n console.log(\"%c[CHECKING]: %s\", css, text);\r\n }\r\n\r\n static array(arr: unknown[]) {\r\n console.log(\"[CORRECTS] \", arr);\r\n }\r\n\r\n static response(text: string) {\r\n console.log(text);\r\n }\r\n}\r\n\r\nexport default Logs;\r\n","/**\r\n * Normlize text\r\n * @param text\r\n */\r\nfunction normalizeText(text: string) {\r\n return text\r\n .replace(/\\n+/g, \"\\n\")\r\n .replace(/[ \\t]+/g, \" \")\r\n .toLowerCase()\r\n .trim()\r\n .replace(/^[a-z\\d]\\.\\s/gi, \"\") //a. text, b. text, c. text, 1. text, 2. text, 3.text\r\n .replace(/\\n[a-z\\d]\\.\\s/gi, \"\\n\"); //same but with new line\r\n}\r\n\r\nexport default normalizeText;\r\n","import Config from \"../types/config\";\r\nimport normalizeText from \"../utils/normalize-text\";\r\n\r\n/**\r\n * Get the response from chatGPT api\r\n * @param config\r\n * @param question\r\n * @returns\r\n */\r\nasync function getChatGPTResponse(\r\n config: Config,\r\n question: string\r\n): Promise {\r\n const controller = new AbortController();\r\n const timeoutControler = setTimeout(() => controller.abort(), 10000);\r\n const req = await fetch(\"https://api.openai.com/v1/chat/completions\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${config.apiKey}`,\r\n },\r\n signal: config.timeout ? controller.signal : null,\r\n body: JSON.stringify({\r\n model: config.model,\r\n messages: [{ role: \"user\", content: question }],\r\n temperature: 0.8,\r\n top_p: 1.0,\r\n presence_penalty: 1.0,\r\n stop: null,\r\n }),\r\n });\r\n clearTimeout(timeoutControler);\r\n const rep = await req.json();\r\n const response = rep.choices[0].message.content;\r\n return normalizeText(response);\r\n}\r\n\r\nexport default getChatGPTResponse;\r\n","/**\r\n * Convert table to representating string table\r\n * @param table\r\n * @returns\r\n */\r\nfunction htmlTableToString(table: HTMLTableElement) {\r\n const tab: string[][] = [];\r\n const lines = Array.from(table.querySelectorAll(\"tr\"));\r\n const maxColumnsLength: number[] = [];\r\n lines.map((line) => {\r\n const cells = Array.from(line.querySelectorAll(\"td, th\"));\r\n const cellsContent = cells.map((cell, index) => {\r\n const content = cell.textContent?.trim();\r\n maxColumnsLength[index] = Math.max(\r\n maxColumnsLength[index] || 0,\r\n content.length || 0\r\n );\r\n return content;\r\n });\r\n tab.push(cellsContent);\r\n });\r\n\r\n const lineSeparationSize =\r\n maxColumnsLength.reduce((a, b) => a + b) + tab[0].length * 3 + 1;\r\n const lineSeparation =\r\n \"\\n\" + Array(lineSeparationSize).fill(\"-\").join(\"\") + \"\\n\";\r\n\r\n const mappedTab = tab.map((line) => {\r\n const mappedLine = line.map(\r\n (content, index) => content.padEnd(maxColumnsLength[index], \"\\u00A0\") //for no matching with \\s\r\n );\r\n return \"| \" + mappedLine.join(\" | \") + \" |\";\r\n });\r\n const head = mappedTab.shift();\r\n return head + lineSeparation + mappedTab.join(\"\\n\");\r\n}\r\n\r\nexport default htmlTableToString;\r\n","import Config from \"../types/config\";\r\nimport normalizeText from \"../utils/normalize-text\";\r\nimport htmlTableToString from \"../utils/html-table-to-string\";\r\n\r\n/**\r\n * Normalize the question and add sub informations\r\n * @param langage\r\n * @param question\r\n * @returns\r\n */\r\nfunction normalizeQuestion(config: Config, questionContainer: HTMLElement) {\r\n let question = questionContainer.textContent;\r\n\r\n if (config.table) {\r\n //make table more readable for chat-gpt\r\n const tables: NodeListOf =\r\n questionContainer.querySelectorAll(\".qtext table\");\r\n for (const table of tables) {\r\n question = question.replace(\r\n table.textContent,\r\n \"\\n\" + htmlTableToString(table) + \"\\n\"\r\n );\r\n }\r\n }\r\n\r\n const finalQuestion = `Give a short response as possible for this question, reply in the following question langage and only show the result: \r\n ${question} \r\n (If you have to choose between multiple results only show the corrects one, separate them with new line and take the same text as the question)`;\r\n return normalizeText(finalQuestion);\r\n}\r\n\r\nexport default normalizeQuestion;\r\n","import Config from \"../../types/config\";\r\nimport Logs from \"../../utils/logs\";\r\nimport normalizeText from \"../../utils/normalize-text\";\r\n\r\n/**\r\n * Handle checkbox and input elements\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n */\r\nfunction handleRadioAndCheckbox(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n const input = inputList?.[0] as HTMLInputElement;\r\n\r\n if (!input || (input.type !== \"checkbox\" && input.type !== \"radio\"))\r\n return false;\r\n\r\n for (const input of inputList as NodeListOf) {\r\n const content = normalizeText(input.parentNode.textContent);\r\n const valide = response.includes(content);\r\n if (config.logs) Logs.responseTry(content, valide);\r\n if (valide) {\r\n if (config.mouseover) {\r\n input.addEventListener(\"mouseover\", () => (input.checked = true), {\r\n once: true,\r\n });\r\n } else {\r\n input.checked = true;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nexport default handleRadioAndCheckbox;\r\n","import Config from \"../../types/config\";\r\nimport Logs from \"../../utils/logs\";\r\nimport normalizeText from \"../../utils/normalize-text\";\r\n\r\n/**\r\n * Handle select elements (and put in order select)\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n * @returns\r\n */\r\nfunction handleSelect(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n if (inputList.length === 0 || inputList[0].tagName !== \"SELECT\") return false;\r\n\r\n let correct = response.split(\"\\n\");\r\n if (correct.length === 1 && correct.length !== inputList.length)\r\n correct = response.split(\",\");\r\n\r\n if (config.logs) Logs.array(correct);\r\n\r\n for (let j = 0; j < inputList.length; ++j) {\r\n const options = inputList[j].querySelectorAll(\"option\");\r\n\r\n for (const option of options) {\r\n const content = normalizeText(option.textContent);\r\n const valide = correct[j].includes(content);\r\n\r\n //if it's a put in order\r\n if (!isNaN(parseInt(content))) {\r\n const content = normalizeText(\r\n (option.parentNode as HTMLElement)\r\n .closest(\"tr\")\r\n .querySelector(\".text\").textContent\r\n );\r\n const index = correct.findIndex((c) => {\r\n const valide = c.includes(content);\r\n if (config.logs) Logs.responseTry(content, valide);\r\n return valide;\r\n });\r\n if (index !== -1) {\r\n if (config.mouseover) {\r\n options[index + 1].closest(\"select\").addEventListener(\r\n \"click\",\r\n function () {\r\n options[index + 1].selected = \"selected\" as any;\r\n },\r\n { once: true }\r\n );\r\n } else {\r\n options[index + 1].selected = \"selected\" as any;\r\n }\r\n break;\r\n }\r\n }\r\n //end put in order\r\n\r\n if (config.logs) Logs.responseTry(content, valide);\r\n\r\n if (valide) {\r\n if (config.mouseover) {\r\n option\r\n .closest(\"select\")\r\n .addEventListener(\"click\", () => (option.selected = true), {\r\n once: true,\r\n });\r\n } else {\r\n option.selected = true;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default handleSelect;\r\n","import Config from \"../../types/config\";\r\n\r\n/**\r\n * Handle textbox\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n * @returns\r\n */\r\nfunction handleTextbox(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n const input = inputList[0] as HTMLInputElement | HTMLTextAreaElement;\r\n\r\n if (\r\n inputList.length !== 1 ||\r\n (input.tagName !== \"TEXTAREA\" && input.type !== \"text\")\r\n )\r\n return false;\r\n\r\n if (config.typing) {\r\n let index = 0;\r\n input.addEventListener(\"keydown\", function (event: KeyboardEvent) {\r\n if (event.key === \"Backspace\") index = response.length + 1;\r\n if (index > response.length) return;\r\n event.preventDefault();\r\n input.value = response.slice(0, ++index);\r\n });\r\n } else {\r\n input.value = response;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default handleTextbox;\r\n","import Config from \"../../types/config\";\r\nimport titleIndications from \"../../utils/title-indications\";\r\n\r\n/**\r\n * Copy the response in the clipboard if we can automaticaly fill the question\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n * @param force Force the copy to clipboard\r\n * @returns\r\n */\r\nfunction handleClipboard(config: Config, response: string) {\r\n if (config.title) titleIndications(\"Copied to clipboard\");\r\n navigator.clipboard.writeText(response);\r\n}\r\n\r\nexport default handleClipboard;\r\n","import Config from \"../../types/config\";\r\n\r\n/**\r\n * Handle number input\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n * @returns\r\n */\r\nfunction handleNumber(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n const input = inputList[0] as HTMLInputElement | HTMLTextAreaElement;\r\n\r\n if (inputList.length !== 1 || input.type !== \"number\") return false;\r\n\r\n const number = response.match(/\\d+([,\\.]\\d+)?/gi)?.[0]?.replace(\",\", \".\");\r\n\r\n if (!number) return false;\r\n\r\n if (config.typing) {\r\n let index = 0;\r\n input.addEventListener(\"keydown\", function (event: KeyboardEvent) {\r\n if (event.key === \"Backspace\") index = number.length + 1;\r\n if (index > number.length) return;\r\n event.preventDefault();\r\n if (number.slice(index, index + 1) === \".\") ++index;\r\n input.value = number.slice(0, ++index);\r\n });\r\n } else {\r\n input.value = number;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default handleNumber;\r\n","import Config from \"../../types/config\";\r\n\r\nfunction handleContentEditable(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n const input = inputList[0];\r\n\r\n if (\r\n inputList.length !== 1 ||\r\n input.getAttribute(\"contenteditable\") !== \"true\"\r\n )\r\n return false;\r\n\r\n if (config.typing) {\r\n let index = 0;\r\n input.addEventListener(\"keydown\", function (event: KeyboardEvent) {\r\n if (event.key === \"Backspace\") index = response.length + 1;\r\n if (index > response.length) return;\r\n event.preventDefault();\r\n input.textContent = response.slice(0, ++index);\r\n\r\n //put the cursor at the end\r\n input.focus();\r\n const range = document.createRange();\r\n range.selectNodeContents(input);\r\n range.collapse(false);\r\n const selection = window.getSelection();\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n });\r\n } else {\r\n input.textContent = response;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default handleContentEditable;\r\n","import Config from \"../types/config\";\r\nimport Logs from \"../utils/logs\";\r\nimport getChatGPTResponse from \"./get-response\";\r\nimport normalizeQuestion from \"./normalize-question\";\r\nimport handleRadioAndCheckbox from \"./questions/radio-checkbox\";\r\nimport handleSelect from \"./questions/select\";\r\nimport handleTextbox from \"./questions/textbox\";\r\nimport handleClipboard from \"./questions/clipboard\";\r\nimport handleNumber from \"./questions/number\";\r\nimport handleContentEditable from \"./questions/contenteditable\";\r\n\r\n/**\r\n * Reply to the question\r\n * @param config\r\n * @param hiddenButton\r\n * @param form\r\n * @param query\r\n * @returns\r\n */\r\nasync function reply(\r\n config: Config,\r\n hiddenButton: HTMLElement,\r\n form: HTMLElement,\r\n query: string\r\n) {\r\n if (config.cursor) hiddenButton.style.cursor = \"wait\";\r\n\r\n form.querySelector(\".accesshide\")?.remove();\r\n\r\n const question = normalizeQuestion(config, form);\r\n const inputList: NodeListOf = form.querySelectorAll(query);\r\n\r\n const response = await getChatGPTResponse(config, question).catch(\r\n (error) => ({\r\n error,\r\n })\r\n );\r\n\r\n if (config.cursor)\r\n hiddenButton.style.cursor = config.infinite ? \"pointer\" : \"initial\";\r\n\r\n if (typeof response === \"object\" && \"error\" in response) {\r\n console.error(response.error);\r\n return;\r\n }\r\n\r\n if (config.logs) {\r\n Logs.question(question);\r\n Logs.response(response);\r\n }\r\n\r\n if (config.mode === \"clipboard\") {\r\n return handleClipboard(config, response);\r\n }\r\n\r\n if (config.mode === \"question-to-answer\") {\r\n const questionBackup = form.textContent;\r\n const questionContainer = form.querySelector(\".qtext\");\r\n questionContainer.textContent = response;\r\n questionContainer.addEventListener(\"click\", function () {\r\n questionContainer.textContent =\r\n questionContainer.textContent === questionBackup\r\n ? response\r\n : questionBackup;\r\n });\r\n return;\r\n }\r\n\r\n const handlers = [\r\n handleContentEditable,\r\n handleTextbox,\r\n handleNumber,\r\n handleSelect,\r\n handleRadioAndCheckbox,\r\n ];\r\n\r\n for (const handler of handlers) {\r\n if (handler(config, inputList, response)) return;\r\n }\r\n\r\n /** In the case we can't auto complete the question */\r\n handleClipboard(config, response);\r\n}\r\n\r\nexport default reply;\r\n","import Config from \"../types/config\";\r\nimport titleIndications from \"../utils/title-indications\";\r\nimport reply from \"./reply\";\r\n\r\nconst pressedKeys: string[] = [];\r\nconst listeners: {\r\n element: HTMLElement;\r\n fn: (this: HTMLElement, ev: MouseEvent) => any;\r\n}[] = [];\r\n\r\n/**\r\n * Create a listener on the keyboard to inject the code\r\n * @param config\r\n */\r\nfunction codeListener(config: Config) {\r\n document.body.addEventListener(\"keydown\", function (event) {\r\n pressedKeys.push(event.key);\r\n if (pressedKeys.length > config.code.length) pressedKeys.shift();\r\n if (pressedKeys.join(\"\") === config.code) {\r\n pressedKeys.length = 0;\r\n setUpMoodleGpt(config);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Setup moodleGPT into the page (remove/injection)\r\n * @param config\r\n * @returns\r\n */\r\nfunction setUpMoodleGpt(config: Config) {\r\n //removing events\r\n if (listeners.length > 0) {\r\n for (const listener of listeners) {\r\n if (config.cursor) listener.element.style.cursor = \"initial\";\r\n listener.element.removeEventListener(\"click\", listener.fn);\r\n }\r\n if (config.title) titleIndications(\"Removed\");\r\n listeners.length = 0;\r\n return;\r\n }\r\n\r\n //injection\r\n const inputQuery = [\"checkbox\", \"radio\", \"text\", \"number\"]\r\n .map((e) => `input[type=\"${e}\"]`)\r\n .join(\",\");\r\n const query = inputQuery + \", textarea, select, [contenteditable]\";\r\n const forms = Array.from(document.querySelectorAll(\".formulation\"));\r\n\r\n for (const form of forms) {\r\n const hiddenButton: HTMLElement = form.querySelector(\".qtext\");\r\n\r\n if (config.cursor) hiddenButton.style.cursor = \"pointer\";\r\n const fn = reply.bind(null, config, hiddenButton, form, query);\r\n listeners.push({ element: hiddenButton, fn });\r\n hiddenButton.addEventListener(\"click\", fn, { once: !config.infinite });\r\n }\r\n\r\n if (config.title) titleIndications(\"Injected\");\r\n}\r\n\r\nexport default codeListener;\r\n","import codeListener from \"./core/code-listener\";\r\n\r\nchrome.storage.sync.get([\"moodleGPT\"]).then(function (storage) {\r\n const config = storage.moodleGPT;\r\n\r\n if (!config) throw new Error(\"Please configure MoodleGPT into the extension\");\r\n\r\n codeListener(config);\r\n});\r\n"],"names":[],"mappings":"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","x_google_ignoreList":[1]} \ No newline at end of file +{"version":3,"file":"MoodleGPT.js","sources":["../src/utils/title-indications.ts","../node_modules/tslib/tslib.es6.js","../src/utils/logs.ts","../src/utils/normalize-text.ts","../src/core/get-response.ts","../src/utils/html-table-to-string.ts","../src/core/normalize-question.ts","../src/core/questions/radio-checkbox.ts","../src/core/questions/select.ts","../src/core/questions/textbox.ts","../src/core/questions/clipboard.ts","../src/core/questions/number.ts","../src/core/questions/contenteditable.ts","../src/core/reply.ts","../src/core/code-listener.ts","../src/index.ts"],"sourcesContent":["/**\r\n * Show some informations into the document title and remove it after 3000ms\r\n * @param text\r\n */\r\nfunction titleIndications(text: string) {\r\n const backTitle = document.title;\r\n document.title = text;\r\n setTimeout(() => (document.title = backTitle), 3000);\r\n}\r\n\r\nexport default titleIndications;\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","class Logs {\r\n static question(text: string) {\r\n const css = \"color: cyan\";\r\n console.log(\"%c[QUESTION]: %s\", css, text);\r\n }\r\n\r\n static responseTry(text: string, valide: boolean) {\r\n const css = \"color: \" + (valide ? \"green\" : \"red\");\r\n console.log(\"%c[CHECKING]: %s\", css, text);\r\n }\r\n\r\n static array(arr: unknown[]) {\r\n console.log(\"[CORRECTS] \", arr);\r\n }\r\n\r\n static response(text: string) {\r\n console.log(text);\r\n }\r\n}\r\n\r\nexport default Logs;\r\n","/**\r\n * Normlize text\r\n * @param text\r\n */\r\nfunction normalizeText(text: string) {\r\n return text\r\n .replace(/(\\n\\s*)+/gi, \"\\n\")\r\n .replace(/[ \\t]+/gi, \" \")\r\n .toLowerCase()\r\n .trim()\r\n .replace(/^[a-z\\d]\\.\\s/gi, \"\") //a. text, b. text, c. text, 1. text, 2. text, 3.text\r\n .replace(/\\n[a-z\\d]\\.\\s/gi, \"\\n\"); //same but with new line\r\n}\r\n\r\nexport default normalizeText;\r\n","import Config from \"../types/config\";\r\nimport normalizeText from \"../utils/normalize-text\";\r\n\r\n/**\r\n * Get the response from chatGPT api\r\n * @param config\r\n * @param question\r\n * @returns\r\n */\r\nasync function getChatGPTResponse(\r\n config: Config,\r\n question: string\r\n): Promise {\r\n const controller = new AbortController();\r\n const timeoutControler = setTimeout(() => controller.abort(), 10000);\r\n const req = await fetch(\"https://api.openai.com/v1/chat/completions\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${config.apiKey}`,\r\n },\r\n signal: config.timeout ? controller.signal : null,\r\n body: JSON.stringify({\r\n model: config.model,\r\n messages: [{ role: \"user\", content: question }],\r\n temperature: 0.8,\r\n top_p: 1.0,\r\n presence_penalty: 1.0,\r\n stop: null,\r\n }),\r\n });\r\n clearTimeout(timeoutControler);\r\n const rep = await req.json();\r\n const response = rep.choices[0].message.content;\r\n return normalizeText(response);\r\n}\r\n\r\nexport default getChatGPTResponse;\r\n","/**\r\n * Convert table to representating string table\r\n * @param table\r\n * @returns\r\n */\r\nfunction htmlTableToString(table: HTMLTableElement) {\r\n const tab: string[][] = [];\r\n const lines = Array.from(table.querySelectorAll(\"tr\"));\r\n const maxColumnsLength: number[] = [];\r\n lines.map((line) => {\r\n const cells = Array.from(line.querySelectorAll(\"td, th\"));\r\n const cellsContent = cells.map((cell, index) => {\r\n const content = cell.textContent?.trim();\r\n maxColumnsLength[index] = Math.max(\r\n maxColumnsLength[index] || 0,\r\n content.length || 0\r\n );\r\n return content;\r\n });\r\n tab.push(cellsContent);\r\n });\r\n\r\n const lineSeparationSize =\r\n maxColumnsLength.reduce((a, b) => a + b) + tab[0].length * 3 + 1;\r\n const lineSeparation =\r\n \"\\n\" + Array(lineSeparationSize).fill(\"-\").join(\"\") + \"\\n\";\r\n\r\n const mappedTab = tab.map((line) => {\r\n const mappedLine = line.map(\r\n (content, index) => content.padEnd(maxColumnsLength[index], \"\\u00A0\") //for no matching with \\s\r\n );\r\n return \"| \" + mappedLine.join(\" | \") + \" |\";\r\n });\r\n const head = mappedTab.shift();\r\n return head + lineSeparation + mappedTab.join(\"\\n\");\r\n}\r\n\r\nexport default htmlTableToString;\r\n","import Config from \"../types/config\";\r\nimport normalizeText from \"../utils/normalize-text\";\r\nimport htmlTableToString from \"../utils/html-table-to-string\";\r\n\r\n/**\r\n * Normalize the question and add sub informations\r\n * @param langage\r\n * @param question\r\n * @returns\r\n */\r\nfunction normalizeQuestion(config: Config, questionContainer: HTMLElement) {\r\n let question = questionContainer.textContent;\r\n\r\n if (config.table) {\r\n //make table more readable for chat-gpt\r\n const tables: NodeListOf =\r\n questionContainer.querySelectorAll(\".qtext table\");\r\n for (const table of tables) {\r\n question = question.replace(\r\n table.textContent,\r\n \"\\n\" + htmlTableToString(table) + \"\\n\"\r\n );\r\n }\r\n }\r\n\r\n const finalQuestion = `Give a short response as possible for this question, reply in the following question langage and only show the result: \r\n ${question} \r\n (If you have to choose between multiple results only show the corrects one, separate them with new line and take the same text as the question)`;\r\n return normalizeText(finalQuestion);\r\n}\r\n\r\nexport default normalizeQuestion;\r\n","import Config from \"../../types/config\";\r\nimport Logs from \"../../utils/logs\";\r\nimport normalizeText from \"../../utils/normalize-text\";\r\n\r\n/**\r\n * Handle checkbox and input elements\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n */\r\nfunction handleRadioAndCheckbox(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n const input = inputList?.[0] as HTMLInputElement;\r\n\r\n if (!input || (input.type !== \"checkbox\" && input.type !== \"radio\"))\r\n return false;\r\n\r\n for (const input of inputList as NodeListOf) {\r\n const content = normalizeText(input.parentNode.textContent);\r\n const valide = response.includes(content);\r\n if (config.logs) Logs.responseTry(content, valide);\r\n if (valide) {\r\n if (config.mouseover) {\r\n input.addEventListener(\"mouseover\", () => (input.checked = true), {\r\n once: true,\r\n });\r\n } else {\r\n input.checked = true;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nexport default handleRadioAndCheckbox;\r\n","import Config from \"../../types/config\";\r\nimport Logs from \"../../utils/logs\";\r\nimport normalizeText from \"../../utils/normalize-text\";\r\n\r\n/**\r\n * Handle select elements (and put in order select)\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n * @returns\r\n */\r\nfunction handleSelect(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n if (inputList.length === 0 || inputList[0].tagName !== \"SELECT\") return false;\r\n\r\n let correct = response.split(\"\\n\");\r\n if (correct.length === 1 && correct.length !== inputList.length)\r\n correct = response.split(\",\");\r\n\r\n if (config.logs) Logs.array(correct);\r\n\r\n for (let j = 0; j < inputList.length; ++j) {\r\n const options = inputList[j].querySelectorAll(\"option\");\r\n\r\n for (const option of options) {\r\n const content = normalizeText(option.textContent);\r\n const valide = correct[j].includes(content);\r\n\r\n //if it's a put in order\r\n if (!isNaN(parseInt(content))) {\r\n const content = normalizeText(\r\n (option.parentNode as HTMLElement)\r\n .closest(\"tr\")\r\n .querySelector(\".text\").textContent\r\n );\r\n const index = correct.findIndex((c) => {\r\n const valide = c.includes(content);\r\n if (config.logs) Logs.responseTry(content, valide);\r\n return valide;\r\n });\r\n if (index !== -1) {\r\n if (config.mouseover) {\r\n options[index + 1].closest(\"select\").addEventListener(\r\n \"click\",\r\n function () {\r\n options[index + 1].selected = \"selected\" as any;\r\n },\r\n { once: true }\r\n );\r\n } else {\r\n options[index + 1].selected = \"selected\" as any;\r\n }\r\n break;\r\n }\r\n }\r\n //end put in order\r\n\r\n if (config.logs) Logs.responseTry(content, valide);\r\n\r\n if (valide) {\r\n if (config.mouseover) {\r\n option\r\n .closest(\"select\")\r\n .addEventListener(\"click\", () => (option.selected = true), {\r\n once: true,\r\n });\r\n } else {\r\n option.selected = true;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default handleSelect;\r\n","import Config from \"../../types/config\";\r\n\r\n/**\r\n * Handle textbox\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n * @returns\r\n */\r\nfunction handleTextbox(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n const input = inputList[0] as HTMLInputElement | HTMLTextAreaElement;\r\n\r\n if (\r\n inputList.length !== 1 ||\r\n (input.tagName !== \"TEXTAREA\" && input.type !== \"text\")\r\n )\r\n return false;\r\n\r\n if (config.typing) {\r\n let index = 0;\r\n input.addEventListener(\"keydown\", function (event: KeyboardEvent) {\r\n if (event.key === \"Backspace\") index = response.length + 1;\r\n if (index > response.length) return;\r\n event.preventDefault();\r\n input.value = response.slice(0, ++index);\r\n });\r\n } else {\r\n input.value = response;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default handleTextbox;\r\n","import Config from \"../../types/config\";\r\nimport titleIndications from \"../../utils/title-indications\";\r\n\r\n/**\r\n * Copy the response in the clipboard if we can automaticaly fill the question\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n * @param force Force the copy to clipboard\r\n * @returns\r\n */\r\nfunction handleClipboard(config: Config, response: string) {\r\n if (config.title) titleIndications(\"Copied to clipboard\");\r\n navigator.clipboard.writeText(response);\r\n}\r\n\r\nexport default handleClipboard;\r\n","import Config from \"../../types/config\";\r\n\r\n/**\r\n * Handle number input\r\n * @param config\r\n * @param inputList\r\n * @param response\r\n * @returns\r\n */\r\nfunction handleNumber(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n const input = inputList[0] as HTMLInputElement | HTMLTextAreaElement;\r\n\r\n if (inputList.length !== 1 || input.type !== \"number\") return false;\r\n\r\n const number = response.match(/\\d+([,\\.]\\d+)?/gi)?.[0]?.replace(\",\", \".\");\r\n\r\n if (!number) return false;\r\n\r\n if (config.typing) {\r\n let index = 0;\r\n input.addEventListener(\"keydown\", function (event: KeyboardEvent) {\r\n if (event.key === \"Backspace\") index = number.length + 1;\r\n if (index > number.length) return;\r\n event.preventDefault();\r\n if (number.slice(index, index + 1) === \".\") ++index;\r\n input.value = number.slice(0, ++index);\r\n });\r\n } else {\r\n input.value = number;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default handleNumber;\r\n","import Config from \"../../types/config\";\r\n\r\nfunction handleContentEditable(\r\n config: Config,\r\n inputList: NodeListOf,\r\n response: string\r\n): boolean {\r\n const input = inputList[0];\r\n\r\n if (\r\n inputList.length !== 1 ||\r\n input.getAttribute(\"contenteditable\") !== \"true\"\r\n )\r\n return false;\r\n\r\n if (config.typing) {\r\n let index = 0;\r\n input.addEventListener(\"keydown\", function (event: KeyboardEvent) {\r\n if (event.key === \"Backspace\") index = response.length + 1;\r\n if (index > response.length) return;\r\n event.preventDefault();\r\n input.textContent = response.slice(0, ++index);\r\n\r\n //put the cursor at the end\r\n input.focus();\r\n const range = document.createRange();\r\n range.selectNodeContents(input);\r\n range.collapse(false);\r\n const selection = window.getSelection();\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n });\r\n } else {\r\n input.textContent = response;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default handleContentEditable;\r\n","import Config from \"../types/config\";\r\nimport Logs from \"../utils/logs\";\r\nimport getChatGPTResponse from \"./get-response\";\r\nimport normalizeQuestion from \"./normalize-question\";\r\nimport handleRadioAndCheckbox from \"./questions/radio-checkbox\";\r\nimport handleSelect from \"./questions/select\";\r\nimport handleTextbox from \"./questions/textbox\";\r\nimport handleClipboard from \"./questions/clipboard\";\r\nimport handleNumber from \"./questions/number\";\r\nimport handleContentEditable from \"./questions/contenteditable\";\r\n\r\n/**\r\n * Reply to the question\r\n * @param config\r\n * @param hiddenButton\r\n * @param form\r\n * @param query\r\n * @returns\r\n */\r\nasync function reply(\r\n config: Config,\r\n hiddenButton: HTMLElement,\r\n form: HTMLElement,\r\n query: string\r\n) {\r\n if (config.cursor) hiddenButton.style.cursor = \"wait\";\r\n\r\n form.querySelector(\".accesshide\")?.remove();\r\n\r\n const question = normalizeQuestion(config, form);\r\n const inputList: NodeListOf = form.querySelectorAll(query);\r\n\r\n const response = await getChatGPTResponse(config, question).catch(\r\n (error) => ({\r\n error,\r\n })\r\n );\r\n\r\n if (config.cursor)\r\n hiddenButton.style.cursor = config.infinite ? \"pointer\" : \"initial\";\r\n\r\n if (typeof response === \"object\" && \"error\" in response) {\r\n console.error(response.error);\r\n return;\r\n }\r\n\r\n if (config.logs) {\r\n Logs.question(question);\r\n Logs.response(response);\r\n }\r\n\r\n if (config.mode === \"clipboard\") {\r\n return handleClipboard(config, response);\r\n }\r\n\r\n if (config.mode === \"question-to-answer\") {\r\n const questionBackup = form.textContent;\r\n const questionContainer = form.querySelector(\".qtext\");\r\n questionContainer.textContent = response;\r\n questionContainer.addEventListener(\"click\", function () {\r\n questionContainer.textContent =\r\n questionContainer.textContent === questionBackup\r\n ? response\r\n : questionBackup;\r\n });\r\n return;\r\n }\r\n\r\n const handlers = [\r\n handleContentEditable,\r\n handleTextbox,\r\n handleNumber,\r\n handleSelect,\r\n handleRadioAndCheckbox,\r\n ];\r\n\r\n for (const handler of handlers) {\r\n if (handler(config, inputList, response)) return;\r\n }\r\n\r\n /** In the case we can't auto complete the question */\r\n handleClipboard(config, response);\r\n}\r\n\r\nexport default reply;\r\n","import Config from \"../types/config\";\r\nimport titleIndications from \"../utils/title-indications\";\r\nimport reply from \"./reply\";\r\n\r\nconst pressedKeys: string[] = [];\r\nconst listeners: {\r\n element: HTMLElement;\r\n fn: (this: HTMLElement, ev: MouseEvent) => any;\r\n}[] = [];\r\n\r\n/**\r\n * Create a listener on the keyboard to inject the code\r\n * @param config\r\n */\r\nfunction codeListener(config: Config) {\r\n document.body.addEventListener(\"keydown\", function (event) {\r\n pressedKeys.push(event.key);\r\n if (pressedKeys.length > config.code.length) pressedKeys.shift();\r\n if (pressedKeys.join(\"\") === config.code) {\r\n pressedKeys.length = 0;\r\n setUpMoodleGpt(config);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Setup moodleGPT into the page (remove/injection)\r\n * @param config\r\n * @returns\r\n */\r\nfunction setUpMoodleGpt(config: Config) {\r\n //removing events\r\n if (listeners.length > 0) {\r\n for (const listener of listeners) {\r\n if (config.cursor) listener.element.style.cursor = \"initial\";\r\n listener.element.removeEventListener(\"click\", listener.fn);\r\n }\r\n if (config.title) titleIndications(\"Removed\");\r\n listeners.length = 0;\r\n return;\r\n }\r\n\r\n //injection\r\n const inputQuery = [\"checkbox\", \"radio\", \"text\", \"number\"]\r\n .map((e) => `input[type=\"${e}\"]`)\r\n .join(\",\");\r\n const query = inputQuery + \", textarea, select, [contenteditable]\";\r\n const forms = Array.from(document.querySelectorAll(\".formulation\"));\r\n\r\n for (const form of forms) {\r\n const hiddenButton: HTMLElement = form.querySelector(\".qtext\");\r\n\r\n if (config.cursor) hiddenButton.style.cursor = \"pointer\";\r\n const fn = reply.bind(null, config, hiddenButton, form, query);\r\n listeners.push({ element: hiddenButton, fn });\r\n hiddenButton.addEventListener(\"click\", fn, { once: !config.infinite });\r\n }\r\n\r\n if (config.title) titleIndications(\"Injected\");\r\n}\r\n\r\nexport default codeListener;\r\n","import codeListener from \"./core/code-listener\";\r\n\r\nchrome.storage.sync.get([\"moodleGPT\"]).then(function (storage) {\r\n const config = storage.moodleGPT;\r\n\r\n if (!config) throw new Error(\"Please configure MoodleGPT into the extension\");\r\n\r\n codeListener(config);\r\n});\r\n"],"names":[],"mappings":"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","x_google_ignoreList":[1]} \ No newline at end of file diff --git a/reset-moodle-inputs/reset.js b/reset-moodle-inputs/reset.js index 5f0cf3d..63aef3a 100644 --- a/reset-moodle-inputs/reset.js +++ b/reset-moodle-inputs/reset.js @@ -16,3 +16,7 @@ for (const input of document.querySelectorAll( for (const icon of document.querySelectorAll(".text-danger, .text-success")) { icon.remove(); } + +for (const feedback of document.querySelectorAll(".specificfeedback")) { + feedback.remove(); +} diff --git a/src/utils/normalize-text.ts b/src/utils/normalize-text.ts index 9a82cd4..7b65481 100644 --- a/src/utils/normalize-text.ts +++ b/src/utils/normalize-text.ts @@ -4,8 +4,8 @@ */ function normalizeText(text: string) { return text - .replace(/\n+/g, "\n") - .replace(/[ \t]+/g, " ") + .replace(/(\n\s*)+/gi, "\n") + .replace(/[ \t]+/gi, " ") .toLowerCase() .trim() .replace(/^[a-z\d]\.\s/gi, "") //a. text, b. text, c. text, 1. text, 2. text, 3.text