diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 39d43c5..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" - ], - "env": { - "browser": true - }, - "rules": { - "space-before-function-paren": ["error", "always"] - } -} diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 89a0504..837c836 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -26,6 +26,10 @@ jobs: env: VALIDATE_ALL_CODEBASE: true VALIDATE_CSS: false + VALIDATE_JAVASCRIPT_ES: false + VALIDATE_JAVASCRIPT_STANDARD: false + VALIDATE_JSON: false + VALIDATE_TYPESCRIPT_ES: false VALIDATE_TYPESCRIPT_STANDARD: false FILTER_REGEX_EXCLUDE: .*(\.min\.|sw\.js|workbox).* DEFAULT_BRANCH: master diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..20487bc --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,22 @@ +// @ts-check + +import eslint from '@eslint/js' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { + ignores: ['**/*.min.js', 'sw.js', 'workbox*.js'], + }, + + { + languageOptions: { + globals: { + navigator: 'readonly', + window: 'readonly', + }, + }, + }, + + eslint.configs.recommended, + ...tseslint.configs.recommended, +) diff --git a/ime/index.min.js.map b/ime/index.min.js.map index 4596cd4..5d88230 100644 --- a/ime/index.min.js.map +++ b/ime/index.min.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../ts/lib.ts", "../ts/index-ime.ts"], - "sourcesContent": ["function getAbjad (\n input: string,\n maghribiOrder: boolean,\n ignoreHamzah: boolean,\n): [number, boolean] {\n // Strip whitespace from input\n const inputCleaned = input.replace(/\\s+/g, '')\n\n // Define a total to keep track of the abjad value\n let total = 0\n\n let unrecognizedChars = false\n\n // Here we go! Run through the cleaned input, one character at a time\n // Check for matches with Arabic-script letters\n // Add relevant abjad values to the total\n for (let i = 0; i < inputCleaned.length; i += 1) {\n if (\n inputCleaned.charAt(i) === '\u0627' ||\n inputCleaned.charAt(i) === '\u0622' ||\n inputCleaned.charAt(i) === '\u0623' ||\n inputCleaned.charAt(i) === '\u0625' ||\n inputCleaned.charAt(i) === '\u0671'\n ) {\n total += 1\n } else if (inputCleaned.charAt(i) === '\u0621') {\n if (ignoreHamzah) {\n continue\n } else {\n total += 1\n }\n } else if (\n inputCleaned.charAt(i) === '\u0628' ||\n inputCleaned.charAt(i) === '\u067E'\n ) {\n total += 2\n } else if (\n inputCleaned.charAt(i) === '\u062C' ||\n inputCleaned.charAt(i) === '\u0686'\n ) {\n total += 3\n } else if (inputCleaned.charAt(i) === '\u062F') {\n total += 4\n } else if (\n inputCleaned.charAt(i) === '\u0647' ||\n inputCleaned.charAt(i) === '\u0629' ||\n inputCleaned.charAt(i) === '\u06C0' ||\n inputCleaned.charAt(i) === '\u06C1' // U+06C1\n ) {\n total += 5\n } else if (\n inputCleaned.charAt(i) === '\u0648' ||\n inputCleaned.charAt(i) === '\u0624'\n ) {\n total += 6\n } else if (\n inputCleaned.charAt(i) === '\u0632' ||\n inputCleaned.charAt(i) === '\u0698'\n ) {\n total += 7\n } else if (inputCleaned.charAt(i) === '\u062D') {\n total += 8\n } else if (inputCleaned.charAt(i) === '\u0637') {\n total += 9\n } else if (\n inputCleaned.charAt(i) === '\u06CC' ||\n inputCleaned.charAt(i) === '\u0649' ||\n inputCleaned.charAt(i) === '\u064A' ||\n inputCleaned.charAt(i) === '\u0626'\n ) {\n total += 10\n } else if (\n inputCleaned.charAt(i) === '\u06A9' ||\n inputCleaned.charAt(i) === '\u06AF' ||\n inputCleaned.charAt(i) === '\u0643'\n ) {\n total += 20\n } else if (inputCleaned.charAt(i) === '\u0644') {\n total += 30\n } else if (inputCleaned.charAt(i) === '\u0645') {\n total += 40\n } else if (inputCleaned.charAt(i) === '\u0646') {\n total += 50\n } else if (inputCleaned.charAt(i) === '\u0633') {\n if (maghribiOrder) {\n total += 300\n } else {\n total += 60\n }\n } else if (inputCleaned.charAt(i) === '\u0639') {\n total += 70\n } else if (inputCleaned.charAt(i) === '\u0641') {\n total += 80\n } else if (inputCleaned.charAt(i) === '\u0635') {\n if (maghribiOrder) {\n total += 60\n } else {\n total += 90\n }\n } else if (inputCleaned.charAt(i) === '\u0642') {\n total += 100\n } else if (inputCleaned.charAt(i) === '\u0631') {\n total += 200\n } else if (inputCleaned.charAt(i) === '\u0634') {\n if (maghribiOrder) {\n total += 1000\n } else {\n total += 300\n }\n } else if (inputCleaned.charAt(i) === '\u062A') {\n total += 400\n } else if (inputCleaned.charAt(i) === '\u062B') {\n total += 500\n } else if (inputCleaned.charAt(i) === '\u062E') {\n total += 600\n } else if (inputCleaned.charAt(i) === '\u0630') {\n total += 700\n } else if (inputCleaned.charAt(i) === '\u0636') {\n if (maghribiOrder) {\n total += 90\n } else {\n total += 800\n }\n } else if (inputCleaned.charAt(i) === '\u0638') {\n if (maghribiOrder) {\n total += 800\n } else {\n total += 900\n }\n } else if (inputCleaned.charAt(i) === '\u063A') {\n if (maghribiOrder) {\n total += 900\n } else {\n total += 1000\n }\n } else if (inputCleaned.charAt(i) === '\\u200C') {\n continue\n } else {\n // If the character wasn't recognized, add an error message\n // Need to reimplement this somehow; set a flag?\n unrecognizedChars = true\n continue\n }\n }\n\n return [total, unrecognizedChars]\n}\n\nexport function getResult (\n inputField: HTMLInputElement,\n resultField: HTMLElement,\n maghribiCheckbox: HTMLInputElement,\n hamzahCheckbox: HTMLInputElement,\n) {\n const input = inputField.value\n const maghribiOrder = maghribiCheckbox.checked\n const ignoreHamzah = hamzahCheckbox.checked\n\n const [total, unrecognizedChars] = getAbjad(\n input,\n maghribiOrder,\n ignoreHamzah,\n )\n\n const inputForDisplay = input.replace(/\\s+/g, ' ').trim()\n\n let resultText = unrecognizedChars\n ? \"At least one of the characters entered was not recognized and has been ignored.
That said, the computed abjad value of \u00AB\" +\n inputForDisplay +\n '\u00BB is'\n : \"The total abjad value of \u00AB\" +\n inputForDisplay +\n '\u00BB is'\n\n resultText += ' ' + total + '.'\n\n resultField.innerHTML = resultText\n inputField.blur()\n}\n", "import { getResult } from './lib'\n\n//\n// MAIN DOM ELEMENTS\n//\n\n// Input and result fields\nconst inputField = document.getElementById('hand-input') as HTMLInputElement\nconst resultField = document.getElementById('result') as HTMLElement\n\n// Checkboxes\nconst maghribiCheckbox = document.getElementById(\n 'maghribi-check',\n) as HTMLInputElement\nconst hamzahCheckbox = document.getElementById(\n 'hamzah-check',\n) as HTMLInputElement\n\n// Submit button\nconst goButton = document.getElementById('go-btn') as HTMLButtonElement\n\n//\n// BUTTONS!\n//\n\n// Primary letter buttons row 1\ndocument.getElementById('alif-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0627')\n})\ndocument.getElementById('ba-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0628')\n})\ndocument.getElementById('jim-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062C')\n})\ndocument.getElementById('dal-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062F')\n})\ndocument.getElementById('ha-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0647')\n})\ndocument.getElementById('waw-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0648')\n})\ndocument.getElementById('za-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0632')\n})\n\n// Primary letter buttons row 2\ndocument.getElementById('5a-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062D')\n})\ndocument.getElementById('taw-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0637')\n})\ndocument.getElementById('ya-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u064A')\n})\ndocument.getElementById('kaf-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0643')\n})\ndocument.getElementById('lam-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0644')\n})\ndocument.getElementById('mim-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0645')\n})\ndocument.getElementById('nun-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0646')\n})\n\n// Primary letter buttons row 3\ndocument.getElementById('sin-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0633')\n})\ndocument.getElementById('ayn-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0639')\n})\ndocument.getElementById('fa-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0641')\n})\ndocument.getElementById('sad-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0635')\n})\ndocument.getElementById('qaf-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0642')\n})\ndocument.getElementById('ra-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0631')\n})\ndocument.getElementById('shin-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0634')\n})\ndocument.getElementById('ta-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062A')\n})\n\n// Primary letter buttons row 4\ndocument.getElementById('tha-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062B')\n})\ndocument.getElementById('kha-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062E')\n})\ndocument.getElementById('dhal-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0630')\n})\ndocument.getElementById('dad-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0636')\n})\ndocument.getElementById('zaw-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0638')\n})\ndocument.getElementById('ghayn-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u063A')\n})\n\n// Secondary letter buttons\ndocument.getElementById('top-ham-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0623')\n})\ndocument.getElementById('bottom-ham-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0625')\n})\ndocument.getElementById('maddah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0622')\n})\ndocument.getElementById('hamzah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0621')\n})\ndocument.getElementById('marbutah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0629')\n})\ndocument.getElementById('waw-ham-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0624')\n})\ndocument.getElementById('maqsurah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0649')\n})\ndocument.getElementById('ya-ham-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0626')\n})\n\n// Persian letter buttons\ndocument.getElementById('pe-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u067E')\n})\ndocument.getElementById('che-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0686')\n})\ndocument.getElementById('ha-izafah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u06C0')\n})\ndocument.getElementById('zhe-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0698')\n})\ndocument.getElementById('pers-ya-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u06CC')\n})\ndocument.getElementById('pers-kaf-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u06A9')\n})\ndocument.getElementById('gaf-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u06AF')\n})\n\n// Control buttons\ndocument.getElementById('reset-btn')?.addEventListener('click', () => {\n resultField.innerHTML = 'The total abjad value of \u2026 is \u2026'\n})\ndocument.getElementById('space-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat(' ')\n})\ndocument.getElementById('back-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.slice(0, -1)\n})\n\n//\n// SUBMISSION HANDLING\n//\n\nfunction submitOnEnter (e: KeyboardEvent) {\n if (e.key === 'Enter' && !e.shiftKey) {\n getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox)\n e.preventDefault()\n }\n}\n\ninputField.addEventListener('keydown', submitOnEnter)\n\ngoButton.addEventListener('click', () => {\n getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox)\n})\n"], - "mappings": "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", + "sourcesContent": ["function getAbjad(\n input: string,\n maghribiOrder: boolean,\n ignoreHamzah: boolean,\n): [number, boolean] {\n // Strip whitespace from input\n const inputCleaned = input.replace(/\\s+/g, '')\n\n // Define a total to keep track of the abjad value\n let total = 0\n\n let unrecognizedChars = false\n\n // Here we go! Run through the cleaned input, one character at a time\n // Check for matches with Arabic-script letters\n // Add relevant abjad values to the total\n for (let i = 0; i < inputCleaned.length; i += 1) {\n if (\n inputCleaned.charAt(i) === '\u0627' ||\n inputCleaned.charAt(i) === '\u0622' ||\n inputCleaned.charAt(i) === '\u0623' ||\n inputCleaned.charAt(i) === '\u0625' ||\n inputCleaned.charAt(i) === '\u0671'\n ) {\n total += 1\n } else if (inputCleaned.charAt(i) === '\u0621') {\n if (ignoreHamzah) {\n continue\n } else {\n total += 1\n }\n } else if (\n inputCleaned.charAt(i) === '\u0628' ||\n inputCleaned.charAt(i) === '\u067E'\n ) {\n total += 2\n } else if (\n inputCleaned.charAt(i) === '\u062C' ||\n inputCleaned.charAt(i) === '\u0686'\n ) {\n total += 3\n } else if (inputCleaned.charAt(i) === '\u062F') {\n total += 4\n } else if (\n inputCleaned.charAt(i) === '\u0647' ||\n inputCleaned.charAt(i) === '\u0629' ||\n inputCleaned.charAt(i) === '\u06C0' ||\n inputCleaned.charAt(i) === '\u06C1' // U+06C1\n ) {\n total += 5\n } else if (\n inputCleaned.charAt(i) === '\u0648' ||\n inputCleaned.charAt(i) === '\u0624'\n ) {\n total += 6\n } else if (\n inputCleaned.charAt(i) === '\u0632' ||\n inputCleaned.charAt(i) === '\u0698'\n ) {\n total += 7\n } else if (inputCleaned.charAt(i) === '\u062D') {\n total += 8\n } else if (inputCleaned.charAt(i) === '\u0637') {\n total += 9\n } else if (\n inputCleaned.charAt(i) === '\u06CC' ||\n inputCleaned.charAt(i) === '\u0649' ||\n inputCleaned.charAt(i) === '\u064A' ||\n inputCleaned.charAt(i) === '\u0626'\n ) {\n total += 10\n } else if (\n inputCleaned.charAt(i) === '\u06A9' ||\n inputCleaned.charAt(i) === '\u06AF' ||\n inputCleaned.charAt(i) === '\u0643'\n ) {\n total += 20\n } else if (inputCleaned.charAt(i) === '\u0644') {\n total += 30\n } else if (inputCleaned.charAt(i) === '\u0645') {\n total += 40\n } else if (inputCleaned.charAt(i) === '\u0646') {\n total += 50\n } else if (inputCleaned.charAt(i) === '\u0633') {\n if (maghribiOrder) {\n total += 300\n } else {\n total += 60\n }\n } else if (inputCleaned.charAt(i) === '\u0639') {\n total += 70\n } else if (inputCleaned.charAt(i) === '\u0641') {\n total += 80\n } else if (inputCleaned.charAt(i) === '\u0635') {\n if (maghribiOrder) {\n total += 60\n } else {\n total += 90\n }\n } else if (inputCleaned.charAt(i) === '\u0642') {\n total += 100\n } else if (inputCleaned.charAt(i) === '\u0631') {\n total += 200\n } else if (inputCleaned.charAt(i) === '\u0634') {\n if (maghribiOrder) {\n total += 1000\n } else {\n total += 300\n }\n } else if (inputCleaned.charAt(i) === '\u062A') {\n total += 400\n } else if (inputCleaned.charAt(i) === '\u062B') {\n total += 500\n } else if (inputCleaned.charAt(i) === '\u062E') {\n total += 600\n } else if (inputCleaned.charAt(i) === '\u0630') {\n total += 700\n } else if (inputCleaned.charAt(i) === '\u0636') {\n if (maghribiOrder) {\n total += 90\n } else {\n total += 800\n }\n } else if (inputCleaned.charAt(i) === '\u0638') {\n if (maghribiOrder) {\n total += 800\n } else {\n total += 900\n }\n } else if (inputCleaned.charAt(i) === '\u063A') {\n if (maghribiOrder) {\n total += 900\n } else {\n total += 1000\n }\n } else if (inputCleaned.charAt(i) === '\\u200C') {\n continue\n } else {\n // If the character wasn't recognized, add an error message\n // Need to reimplement this somehow; set a flag?\n unrecognizedChars = true\n continue\n }\n }\n\n return [total, unrecognizedChars]\n}\n\nexport function getResult(\n inputField: HTMLInputElement,\n resultField: HTMLElement,\n maghribiCheckbox: HTMLInputElement,\n hamzahCheckbox: HTMLInputElement,\n) {\n const input = inputField.value\n const maghribiOrder = maghribiCheckbox.checked\n const ignoreHamzah = hamzahCheckbox.checked\n\n const [total, unrecognizedChars] = getAbjad(\n input,\n maghribiOrder,\n ignoreHamzah,\n )\n\n const inputForDisplay = input.replace(/\\s+/g, ' ').trim()\n\n let resultText = unrecognizedChars\n ? \"At least one of the characters entered was not recognized and has been ignored.
That said, the computed abjad value of \u00AB\" +\n inputForDisplay +\n '\u00BB is'\n : \"The total abjad value of \u00AB\" +\n inputForDisplay +\n '\u00BB is'\n\n resultText += ' ' + total + '.'\n\n resultField.innerHTML = resultText\n inputField.blur()\n}\n", "import { getResult } from './lib'\n\n//\n// MAIN DOM ELEMENTS\n//\n\n// Input and result fields\nconst inputField = document.getElementById('hand-input') as HTMLInputElement\nconst resultField = document.getElementById('result') as HTMLElement\n\n// Checkboxes\nconst maghribiCheckbox = document.getElementById(\n 'maghribi-check',\n) as HTMLInputElement\nconst hamzahCheckbox = document.getElementById(\n 'hamzah-check',\n) as HTMLInputElement\n\n// Submit button\nconst goButton = document.getElementById('go-btn') as HTMLButtonElement\n\n//\n// BUTTONS!\n//\n\n// Primary letter buttons row 1\ndocument.getElementById('alif-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0627')\n})\ndocument.getElementById('ba-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0628')\n})\ndocument.getElementById('jim-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062C')\n})\ndocument.getElementById('dal-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062F')\n})\ndocument.getElementById('ha-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0647')\n})\ndocument.getElementById('waw-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0648')\n})\ndocument.getElementById('za-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0632')\n})\n\n// Primary letter buttons row 2\ndocument.getElementById('5a-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062D')\n})\ndocument.getElementById('taw-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0637')\n})\ndocument.getElementById('ya-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u064A')\n})\ndocument.getElementById('kaf-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0643')\n})\ndocument.getElementById('lam-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0644')\n})\ndocument.getElementById('mim-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0645')\n})\ndocument.getElementById('nun-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0646')\n})\n\n// Primary letter buttons row 3\ndocument.getElementById('sin-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0633')\n})\ndocument.getElementById('ayn-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0639')\n})\ndocument.getElementById('fa-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0641')\n})\ndocument.getElementById('sad-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0635')\n})\ndocument.getElementById('qaf-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0642')\n})\ndocument.getElementById('ra-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0631')\n})\ndocument.getElementById('shin-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0634')\n})\ndocument.getElementById('ta-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062A')\n})\n\n// Primary letter buttons row 4\ndocument.getElementById('tha-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062B')\n})\ndocument.getElementById('kha-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u062E')\n})\ndocument.getElementById('dhal-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0630')\n})\ndocument.getElementById('dad-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0636')\n})\ndocument.getElementById('zaw-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0638')\n})\ndocument.getElementById('ghayn-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u063A')\n})\n\n// Secondary letter buttons\ndocument.getElementById('top-ham-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0623')\n})\ndocument.getElementById('bottom-ham-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0625')\n})\ndocument.getElementById('maddah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0622')\n})\ndocument.getElementById('hamzah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0621')\n})\ndocument.getElementById('marbutah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0629')\n})\ndocument.getElementById('waw-ham-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0624')\n})\ndocument.getElementById('maqsurah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0649')\n})\ndocument.getElementById('ya-ham-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0626')\n})\n\n// Persian letter buttons\ndocument.getElementById('pe-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u067E')\n})\ndocument.getElementById('che-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0686')\n})\ndocument.getElementById('ha-izafah-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u06C0')\n})\ndocument.getElementById('zhe-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u0698')\n})\ndocument.getElementById('pers-ya-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u06CC')\n})\ndocument.getElementById('pers-kaf-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u06A9')\n})\ndocument.getElementById('gaf-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat('\u06AF')\n})\n\n// Control buttons\ndocument.getElementById('reset-btn')?.addEventListener('click', () => {\n resultField.innerHTML = 'The total abjad value of \u2026 is \u2026'\n})\ndocument.getElementById('space-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.concat(' ')\n})\ndocument.getElementById('back-btn')?.addEventListener('click', () => {\n inputField.value = inputField.value.slice(0, -1)\n})\n\n//\n// SUBMISSION HANDLING\n//\n\nfunction submitOnEnter(e: KeyboardEvent) {\n if (e.key === 'Enter' && !e.shiftKey) {\n getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox)\n e.preventDefault()\n }\n}\n\ninputField.addEventListener('keydown', submitOnEnter)\n\ngoButton.addEventListener('click', () => {\n getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox)\n})\n"], + "mappings": "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", "names": ["getAbjad", "input", "maghribiOrder", "ignoreHamzah", "inputCleaned", "total", "unrecognizedChars", "i", "getResult", "inputField", "resultField", "maghribiCheckbox", "hamzahCheckbox", "inputForDisplay", "resultText", "inputField", "resultField", "maghribiCheckbox", "hamzahCheckbox", "goButton", "submitOnEnter", "e", "getResult"] } diff --git a/js/index.min.js.map b/js/index.min.js.map index 2536c8e..fad049b 100644 --- a/js/index.min.js.map +++ b/js/index.min.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../ts/lib.ts", "../ts/index-main.ts"], - "sourcesContent": ["function getAbjad (\n input: string,\n maghribiOrder: boolean,\n ignoreHamzah: boolean,\n): [number, boolean] {\n // Strip whitespace from input\n const inputCleaned = input.replace(/\\s+/g, '')\n\n // Define a total to keep track of the abjad value\n let total = 0\n\n let unrecognizedChars = false\n\n // Here we go! Run through the cleaned input, one character at a time\n // Check for matches with Arabic-script letters\n // Add relevant abjad values to the total\n for (let i = 0; i < inputCleaned.length; i += 1) {\n if (\n inputCleaned.charAt(i) === '\u0627' ||\n inputCleaned.charAt(i) === '\u0622' ||\n inputCleaned.charAt(i) === '\u0623' ||\n inputCleaned.charAt(i) === '\u0625' ||\n inputCleaned.charAt(i) === '\u0671'\n ) {\n total += 1\n } else if (inputCleaned.charAt(i) === '\u0621') {\n if (ignoreHamzah) {\n continue\n } else {\n total += 1\n }\n } else if (\n inputCleaned.charAt(i) === '\u0628' ||\n inputCleaned.charAt(i) === '\u067E'\n ) {\n total += 2\n } else if (\n inputCleaned.charAt(i) === '\u062C' ||\n inputCleaned.charAt(i) === '\u0686'\n ) {\n total += 3\n } else if (inputCleaned.charAt(i) === '\u062F') {\n total += 4\n } else if (\n inputCleaned.charAt(i) === '\u0647' ||\n inputCleaned.charAt(i) === '\u0629' ||\n inputCleaned.charAt(i) === '\u06C0' ||\n inputCleaned.charAt(i) === '\u06C1' // U+06C1\n ) {\n total += 5\n } else if (\n inputCleaned.charAt(i) === '\u0648' ||\n inputCleaned.charAt(i) === '\u0624'\n ) {\n total += 6\n } else if (\n inputCleaned.charAt(i) === '\u0632' ||\n inputCleaned.charAt(i) === '\u0698'\n ) {\n total += 7\n } else if (inputCleaned.charAt(i) === '\u062D') {\n total += 8\n } else if (inputCleaned.charAt(i) === '\u0637') {\n total += 9\n } else if (\n inputCleaned.charAt(i) === '\u06CC' ||\n inputCleaned.charAt(i) === '\u0649' ||\n inputCleaned.charAt(i) === '\u064A' ||\n inputCleaned.charAt(i) === '\u0626'\n ) {\n total += 10\n } else if (\n inputCleaned.charAt(i) === '\u06A9' ||\n inputCleaned.charAt(i) === '\u06AF' ||\n inputCleaned.charAt(i) === '\u0643'\n ) {\n total += 20\n } else if (inputCleaned.charAt(i) === '\u0644') {\n total += 30\n } else if (inputCleaned.charAt(i) === '\u0645') {\n total += 40\n } else if (inputCleaned.charAt(i) === '\u0646') {\n total += 50\n } else if (inputCleaned.charAt(i) === '\u0633') {\n if (maghribiOrder) {\n total += 300\n } else {\n total += 60\n }\n } else if (inputCleaned.charAt(i) === '\u0639') {\n total += 70\n } else if (inputCleaned.charAt(i) === '\u0641') {\n total += 80\n } else if (inputCleaned.charAt(i) === '\u0635') {\n if (maghribiOrder) {\n total += 60\n } else {\n total += 90\n }\n } else if (inputCleaned.charAt(i) === '\u0642') {\n total += 100\n } else if (inputCleaned.charAt(i) === '\u0631') {\n total += 200\n } else if (inputCleaned.charAt(i) === '\u0634') {\n if (maghribiOrder) {\n total += 1000\n } else {\n total += 300\n }\n } else if (inputCleaned.charAt(i) === '\u062A') {\n total += 400\n } else if (inputCleaned.charAt(i) === '\u062B') {\n total += 500\n } else if (inputCleaned.charAt(i) === '\u062E') {\n total += 600\n } else if (inputCleaned.charAt(i) === '\u0630') {\n total += 700\n } else if (inputCleaned.charAt(i) === '\u0636') {\n if (maghribiOrder) {\n total += 90\n } else {\n total += 800\n }\n } else if (inputCleaned.charAt(i) === '\u0638') {\n if (maghribiOrder) {\n total += 800\n } else {\n total += 900\n }\n } else if (inputCleaned.charAt(i) === '\u063A') {\n if (maghribiOrder) {\n total += 900\n } else {\n total += 1000\n }\n } else if (inputCleaned.charAt(i) === '\\u200C') {\n continue\n } else {\n // If the character wasn't recognized, add an error message\n // Need to reimplement this somehow; set a flag?\n unrecognizedChars = true\n continue\n }\n }\n\n return [total, unrecognizedChars]\n}\n\nexport function getResult (\n inputField: HTMLInputElement,\n resultField: HTMLElement,\n maghribiCheckbox: HTMLInputElement,\n hamzahCheckbox: HTMLInputElement,\n) {\n const input = inputField.value\n const maghribiOrder = maghribiCheckbox.checked\n const ignoreHamzah = hamzahCheckbox.checked\n\n const [total, unrecognizedChars] = getAbjad(\n input,\n maghribiOrder,\n ignoreHamzah,\n )\n\n const inputForDisplay = input.replace(/\\s+/g, ' ').trim()\n\n let resultText = unrecognizedChars\n ? \"At least one of the characters entered was not recognized and has been ignored.
That said, the computed abjad value of \u00AB\" +\n inputForDisplay +\n '\u00BB is'\n : \"The total abjad value of \u00AB\" +\n inputForDisplay +\n '\u00BB is'\n\n resultText += ' ' + total + '.'\n\n resultField.innerHTML = resultText\n inputField.blur()\n}\n", "import { getResult } from './lib'\n\n//\n// DOM ELEMENTS\n//\n\n// Input and result fields\nconst inputField = document.getElementById('abjad-text') as HTMLInputElement\nconst resultField = document.getElementById('result') as HTMLElement\n\n// Checkboxes\nconst maghribiCheckbox = document.getElementById(\n 'maghribi-check',\n) as HTMLInputElement\nconst hamzahCheckbox = document.getElementById(\n 'hamzah-check',\n) as HTMLInputElement\n\n// Buttons\nconst submitButton = document.getElementById(\n 'submit-button',\n) as HTMLButtonElement\nconst resetButton = document.getElementById('reset-button') as HTMLButtonElement\n\n//\n// EVENT HANDLING\n//\n\n// Submit\n\nfunction submitOnEnter (e: KeyboardEvent) {\n if (e.key === 'Enter' && !e.shiftKey) {\n getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox)\n e.preventDefault()\n }\n}\n\ninputField.addEventListener('keydown', submitOnEnter)\n\nsubmitButton.addEventListener('click', () => {\n getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox)\n})\n\n// Reset\n\nresetButton.addEventListener('click', () => {\n resultField.innerHTML = 'The total abjad value of \u2026 is \u2026'\n})\n"], - "mappings": "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", + "sourcesContent": ["function getAbjad(\n input: string,\n maghribiOrder: boolean,\n ignoreHamzah: boolean,\n): [number, boolean] {\n // Strip whitespace from input\n const inputCleaned = input.replace(/\\s+/g, '')\n\n // Define a total to keep track of the abjad value\n let total = 0\n\n let unrecognizedChars = false\n\n // Here we go! Run through the cleaned input, one character at a time\n // Check for matches with Arabic-script letters\n // Add relevant abjad values to the total\n for (let i = 0; i < inputCleaned.length; i += 1) {\n if (\n inputCleaned.charAt(i) === '\u0627' ||\n inputCleaned.charAt(i) === '\u0622' ||\n inputCleaned.charAt(i) === '\u0623' ||\n inputCleaned.charAt(i) === '\u0625' ||\n inputCleaned.charAt(i) === '\u0671'\n ) {\n total += 1\n } else if (inputCleaned.charAt(i) === '\u0621') {\n if (ignoreHamzah) {\n continue\n } else {\n total += 1\n }\n } else if (\n inputCleaned.charAt(i) === '\u0628' ||\n inputCleaned.charAt(i) === '\u067E'\n ) {\n total += 2\n } else if (\n inputCleaned.charAt(i) === '\u062C' ||\n inputCleaned.charAt(i) === '\u0686'\n ) {\n total += 3\n } else if (inputCleaned.charAt(i) === '\u062F') {\n total += 4\n } else if (\n inputCleaned.charAt(i) === '\u0647' ||\n inputCleaned.charAt(i) === '\u0629' ||\n inputCleaned.charAt(i) === '\u06C0' ||\n inputCleaned.charAt(i) === '\u06C1' // U+06C1\n ) {\n total += 5\n } else if (\n inputCleaned.charAt(i) === '\u0648' ||\n inputCleaned.charAt(i) === '\u0624'\n ) {\n total += 6\n } else if (\n inputCleaned.charAt(i) === '\u0632' ||\n inputCleaned.charAt(i) === '\u0698'\n ) {\n total += 7\n } else if (inputCleaned.charAt(i) === '\u062D') {\n total += 8\n } else if (inputCleaned.charAt(i) === '\u0637') {\n total += 9\n } else if (\n inputCleaned.charAt(i) === '\u06CC' ||\n inputCleaned.charAt(i) === '\u0649' ||\n inputCleaned.charAt(i) === '\u064A' ||\n inputCleaned.charAt(i) === '\u0626'\n ) {\n total += 10\n } else if (\n inputCleaned.charAt(i) === '\u06A9' ||\n inputCleaned.charAt(i) === '\u06AF' ||\n inputCleaned.charAt(i) === '\u0643'\n ) {\n total += 20\n } else if (inputCleaned.charAt(i) === '\u0644') {\n total += 30\n } else if (inputCleaned.charAt(i) === '\u0645') {\n total += 40\n } else if (inputCleaned.charAt(i) === '\u0646') {\n total += 50\n } else if (inputCleaned.charAt(i) === '\u0633') {\n if (maghribiOrder) {\n total += 300\n } else {\n total += 60\n }\n } else if (inputCleaned.charAt(i) === '\u0639') {\n total += 70\n } else if (inputCleaned.charAt(i) === '\u0641') {\n total += 80\n } else if (inputCleaned.charAt(i) === '\u0635') {\n if (maghribiOrder) {\n total += 60\n } else {\n total += 90\n }\n } else if (inputCleaned.charAt(i) === '\u0642') {\n total += 100\n } else if (inputCleaned.charAt(i) === '\u0631') {\n total += 200\n } else if (inputCleaned.charAt(i) === '\u0634') {\n if (maghribiOrder) {\n total += 1000\n } else {\n total += 300\n }\n } else if (inputCleaned.charAt(i) === '\u062A') {\n total += 400\n } else if (inputCleaned.charAt(i) === '\u062B') {\n total += 500\n } else if (inputCleaned.charAt(i) === '\u062E') {\n total += 600\n } else if (inputCleaned.charAt(i) === '\u0630') {\n total += 700\n } else if (inputCleaned.charAt(i) === '\u0636') {\n if (maghribiOrder) {\n total += 90\n } else {\n total += 800\n }\n } else if (inputCleaned.charAt(i) === '\u0638') {\n if (maghribiOrder) {\n total += 800\n } else {\n total += 900\n }\n } else if (inputCleaned.charAt(i) === '\u063A') {\n if (maghribiOrder) {\n total += 900\n } else {\n total += 1000\n }\n } else if (inputCleaned.charAt(i) === '\\u200C') {\n continue\n } else {\n // If the character wasn't recognized, add an error message\n // Need to reimplement this somehow; set a flag?\n unrecognizedChars = true\n continue\n }\n }\n\n return [total, unrecognizedChars]\n}\n\nexport function getResult(\n inputField: HTMLInputElement,\n resultField: HTMLElement,\n maghribiCheckbox: HTMLInputElement,\n hamzahCheckbox: HTMLInputElement,\n) {\n const input = inputField.value\n const maghribiOrder = maghribiCheckbox.checked\n const ignoreHamzah = hamzahCheckbox.checked\n\n const [total, unrecognizedChars] = getAbjad(\n input,\n maghribiOrder,\n ignoreHamzah,\n )\n\n const inputForDisplay = input.replace(/\\s+/g, ' ').trim()\n\n let resultText = unrecognizedChars\n ? \"At least one of the characters entered was not recognized and has been ignored.
That said, the computed abjad value of \u00AB\" +\n inputForDisplay +\n '\u00BB is'\n : \"The total abjad value of \u00AB\" +\n inputForDisplay +\n '\u00BB is'\n\n resultText += ' ' + total + '.'\n\n resultField.innerHTML = resultText\n inputField.blur()\n}\n", "import { getResult } from './lib'\n\n//\n// DOM ELEMENTS\n//\n\n// Input and result fields\nconst inputField = document.getElementById('abjad-text') as HTMLInputElement\nconst resultField = document.getElementById('result') as HTMLElement\n\n// Checkboxes\nconst maghribiCheckbox = document.getElementById(\n 'maghribi-check',\n) as HTMLInputElement\nconst hamzahCheckbox = document.getElementById(\n 'hamzah-check',\n) as HTMLInputElement\n\n// Buttons\nconst submitButton = document.getElementById(\n 'submit-button',\n) as HTMLButtonElement\nconst resetButton = document.getElementById('reset-button') as HTMLButtonElement\n\n//\n// EVENT HANDLING\n//\n\n// Submit\n\nfunction submitOnEnter(e: KeyboardEvent) {\n if (e.key === 'Enter' && !e.shiftKey) {\n getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox)\n e.preventDefault()\n }\n}\n\ninputField.addEventListener('keydown', submitOnEnter)\n\nsubmitButton.addEventListener('click', () => {\n getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox)\n})\n\n// Reset\n\nresetButton.addEventListener('click', () => {\n resultField.innerHTML = 'The total abjad value of \u2026 is \u2026'\n})\n"], + "mappings": "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", "names": ["getAbjad", "input", "maghribiOrder", "ignoreHamzah", "inputCleaned", "total", "unrecognizedChars", "i", "getResult", "inputField", "resultField", "maghribiCheckbox", "hamzahCheckbox", "inputForDisplay", "resultText", "inputField", "resultField", "maghribiCheckbox", "hamzahCheckbox", "submitButton", "resetButton", "submitOnEnter", "e", "getResult"] } diff --git a/package.json b/package.json index 85aaff4..31afe6e 100644 --- a/package.json +++ b/package.json @@ -12,23 +12,25 @@ }, "license": "MIT", "author": "Theo Beers", + "type": "module", "main": "index.html", "scripts": { "check": "tsc", "compile-ime": "esbuild ts/index-ime.ts --bundle --minify --sourcemap --outfile=ime/index.min.js", "compile-main": "esbuild ts/index-main.ts --bundle --minify --sourcemap --outfile=js/index.min.js", "format": "prettier --write .", - "lint": "eslint --fix --ignore-path .prettierignore . && stylelint --fix css/styles-*.css", + "lint": "eslint --fix . && stylelint --fix css/styles-*.css", "test": "echo \"Error: no test specified\" && exit 1" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^7.15.0", - "@typescript-eslint/parser": "^7.15.0", - "esbuild": "^0.23.0", - "eslint": "^8.57.0", - "prettier": "3.3.2", - "stylelint": "^16.6.1", + "@eslint/js": "^9.9.1", + "@types/eslint__js": "^8.42.3", + "esbuild": "^0.23.1", + "eslint": "^9.9.1", + "prettier": "3.3.3", + "stylelint": "^16.8.2", "stylelint-config-standard": "^36.0.1", - "typescript": "^5.5.3" + "typescript": "^5.5.4", + "typescript-eslint": "^8.3.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ad6fa9e..4ecf1c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,30 +8,33 @@ importers: .: devDependencies: - '@typescript-eslint/eslint-plugin': - specifier: ^7.15.0 - version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/parser': - specifier: ^7.15.0 - version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) + '@eslint/js': + specifier: ^9.9.1 + version: 9.9.1 + '@types/eslint__js': + specifier: ^8.42.3 + version: 8.42.3 esbuild: - specifier: ^0.23.0 - version: 0.23.0 + specifier: ^0.23.1 + version: 0.23.1 eslint: - specifier: ^8.57.0 - version: 8.57.0 + specifier: ^9.9.1 + version: 9.9.1 prettier: - specifier: 3.3.2 - version: 3.3.2 + specifier: 3.3.3 + version: 3.3.3 stylelint: - specifier: ^16.6.1 - version: 16.6.1(typescript@5.5.3) + specifier: ^16.8.2 + version: 16.8.2(typescript@5.5.4) stylelint-config-standard: specifier: ^36.0.1 - version: 36.0.1(stylelint@16.6.1(typescript@5.5.3)) + version: 36.0.1(stylelint@16.8.2(typescript@5.5.4)) typescript: - specifier: ^5.5.3 - version: 5.5.3 + specifier: ^5.5.4 + version: 5.5.4 + typescript-eslint: + specifier: ^8.3.0 + version: 8.3.0(eslint@9.9.1)(typescript@5.5.4) packages: @@ -47,172 +50,172 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@csstools/css-parser-algorithms@2.7.1': - resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} - engines: {node: ^14 || ^16 || >=18} + '@csstools/css-parser-algorithms@3.0.1': + resolution: {integrity: sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==} + engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^2.4.1 + '@csstools/css-tokenizer': ^3.0.1 - '@csstools/css-tokenizer@2.4.1': - resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} - engines: {node: ^14 || ^16 || >=18} + '@csstools/css-tokenizer@3.0.1': + resolution: {integrity: sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==} + engines: {node: '>=18'} - '@csstools/media-query-list-parser@2.1.13': - resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==} - engines: {node: ^14 || ^16 || >=18} + '@csstools/media-query-list-parser@3.0.1': + resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} + engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.1 - '@csstools/css-tokenizer': ^2.4.1 + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 - '@csstools/selector-specificity@3.1.1': - resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} - engines: {node: ^14 || ^16 || >=18} + '@csstools/selector-specificity@4.0.0': + resolution: {integrity: sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==} + engines: {node: '>=18'} peerDependencies: - postcss-selector-parser: ^6.0.13 + postcss-selector-parser: ^6.1.0 '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} - '@esbuild/aix-ppc64@0.23.0': - resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.23.0': - resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.23.0': - resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.23.0': - resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.23.0': - resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.23.0': - resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.23.0': - resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.0': - resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.23.0': - resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.23.0': - resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.23.0': - resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.23.0': - resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.23.0': - resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.23.0': - resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.23.0': - resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.23.0': - resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.23.0': - resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.23.0': - resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.0': - resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.0': - resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.23.0': - resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.23.0': - resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.23.0': - resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.23.0': - resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -227,26 +230,29 @@ packages: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@eslint/js@9.9.1': + resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -260,66 +266,74 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@typescript-eslint/eslint-plugin@7.15.0': - resolution: {integrity: sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/eslint__js@8.42.3': + resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@typescript-eslint/eslint-plugin@8.3.0': + resolution: {integrity: sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@7.15.0': - resolution: {integrity: sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.3.0': + resolution: {integrity: sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@7.15.0': - resolution: {integrity: sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.3.0': + resolution: {integrity: sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.15.0': - resolution: {integrity: sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/type-utils@8.3.0': + resolution: {integrity: sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@7.15.0': - resolution: {integrity: sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.3.0': + resolution: {integrity: sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.15.0': - resolution: {integrity: sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.3.0': + resolution: {integrity: sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/utils@7.15.0': - resolution: {integrity: sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.3.0': + resolution: {integrity: sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@7.15.0': - resolution: {integrity: sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@typescript-eslint/visitor-keys@8.3.0': + resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -334,8 +348,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.16.0: - resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -437,8 +451,8 @@ packages: engines: {node: '>=4'} hasBin: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -453,10 +467,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -467,8 +477,8 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - esbuild@0.23.0: - resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} engines: {node: '>=18'} hasBin: true @@ -480,25 +490,34 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.9.1: + resolution: {integrity: sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -526,6 +545,9 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -533,9 +555,9 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-entry-cache@9.0.0: resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} @@ -549,9 +571,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flat-cache@5.0.0: resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} @@ -560,9 +582,6 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -571,10 +590,6 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - global-modules@2.0.0: resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} engines: {node: '>=6'} @@ -583,9 +598,9 @@ packages: resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} engines: {node: '>=6'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -609,8 +624,8 @@ packages: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} import-fresh@3.3.0: @@ -621,13 +636,6 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} @@ -690,8 +698,8 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - known-css-properties@0.31.0: - resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} + known-css-properties@0.34.0: + resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -724,8 +732,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} minimatch@3.1.2: @@ -750,9 +758,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -777,10 +782,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -796,8 +797,8 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - postcss-resolve-nested-selector@0.1.1: - resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + postcss-resolve-nested-selector@0.1.6: + resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} postcss-safe-parser@7.0.0: resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} @@ -805,23 +806,23 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -848,16 +849,11 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -913,8 +909,8 @@ packages: peerDependencies: stylelint: ^16.1.0 - stylelint@16.6.1: - resolution: {integrity: sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==} + stylelint@16.8.2: + resolution: {integrity: sha512-fInKATippQhcSm7AB+T32GpI+626yohrg33GkFT/5jzliUw5qhlwZq2UQQwgl3HsHrf09oeARi0ZwgY/UWEv9A==} engines: {node: '>=18.12.0'} hasBin: true @@ -926,8 +922,8 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-hyperlinks@3.0.0: - resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + supports-hyperlinks@3.1.0: + resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} engines: {node: '>=14.18'} svg-tags@1.0.0: @@ -954,12 +950,17 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + typescript-eslint@8.3.0: + resolution: {integrity: sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - typescript@5.5.3: - resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true @@ -982,9 +983,6 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@5.0.1: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1009,109 +1007,117 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 - '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': + '@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1)': dependencies: - '@csstools/css-tokenizer': 2.4.1 + '@csstools/css-tokenizer': 3.0.1 - '@csstools/css-tokenizer@2.4.1': {} + '@csstools/css-tokenizer@3.0.1': {} - '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': + '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 - '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.0)': + '@csstools/selector-specificity@4.0.0(postcss-selector-parser@6.1.2)': dependencies: - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.1.2 '@dual-bundle/import-meta-resolve@4.1.0': {} - '@esbuild/aix-ppc64@0.23.0': + '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/android-arm64@0.23.0': + '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.23.0': + '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-x64@0.23.0': + '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.23.0': + '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-x64@0.23.0': + '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.23.0': + '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.23.0': + '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.23.0': + '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm@0.23.0': + '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-ia32@0.23.0': + '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-loong64@0.23.0': + '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.23.0': + '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-ppc64@0.23.0': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.23.0': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-s390x@0.23.0': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-x64@0.23.0': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.23.0': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.23.0': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.23.0': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.23.0': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/win32-arm64@0.23.0': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-ia32@0.23.0': + '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-x64@0.23.0': + '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1)': dependencies: - eslint: 8.57.0 + eslint: 9.9.1 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 + debug: 4.3.6 + espree: 10.1.0 + globals: 14.0.0 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1119,19 +1125,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@9.9.1': {} - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@eslint/object-schema@2.1.4': {} '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.0': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -1145,89 +1145,100 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)': + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + + '@types/eslint__js@8.42.3': + dependencies: + '@types/eslint': 9.6.1 + + '@types/estree@1.0.5': {} + + '@types/json-schema@7.0.15': {} + + '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/scope-manager': 7.15.0 - '@typescript-eslint/type-utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.15.0 - eslint: 8.57.0 + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.3.0 + eslint: 9.9.1 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.3) + ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: - typescript: 5.5.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3)': + '@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 7.15.0 - '@typescript-eslint/types': 7.15.0 - '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.15.0 - debug: 4.3.5 - eslint: 8.57.0 + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.3.0 + debug: 4.3.6 + eslint: 9.9.1 optionalDependencies: - typescript: 5.5.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.15.0': + '@typescript-eslint/scope-manager@8.3.0': dependencies: - '@typescript-eslint/types': 7.15.0 - '@typescript-eslint/visitor-keys': 7.15.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/visitor-keys': 8.3.0 - '@typescript-eslint/type-utils@7.15.0(eslint@8.57.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@8.3.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3) - '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3) - debug: 4.3.5 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.5.3) + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + debug: 4.3.6 + ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: - typescript: 5.5.3 + typescript: 5.5.4 transitivePeerDependencies: + - eslint - supports-color - '@typescript-eslint/types@7.15.0': {} + '@typescript-eslint/types@8.3.0': {} - '@typescript-eslint/typescript-estree@7.15.0(typescript@5.5.3)': + '@typescript-eslint/typescript-estree@8.3.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 7.15.0 - '@typescript-eslint/visitor-keys': 7.15.0 - debug: 4.3.5 - globby: 11.1.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/visitor-keys': 8.3.0 + debug: 4.3.6 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.3) + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: - typescript: 5.5.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.15.0(eslint@8.57.0)(typescript@5.5.3)': + '@typescript-eslint/utils@8.3.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.15.0 - '@typescript-eslint/types': 7.15.0 - '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3) - eslint: 8.57.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + eslint: 9.9.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.15.0': + '@typescript-eslint/visitor-keys@8.3.0': dependencies: - '@typescript-eslint/types': 7.15.0 + '@typescript-eslint/types': 8.3.0 eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.0': {} - acorn-jsx@5.3.2(acorn@8.12.1): dependencies: acorn: 8.12.1 @@ -1241,12 +1252,12 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.16.0: + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 ansi-regex@5.0.1: {} @@ -1312,14 +1323,14 @@ snapshots: concat-map@0.0.1: {} - cosmiconfig@9.0.0(typescript@5.5.3): + cosmiconfig@9.0.0(typescript@5.5.4): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.5.3 + typescript: 5.5.4 cross-spawn@7.0.3: dependencies: @@ -1336,7 +1347,7 @@ snapshots: cssesc@3.0.0: {} - debug@4.3.5: + debug@4.3.6: dependencies: ms: 2.1.2 @@ -1346,10 +1357,6 @@ snapshots: dependencies: path-type: 4.0.0 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - emoji-regex@8.0.0: {} env-paths@2.2.1: {} @@ -1358,76 +1365,74 @@ snapshots: dependencies: is-arrayish: 0.2.1 - esbuild@0.23.0: + esbuild@0.23.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.0 - '@esbuild/android-arm': 0.23.0 - '@esbuild/android-arm64': 0.23.0 - '@esbuild/android-x64': 0.23.0 - '@esbuild/darwin-arm64': 0.23.0 - '@esbuild/darwin-x64': 0.23.0 - '@esbuild/freebsd-arm64': 0.23.0 - '@esbuild/freebsd-x64': 0.23.0 - '@esbuild/linux-arm': 0.23.0 - '@esbuild/linux-arm64': 0.23.0 - '@esbuild/linux-ia32': 0.23.0 - '@esbuild/linux-loong64': 0.23.0 - '@esbuild/linux-mips64el': 0.23.0 - '@esbuild/linux-ppc64': 0.23.0 - '@esbuild/linux-riscv64': 0.23.0 - '@esbuild/linux-s390x': 0.23.0 - '@esbuild/linux-x64': 0.23.0 - '@esbuild/netbsd-x64': 0.23.0 - '@esbuild/openbsd-arm64': 0.23.0 - '@esbuild/openbsd-x64': 0.23.0 - '@esbuild/sunos-x64': 0.23.0 - '@esbuild/win32-arm64': 0.23.0 - '@esbuild/win32-ia32': 0.23.0 - '@esbuild/win32-x64': 0.23.0 + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} - eslint-scope@7.2.2: + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint@8.57.0: + eslint-visitor-keys@4.0.0: {} + + eslint@9.9.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/config-array': 0.18.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.9.1 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 - doctrine: 3.0.0 + debug: 4.3.6 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 + eslint-scope: 8.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -1439,13 +1444,13 @@ snapshots: transitivePeerDependencies: - supports-color - espree@9.6.1: + espree@10.1.0: dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.0.0 - esquery@1.5.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -1465,21 +1470,23 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} + fast-uri@3.0.1: {} + fastest-levenshtein@1.0.16: {} fastq@1.17.1: dependencies: reusify: 1.0.4 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-entry-cache@9.0.0: dependencies: @@ -1494,11 +1501,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flat-cache@5.0.0: dependencies: @@ -1507,8 +1513,6 @@ snapshots: flatted@3.3.1: {} - fs.realpath@1.0.0: {} - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -1517,15 +1521,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - global-modules@2.0.0: dependencies: global-prefix: 3.0.0 @@ -1536,16 +1531,14 @@ snapshots: kind-of: 6.0.3 which: 1.3.1 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -1559,7 +1552,7 @@ snapshots: html-tags@3.3.1: {} - ignore@5.3.1: {} + ignore@5.3.2: {} import-fresh@3.3.0: dependencies: @@ -1568,13 +1561,6 @@ snapshots: imurmurhash@0.1.4: {} - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - ini@1.3.8: {} is-arrayish@0.2.1: {} @@ -1617,7 +1603,7 @@ snapshots: kind-of@6.0.3: {} - known-css-properties@0.31.0: {} + known-css-properties@0.34.0: {} levn@0.4.1: dependencies: @@ -1642,7 +1628,7 @@ snapshots: merge2@1.4.1: {} - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 @@ -1663,10 +1649,6 @@ snapshots: normalize-path@3.0.0: {} - once@1.4.0: - dependencies: - wrappy: 1.0.2 - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -1697,8 +1679,6 @@ snapshots: path-exists@4.0.0: {} - path-is-absolute@1.0.1: {} - path-key@3.1.1: {} path-type@4.0.0: {} @@ -1707,20 +1687,20 @@ snapshots: picomatch@2.3.1: {} - postcss-resolve-nested-selector@0.1.1: {} + postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.0(postcss@8.4.39): + postcss-safe-parser@7.0.0(postcss@8.4.41): dependencies: - postcss: 8.4.39 + postcss: 8.4.41 - postcss-selector-parser@6.1.0: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} - postcss@8.4.39: + postcss@8.4.41: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -1728,7 +1708,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.3.2: {} + prettier@3.3.3: {} punycode@2.3.1: {} @@ -1742,15 +1722,11 @@ snapshots: reusify@1.0.4: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - semver@7.6.2: {} + semver@7.6.3: {} shebang-command@2.0.0: dependencies: @@ -1786,28 +1762,28 @@ snapshots: strip-json-comments@3.1.1: {} - stylelint-config-recommended@14.0.1(stylelint@16.6.1(typescript@5.5.3)): + stylelint-config-recommended@14.0.1(stylelint@16.8.2(typescript@5.5.4)): dependencies: - stylelint: 16.6.1(typescript@5.5.3) + stylelint: 16.8.2(typescript@5.5.4) - stylelint-config-standard@36.0.1(stylelint@16.6.1(typescript@5.5.3)): + stylelint-config-standard@36.0.1(stylelint@16.8.2(typescript@5.5.4)): dependencies: - stylelint: 16.6.1(typescript@5.5.3) - stylelint-config-recommended: 14.0.1(stylelint@16.6.1(typescript@5.5.3)) + stylelint: 16.8.2(typescript@5.5.4) + stylelint-config-recommended: 14.0.1(stylelint@16.8.2(typescript@5.5.4)) - stylelint@16.6.1(typescript@5.5.3): + stylelint@16.8.2(typescript@5.5.4): dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.0) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.5.3) + cosmiconfig: 9.0.0(typescript@5.5.4) css-functions-list: 3.2.2 css-tree: 2.3.1 - debug: 4.3.5 + debug: 4.3.6 fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 file-entry-cache: 9.0.0 @@ -1815,24 +1791,24 @@ snapshots: globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.31.0 + known-css-properties: 0.34.0 mathml-tag-names: 2.1.3 meow: 13.2.0 - micromatch: 4.0.7 + micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.39 - postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 7.0.0(postcss@8.4.39) - postcss-selector-parser: 6.1.0 + postcss: 8.4.41 + postcss-resolve-nested-selector: 0.1.6 + postcss-safe-parser: 7.0.0(postcss@8.4.41) + postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 strip-ansi: 7.1.0 - supports-hyperlinks: 3.0.0 + supports-hyperlinks: 3.1.0 svg-tags: 1.0.0 table: 6.8.2 write-file-atomic: 5.0.1 @@ -1848,7 +1824,7 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@3.0.0: + supports-hyperlinks@3.1.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 @@ -1857,7 +1833,7 @@ snapshots: table@6.8.2: dependencies: - ajv: 8.16.0 + ajv: 8.17.1 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -1869,17 +1845,26 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@1.3.0(typescript@5.5.3): + ts-api-utils@1.3.0(typescript@5.5.4): dependencies: - typescript: 5.5.3 + typescript: 5.5.4 type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} + typescript-eslint@8.3.0(eslint@9.9.1)(typescript@5.5.4): + dependencies: + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - eslint + - supports-color - typescript@5.5.3: {} + typescript@5.5.4: {} uri-js@4.4.1: dependencies: @@ -1897,8 +1882,6 @@ snapshots: word-wrap@1.2.5: {} - wrappy@1.0.2: {} - write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 diff --git a/sw.js b/sw.js index 349b91a..5e8f3cb 100644 --- a/sw.js +++ b/sw.js @@ -1,2 +1,2 @@ -if(!self.define){let e,s={};const i=(i,r)=>(i=new URL(i+".js",r).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(r,c)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(s[n])return;let a={};const o=e=>i(e,n),d={module:{uri:n},exports:a,require:o};s[n]=Promise.all(r.map((e=>d[e]||o(e)))).then((e=>(c(...e),a)))}}define(["./workbox-edadad33"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"404.html",revision:"8d70c898a27e22811e126259085e0115"},{url:"css/bootstrap.min.css",revision:"e451b87914db6243b6afa3c5e484ec16"},{url:"css/styles-ime.css",revision:"3a729975204293c9f2ea39593a9a12cc"},{url:"css/styles-main.css",revision:"2da08eab60a20f3c591cccf0638205a6"},{url:"css/styles-shared.css",revision:"943aae4a88c5dabc8f00e7ec840bdacf"},{url:"css/styles-table.css",revision:"94da60280947939c61c2249cafe8552f"},{url:"ime/index.html",revision:"4847eec1c969ff0238a0c3f829be9f7c"},{url:"ime/index.min.js",revision:"f078b4cc04460a778729884d45b29b10"},{url:"ime/registerSW.js",revision:"014e730f93650d140e7c8b0d568d6a87"},{url:"img/apple-touch-icon.png",revision:"bd041186b20fe2f084dc15b255097dda"},{url:"img/icon-192.png",revision:"e395941e4114071adaa6b1a5ad1a2a08"},{url:"img/icon-512.png",revision:"13150e41d1f52f224a046f1d4b444099"},{url:"img/icon.svg",revision:"2f2e3f12531bf600c7b1a8a507dbcef1"},{url:"index.html",revision:"f9fa3c45da58a235628fd29703b570a1"},{url:"js/bootstrap.bundle.min.js",revision:"715756e65b9ff107f4cf927e3e8bbf76"},{url:"js/index.min.js",revision:"e4397fcda049c5901ec4383599496d87"},{url:"js/registerSW.js",revision:"403035ad56ee65583062726f12f55a08"},{url:"table/index.html",revision:"7e3809554c6faa52fe5d9a7bd612f61e"},{url:"table/registerSW.js",revision:"014e730f93650d140e7c8b0d568d6a87"}],{ignoreURLParametersMatching:[/^utm_/,/^fbclid$/]})})); +if(!self.define){let e,i={};const s=(s,c)=>(s=new URL(s+".js",c).href,i[s]||new Promise((i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()})).then((()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(c,r)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(i[n])return;let a={};const d=e=>s(e,n),f={module:{uri:n},exports:a,require:d};i[n]=Promise.all(c.map((e=>f[e]||d(e)))).then((e=>(r(...e),a)))}}define(["./workbox-edadad33"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"404.html",revision:"8d70c898a27e22811e126259085e0115"},{url:"css/bootstrap.min.css",revision:"e451b87914db6243b6afa3c5e484ec16"},{url:"css/styles-ime.css",revision:"3a729975204293c9f2ea39593a9a12cc"},{url:"css/styles-main.css",revision:"2da08eab60a20f3c591cccf0638205a6"},{url:"css/styles-shared.css",revision:"943aae4a88c5dabc8f00e7ec840bdacf"},{url:"css/styles-table.css",revision:"94da60280947939c61c2249cafe8552f"},{url:"eslint.config.js",revision:"6c1343cfccc567444fdc1a9ad7dc8d14"},{url:"ime/index.html",revision:"4847eec1c969ff0238a0c3f829be9f7c"},{url:"ime/index.min.js",revision:"f078b4cc04460a778729884d45b29b10"},{url:"ime/registerSW.js",revision:"014e730f93650d140e7c8b0d568d6a87"},{url:"img/apple-touch-icon.png",revision:"bd041186b20fe2f084dc15b255097dda"},{url:"img/icon-192.png",revision:"e395941e4114071adaa6b1a5ad1a2a08"},{url:"img/icon-512.png",revision:"13150e41d1f52f224a046f1d4b444099"},{url:"img/icon.svg",revision:"2f2e3f12531bf600c7b1a8a507dbcef1"},{url:"index.html",revision:"f9fa3c45da58a235628fd29703b570a1"},{url:"js/bootstrap.bundle.min.js",revision:"715756e65b9ff107f4cf927e3e8bbf76"},{url:"js/index.min.js",revision:"e4397fcda049c5901ec4383599496d87"},{url:"js/registerSW.js",revision:"403035ad56ee65583062726f12f55a08"},{url:"table/index.html",revision:"7e3809554c6faa52fe5d9a7bd612f61e"},{url:"table/registerSW.js",revision:"014e730f93650d140e7c8b0d568d6a87"}],{ignoreURLParametersMatching:[/^utm_/,/^fbclid$/]})})); //# sourceMappingURL=sw.js.map diff --git a/sw.js.map b/sw.js.map index 5032998..41a124d 100644 --- a/sw.js.map +++ b/sw.js.map @@ -1 +1 @@ -{"version":3,"file":"sw.js","sources":["../../../../private/var/folders/5m/fn2nrr3n1k94l5hqxk4rj5d40000gn/T/b7226b1d58d563d251dcc1f62d79a863/sw.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/Users/theo/.volta/tools/image/packages/workbox-cli/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"404.html\",\n \"revision\": \"8d70c898a27e22811e126259085e0115\"\n },\n {\n \"url\": \"css/bootstrap.min.css\",\n \"revision\": \"e451b87914db6243b6afa3c5e484ec16\"\n },\n {\n \"url\": \"css/styles-ime.css\",\n \"revision\": \"3a729975204293c9f2ea39593a9a12cc\"\n },\n {\n \"url\": \"css/styles-main.css\",\n \"revision\": \"2da08eab60a20f3c591cccf0638205a6\"\n },\n {\n \"url\": \"css/styles-shared.css\",\n \"revision\": \"943aae4a88c5dabc8f00e7ec840bdacf\"\n },\n {\n \"url\": \"css/styles-table.css\",\n \"revision\": \"94da60280947939c61c2249cafe8552f\"\n },\n {\n \"url\": \"ime/index.html\",\n \"revision\": \"4847eec1c969ff0238a0c3f829be9f7c\"\n },\n {\n \"url\": \"ime/index.min.js\",\n \"revision\": \"f078b4cc04460a778729884d45b29b10\"\n },\n {\n \"url\": \"ime/registerSW.js\",\n \"revision\": \"014e730f93650d140e7c8b0d568d6a87\"\n },\n {\n \"url\": \"img/apple-touch-icon.png\",\n \"revision\": \"bd041186b20fe2f084dc15b255097dda\"\n },\n {\n \"url\": \"img/icon-192.png\",\n \"revision\": \"e395941e4114071adaa6b1a5ad1a2a08\"\n },\n {\n \"url\": \"img/icon-512.png\",\n \"revision\": \"13150e41d1f52f224a046f1d4b444099\"\n },\n {\n \"url\": \"img/icon.svg\",\n \"revision\": \"2f2e3f12531bf600c7b1a8a507dbcef1\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"f9fa3c45da58a235628fd29703b570a1\"\n },\n {\n \"url\": \"js/bootstrap.bundle.min.js\",\n \"revision\": \"715756e65b9ff107f4cf927e3e8bbf76\"\n },\n {\n \"url\": \"js/index.min.js\",\n \"revision\": \"e4397fcda049c5901ec4383599496d87\"\n },\n {\n \"url\": \"js/registerSW.js\",\n \"revision\": \"403035ad56ee65583062726f12f55a08\"\n },\n {\n \"url\": \"table/index.html\",\n \"revision\": \"7e3809554c6faa52fe5d9a7bd612f61e\"\n },\n {\n \"url\": \"table/registerSW.js\",\n \"revision\": \"014e730f93650d140e7c8b0d568d6a87\"\n }\n], {\n \"ignoreURLParametersMatching\": [/^utm_/, /^fbclid$/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching"],"mappings":"0nBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,WACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,eACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,qCAEb,CACDC,4BAA+B,CAAC,QAAS"} \ No newline at end of file +{"version":3,"file":"sw.js","sources":["../../../../private/var/folders/5m/fn2nrr3n1k94l5hqxk4rj5d40000gn/T/341058c01b1dcb654df56dc3e59b85d1/sw.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/Users/theo/.volta/tools/image/packages/workbox-cli/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"404.html\",\n \"revision\": \"8d70c898a27e22811e126259085e0115\"\n },\n {\n \"url\": \"css/bootstrap.min.css\",\n \"revision\": \"e451b87914db6243b6afa3c5e484ec16\"\n },\n {\n \"url\": \"css/styles-ime.css\",\n \"revision\": \"3a729975204293c9f2ea39593a9a12cc\"\n },\n {\n \"url\": \"css/styles-main.css\",\n \"revision\": \"2da08eab60a20f3c591cccf0638205a6\"\n },\n {\n \"url\": \"css/styles-shared.css\",\n \"revision\": \"943aae4a88c5dabc8f00e7ec840bdacf\"\n },\n {\n \"url\": \"css/styles-table.css\",\n \"revision\": \"94da60280947939c61c2249cafe8552f\"\n },\n {\n \"url\": \"eslint.config.js\",\n \"revision\": \"6c1343cfccc567444fdc1a9ad7dc8d14\"\n },\n {\n \"url\": \"ime/index.html\",\n \"revision\": \"4847eec1c969ff0238a0c3f829be9f7c\"\n },\n {\n \"url\": \"ime/index.min.js\",\n \"revision\": \"f078b4cc04460a778729884d45b29b10\"\n },\n {\n \"url\": \"ime/registerSW.js\",\n \"revision\": \"014e730f93650d140e7c8b0d568d6a87\"\n },\n {\n \"url\": \"img/apple-touch-icon.png\",\n \"revision\": \"bd041186b20fe2f084dc15b255097dda\"\n },\n {\n \"url\": \"img/icon-192.png\",\n \"revision\": \"e395941e4114071adaa6b1a5ad1a2a08\"\n },\n {\n \"url\": \"img/icon-512.png\",\n \"revision\": \"13150e41d1f52f224a046f1d4b444099\"\n },\n {\n \"url\": \"img/icon.svg\",\n \"revision\": \"2f2e3f12531bf600c7b1a8a507dbcef1\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"f9fa3c45da58a235628fd29703b570a1\"\n },\n {\n \"url\": \"js/bootstrap.bundle.min.js\",\n \"revision\": \"715756e65b9ff107f4cf927e3e8bbf76\"\n },\n {\n \"url\": \"js/index.min.js\",\n \"revision\": \"e4397fcda049c5901ec4383599496d87\"\n },\n {\n \"url\": \"js/registerSW.js\",\n \"revision\": \"403035ad56ee65583062726f12f55a08\"\n },\n {\n \"url\": \"table/index.html\",\n \"revision\": \"7e3809554c6faa52fe5d9a7bd612f61e\"\n },\n {\n \"url\": \"table/registerSW.js\",\n \"revision\": \"014e730f93650d140e7c8b0d568d6a87\"\n }\n], {\n \"ignoreURLParametersMatching\": [/^utm_/, /^fbclid$/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching"],"mappings":"0nBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,WACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,eACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,qCAEb,CACDC,4BAA+B,CAAC,QAAS"} \ No newline at end of file diff --git a/ts/index-ime.ts b/ts/index-ime.ts index 842fa79..28657e1 100644 --- a/ts/index-ime.ts +++ b/ts/index-ime.ts @@ -179,7 +179,7 @@ document.getElementById('back-btn')?.addEventListener('click', () => { // SUBMISSION HANDLING // -function submitOnEnter (e: KeyboardEvent) { +function submitOnEnter(e: KeyboardEvent) { if (e.key === 'Enter' && !e.shiftKey) { getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox) e.preventDefault() diff --git a/ts/index-main.ts b/ts/index-main.ts index 3cccc3a..feeeb6f 100644 --- a/ts/index-main.ts +++ b/ts/index-main.ts @@ -28,7 +28,7 @@ const resetButton = document.getElementById('reset-button') as HTMLButtonElement // Submit -function submitOnEnter (e: KeyboardEvent) { +function submitOnEnter(e: KeyboardEvent) { if (e.key === 'Enter' && !e.shiftKey) { getResult(inputField, resultField, maghribiCheckbox, hamzahCheckbox) e.preventDefault() diff --git a/ts/lib.ts b/ts/lib.ts index a762a5a..f361cf8 100644 --- a/ts/lib.ts +++ b/ts/lib.ts @@ -1,4 +1,4 @@ -function getAbjad ( +function getAbjad( input: string, maghribiOrder: boolean, ignoreHamzah: boolean, @@ -146,7 +146,7 @@ function getAbjad ( return [total, unrecognizedChars] } -export function getResult ( +export function getResult( inputField: HTMLInputElement, resultField: HTMLElement, maghribiCheckbox: HTMLInputElement,