diff --git a/js/.eslintrc.cjs b/js/.eslintrc.cjs deleted file mode 100644 index ba5fd4d..0000000 --- a/js/.eslintrc.cjs +++ /dev/null @@ -1,40 +0,0 @@ -module.exports = { - "env": { - "es2021": true - }, - "extends": [ - "eslint:recommended" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 13, - "sourceType": "module" - }, - "plugins": [ - "@typescript-eslint", - "prettier" - ], - "ignorePatterns": [ - "*.d.ts" - ], - "rules": { - "no-empty-pattern": "off", - "no-undef": "off", - "no-unused-vars": "off", - "no-cond-assign": "off", - "@typescript-eslint/no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_" - } - ], - "no-constant-condition": [ - "error", - { - "checkLoops": false - } - ], - "prettier/prettier": "error" - } -} \ No newline at end of file diff --git a/js/.prettierrc.cjs b/js/.prettierrc.cjs deleted file mode 100644 index 0bdcbb9..0000000 --- a/js/.prettierrc.cjs +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - tabWidth: 2, - arrowParens: "avoid", - importOrder: ["", "^[./]"], - importOrderSeparation: true, - importOrderSortSpecifiers: true, - parser: "typescript", - plugins: [require("@trivago/prettier-plugin-sort-imports")], -}; diff --git a/js/biome.json b/js/biome.json new file mode 100644 index 0000000..5b07106 --- /dev/null +++ b/js/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.8.2/schema.json", + "javascript": { + "formatter": { + "arrowParentheses": "asNeeded", + "trailingCommas": "none" + }, + "jsxRuntime": "reactClassic" + }, + "formatter": { + "indentStyle": "space" + }, + "linter": { + "rules": { + "recommended": true, + "a11y": { + "useKeyWithClickEvents": "off", + "useValidAnchor": "off" + }, + "correctness": { + "noUnusedImports": "warn", + "useExhaustiveDependencies": "off", + "useJsxKeyInIterable": "off" + }, + "style": { + "noNonNullAssertion": "off", + "useConst": "off", + "noUselessElse": "off", + "noParameterAssign": "off" + }, + "complexity": { + "noBannedTypes": "off", + "noForEach": "off" + }, + "suspicious": { + "noArrayIndexKey": "off", + "noExplicitAny": "off" + } + } + } +} \ No newline at end of file diff --git a/js/package.json b/js/package.json index 4c39ccb..3417ccd 100644 --- a/js/package.json +++ b/js/package.json @@ -1,16 +1,13 @@ { "private": true, + "depot": { + "depot-version": "0.2.17" + }, "devDependencies": { - "@trivago/prettier-plugin-sort-imports": "^4.1.1", + "@biomejs/biome": "^1.8.3", "@types/node": "^20.3.0", - "@typescript-eslint/eslint-plugin": "^5.59.9", - "@typescript-eslint/parser": "^5.59.9", "@vitejs/plugin-react": "^4.0.0", "eslint": "^8.42.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "prettier": "^2.8.8", "stylelint": "^16.5.0", "stylelint-config-standard-scss": "^13.1.0", "typedoc": "^0.24.8", diff --git a/js/packages/quiz-embed/.eslintrc.cjs b/js/packages/quiz-embed/.eslintrc.cjs deleted file mode 100644 index 230da0d..0000000 --- a/js/packages/quiz-embed/.eslintrc.cjs +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - "extends": "../../.eslintrc.cjs", - "env": { - "browser": true - }, - "plugins": [ - "react" - ], - "rules": { - "react/prop-types": "off", - "react/no-unescaped-entities": "off" - }, - "settings": { - "react": { - "version": "detect" - } - } -} \ No newline at end of file diff --git a/js/packages/quiz-embed/src/main.tsx b/js/packages/quiz-embed/src/main.tsx index 3905c2e..52237ab 100644 --- a/js/packages/quiz-embed/src/main.tsx +++ b/js/packages/quiz-embed/src/main.tsx @@ -1,4 +1,4 @@ -import { Quiz, QuizView, renderIde } from "@wcrichto/quiz"; +import { type Quiz, QuizView, renderIde } from "@wcrichto/quiz"; import * as rustEditor from "@wcrichto/rust-editor"; import React from "react"; import * as ReactDOM from "react-dom/client"; @@ -10,7 +10,7 @@ let onError = ({ error }: { error: Error }) => { document.body.style.overflowY = "auto"; window.telemetry?.log("runtime_error", { - error: error.stack || error.message, + error: error.stack || error.message }); return ( diff --git a/js/packages/quiz/.eslintrc.cjs b/js/packages/quiz/.eslintrc.cjs deleted file mode 100644 index 230da0d..0000000 --- a/js/packages/quiz/.eslintrc.cjs +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - "extends": "../../.eslintrc.cjs", - "env": { - "browser": true - }, - "plugins": [ - "react" - ], - "rules": { - "react/prop-types": "off", - "react/no-unescaped-entities": "off" - }, - "settings": { - "react": { - "version": "detect" - } - } -} \ No newline at end of file diff --git a/js/packages/quiz/src/components/markdown.tsx b/js/packages/quiz/src/components/markdown.tsx index 2e294b9..e8e0e63 100644 --- a/js/packages/quiz/src/components/markdown.tsx +++ b/js/packages/quiz/src/components/markdown.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useRef } from "react"; -import { Markdown as Showdown, ShowdownExtension } from "react-showdown"; +import { Markdown as Showdown, type ShowdownExtension } from "react-showdown"; -import { SnippetOptions, renderIde, snippetToNode } from "./snippet"; +import { type SnippetOptions, renderIde, snippetToNode } from "./snippet"; let highlightExtension = ( options?: Partial @@ -25,13 +25,13 @@ let highlightExtension = ( let newNode = snippetToNode({ ...(options || {}), snippet: node.textContent!, - language, + language }); let pre = node.parentNode as HTMLPreElement; pre.replaceWith(newNode); }); return document.body.innerHTML; - }, + } }); declare global { @@ -45,7 +45,7 @@ export let MarkdownView: React.FC<{ let ref = useRef(null); useEffect(() => { renderIde(ref.current!, snippetOptions); - window.initAquascopeBlocks && window.initAquascopeBlocks(ref.current!); + window.initAquascopeBlocks?.(ref.current!); }, [markdown]); return ( diff --git a/js/packages/quiz/src/components/quiz.tsx b/js/packages/quiz/src/components/quiz.tsx index 74c3059..514fede 100644 --- a/js/packages/quiz/src/components/quiz.tsx +++ b/js/packages/quiz/src/components/quiz.tsx @@ -8,7 +8,7 @@ import React, { useLayoutEffect, useMemo, useRef, - useState, + useState } from "react"; import type { Question } from "../bindings/Question"; @@ -16,8 +16,8 @@ import type { Quiz } from "../bindings/Quiz"; import { AnswerView, QuestionView, - TaggedAnswer, - getQuestionMethods, + type TaggedAnswer, + getQuestionMethods } from "../questions/mod"; interface StoredAnswers { @@ -37,7 +37,10 @@ declare global { } class AnswerStorage { - constructor(readonly quizName: string, readonly quizHash: string) {} + constructor( + readonly quizName: string, + readonly quizHash: string + ) {} storageKey = () => `mdbook-quiz:${this.quizName}`; @@ -52,7 +55,7 @@ class AnswerStorage { confirmedDone, attempt, quizHash: this.quizHash, - wrongAnswers, + wrongAnswers }; localStorage.setItem(this.storageKey(), JSON.stringify(storedAnswers)); } @@ -61,7 +64,7 @@ class AnswerStorage { let storedAnswersJson = localStorage.getItem(this.storageKey()); if (storedAnswersJson) { let storedAnswers: StoredAnswers = JSON.parse(storedAnswersJson); - if (storedAnswers.quizHash == this.quizHash) { + if (storedAnswers.quizHash === this.quizHash) { return storedAnswers; } } @@ -69,7 +72,7 @@ class AnswerStorage { } let ExitExplanation = ({ - wrapperRef, + wrapperRef }: { wrapperRef: React.RefObject; }) => { @@ -78,7 +81,7 @@ let ExitExplanation = ({ if (expanded) { wrapperRef.current!.scrollTo({ top: wrapperRef.current!.offsetHeight, - behavior: "smooth", + behavior: "smooth" }); } }, [expanded]); @@ -108,7 +111,7 @@ interface QuizState { let loadState = ({ quiz, answerStorage, - cacheAnswers, + cacheAnswers }: { quiz: Quiz; answerStorage: AnswerStorage; @@ -135,7 +138,7 @@ let loadState = ({ attempt: stored.attempt || 0, wrongAnswers: stored.wrongAnswers || - (stored.attempt > 0 ? _.range(quiz.questions.length) : undefined), + (stored.attempt > 0 ? _.range(quiz.questions.length) : undefined) }; } else { return { @@ -143,7 +146,7 @@ let loadState = ({ index: 0, attempt: 0, confirmedDone: false, - answers: [], + answers: [] }; } }; @@ -162,11 +165,11 @@ let Header = observer(({ quiz, state, ended }: HeaderProps) => ( !ended && ( <> Question{" "} - {(state.attempt == 0 + {(state.attempt === 0 ? state.index : state.wrongAnswers!.indexOf(state.index)) + 1}{" "} /{" "} - {state.attempt == 0 + {state.attempt === 0 ? quiz.questions.length : state.wrongAnswers!.length} @@ -196,12 +199,19 @@ let AnswerReview = ({ name, nCorrect, onRetry, - onGiveUp, + onGiveUp }: AnswerReviewProps) => { let confirm = !state.confirmedDone && (

- You can either or{" "} - . + You can either{" "} + {" "} + or{" "} + + .

); let questionTitles = generateQuestionTitles(quiz); @@ -330,9 +340,7 @@ export let QuizView: React.FC = observer( () => quiz.questions.map(q => { let methods = getQuestionMethods(q.type); - return ( - methods.questionState && methods.questionState(q.prompt, q.answer) - ); + return methods.questionState?.(q.prompt, q.answer); }), [quiz] ); @@ -352,7 +360,7 @@ export let QuizView: React.FC = observer( // Don't allow any keyboard inputs to reach external listeners // while the quiz is active (e.g. to avoid using the search box). - let ended = state.index == quiz.questions.length; + let ended = state.index === quiz.questions.length; let inProgress = state.started && !ended; useCaptureMdbookShortcuts(inProgress); @@ -371,16 +379,16 @@ export let QuizView: React.FC = observer( let onSubmit = action((answer: TaggedAnswer) => { answer = _.cloneDeep(answer); - if (state.attempt == 0) { + if (state.attempt === 0) { state.answers.push(answer); state.index += 1; } else { state.answers[state.index] = answer; let wrongAnswerIdx = state.wrongAnswers!.findIndex( - n => n == state.index + n => n === state.index ); - if (wrongAnswerIdx == state.wrongAnswers!.length - 1) + if (wrongAnswerIdx === state.wrongAnswers!.length - 1) state.index = quiz.questions.length; else state.index = state.wrongAnswers![wrongAnswerIdx + 1]; } @@ -389,21 +397,21 @@ export let QuizView: React.FC = observer( quizName: name, quizHash, answers: state.answers, - attempt: state.attempt, + attempt: state.attempt }); - if (state.index == quiz.questions.length) { + if (state.index === quiz.questions.length) { let wrongAnswers = state.answers .map((a, i) => ({ a, i })) .filter(({ a }) => !a.correct); - if (wrongAnswers.length == 0 || !allowRetry) { + if (wrongAnswers.length === 0 || !allowRetry) { state.confirmedDone = true; } else { state.wrongAnswers = wrongAnswers.map(({ i }) => i); } saveToCache(); - onFinish && onFinish(toJS(state.answers)); + onFinish?.(toJS(state.answers)); } }); @@ -448,6 +456,7 @@ export let QuizView: React.FC = observer( ) ) : ( {show && (
-

Report a bug

@@ -82,7 +87,7 @@ let BugReporter = ({ answer), please describe the issue and report it:

- + + /> )} {shouldPrompt && !showExplanation ? ( - + ) : ( )} @@ -266,7 +273,7 @@ export let AnswerView: React.FC = ({ title, userAnswer, correct, - showCorrect, + showCorrect }) => { let methods = getQuestionMethods(question.type); let questionClass = questionNameToCssClass(question.type); @@ -277,6 +284,7 @@ export let AnswerView: React.FC = ({ if (title.substring(1, 2) === "a") multipartView = (
+ {/* biome-ignore lint/a11y/useAnchorContent: TODO */} = ({ else multipartView = ( @@ -331,7 +339,7 @@ export let AnswerView: React.FC = ({
{showCorrect && question.context && (
- +
)}
diff --git a/js/packages/quiz/src/questions/multiple-choice.tsx b/js/packages/quiz/src/questions/multiple-choice.tsx index 5bc6185..5d3d775 100644 --- a/js/packages/quiz/src/questions/multiple-choice.tsx +++ b/js/packages/quiz/src/questions/multiple-choice.tsx @@ -6,7 +6,7 @@ import type { Markdown } from "../bindings/Markdown"; import type { MultipleChoiceAnswer } from "../bindings/MultipleChoiceAnswer"; import type { MultipleChoicePrompt } from "../bindings/MultipleChoicePrompt"; import { MarkdownView } from "../components/markdown"; -import { QuestionMethods } from "./types"; +import type { QuestionMethods } from "./types"; interface MultipleChoiceState { choices: string[]; @@ -26,8 +26,9 @@ export let MultipleChoiceMethods: QuestionMethods< questionState(prompt, answer) { let choices: string[]; - let answers = - answer.answer instanceof Array ? answer.answer : [answer.answer]; + let answers = Array.isArray(answer.answer) + ? answer.answer + : [answer.answer]; if (prompt.answerIndex !== undefined) { choices = [...prompt.distractors]; choices.splice(prompt.answerIndex, 0, ...answers); @@ -46,14 +47,14 @@ export let MultipleChoiceMethods: QuestionMethods< <> {state!.choices.map((choice, i) => { let id = useId(); - let multiAnswer = answer.answer instanceof Array; + let multiAnswer = Array.isArray(answer.answer); return (
args.length > 0, + validate: args => args.length > 0 }) : required("answer"))} value={choice} @@ -69,13 +70,13 @@ export let MultipleChoiceMethods: QuestionMethods< ), getAnswerFromDOM(data) { - if (data.answer instanceof Array) data.answer.sort(); + if (Array.isArray(data.answer)) data.answer.sort(); return { answer: data.answer }; }, compareAnswers(provided, user) { let toList = (s: Markdown | Markdown[]) => - _.sortBy(s instanceof Array ? s : [s]); + _.sortBy(Array.isArray(s) ? s : [s]); return _.isEqual(toList(provided.answer), toList(user.answer)); }, @@ -88,7 +89,7 @@ export let MultipleChoiceMethods: QuestionMethods< : "incorrect" )} > - {answer.answer instanceof Array ? ( + {Array.isArray(answer.answer) ? (
    {answer.answer.map((a, i) => (
  • @@ -100,5 +101,5 @@ export let MultipleChoiceMethods: QuestionMethods< )}
- ), + ) }; diff --git a/js/packages/quiz/src/questions/short-answer.tsx b/js/packages/quiz/src/questions/short-answer.tsx index d652c34..b90066b 100644 --- a/js/packages/quiz/src/questions/short-answer.tsx +++ b/js/packages/quiz/src/questions/short-answer.tsx @@ -3,7 +3,7 @@ import React from "react"; import type { ShortAnswerAnswer } from "../bindings/ShortAnswerAnswer"; import type { ShortAnswerPrompt } from "../bindings/ShortAnswerPrompt"; import { MarkdownView } from "../components/markdown"; -import { QuestionMethods } from "./types"; +import type { QuestionMethods } from "./types"; export let ShortAnswerMethods: QuestionMethods< ShortAnswerPrompt, @@ -20,13 +20,13 @@ export let ShortAnswerMethods: QuestionMethods< let formFields = required("answer"); return ( <> - {!prompt.response || prompt.response == "short" ? ( + {!prompt.response || prompt.response === "short" ? ( { - if (e.key == "Enter") submit(); + if (e.key === "Enter") submit(); }} /> ) : ( @@ -58,5 +58,5 @@ export let ShortAnswerMethods: QuestionMethods< .concat(providedAnswer.alternatives || []) .map(clean); return possibleAnswers.includes(clean(userAnswer.answer)); - }, + } }; diff --git a/js/packages/quiz/src/questions/tracing.tsx b/js/packages/quiz/src/questions/tracing.tsx index 5a771d8..817ea89 100644 --- a/js/packages/quiz/src/questions/tracing.tsx +++ b/js/packages/quiz/src/questions/tracing.tsx @@ -1,12 +1,11 @@ import classNames from "classnames"; -import _ from "lodash"; import React, { useId, useState } from "react"; import type { TracingAnswer } from "../bindings/TracingAnswer"; import type { TracingPrompt } from "../bindings/TracingPrompt"; // import { MoreInfo } from "../components/more-info"; import { Snippet } from "../components/snippet"; -import { QuestionMethods } from "./types"; +import type { QuestionMethods } from "./types"; // let HELP_TEXT = `Errors may involve multiple line numbers. For example: @@ -39,8 +38,8 @@ export let TracingMethods: QuestionMethods = { // prompt, formValidators: { required, - formState: { errors }, - }, + formState: { errors } + } }) => { let [doesCompile, setDoesCompile] = useState( undefined @@ -82,7 +81,7 @@ export let TracingMethods: QuestionMethods = { + /> /*

The error occurs on the line number:{" "} @@ -115,7 +114,7 @@ export let TracingMethods: QuestionMethods = { AnswerView: ({ answer, baseline }) => { let correctnessClass = (key: keyof TracingAnswer) => - answer[key] == baseline[key] ? "correct" : "incorrect"; + answer[key] === baseline[key] ? "correct" : "incorrect"; return (

@@ -127,7 +126,7 @@ export let TracingMethods: QuestionMethods = {

= { ): boolean { let clean = (s: string) => s.trim(); return ( - providedAnswer.doesCompile == userAnswer.doesCompile && + providedAnswer.doesCompile === userAnswer.doesCompile && (providedAnswer.doesCompile - ? clean(userAnswer.stdout!) == clean(providedAnswer.stdout!) + ? clean(userAnswer.stdout!) === clean(providedAnswer.stdout!) : true) // : userAnswer.lineNumber! == providedAnswer.lineNumber!) ); - }, + } }; diff --git a/js/packages/quiz/src/questions/types.tsx b/js/packages/quiz/src/questions/types.tsx index 52044b3..2326562 100644 --- a/js/packages/quiz/src/questions/types.tsx +++ b/js/packages/quiz/src/questions/types.tsx @@ -1,9 +1,8 @@ -import _ from "lodash"; import React from "react"; -import { +import type { RegisterOptions, UseFormRegisterReturn, - UseFormReturn, + UseFormReturn } from "react-hook-form"; export interface QuestionMethods { diff --git a/js/packages/quiz/tests/multiple-choice.test.tsx b/js/packages/quiz/tests/multiple-choice.test.tsx index d87c590..07485e0 100644 --- a/js/packages/quiz/tests/multiple-choice.test.tsx +++ b/js/packages/quiz/tests/multiple-choice.test.tsx @@ -3,7 +3,7 @@ import user from "@testing-library/user-event"; import React from "react"; import { beforeEach, describe, expect, it } from "vitest"; -import { MultipleChoice } from "../src/bindings/MultipleChoice"; +import type { MultipleChoice } from "../src/bindings/MultipleChoice"; import { MultipleChoiceMethods, QuestionView } from "../src/lib"; import { submitButton } from "./utils"; @@ -11,7 +11,7 @@ describe("MultipleChoice", () => { let question: MultipleChoice & { type: "MultipleChoice" } = { type: "MultipleChoice", prompt: { prompt: "Hello world", distractors: ["B", "C"] }, - answer: { answer: "A" }, + answer: { answer: "A" } }; let submitted: any | null = null; @@ -51,7 +51,7 @@ describe("MultipleChoice", () => { await user.click(submitButton()); expect(submitted).toMatchObject({ answer: { answer: "A" }, - correct: true, + correct: true }); }); }); @@ -60,7 +60,7 @@ describe("MultipleChoice multi-answer", () => { let question: MultipleChoice & { type: "MultipleChoice" } = { type: "MultipleChoice", prompt: { prompt: "Hello world", distractors: ["C", "D"] }, - answer: { answer: ["A", "B"] }, + answer: { answer: ["A", "B"] } }; let submitted: any | null = null; @@ -103,7 +103,7 @@ describe("MultipleChoice multi-answer", () => { await user.click(submitButton()); expect(submitted).toMatchObject({ answer: { answer: ["A", "B"] }, - correct: true, + correct: true }); }); }); diff --git a/js/packages/quiz/tests/question.test.tsx b/js/packages/quiz/tests/question.test.tsx index e264e36..380dba6 100644 --- a/js/packages/quiz/tests/question.test.tsx +++ b/js/packages/quiz/tests/question.test.tsx @@ -3,7 +3,7 @@ import user from "@testing-library/user-event"; import React from "react"; import { beforeEach, describe, expect, it } from "vitest"; -import { Question } from "../src/bindings/Question"; +import type { Question } from "../src/bindings/Question"; import { QuestionView } from "../src/lib"; import { submitButton } from "./utils"; @@ -12,7 +12,7 @@ describe("Question prompt for explanation", () => { type: "ShortAnswer", prompt: { prompt: "Hello world" }, answer: { answer: "Yes" }, - promptExplanation: true, + promptExplanation: true }; let submitted: any | null = null; diff --git a/js/packages/quiz/tests/quiz.test.tsx b/js/packages/quiz/tests/quiz.test.tsx index 8517763..3e11b6c 100644 --- a/js/packages/quiz/tests/quiz.test.tsx +++ b/js/packages/quiz/tests/quiz.test.tsx @@ -3,8 +3,8 @@ import user from "@testing-library/user-event"; import React from "react"; import { beforeEach, describe, expect, it } from "vitest"; -import { Question } from "../src/bindings/Question"; -import { Quiz } from "../src/bindings/Quiz"; +import type { Question } from "../src/bindings/Question"; +import type { Quiz } from "../src/bindings/Quiz"; import { QuizView, generateQuestionTitles } from "../src/lib"; import { startButton, submitButton } from "./utils"; @@ -13,9 +13,9 @@ let quiz: Quiz = { { type: "ShortAnswer", prompt: { prompt: "Hey" }, - answer: { answer: "Yes" }, - }, - ], + answer: { answer: "Yes" } + } + ] }; describe("Quiz", () => { @@ -74,14 +74,14 @@ describe("Quiz retry", () => { { type: "ShortAnswer", prompt: { prompt: "Hey" }, - answer: { answer: "Yes" }, + answer: { answer: "Yes" } }, { type: "ShortAnswer", prompt: { prompt: "Hello" }, - answer: { answer: "No" }, - }, - ], + answer: { answer: "No" } + } + ] }; beforeEach(async () => { @@ -123,21 +123,21 @@ describe("generateQuestionTitles", () => { let template: Question = { type: "ShortAnswer", prompt: { prompt: "" }, - answer: { answer: "" }, + answer: { answer: "" } }; let questions: Question[] = [ { ...template, multipart: "a" }, { ...template, multipart: "a" }, { ...template, multipart: "b" }, { ...template }, - { ...template, multipart: "c" }, + { ...template, multipart: "c" } ]; expect(generateQuestionTitles({ questions })).toStrictEqual([ "1a", "1b", "2a", "3", - "4a", + "4a" ]); }); }); diff --git a/js/packages/quiz/tests/short-answer.test.tsx b/js/packages/quiz/tests/short-answer.test.tsx index ed0ffe3..1c2bc96 100644 --- a/js/packages/quiz/tests/short-answer.test.tsx +++ b/js/packages/quiz/tests/short-answer.test.tsx @@ -3,7 +3,7 @@ import user from "@testing-library/user-event"; import React from "react"; import { beforeEach, describe, expect, it } from "vitest"; -import { ShortAnswer } from "../src/bindings/ShortAnswer"; +import type { ShortAnswer } from "../src/bindings/ShortAnswer"; import { QuestionView } from "../src/lib"; import { submitButton } from "./utils"; @@ -11,7 +11,7 @@ describe("ShortAnswer", () => { let question: ShortAnswer & { type: "ShortAnswer" } = { type: "ShortAnswer", prompt: { prompt: "Hello world" }, - answer: { answer: "Yes", alternatives: ["Ok"] }, + answer: { answer: "Yes", alternatives: ["Ok"] } }; let submitted: any | null = null; @@ -47,7 +47,7 @@ describe("ShortAnswer", () => { // answers should be case-insensitive and trim whitespace expect(submitted).toMatchObject({ answer: { answer: "yEs " }, - correct: true, + correct: true }); }); @@ -57,7 +57,7 @@ describe("ShortAnswer", () => { await user.click(submitButton()); expect(submitted).toMatchObject({ answer: { answer: "Ok" }, - correct: true, + correct: true }); }); }); diff --git a/js/packages/quiz/tests/tracing.test.tsx b/js/packages/quiz/tests/tracing.test.tsx index c4e681a..1b75760 100644 --- a/js/packages/quiz/tests/tracing.test.tsx +++ b/js/packages/quiz/tests/tracing.test.tsx @@ -3,7 +3,7 @@ import user from "@testing-library/user-event"; import React from "react"; import { beforeEach, describe, expect, it } from "vitest"; -import { Tracing } from "../src/bindings/Tracing"; +import type { Tracing } from "../src/bindings/Tracing"; import { QuestionView } from "../src/lib"; import { submitButton } from "./utils"; @@ -11,7 +11,7 @@ describe("Tracing", () => { let question: Tracing & { type: "Tracing" } = { type: "Tracing", prompt: { program: "fn main(){}" }, - answer: { doesCompile: true, stdout: "Yes" }, + answer: { doesCompile: true, stdout: "Yes" } }; let submitted: any | null = null; @@ -37,7 +37,7 @@ describe("Tracing", () => { let getCheckbox = () => screen.getByRole("radio", { - name: "DOES compile", + name: "DOES compile" }); it("validates input", async () => { @@ -60,13 +60,13 @@ describe("Tracing", () => { expect(submitted).toMatchObject({ answer: { doesCompile: true, stdout: "Yes " }, - correct: true, + correct: true }); }); it("rejects fully invalid input", async () => { let checkbox = screen.getByRole("radio", { - name: "does NOT compile", + name: "does NOT compile" }); await user.click(checkbox); @@ -77,7 +77,7 @@ describe("Tracing", () => { expect(submitted).toMatchObject({ answer: { doesCompile: false /* lineNumber: 1 */ }, - correct: false, + correct: false }); }); @@ -91,7 +91,7 @@ describe("Tracing", () => { expect(submitted).toMatchObject({ answer: { doesCompile: true, stdout: "No" }, - correct: false, + correct: false }); }); }); diff --git a/js/pnpm-lock.yaml b/js/pnpm-lock.yaml index 509ffef..4cad0d8 100644 --- a/js/pnpm-lock.yaml +++ b/js/pnpm-lock.yaml @@ -8,42 +8,24 @@ importers: .: devDependencies: - '@trivago/prettier-plugin-sort-imports': - specifier: ^4.1.1 - version: 4.1.1(prettier@2.8.8) + '@biomejs/biome': + specifier: ^1.8.3 + version: 1.8.3 '@types/node': specifier: ^20.3.0 version: 20.3.0 - '@typescript-eslint/eslint-plugin': - specifier: ^5.59.9 - version: 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@5.1.3) - '@typescript-eslint/parser': - specifier: ^5.59.9 - version: 5.59.9(eslint@8.42.0)(typescript@5.1.3) '@vitejs/plugin-react': specifier: ^4.0.0 - version: 4.0.0(vite@4.3.9) + version: 4.0.0(vite@4.3.9(@types/node@20.3.0)(sass@1.62.1)) eslint: specifier: ^8.42.0 version: 8.42.0 - eslint-plugin-prettier: - specifier: ^4.2.1 - version: 4.2.1(eslint@8.42.0)(prettier@2.8.8) - eslint-plugin-react: - specifier: ^7.32.2 - version: 7.32.2(eslint@8.42.0) - eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.42.0) - prettier: - specifier: ^2.8.8 - version: 2.8.8 stylelint: specifier: ^16.5.0 version: 16.5.0(typescript@5.1.3) stylelint-config-standard-scss: specifier: ^13.1.0 - version: 13.1.0(postcss@8.4.38)(stylelint@16.5.0) + version: 13.1.0(postcss@8.4.38)(stylelint@16.5.0(typescript@5.1.3)) typedoc: specifier: ^0.24.8 version: 0.24.8(typescript@5.1.3) @@ -52,10 +34,10 @@ importers: version: 5.1.3 vite: specifier: ^4.3.9 - version: 4.3.9(@types/node@20.3.0) + version: 4.3.9(@types/node@20.3.0)(sass@1.62.1) vitest: specifier: ^0.32.0 - version: 0.32.0 + version: 0.32.0(jsdom@22.1.0)(sass@1.62.1) packages/quiz: dependencies: @@ -89,7 +71,7 @@ importers: version: 9.3.1 '@testing-library/react': specifier: ^14.0.0 - version: 14.0.0(react-dom@18.2.0)(react@18.2.0) + version: 14.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@testing-library/user-event': specifier: ^14.4.3 version: 14.4.3(@testing-library/dom@9.3.1) @@ -116,7 +98,7 @@ importers: version: 6.9.0 mobx-react: specifier: ^8.0.0 - version: 8.0.0(mobx@6.9.0)(react-dom@18.2.0)(react@18.2.0) + version: 8.0.0(mobx@6.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -140,7 +122,7 @@ importers: version: 6.9.0 mobx-react: specifier: ^8.0.0 - version: 8.0.0(mobx@6.9.0)(react-dom@18.2.0)(react@18.2.0) + version: 8.0.0(mobx@6.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -160,10 +142,6 @@ packages: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.18.6': - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.22.5': resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} @@ -176,10 +154,6 @@ packages: resolution: {integrity: sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.17.7': - resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.22.5': resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} engines: {node: '>=6.9.0'} @@ -271,10 +245,6 @@ packages: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.17.3': - resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.22.5': resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} engines: {node: '>=6.9.0'} @@ -287,6 +257,59 @@ packages: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} + '@biomejs/biome@1.8.3': + resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@1.8.3': + resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@1.8.3': + resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@1.8.3': + resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@1.8.3': + resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@1.8.3': + resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@1.8.3': + resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@1.8.3': + resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@1.8.3': + resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + '@csstools/css-parser-algorithms@2.6.3': resolution: {integrity: sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==} engines: {node: ^14 || ^16 || >=18} @@ -528,15 +551,6 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - '@trivago/prettier-plugin-sort-imports@4.1.1': - resolution: {integrity: sha512-dQ2r2uzNr1x6pJsuh/8x0IRA3CBUB+pWEW3J/7N98axqt7SQSm+2fy0FLNXvXGg77xEDC7KHxJlHfLYyi7PDcw==} - peerDependencies: - '@vue/compiler-sfc': 3.x - prettier: 2.x - peerDependenciesMeta: - '@vue/compiler-sfc': - optional: true - '@types/aria-query@5.0.1': resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} @@ -546,9 +560,6 @@ packages: '@types/chai@4.3.5': resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} - '@types/json-schema@7.0.11': - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - '@types/lodash@4.14.191': resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} @@ -570,70 +581,9 @@ packages: '@types/scheduler@0.16.3': resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - '@types/semver@7.5.0': - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} - '@types/showdown@2.0.0': resolution: {integrity: sha512-70xBJoLv+oXjB5PhtA8vo7erjLDp9/qqI63SRHm4REKrwuPOLs8HhXwlZJBJaB4kC18cCZ1UUZ6Fb/PLFW4TCA==} - '@typescript-eslint/eslint-plugin@5.59.9': - resolution: {integrity: sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@5.59.9': - resolution: {integrity: sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@5.59.9': - resolution: {integrity: sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/type-utils@5.59.9': - resolution: {integrity: sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@5.59.9': - resolution: {integrity: sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/typescript-estree@5.59.9': - resolution: {integrity: sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@5.59.9': - resolution: {integrity: sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@5.59.9': - resolution: {integrity: sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@vitejs/plugin-react@4.0.0': resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -727,21 +677,10 @@ packages: array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} - engines: {node: '>= 0.4'} - array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.1: - resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} - assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -939,10 +878,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -990,24 +925,9 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} - engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} @@ -1025,33 +945,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-plugin-prettier@4.2.1: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react@7.32.2: - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - eslint-scope@7.2.0: resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1077,10 +970,6 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -1173,10 +1062,6 @@ packages: function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} - functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -1191,16 +1076,9 @@ packages: get-func-name@2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} - get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} - get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1228,10 +1106,6 @@ packages: resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -1242,9 +1116,6 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -1362,9 +1233,6 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} - is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -1388,10 +1256,6 @@ packages: is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -1436,9 +1300,6 @@ packages: is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} @@ -1448,9 +1309,6 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - javascript-natural-sort@0.7.1: - resolution: {integrity: sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k=} - js-string-escape@1.0.1: resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} engines: {node: '>= 0.8'} @@ -1499,10 +1357,6 @@ packages: jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jsx-ast-utils@3.3.3: - resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} - engines: {node: '>=4.0'} - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -1658,9 +1512,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -1674,10 +1525,6 @@ packages: nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} @@ -1697,21 +1544,6 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} - object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} - engines: {node: '>= 0.4'} - - object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} - - object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} - engines: {node: '>= 0.4'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -1770,9 +1602,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -1830,22 +1659,10 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} @@ -1876,9 +1693,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17 || ^18 - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} @@ -1903,10 +1717,6 @@ packages: regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regexp.prototype.flags@1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} - engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.0: resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} engines: {node: '>= 0.4'} @@ -1933,10 +1743,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} - hasBin: true - reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -1956,9 +1762,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -2027,10 +1830,6 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -2049,19 +1848,6 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} - - string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} - - string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} - strip-ansi@5.2.0: resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} engines: {node: '>=6'} @@ -2136,10 +1922,6 @@ packages: resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} engines: {node: '>=14.18'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} @@ -2184,15 +1966,6 @@ packages: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -2205,9 +1978,6 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - typedoc@0.24.8: resolution: {integrity: sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==} engines: {node: '>= 14.14'} @@ -2223,9 +1993,6 @@ packages: ufo@1.1.2: resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -2432,10 +2199,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 - '@babel/code-frame@7.18.6': - dependencies: - '@babel/highlight': 7.22.5 - '@babel/code-frame@7.22.5': dependencies: '@babel/highlight': 7.22.5 @@ -2462,12 +2225,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.17.7': - dependencies: - '@babel/types': 7.17.0 - jsesc: 2.5.2 - source-map: 0.5.7 - '@babel/generator@7.22.5': dependencies: '@babel/types': 7.22.5 @@ -2568,21 +2325,6 @@ snapshots: '@babel/parser': 7.22.5 '@babel/types': 7.22.5 - '@babel/traverse@7.17.3': - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.17.7 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.5 - '@babel/parser': 7.22.5 - '@babel/types': 7.17.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.22.5': dependencies: '@babel/code-frame': 7.22.5 @@ -2609,13 +2351,48 @@ snapshots: '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 + '@biomejs/biome@1.8.3': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.8.3 + '@biomejs/cli-darwin-x64': 1.8.3 + '@biomejs/cli-linux-arm64': 1.8.3 + '@biomejs/cli-linux-arm64-musl': 1.8.3 + '@biomejs/cli-linux-x64': 1.8.3 + '@biomejs/cli-linux-x64-musl': 1.8.3 + '@biomejs/cli-win32-arm64': 1.8.3 + '@biomejs/cli-win32-x64': 1.8.3 + + '@biomejs/cli-darwin-arm64@1.8.3': + optional: true + + '@biomejs/cli-darwin-x64@1.8.3': + optional: true + + '@biomejs/cli-linux-arm64-musl@1.8.3': + optional: true + + '@biomejs/cli-linux-arm64@1.8.3': + optional: true + + '@biomejs/cli-linux-x64-musl@1.8.3': + optional: true + + '@biomejs/cli-linux-x64@1.8.3': + optional: true + + '@biomejs/cli-win32-arm64@1.8.3': + optional: true + + '@biomejs/cli-win32-x64@1.8.3': + optional: true + '@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1)': dependencies: '@csstools/css-tokenizer': 2.3.1 '@csstools/css-tokenizer@2.3.1': {} - '@csstools/media-query-list-parser@2.1.11(@csstools/css-parser-algorithms@2.6.3)(@csstools/css-tokenizer@2.3.1)': + '@csstools/media-query-list-parser@2.1.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.1)': dependencies: '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) '@csstools/css-tokenizer': 2.3.1 @@ -2769,7 +2546,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@14.0.0(react-dom@18.2.0)(react@18.2.0)': + '@testing-library/react@14.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.21.0 '@testing-library/dom': 9.3.1 @@ -2783,18 +2560,6 @@ snapshots: '@tootallnate/once@2.0.0': {} - '@trivago/prettier-plugin-sort-imports@4.1.1(prettier@2.8.8)': - dependencies: - '@babel/generator': 7.17.7 - '@babel/parser': 7.22.5 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - javascript-natural-sort: 0.7.1 - lodash: 4.17.21 - prettier: 2.8.8 - transitivePeerDependencies: - - supports-color - '@types/aria-query@5.0.1': {} '@types/chai-subset@1.3.3': @@ -2803,8 +2568,6 @@ snapshots: '@types/chai@4.3.5': {} - '@types/json-schema@7.0.11': {} - '@types/lodash@4.14.191': {} '@types/node@20.3.0': {} @@ -2825,97 +2588,15 @@ snapshots: '@types/scheduler@0.16.3': {} - '@types/semver@7.5.0': {} - '@types/showdown@2.0.0': {} - '@typescript-eslint/eslint-plugin@5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@5.1.3)': - dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@5.1.3) - '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/type-utils': 5.59.9(eslint@8.42.0)(typescript@5.1.3) - '@typescript-eslint/utils': 5.59.9(eslint@8.42.0)(typescript@5.1.3) - debug: 4.3.4 - eslint: 8.42.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.5.1 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@5.59.9(eslint@8.42.0)(typescript@5.1.3)': - dependencies: - '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) - debug: 4.3.4 - eslint: 8.42.0 - typescript: 5.1.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@5.59.9': - dependencies: - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/visitor-keys': 5.59.9 - - '@typescript-eslint/type-utils@5.59.9(eslint@8.42.0)(typescript@5.1.3)': - dependencies: - '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) - '@typescript-eslint/utils': 5.59.9(eslint@8.42.0)(typescript@5.1.3) - debug: 4.3.4 - eslint: 8.42.0 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@5.59.9': {} - - '@typescript-eslint/typescript-estree@5.59.9(typescript@5.1.3)': - dependencies: - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/visitor-keys': 5.59.9 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.1 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@5.59.9(eslint@8.42.0)(typescript@5.1.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) - '@types/json-schema': 7.0.11 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) - eslint: 8.42.0 - eslint-scope: 5.1.1 - semver: 7.5.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@5.59.9': - dependencies: - '@typescript-eslint/types': 5.59.9 - eslint-visitor-keys: 3.4.1 - - '@vitejs/plugin-react@4.0.0(vite@4.3.9)': + '@vitejs/plugin-react@4.0.0(vite@4.3.9(@types/node@20.3.0)(sass@1.62.1))': dependencies: '@babel/core': 7.22.5 '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.5) '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.5) react-refresh: 0.14.0 - vite: 4.3.9(@types/node@20.3.0) + vite: 4.3.9(@types/node@20.3.0)(sass@1.62.1) transitivePeerDependencies: - supports-color @@ -3017,31 +2698,8 @@ snapshots: call-bind: 1.0.2 is-array-buffer: 3.0.2 - array-includes@3.1.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - get-intrinsic: 1.2.0 - is-string: 1.0.7 - array-union@2.1.0: {} - array.prototype.flatmap@1.3.1: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - es-shim-unscopables: 1.0.0 - - array.prototype.tosorted@1.1.1: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.0 - assertion-error@1.1.0: {} astral-regex@2.0.0: {} @@ -3180,6 +2838,7 @@ snapshots: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 + optionalDependencies: typescript: 5.1.3 cross-spawn@7.0.3: @@ -3259,10 +2918,6 @@ snapshots: dependencies: path-type: 4.0.0 - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -3307,43 +2962,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.21.2: - dependencies: - array-buffer-byte-length: 1.0.0 - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.10 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 - es-get-iterator@1.1.3: dependencies: call-bind: 1.0.2 @@ -3356,22 +2974,6 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - es-set-tostringtag@2.0.1: - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - has-tostringtag: 1.0.0 - - es-shim-unscopables@1.0.0: - dependencies: - has: 1.0.3 - - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - esbuild@0.17.19: optionalDependencies: '@esbuild/android-arm': 0.17.19 @@ -3403,40 +3005,6 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-plugin-prettier@4.2.1(eslint@8.42.0)(prettier@2.8.8): - dependencies: - eslint: 8.42.0 - prettier: 2.8.8 - prettier-linter-helpers: 1.0.0 - - eslint-plugin-react-hooks@4.6.0(eslint@8.42.0): - dependencies: - eslint: 8.42.0 - - eslint-plugin-react@7.32.2(eslint@8.42.0): - dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 - doctrine: 2.1.0 - eslint: 8.42.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 - prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.0 - string.prototype.matchall: 4.0.8 - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - eslint-scope@7.2.0: dependencies: esrecurse: 4.3.0 @@ -3502,8 +3070,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} esutils@2.0.3: {} @@ -3584,13 +3150,6 @@ snapshots: function-bind@1.1.1: {} - function.prototype.name@1.1.5: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - functions-have-names: 1.2.3 - functions-have-names@1.2.3: {} gensync@1.0.0-beta.2: {} @@ -3599,12 +3158,6 @@ snapshots: get-func-name@2.0.0: {} - get-intrinsic@1.2.0: - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - get-intrinsic@1.2.1: dependencies: function-bind: 1.1.1 @@ -3612,11 +3165,6 @@ snapshots: has-proto: 1.0.1 has-symbols: 1.0.3 - get-symbol-description@1.0.0: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -3650,10 +3198,6 @@ snapshots: dependencies: type-fest: 0.20.2 - globalthis@1.0.3: - dependencies: - define-properties: 1.2.0 - globby@11.1.0: dependencies: array-union: 2.1.0 @@ -3669,8 +3213,6 @@ snapshots: dependencies: get-intrinsic: 1.2.1 - grapheme-splitter@1.0.4: {} - graphemer@1.4.0: {} has-bigints@1.0.2: {} @@ -3785,10 +3327,6 @@ snapshots: is-callable@1.2.7: {} - is-core-module@2.12.1: - dependencies: - has: 1.0.3 - is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.0 @@ -3805,8 +3343,6 @@ snapshots: is-map@2.0.2: {} - is-negative-zero@2.0.2: {} - is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.0 @@ -3848,10 +3384,6 @@ snapshots: is-weakmap@2.0.1: {} - is-weakref@1.0.2: - dependencies: - call-bind: 1.0.2 - is-weakset@2.0.2: dependencies: call-bind: 1.0.2 @@ -3861,8 +3393,6 @@ snapshots: isexe@2.0.0: {} - javascript-natural-sort@0.7.1: {} - js-string-escape@1.0.1: {} js-tokens@4.0.0: {} @@ -3917,11 +3447,6 @@ snapshots: jsonc-parser@3.2.0: {} - jsx-ast-utils@3.3.3: - dependencies: - array-includes: 3.1.6 - object.assign: 4.1.4 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -4018,18 +3543,20 @@ snapshots: pkg-types: 1.0.3 ufo: 1.1.2 - mobx-react-lite@4.0.2(mobx@6.9.0)(react-dom@18.2.0)(react@18.2.0): + mobx-react-lite@4.0.2(mobx@6.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: mobx: 6.9.0 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) use-sync-external-store: 1.2.0(react@18.2.0) + optionalDependencies: + react-dom: 18.2.0(react@18.2.0) - mobx-react@8.0.0(mobx@6.9.0)(react-dom@18.2.0)(react@18.2.0): + mobx-react@8.0.0(mobx@6.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: mobx: 6.9.0 - mobx-react-lite: 4.0.2(mobx@6.9.0)(react-dom@18.2.0)(react@18.2.0) + mobx-react-lite: 4.0.2(mobx@6.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 + optionalDependencies: react-dom: 18.2.0(react@18.2.0) mobx@6.9.0: {} @@ -4042,8 +3569,6 @@ snapshots: nanoid@3.3.7: {} - natural-compare-lite@1.4.0: {} - natural-compare@1.4.0: {} node-releases@2.0.12: {} @@ -4052,8 +3577,6 @@ snapshots: nwsapi@2.2.7: {} - object-assign@4.1.1: {} - object-hash@3.0.0: {} object-inspect@1.12.3: {} @@ -4072,29 +3595,6 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - - object.fromentries@2.0.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - - object.hasown@1.1.2: - dependencies: - define-properties: 1.2.0 - es-abstract: 1.21.2 - - object.values@1.1.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -4153,8 +3653,6 @@ snapshots: path-key@3.1.1: {} - path-parse@1.0.7: {} - path-type@4.0.0: {} pathe@1.1.1: {} @@ -4204,24 +3702,12 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: - dependencies: - fast-diff: 1.3.0 - - prettier@2.8.8: {} - pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - psl@1.9.0: {} punycode@2.3.0: {} @@ -4245,8 +3731,6 @@ snapshots: dependencies: react: 18.2.0 - react-is@16.13.1: {} - react-is@17.0.2: {} react-refresh@0.14.0: {} @@ -4268,12 +3752,6 @@ snapshots: regenerator-runtime@0.13.11: {} - regexp.prototype.flags@1.4.3: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 - regexp.prototype.flags@1.5.0: dependencies: call-bind: 1.0.2 @@ -4292,12 +3770,6 @@ snapshots: resolve-from@5.0.0: {} - resolve@2.0.0-next.4: - dependencies: - is-core-module: 2.12.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} rimraf@3.0.2: @@ -4314,12 +3786,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-regex-test@1.0.0: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-regex: 1.1.4 - safer-buffer@2.1.2: {} sass@1.62.1: @@ -4383,8 +3849,6 @@ snapshots: source-map-js@1.2.0: {} - source-map@0.5.7: {} - stackback@0.0.2: {} std-env@3.3.3: {} @@ -4405,35 +3869,6 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string.prototype.matchall@4.0.8: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - get-intrinsic: 1.2.0 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.4.3 - side-channel: 1.0.4 - - string.prototype.trim@1.2.7: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - - string.prototype.trimend@1.0.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - - string.prototype.trimstart@1.0.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - strip-ansi@5.2.0: dependencies: ansi-regex: 4.1.1 @@ -4452,31 +3887,33 @@ snapshots: dependencies: acorn: 8.8.2 - stylelint-config-recommended-scss@14.0.0(postcss@8.4.38)(stylelint@16.5.0): + stylelint-config-recommended-scss@14.0.0(postcss@8.4.38)(stylelint@16.5.0(typescript@5.1.3)): dependencies: - postcss: 8.4.38 postcss-scss: 4.0.9(postcss@8.4.38) stylelint: 16.5.0(typescript@5.1.3) - stylelint-config-recommended: 14.0.0(stylelint@16.5.0) - stylelint-scss: 6.3.0(stylelint@16.5.0) + stylelint-config-recommended: 14.0.0(stylelint@16.5.0(typescript@5.1.3)) + stylelint-scss: 6.3.0(stylelint@16.5.0(typescript@5.1.3)) + optionalDependencies: + postcss: 8.4.38 - stylelint-config-recommended@14.0.0(stylelint@16.5.0): + stylelint-config-recommended@14.0.0(stylelint@16.5.0(typescript@5.1.3)): dependencies: stylelint: 16.5.0(typescript@5.1.3) - stylelint-config-standard-scss@13.1.0(postcss@8.4.38)(stylelint@16.5.0): + stylelint-config-standard-scss@13.1.0(postcss@8.4.38)(stylelint@16.5.0(typescript@5.1.3)): dependencies: - postcss: 8.4.38 stylelint: 16.5.0(typescript@5.1.3) - stylelint-config-recommended-scss: 14.0.0(postcss@8.4.38)(stylelint@16.5.0) - stylelint-config-standard: 36.0.0(stylelint@16.5.0) + stylelint-config-recommended-scss: 14.0.0(postcss@8.4.38)(stylelint@16.5.0(typescript@5.1.3)) + stylelint-config-standard: 36.0.0(stylelint@16.5.0(typescript@5.1.3)) + optionalDependencies: + postcss: 8.4.38 - stylelint-config-standard@36.0.0(stylelint@16.5.0): + stylelint-config-standard@36.0.0(stylelint@16.5.0(typescript@5.1.3)): dependencies: stylelint: 16.5.0(typescript@5.1.3) - stylelint-config-recommended: 14.0.0(stylelint@16.5.0) + stylelint-config-recommended: 14.0.0(stylelint@16.5.0(typescript@5.1.3)) - stylelint-scss@6.3.0(stylelint@16.5.0): + stylelint-scss@6.3.0(stylelint@16.5.0(typescript@5.1.3)): dependencies: known-css-properties: 0.30.0 postcss-media-query-parser: 0.2.3 @@ -4489,7 +3926,7 @@ snapshots: dependencies: '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) '@csstools/css-tokenizer': 2.3.1 - '@csstools/media-query-list-parser': 2.1.11(@csstools/css-parser-algorithms@2.6.3)(@csstools/css-tokenizer@2.3.1) + '@csstools/media-query-list-parser': 2.1.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.1) '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.0.16) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 @@ -4543,8 +3980,6 @@ snapshots: has-flag: 4.0.0 supports-color: 7.2.0 - supports-preserve-symlinks-flag@1.0.0: {} - svg-tags@1.0.0: {} symbol-tree@3.2.4: {} @@ -4584,13 +4019,6 @@ snapshots: dependencies: punycode: 2.3.0 - tslib@1.14.1: {} - - tsutils@3.21.0(typescript@5.1.3): - dependencies: - tslib: 1.14.1 - typescript: 5.1.3 - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -4599,12 +4027,6 @@ snapshots: type-fest@0.20.2: {} - typed-array-length@1.0.4: - dependencies: - call-bind: 1.0.2 - for-each: 0.3.3 - is-typed-array: 1.1.10 - typedoc@0.24.8(typescript@5.1.3): dependencies: lunr: 2.3.9 @@ -4617,13 +4039,6 @@ snapshots: ufo@1.1.2: {} - unbox-primitive@1.0.2: - dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - universalify@0.2.0: {} update-browserslist-db@1.0.11(browserslist@4.21.7): @@ -4647,14 +4062,14 @@ snapshots: util-deprecate@1.0.2: {} - vite-node@0.32.0(@types/node@20.3.0): + vite-node@0.32.0(@types/node@20.3.0)(sass@1.62.1): dependencies: cac: 6.7.14 debug: 4.3.4 mlly: 1.3.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.3.9(@types/node@20.3.0) + vite: 4.3.9(@types/node@20.3.0)(sass@1.62.1) transitivePeerDependencies: - '@types/node' - less @@ -4664,16 +4079,17 @@ snapshots: - supports-color - terser - vite@4.3.9(@types/node@20.3.0): + vite@4.3.9(@types/node@20.3.0)(sass@1.62.1): dependencies: - '@types/node': 20.3.0 esbuild: 0.17.19 postcss: 8.4.24 rollup: 3.25.1 optionalDependencies: + '@types/node': 20.3.0 fsevents: 2.3.2 + sass: 1.62.1 - vitest@0.32.0: + vitest@0.32.0(jsdom@22.1.0)(sass@1.62.1): dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 @@ -4697,9 +4113,11 @@ snapshots: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.5.0 - vite: 4.3.9(@types/node@20.3.0) - vite-node: 0.32.0(@types/node@20.3.0) + vite: 4.3.9(@types/node@20.3.0)(sass@1.62.1) + vite-node: 0.32.0(@types/node@20.3.0)(sass@1.62.1) why-is-node-running: 2.2.2 + optionalDependencies: + jsdom: 22.1.0 transitivePeerDependencies: - less - sass