From b2bebd092a7a58aebc7f100229633d98859fe337 Mon Sep 17 00:00:00 2001 From: d3m1d0v Date: Tue, 26 Dec 2023 17:17:02 +0300 Subject: [PATCH] chore: update lint rules --- .eslintrc | 13 +- demo/HtmlPreview.tsx | 5 +- demo/PMSelection.tsx | 4 +- demo/Playground.stories.tsx | 3 +- demo/Playground.tsx | 21 +- demo/ProseMirrorDevTools.tsx | 3 +- demo/md-plugins.ts | 31 +- demo/utils/preview.tsx | 6 +- package-lock.json | 3098 +++++++++++++---- package.json | 13 +- src/commands/join.test.ts | 10 +- src/commands/join.ts | 3 +- src/core/ContentHandler.test.ts | 4 +- src/core/ContentHandler.ts | 2 + src/core/Editor.ts | 15 +- src/core/ExtensionBuilder.test.ts | 1 + src/core/ExtensionBuilder.ts | 21 +- src/core/ExtensionsManager.ts | 3 +- src/core/ParserTokensRegistry.ts | 3 +- src/core/SerializerTokensRegistry.ts | 2 +- src/core/markdown/Markdown.test.ts | 2 + src/core/markdown/MarkdownParser.test.ts | 3 +- src/core/markdown/MarkdownParser.ts | 5 +- src/core/types/extension.ts | 7 +- src/core/types/node-views.ts | 2 +- src/core/types/parser.ts | 2 +- src/core/types/serializer.ts | 1 + src/core/utils/actions.test.ts | 4 +- src/core/utils/actions.ts | 24 +- src/core/utils/metrics.ts | 1 + src/extensions/base/BaseInputRules/index.ts | 1 + src/extensions/base/BaseKeymap/index.ts | 3 +- .../base/BaseSchema/BaseSchema.test.ts | 2 + .../base/BaseSchema/BaseSchemaSpecs/index.ts | 1 + src/extensions/base/BaseSchema/index.ts | 4 +- src/extensions/base/BaseStyles/index.ts | 1 + src/extensions/base/index.ts | 2 +- .../behavior/Clipboard/clipboard.ts | 11 +- src/extensions/behavior/Clipboard/index.ts | 3 +- .../behavior/Cursor/GapCursorSelection.ts | 2 +- src/extensions/behavior/Cursor/gapcursor.ts | 3 +- src/extensions/behavior/Cursor/index.ts | 2 + src/extensions/behavior/History/index.ts | 3 +- src/extensions/behavior/Placeholder/index.ts | 7 +- .../behavior/ReactRenderer/index.ts | 6 +- .../behavior/ReactRenderer/react.tsx | 2 + src/extensions/behavior/Selection/commands.ts | 1 - src/extensions/behavior/Selection/index.ts | 1 + .../behavior/Selection/selection.ts | 7 +- src/extensions/behavior/index.ts | 10 +- .../markdown/Blockquote/Blockquote.test.ts | 6 +- .../Blockquote/BlockquoteSpecs/index.ts | 1 + .../markdown/Blockquote/commands.test.ts | 6 +- .../markdown/Blockquote/commands.ts | 5 +- src/extensions/markdown/Blockquote/index.ts | 6 +- src/extensions/markdown/Bold/Bold.test.ts | 6 +- src/extensions/markdown/Bold/index.ts | 8 +- src/extensions/markdown/Breaks/Breaks.test.ts | 2 + .../markdown/Breaks/BreaksSpecs/index.ts | 1 + src/extensions/markdown/Breaks/index.ts | 8 +- src/extensions/markdown/Code/Code.test.ts | 10 +- .../markdown/Code/CodeSpecs/index.ts | 1 + src/extensions/markdown/Code/index.ts | 10 +- .../markdown/CodeBlock/CodeBlock.test.ts | 6 +- src/extensions/markdown/CodeBlock/commands.ts | 2 + .../markdown/CodeBlock/handle-paste.ts | 7 +- src/extensions/markdown/CodeBlock/index.ts | 4 +- .../markdown/Deflist/Deflist.test.ts | 4 +- .../markdown/Deflist/DeflistSpecs/fromYfm.ts | 1 + .../markdown/Deflist/DeflistSpecs/index.ts | 4 +- .../markdown/Deflist/DeflistSpecs/spec.ts | 7 +- .../markdown/Deflist/DeflistSpecs/toYfm.ts | 1 + src/extensions/markdown/Deflist/commands.ts | 2 + src/extensions/markdown/Deflist/index.ts | 1 + .../markdown/Heading/Heading.test.ts | 8 +- .../markdown/Heading/HeadingSpecs/index.ts | 1 + src/extensions/markdown/Heading/actions.ts | 2 + src/extensions/markdown/Heading/commands.ts | 2 + src/extensions/markdown/Heading/index.ts | 8 +- src/extensions/markdown/Heading/utils.ts | 3 +- .../HorizontalRule/HorizontalRule.test.ts | 6 +- .../markdown/HorizontalRule/index.ts | 4 +- src/extensions/markdown/Html/Html.test.ts | 5 +- src/extensions/markdown/Html/fromYfm.ts | 1 + src/extensions/markdown/Html/index.ts | 3 +- src/extensions/markdown/Html/spec.ts | 1 + src/extensions/markdown/Html/toYfm.ts | 1 + src/extensions/markdown/Image/Image.test.ts | 4 +- src/extensions/markdown/Image/actions.ts | 2 + src/extensions/markdown/Image/index.ts | 5 +- src/extensions/markdown/Italic/Italic.test.ts | 6 +- src/extensions/markdown/Italic/index.ts | 7 +- src/extensions/markdown/Link/Link.test.ts | 4 +- .../markdown/Link/LinkSpecs/index.ts | 1 + src/extensions/markdown/Link/actions.ts | 4 +- src/extensions/markdown/Link/commands.ts | 2 + src/extensions/markdown/Link/index.ts | 3 +- src/extensions/markdown/Link/paste-plugin.ts | 4 +- src/extensions/markdown/Lists/Lists.test.ts | 2 + .../markdown/Lists/ListsSpecs/fromYfm.ts | 2 + .../markdown/Lists/ListsSpecs/index.ts | 3 +- .../markdown/Lists/ListsSpecs/spec.ts | 1 + .../markdown/Lists/ListsSpecs/toYfm.ts | 1 + src/extensions/markdown/Lists/actions.ts | 2 + .../markdown/Lists/commands.test.ts | 6 +- src/extensions/markdown/Lists/commands.ts | 8 +- src/extensions/markdown/Lists/index.ts | 6 +- src/extensions/markdown/Lists/inputrules.ts | 4 +- src/extensions/markdown/Lists/utils.ts | 3 +- src/extensions/markdown/Mark/Mark.test.ts | 6 +- .../markdown/Mark/MarkSpecs/index.ts | 1 + src/extensions/markdown/Mark/index.ts | 3 +- src/extensions/markdown/Strike/Strike.test.ts | 6 +- src/extensions/markdown/Strike/index.ts | 6 +- .../markdown/Subscript/Subscript.test.ts | 6 +- .../Subscript/SubscriptSpecs/index.ts | 1 + src/extensions/markdown/Subscript/index.ts | 3 +- .../markdown/Superscript/Superscript.test.ts | 6 +- src/extensions/markdown/Superscript/index.ts | 3 +- src/extensions/markdown/Table/Table.test.ts | 8 +- .../markdown/Table/TableSpecs/fromYfm.ts | 1 + .../markdown/Table/TableSpecs/index.ts | 5 +- .../markdown/Table/TableSpecs/spec.ts | 1 + src/extensions/markdown/Table/actions.ts | 2 + src/extensions/markdown/Table/helpers.ts | 1 + src/extensions/markdown/Table/index.ts | 3 +- .../markdown/Underline/Underline.test.ts | 6 +- .../Underline/UnderlineSpecs/index.ts | 1 + src/extensions/markdown/Underline/index.ts | 6 +- src/extensions/markdown/index.ts | 24 +- src/extensions/markdown/specs.ts | 24 +- src/extensions/yfm/Checkbox/Checkbox.test.ts | 6 +- .../yfm/Checkbox/CheckboxSpecs/index.ts | 5 +- .../yfm/Checkbox/CheckboxSpecs/spec.ts | 6 +- src/extensions/yfm/Checkbox/actions.test.ts | 3 +- src/extensions/yfm/Checkbox/actions.ts | 2 + src/extensions/yfm/Checkbox/index.ts | 10 +- src/extensions/yfm/Checkbox/plugin.test.ts | 3 +- src/extensions/yfm/Checkbox/plugin.ts | 2 + src/extensions/yfm/Color/Color.test.ts | 6 +- src/extensions/yfm/Color/ColorSpecs/index.ts | 4 +- src/extensions/yfm/Color/index.ts | 4 +- src/extensions/yfm/Color/utils.ts | 1 + .../yfm/ImgSize/ImgSizeSpecs/index.ts | 5 +- src/extensions/yfm/ImgSize/YfmImage.test.ts | 4 +- src/extensions/yfm/ImgSize/actions.ts | 2 + src/extensions/yfm/ImgSize/index.ts | 5 +- src/extensions/yfm/Math/Math.test.ts | 4 +- src/extensions/yfm/Math/MathSpecs/index.ts | 1 + src/extensions/yfm/Math/commands.ts | 2 + src/extensions/yfm/Math/hint.tsx | 3 +- src/extensions/yfm/Math/index.ts | 10 +- src/extensions/yfm/Math/view-and-edit.scss | 10 +- src/extensions/yfm/Math/view-and-edit.ts | 12 +- .../yfm/Monospace/Monospace.test.ts | 6 +- src/extensions/yfm/Monospace/index.ts | 2 +- src/extensions/yfm/Video/Video.test.ts | 2 + src/extensions/yfm/Video/VideoSpecs/index.ts | 6 +- src/extensions/yfm/Video/VideoSpecs/utils.ts | 4 +- src/extensions/yfm/Video/actions.ts | 4 +- src/extensions/yfm/Video/index.ts | 7 +- src/extensions/yfm/YfmCut/YfmCut.test.ts | 12 +- .../yfm/YfmCut/YfmCutSpecs/fromYfm.ts | 1 + .../yfm/YfmCut/YfmCutSpecs/index.ts | 1 + src/extensions/yfm/YfmCut/YfmCutSpecs/spec.ts | 6 +- .../yfm/YfmCut/YfmCutSpecs/toYfm.ts | 3 +- src/extensions/yfm/YfmCut/actions/toYfmCut.ts | 1 + src/extensions/yfm/YfmCut/commands.test.ts | 2 +- src/extensions/yfm/YfmCut/commands.ts | 8 +- src/extensions/yfm/YfmCut/index.ts | 8 +- .../yfm/YfmCut/plugins/auto-open.ts | 5 +- .../yfm/YfmDist/YfmDistSpecs/index.ts | 1 + src/extensions/yfm/YfmDist/index.ts | 9 +- src/extensions/yfm/YfmFile/YfmFile.test.ts | 5 +- .../yfm/YfmFile/YfmFileSpecs/const.ts | 9 +- .../yfm/YfmFile/YfmFileSpecs/index.ts | 3 +- .../yfm/YfmHeading/YfmHeading.test.ts | 8 +- .../yfm/YfmHeading/YfmHeadingSpecs/index.ts | 4 +- .../yfm/YfmHeading/YfmHeadingSpecs/utils.ts | 3 +- src/extensions/yfm/YfmHeading/actions.ts | 3 +- src/extensions/yfm/YfmHeading/commands.ts | 3 +- src/extensions/yfm/YfmHeading/index.ts | 7 +- src/extensions/yfm/YfmNote/YfmNote.test.ts | 12 +- .../yfm/YfmNote/YfmNoteSpecs/fromYfm.ts | 1 + .../yfm/YfmNote/YfmNoteSpecs/index.ts | 3 +- .../yfm/YfmNote/YfmNoteSpecs/spec.ts | 7 +- .../yfm/YfmNote/YfmNoteSpecs/toYfm.ts | 3 +- .../yfm/YfmNote/YfmNoteSpecs/utils.ts | 1 + .../yfm/YfmNote/actions/toYfmNote.ts | 1 + src/extensions/yfm/YfmNote/commands.test.ts | 2 +- src/extensions/yfm/YfmNote/commands.ts | 8 +- src/extensions/yfm/YfmNote/index.ts | 6 +- src/extensions/yfm/YfmTable/YfmTable.test.ts | 10 +- .../yfm/YfmTable/YfmTableSpecs/fromYfm.ts | 1 + .../yfm/YfmTable/YfmTableSpecs/index.ts | 1 + .../yfm/YfmTable/YfmTableSpecs/spec.ts | 7 +- .../yfm/YfmTable/YfmTableSpecs/toYfm.ts | 1 + .../yfm/YfmTable/YfmTableSpecs/utils.ts | 1 + src/extensions/yfm/YfmTable/actions.test.ts | 3 +- src/extensions/yfm/YfmTable/actions.ts | 2 + .../yfm/YfmTable/commands/backspace.test.ts | 2 +- .../yfm/YfmTable/commands/backspace.ts | 7 +- .../yfm/YfmTable/commands/convert-table.ts | 3 +- .../yfm/YfmTable/commands/goToNextRow.ts | 5 +- .../yfm/YfmTable/commands/remove-table.ts | 1 + src/extensions/yfm/YfmTable/index.ts | 8 +- src/extensions/yfm/YfmTable/paste.ts | 2 + src/extensions/yfm/YfmTabs/YfmTabs.test.ts | 2 + .../yfm/YfmTabs/YfmTabsSpecs/fromYfm.ts | 2 + .../yfm/YfmTabs/YfmTabsSpecs/index.ts | 1 + .../yfm/YfmTabs/YfmTabsSpecs/spec.ts | 7 +- .../yfm/YfmTabs/YfmTabsSpecs/toYfm.ts | 4 +- src/extensions/yfm/YfmTabs/actions.ts | 7 +- src/extensions/yfm/YfmTabs/index.ts | 9 +- src/extensions/yfm/YfmTabs/plugins.ts | 34 +- src/extensions/yfm/YfmTabs/utils.ts | 1 + src/extensions/yfm/YfmTabs/views.ts | 6 +- src/extensions/yfm/index.ts | 4 +- src/extensions/yfm/specs.ts | 4 +- src/global.d.ts | 2 - src/i18n/i18n.ts | 3 +- src/icons/index.ts | 58 +- src/react-utils/hooks.ts | 3 +- src/react-utils/react-node-view.tsx | 5 +- src/react/YfmEditorComponent.tsx | 1 + src/react/useYfmEditor.ts | 2 + src/shortcuts/chars.ts | 3 +- src/shortcuts/default.ts | 2 +- src/shortcuts/formatter.ts | 8 +- src/table-utils/commands/addColumnAfter.ts | 9 +- src/table-utils/commands/addRowAfter.ts | 1 + src/table-utils/commands/appendColumn.ts | 13 +- src/table-utils/commands/appendRow.ts | 7 +- src/table-utils/commands/goToNextCell.ts | 1 + src/table-utils/commands/removeColumn.ts | 9 +- .../commands/removeCurrentColumn.ts | 9 +- src/table-utils/commands/removeCurrentRow.ts | 3 +- src/table-utils/commands/removeRow.ts | 9 +- src/table-utils/commands/transpose.test.ts | 4 +- src/table-utils/commands/transpose.ts | 3 +- src/table-utils/utils.ts | 4 +- src/toolbar/FlexToolbar.scss | 5 +- src/toolbar/FlexToolbar.tsx | 8 +- src/toolbar/Toolbar.tsx | 3 +- src/toolbar/ToolbarButton.tsx | 5 +- src/toolbar/ToolbarGroup.tsx | 2 + src/toolbar/ToolbarListButton.tsx | 6 +- src/toolbar/config/action-names.ts | 11 +- src/toolbar/config/wysiwyg.ts | 8 +- src/toolbar/types.ts | 2 + src/utils/actions.ts | 2 + src/utils/inputrules.ts | 3 +- src/utils/keymap.ts | 1 + src/utils/marks.ts | 2 +- src/utils/selection.ts | 2 +- src/utils/serialize-for-clipboard.ts | 3 +- 256 files changed, 3143 insertions(+), 1242 deletions(-) diff --git a/.eslintrc b/.eslintrc index 699ccdb4..9b117219 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,4 +1,13 @@ { - "extends": ["@gravity-ui/eslint-config", "@gravity-ui/eslint-config/prettier"], - "root": true + "root": true, + "extends": [ + "@gravity-ui/eslint-config", + "@gravity-ui/eslint-config/a11y", + "@gravity-ui/eslint-config/prettier", + "@gravity-ui/eslint-config/import-order" + ], + "plugins": ["lodash"], + "rules": { + "lodash/import-scope": [2, "method"] + } } diff --git a/demo/HtmlPreview.tsx b/demo/HtmlPreview.tsx index 34e6f3b7..da89242e 100644 --- a/demo/HtmlPreview.tsx +++ b/demo/HtmlPreview.tsx @@ -1,7 +1,10 @@ import React from 'react'; + import transform from '@diplodoc/transform'; + +import {MarkupString, colorClassName} from '../src'; import type {ClassNameProps} from '../src/classname'; -import {colorClassName, MarkupString} from '../src'; + import {plugins} from './md-plugins'; type PlaygroundHtmlPreviewProps = ClassNameProps & { diff --git a/demo/PMSelection.tsx b/demo/PMSelection.tsx index 4d4e2908..ea3abc96 100644 --- a/demo/PMSelection.tsx +++ b/demo/PMSelection.tsx @@ -1,6 +1,8 @@ import React from 'react'; + import type {EditorView} from 'prosemirror-view'; -import {isTextSelection, isNodeSelection, isWholeSelection, ClassNameProps} from '../src'; + +import {ClassNameProps, isNodeSelection, isTextSelection, isWholeSelection} from '../src'; export type PMSelectionProps = ClassNameProps & { view: EditorView; diff --git a/demo/Playground.stories.tsx b/demo/Playground.stories.tsx index 1c75fc8b..3392a462 100644 --- a/demo/Playground.stories.tsx +++ b/demo/Playground.stories.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import {ComponentMeta, Story} from '@storybook/react'; + +import type {ComponentMeta, Story} from '@storybook/react'; // eslint-disable-line import/no-extraneous-dependencies import {Playground as PlaygroundComponent, PlaygroundProps} from './Playground'; import {initialMdContent} from './md-content'; diff --git a/demo/Playground.tsx b/demo/Playground.tsx index 4ca651a3..c60eea64 100644 --- a/demo/Playground.tsx +++ b/demo/Playground.tsx @@ -1,32 +1,33 @@ import React from 'react'; -import block from 'bem-cn-lite'; -import {useUpdate} from 'react-use'; + import {Button, RadioButton, TextArea} from '@gravity-ui/uikit'; +import block from 'bem-cn-lite'; // eslint-disable-line import/no-extraneous-dependencies +import {useUpdate} from 'react-use'; import { BaseNode, BasePreset, BehaviorPreset, + Extension, + FlexToolbar, MarkdownBlocksPreset, MarkdownMarksPreset, MarkupString, - YfmEditorComponent, - useYfmEditor, - YfmPreset, - Extension, ReactRenderStorage, ReactRendererComponent, - FlexToolbar, + YfmEditorComponent, + YfmPreset, + logger, + useYfmEditor, } from '../src'; import {wHiddenData, wToolbarConfig} from '../src/toolbar/config/wysiwyg'; import {PlaygroundHtmlPreview} from './HtmlPreview'; -import {ProseMirrorDevTools} from './ProseMirrorDevTools'; import {PMSelection} from './PMSelection'; -import {logger} from '../src/index'; +import {ProseMirrorDevTools} from './ProseMirrorDevTools'; +import {keys} from './keys'; import './Playground.scss'; -import {keys} from './keys'; const b = block('playground'); diff --git a/demo/ProseMirrorDevTools.tsx b/demo/ProseMirrorDevTools.tsx index 432e83d5..b4baffbb 100644 --- a/demo/ProseMirrorDevTools.tsx +++ b/demo/ProseMirrorDevTools.tsx @@ -1,6 +1,7 @@ import {useEffect} from 'react'; -import type {EditorView} from 'prosemirror-view'; + import {applyDevTools, removeDevTools} from 'prosemirror-dev-toolkit'; +import type {EditorView} from 'prosemirror-view'; export type ProseMirrorDevToolsProps = { view: EditorView; diff --git a/demo/md-plugins.ts b/demo/md-plugins.ts index ed7831d0..9c8b80b8 100644 --- a/demo/md-plugins.ts +++ b/demo/md-plugins.ts @@ -1,26 +1,23 @@ -import type {PluginWithParams} from 'markdown-it/lib'; - +import anchors from '@diplodoc/transform/lib/plugins/anchors'; +import checkbox from '@diplodoc/transform/lib/plugins/checkbox'; +import code from '@diplodoc/transform/lib/plugins/code'; +import cut from '@diplodoc/transform/lib/plugins/cut'; +import deflist from '@diplodoc/transform/lib/plugins/deflist'; import file from '@diplodoc/transform/lib/plugins/file'; import imsize from '@diplodoc/transform/lib/plugins/imsize'; - -import sub from 'markdown-it-sub'; -import ins from 'markdown-it-ins'; -import mark from 'markdown-it-mark'; -import color from 'markdown-it-color'; -import math from 'markdown-it-katex'; - import meta from '@diplodoc/transform/lib/plugins/meta'; -import checkbox from '@diplodoc/transform/lib/plugins/checkbox'; -import deflist from '@diplodoc/transform/lib/plugins/deflist'; -import anchors from '@diplodoc/transform/lib/plugins/anchors'; -import cut from '@diplodoc/transform/lib/plugins/cut'; +import monospace from '@diplodoc/transform/lib/plugins/monospace'; import notes from '@diplodoc/transform/lib/plugins/notes'; -import tabs from '@diplodoc/transform/lib/plugins/tabs'; -import code from '@diplodoc/transform/lib/plugins/code'; import sup from '@diplodoc/transform/lib/plugins/sup'; -import video from '@diplodoc/transform/lib/plugins/video'; -import monospace from '@diplodoc/transform/lib/plugins/monospace'; import yfmTable from '@diplodoc/transform/lib/plugins/table'; +import tabs from '@diplodoc/transform/lib/plugins/tabs'; +import video from '@diplodoc/transform/lib/plugins/video'; +import type {PluginWithParams} from 'markdown-it/lib'; +import color from 'markdown-it-color'; +import ins from 'markdown-it-ins'; +import math from 'markdown-it-katex'; +import mark from 'markdown-it-mark'; +import sub from 'markdown-it-sub'; const defaultPlugins: PluginWithParams[] = [ meta, diff --git a/demo/utils/preview.tsx b/demo/utils/preview.tsx index c7994554..bdbfb311 100644 --- a/demo/utils/preview.tsx +++ b/demo/utils/preview.tsx @@ -1,7 +1,9 @@ import React from 'react'; -import type {Decorator} from '@storybook/react'; -import {configure as configureUikit, ThemeProvider} from '@gravity-ui/uikit'; + import {configure as configureComponents} from '@gravity-ui/components'; +import {ThemeProvider, configure as configureUikit} from '@gravity-ui/uikit'; +import type {Decorator} from '@storybook/react'; // eslint-disable-line import/no-extraneous-dependencies + import {configure as configureYfmEditor} from '../../src'; import '@gravity-ui/uikit/styles/styles.scss'; diff --git a/package-lock.json b/package-lock.json index 8818bfbe..d893db34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,9 +39,9 @@ "devDependencies": { "@diplodoc/transform": "4.5.0", "@gravity-ui/components": "2.0.0", - "@gravity-ui/eslint-config": "1.0.2", - "@gravity-ui/prettier-config": "1.0.1", - "@gravity-ui/stylelint-config": "1.0.1", + "@gravity-ui/eslint-config": "3.1.1", + "@gravity-ui/prettier-config": "1.1.0", + "@gravity-ui/stylelint-config": "4.0.1", "@gravity-ui/tsconfig": "1.0.0", "@gravity-ui/uikit": "5.0.2", "@storybook/addon-essentials": "^7.1.1", @@ -57,7 +57,8 @@ "@types/react-dom": "18.0.11", "@types/rimraf": "3.0.2", "esbuild-sass-plugin": "2.15.0", - "eslint": "8.24.0", + "eslint": "8.56.0", + "eslint-plugin-lodash": "7.4.0", "gulp": "4.0.2", "gulp-cli": "2.3.0", "gulp-concat": "2.6.1", @@ -70,14 +71,14 @@ "markdown-it-testgen": "^0.1.6", "npm-run-all": "^4.1.5", "postcss": "^8.4.27", - "prettier": "2.7.1", + "prettier": "3.1.1", "prosemirror-dev-toolkit": "1.1.5", "react": "18.2.0", "react-dom": "18.2.0", "rimraf": "3.0.2", "sass": "^1.64.1", "sass-loader": "^13.3.2", - "stylelint": "14.13.0", + "stylelint": "15.11.0", "ts-jest": "^27.0.7", "typescript": "^4.5.2" }, @@ -185,20 +186,20 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.3.tgz", - "integrity": "sha512-iB4ElZT0jAt7PKVaeVulOECdGe6UnmA/O0P9jlF5g5GBOwDVbna8AXhHRu4s27xQf6OkveyA8iTDv1jHdDejgQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz", + "integrity": "sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==", "dev": true, "dependencies": { - "eslint-scope": "^5.1.1", + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || >=14.0.0" }, "peerDependencies": { - "@babel/core": ">=7.11.0", + "@babel/core": "^7.11.0", "eslint": "^7.5.0 || ^8.0.0" } }, @@ -2254,11 +2255,11 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -2340,21 +2341,90 @@ "node": ">=0.1.90" } }, - "node_modules/@csstools/selector-specificity": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.4.0.tgz", + "integrity": "sha512-/PPLr2g5PAUCKAPEbfyk6/baZA+WJHQtUhPkoCQMpyRE8I0lXrG1QFRN8e5s3ZYxM8d/g5BZc6lH3s8Op7/VEg==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "engines": { - "node": "^12 || ^14 || >=16" + "node": "^14 || ^16 || >=18" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" + "peerDependencies": { + "@csstools/css-tokenizer": "^2.2.2" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.2.tgz", + "integrity": "sha512-wCDUe/MAw7npAHFLyW3QjSyLA66S5QFaV1jIXlNQvdJ8RzXDSgALa49eWcUO6P55ARQaz0TsDdAgdRgkXFYY8g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.6.tgz", + "integrity": "sha512-R6AKl9vaU0It7D7TR2lQn0pre5aQfdeqHRePlaRCY8rHL3l9eVlNRpsEVDKFi/zAjzv68CxH2M5kqbhPFPKjvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.4.0", + "@csstools/css-tokenizer": "^2.2.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz", + "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "postcss": "^8.2", - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^6.0.13" } }, "node_modules/@diplodoc/tabs-extension": { @@ -2809,16 +2879,52 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", - "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", + "espree": "^9.6.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -2849,9 +2955,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2893,6 +2999,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@fal-works/esbuild-plugin-global-externals": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", @@ -2919,92 +3034,33 @@ } }, "node_modules/@gravity-ui/eslint-config": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@gravity-ui/eslint-config/-/eslint-config-1.0.2.tgz", - "integrity": "sha512-988w7swpqZ8bwhPTNSVNvwJK3hJ4EBKA4dY7Sd0sTgXtjKLZhpff/I7Rncr76c8pgcXsvmHD2++kPnXe5oqx2Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@gravity-ui/eslint-config/-/eslint-config-3.1.1.tgz", + "integrity": "sha512-iOfvKASXHp+3XVtJxaBOJHWWXAM4yqnYNxK5EVzQXfnPC4ELNaNq0cww/8NaV8o3gpBGwi4r4C+YXFu2cc2AhA==", "dev": true, "dependencies": { - "@babel/core": "7.16.0", - "@babel/eslint-parser": "7.16.3", - "@babel/preset-react": "7.16.0", - "@typescript-eslint/eslint-plugin": "5.3.1", - "@typescript-eslint/parser": "5.3.1", - "eslint-config-prettier": "8.3.0", - "eslint-plugin-prettier": "4.0.0", - "eslint-plugin-react": "7.27.0", - "eslint-plugin-react-hooks": "4.3.0", - "eslint-plugin-security": "1.4.0" + "@babel/core": "^7.22.0", + "@babel/eslint-parser": "^7.22.0", + "@babel/preset-react": "^7.22.0", + "@typescript-eslint/eslint-plugin": "^6.4.1", + "@typescript-eslint/parser": "^6.4.1", + "eslint-config-prettier": "^9.0.0", + "eslint-import-resolver-typescript": "^3.6.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-security": "^1.7.1" }, "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/@gravity-ui/eslint-config/node_modules/@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@gravity-ui/eslint-config/node_modules/@babel/preset-react": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz", - "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-react-jsx-development": "^7.16.0", - "@babel/plugin-transform-react-pure-annotations": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" + "eslint": "^8.0.0", + "prettier": "^3.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@gravity-ui/eslint-config/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@gravity-ui/eslint-config/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "peerDependenciesMeta": { + "prettier": { + "optional": true + } } }, "node_modules/@gravity-ui/i18n": { @@ -3018,29 +3074,34 @@ "integrity": "sha512-uyDoXTLbzFT/PmPCpR+qqB5hwRospg6xLnzJCY0vYgXqcr2h81xXglETVam0BBdJbM0JkSo2vqxAy3hJtAfFXQ==" }, "node_modules/@gravity-ui/prettier-config": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@gravity-ui/prettier-config/-/prettier-config-1.0.1.tgz", - "integrity": "sha512-VpTM+OiUMgXjwc7HBo0ekxBFghzELsnE/RFBYwbkbIqm0NrL4SiEPzne1IyEY/WsfI8om1hpn81t+qjGbicMSw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@gravity-ui/prettier-config/-/prettier-config-1.1.0.tgz", + "integrity": "sha512-Q97lMSOqdAf337qblkq06mLgK9OEEGglPAj8ncs3WnaZ2rBtOxtNsCIubv5U64TZkxaNPzxd7rDL24VIv1sxJg==", "dev": true, "peerDependencies": { - "prettier": "^2.2.1" + "prettier": "*" } }, "node_modules/@gravity-ui/stylelint-config": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@gravity-ui/stylelint-config/-/stylelint-config-1.0.1.tgz", - "integrity": "sha512-vm2ST9/5BmSsw3IcuU6inQZ38wbY19dk4ePkPo1UUzcFB39AKW+7JBnHlnWuwzrv0VwYCk8wahDFm7zkwHDurw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@gravity-ui/stylelint-config/-/stylelint-config-4.0.1.tgz", + "integrity": "sha512-Yn5gnfnLt46e0XqTAt41c7OTEMGVt2Cx7cLv1awTKYo7GLTyWuW3Ir7zx5N0J2QiC/LWfouwglOF+KqwVUkXug==", "dev": true, "dependencies": { - "postcss-scss": "4.0.2", - "stylelint-config-prettier": "9.0.3", - "stylelint-order": "5.0.0", - "stylelint-prettier": "2.0.0", - "stylelint-scss": "4.0.0" + "postcss-scss": "^4.0.7", + "stylelint-order": "^6.0.3", + "stylelint-prettier": "^4.0.2", + "stylelint-scss": "^5.1.0" }, "peerDependencies": { "postcss": "^8.0.0", - "stylelint": "^14.0.0" + "prettier": "^3.0.0", + "stylelint": "^15.8.0" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } } }, "node_modules/@gravity-ui/tsconfig": { @@ -3078,29 +3139,19 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -3115,9 +3166,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -4209,6 +4260,15 @@ "tar-fs": "^2.1.1" } }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4254,6 +4314,115 @@ "node": ">=14" } }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pkgr/utils/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pkgr/utils/node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pkgr/utils/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgr/utils/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgr/utils/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgr/utils/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", @@ -7288,9 +7457,15 @@ "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/@types/katex": { @@ -7349,9 +7524,9 @@ "dev": true }, "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true }, "node_modules/@types/node": { @@ -7550,30 +7725,33 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz", - "integrity": "sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz", + "integrity": "sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "5.3.1", - "@typescript-eslint/scope-manager": "5.3.1", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/type-utils": "6.16.0", + "@typescript-eslint/utils": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -7581,81 +7759,85 @@ } } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz", - "integrity": "sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w==", + "node_modules/@typescript-eslint/parser": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.16.0.tgz", + "integrity": "sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.3.1", - "@typescript-eslint/types": "5.3.1", - "@typescript-eslint/typescript-estree": "5.3.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/typescript-estree": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", + "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.3.1.tgz", - "integrity": "sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz", + "integrity": "sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.3.1", - "@typescript-eslint/types": "5.3.1", - "@typescript-eslint/typescript-estree": "5.3.1", - "debug": "^4.3.2" + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz", - "integrity": "sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg==", + "node_modules/@typescript-eslint/type-utils": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz", + "integrity": "sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.3.1", - "@typescript-eslint/visitor-keys": "5.3.1" + "@typescript-eslint/typescript-estree": "6.16.0", + "@typescript-eslint/utils": "6.16.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/types": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.1.tgz", - "integrity": "sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.16.0.tgz", + "integrity": "sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -7663,21 +7845,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz", - "integrity": "sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz", + "integrity": "sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.3.1", - "@typescript-eslint/visitor-keys": "5.3.1", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -7689,17 +7872,66 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.16.0.tgz", + "integrity": "sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/typescript-estree": "6.16.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz", - "integrity": "sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz", + "integrity": "sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.3.1", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "6.16.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -7707,9 +7939,9 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", - "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7718,6 +7950,12 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", @@ -8234,7 +8472,6 @@ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, - "peer": true, "dependencies": { "dequal": "^2.0.3" } @@ -8290,6 +8527,19 @@ "node": ">=0.10.0" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -8306,15 +8556,15 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -8408,15 +8658,52 @@ "node": ">=0.10.0" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -8426,6 +8713,49 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/assert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", @@ -8468,6 +8798,12 @@ "node": ">=4" } }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -8522,6 +8858,15 @@ "node": ">= 0.10" } }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -8552,12 +8897,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/axobject-query": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", "dev": true, - "peer": true, "dependencies": { "dequal": "^2.0.3" } @@ -9429,6 +9782,21 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -9618,13 +9986,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9658,6 +10027,48 @@ "node": ">=6" } }, + "node_modules/camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "dependencies": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001517", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", @@ -10594,12 +11005,12 @@ } }, "node_modules/css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", + "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", "dev": true, "engines": { - "node": ">=12.22" + "node": ">=12 || >=16" } }, "node_modules/css-in-js-utils": { @@ -10745,6 +11156,12 @@ "type": "^1.0.1" } }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -10821,14 +11238,26 @@ } }, "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -10890,6 +11319,24 @@ "node": ">=0.10.0" } }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-browser-id": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", @@ -10906,27 +11353,196 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "node_modules/default-browser/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "kind-of": "^5.0.2" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/default-compare/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" - } - }, + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-browser/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-browser/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-compare/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/default-resolution": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", @@ -10957,6 +11573,20 @@ "node": ">=0.8" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -10967,11 +11597,12 @@ } }, "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -11488,34 +12119,50 @@ } }, "node_modules/es-abstract": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", - "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.2", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", - "has": "^1.0.3", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "hasown": "^2.0.0", + "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.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -11524,19 +12171,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, "node_modules/es-module-lexer": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", "dev": true }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -11734,49 +12417,48 @@ } }, "node_modules/eslint": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", - "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.2", - "@humanwhocodes/config-array": "^0.10.5", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-sdsl": "^4.1.4", + "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", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -11790,9 +12472,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", - "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -11801,47 +12483,258 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/eslint-plugin-lodash": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-lodash/-/eslint-plugin-lodash-7.4.0.tgz", + "integrity": "sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": ">=2" + } + }, "node_modules/eslint-plugin-prettier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", - "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz", + "integrity": "sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==", "dev": true, "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" }, "engines": { - "node": ">=6.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } } }, "node_modules/eslint-plugin-react": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.0.tgz", - "integrity": "sha512-0Ut+CkzpppgFtoIhdzi2LpdpxxBvgFf99eFqWxJnUrO7mMe0eOiNpou6rvNYeVVV6lWZvTah0BFne7k5xHjARg==", + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "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.1", + "string.prototype.matchall": "^4.0.8" }, "engines": { "node": ">=4" @@ -11851,9 +12744,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", - "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, "engines": { "node": ">=10" @@ -11884,12 +12777,12 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -11910,12 +12803,21 @@ } }, "node_modules/eslint-plugin-security": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz", - "integrity": "sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz", + "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==", "dev": true, "dependencies": { - "safe-regex": "^1.1.0" + "safe-regex": "^2.1.1" + } + }, + "node_modules/eslint-plugin-security/node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "dependencies": { + "regexp-tree": "~0.1.1" } }, "node_modules/eslint-scope": { @@ -11931,24 +12833,6 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", @@ -12005,9 +12889,9 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", - "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -12240,14 +13124,14 @@ } }, "node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -12257,9 +13141,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", - "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -12282,9 +13166,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -13165,12 +14049,13 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -13178,9 +14063,9 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/flow-parser": { @@ -13562,21 +14447,24 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -13585,12 +14473,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -13619,14 +14501,15 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13696,6 +14579,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -14103,6 +14998,21 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -14180,10 +15090,10 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/gulp": { @@ -14621,18 +15531,6 @@ "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -14663,6 +15561,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -14753,6 +15663,18 @@ "node": ">=0.10.0" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -14857,9 +15779,9 @@ } }, "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, "engines": { "node": ">=8" @@ -15152,13 +16074,13 @@ } }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -15260,12 +16182,41 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -15313,9 +16264,9 @@ "dev": true }, "node_modules/is-callable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.6.tgz", - "integrity": "sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" @@ -15325,12 +16276,12 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15437,6 +16388,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -15491,6 +16454,39 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -15500,6 +16496,15 @@ "node": ">=8" } }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -15578,6 +16583,15 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -15631,6 +16645,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -15745,6 +16768,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -15757,6 +16789,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -15889,6 +16934,19 @@ "url": "https://bevry.me/fund" } }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, "node_modules/jackspeak": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.2.tgz", @@ -17633,12 +18691,6 @@ "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" }, - "node_modules/js-sdsl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", - "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", - "dev": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -17864,6 +18916,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -17913,13 +18971,15 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" }, "engines": { "node": ">=4.0" @@ -17942,6 +19002,15 @@ "katex": "cli.js" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -17961,11 +19030,29 @@ } }, "node_modules/known-css-properties": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", - "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", + "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "dev": true + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/last-run": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", @@ -18355,12 +19442,15 @@ } }, "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/map-or-similar": { @@ -18651,28 +19741,201 @@ "node": ">= 4.0.0" } }, - "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", - "dev": true - }, - "node_modules/memoizerific": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", - "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "dev": true + }, + "node_modules/memoizerific": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", + "dev": true, + "dependencies": { + "map-or-similar": "^1.5.0" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, "dependencies": { - "map-or-similar": "^1.5.0" + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "node_modules/meow/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, "engines": { - "node": ">= 0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/merge-descriptors": { @@ -18909,24 +20172,6 @@ "node": ">= 6" } }, - "node_modules/minimist-options/node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/minimist-options/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -19067,9 +20312,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -19511,9 +20756,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -19590,28 +20835,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -19620,14 +20865,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", "dev": true, "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -19672,14 +20929,14 @@ } }, "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -20390,9 +21647,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -20409,7 +21666,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -20505,25 +21762,35 @@ } }, "node_modules/postcss-scss": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.2.tgz", - "integrity": "sha512-xfdkU128CkKKKVAwkyt0M8OdnelJ3MRcIRAPPQkRpoPeuzWY3RIeg7piRCpZ79MK7Q16diLXMMAD9dN5mauPlQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { - "postcss": "^8.3.3" + "postcss": "^8.4.29" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz", + "integrity": "sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20534,12 +21801,12 @@ } }, "node_modules/postcss-sorting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", - "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz", + "integrity": "sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==", "dev": true, "peerDependencies": { - "postcss": "^8.3.9" + "postcss": "^8.4.20" } }, "node_modules/postcss-value-parser": { @@ -20558,15 +21825,15 @@ } }, "node_modules/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -21010,12 +22277,15 @@ ] }, "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ramda": { @@ -21421,6 +22691,69 @@ "node": ">= 0.10" } }, + "node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent/node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -21440,9 +22773,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.1", @@ -21466,15 +22799,24 @@ "node": ">=0.10.0" } }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -21483,18 +22825,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -21794,6 +23124,15 @@ "node": ">= 0.10" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -21870,6 +23209,21 @@ "@babel/runtime": "^7.1.2" } }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -21893,6 +23247,30 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -21908,6 +23286,20 @@ "ret": "~0.1.10" } }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -22236,6 +23628,35 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-harmonic-interval": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz", @@ -22859,18 +24280,19 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", "side-channel": "^1.0.4" }, "funding": { @@ -22894,29 +24316,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -23012,120 +24451,106 @@ "dev": true }, "node_modules/stylelint": { - "version": "14.13.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.13.0.tgz", - "integrity": "sha512-NJSAdloiAB/jgVJKxMR90mWlctvmeBFGFVUvyKngi9+j/qPSJ5ZB+u8jOmGbLTnS7OHrII9NFGehPRyar8U5vg==", + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz", + "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==", "dev": true, "dependencies": { - "@csstools/selector-specificity": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0", + "@csstools/media-query-list-parser": "^2.1.4", + "@csstools/selector-specificity": "^3.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^7.0.1", - "css-functions-list": "^3.1.0", + "cosmiconfig": "^8.2.0", + "css-functions-list": "^3.2.1", + "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.1", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^7.0.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.0", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.25.0", + "known-css-properties": "^0.29.0", "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", + "meow": "^10.1.5", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.16", - "postcss-media-query-parser": "^0.2.3", + "postcss": "^8.4.28", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.10", + "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", - "table": "^6.8.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.2" + "table": "^6.8.1", + "write-file-atomic": "^5.0.1" }, "bin": { - "stylelint": "bin/stylelint.js" + "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.13.1 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/stylelint" } }, - "node_modules/stylelint-config-prettier": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", - "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", - "dev": true, - "bin": { - "stylelint-config-prettier": "bin/check.js", - "stylelint-config-prettier-check": "bin/check.js" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "stylelint": ">=11.0.0" - } - }, "node_modules/stylelint-order": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz", - "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.4.tgz", + "integrity": "sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==", "dev": true, "dependencies": { - "postcss": "^8.3.11", - "postcss-sorting": "^7.0.1" + "postcss": "^8.4.32", + "postcss-sorting": "^8.0.2" }, "peerDependencies": { - "stylelint": "^14.0.0" + "stylelint": "^14.0.0 || ^15.0.0 || ^16.0.1" } }, "node_modules/stylelint-prettier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-2.0.0.tgz", - "integrity": "sha512-jvT3G+9lopkeB0ARmDPszyfaOnvnIF+30QCjZxyt7E6fynI1T9mOKgYDNb9bXX17M7PXMZaX3j/26wqakjp1tw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-4.1.0.tgz", + "integrity": "sha512-dd653q/d1IfvsSQshz1uAMe+XDm6hfM/7XiFH0htYY8Lse/s5ERTg7SURQehZPwVvm/rs7AsFhda9EQ2E9TS0g==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.17.0 || >=16.0.0" }, "peerDependencies": { - "prettier": ">=2.0.0", - "stylelint": ">=14.0.0" + "prettier": ">=3.0.0", + "stylelint": ">=15.8.0" } }, "node_modules/stylelint-scss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.0.0.tgz", - "integrity": "sha512-lIRhPqtI6I065EJ6aI4mWKsmQt8Krnu6aF9XSL9s8Nd2f/cDKImST0T9TfjnUul3ReKYWozkG9dlpNTZH2FB9w==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.3.2.tgz", + "integrity": "sha512-4LzLaayFhFyneJwLo0IUa8knuIvj+zF0vBFueQs4e3tEaAMIQX8q5th8ziKkgOavr6y/y9yoBe+RXN/edwLzsQ==", "dev": true, "dependencies": { - "lodash": "^4.17.15", + "known-css-properties": "^0.29.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0" }, "peerDependencies": { - "stylelint": "^14.0.0" + "stylelint": "^14.5.1 || ^15.0.0" } }, "node_modules/stylelint/node_modules/balanced-match": { @@ -23134,21 +24559,55 @@ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, - "node_modules/stylelint/node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/stylelint/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", + "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", + "dev": true, + "dependencies": { + "flat-cache": "^3.2.0" + }, + "engines": { + "node": ">=12.0.0" } }, "node_modules/stylelint/node_modules/global-modules": { @@ -23177,55 +24636,23 @@ "node": ">=6" } }, - "node_modules/stylelint/node_modules/hosted-git-info": { + "node_modules/stylelint/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylelint/node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" + "argparse": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/stylelint/node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/stylelint/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true }, "node_modules/stylelint/node_modules/micromatch": { "version": "4.0.5", @@ -23240,66 +24667,57 @@ "node": ">=8.6" } }, - "node_modules/stylelint/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/stylelint/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/stylelint/node_modules/redent": { + "node_modules/stylelint/node_modules/supports-hyperlinks": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/stylelint/node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=14.18" } }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/stylelint/node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, - "engines": { - "node": ">=10" + "optional": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=14.17" } }, "node_modules/stylelint/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/stylis": { @@ -23444,6 +24862,22 @@ "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==", "dev": true }, + "node_modules/synckit": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.7.tgz", + "integrity": "sha512-Ic2DW4WMr0gJ7z9rXYGlWPNBVzmsIZLFfKeVhmuVBUtw6ZOFB1GZnCcWQLc7OuBFLVLHKFAdaIZNc/yyUEvZ1g==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", @@ -23451,9 +24885,9 @@ "dev": true }, "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -23856,6 +25290,18 @@ "integrity": "sha512-Xhpo6tCvUOyVq7BmJh/WDi+9qFh5AtuUqbKoMG5vpG+PT6JLPGE9D5hl9kZlj1ZqsgHuGb1OrNAXoHh8qIDpjA==", "dev": true }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -23997,6 +25443,30 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, + "node_modules/trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-dedent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", @@ -24096,31 +25566,43 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { - "tslib": "^1.8.1" + "minimist": "^1.2.0" }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, "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" + "node": ">=4" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/type": { "version": "1.2.0", @@ -24174,6 +25656,71 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -24640,12 +26187,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", @@ -25084,6 +26625,53 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", @@ -25091,13 +26679,13 @@ "dev": true }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" diff --git a/package.json b/package.json index 78a08b62..464d13ae 100644 --- a/package.json +++ b/package.json @@ -107,9 +107,9 @@ "devDependencies": { "@diplodoc/transform": "4.5.0", "@gravity-ui/components": "2.0.0", - "@gravity-ui/eslint-config": "1.0.2", - "@gravity-ui/prettier-config": "1.0.1", - "@gravity-ui/stylelint-config": "1.0.1", + "@gravity-ui/eslint-config": "3.1.1", + "@gravity-ui/prettier-config": "1.1.0", + "@gravity-ui/stylelint-config": "4.0.1", "@gravity-ui/tsconfig": "1.0.0", "@gravity-ui/uikit": "5.0.2", "@storybook/addon-essentials": "^7.1.1", @@ -125,7 +125,8 @@ "@types/react-dom": "18.0.11", "@types/rimraf": "3.0.2", "esbuild-sass-plugin": "2.15.0", - "eslint": "8.24.0", + "eslint": "8.56.0", + "eslint-plugin-lodash": "7.4.0", "gulp": "4.0.2", "gulp-cli": "2.3.0", "gulp-concat": "2.6.1", @@ -138,14 +139,14 @@ "markdown-it-testgen": "^0.1.6", "npm-run-all": "^4.1.5", "postcss": "^8.4.27", - "prettier": "2.7.1", + "prettier": "3.1.1", "prosemirror-dev-toolkit": "1.1.5", "react": "18.2.0", "react-dom": "18.2.0", "rimraf": "3.0.2", "sass": "^1.64.1", "sass-loader": "^13.3.2", - "stylelint": "14.13.0", + "stylelint": "15.11.0", "ts-jest": "^27.0.7", "typescript": "^4.5.2" }, diff --git a/src/commands/join.test.ts b/src/commands/join.test.ts index 239096c7..4d7f483e 100644 --- a/src/commands/join.test.ts +++ b/src/commands/join.test.ts @@ -1,20 +1,20 @@ import {Node} from 'prosemirror-model'; -import {EditorState, TextSelection, Transaction, Selection, Command} from 'prosemirror-state'; +import {Command, EditorState, Selection, TextSelection, Transaction} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; import {ExtensionsManager} from '../core'; -import {get$Cursor, isNodeSelection} from '../utils/selection'; import {BaseNode, BaseSpecsPreset} from '../extensions/base/specs'; import { - blockquoteNodeName, BlockquoteSpecs, - isBlockqouteNode, DeflistNode, DeflistSpecs, + Html, HtmlAttr, HtmlNode, - Html, + blockquoteNodeName, + isBlockqouteNode, } from '../extensions/markdown/specs'; +import {get$Cursor, isNodeSelection} from '../utils/selection'; import {joinPreviousBlock} from './join'; diff --git a/src/commands/join.ts b/src/commands/join.ts index 8a45219a..3f5d5b4e 100644 --- a/src/commands/join.ts +++ b/src/commands/join.ts @@ -1,6 +1,7 @@ import type {Node} from 'prosemirror-model'; import {Command, NodeSelection, TextSelection} from 'prosemirror-state'; -import {getLastChildOfNode, NodeChild} from '../utils/nodes'; + +import {NodeChild, getLastChildOfNode} from '../utils/nodes'; import {get$CursorAtBlockStart} from '../utils/selection'; export type JoinPreviousBlockParams = { diff --git a/src/core/ContentHandler.test.ts b/src/core/ContentHandler.test.ts index 878489b6..6656066e 100644 --- a/src/core/ContentHandler.test.ts +++ b/src/core/ContentHandler.test.ts @@ -1,8 +1,10 @@ import {Schema} from 'prosemirror-model'; -import {EditorView} from 'prosemirror-view'; import {EditorState, TextSelection} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; +import {EditorView} from 'prosemirror-view'; + import {get$Cursor} from '../utils/selection'; + import {WysiwygContentHandler} from './ContentHandler'; import type {Parser} from './types/parser'; diff --git a/src/core/ContentHandler.ts b/src/core/ContentHandler.ts index 6805008a..6406e74b 100644 --- a/src/core/ContentHandler.ts +++ b/src/core/ContentHandler.ts @@ -1,7 +1,9 @@ import {Slice} from 'prosemirror-model'; import {AllSelection, TextSelection, Transaction} from 'prosemirror-state'; import type {EditorView} from 'prosemirror-view'; + import type {ContentHandler, MarkupString} from '../common'; + import type {Parser} from './types/parser'; export class WysiwygContentHandler implements ContentHandler { diff --git a/src/core/Editor.ts b/src/core/Editor.ts index e3824721..be66770a 100644 --- a/src/core/Editor.ts +++ b/src/core/Editor.ts @@ -1,15 +1,16 @@ -import {EditorView} from 'prosemirror-view'; import {EditorState} from 'prosemirror-state'; +import {EditorView} from 'prosemirror-view'; import type {CommonEditor, ContentHandler, MarkupString} from '../common'; -import type {Extension} from './types/extension'; -import {bindActions} from './utils/actions'; -import type {Serializer} from './types/serializer'; -import type {Parser} from './types/parser'; -import {ExtensionsManager} from './ExtensionsManager'; -import type {ActionStorage} from './types/actions'; + import type {ActionsManager} from './ActionsManager'; import {WysiwygContentHandler} from './ContentHandler'; +import {ExtensionsManager} from './ExtensionsManager'; +import type {ActionStorage} from './types/actions'; +import type {Extension} from './types/extension'; +import type {Parser} from './types/parser'; +import type {Serializer} from './types/serializer'; +import {bindActions} from './utils/actions'; import {logTransactionMetrics} from './utils/metrics'; type OnChange = (editor: YfmEditor) => void; diff --git a/src/core/ExtensionBuilder.test.ts b/src/core/ExtensionBuilder.test.ts index f630bb7a..b9630bc5 100644 --- a/src/core/ExtensionBuilder.test.ts +++ b/src/core/ExtensionBuilder.test.ts @@ -1,4 +1,5 @@ import {Plugin} from 'prosemirror-state'; + import {ExtensionBuilder} from './ExtensionBuilder'; import type {ExtensionDeps, YEMarkSpec} from './types/extension'; diff --git a/src/core/ExtensionBuilder.ts b/src/core/ExtensionBuilder.ts index 80ebbb41..65cab140 100644 --- a/src/core/ExtensionBuilder.ts +++ b/src/core/ExtensionBuilder.ts @@ -1,19 +1,19 @@ -import OrderedMap from 'orderedmap'; import type MarkdownIt from 'markdown-it'; -import type {Plugin} from 'prosemirror-state'; -import {keymap} from 'prosemirror-keymap'; +import OrderedMap from 'orderedmap'; // eslint-disable-line import/no-extraneous-dependencies import {inputRules} from 'prosemirror-inputrules'; +import {keymap} from 'prosemirror-keymap'; +import type {Plugin} from 'prosemirror-state'; -import type {Keymap} from './types/keymap'; import type {ActionSpec} from './types/actions'; import type { Extension, - ExtensionWithOptions, ExtensionDeps, ExtensionSpec, + ExtensionWithOptions, YEMarkSpec, YENodeSpec, } from './types/extension'; +import type {Keymap} from './types/keymap'; type InputRulesConfig = Parameters[0]; type ExtensionWithParams = (builder: ExtensionBuilder, ...params: any[]) => void; @@ -164,10 +164,13 @@ export class ExtensionBuilder { }, []); }, actions: (deps) => - actions.reduce((obj, [name, cb]) => { - obj[name] = cb(deps); - return obj; - }, {} as Record), + actions.reduce( + (obj, [name, cb]) => { + obj[name] = cb(deps); + return obj; + }, + {} as Record, + ), }; } } diff --git a/src/core/ExtensionsManager.ts b/src/core/ExtensionsManager.ts index a172e77b..2971e169 100644 --- a/src/core/ExtensionsManager.ts +++ b/src/core/ExtensionsManager.ts @@ -1,6 +1,7 @@ import MarkdownIt from 'markdown-it'; -import attrsPlugin, {AttrsOptions} from 'markdown-it-attrs'; +import attrsPlugin, {AttrsOptions} from 'markdown-it-attrs'; // eslint-disable-line import/no-extraneous-dependencies import type {Plugin} from 'prosemirror-state'; + import {ActionsManager} from './ActionsManager'; import {ExtensionBuilder} from './ExtensionBuilder'; import {ParserTokensRegistry} from './ParserTokensRegistry'; diff --git a/src/core/ParserTokensRegistry.ts b/src/core/ParserTokensRegistry.ts index a35ce576..6adc284d 100644 --- a/src/core/ParserTokensRegistry.ts +++ b/src/core/ParserTokensRegistry.ts @@ -1,7 +1,8 @@ import type MarkdownIt from 'markdown-it'; import type {Schema} from 'prosemirror-model'; -import type {Parser, ParserToken} from './types/parser'; + import {MarkdownParser} from './markdown/MarkdownParser'; +import type {Parser, ParserToken} from './types/parser'; export class ParserTokensRegistry { #tokens: Record = {}; diff --git a/src/core/SerializerTokensRegistry.ts b/src/core/SerializerTokensRegistry.ts index 4fa78d86..dabd0156 100644 --- a/src/core/SerializerTokensRegistry.ts +++ b/src/core/SerializerTokensRegistry.ts @@ -1,5 +1,5 @@ import {MarkdownSerializer} from './markdown/MarkdownSerializer'; -import type {SerializerMarkToken, SerializerNodeToken, Serializer} from './types/serializer'; +import type {Serializer, SerializerMarkToken, SerializerNodeToken} from './types/serializer'; export class SerializerTokensRegistry { #nodes: Record = {}; diff --git a/src/core/markdown/Markdown.test.ts b/src/core/markdown/Markdown.test.ts index 8cfcbbbe..f8c38374 100644 --- a/src/core/markdown/Markdown.test.ts +++ b/src/core/markdown/Markdown.test.ts @@ -4,9 +4,11 @@ import MarkdownIt from 'markdown-it'; import * as builder from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../tests/sameMarkup'; import type {Parser} from '../types/parser'; import type {SerializerNodeToken} from '../types/serializer'; + import {MarkdownParser} from './MarkdownParser'; import {MarkdownSerializer} from './MarkdownSerializer'; diff --git a/src/core/markdown/MarkdownParser.test.ts b/src/core/markdown/MarkdownParser.test.ts index ecac8a4f..622e3c74 100644 --- a/src/core/markdown/MarkdownParser.test.ts +++ b/src/core/markdown/MarkdownParser.test.ts @@ -1,8 +1,9 @@ import MarkdownIt from 'markdown-it'; import type {Node} from 'prosemirror-model'; -import {schema, doc, p, br as hardBreak} from 'prosemirror-test-builder'; +import {doc, br as hardBreak, p, schema} from 'prosemirror-test-builder'; import type {Parser} from '../types/parser'; + import {MarkdownParser} from './MarkdownParser'; const md = MarkdownIt('commonmark', {html: false, breaks: true}); diff --git a/src/core/markdown/MarkdownParser.ts b/src/core/markdown/MarkdownParser.ts index ce9f4fbc..2654f2a1 100644 --- a/src/core/markdown/MarkdownParser.ts +++ b/src/core/markdown/MarkdownParser.ts @@ -1,9 +1,10 @@ -import type {Match} from 'linkify-it'; +import type {Match} from 'linkify-it'; // eslint-disable-line import/no-extraneous-dependencies import type MarkdownIt from 'markdown-it'; import type Token from 'markdown-it/lib/token'; import {Mark, MarkType, Node, NodeType, Schema} from 'prosemirror-model'; -import type {Parser, ParserToken} from '../types/parser'; + import {logger} from '../../logger'; +import type {Parser, ParserToken} from '../types/parser'; type TokenAttrs = {[name: string]: unknown}; diff --git a/src/core/types/extension.ts b/src/core/types/extension.ts index 8866854b..e351419e 100644 --- a/src/core/types/extension.ts +++ b/src/core/types/extension.ts @@ -1,13 +1,14 @@ -import type OrderedMap from 'orderedmap'; import type MarkdownIt from 'markdown-it'; -import type {Plugin} from 'prosemirror-state'; +import type OrderedMap from 'orderedmap'; // eslint-disable-line import/no-extraneous-dependencies import type {MarkSpec, NodeSpec, Schema} from 'prosemirror-model'; +import type {Plugin} from 'prosemirror-state'; import type {ExtensionBuilder} from '../ExtensionBuilder'; + import type {ActionSpec, ActionStorage} from './actions'; import type {MarkViewConstructor, NodeViewConstructor} from './node-views'; import type {Parser, ParserToken} from './parser'; -import type {Serializer, SerializerNodeToken, SerializerMarkToken} from './serializer'; +import type {Serializer, SerializerMarkToken, SerializerNodeToken} from './serializer'; export type Extension = (builder: ExtensionBuilder) => void; export type ExtensionWithOptions = (builder: ExtensionBuilder, options: T) => void; diff --git a/src/core/types/node-views.ts b/src/core/types/node-views.ts index 4b8504ff..7b700848 100644 --- a/src/core/types/node-views.ts +++ b/src/core/types/node-views.ts @@ -1,3 +1,3 @@ -import type {NodeViewConstructor, MarkViewConstructor} from 'prosemirror-view'; +import type {MarkViewConstructor, NodeViewConstructor} from 'prosemirror-view'; export type {NodeViewConstructor, MarkViewConstructor}; diff --git a/src/core/types/parser.ts b/src/core/types/parser.ts index 03c7db94..b2b24cff 100644 --- a/src/core/types/parser.ts +++ b/src/core/types/parser.ts @@ -1,4 +1,4 @@ -import type {Match} from 'linkify-it'; +import type {Match} from 'linkify-it'; // eslint-disable-line import/no-extraneous-dependencies import type Token from 'markdown-it/lib/token'; import type {Node} from 'prosemirror-model'; diff --git a/src/core/types/serializer.ts b/src/core/types/serializer.ts index 6f169581..c44e586c 100644 --- a/src/core/types/serializer.ts +++ b/src/core/types/serializer.ts @@ -1,4 +1,5 @@ import type {Fragment, Mark, Node} from 'prosemirror-model'; + import type {MarkdownSerializerState as SerializerState} from '../markdown/MarkdownSerializer'; export type {MarkdownSerializerState as SerializerState} from '../markdown/MarkdownSerializer'; diff --git a/src/core/utils/actions.test.ts b/src/core/utils/actions.test.ts index bc5fcea9..90f83383 100644 --- a/src/core/utils/actions.test.ts +++ b/src/core/utils/actions.test.ts @@ -2,9 +2,9 @@ * @jest-environment jsdom */ -import {EditorView} from 'prosemirror-view'; -import {schema} from 'prosemirror-test-builder'; import {EditorState} from 'prosemirror-state'; +import {schema} from 'prosemirror-test-builder'; +import {EditorView} from 'prosemirror-view'; import {bindActions} from './actions'; diff --git a/src/core/utils/actions.ts b/src/core/utils/actions.ts index c1defc63..67382f4e 100644 --- a/src/core/utils/actions.ts +++ b/src/core/utils/actions.ts @@ -1,17 +1,21 @@ import type {EditorView} from 'prosemirror-view'; -import type {ActionSpec, Action} from '../types/actions'; + +import type {Action, ActionSpec} from '../types/actions'; export function bindActions(rawActions: Record) { return function (view: EditorView): Record>> { - return Object.entries(rawActions).reduce((acc, [key, spec]) => { - acc[key as Keys] = { - isActive: () => spec.isActive?.(view.state) ?? false, - isEnable: (arg) => spec.isEnable(view.state, undefined, view, arg), - run: (arg) => spec.run(view.state, view.dispatch, view, arg), - meta: () => spec.meta?.(view.state), - }; + return Object.entries(rawActions).reduce( + (acc, [key, spec]) => { + acc[key as Keys] = { + isActive: () => spec.isActive?.(view.state) ?? false, + isEnable: (arg) => spec.isEnable(view.state, undefined, view, arg), + run: (arg) => spec.run(view.state, view.dispatch, view, arg), + meta: () => spec.meta?.(view.state), + }; - return acc; - }, {} as Record>>); + return acc; + }, + {} as Record>>, + ); }; } diff --git a/src/core/utils/metrics.ts b/src/core/utils/metrics.ts index aa450c8c..fcc4357f 100644 --- a/src/core/utils/metrics.ts +++ b/src/core/utils/metrics.ts @@ -1,4 +1,5 @@ import type {Transaction} from 'prosemirror-state'; + import {logger} from '../../logger'; const METRICS_KEY = 'metrics'; diff --git a/src/extensions/base/BaseInputRules/index.ts b/src/extensions/base/BaseInputRules/index.ts index 62d285ce..94ffd0ee 100644 --- a/src/extensions/base/BaseInputRules/index.ts +++ b/src/extensions/base/BaseInputRules/index.ts @@ -1,4 +1,5 @@ import {ellipsis, smartQuotes} from 'prosemirror-inputrules'; + import type {ExtensionAuto} from '../../../core'; export const BaseInputRules: ExtensionAuto = (builder) => { diff --git a/src/extensions/base/BaseKeymap/index.ts b/src/extensions/base/BaseKeymap/index.ts index b9f8567e..58ef28d0 100644 --- a/src/extensions/base/BaseKeymap/index.ts +++ b/src/extensions/base/BaseKeymap/index.ts @@ -1,5 +1,6 @@ -import {undoInputRule} from 'prosemirror-inputrules'; import {baseKeymap, joinDown, joinUp, lift, selectParentNode} from 'prosemirror-commands'; +import {undoInputRule} from 'prosemirror-inputrules'; + import type {ExtensionAuto} from '../../../core'; /** diff --git a/src/extensions/base/BaseSchema/BaseSchema.test.ts b/src/extensions/base/BaseSchema/BaseSchema.test.ts index 303e533d..cbed2b19 100644 --- a/src/extensions/base/BaseSchema/BaseSchema.test.ts +++ b/src/extensions/base/BaseSchema/BaseSchema.test.ts @@ -1,6 +1,8 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; + import {BaseNode, BaseSchemaSpecs} from './BaseSchemaSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ diff --git a/src/extensions/base/BaseSchema/BaseSchemaSpecs/index.ts b/src/extensions/base/BaseSchema/BaseSchemaSpecs/index.ts index a52a9ce5..313991d8 100644 --- a/src/extensions/base/BaseSchema/BaseSchemaSpecs/index.ts +++ b/src/extensions/base/BaseSchema/BaseSchemaSpecs/index.ts @@ -1,4 +1,5 @@ import type {NodeSpec} from 'prosemirror-model'; + import type {ExtensionAuto} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/base/BaseSchema/index.ts b/src/extensions/base/BaseSchema/index.ts index 5202783d..9848bfe4 100644 --- a/src/extensions/base/BaseSchema/index.ts +++ b/src/extensions/base/BaseSchema/index.ts @@ -1,8 +1,10 @@ -import type {Command} from 'prosemirror-state'; import {setBlockType} from 'prosemirror-commands'; +import type {Command} from 'prosemirror-state'; import {hasParentNodeOfType} from 'prosemirror-utils'; + import type {Action, ExtensionAuto} from '../../../core'; import {withLogAction} from '../../../utils/keymap'; + import {BaseSchemaSpecs, BaseSchemaSpecsOptions, pType} from './BaseSchemaSpecs'; export {BaseNode, pType} from './BaseSchemaSpecs'; diff --git a/src/extensions/base/BaseStyles/index.ts b/src/extensions/base/BaseStyles/index.ts index 1d4cc0d2..d3ccf09b 100644 --- a/src/extensions/base/BaseStyles/index.ts +++ b/src/extensions/base/BaseStyles/index.ts @@ -1,4 +1,5 @@ import {Plugin} from 'prosemirror-state'; + import type {ExtensionAuto} from '../../../core'; import './index.scss'; diff --git a/src/extensions/base/index.ts b/src/extensions/base/index.ts index c442452f..38a4c13b 100644 --- a/src/extensions/base/index.ts +++ b/src/extensions/base/index.ts @@ -1,8 +1,8 @@ import type {ExtensionAuto} from '../../core'; -import {BaseSchema, BaseSchemaOptions} from './BaseSchema'; import {BaseInputRules} from './BaseInputRules'; import {BaseKeymap} from './BaseKeymap'; +import {BaseSchema, BaseSchemaOptions} from './BaseSchema'; import {BaseStyles} from './BaseStyles'; export * from './BaseSchema'; diff --git a/src/extensions/behavior/Clipboard/clipboard.ts b/src/extensions/behavior/Clipboard/clipboard.ts index 2df00a2d..6383da09 100644 --- a/src/extensions/behavior/Clipboard/clipboard.ts +++ b/src/extensions/behavior/Clipboard/clipboard.ts @@ -1,13 +1,12 @@ -import type {EditorView} from 'prosemirror-view'; import {Fragment, Schema, Slice} from 'prosemirror-model'; -import {EditorState, Selection, Plugin} from 'prosemirror-state'; - -import '../../../types/spec'; +import {EditorState, Plugin, Selection} from 'prosemirror-state'; +import type {EditorView} from 'prosemirror-view'; +import {Parser, Serializer, trackTransactionMetrics} from '../../../core'; import {logger} from '../../../logger'; +import '../../../types/spec'; import {tryCatch} from '../../../utils/helpers'; -import {Parser, Serializer, trackTransactionMetrics} from '../../../core'; -import {isTextSelection, isNodeSelection, isWholeSelection} from '../../../utils/selection'; +import {isNodeSelection, isTextSelection, isWholeSelection} from '../../../utils/selection'; import {serializeForClipboard} from '../../../utils/serialize-for-clipboard'; import {BaseNode, pType} from '../../base/BaseSchema'; diff --git a/src/extensions/behavior/Clipboard/index.ts b/src/extensions/behavior/Clipboard/index.ts index 1ba15044..cb85425d 100644 --- a/src/extensions/behavior/Clipboard/index.ts +++ b/src/extensions/behavior/Clipboard/index.ts @@ -1,5 +1,6 @@ import type {ExtensionAuto} from '../../../core'; -import {clipboard, ClipboardPluginOptions} from './clipboard'; + +import {ClipboardPluginOptions, clipboard} from './clipboard'; import * as clipboardUtils from './utils'; export {clipboardUtils}; diff --git a/src/extensions/behavior/Cursor/GapCursorSelection.ts b/src/extensions/behavior/Cursor/GapCursorSelection.ts index 5a5ff5e3..b10a35d3 100644 --- a/src/extensions/behavior/Cursor/GapCursorSelection.ts +++ b/src/extensions/behavior/Cursor/GapCursorSelection.ts @@ -1,5 +1,5 @@ -import {Selection} from 'prosemirror-state'; import type {Node, ResolvedPos} from 'prosemirror-model'; +import {Selection} from 'prosemirror-state'; import type {Mapping} from 'prosemirror-transform'; export function isGapCursorSelection(selection: Selection): selection is GapCursorSelection { diff --git a/src/extensions/behavior/Cursor/gapcursor.ts b/src/extensions/behavior/Cursor/gapcursor.ts index 562044a0..65b393d1 100644 --- a/src/extensions/behavior/Cursor/gapcursor.ts +++ b/src/extensions/behavior/Cursor/gapcursor.ts @@ -1,10 +1,11 @@ import {DOMSerializer} from 'prosemirror-model'; -import {Decoration, DecorationSet, EditorView} from 'prosemirror-view'; import {EditorState, Plugin, PluginKey} from 'prosemirror-state'; +import {Decoration, DecorationSet, EditorView} from 'prosemirror-view'; import {isNodeSelection} from '../../../utils/selection'; import {pType} from '../../base/BaseSchema'; import {createPlaceholder} from '../../behavior/Placeholder'; + import {isGapCursorSelection} from './GapCursorSelection'; import './gapcursor.scss'; diff --git a/src/extensions/behavior/Cursor/index.ts b/src/extensions/behavior/Cursor/index.ts index 3924aba3..08503a59 100644 --- a/src/extensions/behavior/Cursor/index.ts +++ b/src/extensions/behavior/Cursor/index.ts @@ -1,5 +1,7 @@ import {dropCursor} from 'prosemirror-dropcursor'; + import type {ExtensionAuto} from '../../../core'; + import {gapCursor} from './gapcursor'; export {GapCursorSelection, isGapCursorSelection} from './GapCursorSelection'; diff --git a/src/extensions/behavior/History/index.ts b/src/extensions/behavior/History/index.ts index 3f01da41..e3fe8be9 100644 --- a/src/extensions/behavior/History/index.ts +++ b/src/extensions/behavior/History/index.ts @@ -1,5 +1,6 @@ -import type {Command} from 'prosemirror-state'; import {history, redo, undo} from 'prosemirror-history'; +import type {Command} from 'prosemirror-state'; + import type {Action, ActionSpec, ExtensionAuto, Keymap} from '../../../core'; import {withLogAction} from '../../../utils/keymap'; diff --git a/src/extensions/behavior/Placeholder/index.ts b/src/extensions/behavior/Placeholder/index.ts index f8263003..e3de2bbb 100644 --- a/src/extensions/behavior/Placeholder/index.ts +++ b/src/extensions/behavior/Placeholder/index.ts @@ -1,13 +1,14 @@ +import isEqual from 'lodash/isEqual'; import type {Node, Schema} from 'prosemirror-model'; import {EditorState, Plugin, PluginKey, Transaction} from 'prosemirror-state'; -import isEqual from 'lodash/isEqual'; -import {Decoration, DecorationSet} from 'prosemirror-view'; import {findChildren, findParentNodeClosestToPos} from 'prosemirror-utils'; +import {Decoration, DecorationSet} from 'prosemirror-view'; + import {cn} from '../../../classname'; import type {ExtensionAuto} from '../../../core'; import {isNodeEmpty} from '../../../utils/nodes'; +import {PlaceholderOptions, getPlaceholderContent} from '../../../utils/placeholder'; import {isTextSelection} from '../../../utils/selection'; -import {getPlaceholderContent, PlaceholderOptions} from '../../../utils/placeholder'; import './index.scss'; diff --git a/src/extensions/behavior/ReactRenderer/index.ts b/src/extensions/behavior/ReactRenderer/index.ts index a9080528..8d0cba83 100644 --- a/src/extensions/behavior/ReactRenderer/index.ts +++ b/src/extensions/behavior/ReactRenderer/index.ts @@ -1,13 +1,15 @@ import {EditorState, Plugin, PluginKey} from 'prosemirror-state'; + import type {ExtensionAuto} from '../../../core'; import {EventEmitter} from '../../../utils/event-emitter'; + import { - Renderer, - RendererItem, RenderStorage, RenderStorageEventMap, RenderStorageItem, RenderStorageItemEventMap, + Renderer, + RendererItem, } from './types'; export type {RendererItem, RenderStorage} from './types'; diff --git a/src/extensions/behavior/ReactRenderer/react.tsx b/src/extensions/behavior/ReactRenderer/react.tsx index 73f3c40b..631926a9 100644 --- a/src/extensions/behavior/ReactRenderer/react.tsx +++ b/src/extensions/behavior/ReactRenderer/react.tsx @@ -1,5 +1,7 @@ import React, {memo, useEffect} from 'react'; + import {useUpdate} from 'react-use'; + import {RenderStorage, RenderStorageItem} from './types'; export type RendererProps = { diff --git a/src/extensions/behavior/Selection/commands.ts b/src/extensions/behavior/Selection/commands.ts index f6e99d3b..93cef1c8 100644 --- a/src/extensions/behavior/Selection/commands.ts +++ b/src/extensions/behavior/Selection/commands.ts @@ -4,7 +4,6 @@ import {Selection} from 'prosemirror-state'; import {isCodeBlock} from '../../../utils/nodes'; import {isNodeSelection, isTextSelection} from '../../../utils/selection'; - import {GapCursorSelection, isGapCursorSelection} from '../Cursor/GapCursorSelection'; export type Direction = 'before' | 'after'; diff --git a/src/extensions/behavior/Selection/index.ts b/src/extensions/behavior/Selection/index.ts index 45975e43..019ca579 100644 --- a/src/extensions/behavior/Selection/index.ts +++ b/src/extensions/behavior/Selection/index.ts @@ -1,4 +1,5 @@ import type {ExtensionAuto} from '../../../core'; + import {selection} from './selection'; export { diff --git a/src/extensions/behavior/Selection/selection.ts b/src/extensions/behavior/Selection/selection.ts index 90a13f25..4c832d18 100644 --- a/src/extensions/behavior/Selection/selection.ts +++ b/src/extensions/behavior/Selection/selection.ts @@ -1,7 +1,6 @@ -import type {Node} from 'prosemirror-model'; -import {keydownHandler} from 'prosemirror-keymap'; import {selectParentNode} from 'prosemirror-commands'; -import {Decoration, DecorationSet, EditorView} from 'prosemirror-view'; +import {keydownHandler} from 'prosemirror-keymap'; +import type {Node} from 'prosemirror-model'; import { AllSelection, Command, @@ -11,9 +10,11 @@ import { TextSelection, Transaction, } from 'prosemirror-state'; +import {Decoration, DecorationSet, EditorView} from 'prosemirror-view'; import {isSelectableNode} from '../../../utils/nodes'; import {isNodeSelection} from '../../../utils/selection'; + import {arrowDown, arrowLeft, arrowRight, arrowUp, backspace} from './commands'; import './selection.scss'; diff --git a/src/extensions/behavior/index.ts b/src/extensions/behavior/index.ts index 299c0e4b..912b960d 100644 --- a/src/extensions/behavior/index.ts +++ b/src/extensions/behavior/index.ts @@ -1,12 +1,12 @@ import type {ExtensionAuto} from '../../core'; +import {PlaceholderOptions} from '../../utils/placeholder'; -import {Selection} from './Selection'; -import {Placeholder} from './Placeholder'; +import {Clipboard, ClipboardOptions} from './Clipboard'; import {Cursor, CursorOptions} from './Cursor'; import {History, HistoryOptions} from './History'; -import {Clipboard, ClipboardOptions} from './Clipboard'; -import {ReactRendererExtension, ReactRenderer} from './ReactRenderer'; -import {PlaceholderOptions} from '../../utils/placeholder'; +import {Placeholder} from './Placeholder'; +import {ReactRenderer, ReactRendererExtension} from './ReactRenderer'; +import {Selection} from './Selection'; export * from './Cursor'; export * from './History'; diff --git a/src/extensions/markdown/Blockquote/Blockquote.test.ts b/src/extensions/markdown/Blockquote/Blockquote.test.ts index ab57cdbf..6a3d747f 100644 --- a/src/extensions/markdown/Blockquote/Blockquote.test.ts +++ b/src/extensions/markdown/Blockquote/Blockquote.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {blockquoteNodeName, BlockquoteSpecs} from './BlockquoteSpecs'; + +import {BlockquoteSpecs, blockquoteNodeName} from './BlockquoteSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(BlockquoteSpecs), diff --git a/src/extensions/markdown/Blockquote/BlockquoteSpecs/index.ts b/src/extensions/markdown/Blockquote/BlockquoteSpecs/index.ts index 74c64bf9..d5e72d86 100644 --- a/src/extensions/markdown/Blockquote/BlockquoteSpecs/index.ts +++ b/src/extensions/markdown/Blockquote/BlockquoteSpecs/index.ts @@ -1,4 +1,5 @@ import type {Node} from 'prosemirror-model'; + import type {ExtensionAuto} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/markdown/Blockquote/commands.test.ts b/src/extensions/markdown/Blockquote/commands.test.ts index 9a814090..6d0fa358 100644 --- a/src/extensions/markdown/Blockquote/commands.test.ts +++ b/src/extensions/markdown/Blockquote/commands.test.ts @@ -1,14 +1,14 @@ import {Node} from 'prosemirror-model'; -import {EditorState, TextSelection, Transaction, Selection, Command} from 'prosemirror-state'; +import {Command, EditorState, Selection, TextSelection, Transaction} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; import {ExtensionsManager} from '../../../core'; import {get$Cursor, isNodeSelection} from '../../../utils/selection'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {HtmlAttr, HtmlNode, Html} from '../Html'; import {DeflistNode, DeflistSpecs} from '../Deflist/DeflistSpecs'; +import {Html, HtmlAttr, HtmlNode} from '../Html'; -import {blockquoteNodeName, BlockquoteSpecs} from './BlockquoteSpecs'; +import {BlockquoteSpecs, blockquoteNodeName} from './BlockquoteSpecs'; import {joinPrevQuote} from './commands'; const {schema} = new ExtensionsManager({ diff --git a/src/extensions/markdown/Blockquote/commands.ts b/src/extensions/markdown/Blockquote/commands.ts index d0241bcd..1446787b 100644 --- a/src/extensions/markdown/Blockquote/commands.ts +++ b/src/extensions/markdown/Blockquote/commands.ts @@ -1,10 +1,11 @@ -import type {ResolvedPos} from 'prosemirror-model'; import {lift, wrapIn} from 'prosemirror-commands'; +import type {ResolvedPos} from 'prosemirror-model'; import type {Command} from 'prosemirror-state'; -import '../../../types/spec'; import {joinPreviousBlock} from '../../../commands/join'; +import '../../../types/spec'; import {get$CursorAtBlockStart, isTextSelection} from '../../../utils/selection'; + import {bqType, isBlockqouteNode} from './const'; export const liftFromQuote: Command = (state, dispatch) => { diff --git a/src/extensions/markdown/Blockquote/index.ts b/src/extensions/markdown/Blockquote/index.ts index 7e155a2d..1a16b5b4 100644 --- a/src/extensions/markdown/Blockquote/index.ts +++ b/src/extensions/markdown/Blockquote/index.ts @@ -1,11 +1,13 @@ import {chainCommands, wrapIn} from 'prosemirror-commands'; -import type {NodeType} from 'prosemirror-model'; import {wrappingInputRule} from 'prosemirror-inputrules'; +import type {NodeType} from 'prosemirror-model'; import {hasParentNodeOfType} from 'prosemirror-utils'; + import type {Action, ExtensionAuto} from '../../../core'; import {withLogAction} from '../../../utils/keymap'; -import {liftFromQuote, toggleQuote, joinPrevQuote} from './commands'; + import {BlockquoteSpecs, blockquoteType} from './BlockquoteSpecs'; +import {joinPrevQuote, liftFromQuote, toggleQuote} from './commands'; export {blockquote, blockquoteNodeName, blockquoteType} from './const'; const bqAction = 'quote'; diff --git a/src/extensions/markdown/Bold/Bold.test.ts b/src/extensions/markdown/Bold/Bold.test.ts index 5c3ceee6..d90d7f20 100644 --- a/src/extensions/markdown/Bold/Bold.test.ts +++ b/src/extensions/markdown/Bold/Bold.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {boldMarkName, BoldSpecs} from './BoldSpecs'; + +import {BoldSpecs, boldMarkName} from './BoldSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(BoldSpecs), diff --git a/src/extensions/markdown/Bold/index.ts b/src/extensions/markdown/Bold/index.ts index 73fce5b2..f18e94bd 100644 --- a/src/extensions/markdown/Bold/index.ts +++ b/src/extensions/markdown/Bold/index.ts @@ -1,9 +1,11 @@ import {toggleMark} from 'prosemirror-commands'; -import {withLogAction} from '../../../utils/keymap'; -import {createToggleMarkAction} from '../../../utils/actions'; + import type {Action, ExtensionAuto} from '../../../core'; +import {createToggleMarkAction} from '../../../utils/actions'; import {markInputRule} from '../../../utils/inputrules'; -import {boldMarkName, BoldSpecs, boldType} from './BoldSpecs'; +import {withLogAction} from '../../../utils/keymap'; + +import {BoldSpecs, boldMarkName, boldType} from './BoldSpecs'; export {boldMarkName, boldType} from './BoldSpecs'; /** @deprecated Use `boldMarkName` instead */ diff --git a/src/extensions/markdown/Breaks/Breaks.test.ts b/src/extensions/markdown/Breaks/Breaks.test.ts index 3b206db8..8686fdbc 100644 --- a/src/extensions/markdown/Breaks/Breaks.test.ts +++ b/src/extensions/markdown/Breaks/Breaks.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; + import {parseDOM} from '../../../../tests/parse-dom'; import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; import {BoldSpecs, boldMarkName} from '../../markdown/Bold/BoldSpecs'; + import {BreakNodeName, BreaksSpecs} from './BreaksSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ diff --git a/src/extensions/markdown/Breaks/BreaksSpecs/index.ts b/src/extensions/markdown/Breaks/BreaksSpecs/index.ts index ede3543c..027af341 100644 --- a/src/extensions/markdown/Breaks/BreaksSpecs/index.ts +++ b/src/extensions/markdown/Breaks/BreaksSpecs/index.ts @@ -1,4 +1,5 @@ import type {ParseRule} from 'prosemirror-model'; + import type {ExtensionAuto} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/markdown/Breaks/index.ts b/src/extensions/markdown/Breaks/index.ts index 252cd668..0fa2d3df 100644 --- a/src/extensions/markdown/Breaks/index.ts +++ b/src/extensions/markdown/Breaks/index.ts @@ -1,13 +1,15 @@ +import {chainCommands, exitCode} from 'prosemirror-commands'; import type {Node, NodeType} from 'prosemirror-model'; import {TextSelection} from 'prosemirror-state'; -import {chainCommands, exitCode} from 'prosemirror-commands'; -import {logger} from '../../../logger'; + import type {ExtensionAuto, Keymap} from '../../../core'; +import {logger} from '../../../logger'; import {isMac} from '../../../utils/platform'; import {isTextSelection} from '../../../utils/selection'; -import {BreaksSpecs, BreaksSpecsOptions, hbType, sbType} from './BreaksSpecs'; import {pType} from '../../base/BaseSchema/BaseSchemaSpecs'; +import {BreaksSpecs, BreaksSpecsOptions, hbType, sbType} from './BreaksSpecs'; + export {BreaksSpecs, BreakNodeName, hbType, sbType} from './BreaksSpecs'; export type BreaksOptions = { diff --git a/src/extensions/markdown/Code/Code.test.ts b/src/extensions/markdown/Code/Code.test.ts index 51ee66d5..e880342a 100644 --- a/src/extensions/markdown/Code/Code.test.ts +++ b/src/extensions/markdown/Code/Code.test.ts @@ -1,11 +1,13 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {boldMarkName, BoldSpecs} from '../Bold/BoldSpecs'; -import {italicMarkName, ItalicSpecs} from '../Italic/ItalicSpecs'; -import {codeMarkName, CodeSpecs} from './CodeSpecs'; +import {BoldSpecs, boldMarkName} from '../Bold/BoldSpecs'; +import {ItalicSpecs, italicMarkName} from '../Italic/ItalicSpecs'; + +import {CodeSpecs, codeMarkName} from './CodeSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => diff --git a/src/extensions/markdown/Code/CodeSpecs/index.ts b/src/extensions/markdown/Code/CodeSpecs/index.ts index bf7e39c6..e0ef548b 100644 --- a/src/extensions/markdown/Code/CodeSpecs/index.ts +++ b/src/extensions/markdown/Code/CodeSpecs/index.ts @@ -1,4 +1,5 @@ import type {Node} from 'prosemirror-model'; + import type {ExtensionAuto} from '../../../../core'; import {markTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/markdown/Code/index.ts b/src/extensions/markdown/Code/index.ts index 04d3d8eb..964a1b77 100644 --- a/src/extensions/markdown/Code/index.ts +++ b/src/extensions/markdown/Code/index.ts @@ -1,10 +1,12 @@ -import {toggleMark} from 'prosemirror-commands'; import codemark from 'prosemirror-codemark'; +import {toggleMark} from 'prosemirror-commands'; import {Plugin} from 'prosemirror-state'; -import {withLogAction} from '../../../utils/keymap'; -import {createToggleMarkAction} from '../../../utils/actions'; + import type {Action, ExtensionAuto} from '../../../core'; -import {codeMarkName, CodeSpecs, codeType} from './CodeSpecs'; +import {createToggleMarkAction} from '../../../utils/actions'; +import {withLogAction} from '../../../utils/keymap'; + +import {CodeSpecs, codeMarkName, codeType} from './CodeSpecs'; import './code.scss'; diff --git a/src/extensions/markdown/CodeBlock/CodeBlock.test.ts b/src/extensions/markdown/CodeBlock/CodeBlock.test.ts index b951cf0a..f9964df2 100644 --- a/src/extensions/markdown/CodeBlock/CodeBlock.test.ts +++ b/src/extensions/markdown/CodeBlock/CodeBlock.test.ts @@ -1,10 +1,12 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; + import {CodeBlockSpecs} from './CodeBlockSpecs'; -import {codeBlockNodeName, codeBlockLangAttr} from './const'; +import {codeBlockLangAttr, codeBlockNodeName} from './const'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(CodeBlockSpecs, {}), diff --git a/src/extensions/markdown/CodeBlock/commands.ts b/src/extensions/markdown/CodeBlock/commands.ts index 2cc6e388..31d327ec 100644 --- a/src/extensions/markdown/CodeBlock/commands.ts +++ b/src/extensions/markdown/CodeBlock/commands.ts @@ -1,5 +1,7 @@ import type {Command} from 'prosemirror-state'; + import {toParagraph} from '../../base/BaseSchema'; + import {cbType} from './const'; export const resetCodeblock: Command = (state, dispatch, view) => { diff --git a/src/extensions/markdown/CodeBlock/handle-paste.ts b/src/extensions/markdown/CodeBlock/handle-paste.ts index 1813ae35..3c05e284 100644 --- a/src/extensions/markdown/CodeBlock/handle-paste.ts +++ b/src/extensions/markdown/CodeBlock/handle-paste.ts @@ -1,5 +1,7 @@ import type {EditorProps} from 'prosemirror-view'; + import {DataTransferType} from '../../behavior/Clipboard/utils'; + import {cbType, codeBlockLangAttr} from './const'; export const handlePaste: NonNullable = (view, e) => { @@ -24,9 +26,8 @@ function getCodeData(data: DataTransfer): null | {editor: string; mode?: string; if (isVSCode(data)) { editor = 'vscode'; - mode = tryCatch(() => - JSON.parse(data.getData(DataTransferType.VSCodeData)), - )?.mode; + mode = tryCatch(() => JSON.parse(data.getData(DataTransferType.VSCodeData))) + ?.mode; } else return null; return {editor, mode, value: data.getData(DataTransferType.Text)}; diff --git a/src/extensions/markdown/CodeBlock/index.ts b/src/extensions/markdown/CodeBlock/index.ts index 0b676859..0f6649f5 100644 --- a/src/extensions/markdown/CodeBlock/index.ts +++ b/src/extensions/markdown/CodeBlock/index.ts @@ -3,8 +3,10 @@ import {textblockTypeInputRule} from 'prosemirror-inputrules'; import {Fragment, NodeType, Slice} from 'prosemirror-model'; import {Command, Plugin} from 'prosemirror-state'; import {hasParentNodeOfType} from 'prosemirror-utils'; -import {withLogAction} from '../../../utils/keymap'; + import type {Action, ExtensionAuto, Keymap} from '../../../core'; +import {withLogAction} from '../../../utils/keymap'; + import {CodeBlockSpecs, CodeBlockSpecsOptions} from './CodeBlockSpecs'; import {resetCodeblock} from './commands'; import {cbAction, cbType} from './const'; diff --git a/src/extensions/markdown/Deflist/Deflist.test.ts b/src/extensions/markdown/Deflist/Deflist.test.ts index 40ec4f01..afd2ea3b 100644 --- a/src/extensions/markdown/Deflist/Deflist.test.ts +++ b/src/extensions/markdown/Deflist/Deflist.test.ts @@ -1,8 +1,10 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; + import {DeflistNode, DeflistSpecs} from './DeflistSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ diff --git a/src/extensions/markdown/Deflist/DeflistSpecs/fromYfm.ts b/src/extensions/markdown/Deflist/DeflistSpecs/fromYfm.ts index ac0eae77..ac476ea0 100644 --- a/src/extensions/markdown/Deflist/DeflistSpecs/fromYfm.ts +++ b/src/extensions/markdown/Deflist/DeflistSpecs/fromYfm.ts @@ -1,4 +1,5 @@ import type {ParserToken} from '../../../../core'; + import {DeflistNode} from './const'; export const fromYfm: Record = { diff --git a/src/extensions/markdown/Deflist/DeflistSpecs/index.ts b/src/extensions/markdown/Deflist/DeflistSpecs/index.ts index 4e862927..0a841056 100644 --- a/src/extensions/markdown/Deflist/DeflistSpecs/index.ts +++ b/src/extensions/markdown/Deflist/DeflistSpecs/index.ts @@ -1,7 +1,9 @@ -import deflistPlugin from 'markdown-it-deflist'; +import deflistPlugin from '@diplodoc/transform/lib/plugins/deflist'; import type {NodeSpec} from 'prosemirror-model'; + import type {ExtensionAuto} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; + import {DeflistNode} from './const'; import {fromYfm} from './fromYfm'; import {getSpec} from './spec'; diff --git a/src/extensions/markdown/Deflist/DeflistSpecs/spec.ts b/src/extensions/markdown/Deflist/DeflistSpecs/spec.ts index a52d96dc..2ecafd8f 100644 --- a/src/extensions/markdown/Deflist/DeflistSpecs/spec.ts +++ b/src/extensions/markdown/Deflist/DeflistSpecs/spec.ts @@ -1,8 +1,11 @@ import type {NodeSpec} from 'prosemirror-model'; -import type {DeflistSpecsOptions} from './index'; -import {DeflistNode} from './const'; + import {PlaceholderOptions} from '../../../../utils/placeholder'; +import {DeflistNode} from './const'; + +import type {DeflistSpecsOptions} from './index'; + const DEFAULT_PLACEHOLDERS = { Term: 'Definition term', Desc: 'Definition description', diff --git a/src/extensions/markdown/Deflist/DeflistSpecs/toYfm.ts b/src/extensions/markdown/Deflist/DeflistSpecs/toYfm.ts index 73bd25c3..ec5fee37 100644 --- a/src/extensions/markdown/Deflist/DeflistSpecs/toYfm.ts +++ b/src/extensions/markdown/Deflist/DeflistSpecs/toYfm.ts @@ -1,4 +1,5 @@ import type {SerializerNodeToken} from '../../../../core'; + import {DeflistNode} from './const'; export const toYfm: Record = { diff --git a/src/extensions/markdown/Deflist/commands.ts b/src/extensions/markdown/Deflist/commands.ts index 22f120b9..338c479f 100644 --- a/src/extensions/markdown/Deflist/commands.ts +++ b/src/extensions/markdown/Deflist/commands.ts @@ -1,6 +1,8 @@ import type {Command} from 'prosemirror-state'; import {findParentNode, replaceParentNodeOfType} from 'prosemirror-utils'; + import {isNodeSelection} from '../../../utils/selection'; + import {descType, listType, termType} from './utils'; export const wrapToDeflist: Command = (state, dispatch) => { diff --git a/src/extensions/markdown/Deflist/index.ts b/src/extensions/markdown/Deflist/index.ts index 6f0f8d4d..17f3dba7 100644 --- a/src/extensions/markdown/Deflist/index.ts +++ b/src/extensions/markdown/Deflist/index.ts @@ -1,4 +1,5 @@ import type {Action, ExtensionAuto} from '../../../core'; + import {DeflistSpecs, DeflistSpecsOptions} from './DeflistSpecs'; import {splitDeflist, wrapToDeflist} from './commands'; import {dlAction} from './const'; diff --git a/src/extensions/markdown/Heading/Heading.test.ts b/src/extensions/markdown/Heading/Heading.test.ts index 26ea8e86..4de0b30c 100644 --- a/src/extensions/markdown/Heading/Heading.test.ts +++ b/src/extensions/markdown/Heading/Heading.test.ts @@ -1,11 +1,13 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {boldMarkName, BoldSpecs} from '../Bold/BoldSpecs'; +import {BoldSpecs, boldMarkName} from '../Bold/BoldSpecs'; + import {HeadingSpecs} from './HeadingSpecs'; -import {headingNodeName, headingLevelAttr} from './const'; +import {headingLevelAttr, headingNodeName} from './const'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(HeadingSpecs, {}).use(BoldSpecs), diff --git a/src/extensions/markdown/Heading/HeadingSpecs/index.ts b/src/extensions/markdown/Heading/HeadingSpecs/index.ts index 227535cf..a82d1948 100644 --- a/src/extensions/markdown/Heading/HeadingSpecs/index.ts +++ b/src/extensions/markdown/Heading/HeadingSpecs/index.ts @@ -1,4 +1,5 @@ import type {Node, NodeSpec} from 'prosemirror-model'; + import type {ExtensionAuto} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/markdown/Heading/actions.ts b/src/extensions/markdown/Heading/actions.ts index 1c009482..ac808d79 100644 --- a/src/extensions/markdown/Heading/actions.ts +++ b/src/extensions/markdown/Heading/actions.ts @@ -1,6 +1,8 @@ import {setBlockType} from 'prosemirror-commands'; import type {NodeType} from 'prosemirror-model'; + import type {ActionSpec} from '../../../core'; + import {HeadingLevel, headingLevelAttr} from './const'; import {hasParentHeading} from './utils'; diff --git a/src/extensions/markdown/Heading/commands.ts b/src/extensions/markdown/Heading/commands.ts index 0888572e..5cb982ec 100644 --- a/src/extensions/markdown/Heading/commands.ts +++ b/src/extensions/markdown/Heading/commands.ts @@ -1,5 +1,7 @@ import type {Command} from 'prosemirror-state'; + import {toParagraph} from '../../base/BaseSchema'; + import {hType} from './utils'; export const resetHeading: Command = (state, dispatch, view) => { diff --git a/src/extensions/markdown/Heading/index.ts b/src/extensions/markdown/Heading/index.ts index 569954ff..4b366329 100644 --- a/src/extensions/markdown/Heading/index.ts +++ b/src/extensions/markdown/Heading/index.ts @@ -1,11 +1,13 @@ import {setBlockType} from 'prosemirror-commands'; + import type {Action, ExtensionAuto, Keymap} from '../../../core'; import {withLogAction} from '../../../utils/keymap'; + +import {HeadingSpecs, HeadingSpecsOptions} from './HeadingSpecs'; import {headingAction} from './actions'; -import {HeadingAction, HeadingLevel, headingLevelAttr} from './const'; -import {headingRule, hType} from './utils'; import {resetHeading} from './commands'; -import {HeadingSpecs, HeadingSpecsOptions} from './HeadingSpecs'; +import {HeadingAction, HeadingLevel, headingLevelAttr} from './const'; +import {hType, headingRule} from './utils'; export {headingNodeName, headingType} from './HeadingSpecs'; export {HeadingAction} from './const'; diff --git a/src/extensions/markdown/Heading/utils.ts b/src/extensions/markdown/Heading/utils.ts index 7574f00c..6ca2d079 100644 --- a/src/extensions/markdown/Heading/utils.ts +++ b/src/extensions/markdown/Heading/utils.ts @@ -2,8 +2,9 @@ import {textblockTypeInputRule} from 'prosemirror-inputrules'; import type {NodeType} from 'prosemirror-model'; import type {EditorState} from 'prosemirror-state'; import {hasParentNode} from 'prosemirror-utils'; -import {HeadingLevel, headingLevelAttr} from './const'; + import {headingType} from './HeadingSpecs'; +import {HeadingLevel, headingLevelAttr} from './const'; /** @deprecated Use `headingType` instead */ export const hType = headingType; diff --git a/src/extensions/markdown/HorizontalRule/HorizontalRule.test.ts b/src/extensions/markdown/HorizontalRule/HorizontalRule.test.ts index 0fe577e6..3847d754 100644 --- a/src/extensions/markdown/HorizontalRule/HorizontalRule.test.ts +++ b/src/extensions/markdown/HorizontalRule/HorizontalRule.test.ts @@ -1,12 +1,14 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; + import { + HorizontalRuleSpecs, horizontalRuleMarkupAttr, horizontalRuleNodeName, - HorizontalRuleSpecs, } from './HorizontalRuleSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ diff --git a/src/extensions/markdown/HorizontalRule/index.ts b/src/extensions/markdown/HorizontalRule/index.ts index 470bce81..35825826 100644 --- a/src/extensions/markdown/HorizontalRule/index.ts +++ b/src/extensions/markdown/HorizontalRule/index.ts @@ -1,13 +1,15 @@ import type {NodeType} from 'prosemirror-model'; import type {Command, Selection} from 'prosemirror-state'; + import type {Action, ExtensionAuto} from '../../../core'; import {nodeInputRule} from '../../../utils/inputrules'; import {isNodeSelection} from '../../../utils/selection'; import {pType} from '../../base/BaseSchema/BaseSchemaSpecs'; + import { + HorizontalRuleSpecs, horizontalRuleMarkupAttr, horizontalRuleNodeName, - HorizontalRuleSpecs, horizontalRuleType, } from './HorizontalRuleSpecs'; diff --git a/src/extensions/markdown/Html/Html.test.ts b/src/extensions/markdown/Html/Html.test.ts index 81ed3432..db2e2dd6 100644 --- a/src/extensions/markdown/Html/Html.test.ts +++ b/src/extensions/markdown/Html/Html.test.ts @@ -1,10 +1,13 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSchema} from '../../base/BaseSchema'; -import {Html} from './index'; + import {HtmlAttr, HtmlNode} from './const'; +import {Html} from './index'; + const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSchema, {}).use(Html), options: {mdOpts: {html: true}}, diff --git a/src/extensions/markdown/Html/fromYfm.ts b/src/extensions/markdown/Html/fromYfm.ts index dc349d48..599ed747 100644 --- a/src/extensions/markdown/Html/fromYfm.ts +++ b/src/extensions/markdown/Html/fromYfm.ts @@ -1,4 +1,5 @@ import type {ParserToken} from '../../../core'; + import {HtmlAttr, HtmlNode} from './const'; export const fromYfm: Record = { diff --git a/src/extensions/markdown/Html/index.ts b/src/extensions/markdown/Html/index.ts index ab86162e..4ca08dab 100644 --- a/src/extensions/markdown/Html/index.ts +++ b/src/extensions/markdown/Html/index.ts @@ -1,5 +1,6 @@ -import {logger} from '../../../logger'; import type {ExtensionAuto} from '../../../core'; +import {logger} from '../../../logger'; + import {HtmlNode} from './const'; import {fromYfm} from './fromYfm'; import {spec} from './spec'; diff --git a/src/extensions/markdown/Html/spec.ts b/src/extensions/markdown/Html/spec.ts index ec6789a1..483585cf 100644 --- a/src/extensions/markdown/Html/spec.ts +++ b/src/extensions/markdown/Html/spec.ts @@ -1,5 +1,6 @@ import sanitize from '@diplodoc/transform/lib/sanitize'; import type {NodeSpec} from 'prosemirror-model'; + import {HtmlAttr, HtmlNode} from './const'; enum DomAttr { diff --git a/src/extensions/markdown/Html/toYfm.ts b/src/extensions/markdown/Html/toYfm.ts index a17d9d47..0b4d6888 100644 --- a/src/extensions/markdown/Html/toYfm.ts +++ b/src/extensions/markdown/Html/toYfm.ts @@ -1,4 +1,5 @@ import type {SerializerNodeToken} from '../../../core'; + import {HtmlAttr, HtmlNode} from './const'; export const toYfm: Record = { diff --git a/src/extensions/markdown/Image/Image.test.ts b/src/extensions/markdown/Image/Image.test.ts index 414dd94b..9bb76f0a 100644 --- a/src/extensions/markdown/Image/Image.test.ts +++ b/src/extensions/markdown/Image/Image.test.ts @@ -1,8 +1,10 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {ImageAttr, imageNodeName, ImageSpecs} from './ImageSpecs'; + +import {ImageAttr, ImageSpecs, imageNodeName} from './ImageSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(ImageSpecs), diff --git a/src/extensions/markdown/Image/actions.ts b/src/extensions/markdown/Image/actions.ts index a604364c..79ff0fe7 100644 --- a/src/extensions/markdown/Image/actions.ts +++ b/src/extensions/markdown/Image/actions.ts @@ -1,5 +1,7 @@ import type {Schema} from 'prosemirror-model'; + import type {ActionSpec} from '../../../core'; + import {imageType} from './ImageSpecs'; import {ImageAttr} from './const'; diff --git a/src/extensions/markdown/Image/index.ts b/src/extensions/markdown/Image/index.ts index cb96c20e..4ec6653b 100644 --- a/src/extensions/markdown/Image/index.ts +++ b/src/extensions/markdown/Image/index.ts @@ -1,7 +1,8 @@ import type {Action, ExtensionAuto} from '../../../core'; -import {addImage, AddImageAttrs} from './actions'; -import {addImageAction} from './const'; + import {ImageSpecs, imageType} from './ImageSpecs'; +import {AddImageAttrs, addImage} from './actions'; +import {addImageAction} from './const'; export {imageNodeName, imageType, ImageAttr} from './ImageSpecs'; /** @deprecated Use `imageType` instead */ diff --git a/src/extensions/markdown/Italic/Italic.test.ts b/src/extensions/markdown/Italic/Italic.test.ts index 698dfddb..58acbaf8 100644 --- a/src/extensions/markdown/Italic/Italic.test.ts +++ b/src/extensions/markdown/Italic/Italic.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {italicMarkName, ItalicSpecs} from './ItalicSpecs'; + +import {ItalicSpecs, italicMarkName} from './ItalicSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(ItalicSpecs), diff --git a/src/extensions/markdown/Italic/index.ts b/src/extensions/markdown/Italic/index.ts index 8c706e0e..4f2748dd 100644 --- a/src/extensions/markdown/Italic/index.ts +++ b/src/extensions/markdown/Italic/index.ts @@ -1,10 +1,11 @@ import {toggleMark} from 'prosemirror-commands'; -import {withLogAction} from '../../../utils/keymap'; -import {createToggleMarkAction} from '../../../utils/actions'; + import type {Action, ExtensionAuto} from '../../../core'; +import {createToggleMarkAction} from '../../../utils/actions'; import {markInputRule} from '../../../utils/inputrules'; +import {withLogAction} from '../../../utils/keymap'; -import {italicMarkName, ItalicSpecs, italicType} from './ItalicSpecs'; +import {ItalicSpecs, italicMarkName, italicType} from './ItalicSpecs'; export {italicMarkName, italicType} from './ItalicSpecs'; /** @deprecated Use `italicMarkName` instead */ diff --git a/src/extensions/markdown/Link/Link.test.ts b/src/extensions/markdown/Link/Link.test.ts index 865b051b..0b64d203 100644 --- a/src/extensions/markdown/Link/Link.test.ts +++ b/src/extensions/markdown/Link/Link.test.ts @@ -1,8 +1,10 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {LinkSpecs, LinkAttr, linkMarkName} from './LinkSpecs'; + +import {LinkAttr, LinkSpecs, linkMarkName} from './LinkSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(LinkSpecs), diff --git a/src/extensions/markdown/Link/LinkSpecs/index.ts b/src/extensions/markdown/Link/LinkSpecs/index.ts index a669f75f..267f7e05 100644 --- a/src/extensions/markdown/Link/LinkSpecs/index.ts +++ b/src/extensions/markdown/Link/LinkSpecs/index.ts @@ -1,4 +1,5 @@ import type {Fragment, Mark} from 'prosemirror-model'; + import type {ExtensionAuto} from '../../../../core'; import {markTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/markdown/Link/actions.ts b/src/extensions/markdown/Link/actions.ts index dbcc39c3..453f28ce 100644 --- a/src/extensions/markdown/Link/actions.ts +++ b/src/extensions/markdown/Link/actions.ts @@ -1,8 +1,10 @@ import {toggleMark} from 'prosemirror-commands'; -import {TextSelection} from 'prosemirror-state'; import type {MarkType} from 'prosemirror-model'; +import {TextSelection} from 'prosemirror-state'; + import type {ActionSpec, ExtensionDeps} from '../../../core'; import {isMarkActive} from '../../../utils/marks'; + import {LinkAttr} from './LinkSpecs'; import {removeLink} from './commands'; import {normalizeUrlFactory} from './utils'; diff --git a/src/extensions/markdown/Link/commands.ts b/src/extensions/markdown/Link/commands.ts index 50faae48..87a10a1e 100644 --- a/src/extensions/markdown/Link/commands.ts +++ b/src/extensions/markdown/Link/commands.ts @@ -1,6 +1,8 @@ import {toggleMark} from 'prosemirror-commands'; import type {Command} from 'prosemirror-state'; + import {isMarkActive} from '../../../utils/marks'; + import {linkType} from '.'; export const removeLink: Command = (state, dispatch) => { diff --git a/src/extensions/markdown/Link/index.ts b/src/extensions/markdown/Link/index.ts index 27ec772a..74cc8313 100644 --- a/src/extensions/markdown/Link/index.ts +++ b/src/extensions/markdown/Link/index.ts @@ -2,9 +2,10 @@ import {InputRule} from 'prosemirror-inputrules'; import type {MarkType} from 'prosemirror-model'; import type {Action, ExtensionAuto} from '../../../core'; + +import {LinkSpecs, linkMarkName, linkType} from './LinkSpecs'; import {LinkActionMeta, LinkActionParams, linkCommand} from './actions'; import {linkPasteEnhance} from './paste-plugin'; -import {linkMarkName, LinkSpecs, linkType} from './LinkSpecs'; export type {LinkActionParams, LinkActionMeta} from './actions'; export {linkCommand} from './actions'; diff --git a/src/extensions/markdown/Link/paste-plugin.ts b/src/extensions/markdown/Link/paste-plugin.ts index 2adb4a5c..b1af43a6 100644 --- a/src/extensions/markdown/Link/paste-plugin.ts +++ b/src/extensions/markdown/Link/paste-plugin.ts @@ -1,7 +1,9 @@ import {Plugin, TextSelection} from 'prosemirror-state'; -import {isTextSelection} from '../../../utils/selection'; + import type {ExtensionDeps, Parser} from '../../../core'; +import {isTextSelection} from '../../../utils/selection'; import {DataTransferType, isIosSafariShare} from '../../behavior/Clipboard/utils'; + import {LinkAttr, linkType} from './index'; export function linkPasteEnhance({parser}: ExtensionDeps) { diff --git a/src/extensions/markdown/Lists/Lists.test.ts b/src/extensions/markdown/Lists/Lists.test.ts index 6f87144e..9e2e747f 100644 --- a/src/extensions/markdown/Lists/Lists.test.ts +++ b/src/extensions/markdown/Lists/Lists.test.ts @@ -1,7 +1,9 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; + import {ListNode, ListsSpecs} from './ListsSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ diff --git a/src/extensions/markdown/Lists/ListsSpecs/fromYfm.ts b/src/extensions/markdown/Lists/ListsSpecs/fromYfm.ts index ec3b2704..6317b09b 100644 --- a/src/extensions/markdown/Lists/ListsSpecs/fromYfm.ts +++ b/src/extensions/markdown/Lists/ListsSpecs/fromYfm.ts @@ -1,5 +1,7 @@ import type Token from 'markdown-it/lib/token'; + import type {ParserToken} from '../../../../core'; + import {ListNode} from './const'; export const fromYfm: Record = { diff --git a/src/extensions/markdown/Lists/ListsSpecs/index.ts b/src/extensions/markdown/Lists/ListsSpecs/index.ts index 228ee8e9..df5ea72b 100644 --- a/src/extensions/markdown/Lists/ListsSpecs/index.ts +++ b/src/extensions/markdown/Lists/ListsSpecs/index.ts @@ -1,9 +1,10 @@ import type {ExtensionAuto} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; + import {ListNode} from './const'; import {fromYfm} from './fromYfm'; -import {toYfm} from './toYfm'; import {spec} from './spec'; +import {toYfm} from './toYfm'; export {ListNode} from './const'; export const liType = nodeTypeFactory(ListNode.ListItem); diff --git a/src/extensions/markdown/Lists/ListsSpecs/spec.ts b/src/extensions/markdown/Lists/ListsSpecs/spec.ts index 3de80e3b..8dc80653 100644 --- a/src/extensions/markdown/Lists/ListsSpecs/spec.ts +++ b/src/extensions/markdown/Lists/ListsSpecs/spec.ts @@ -1,4 +1,5 @@ import type {NodeSpec} from 'prosemirror-model'; + import {ListNode} from './const'; export const spec: Record = { diff --git a/src/extensions/markdown/Lists/ListsSpecs/toYfm.ts b/src/extensions/markdown/Lists/ListsSpecs/toYfm.ts index dfd54651..52c34447 100644 --- a/src/extensions/markdown/Lists/ListsSpecs/toYfm.ts +++ b/src/extensions/markdown/Lists/ListsSpecs/toYfm.ts @@ -1,4 +1,5 @@ import type {SerializerNodeToken} from '../../../../core'; + import {ListNode} from './const'; export const toYfm: Record = { diff --git a/src/extensions/markdown/Lists/actions.ts b/src/extensions/markdown/Lists/actions.ts index 4c13d78e..ad05b27d 100644 --- a/src/extensions/markdown/Lists/actions.ts +++ b/src/extensions/markdown/Lists/actions.ts @@ -1,5 +1,7 @@ import {liftListItem, sinkListItem} from 'prosemirror-schema-list'; + import type {ActionSpec, ExtensionDeps} from '../../../core'; + import {toList} from './commands'; import {ListNode} from './const'; import {blType, isIntoListOfType, liType, olType} from './utils'; diff --git a/src/extensions/markdown/Lists/commands.test.ts b/src/extensions/markdown/Lists/commands.test.ts index 9c62ec72..ed5385be 100644 --- a/src/extensions/markdown/Lists/commands.test.ts +++ b/src/extensions/markdown/Lists/commands.test.ts @@ -1,12 +1,14 @@ -import {EditorView} from 'prosemirror-view'; import {EditorState, TextSelection} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; +import {EditorView} from 'prosemirror-view'; + import {ExtensionsManager} from '../../../core'; import {get$Cursor} from '../../../utils/selection'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; + import {ListsSpecs} from './ListsSpecs'; -import {ListNode} from './const'; import {liftIfCursorIsAtBeginningOfItem} from './commands'; +import {ListNode} from './const'; const {schema} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(ListsSpecs), diff --git a/src/extensions/markdown/Lists/commands.ts b/src/extensions/markdown/Lists/commands.ts index bf0b5452..17a4648a 100644 --- a/src/extensions/markdown/Lists/commands.ts +++ b/src/extensions/markdown/Lists/commands.ts @@ -1,9 +1,11 @@ import type {NodeType} from 'prosemirror-model'; -import type {Command} from 'prosemirror-state'; import {liftListItem, wrapInList} from 'prosemirror-schema-list'; -import {findAnyParentList, isListItemNode, isListNode, isListOrItemNode, liType} from './utils'; -import {get$CursorAtBlockStart} from '../../../utils/selection'; +import type {Command} from 'prosemirror-state'; + import {joinPreviousBlock} from '../../../commands/join'; +import {get$CursorAtBlockStart} from '../../../utils/selection'; + +import {findAnyParentList, isListItemNode, isListNode, isListOrItemNode, liType} from './utils'; export function toList(listType: NodeType): Command { return (state, dispatch) => { diff --git a/src/extensions/markdown/Lists/index.ts b/src/extensions/markdown/Lists/index.ts index ed3df503..53fb2e97 100644 --- a/src/extensions/markdown/Lists/index.ts +++ b/src/extensions/markdown/Lists/index.ts @@ -1,12 +1,14 @@ import {chainCommands} from 'prosemirror-commands'; import {liftListItem, sinkListItem, splitListItem} from 'prosemirror-schema-list'; + import type {Action, ExtensionAuto, Keymap} from '../../../core'; import {withLogAction} from '../../../utils/keymap'; + +import {ListsSpecs, blType, liType, olType} from './ListsSpecs'; import {actions} from './actions'; +import {joinPrevList, liftIfCursorIsAtBeginningOfItem, toList} from './commands'; import {ListAction} from './const'; import {ListsInputRulesExtension, ListsInputRulesOptions} from './inputrules'; -import {ListsSpecs, blType, liType, olType} from './ListsSpecs'; -import {liftIfCursorIsAtBeginningOfItem, toList, joinPrevList} from './commands'; export {ListNode, blType, liType, olType} from './ListsSpecs'; diff --git a/src/extensions/markdown/Lists/inputrules.ts b/src/extensions/markdown/Lists/inputrules.ts index ac3381fb..388fd005 100644 --- a/src/extensions/markdown/Lists/inputrules.ts +++ b/src/extensions/markdown/Lists/inputrules.ts @@ -1,6 +1,8 @@ -import type {NodeType} from 'prosemirror-model'; import {wrappingInputRule} from 'prosemirror-inputrules'; +import type {NodeType} from 'prosemirror-model'; + import type {ExtensionWithOptions} from '../../../core'; + import {blType, olType} from './utils'; export type ListsInputRulesOptions = { diff --git a/src/extensions/markdown/Lists/utils.ts b/src/extensions/markdown/Lists/utils.ts index 262e4baf..14ae934d 100644 --- a/src/extensions/markdown/Lists/utils.ts +++ b/src/extensions/markdown/Lists/utils.ts @@ -1,7 +1,8 @@ import type {Node, Schema} from 'prosemirror-model'; import {EditorState} from 'prosemirror-state'; import {findParentNodeOfType} from 'prosemirror-utils'; -import {blType, olType, ListNode, liType} from './ListsSpecs'; + +import {ListNode, blType, liType, olType} from './ListsSpecs'; export {liType, blType, olType} from './ListsSpecs'; diff --git a/src/extensions/markdown/Mark/Mark.test.ts b/src/extensions/markdown/Mark/Mark.test.ts index b2c56b54..edb2757a 100644 --- a/src/extensions/markdown/Mark/Mark.test.ts +++ b/src/extensions/markdown/Mark/Mark.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {markMarkName, MarkSpecs} from './MarkSpecs'; + +import {MarkSpecs, markMarkName} from './MarkSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(MarkSpecs), diff --git a/src/extensions/markdown/Mark/MarkSpecs/index.ts b/src/extensions/markdown/Mark/MarkSpecs/index.ts index 84a63b4e..6f6e98e3 100644 --- a/src/extensions/markdown/Mark/MarkSpecs/index.ts +++ b/src/extensions/markdown/Mark/MarkSpecs/index.ts @@ -1,4 +1,5 @@ import markPlugin from 'markdown-it-mark'; + import type {ExtensionAuto} from '../../../../core'; import {markTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/markdown/Mark/index.ts b/src/extensions/markdown/Mark/index.ts index e2438df5..4cb531d9 100644 --- a/src/extensions/markdown/Mark/index.ts +++ b/src/extensions/markdown/Mark/index.ts @@ -1,7 +1,8 @@ import type {Action, ExtensionAuto} from '../../../core'; import {createToggleMarkAction} from '../../../utils/actions'; import {markInputRule} from '../../../utils/inputrules'; -import {markMarkName, markMarkType, MarkSpecs} from './MarkSpecs'; + +import {MarkSpecs, markMarkName, markMarkType} from './MarkSpecs'; export {markMarkName, markMarkType} from './MarkSpecs'; /** @deprecated Use `markMarkName` instead */ diff --git a/src/extensions/markdown/Strike/Strike.test.ts b/src/extensions/markdown/Strike/Strike.test.ts index 2f28d93c..e1d98c97 100644 --- a/src/extensions/markdown/Strike/Strike.test.ts +++ b/src/extensions/markdown/Strike/Strike.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {strikeMarkName, StrikeSpecs} from './StrikeSpecs'; + +import {StrikeSpecs, strikeMarkName} from './StrikeSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(StrikeSpecs), diff --git a/src/extensions/markdown/Strike/index.ts b/src/extensions/markdown/Strike/index.ts index 1c79902b..3da93ce7 100644 --- a/src/extensions/markdown/Strike/index.ts +++ b/src/extensions/markdown/Strike/index.ts @@ -1,9 +1,11 @@ import {toggleMark} from 'prosemirror-commands'; + import type {Action, ExtensionAuto} from '../../../core'; -import {withLogAction} from '../../../utils/keymap'; import {createToggleMarkAction} from '../../../utils/actions'; import {markInputRule} from '../../../utils/inputrules'; -import {strikeMarkName, StrikeSpecs, strikeType} from './StrikeSpecs'; +import {withLogAction} from '../../../utils/keymap'; + +import {StrikeSpecs, strikeMarkName, strikeType} from './StrikeSpecs'; export {strikeMarkName, strikeType} from './StrikeSpecs'; /** @deprecated Use `strikeMarkName` instead */ diff --git a/src/extensions/markdown/Subscript/Subscript.test.ts b/src/extensions/markdown/Subscript/Subscript.test.ts index 529fa1e1..d7415ecd 100644 --- a/src/extensions/markdown/Subscript/Subscript.test.ts +++ b/src/extensions/markdown/Subscript/Subscript.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {subscriptMarkName, SubscriptSpecs} from './SubscriptSpecs'; + +import {SubscriptSpecs, subscriptMarkName} from './SubscriptSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(SubscriptSpecs), diff --git a/src/extensions/markdown/Subscript/SubscriptSpecs/index.ts b/src/extensions/markdown/Subscript/SubscriptSpecs/index.ts index a05ffc22..141fa480 100644 --- a/src/extensions/markdown/Subscript/SubscriptSpecs/index.ts +++ b/src/extensions/markdown/Subscript/SubscriptSpecs/index.ts @@ -1,4 +1,5 @@ import subPlugin from 'markdown-it-sub'; + import type {ExtensionAuto} from '../../../../core'; import {markTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/markdown/Subscript/index.ts b/src/extensions/markdown/Subscript/index.ts index afac09d5..4255d624 100644 --- a/src/extensions/markdown/Subscript/index.ts +++ b/src/extensions/markdown/Subscript/index.ts @@ -1,7 +1,8 @@ import type {Action, ExtensionAuto} from '../../../core'; import {createToggleMarkAction} from '../../../utils/actions'; import {markInputRule} from '../../../utils/inputrules'; -import {subscriptMarkName, SubscriptSpecs, subscriptType} from './SubscriptSpecs'; + +import {SubscriptSpecs, subscriptMarkName, subscriptType} from './SubscriptSpecs'; export {subscriptMarkName, subscriptType} from './SubscriptSpecs'; /** @deprecated Use `subscriptMarkName` instead */ diff --git a/src/extensions/markdown/Superscript/Superscript.test.ts b/src/extensions/markdown/Superscript/Superscript.test.ts index bd5666e7..5d9493e7 100644 --- a/src/extensions/markdown/Superscript/Superscript.test.ts +++ b/src/extensions/markdown/Superscript/Superscript.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {superscriptMarkName, SuperscriptSpecs} from './SuperscriptSpecs'; + +import {SuperscriptSpecs, superscriptMarkName} from './SuperscriptSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(SuperscriptSpecs), diff --git a/src/extensions/markdown/Superscript/index.ts b/src/extensions/markdown/Superscript/index.ts index 3a2a0419..5bc12ab4 100644 --- a/src/extensions/markdown/Superscript/index.ts +++ b/src/extensions/markdown/Superscript/index.ts @@ -1,7 +1,8 @@ import type {Action, ExtensionAuto} from '../../../core'; import {createToggleMarkAction} from '../../../utils/actions'; import {markInputRule} from '../../../utils/inputrules'; -import {superscriptMarkName, SuperscriptSpecs, superscriptType} from './SuperscriptSpecs'; + +import {SuperscriptSpecs, superscriptMarkName, superscriptType} from './SuperscriptSpecs'; export {superscriptMarkName, superscriptType} from './SuperscriptSpecs'; /** @deprecated Use `superscriptMarkName` instead */ diff --git a/src/extensions/markdown/Table/Table.test.ts b/src/extensions/markdown/Table/Table.test.ts index 78f0ffd8..d28e153a 100644 --- a/src/extensions/markdown/Table/Table.test.ts +++ b/src/extensions/markdown/Table/Table.test.ts @@ -1,11 +1,13 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {blockquoteNodeName, BlockquoteSpecs} from '../Blockquote/BlockquoteSpecs'; -import {CellAlign, TableAttrs, TableNode} from './const'; +import {BlockquoteSpecs, blockquoteNodeName} from '../Blockquote/BlockquoteSpecs'; + import {TableSpecs} from './TableSpecs'; +import {CellAlign, TableAttrs, TableNode} from './const'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(BlockquoteSpecs).use(TableSpecs), diff --git a/src/extensions/markdown/Table/TableSpecs/fromYfm.ts b/src/extensions/markdown/Table/TableSpecs/fromYfm.ts index 207fd332..d3d035f7 100644 --- a/src/extensions/markdown/Table/TableSpecs/fromYfm.ts +++ b/src/extensions/markdown/Table/TableSpecs/fromYfm.ts @@ -1,4 +1,5 @@ import type Token from 'markdown-it/lib/token'; + import type {ParserToken} from '../../../../core'; import {CellAlign, TableAttrs, TableNode} from '../const'; diff --git a/src/extensions/markdown/Table/TableSpecs/index.ts b/src/extensions/markdown/Table/TableSpecs/index.ts index 326d0ce5..2eaf92b0 100644 --- a/src/extensions/markdown/Table/TableSpecs/index.ts +++ b/src/extensions/markdown/Table/TableSpecs/index.ts @@ -1,8 +1,9 @@ import type {ExtensionAuto} from '../../../../core'; + +import {TableNode} from './const'; import {fromYfm} from './fromYfm'; -import {toYfm} from './toYfm'; import {spec} from './spec'; -import {TableNode} from './const'; +import {toYfm} from './toYfm'; export {TableNode} from './const'; diff --git a/src/extensions/markdown/Table/TableSpecs/spec.ts b/src/extensions/markdown/Table/TableSpecs/spec.ts index 2569f6bc..76884869 100644 --- a/src/extensions/markdown/Table/TableSpecs/spec.ts +++ b/src/extensions/markdown/Table/TableSpecs/spec.ts @@ -1,4 +1,5 @@ import type {NodeSpec} from 'prosemirror-model'; + import {TableRole} from '../../../../table-utils'; import {CellAlign, TableAttrs, TableNode} from '../const'; diff --git a/src/extensions/markdown/Table/actions.ts b/src/extensions/markdown/Table/actions.ts index a7ce2074..26a45ce7 100644 --- a/src/extensions/markdown/Table/actions.ts +++ b/src/extensions/markdown/Table/actions.ts @@ -1,6 +1,8 @@ import type {Command} from 'prosemirror-state'; import {removeParentNodeOfType} from 'prosemirror-utils'; + import type {ActionSpec, ExtensionDeps, Parser} from '../../../core'; + import {TableNode} from './const'; import {isIntoTable} from './helpers'; diff --git a/src/extensions/markdown/Table/helpers.ts b/src/extensions/markdown/Table/helpers.ts index 4f717385..27ce84d3 100644 --- a/src/extensions/markdown/Table/helpers.ts +++ b/src/extensions/markdown/Table/helpers.ts @@ -6,6 +6,7 @@ import { findParentNodeOfType, hasParentNodeOfType, } from 'prosemirror-utils'; + import {TableNode} from './const'; export const isIntoTable = (state: EditorState) => diff --git a/src/extensions/markdown/Table/index.ts b/src/extensions/markdown/Table/index.ts index 66b95816..24b42de7 100644 --- a/src/extensions/markdown/Table/index.ts +++ b/src/extensions/markdown/Table/index.ts @@ -1,9 +1,10 @@ import type {Action, ExtensionAuto} from '../../../core'; import {goToNextCell} from '../../../table-utils'; + import {TableSpecs} from './TableSpecs'; import {createTableAction, deleteTableAction} from './actions'; -import * as TableHelpers from './helpers'; import * as TableActions from './actions'; +import * as TableHelpers from './helpers'; export {TableHelpers, TableActions}; export {TableNode, TableAttrs, CellAlign as TableCellAlign} from './const'; diff --git a/src/extensions/markdown/Underline/Underline.test.ts b/src/extensions/markdown/Underline/Underline.test.ts index a5425e7b..515d25e7 100644 --- a/src/extensions/markdown/Underline/Underline.test.ts +++ b/src/extensions/markdown/Underline/Underline.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {underlineMarkName, UnderlineSpecs} from './UnderlineSpecs'; + +import {UnderlineSpecs, underlineMarkName} from './UnderlineSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(UnderlineSpecs), diff --git a/src/extensions/markdown/Underline/UnderlineSpecs/index.ts b/src/extensions/markdown/Underline/UnderlineSpecs/index.ts index 2e58df09..5726bc68 100644 --- a/src/extensions/markdown/Underline/UnderlineSpecs/index.ts +++ b/src/extensions/markdown/Underline/UnderlineSpecs/index.ts @@ -1,4 +1,5 @@ import insPlugin from 'markdown-it-ins'; + import type {ExtensionAuto} from '../../../../core'; import {markTypeFactory} from '../../../../utils/schema'; diff --git a/src/extensions/markdown/Underline/index.ts b/src/extensions/markdown/Underline/index.ts index dda92dc4..baab191c 100644 --- a/src/extensions/markdown/Underline/index.ts +++ b/src/extensions/markdown/Underline/index.ts @@ -1,9 +1,11 @@ import {toggleMark} from 'prosemirror-commands'; + import type {Action, ExtensionAuto} from '../../../core'; -import {withLogAction} from '../../../utils/keymap'; import {createToggleMarkAction} from '../../../utils/actions'; import {markInputRule} from '../../../utils/inputrules'; -import {underlineMarkName, UnderlineSpecs, underlineType} from './UnderlineSpecs'; +import {withLogAction} from '../../../utils/keymap'; + +import {UnderlineSpecs, underlineMarkName, underlineType} from './UnderlineSpecs'; export {underlineMarkName, underlineType} from './UnderlineSpecs'; /** @deprecated Use `underlineMarkName` instead */ diff --git a/src/extensions/markdown/index.ts b/src/extensions/markdown/index.ts index 7398b657..01018b2a 100644 --- a/src/extensions/markdown/index.ts +++ b/src/extensions/markdown/index.ts @@ -1,26 +1,26 @@ import isFunction from 'lodash/isFunction'; + import type {Extension, ExtensionAuto} from '../../core'; +import {Blockquote, BlockquoteOptions} from './Blockquote'; import {Bold, BoldOptions} from './Bold'; +import {Breaks, BreaksOptions} from './Breaks'; import {Code, CodeOptions} from './Code'; +import {CodeBlock, CodeBlockOptions} from './CodeBlock'; +import {Deflist, DeflistOptions} from './Deflist'; +import {Heading, HeadingOptions} from './Heading'; +import {HorizontalRule} from './HorizontalRule'; +import {Html} from './Html'; +import {Image} from './Image'; import {Italic, ItalicOptions} from './Italic'; -import {Strike, StrikeOptions} from './Strike'; -import {Underline, UnderlineOptions} from './Underline'; import {Link} from './Link'; +import {Lists, ListsOptions} from './Lists'; import {Mark} from './Mark'; +import {Strike, StrikeOptions} from './Strike'; import {Subscript} from './Subscript'; import {Superscript} from './Superscript'; - -import {Html} from './Html'; import {Table} from './Table'; -import {Image} from './Image'; -import {Lists, ListsOptions} from './Lists'; -import {Breaks, BreaksOptions} from './Breaks'; -import {Deflist, DeflistOptions} from './Deflist'; -import {HorizontalRule} from './HorizontalRule'; -import {Heading, HeadingOptions} from './Heading'; -import {CodeBlock, CodeBlockOptions} from './CodeBlock'; -import {Blockquote, BlockquoteOptions} from './Blockquote'; +import {Underline, UnderlineOptions} from './Underline'; export * from './Bold'; export * from './Code'; diff --git a/src/extensions/markdown/specs.ts b/src/extensions/markdown/specs.ts index 439d39d7..611e164b 100644 --- a/src/extensions/markdown/specs.ts +++ b/src/extensions/markdown/specs.ts @@ -1,26 +1,26 @@ import isFunction from 'lodash/isFunction'; + import type {Extension, ExtensionAuto} from '../../core'; +import {BlockquoteSpecs} from './Blockquote/BlockquoteSpecs'; import {BoldSpecs} from './Bold/BoldSpecs'; +import {BreaksSpecs, BreaksSpecsOptions} from './Breaks/BreaksSpecs'; import {CodeSpecs} from './Code/CodeSpecs'; +import {CodeBlockSpecs, CodeBlockSpecsOptions} from './CodeBlock/CodeBlockSpecs'; +import {DeflistSpecs, DeflistSpecsOptions} from './Deflist/DeflistSpecs'; +import {HeadingSpecs, HeadingSpecsOptions} from './Heading/HeadingSpecs'; +import {HorizontalRuleSpecs} from './HorizontalRule/HorizontalRuleSpecs'; +import {Html} from './Html'; +import {ImageSpecs} from './Image/ImageSpecs'; import {ItalicSpecs} from './Italic/ItalicSpecs'; -import {StrikeSpecs} from './Strike/StrikeSpecs'; -import {UnderlineSpecs} from './Underline/UnderlineSpecs'; import {LinkSpecs} from './Link/LinkSpecs'; +import {ListsSpecs} from './Lists/ListsSpecs'; import {MarkSpecs} from './Mark/MarkSpecs'; +import {StrikeSpecs} from './Strike/StrikeSpecs'; import {SubscriptSpecs} from './Subscript/SubscriptSpecs'; import {SuperscriptSpecs} from './Superscript/SuperscriptSpecs'; - -import {Html} from './Html'; import {TableSpecs} from './Table/TableSpecs'; -import {ImageSpecs} from './Image/ImageSpecs'; -import {ListsSpecs} from './Lists/ListsSpecs'; -import {BreaksSpecs, BreaksSpecsOptions} from './Breaks/BreaksSpecs'; -import {BlockquoteSpecs} from './Blockquote/BlockquoteSpecs'; -import {DeflistSpecs, DeflistSpecsOptions} from './Deflist/DeflistSpecs'; -import {HeadingSpecs, HeadingSpecsOptions} from './Heading/HeadingSpecs'; -import {HorizontalRuleSpecs} from './HorizontalRule/HorizontalRuleSpecs'; -import {CodeBlockSpecs, CodeBlockSpecsOptions} from './CodeBlock/CodeBlockSpecs'; +import {UnderlineSpecs} from './Underline/UnderlineSpecs'; export * from './Bold/BoldSpecs'; export * from './Code/CodeSpecs'; diff --git a/src/extensions/yfm/Checkbox/Checkbox.test.ts b/src/extensions/yfm/Checkbox/Checkbox.test.ts index 48e6a83e..0b8a99c6 100644 --- a/src/extensions/yfm/Checkbox/Checkbox.test.ts +++ b/src/extensions/yfm/Checkbox/Checkbox.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {boldMarkName, BoldSpecs} from '../../markdown/specs'; -import {CheckboxSpecs, CheckboxNode} from './CheckboxSpecs'; +import {BoldSpecs, boldMarkName} from '../../markdown/specs'; + +import {CheckboxNode, CheckboxSpecs} from './CheckboxSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => diff --git a/src/extensions/yfm/Checkbox/CheckboxSpecs/index.ts b/src/extensions/yfm/Checkbox/CheckboxSpecs/index.ts index 3cfc81c5..99007ae5 100644 --- a/src/extensions/yfm/Checkbox/CheckboxSpecs/index.ts +++ b/src/extensions/yfm/Checkbox/CheckboxSpecs/index.ts @@ -1,9 +1,10 @@ -import type {NodeSpec} from 'prosemirror-model'; import checkboxPlugin from '@diplodoc/transform/lib/plugins/checkbox'; +import type {NodeSpec} from 'prosemirror-model'; import type {ExtensionAuto, YENodeSpec} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; -import {b, CheckboxNode, idPrefix} from './const'; + +import {CheckboxNode, b, idPrefix} from './const'; import {fromYfm} from './fromYfm'; import {getSpec} from './spec'; import {toYfm} from './toYfm'; diff --git a/src/extensions/yfm/Checkbox/CheckboxSpecs/spec.ts b/src/extensions/yfm/Checkbox/CheckboxSpecs/spec.ts index 537e1aba..e844ab30 100644 --- a/src/extensions/yfm/Checkbox/CheckboxSpecs/spec.ts +++ b/src/extensions/yfm/Checkbox/CheckboxSpecs/spec.ts @@ -1,7 +1,9 @@ import type {NodeSpec} from 'prosemirror-model'; -import type {CheckboxSpecsOptions} from './index'; -import {b, CheckboxNode} from '../const'; + import {PlaceholderOptions} from '../../../../utils/placeholder'; +import {CheckboxNode, b} from '../const'; + +import type {CheckboxSpecsOptions} from './index'; const DEFAULT_LABEL_PLACEHOLDER = 'Checkbox'; diff --git a/src/extensions/yfm/Checkbox/actions.test.ts b/src/extensions/yfm/Checkbox/actions.test.ts index 828af55a..e41fdce3 100644 --- a/src/extensions/yfm/Checkbox/actions.test.ts +++ b/src/extensions/yfm/Checkbox/actions.test.ts @@ -2,9 +2,10 @@ import {Schema} from 'prosemirror-model'; import {EditorState, TextSelection} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; +import {applyCommand} from '../../../../tests/utils'; + import {getSpec} from './CheckboxSpecs/spec'; import {addCheckboxCmd} from './actions'; -import {applyCommand} from '../../../../tests/utils'; const schema = new Schema({ nodes: { diff --git a/src/extensions/yfm/Checkbox/actions.ts b/src/extensions/yfm/Checkbox/actions.ts index 92a72e40..d564476c 100644 --- a/src/extensions/yfm/Checkbox/actions.ts +++ b/src/extensions/yfm/Checkbox/actions.ts @@ -1,8 +1,10 @@ import {Fragment, Node, Schema} from 'prosemirror-model'; import {Command, TextSelection} from 'prosemirror-state'; import {findChildrenByType, findParentNodeOfType} from 'prosemirror-utils'; + import type {ActionSpec} from '../../../core'; import {pType} from '../../base/BaseSchema'; + import {checkboxInputType, checkboxLabelType, checkboxType} from './utils'; const createCheckbox = (schema: Schema, content?: Fragment | Node | Node[]) => diff --git a/src/extensions/yfm/Checkbox/index.ts b/src/extensions/yfm/Checkbox/index.ts index 853fa6cd..2605a395 100644 --- a/src/extensions/yfm/Checkbox/index.ts +++ b/src/extensions/yfm/Checkbox/index.ts @@ -1,12 +1,14 @@ import {replaceParentNodeOfType} from 'prosemirror-utils'; + import type {Action, ExtensionAuto} from '../../../core'; -import {b, CheckboxNode} from './const'; -import {keymapPlugin} from './plugin'; import {nodeInputRule} from '../../../utils/inputrules'; -import {addCheckbox} from './actions'; +import {pType} from '../../base/BaseSchema'; + import {CheckboxSpecs, CheckboxSpecsOptions} from './CheckboxSpecs'; +import {addCheckbox} from './actions'; +import {CheckboxNode, b} from './const'; +import {keymapPlugin} from './plugin'; import {checkboxInputType, checkboxType} from './utils'; -import {pType} from '../../base/BaseSchema'; import './index.scss'; diff --git a/src/extensions/yfm/Checkbox/plugin.test.ts b/src/extensions/yfm/Checkbox/plugin.test.ts index 19ea4ee9..1d79010c 100644 --- a/src/extensions/yfm/Checkbox/plugin.test.ts +++ b/src/extensions/yfm/Checkbox/plugin.test.ts @@ -2,9 +2,10 @@ import {Schema} from 'prosemirror-model'; import {EditorState, TextSelection} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; +import {applyCommand} from '../../../../tests/utils'; + import {getSpec} from './CheckboxSpecs/spec'; import {splitCheckbox} from './plugin'; -import {applyCommand} from '../../../../tests/utils'; const schema = new Schema({ nodes: { diff --git a/src/extensions/yfm/Checkbox/plugin.ts b/src/extensions/yfm/Checkbox/plugin.ts index dda76061..123ca170 100644 --- a/src/extensions/yfm/Checkbox/plugin.ts +++ b/src/extensions/yfm/Checkbox/plugin.ts @@ -2,8 +2,10 @@ import {keymap} from 'prosemirror-keymap'; import {Fragment} from 'prosemirror-model'; import {Command, TextSelection} from 'prosemirror-state'; import {findParentNodeOfType} from 'prosemirror-utils'; + import {isWholeSelection} from '../../../utils/selection'; import {pType} from '../../base/BaseSchema'; + import {checkboxInputType, checkboxLabelType, checkboxType} from './utils'; export const splitCheckbox: (replaceWithParagraph?: boolean) => Command = diff --git a/src/extensions/yfm/Color/Color.test.ts b/src/extensions/yfm/Color/Color.test.ts index dc0faf74..7cf67362 100644 --- a/src/extensions/yfm/Color/Color.test.ts +++ b/src/extensions/yfm/Color/Color.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {colorMarkName, ColorSpecs} from './ColorSpecs'; + +import {ColorSpecs, colorMarkName} from './ColorSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => diff --git a/src/extensions/yfm/Color/ColorSpecs/index.ts b/src/extensions/yfm/Color/ColorSpecs/index.ts index b80c0b7c..4efc1e66 100644 --- a/src/extensions/yfm/Color/ColorSpecs/index.ts +++ b/src/extensions/yfm/Color/ColorSpecs/index.ts @@ -1,7 +1,9 @@ import mdPlugin from 'markdown-it-color'; + import type {ExtensionAuto} from '../../../../core'; import {markTypeFactory} from '../../../../utils/schema'; -import {colorMarkName, colorClassName, domColorAttr} from './const'; + +import {colorClassName, colorMarkName, domColorAttr} from './const'; export {colorMarkName} from './const'; export const colorType = markTypeFactory(colorMarkName); diff --git a/src/extensions/yfm/Color/index.ts b/src/extensions/yfm/Color/index.ts index 0e38c624..8ff2873e 100644 --- a/src/extensions/yfm/Color/index.ts +++ b/src/extensions/yfm/Color/index.ts @@ -1,8 +1,10 @@ import {toggleMark} from 'prosemirror-commands'; + import type {Action, ExtensionAuto} from '../../../core'; import {isMarkActive} from '../../../utils/marks'; + import {ColorSpecs, colorType} from './ColorSpecs'; -import {colorAction, colorMarkName, Colors} from './const'; +import {Colors, colorAction, colorMarkName} from './const'; import {chainAND, parseStyleColorValue, validateClassNameColorName} from './utils'; import './colors.scss'; diff --git a/src/extensions/yfm/Color/utils.ts b/src/extensions/yfm/Color/utils.ts index 779d70c7..b67b4dc9 100644 --- a/src/extensions/yfm/Color/utils.ts +++ b/src/extensions/yfm/Color/utils.ts @@ -1,4 +1,5 @@ import type {Command} from 'prosemirror-state'; + import {Colors} from './const'; export {chainCommands as chainOR} from 'prosemirror-commands'; diff --git a/src/extensions/yfm/ImgSize/ImgSizeSpecs/index.ts b/src/extensions/yfm/ImgSize/ImgSizeSpecs/index.ts index 4f582b36..586d9e13 100644 --- a/src/extensions/yfm/ImgSize/ImgSizeSpecs/index.ts +++ b/src/extensions/yfm/ImgSize/ImgSizeSpecs/index.ts @@ -1,10 +1,11 @@ +import log from '@diplodoc/transform/lib/log'; +import imsize from '@diplodoc/transform/lib/plugins/imsize'; import isNumber from 'is-number'; import type {NodeSpec} from 'prosemirror-model'; -import imsize from '@diplodoc/transform/lib/plugins/imsize'; -import log from '@diplodoc/transform/lib/log'; import type {ExtensionAuto} from '../../../../core'; import {imageNodeName} from '../../../markdown/Image/const'; + import {ImgSizeAttr} from './const'; type ImsizeTypedAttributes = { diff --git a/src/extensions/yfm/ImgSize/YfmImage.test.ts b/src/extensions/yfm/ImgSize/YfmImage.test.ts index 3c916d2a..8ad15dfc 100644 --- a/src/extensions/yfm/ImgSize/YfmImage.test.ts +++ b/src/extensions/yfm/ImgSize/YfmImage.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSchema} from '../../base/BaseSchema'; + import {ImgSizeSpecs} from './ImgSizeSpecs'; -import {imageNodeName, ImgSizeAttr} from './const'; +import {ImgSizeAttr, imageNodeName} from './const'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSchema, {}).use(ImgSizeSpecs, {}), diff --git a/src/extensions/yfm/ImgSize/actions.ts b/src/extensions/yfm/ImgSize/actions.ts index 3928fae0..694448fc 100644 --- a/src/extensions/yfm/ImgSize/actions.ts +++ b/src/extensions/yfm/ImgSize/actions.ts @@ -1,7 +1,9 @@ import isNumber from 'is-number'; import type {Schema} from 'prosemirror-model'; + import type {ActionSpec} from '../../../core'; import {AddImageAttrs as AddImageAttrsBase, imgType} from '../../markdown/Image'; + import {ImgSizeAttr} from './const'; export type AddImageAttrs = AddImageAttrsBase & { diff --git a/src/extensions/yfm/ImgSize/index.ts b/src/extensions/yfm/ImgSize/index.ts index 765c39dc..e543b483 100644 --- a/src/extensions/yfm/ImgSize/index.ts +++ b/src/extensions/yfm/ImgSize/index.ts @@ -1,7 +1,8 @@ import type {Action, ExtensionAuto} from '../../../core'; -import {addImageAction} from './const'; -import {addImage, AddImageAttrs} from './actions'; + import {ImgSizeSpecs, ImgSizeSpecsOptions} from './ImgSizeSpecs'; +import {AddImageAttrs, addImage} from './actions'; +import {addImageAction} from './const'; export type ImgSizeOptions = ImgSizeSpecsOptions & {}; diff --git a/src/extensions/yfm/Math/Math.test.ts b/src/extensions/yfm/Math/Math.test.ts index 15d6d6e5..74078188 100644 --- a/src/extensions/yfm/Math/Math.test.ts +++ b/src/extensions/yfm/Math/Math.test.ts @@ -1,8 +1,10 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {MathSpecs, MathNode} from './MathSpecs'; + +import {MathNode, MathSpecs} from './MathSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(MathSpecs), diff --git a/src/extensions/yfm/Math/MathSpecs/index.ts b/src/extensions/yfm/Math/MathSpecs/index.ts index e0f839d7..0171cd34 100644 --- a/src/extensions/yfm/Math/MathSpecs/index.ts +++ b/src/extensions/yfm/Math/MathSpecs/index.ts @@ -2,6 +2,7 @@ import mathMdPlugin from 'markdown-it-katex'; import type {ExtensionAuto} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; + import {CLASSNAMES, MathNode} from './const'; export {MathNode} from './const'; diff --git a/src/extensions/yfm/Math/commands.ts b/src/extensions/yfm/Math/commands.ts index 2fd554b0..34f5eed3 100644 --- a/src/extensions/yfm/Math/commands.ts +++ b/src/extensions/yfm/Math/commands.ts @@ -1,5 +1,7 @@ import {Command, NodeSelection, TextSelection} from 'prosemirror-state'; + import {get$Cursor} from '../../../utils/selection'; + import {mathIType} from './const'; export const ignoreIfCursorInsideMathInline: Command = ({selection, schema}) => { diff --git a/src/extensions/yfm/Math/hint.tsx b/src/extensions/yfm/Math/hint.tsx index bebd1246..eb2dd4fa 100644 --- a/src/extensions/yfm/Math/hint.tsx +++ b/src/extensions/yfm/Math/hint.tsx @@ -1,6 +1,7 @@ import React from 'react'; -import {Link, Portal} from '@gravity-ui/uikit'; + import {HelpPopover, HelpPopoverProps} from '@gravity-ui/components'; +import {Link, Portal} from '@gravity-ui/uikit'; import {cn} from '../../../classname'; import {i18n} from '../../../i18n/math-hint'; diff --git a/src/extensions/yfm/Math/index.ts b/src/extensions/yfm/Math/index.ts index 0b1bb4fe..c2ce1fe6 100644 --- a/src/extensions/yfm/Math/index.ts +++ b/src/extensions/yfm/Math/index.ts @@ -1,20 +1,20 @@ import {chainCommands, setBlockType} from 'prosemirror-commands'; -import {hasParentNodeOfType} from 'prosemirror-utils'; -import {Command, TextSelection} from 'prosemirror-state'; import {textblockTypeInputRule} from 'prosemirror-inputrules'; +import {Command, TextSelection} from 'prosemirror-state'; +import {hasParentNodeOfType} from 'prosemirror-utils'; import type {Action, ExtensionAuto} from '../../../core'; -import {isTextSelection} from '../../../utils/selection'; import {inlineNodeInputRule} from '../../../utils/inputrules'; +import {isTextSelection} from '../../../utils/selection'; import {MathSpecs} from './MathSpecs'; -import {mathViewAndEditPlugin} from './view-and-edit'; -import {mathBType, mathIType} from './const'; import { ignoreIfCursorInsideMathInline, moveCursorToEndOfMathInline, removeEmptyMathInlineIfCursorIsAtBeginning, } from './commands'; +import {mathBType, mathIType} from './const'; +import {mathViewAndEditPlugin} from './view-and-edit'; import './index.scss'; diff --git a/src/extensions/yfm/Math/view-and-edit.scss b/src/extensions/yfm/Math/view-and-edit.scss index 0b6336c3..2b9d3e72 100644 --- a/src/extensions/yfm/Math/view-and-edit.scss +++ b/src/extensions/yfm/Math/view-and-edit.scss @@ -47,10 +47,7 @@ &::before { position: absolute; z-index: -1; - top: -2px; - right: -2px; - bottom: -2px; - left: -2px; + inset: -2px; content: ''; @@ -71,10 +68,7 @@ .math-inline, .math-block { position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; + inset: 0; overflow: hidden; diff --git a/src/extensions/yfm/Math/view-and-edit.ts b/src/extensions/yfm/Math/view-and-edit.ts index 527d503e..d46277b7 100644 --- a/src/extensions/yfm/Math/view-and-edit.ts +++ b/src/extensions/yfm/Math/view-and-edit.ts @@ -1,16 +1,18 @@ import katex from 'katex'; -import {Plugin} from 'prosemirror-state'; -import type {Node} from 'prosemirror-model'; import {keydownHandler} from 'prosemirror-keymap'; +import type {Node} from 'prosemirror-model'; +import {Plugin} from 'prosemirror-state'; import {Decoration, DecorationSet, NodeView} from 'prosemirror-view'; -import {isTextSelection} from '../../../utils/selection'; + import type {ReactRenderer, RendererItem} from '../../../extensions/behavior/ReactRenderer'; +import {isTextSelection} from '../../../utils/selection'; + import {moveCursorToEndOfMathInline} from './commands'; import {CLASSNAMES, MathNode} from './const'; import {b, renderMathHint} from './hint'; -import 'katex/dist/katex.min.css'; -import './view-and-edit.scss'; +import 'katex/dist/katex.min.css'; // eslint-disable-line import/no-extraneous-dependencies +import './view-and-edit.scss'; // eslint-disable-line import/order export abstract class MathNodeView implements NodeView { dom: HTMLElement; diff --git a/src/extensions/yfm/Monospace/Monospace.test.ts b/src/extensions/yfm/Monospace/Monospace.test.ts index 3791a788..933d81ab 100644 --- a/src/extensions/yfm/Monospace/Monospace.test.ts +++ b/src/extensions/yfm/Monospace/Monospace.test.ts @@ -1,9 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {monospaceMarkName, MonospaceSpecs} from './MonospaceSpecs'; + +import {MonospaceSpecs, monospaceMarkName} from './MonospaceSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(MonospaceSpecs), diff --git a/src/extensions/yfm/Monospace/index.ts b/src/extensions/yfm/Monospace/index.ts index c738e871..46d44c93 100644 --- a/src/extensions/yfm/Monospace/index.ts +++ b/src/extensions/yfm/Monospace/index.ts @@ -2,7 +2,7 @@ import type {Action, ExtensionAuto} from '../../../core'; import {createToggleMarkAction} from '../../../utils/actions'; import {markInputRule} from '../../../utils/inputrules'; -import {monospaceMarkName, MonospaceSpecs, monospaceType} from './MonospaceSpecs'; +import {MonospaceSpecs, monospaceMarkName, monospaceType} from './MonospaceSpecs'; export {monospaceMarkName, monospaceType} from './MonospaceSpecs'; /** @deprecated Use `monospaceMarkName` instead */ diff --git a/src/extensions/yfm/Video/Video.test.ts b/src/extensions/yfm/Video/Video.test.ts index 66fda7e2..4eacddf3 100644 --- a/src/extensions/yfm/Video/Video.test.ts +++ b/src/extensions/yfm/Video/Video.test.ts @@ -1,7 +1,9 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; + import {VideoSpecs} from './VideoSpecs'; import {VideoAttr, videoNodeName} from './VideoSpecs/const'; import {VideoService} from './VideoSpecs/md-video'; diff --git a/src/extensions/yfm/Video/VideoSpecs/index.ts b/src/extensions/yfm/Video/VideoSpecs/index.ts index 6b326278..157b99d1 100644 --- a/src/extensions/yfm/Video/VideoSpecs/index.ts +++ b/src/extensions/yfm/Video/VideoSpecs/index.ts @@ -1,8 +1,10 @@ +import log from '@diplodoc/transform/lib/log'; + import type {ExtensionAuto} from '../../../../core'; + import {VideoAttr, videoNodeName} from './const'; +import {VideoPluginOptions, VideoService, VideoToken, defaults, videoPlugin} from './md-video'; import {createViewStub, serializeNodeToString} from './utils'; -import {defaults, VideoPluginOptions, VideoService, videoPlugin, VideoToken} from './md-video'; -import log from '@diplodoc/transform/lib/log'; // we don't support osf service const availableServices: ReadonlySet = new Set([ diff --git a/src/extensions/yfm/Video/VideoSpecs/utils.ts b/src/extensions/yfm/Video/VideoSpecs/utils.ts index d2976e80..bd1c505d 100644 --- a/src/extensions/yfm/Video/VideoSpecs/utils.ts +++ b/src/extensions/yfm/Video/VideoSpecs/utils.ts @@ -1,6 +1,8 @@ import type {Node} from 'prosemirror-model'; + import {nodeTypeFactory} from '../../../../utils/schema'; -import {videoNodeName, VideoAttr} from './const'; + +import {VideoAttr, videoNodeName} from './const'; export const videoType = nodeTypeFactory(videoNodeName); diff --git a/src/extensions/yfm/Video/actions.ts b/src/extensions/yfm/Video/actions.ts index 9f19dbe9..df78ac6a 100644 --- a/src/extensions/yfm/Video/actions.ts +++ b/src/extensions/yfm/Video/actions.ts @@ -1,9 +1,11 @@ import type {ActionSpec} from '../../../core'; -import type {VideoActionAttrs} from './index'; + import {VideoAttr} from './VideoSpecs/const'; import {parseVideoUrl} from './VideoSpecs/md-video'; import {videoType} from './VideoSpecs/utils'; +import type {VideoActionAttrs} from './index'; + export const addVideo: ActionSpec = { isEnable(state) { return state.selection.empty; diff --git a/src/extensions/yfm/Video/index.ts b/src/extensions/yfm/Video/index.ts index 7650cb7c..e4fdd52d 100644 --- a/src/extensions/yfm/Video/index.ts +++ b/src/extensions/yfm/Video/index.ts @@ -1,8 +1,9 @@ import type {Action, ExtensionAuto} from '../../../core'; -import {vAction} from './const'; -import {addVideo} from './actions'; -import {VideoService} from './VideoSpecs/md-video'; + import {VideoSpecs, VideoSpecsOptions} from './VideoSpecs'; +import {VideoService} from './VideoSpecs/md-video'; +import {addVideo} from './actions'; +import {vAction} from './const'; export {videoNodeName, videoType} from './VideoSpecs'; diff --git a/src/extensions/yfm/YfmCut/YfmCut.test.ts b/src/extensions/yfm/YfmCut/YfmCut.test.ts index f44597f3..858e7a91 100644 --- a/src/extensions/yfm/YfmCut/YfmCut.test.ts +++ b/src/extensions/yfm/YfmCut/YfmCut.test.ts @@ -1,17 +1,19 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; import { - blockquoteNodeName, BlockquoteSpecs, - italicMarkName, - ItalicSpecs, + ImageAttr, ImageSpecs, + ItalicSpecs, + blockquoteNodeName, imageNodeName, - ImageAttr, + italicMarkName, } from '../../markdown/specs'; + import {CutNode, YfmCutSpecs} from './YfmCutSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ diff --git a/src/extensions/yfm/YfmCut/YfmCutSpecs/fromYfm.ts b/src/extensions/yfm/YfmCut/YfmCutSpecs/fromYfm.ts index 83c537fb..0aecfe3e 100644 --- a/src/extensions/yfm/YfmCut/YfmCutSpecs/fromYfm.ts +++ b/src/extensions/yfm/YfmCut/YfmCutSpecs/fromYfm.ts @@ -1,4 +1,5 @@ import type {ParserToken} from '../../../../core'; + import {CutNode} from './const'; const getAttrs: ParserToken['getAttrs'] = (tok) => (tok.attrs ? Object.fromEntries(tok.attrs) : {}); diff --git a/src/extensions/yfm/YfmCut/YfmCutSpecs/index.ts b/src/extensions/yfm/YfmCut/YfmCutSpecs/index.ts index 16130979..e5b9a213 100644 --- a/src/extensions/yfm/YfmCut/YfmCutSpecs/index.ts +++ b/src/extensions/yfm/YfmCut/YfmCutSpecs/index.ts @@ -4,6 +4,7 @@ import type {NodeSpec} from 'prosemirror-model'; import type {ExtensionAuto, YENodeSpec} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; + import {CutNode} from './const'; import {fromYfm} from './fromYfm'; import {getSpec} from './spec'; diff --git a/src/extensions/yfm/YfmCut/YfmCutSpecs/spec.ts b/src/extensions/yfm/YfmCut/YfmCutSpecs/spec.ts index f601754d..48bd2051 100644 --- a/src/extensions/yfm/YfmCut/YfmCutSpecs/spec.ts +++ b/src/extensions/yfm/YfmCut/YfmCutSpecs/spec.ts @@ -1,7 +1,9 @@ import type {NodeSpec} from 'prosemirror-model'; -import type {YfmCutSpecsOptions} from './index'; -import {CutNode} from '../const'; + import {PlaceholderOptions} from '../../../../utils/placeholder'; +import {CutNode} from '../const'; + +import type {YfmCutSpecsOptions} from './index'; const DEFAULT_PLACEHOLDERS = { Title: 'Cut title', diff --git a/src/extensions/yfm/YfmCut/YfmCutSpecs/toYfm.ts b/src/extensions/yfm/YfmCut/YfmCutSpecs/toYfm.ts index 674948e9..75d1c5fc 100644 --- a/src/extensions/yfm/YfmCut/YfmCutSpecs/toYfm.ts +++ b/src/extensions/yfm/YfmCut/YfmCutSpecs/toYfm.ts @@ -1,6 +1,7 @@ import type {SerializerNodeToken} from '../../../../core'; -import {getPlaceholderContent} from '../../../../utils/placeholder'; import {isNodeEmpty} from '../../../../utils/nodes'; +import {getPlaceholderContent} from '../../../../utils/placeholder'; + import {CutNode} from './const'; export const toYfm: Record = { diff --git a/src/extensions/yfm/YfmCut/actions/toYfmCut.ts b/src/extensions/yfm/YfmCut/actions/toYfmCut.ts index 565aabcd..708ba00d 100644 --- a/src/extensions/yfm/YfmCut/actions/toYfmCut.ts +++ b/src/extensions/yfm/YfmCut/actions/toYfmCut.ts @@ -1,6 +1,7 @@ import type {Node, Schema} from 'prosemirror-model'; import type {Command} from 'prosemirror-state'; import {findParentNodeOfType} from 'prosemirror-utils'; + import type {ActionSpec} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; import {CutNode} from '../const'; diff --git a/src/extensions/yfm/YfmCut/commands.test.ts b/src/extensions/yfm/YfmCut/commands.test.ts index a26ad450..cc0c0011 100644 --- a/src/extensions/yfm/YfmCut/commands.test.ts +++ b/src/extensions/yfm/YfmCut/commands.test.ts @@ -1,7 +1,7 @@ import {Schema} from 'prosemirror-model'; -import {EditorView} from 'prosemirror-view'; import {EditorState, TextSelection} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; +import {EditorView} from 'prosemirror-view'; import {getSpec} from './YfmCutSpecs/spec'; import {backToCutTitle, removeCut} from './commands'; diff --git a/src/extensions/yfm/YfmCut/commands.ts b/src/extensions/yfm/YfmCut/commands.ts index 8add469a..b34accef 100644 --- a/src/extensions/yfm/YfmCut/commands.ts +++ b/src/extensions/yfm/YfmCut/commands.ts @@ -1,10 +1,12 @@ import {Fragment} from 'prosemirror-model'; import {Command, TextSelection} from 'prosemirror-state'; -import {pType} from '../../base'; + +import {findFirstTextblockChild} from '../../../utils/nodes'; import {isSameNodeType} from '../../../utils/schema'; import {isTextSelection} from '../../../utils/selection'; -import {findFirstTextblockChild} from '../../../utils/nodes'; -import {cutType, cutContentType, cutTitleType} from './const'; +import {pType} from '../../base'; + +import {cutContentType, cutTitleType, cutType} from './const'; export const liftEmptyBlockFromCut: Command = (state, dispatch) => { const {selection, schema} = state; diff --git a/src/extensions/yfm/YfmCut/index.ts b/src/extensions/yfm/YfmCut/index.ts index b16bb410..a576bced 100644 --- a/src/extensions/yfm/YfmCut/index.ts +++ b/src/extensions/yfm/YfmCut/index.ts @@ -1,13 +1,15 @@ import {chainCommands} from 'prosemirror-commands'; + import type {Action, ExtensionAuto} from '../../../core'; -import {withLogAction} from '../../../utils/keymap'; import {nodeInputRule} from '../../../utils/inputrules'; -import {cutType} from './const'; +import {withLogAction} from '../../../utils/keymap'; + +import {YfmCutSpecs, YfmCutSpecsOptions} from './YfmCutSpecs'; import {createYfmCut, toYfmCut} from './actions/toYfmCut'; import {backToCutTitle, exitFromCutTitle, liftEmptyBlockFromCut, removeCut} from './commands'; +import {cutType} from './const'; import {YfmCutTitleNodeView} from './nodeviews/yfm-cut-title'; import {cutAutoOpenPlugin} from './plugins/auto-open'; -import {YfmCutSpecs, YfmCutSpecsOptions} from './YfmCutSpecs'; import './index.scss'; diff --git a/src/extensions/yfm/YfmCut/plugins/auto-open.ts b/src/extensions/yfm/YfmCut/plugins/auto-open.ts index 3550f163..ad1735b1 100644 --- a/src/extensions/yfm/YfmCut/plugins/auto-open.ts +++ b/src/extensions/yfm/YfmCut/plugins/auto-open.ts @@ -1,8 +1,9 @@ import throttle from 'lodash/throttle'; -import {Plugin, PluginKey, PluginView} from 'prosemirror-state'; -import type {EditorView} from 'prosemirror-view'; import type {ResolvedPos} from 'prosemirror-model'; +import {Plugin, PluginKey, PluginView} from 'prosemirror-state'; import {findDomRefAtPos} from 'prosemirror-utils'; +import type {EditorView} from 'prosemirror-view'; + import {isTextSelection} from '../../../../utils/selection'; import {cutContentType, cutType} from '../const'; diff --git a/src/extensions/yfm/YfmDist/YfmDistSpecs/index.ts b/src/extensions/yfm/YfmDist/YfmDistSpecs/index.ts index c8431746..08d20410 100644 --- a/src/extensions/yfm/YfmDist/YfmDistSpecs/index.ts +++ b/src/extensions/yfm/YfmDist/YfmDistSpecs/index.ts @@ -1,4 +1,5 @@ import noop from 'lodash/noop'; + import type {ExtensionAuto} from '../../../../core'; export const YfmDistSpecs: ExtensionAuto = (builder) => { diff --git a/src/extensions/yfm/YfmDist/index.ts b/src/extensions/yfm/YfmDist/index.ts index 707a16ff..d80c407d 100644 --- a/src/extensions/yfm/YfmDist/index.ts +++ b/src/extensions/yfm/YfmDist/index.ts @@ -1,12 +1,13 @@ -import {Plugin} from 'prosemirror-state'; - import '@diplodoc/transform/dist/js/yfm'; -import '@diplodoc/transform/dist/css/yfm.css'; -import './yfm.scss'; +import {Plugin} from 'prosemirror-state'; import type {ExtensionAuto} from '../../../core'; + import {YfmDistSpecs} from './YfmDistSpecs'; +import '@diplodoc/transform/dist/css/yfm.css'; +import './yfm.scss'; // eslint-disable-line import/order + export const YfmDist: ExtensionAuto = (builder) => { // ignore yfm lint token builder.use(YfmDistSpecs); diff --git a/src/extensions/yfm/YfmFile/YfmFile.test.ts b/src/extensions/yfm/YfmFile/YfmFile.test.ts index 82d093e4..160285e9 100644 --- a/src/extensions/yfm/YfmFile/YfmFile.test.ts +++ b/src/extensions/yfm/YfmFile/YfmFile.test.ts @@ -1,10 +1,11 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {yfmFileNodeName, YfmFileSpecs} from './YfmFileSpecs'; + +import {YfmFileSpecs, yfmFileNodeName} from './YfmFileSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => builder.use(BaseSpecsPreset, {}).use(YfmFileSpecs), diff --git a/src/extensions/yfm/YfmFile/YfmFileSpecs/const.ts b/src/extensions/yfm/YfmFile/YfmFileSpecs/const.ts index e39b0b7f..9f70864c 100644 --- a/src/extensions/yfm/YfmFile/YfmFileSpecs/const.ts +++ b/src/extensions/yfm/YfmFile/YfmFileSpecs/const.ts @@ -1,12 +1,11 @@ -import type {AttributeSpec} from 'prosemirror-model'; - import { - FileSpecialAttr, - FILE_TOKEN, - FILE_TO_LINK_ATTRS_MAP, KNOWN_ATTRS as FILE_KNOWN_ATTRS, REQUIRED_ATTRS as FILE_REQUIRED_ATTRS, + FILE_TOKEN, + FILE_TO_LINK_ATTRS_MAP, + FileSpecialAttr, } from '@diplodoc/transform/lib/plugins/file/const'; +import type {AttributeSpec} from 'prosemirror-model'; export const yfmFileNodeName = FILE_TOKEN; diff --git a/src/extensions/yfm/YfmFile/YfmFileSpecs/index.ts b/src/extensions/yfm/YfmFile/YfmFileSpecs/index.ts index ce2fcc66..fdf5a67b 100644 --- a/src/extensions/yfm/YfmFile/YfmFileSpecs/index.ts +++ b/src/extensions/yfm/YfmFile/YfmFileSpecs/index.ts @@ -3,7 +3,8 @@ import {FileClassName, LinkHtmlAttr, PREFIX} from '@diplodoc/transform/lib/plugi import type {Extension} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; -import {fileNodeAttrsSpec, KNOWN_ATTRS, LINK_TO_FILE_ATTRS_MAP, yfmFileNodeName} from './const'; + +import {KNOWN_ATTRS, LINK_TO_FILE_ATTRS_MAP, fileNodeAttrsSpec, yfmFileNodeName} from './const'; export {yfmFileNodeName} from './const'; export const fileType = nodeTypeFactory(yfmFileNodeName); diff --git a/src/extensions/yfm/YfmHeading/YfmHeading.test.ts b/src/extensions/yfm/YfmHeading/YfmHeading.test.ts index 89395ca0..1ae30426 100644 --- a/src/extensions/yfm/YfmHeading/YfmHeading.test.ts +++ b/src/extensions/yfm/YfmHeading/YfmHeading.test.ts @@ -1,10 +1,12 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {boldMarkName, BoldSpecs, headingNodeName} from '../../markdown/specs'; -import {YfmHeadingSpecs, YfmHeadingAttr} from './YfmHeadingSpecs'; +import {BoldSpecs, boldMarkName, headingNodeName} from '../../markdown/specs'; + +import {YfmHeadingAttr, YfmHeadingSpecs} from './YfmHeadingSpecs'; const {schema, parser, serializer} = new ExtensionsManager({ extensions: (builder) => diff --git a/src/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.ts b/src/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.ts index 3e657e53..f3005241 100644 --- a/src/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.ts +++ b/src/extensions/yfm/YfmHeading/YfmHeadingSpecs/index.ts @@ -1,6 +1,8 @@ import type {Node, NodeSpec} from 'prosemirror-model'; + import type {ExtensionAuto} from '../../../../core'; -import {headingNodeName, YfmHeadingAttr} from './const'; + +import {YfmHeadingAttr, headingNodeName} from './const'; import {getNodeAttrs} from './utils'; const DEFAULT_PLACEHOLDER = (node: Node) => 'Heading ' + node.attrs[YfmHeadingAttr.Level]; diff --git a/src/extensions/yfm/YfmHeading/YfmHeadingSpecs/utils.ts b/src/extensions/yfm/YfmHeading/YfmHeadingSpecs/utils.ts index 22a0992d..fa1190ad 100644 --- a/src/extensions/yfm/YfmHeading/YfmHeadingSpecs/utils.ts +++ b/src/extensions/yfm/YfmHeading/YfmHeadingSpecs/utils.ts @@ -1,5 +1,6 @@ import type {ParseRule} from 'prosemirror-model'; -import {YfmHeadingAttr, HeadingLevel} from '../const'; + +import {HeadingLevel, YfmHeadingAttr} from '../const'; export {hType, hasParentHeading, headingRule} from '../../../markdown/Heading/utils'; // const slug = require('slugify'); diff --git a/src/extensions/yfm/YfmHeading/actions.ts b/src/extensions/yfm/YfmHeading/actions.ts index d8ea35eb..efe7b1af 100644 --- a/src/extensions/yfm/YfmHeading/actions.ts +++ b/src/extensions/yfm/YfmHeading/actions.ts @@ -1,7 +1,8 @@ import type {ActionSpec} from '../../../core'; + +import {hasParentHeading} from './YfmHeadingSpecs/utils'; import {toHeading} from './commands'; import {HeadingLevel} from './const'; -import {hasParentHeading} from './YfmHeadingSpecs/utils'; export const headingAction = (level: HeadingLevel): ActionSpec => { const cmd = toHeading(level); diff --git a/src/extensions/yfm/YfmHeading/commands.ts b/src/extensions/yfm/YfmHeading/commands.ts index cd0e55ff..ff7cf012 100644 --- a/src/extensions/yfm/YfmHeading/commands.ts +++ b/src/extensions/yfm/YfmHeading/commands.ts @@ -1,8 +1,9 @@ import {setBlockType} from 'prosemirror-commands'; import type {Command} from 'prosemirror-state'; import {findParentNodeOfType} from 'prosemirror-utils'; -import {YfmHeadingAttr, HeadingLevel} from './const'; + import {hType} from './YfmHeadingSpecs/utils'; +import {HeadingLevel, YfmHeadingAttr} from './const'; export {resetHeading} from '../../markdown/Heading/commands'; diff --git a/src/extensions/yfm/YfmHeading/index.ts b/src/extensions/yfm/YfmHeading/index.ts index 9868bbb4..119913a6 100644 --- a/src/extensions/yfm/YfmHeading/index.ts +++ b/src/extensions/yfm/YfmHeading/index.ts @@ -1,10 +1,11 @@ import type {Action, ExtensionAuto, Keymap} from '../../../core'; import {withLogAction} from '../../../utils/keymap'; -import {HeadingAction} from './const'; -import {headingRule, hType} from './YfmHeadingSpecs/utils'; + +import {YfmHeadingSpecs, YfmHeadingSpecsOptions} from './YfmHeadingSpecs'; +import {hType, headingRule} from './YfmHeadingSpecs/utils'; import {headingAction} from './actions'; import {resetHeading, toHeading} from './commands'; -import {YfmHeadingSpecs, YfmHeadingSpecsOptions} from './YfmHeadingSpecs'; +import {HeadingAction} from './const'; export {YfmHeadingAttr} from './const'; diff --git a/src/extensions/yfm/YfmNote/YfmNote.test.ts b/src/extensions/yfm/YfmNote/YfmNote.test.ts index 55ebbe6b..c3d0ed75 100644 --- a/src/extensions/yfm/YfmNote/YfmNote.test.ts +++ b/src/extensions/yfm/YfmNote/YfmNote.test.ts @@ -1,17 +1,19 @@ import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; + import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; import { - ItalicSpecs, BlockquoteSpecs, - italicMarkName, - blockquoteNodeName, + ImageAttr, ImageSpecs, + ItalicSpecs, + blockquoteNodeName, imageNodeName, - ImageAttr, + italicMarkName, } from '../../markdown/specs'; + import {YfmNoteSpecs} from './YfmNoteSpecs'; import {NoteAttrs, NoteNode} from './const'; diff --git a/src/extensions/yfm/YfmNote/YfmNoteSpecs/fromYfm.ts b/src/extensions/yfm/YfmNote/YfmNoteSpecs/fromYfm.ts index e4d9a373..151b9fb9 100644 --- a/src/extensions/yfm/YfmNote/YfmNoteSpecs/fromYfm.ts +++ b/src/extensions/yfm/YfmNote/YfmNoteSpecs/fromYfm.ts @@ -1,4 +1,5 @@ import type {ParserToken} from '../../../../core'; + import {NoteNode} from './const'; export const fromYfm: Record = { diff --git a/src/extensions/yfm/YfmNote/YfmNoteSpecs/index.ts b/src/extensions/yfm/YfmNote/YfmNoteSpecs/index.ts index 9fa84b31..16c990f2 100644 --- a/src/extensions/yfm/YfmNote/YfmNoteSpecs/index.ts +++ b/src/extensions/yfm/YfmNote/YfmNoteSpecs/index.ts @@ -3,10 +3,11 @@ import yfmPlugin from '@diplodoc/transform/lib/plugins/notes'; import type {NodeSpec} from 'prosemirror-model'; import type {ExtensionAuto} from '../../../../core'; -import {toYfm} from './toYfm'; + import {NoteNode} from './const'; import {fromYfm} from './fromYfm'; import {getSpec} from './spec'; +import {toYfm} from './toYfm'; export {NoteNode as YfmNoteNode} from './const'; export {noteType, noteTitleType} from './utils'; diff --git a/src/extensions/yfm/YfmNote/YfmNoteSpecs/spec.ts b/src/extensions/yfm/YfmNote/YfmNoteSpecs/spec.ts index 73c46989..3e35bdf7 100644 --- a/src/extensions/yfm/YfmNote/YfmNoteSpecs/spec.ts +++ b/src/extensions/yfm/YfmNote/YfmNoteSpecs/spec.ts @@ -1,8 +1,11 @@ import type {NodeSpec} from 'prosemirror-model'; -import {YfmNoteSpecsOptions} from './index'; -import {NoteAttrs, NoteNode} from './const'; + import {PlaceholderOptions} from '../../../../utils/placeholder'; +import {NoteAttrs, NoteNode} from './const'; + +import {YfmNoteSpecsOptions} from './index'; + const DEFAULT_TITLE_PLACEHOLDER = 'Note'; const DEFAULT_CONTENT_PLACEHOLDER = 'Note content'; diff --git a/src/extensions/yfm/YfmNote/YfmNoteSpecs/toYfm.ts b/src/extensions/yfm/YfmNote/YfmNoteSpecs/toYfm.ts index 068959cb..39d7da01 100644 --- a/src/extensions/yfm/YfmNote/YfmNoteSpecs/toYfm.ts +++ b/src/extensions/yfm/YfmNote/YfmNoteSpecs/toYfm.ts @@ -1,6 +1,7 @@ -import {isNodeEmpty} from '../../../../utils/nodes'; import type {SerializerNodeToken} from '../../../../core'; +import {isNodeEmpty} from '../../../../utils/nodes'; import {getPlaceholderContent} from '../../../../utils/placeholder'; + import {NoteAttrs, NoteNode} from './const'; export const toYfm: Record = { diff --git a/src/extensions/yfm/YfmNote/YfmNoteSpecs/utils.ts b/src/extensions/yfm/YfmNote/YfmNoteSpecs/utils.ts index 4e674fbc..d0715116 100644 --- a/src/extensions/yfm/YfmNote/YfmNoteSpecs/utils.ts +++ b/src/extensions/yfm/YfmNote/YfmNoteSpecs/utils.ts @@ -1,4 +1,5 @@ import {nodeTypeFactory} from '../../../../utils/schema'; + import {NoteNode} from './const'; export const noteType = nodeTypeFactory(NoteNode.Note); diff --git a/src/extensions/yfm/YfmNote/actions/toYfmNote.ts b/src/extensions/yfm/YfmNote/actions/toYfmNote.ts index 065d2214..073f8948 100644 --- a/src/extensions/yfm/YfmNote/actions/toYfmNote.ts +++ b/src/extensions/yfm/YfmNote/actions/toYfmNote.ts @@ -1,6 +1,7 @@ import type {Node, Schema} from 'prosemirror-model'; import {Command, EditorState} from 'prosemirror-state'; import {findParentNodeOfType, hasParentNodeOfType} from 'prosemirror-utils'; + import type {ActionSpec} from '../../../../core'; import {NoteAttrs} from '../const'; import {noteContentType, noteTitleType, noteType} from '../utils'; diff --git a/src/extensions/yfm/YfmNote/commands.test.ts b/src/extensions/yfm/YfmNote/commands.test.ts index dafbacb5..b27d4e73 100644 --- a/src/extensions/yfm/YfmNote/commands.test.ts +++ b/src/extensions/yfm/YfmNote/commands.test.ts @@ -1,7 +1,7 @@ import {Schema} from 'prosemirror-model'; -import {EditorView} from 'prosemirror-view'; import {EditorState, TextSelection} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; +import {EditorView} from 'prosemirror-view'; import {getSpec} from './YfmNoteSpecs/spec'; import {backToNoteTitle, removeNote} from './commands'; diff --git a/src/extensions/yfm/YfmNote/commands.ts b/src/extensions/yfm/YfmNote/commands.ts index 844e7dd6..a5279b31 100644 --- a/src/extensions/yfm/YfmNote/commands.ts +++ b/src/extensions/yfm/YfmNote/commands.ts @@ -1,11 +1,13 @@ import {Fragment, Node} from 'prosemirror-model'; import type {Command} from 'prosemirror-state'; import {TextSelection} from 'prosemirror-state'; -import {pType} from '../../base'; + +import {findFirstTextblockChild} from '../../../utils/nodes'; import {isSameNodeType} from '../../../utils/schema'; import {isTextSelection} from '../../../utils/selection'; -import {findFirstTextblockChild} from '../../../utils/nodes'; -import {noteType, noteTitleType} from './utils'; +import {pType} from '../../base'; + +import {noteTitleType, noteType} from './utils'; export const exitFromNoteTitle: Command = (state, dispatch) => { const {selection, schema} = state; diff --git a/src/extensions/yfm/YfmNote/index.ts b/src/extensions/yfm/YfmNote/index.ts index 51e589b7..78f9829a 100644 --- a/src/extensions/yfm/YfmNote/index.ts +++ b/src/extensions/yfm/YfmNote/index.ts @@ -1,11 +1,13 @@ import {chainCommands} from 'prosemirror-commands'; + import type {Action, ExtensionAuto} from '../../../core'; +import {nodeInputRule} from '../../../utils/inputrules'; import {withLogAction} from '../../../utils/keymap'; + +import {YfmNoteSpecs, YfmNoteSpecsOptions} from './YfmNoteSpecs'; import {createYfmNote, toYfmNote} from './actions/toYfmNote'; -import {nodeInputRule} from '../../../utils/inputrules'; import {backToNoteTitle, exitFromNoteTitle, removeNote} from './commands'; import {noteType} from './utils'; -import {YfmNoteSpecs, YfmNoteSpecsOptions} from './YfmNoteSpecs'; import './index.scss'; diff --git a/src/extensions/yfm/YfmTable/YfmTable.test.ts b/src/extensions/yfm/YfmTable/YfmTable.test.ts index e8c972bb..d5f215d3 100644 --- a/src/extensions/yfm/YfmTable/YfmTable.test.ts +++ b/src/extensions/yfm/YfmTable/YfmTable.test.ts @@ -1,13 +1,15 @@ import {EditorState} from 'prosemirror-state'; -import {EditorView} from 'prosemirror-view'; import {builders} from 'prosemirror-test-builder'; -import {createMarkupChecker} from '../../../../tests/sameMarkup'; +import {EditorView} from 'prosemirror-view'; + import {dispatchPasteEvent} from '../../../../tests/dispatch-event'; import {parseDOM} from '../../../../tests/parse-dom'; +import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; -import {blockquoteNodeName, BlockquoteSpecs} from '../../markdown/Blockquote/BlockquoteSpecs'; -import {YfmTableSpecs, YfmTableNode} from './YfmTableSpecs'; +import {BlockquoteSpecs, blockquoteNodeName} from '../../markdown/Blockquote/BlockquoteSpecs'; + +import {YfmTableNode, YfmTableSpecs} from './YfmTableSpecs'; import {fixPastedTableBodies} from './paste'; const {schema, parser, serializer} = new ExtensionsManager({ diff --git a/src/extensions/yfm/YfmTable/YfmTableSpecs/fromYfm.ts b/src/extensions/yfm/YfmTable/YfmTableSpecs/fromYfm.ts index af31bcf3..c7d6cab4 100644 --- a/src/extensions/yfm/YfmTable/YfmTableSpecs/fromYfm.ts +++ b/src/extensions/yfm/YfmTable/YfmTableSpecs/fromYfm.ts @@ -1,4 +1,5 @@ import type {ParserToken} from '../../../../core'; + import {YfmTableNode} from './const'; export const fromYfm: Record = { diff --git a/src/extensions/yfm/YfmTable/YfmTableSpecs/index.ts b/src/extensions/yfm/YfmTable/YfmTableSpecs/index.ts index 68f769f8..d3a1a1f6 100644 --- a/src/extensions/yfm/YfmTable/YfmTableSpecs/index.ts +++ b/src/extensions/yfm/YfmTable/YfmTableSpecs/index.ts @@ -3,6 +3,7 @@ import yfmTable from '@diplodoc/transform/lib/plugins/table'; import type {NodeSpec} from 'prosemirror-model'; import type {ExtensionWithOptions} from '../../../../core'; + import {YfmTableNode} from './const'; import {fromYfm} from './fromYfm'; import {getSpec} from './spec'; diff --git a/src/extensions/yfm/YfmTable/YfmTableSpecs/spec.ts b/src/extensions/yfm/YfmTable/YfmTableSpecs/spec.ts index 66f33707..295b61b4 100644 --- a/src/extensions/yfm/YfmTable/YfmTableSpecs/spec.ts +++ b/src/extensions/yfm/YfmTable/YfmTableSpecs/spec.ts @@ -1,9 +1,12 @@ import type {NodeSpec} from 'prosemirror-model'; + import {TableRole} from '../../../../table-utils'; -import type {YfmTableSpecsOptions} from './index'; -import {YfmTableNode} from './const'; import {PlaceholderOptions} from '../../../../utils/placeholder'; +import {YfmTableNode} from './const'; + +import type {YfmTableSpecsOptions} from './index'; + const DEFAULT_CELL_PLACEHOLDER = 'Table cell'; export const getSpec = ( diff --git a/src/extensions/yfm/YfmTable/YfmTableSpecs/toYfm.ts b/src/extensions/yfm/YfmTable/YfmTableSpecs/toYfm.ts index 66a18aed..63899738 100644 --- a/src/extensions/yfm/YfmTable/YfmTableSpecs/toYfm.ts +++ b/src/extensions/yfm/YfmTable/YfmTableSpecs/toYfm.ts @@ -1,4 +1,5 @@ import type {SerializerNodeToken} from '../../../../core'; + import {YfmTableNode} from './const'; export const toYfm: Record = { diff --git a/src/extensions/yfm/YfmTable/YfmTableSpecs/utils.ts b/src/extensions/yfm/YfmTable/YfmTableSpecs/utils.ts index 5e710e05..edf72d64 100644 --- a/src/extensions/yfm/YfmTable/YfmTableSpecs/utils.ts +++ b/src/extensions/yfm/YfmTable/YfmTableSpecs/utils.ts @@ -1,4 +1,5 @@ import {nodeTypeFactory} from '../../../../utils/schema'; + import {YfmTableNode} from './const'; export const yfmTableType = nodeTypeFactory(YfmTableNode.Table); diff --git a/src/extensions/yfm/YfmTable/actions.test.ts b/src/extensions/yfm/YfmTable/actions.test.ts index 79934dca..700e7172 100644 --- a/src/extensions/yfm/YfmTable/actions.test.ts +++ b/src/extensions/yfm/YfmTable/actions.test.ts @@ -2,9 +2,10 @@ import {Schema} from 'prosemirror-model'; import {EditorState} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; +import {applyCommand} from '../../../../tests/utils'; + import {getSpec} from './YfmTableSpecs/spec'; import {createYfmTableCommand} from './actions'; -import {applyCommand} from '../../../../tests/utils'; const schema = new Schema({ nodes: { diff --git a/src/extensions/yfm/YfmTable/actions.ts b/src/extensions/yfm/YfmTable/actions.ts index 1f9a2bc0..5061d381 100644 --- a/src/extensions/yfm/YfmTable/actions.ts +++ b/src/extensions/yfm/YfmTable/actions.ts @@ -1,5 +1,7 @@ import type {Command} from 'prosemirror-state'; + import {pType} from '../../base/BaseSchema'; + import {yfmTableBodyType, yfmTableCellType, yfmTableRowType, yfmTableType} from './utils'; export const createYfmTableCommand: Command = (state, dispatch) => { diff --git a/src/extensions/yfm/YfmTable/commands/backspace.test.ts b/src/extensions/yfm/YfmTable/commands/backspace.test.ts index 36ba7166..e19be912 100644 --- a/src/extensions/yfm/YfmTable/commands/backspace.test.ts +++ b/src/extensions/yfm/YfmTable/commands/backspace.test.ts @@ -3,8 +3,8 @@ import {EditorState, TextSelection} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; import {applyCommand} from '../../../../../tests/utils'; - import {getSpec} from '../YfmTableSpecs/spec'; + import {clearSelectedCells} from './backspace'; const schema = new Schema({ diff --git a/src/extensions/yfm/YfmTable/commands/backspace.ts b/src/extensions/yfm/YfmTable/commands/backspace.ts index aba23113..8b6d9200 100644 --- a/src/extensions/yfm/YfmTable/commands/backspace.ts +++ b/src/extensions/yfm/YfmTable/commands/backspace.ts @@ -1,6 +1,7 @@ -import {Command, TextSelection} from 'prosemirror-state'; import {chainCommands} from 'prosemirror-commands'; -import {isNodeSelection, isTextSelection} from '../../../../utils/selection'; +import {Node} from 'prosemirror-model'; +import {Command, TextSelection} from 'prosemirror-state'; + import { findChildTableCells, findChildTableRows, @@ -10,7 +11,7 @@ import { isTableCellNode, isTableRowNode, } from '../../../../table-utils'; -import {Node} from 'prosemirror-model'; +import {isNodeSelection, isTextSelection} from '../../../../utils/selection'; const removeCellNodeContent: Command = (state, dispatch) => { const sel = state.selection; diff --git a/src/extensions/yfm/YfmTable/commands/convert-table.ts b/src/extensions/yfm/YfmTable/commands/convert-table.ts index d349f465..28e4d197 100644 --- a/src/extensions/yfm/YfmTable/commands/convert-table.ts +++ b/src/extensions/yfm/YfmTable/commands/convert-table.ts @@ -1,10 +1,11 @@ import type {Node} from 'prosemirror-model'; import type {Command} from 'prosemirror-state'; + import {pType} from '../../../base/BaseSchema'; import { - findParentTable as findParentMdTable, findTableCells as findMdTableCells, findTableRows as findMdTableRows, + findParentTable as findParentMdTable, } from '../../../markdown/Table/helpers'; import {yfmTableBodyType, yfmTableCellType, yfmTableRowType, yfmTableType} from '../utils'; diff --git a/src/extensions/yfm/YfmTable/commands/goToNextRow.ts b/src/extensions/yfm/YfmTable/commands/goToNextRow.ts index d5584959..40106990 100644 --- a/src/extensions/yfm/YfmTable/commands/goToNextRow.ts +++ b/src/extensions/yfm/YfmTable/commands/goToNextRow.ts @@ -1,11 +1,12 @@ import {Command, TextSelection} from 'prosemirror-state'; + import { atEndOfCell, - findChildTableRows, findChildTableCells, + findChildTableRows, findParentTable, - findParentTableRow, findParentTableCell, + findParentTableRow, } from '../../../../table-utils'; import {isTextSelection} from '../../../../utils/selection'; import { diff --git a/src/extensions/yfm/YfmTable/commands/remove-table.ts b/src/extensions/yfm/YfmTable/commands/remove-table.ts index a4acafab..8df8e9a0 100644 --- a/src/extensions/yfm/YfmTable/commands/remove-table.ts +++ b/src/extensions/yfm/YfmTable/commands/remove-table.ts @@ -1,5 +1,6 @@ import type {Command} from 'prosemirror-state'; import {findParentNodeOfType, removeParentNodeOfType} from 'prosemirror-utils'; + import {yfmTableType} from '../utils'; export const removeYfmTable: Command = (state, dispatch) => { diff --git a/src/extensions/yfm/YfmTable/index.ts b/src/extensions/yfm/YfmTable/index.ts index 450261a9..c5780a9f 100644 --- a/src/extensions/yfm/YfmTable/index.ts +++ b/src/extensions/yfm/YfmTable/index.ts @@ -1,11 +1,13 @@ import {Plugin} from 'prosemirror-state'; -import {goToNextCell} from '../../../table-utils'; + import type {Action, ExtensionWithOptions} from '../../../core'; +import {goToNextCell} from '../../../table-utils'; + +import {YfmTableSpecs, YfmTableSpecsOptions} from './YfmTableSpecs'; import {createYfmTable} from './actions'; -import {goToNextRow} from './commands/goToNextRow'; import {backspaceCommand} from './commands/backspace'; +import {goToNextRow} from './commands/goToNextRow'; import {fixPastedTableBodies} from './paste'; -import {YfmTableSpecs, YfmTableSpecsOptions} from './YfmTableSpecs'; const action = 'createYfmTable'; diff --git a/src/extensions/yfm/YfmTable/paste.ts b/src/extensions/yfm/YfmTable/paste.ts index 1e484e4f..2cc0bd9c 100644 --- a/src/extensions/yfm/YfmTable/paste.ts +++ b/src/extensions/yfm/YfmTable/paste.ts @@ -1,5 +1,7 @@ import {Fragment, Node, Schema, Slice} from 'prosemirror-model'; + import {getChildrenOfNode} from '../../../utils/nodes'; + import {yfmTableBodyType, yfmTableType} from './utils'; export function fixPastedTableBodies(slice: Slice, schema: Schema): Slice { diff --git a/src/extensions/yfm/YfmTabs/YfmTabs.test.ts b/src/extensions/yfm/YfmTabs/YfmTabs.test.ts index 9e0e25d6..2cfaab85 100644 --- a/src/extensions/yfm/YfmTabs/YfmTabs.test.ts +++ b/src/extensions/yfm/YfmTabs/YfmTabs.test.ts @@ -1,8 +1,10 @@ import {builders} from 'prosemirror-test-builder'; + import {createMarkupChecker} from '../../../../tests/sameMarkup'; import {ExtensionsManager} from '../../../core'; import {BaseNode, BaseSpecsPreset} from '../../base/specs'; import {blockquoteNodeName, italicMarkName} from '../../markdown/specs'; + import {TabsNode, YfmTabsSpecs} from './YfmTabsSpecs'; const mockRandomValue = 0.123456789; diff --git a/src/extensions/yfm/YfmTabs/YfmTabsSpecs/fromYfm.ts b/src/extensions/yfm/YfmTabs/YfmTabsSpecs/fromYfm.ts index a53d25f8..448af2d4 100644 --- a/src/extensions/yfm/YfmTabs/YfmTabsSpecs/fromYfm.ts +++ b/src/extensions/yfm/YfmTabs/YfmTabsSpecs/fromYfm.ts @@ -1,5 +1,7 @@ import type Token from 'markdown-it/lib/token'; + import type {ParserToken} from '../../../../core'; + import {TabsNode} from './const'; const attrsFromEntries = (token: Token) => (token.attrs ? Object.fromEntries(token.attrs) : {}); diff --git a/src/extensions/yfm/YfmTabs/YfmTabsSpecs/index.ts b/src/extensions/yfm/YfmTabs/YfmTabsSpecs/index.ts index 92c49bc4..15e1d861 100644 --- a/src/extensions/yfm/YfmTabs/YfmTabsSpecs/index.ts +++ b/src/extensions/yfm/YfmTabs/YfmTabsSpecs/index.ts @@ -4,6 +4,7 @@ import {NodeSpec} from 'prosemirror-model'; import type {ExtensionAuto, YENodeSpec} from '../../../../core'; import {nodeTypeFactory} from '../../../../utils/schema'; + import {TabsNode} from './const'; import {fromYfm} from './fromYfm'; import {getSpec} from './spec'; diff --git a/src/extensions/yfm/YfmTabs/YfmTabsSpecs/spec.ts b/src/extensions/yfm/YfmTabs/YfmTabsSpecs/spec.ts index 80684ebc..e5f47263 100644 --- a/src/extensions/yfm/YfmTabs/YfmTabsSpecs/spec.ts +++ b/src/extensions/yfm/YfmTabs/YfmTabsSpecs/spec.ts @@ -1,8 +1,11 @@ import type {NodeSpec} from 'prosemirror-model'; -import {YfmTabsSpecsOptions} from '.'; -import {TabAttrs, TabPanelAttrs, TabsAttrs, TabsListAttrs, TabsNode} from './const'; + import {PlaceholderOptions} from '../../../../utils/placeholder'; +import {TabAttrs, TabPanelAttrs, TabsAttrs, TabsListAttrs, TabsNode} from './const'; + +import {YfmTabsSpecsOptions} from '.'; + const DEFAULT_PLACEHOLDERS = { TabTitle: 'Tab title', }; diff --git a/src/extensions/yfm/YfmTabs/YfmTabsSpecs/toYfm.ts b/src/extensions/yfm/YfmTabs/YfmTabsSpecs/toYfm.ts index 5f09ee13..db3b2b43 100644 --- a/src/extensions/yfm/YfmTabs/YfmTabsSpecs/toYfm.ts +++ b/src/extensions/yfm/YfmTabs/YfmTabsSpecs/toYfm.ts @@ -1,6 +1,8 @@ import type {Node} from 'prosemirror-model'; -import {getPlaceholderContent} from '../../../../utils/placeholder'; + import type {SerializerNodeToken} from '../../../../core'; +import {getPlaceholderContent} from '../../../../utils/placeholder'; + import {TabsNode} from './const'; export const toYfm: Record = { diff --git a/src/extensions/yfm/YfmTabs/actions.ts b/src/extensions/yfm/YfmTabs/actions.ts index ae0a3c16..38dbbf74 100644 --- a/src/extensions/yfm/YfmTabs/actions.ts +++ b/src/extensions/yfm/YfmTabs/actions.ts @@ -1,9 +1,12 @@ import {generateID} from '@diplodoc/transform/lib/plugins/utils'; import type {Command} from 'prosemirror-state'; -import {tabPanelType, tabsListType, tabsType, tabType} from '.'; + import {pType} from '../../base/BaseSchema'; -import {tabActiveClassname, tabPanelActiveClassname} from './const'; + import {TabAttrs, TabPanelAttrs, TabsAttrs} from './YfmTabsSpecs/const'; +import {tabActiveClassname, tabPanelActiveClassname} from './const'; + +import {tabPanelType, tabType, tabsListType, tabsType} from '.'; export const createYfmTabsCommand: Command = (state, dispatch) => { if (dispatch) { diff --git a/src/extensions/yfm/YfmTabs/index.ts b/src/extensions/yfm/YfmTabs/index.ts index 7444962f..b6550d5e 100644 --- a/src/extensions/yfm/YfmTabs/index.ts +++ b/src/extensions/yfm/YfmTabs/index.ts @@ -1,5 +1,9 @@ +import {chainCommands} from 'prosemirror-commands'; + import type {Action, ExtensionAuto} from '../../../core'; +import {YfmTabsSpecs} from './YfmTabsSpecs'; +import {createYfmTabs} from './actions'; import { dragAutoSwitch, joinBackwardToOpenTab, @@ -7,12 +11,7 @@ import { tabEnter, tabPanelArrowDown, } from './plugins'; -import {YfmTabsSpecs} from './YfmTabsSpecs'; - -import {chainCommands} from 'prosemirror-commands'; - import {tabPanelView, tabView} from './views'; -import {createYfmTabs} from './actions'; export {TabsNode, tabType, tabsType, tabsListType, tabPanelType} from './YfmTabsSpecs'; diff --git a/src/extensions/yfm/YfmTabs/plugins.ts b/src/extensions/yfm/YfmTabs/plugins.ts index a09c3cf3..22a675ad 100644 --- a/src/extensions/yfm/YfmTabs/plugins.ts +++ b/src/extensions/yfm/YfmTabs/plugins.ts @@ -1,36 +1,38 @@ +import {generateID} from '@diplodoc/transform/lib/plugins/utils'; +import throttle from 'lodash/throttle'; import {Command, Plugin, PluginView, TextSelection, Transaction} from 'prosemirror-state'; import type {Transform} from 'prosemirror-transform'; -import type {EditorView} from 'prosemirror-view'; import { + NodeWithPos, findChildren, findDomRefAtPos, findParentNodeOfType, findParentNodeOfTypeClosestToPos, - NodeWithPos, } from 'prosemirror-utils'; +import type {EditorView} from 'prosemirror-view'; + +import { + createFakeParagraph, + findFakeParaPosClosestToPos, + findFakeParaPosForTextSelection, + isGapCursorSelection, + pType, +} from '../../'; +import {findChildIndex} from '../../../table-utils/helpers'; +import {get$Cursor, isTextSelection} from '../../../utils/selection'; + +import {TabAttrs, TabPanelAttrs} from './YfmTabsSpecs/const'; import { tabActiveClassname, tabInactiveClassname, - tabsListType, tabPanelActiveClassname, tabPanelInactiveClassname, tabPanelType, - tabsType, tabType, + tabsListType, + tabsType, } from './const'; -import {findChildIndex} from '../../../table-utils/helpers'; -import {get$Cursor, isTextSelection} from '../../../utils/selection'; -import {generateID} from '@diplodoc/transform/lib/plugins/utils'; -import { - createFakeParagraph, - findFakeParaPosClosestToPos, - findFakeParaPosForTextSelection, - isGapCursorSelection, - pType, -} from '../../'; import {atEndOfPanel} from './utils'; -import {TabAttrs, TabPanelAttrs} from './YfmTabsSpecs/const'; -import throttle from 'lodash/throttle'; export const dragAutoSwitch = () => new Plugin({ diff --git a/src/extensions/yfm/YfmTabs/utils.ts b/src/extensions/yfm/YfmTabs/utils.ts index c9d6b882..b779b9b8 100644 --- a/src/extensions/yfm/YfmTabs/utils.ts +++ b/src/extensions/yfm/YfmTabs/utils.ts @@ -1,4 +1,5 @@ import {EditorView} from 'prosemirror-view'; + import {tabPanelType} from '.'; export const atEndOfPanel = (view?: EditorView) => { diff --git a/src/extensions/yfm/YfmTabs/views.ts b/src/extensions/yfm/YfmTabs/views.ts index cfc63487..cbf1d690 100644 --- a/src/extensions/yfm/YfmTabs/views.ts +++ b/src/extensions/yfm/YfmTabs/views.ts @@ -1,14 +1,14 @@ import {cn} from '@bem-react/classname'; - import {Node} from 'prosemirror-model'; +import {EditorState} from 'prosemirror-state'; import {findParentNodeOfTypeClosestToPos} from 'prosemirror-utils'; import {EditorView, NodeViewConstructor} from 'prosemirror-view'; -import {EditorState} from 'prosemirror-state'; -import {tabsType, tabType} from '.'; import {crossSvg, plusSvg} from './icons'; import {createTab, removeTab} from './plugins'; +import {tabType, tabsType} from '.'; + import './index.scss'; const cnYfmTab = cn('yfm-tab'); diff --git a/src/extensions/yfm/index.ts b/src/extensions/yfm/index.ts index 734e8b9c..79f84c13 100644 --- a/src/extensions/yfm/index.ts +++ b/src/extensions/yfm/index.ts @@ -2,12 +2,12 @@ import {ExtensionAuto} from '../../core'; import {Checkbox, CheckboxOptions} from './Checkbox'; import {Color} from './Color'; +import {ImgSize, ImgSizeOptions} from './ImgSize'; import {Math} from './Math'; import {Monospace} from './Monospace'; -import {ImgSize, ImgSizeOptions} from './ImgSize'; import {Video, VideoOptions} from './Video'; -import {YfmDist} from './YfmDist'; import {YfmCut, YfmCutOptions} from './YfmCut'; +import {YfmDist} from './YfmDist'; import {YfmFile} from './YfmFile'; import {YfmHeading, YfmHeadingOptions} from './YfmHeading'; import {YfmNote, YfmNoteOptions} from './YfmNote'; diff --git a/src/extensions/yfm/specs.ts b/src/extensions/yfm/specs.ts index 24df26a7..f28dcad8 100644 --- a/src/extensions/yfm/specs.ts +++ b/src/extensions/yfm/specs.ts @@ -2,12 +2,12 @@ import type {ExtensionAuto} from '../../core'; import {CheckboxSpecs, CheckboxSpecsOptions} from './Checkbox/CheckboxSpecs'; import {ColorSpecs, ColorSpecsOptions} from './Color/ColorSpecs'; +import {ImgSizeSpecs, ImgSizeSpecsOptions} from './ImgSize/ImgSizeSpecs'; import {MathSpecs} from './Math/MathSpecs'; import {MonospaceSpecs} from './Monospace/MonospaceSpecs'; -import {ImgSizeSpecs, ImgSizeSpecsOptions} from './ImgSize/ImgSizeSpecs'; import {VideoSpecs, VideoSpecsOptions} from './Video/VideoSpecs'; -import {YfmDistSpecs} from './YfmDist/YfmDistSpecs'; import {YfmCutSpecs, YfmCutSpecsOptions} from './YfmCut/YfmCutSpecs'; +import {YfmDistSpecs} from './YfmDist/YfmDistSpecs'; import {YfmFileSpecs} from './YfmFile/YfmFileSpecs'; import {YfmHeadingSpecs, YfmHeadingSpecsOptions} from './YfmHeading/YfmHeadingSpecs'; import {YfmNoteSpecs, YfmNoteSpecsOptions} from './YfmNote/YfmNoteSpecs'; diff --git a/src/global.d.ts b/src/global.d.ts index fcb963a0..5cc482e6 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-duplicate-imports */ - declare module 'markdown-it-attrs' { import type {PluginWithOptions} from 'markdown-it'; export type AttrsOptions = { diff --git a/src/i18n/i18n.ts b/src/i18n/i18n.ts index 62a9230f..0e58cfed 100644 --- a/src/i18n/i18n.ts +++ b/src/i18n/i18n.ts @@ -1,5 +1,6 @@ import {I18N, I18NFn} from '@gravity-ui/i18n'; -import {getConfig, Lang, subscribeConfigure} from '../configure'; + +import {Lang, getConfig, subscribeConfigure} from '../configure'; type KeysData = Record; // @gravity-ui/i18n inner type diff --git a/src/icons/index.ts b/src/icons/index.ts index 081b8f40..0245b29a 100644 --- a/src/icons/index.ts +++ b/src/icons/index.ts @@ -1,51 +1,43 @@ -import TabsIcon from './Tabs'; -import MonoIcon from './Mono'; import { - ArrowUturnCcwLeft as UndoIcon, - ArrowUturnCwRight as RedoIcon, - // Bold as BoldIcon, - Italic as ItalicIcon, - Underline as UnderlineIcon, - Strikethrough as StrikethroughIcon, - FontCursor as MarkIcon, - // - Heading as HeadingIcon, + SquareCheck as CheckListIcon, + FileCode as CodeBlockIcon, + Code as CodeInlineIcon, + Scissors as CutIcon, + CurlyBracketsFunction as FunctionBlockIcon, + Function as FunctionInlineIcon, + Minus as HRuleIcon, Heading1 as Heading1Icon, Heading2 as Heading2Icon, Heading3 as Heading3Icon, Heading4 as Heading4Icon, Heading5 as Heading5Icon, Heading6 as Heading6Icon, - // - ListUl as ListBlIcon, - ListOl as ListOlIcon, - // + Heading as HeadingIcon, + ChevronsExpandHorizontal as IframeIcon, + Picture as ImageIcon, + Italic as ItalicIcon, TextOutdent as LiftIcon, - TextIndent as SinkIcon, - // - Font as TextColorIcon, - // Link as LinkIcon, - QuoteClose as QuoteIcon, - Scissors as CutIcon, + ListUl as ListBlIcon, + ListOl as ListOlIcon, + FontCursor as MarkIcon, Sticker as NoteIcon, - Minus as HRuleIcon, - // + QuoteClose as QuoteIcon, + ArrowUturnCwRight as RedoIcon, + TextIndent as SinkIcon, + Strikethrough as StrikethroughIcon, LayoutList as TableIcon, - // - ChevronsExpandHorizontal as IframeIcon, - SquareCheck as CheckListIcon, - Picture as ImageIcon, - // - Code as CodeInlineIcon, - FileCode as CodeBlockIcon, - // - Function as FunctionInlineIcon, - CurlyBracketsFunction as FunctionBlockIcon, + Font as TextColorIcon, + Underline as UnderlineIcon, + ArrowUturnCcwLeft as UndoIcon, } from '@gravity-ui/icons'; + import {ToolbarIconData} from '../toolbar'; +import MonoIcon from './Mono'; +import TabsIcon from './Tabs'; + type Icon = | 'undo' | 'redo' diff --git a/src/react-utils/hooks.ts b/src/react-utils/hooks.ts index 254f6138..bfa834f0 100644 --- a/src/react-utils/hooks.ts +++ b/src/react-utils/hooks.ts @@ -1,4 +1,5 @@ -import {useState, useCallback, useRef} from 'react'; +import {useCallback, useRef, useState} from 'react'; + import {useEffectOnce} from 'react-use'; type SetTrue = () => void; diff --git a/src/react-utils/react-node-view.tsx b/src/react-utils/react-node-view.tsx index 93df273f..c310b112 100644 --- a/src/react-utils/react-node-view.tsx +++ b/src/react-utils/react-node-view.tsx @@ -1,7 +1,8 @@ import React from 'react'; -import {createPortal} from 'react-dom'; -import type {NodeView, EditorView, NodeViewConstructor} from 'prosemirror-view'; + import type {Node} from 'prosemirror-model'; +import type {EditorView, NodeView, NodeViewConstructor} from 'prosemirror-view'; +import {createPortal} from 'react-dom'; import {ExtensionDeps, Serializer} from '../core'; import {getReactRendererFromState} from '../extensions'; diff --git a/src/react/YfmEditorComponent.tsx b/src/react/YfmEditorComponent.tsx index ec98ad25..e35682a8 100644 --- a/src/react/YfmEditorComponent.tsx +++ b/src/react/YfmEditorComponent.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import type {YfmEditor} from '../core'; export type YfmEditorComponentProps = { diff --git a/src/react/useYfmEditor.ts b/src/react/useYfmEditor.ts index d78eeca7..e4f75c39 100644 --- a/src/react/useYfmEditor.ts +++ b/src/react/useYfmEditor.ts @@ -1,5 +1,7 @@ import React from 'react'; + import {useUpdate} from 'react-use'; + import {YfmEditor, YfmEditorOptions} from '../core'; export type UseYfmEditorProps = YfmEditorOptions & {}; diff --git a/src/shortcuts/chars.ts b/src/shortcuts/chars.ts index 55e3fc01..c4324b92 100644 --- a/src/shortcuts/chars.ts +++ b/src/shortcuts/chars.ts @@ -1,5 +1,6 @@ import {isMac} from '../utils/platform'; -import {ModKey as MK, Key as K} from './const'; + +import {Key as K, ModKey as MK} from './const'; import {Chars} from './types'; const cmMac = { diff --git a/src/shortcuts/default.ts b/src/shortcuts/default.ts index e7083806..104416e5 100644 --- a/src/shortcuts/default.ts +++ b/src/shortcuts/default.ts @@ -1,4 +1,4 @@ -import {Action as A, ModKey as MK, Key as K} from './const'; +import {Action as A, Key as K, ModKey as MK} from './const'; import {formatter} from './formatter'; /* eslint-disable */ diff --git a/src/shortcuts/formatter.ts b/src/shortcuts/formatter.ts index 52e30f11..9a1d4a26 100644 --- a/src/shortcuts/formatter.ts +++ b/src/shortcuts/formatter.ts @@ -1,8 +1,10 @@ -import {ModKey as MK} from './const'; +import capitalize from 'lodash/capitalize'; + +import {isMac} from '../utils/platform'; + import {cmChars} from './chars'; +import {ModKey as MK} from './const'; import {Defs, PlatfrormDefs} from './types'; -import {isMac} from '../utils/platform'; -import {capitalize} from 'lodash'; class ShortCutFormatter { #map = new Map(); diff --git a/src/table-utils/commands/addColumnAfter.ts b/src/table-utils/commands/addColumnAfter.ts index f3e83dd8..552b6a0c 100644 --- a/src/table-utils/commands/addColumnAfter.ts +++ b/src/table-utils/commands/addColumnAfter.ts @@ -1,12 +1,13 @@ import type {Command} from 'prosemirror-state'; + +import {findChildIndex} from '../helpers'; import { - findParentTable, - findParentTableRow, - findParentTableCell, findChildTableCells, findChildTableRows, + findParentTable, + findParentTableCell, + findParentTableRow, } from '../utils'; -import {findChildIndex} from '../helpers'; export const addColumnAfter: Command = (state, dispatch) => { const parentCell = findParentTableCell(state.selection); diff --git a/src/table-utils/commands/addRowAfter.ts b/src/table-utils/commands/addRowAfter.ts index 2c164910..9c80ffa0 100644 --- a/src/table-utils/commands/addRowAfter.ts +++ b/src/table-utils/commands/addRowAfter.ts @@ -1,5 +1,6 @@ import {Fragment, Node} from 'prosemirror-model'; import type {Command} from 'prosemirror-state'; + import {findParentTableBody, findParentTableRow} from '../utils'; export const addRowAfter: Command = (state, dispatch) => { diff --git a/src/table-utils/commands/appendColumn.ts b/src/table-utils/commands/appendColumn.ts index 5e4cbde0..01d47a5d 100644 --- a/src/table-utils/commands/appendColumn.ts +++ b/src/table-utils/commands/appendColumn.ts @@ -1,8 +1,9 @@ -import {findChildTableCells, isTableBodyNode, isTableCellNode} from '../utils'; -import {findChildIndex} from '../helpers'; -import type {CommandWithAttrs} from '../../core'; import {findChildren, findParentNodeClosestToPos} from 'prosemirror-utils'; + import {isTableNode, isTableRowNode} from '..'; +import type {CommandWithAttrs} from '../../core'; +import {findChildIndex} from '../helpers'; +import {findChildTableCells, isTableBodyNode, isTableCellNode} from '../utils'; export const appendColumn: CommandWithAttrs<{ tablePos: number; @@ -11,10 +12,8 @@ export const appendColumn: CommandWithAttrs<{ }> = (state, dispatch, _, attrs) => { if (!attrs) return false; const {tablePos, columnNumber, direction} = attrs; - const parentTable = findParentNodeClosestToPos( - state.doc.resolve(tablePos + 1), - isTableNode, - )?.node; + const parentTable = findParentNodeClosestToPos(state.doc.resolve(tablePos + 1), isTableNode) + ?.node; if (!parentTable) return false; let parentCell; diff --git a/src/table-utils/commands/appendRow.ts b/src/table-utils/commands/appendRow.ts index 5f8bfe9c..5ef0e406 100644 --- a/src/table-utils/commands/appendRow.ts +++ b/src/table-utils/commands/appendRow.ts @@ -1,5 +1,6 @@ import {Fragment, Node} from 'prosemirror-model'; import {findChildren, findParentNodeClosestToPos} from 'prosemirror-utils'; + import {findChildTableRows, isTableBodyNode, isTableNode, isTableRowNode} from '..'; import type {CommandWithAttrs} from '../../core'; @@ -11,10 +12,8 @@ export const appendRow: CommandWithAttrs<{ if (!attrs) return false; const {tablePos, rowNumber, direction} = attrs; - const tableNode = findParentNodeClosestToPos( - state.doc.resolve(tablePos + 1), - isTableNode, - )?.node; + const tableNode = findParentNodeClosestToPos(state.doc.resolve(tablePos + 1), isTableNode) + ?.node; if (!tableNode) return false; diff --git a/src/table-utils/commands/goToNextCell.ts b/src/table-utils/commands/goToNextCell.ts index 57bae283..ebf11561 100644 --- a/src/table-utils/commands/goToNextCell.ts +++ b/src/table-utils/commands/goToNextCell.ts @@ -1,4 +1,5 @@ import {Command, TextSelection} from 'prosemirror-state'; + import {findChildTableCells, findParentTable, findParentTableCell} from '../utils'; export function goToNextCell(dir: 'prev' | 'next'): Command { diff --git a/src/table-utils/commands/removeColumn.ts b/src/table-utils/commands/removeColumn.ts index 1767ed0e..7da95bfe 100644 --- a/src/table-utils/commands/removeColumn.ts +++ b/src/table-utils/commands/removeColumn.ts @@ -1,8 +1,9 @@ import {Fragment} from 'prosemirror-model'; import type {Command} from 'prosemirror-state'; -import {findChildTableRows, findChildTableCells} from '../utils'; import {findParentNodeClosestToPos} from 'prosemirror-utils'; + import {isTableNode} from '..'; +import {findChildTableCells, findChildTableRows} from '../utils'; export const removeColumn: Command = ( state, @@ -14,10 +15,8 @@ export const removeColumn: Command = ( if (tablePos === undefined || columnNumber === undefined) return false; - const tableNode = findParentNodeClosestToPos( - state.doc.resolve(tablePos + 1), - isTableNode, - )?.node; + const tableNode = findParentNodeClosestToPos(state.doc.resolve(tablePos + 1), isTableNode) + ?.node; if (!tableNode) return false; diff --git a/src/table-utils/commands/removeCurrentColumn.ts b/src/table-utils/commands/removeCurrentColumn.ts index 5f50976d..51bcae2c 100644 --- a/src/table-utils/commands/removeCurrentColumn.ts +++ b/src/table-utils/commands/removeCurrentColumn.ts @@ -1,12 +1,13 @@ import type {Command} from 'prosemirror-state'; + +import {findChildIndex} from '../helpers'; import { + findChildTableCells, + findChildTableRows, findParentTable, - findParentTableRow, findParentTableCell, - findChildTableRows, - findChildTableCells, + findParentTableRow, } from '../utils'; -import {findChildIndex} from '../helpers'; export const removeCurrentColumn: Command = (state, dispatch) => { const parentCell = findParentTableCell(state.selection); diff --git a/src/table-utils/commands/removeCurrentRow.ts b/src/table-utils/commands/removeCurrentRow.ts index b01d42b8..4af50716 100644 --- a/src/table-utils/commands/removeCurrentRow.ts +++ b/src/table-utils/commands/removeCurrentRow.ts @@ -1,6 +1,7 @@ import type {Command} from 'prosemirror-state'; import {removeParentNodeOfType} from 'prosemirror-utils'; -import {findParentTableBody, findParentTableRow, findChildTableRows} from '../utils'; + +import {findChildTableRows, findParentTableBody, findParentTableRow} from '../utils'; export const removeCurrentRow: Command = (state, dispatch) => { const parentRow = findParentTableRow(state.selection); diff --git a/src/table-utils/commands/removeRow.ts b/src/table-utils/commands/removeRow.ts index 177d90c8..194b32ea 100644 --- a/src/table-utils/commands/removeRow.ts +++ b/src/table-utils/commands/removeRow.ts @@ -1,9 +1,10 @@ import {Fragment} from 'prosemirror-model'; import type {Command} from 'prosemirror-state'; import {findChildren, findParentNodeClosestToPos} from 'prosemirror-utils'; + +import {findChildTableBody, isTableNode, isTableRowNode} from '..'; import {trackTransactionMetrics} from '../../core'; import {findChildTableRows} from '../utils'; -import {findChildTableBody, isTableNode, isTableRowNode} from '..'; export const removeRow: Command = ( state, @@ -15,10 +16,8 @@ export const removeRow: Command = ( if (tablePos === undefined || rowNumber === undefined) return false; - const tableNode = findParentNodeClosestToPos( - state.doc.resolve(tablePos + 1), - isTableNode, - )?.node; + const tableNode = findParentNodeClosestToPos(state.doc.resolve(tablePos + 1), isTableNode) + ?.node; if (!tableNode) return false; const parentRows = findChildren(tableNode, isTableRowNode); diff --git a/src/table-utils/commands/transpose.test.ts b/src/table-utils/commands/transpose.test.ts index 92dd85c3..7098e702 100644 --- a/src/table-utils/commands/transpose.test.ts +++ b/src/table-utils/commands/transpose.test.ts @@ -2,10 +2,10 @@ import {Schema} from 'prosemirror-model'; import {EditorState} from 'prosemirror-state'; import {builders} from 'prosemirror-test-builder'; -import type {} from '../index'; +import {applyCommand} from '../../../tests/utils'; import {TableRole} from '../const'; + import {transpose} from './transpose'; -import {applyCommand} from '../../../tests/utils'; const schema = new Schema({ nodes: { diff --git a/src/table-utils/commands/transpose.ts b/src/table-utils/commands/transpose.ts index 1228139c..e857e694 100644 --- a/src/table-utils/commands/transpose.ts +++ b/src/table-utils/commands/transpose.ts @@ -1,10 +1,11 @@ import {Fragment, Node} from 'prosemirror-model'; import type {Command} from 'prosemirror-state'; + import { findParentTable, findParentTableBody, - findParentTableRow, findParentTableCell, + findParentTableRow, } from '../utils'; export const transpose: Command = (state, dispatch) => { diff --git a/src/table-utils/utils.ts b/src/table-utils/utils.ts index 28d60500..6be60269 100644 --- a/src/table-utils/utils.ts +++ b/src/table-utils/utils.ts @@ -1,12 +1,14 @@ import {Node as PmNode, ResolvedPos} from 'prosemirror-model'; import { + Predicate, findChildren, findParentNode, findParentNodeClosestToPos, - Predicate, } from 'prosemirror-utils'; import type {EditorView} from 'prosemirror-view'; + import {isTextSelection} from '../utils/selection'; + import {TableRole} from './const'; export const isTableNode: Predicate = (node) => node.type.spec.tableRole === TableRole.Table; diff --git a/src/toolbar/FlexToolbar.scss b/src/toolbar/FlexToolbar.scss index 42e84fd8..bd157ca3 100644 --- a/src/toolbar/FlexToolbar.scss +++ b/src/toolbar/FlexToolbar.scss @@ -5,10 +5,7 @@ &__container { position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; + inset: 0; display: flex; gap: 0 8px; diff --git a/src/toolbar/FlexToolbar.tsx b/src/toolbar/FlexToolbar.tsx index 79fcd6d9..a2997a8c 100644 --- a/src/toolbar/FlexToolbar.tsx +++ b/src/toolbar/FlexToolbar.tsx @@ -1,13 +1,15 @@ import React from 'react'; -import {useMeasure} from 'react-use'; + import {Ellipsis} from '@gravity-ui/icons'; +import {useMeasure} from 'react-use'; import {cn} from '../classname'; +import {logger} from '../logger'; +import {useRenderTime} from '../react-utils/hooks'; + import {Toolbar, ToolbarProps} from './Toolbar'; import {ToolbarListButton} from './ToolbarListButton'; import {shrinkToolbarData} from './flexible'; -import {logger} from '../logger'; -import {useRenderTime} from '../react-utils/hooks'; import {ToolbarDataType, ToolbarItemData} from './types'; import './FlexToolbar.scss'; diff --git a/src/toolbar/Toolbar.tsx b/src/toolbar/Toolbar.tsx index d64c5309..5713fe07 100644 --- a/src/toolbar/Toolbar.tsx +++ b/src/toolbar/Toolbar.tsx @@ -1,7 +1,8 @@ import React from 'react'; import {cn} from '../classname'; -import {ToolbarGroupData, ToolbarButtonGroup} from './ToolbarGroup'; + +import {ToolbarButtonGroup, ToolbarGroupData} from './ToolbarGroup'; import {ToolbarBaseProps} from './types'; import './Toolbar.scss'; diff --git a/src/toolbar/ToolbarButton.tsx b/src/toolbar/ToolbarButton.tsx index 0e9db15d..48d4bd77 100644 --- a/src/toolbar/ToolbarButton.tsx +++ b/src/toolbar/ToolbarButton.tsx @@ -1,8 +1,11 @@ import React, {useRef} from 'react'; -import isFunction from 'lodash/isFunction'; + import {ActionTooltip, Button, Icon, Popover} from '@gravity-ui/uikit'; +import isFunction from 'lodash/isFunction'; + import {cn} from '../classname'; import {i18n} from '../i18n/common'; + import {ToolbarTooltipDelay} from './const'; import type {ToolbarBaseProps, ToolbarItemData} from './types'; diff --git a/src/toolbar/ToolbarGroup.tsx b/src/toolbar/ToolbarGroup.tsx index 7bf90e18..1a8f96ad 100644 --- a/src/toolbar/ToolbarGroup.tsx +++ b/src/toolbar/ToolbarGroup.tsx @@ -1,5 +1,7 @@ import React from 'react'; + import {cn} from '../classname'; + import {ToolbarButton} from './ToolbarButton'; import {ToolbarListButton} from './ToolbarListButton'; import {ToolbarBaseProps, ToolbarDataType, ToolbarGroupItemData} from './types'; diff --git a/src/toolbar/ToolbarListButton.tsx b/src/toolbar/ToolbarListButton.tsx index e2113c0d..cfad46c4 100644 --- a/src/toolbar/ToolbarListButton.tsx +++ b/src/toolbar/ToolbarListButton.tsx @@ -1,12 +1,14 @@ import React from 'react'; -import isFunction from 'lodash/isFunction'; -import {Button, Hotkey, Icon, Menu, Popover, Popup, Tooltip} from '@gravity-ui/uikit'; + import {HelpPopover} from '@gravity-ui/components'; import {ChevronDown} from '@gravity-ui/icons'; +import {Button, Hotkey, Icon, Menu, Popover, Popup, Tooltip} from '@gravity-ui/uikit'; +import isFunction from 'lodash/isFunction'; import {cn} from '../classname'; import {i18n} from '../i18n/common'; import {useBooleanState} from '../react-utils/hooks'; + import {ToolbarTooltipDelay} from './const'; import {ToolbarBaseProps, ToolbarIconData, ToolbarItemData} from './types'; diff --git a/src/toolbar/config/action-names.ts b/src/toolbar/config/action-names.ts index 42543eb7..a3bfca03 100644 --- a/src/toolbar/config/action-names.ts +++ b/src/toolbar/config/action-names.ts @@ -32,9 +32,12 @@ const names = [ type ItemsType = L extends readonly (infer T)[] ? T : never; -const namesObj = names.reduce, string>>((obj, val) => { - obj[val] = val; - return obj; -}, {} as Record, string>); +const namesObj = names.reduce, string>>( + (obj, val) => { + obj[val] = val; + return obj; + }, + {} as Record, string>, +); export const ActionName: Readonly = namesObj; diff --git a/src/toolbar/config/wysiwyg.ts b/src/toolbar/config/wysiwyg.ts index c4c73e81..b8d554a3 100644 --- a/src/toolbar/config/wysiwyg.ts +++ b/src/toolbar/config/wysiwyg.ts @@ -1,6 +1,8 @@ -import {i18n} from '../../i18n/menubar'; -import {i18n as i18nHint} from '../../i18n/hints'; import type {ActionStorage} from '../../core'; +import {i18n as i18nHint} from '../../i18n/hints'; +import {i18n} from '../../i18n/menubar'; +import {icons} from '../../icons'; +import {Action as A, formatter as f} from '../../shortcuts'; import type {ToolbarData} from '../Toolbar'; import type {ToolbarGroupData} from '../ToolbarGroup'; import type {ToolbarListButtonData} from '../ToolbarListButton'; @@ -10,9 +12,7 @@ import { type ToolbarItemData, type ToolbarSingleItemData, } from '../types'; -import {Action as A, formatter as f} from '../../shortcuts'; -import {icons} from '../../icons'; import {ActionName} from './action-names'; export type WToolbarData = ToolbarData; diff --git a/src/toolbar/types.ts b/src/toolbar/types.ts index cb1c5df7..c9229d4f 100644 --- a/src/toolbar/types.ts +++ b/src/toolbar/types.ts @@ -1,5 +1,7 @@ import type {HotkeyProps, IconProps} from '@gravity-ui/uikit'; + import type {ClassNameProps} from '../classname'; + import type {ToolbarListButtonData} from './ToolbarListButton'; export type ToolbarBaseProps = ClassNameProps & { diff --git a/src/utils/actions.ts b/src/utils/actions.ts index ca401813..c71030f7 100644 --- a/src/utils/actions.ts +++ b/src/utils/actions.ts @@ -1,6 +1,8 @@ import {toggleMark} from 'prosemirror-commands'; import type {MarkType} from 'prosemirror-model'; + import type {ActionSpec} from '../core'; + import {isMarkActive} from './marks'; export function createToggleMarkAction(markType: MarkType): ActionSpec { diff --git a/src/utils/inputrules.ts b/src/utils/inputrules.ts index 3c4eca9a..c604f4f5 100644 --- a/src/utils/inputrules.ts +++ b/src/utils/inputrules.ts @@ -2,9 +2,10 @@ import isFunction from 'lodash/isFunction'; import {InputRule} from 'prosemirror-inputrules'; import {Fragment, Mark, MarkType, Node} from 'prosemirror-model'; import {EditorState, TextSelection} from 'prosemirror-state'; + +import {codeType} from '../extensions'; import {isMarkActive} from '../utils/marks'; // TODO: remove explicit import from code extension -import {codeType} from '../extensions'; function getMarksBetween(start: number, end: number, state: EditorState) { let marks: {start: number; end: number; mark: Mark}[] = []; diff --git a/src/utils/keymap.ts b/src/utils/keymap.ts index 0e261bee..60609037 100644 --- a/src/utils/keymap.ts +++ b/src/utils/keymap.ts @@ -1,4 +1,5 @@ import type {Command} from 'prosemirror-state'; + import {logger} from '../logger'; export function withLogAction(action: string, command: Command): Command { diff --git a/src/utils/marks.ts b/src/utils/marks.ts index f6085ac4..2c35d285 100644 --- a/src/utils/marks.ts +++ b/src/utils/marks.ts @@ -1,5 +1,5 @@ -import type {EditorState} from 'prosemirror-state'; import type {Mark, MarkType, Node} from 'prosemirror-model'; +import type {EditorState} from 'prosemirror-state'; export const findMark = (node: Node, markType: MarkType): Mark | undefined => { return node.marks.find((mark) => mark.type.name === markType.name); diff --git a/src/utils/selection.ts b/src/utils/selection.ts index 71392a32..d141cc49 100644 --- a/src/utils/selection.ts +++ b/src/utils/selection.ts @@ -1,5 +1,5 @@ import type {Node, NodeType, ResolvedPos} from 'prosemirror-model'; -import {Selection, TextSelection, NodeSelection, AllSelection} from 'prosemirror-state'; +import {AllSelection, NodeSelection, Selection, TextSelection} from 'prosemirror-state'; NodeSelection.prototype.selectionName = 'NodeSelection'; TextSelection.prototype.selectionName = 'TextSelection'; diff --git a/src/utils/serialize-for-clipboard.ts b/src/utils/serialize-for-clipboard.ts index 4e473c64..a6d3b155 100644 --- a/src/utils/serialize-for-clipboard.ts +++ b/src/utils/serialize-for-clipboard.ts @@ -1,5 +1,6 @@ import type {Slice} from 'prosemirror-model'; import type {EditorView} from 'prosemirror-view'; +import {__serializeForClipboard} from 'prosemirror-view'; declare module 'prosemirror-view' { type SerializeForClipboard = ( @@ -11,8 +12,6 @@ declare module 'prosemirror-view' { export const __serializeForClipboard: SerializeForClipboard; } -import {__serializeForClipboard} from 'prosemirror-view'; - if (!__serializeForClipboard) throw new Error('__serializeForClipboard not exported from prosemirror-view module.');