diff --git a/eslint.config.mts b/eslint.config.mts index 7364ad0a92..cd5364f22d 100644 --- a/eslint.config.mts +++ b/eslint.config.mts @@ -53,6 +53,8 @@ const rootConfig: ConfigWithExtends = { rules: { "import/no-relative-packages": "error", + "import/no-duplicates": "error", + "unused-imports/no-unused-imports": "error", "@typescript-eslint/consistent-type-imports": "error", "@typescript-eslint/consistent-type-assertions": [ "error", @@ -75,7 +77,6 @@ const rootConfig: ConfigWithExtends = { "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-inferrable-types": "off", "@typescript-eslint/no-non-null-assertion": "off", - "unused-imports/no-unused-imports": "error", "@typescript-eslint/no-unused-vars": [ "error", { diff --git a/package.json b/package.json index 56720f0870..69c4d66de6 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,11 @@ }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "^9.31.0", + "@eslint/js": "^9.32.0", "@pnpm/meta-updater": "^2.0.6", "@types/node": "^24.1.0", "esbuild": "^0.25.8", - "eslint": "^9.31.0", + "eslint": "^9.32.0", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-import": "^2.32.0", diff --git a/packages/common/src/scopeSupportFacets/scopeSupportFacets.types.ts b/packages/common/src/scopeSupportFacets/scopeSupportFacets.types.ts index f2026432b7..889ced90d8 100644 --- a/packages/common/src/scopeSupportFacets/scopeSupportFacets.types.ts +++ b/packages/common/src/scopeSupportFacets/scopeSupportFacets.types.ts @@ -1,5 +1,7 @@ -import type { SimpleScopeTypeType } from "../types/command/PartialTargetDescriptor.types"; -import { type ScopeType } from "../types/command/PartialTargetDescriptor.types"; +import type { + ScopeType, + SimpleScopeTypeType, +} from "../types/command/PartialTargetDescriptor.types"; export const scopeSupportFacets = [ "command", diff --git a/packages/cursorless-engine/src/CommandHistory.ts b/packages/cursorless-engine/src/CommandHistory.ts index bbe29c379f..79fea9ed7d 100644 --- a/packages/cursorless-engine/src/CommandHistory.ts +++ b/packages/cursorless-engine/src/CommandHistory.ts @@ -2,11 +2,11 @@ import type { ActionDescriptor, CommandComplete, CommandHistoryEntry, + CommandHistoryStorage, CommandServerApi, IDE, ReadOnlyHatMap, } from "@cursorless/common"; -import { type CommandHistoryStorage } from "@cursorless/common"; import { produce } from "immer"; import { v4 as uuid } from "uuid"; import type { CommandRunner } from "./CommandRunner"; diff --git a/packages/cursorless-engine/src/CommandHistoryAnalyzer.ts b/packages/cursorless-engine/src/CommandHistoryAnalyzer.ts index 4efe0f33c6..8db17d2ca1 100644 --- a/packages/cursorless-engine/src/CommandHistoryAnalyzer.ts +++ b/packages/cursorless-engine/src/CommandHistoryAnalyzer.ts @@ -1,10 +1,11 @@ import type { CommandHistoryEntry, + CommandHistoryStorage, Modifier, PartialPrimitiveTargetDescriptor, ScopeType, } from "@cursorless/common"; -import { showWarning, type CommandHistoryStorage } from "@cursorless/common"; +import { showWarning } from "@cursorless/common"; import { groupBy, map, sum } from "lodash-es"; import { canonicalizeAndValidateCommand } from "./core/commandVersionUpgrades/canonicalizeAndValidateCommand"; import { ide } from "./singletons/ide.singleton"; diff --git a/packages/cursorless-engine/src/core/StoredTargets.ts b/packages/cursorless-engine/src/core/StoredTargets.ts index 7bcd4b4993..4d4ee8088f 100644 --- a/packages/cursorless-engine/src/core/StoredTargets.ts +++ b/packages/cursorless-engine/src/core/StoredTargets.ts @@ -1,7 +1,6 @@ -import { DefaultMap, Notifier } from "@cursorless/common"; -import type { Target } from "../typings/target.types"; import type { StoredTargetKey } from "@cursorless/common"; -import { storedTargetKeys } from "@cursorless/common"; +import { DefaultMap, Notifier, storedTargetKeys } from "@cursorless/common"; +import type { Target } from "../typings/target.types"; import { UndoStack } from "./UndoStack"; const MAX_HISTORY_LENGTH = 25; diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts b/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts index a7dfc56566..0ba97908d1 100644 --- a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts +++ b/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts @@ -1,17 +1,16 @@ -import type { ActionType, ActionTypeV2 } from "@cursorless/common"; -import type { CommandV2 } from "@cursorless/common"; import type { + ActionType, + ActionTypeV2, + CommandV1, + CommandV2, + ModifierV0V1, ModifierV2, PartialPrimitiveTargetDescriptorV2, + PartialPrimitiveTargetV0V1, PartialRangeTargetDescriptorV2, PartialTargetDescriptorV2, - SimpleScopeTypeTypeV2, -} from "@cursorless/common"; -import type { - CommandV1, - ModifierV0V1, - PartialPrimitiveTargetV0V1, PartialTargetV0V1, + SimpleScopeTypeTypeV2, } from "@cursorless/common"; import { upgradeStrictHere } from "./upgradeStrictHere"; diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts b/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts index 6cf2aecff6..f12b6c0656 100644 --- a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts +++ b/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts @@ -5,6 +5,8 @@ import type { CommandV6, DestinationDescriptor, EnforceUndefined, + ExecuteCommandOptions, + GetTextActionOptions, HighlightActionDescriptor, HighlightId, ImplicitDestinationDescriptor, @@ -27,10 +29,6 @@ import type { ReplaceWith, WrapWithSnippetArg, } from "@cursorless/common"; -import { - type ExecuteCommandOptions, - type GetTextActionOptions, -} from "@cursorless/common"; import canonicalizeActionName from "./canonicalizeActionName"; export function upgradeV5ToV6(command: CommandV5): EnforceUndefined { diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index 2ef8aca2f9..57375bc3ec 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -3,14 +3,12 @@ import type { CommandServerApi, Hats, IDE, + RawTreeSitterQueryProvider, ScopeProvider, + TalonSpokenForms, + TreeSitter, } from "@cursorless/common"; -import { - ensureCommandShape, - type RawTreeSitterQueryProvider, - type TalonSpokenForms, - type TreeSitter, -} from "@cursorless/common"; +import { ensureCommandShape } from "@cursorless/common"; import { KeyboardTargetUpdater } from "./KeyboardTargetUpdater"; import type { CommandRunnerDecorator, diff --git a/packages/cursorless-engine/src/customCommandGrammar/grammarUtil.ts b/packages/cursorless-engine/src/customCommandGrammar/grammarUtil.ts index 87af64d1a6..1f1f4bbb44 100644 --- a/packages/cursorless-engine/src/customCommandGrammar/grammarUtil.ts +++ b/packages/cursorless-engine/src/customCommandGrammar/grammarUtil.ts @@ -1,28 +1,26 @@ import type { BringMoveActionDescriptor, + ContainingScopeModifier, DestinationDescriptor, Direction, InsertionMode, + Modifier, PartialListTargetDescriptor, + PartialMark, + PartialPrimitiveTargetDescriptor, PartialRangeTargetDescriptor, + PartialTargetDescriptor, PartialTargetMark, PrimitiveDestinationDescriptor, RelativeScopeModifier, -} from "@cursorless/common"; -import { - type ContainingScopeModifier, - type Modifier, - type PartialMark, - type PartialPrimitiveTargetDescriptor, - type PartialTargetDescriptor, - type ScopeType, - type SimpleActionDescriptor, - type SimpleActionName, - type SimplePartialMark, - type SimpleScopeType, - type SimpleScopeTypeType, - type SurroundingPairName, - type SurroundingPairScopeType, + ScopeType, + SimpleActionDescriptor, + SimpleActionName, + SimplePartialMark, + SimpleScopeType, + SimpleScopeTypeType, + SurroundingPairName, + SurroundingPairScopeType, } from "@cursorless/common"; import type { WithPlaceholders } from "./WithPlaceholders"; diff --git a/packages/cursorless-engine/src/customCommandGrammar/parseCommand.ts b/packages/cursorless-engine/src/customCommandGrammar/parseCommand.ts index 26a743541d..b7d495b14d 100644 --- a/packages/cursorless-engine/src/customCommandGrammar/parseCommand.ts +++ b/packages/cursorless-engine/src/customCommandGrammar/parseCommand.ts @@ -1,5 +1,4 @@ -import type { ScopeType } from "@cursorless/common"; -import { type ActionDescriptor } from "@cursorless/common"; +import type { ActionDescriptor, ScopeType } from "@cursorless/common"; import { Grammar, Parser } from "nearley"; import type { WithPlaceholders } from "./WithPlaceholders"; import grammar from "./generated/grammar"; diff --git a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts b/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts index a9d1642296..d864f707cf 100644 --- a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts +++ b/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts @@ -4,11 +4,11 @@ import type { Disposable, Listener, ScopeType, + TalonSpokenForms, } from "@cursorless/common"; -import { SpokenFormGenerator } from "./generateSpokenForm"; import type { CustomSpokenFormGenerator } from "../api/CursorlessEngineApi"; import { CustomSpokenForms } from "../spokenForms/CustomSpokenForms"; -import type { TalonSpokenForms } from "@cursorless/common"; +import { SpokenFormGenerator } from "./generateSpokenForm"; /** * Simple facade that combines the {@link CustomSpokenForms} and diff --git a/packages/cursorless-engine/src/languages/LanguageDefinition.ts b/packages/cursorless-engine/src/languages/LanguageDefinition.ts index 37f1957b50..194c0778fb 100644 --- a/packages/cursorless-engine/src/languages/LanguageDefinition.ts +++ b/packages/cursorless-engine/src/languages/LanguageDefinition.ts @@ -1,16 +1,13 @@ import type { + IDE, RawTreeSitterQueryProvider, ScopeType, SimpleScopeType, SimpleScopeTypeType, + TextDocument, TreeSitter, } from "@cursorless/common"; -import { - matchAll, - showError, - type IDE, - type TextDocument, -} from "@cursorless/common"; +import { matchAll, showError } from "@cursorless/common"; import { TreeSitterScopeHandler } from "../processTargets/modifiers/scopeHandlers"; import { TreeSitterQuery } from "./TreeSitterQuery"; import type { QueryCapture } from "./TreeSitterQuery/QueryCapture"; diff --git a/packages/cursorless-engine/src/languages/LanguageDefinitions.ts b/packages/cursorless-engine/src/languages/LanguageDefinitions.ts index 3afd0358a7..34c3b38920 100644 --- a/packages/cursorless-engine/src/languages/LanguageDefinitions.ts +++ b/packages/cursorless-engine/src/languages/LanguageDefinitions.ts @@ -1,12 +1,11 @@ -import type { Disposable } from "@cursorless/common"; -import { - Notifier, - showError, - type IDE, - type Listener, - type RawTreeSitterQueryProvider, - type TreeSitter, +import type { + Disposable, + IDE, + Listener, + RawTreeSitterQueryProvider, + TreeSitter, } from "@cursorless/common"; +import { Notifier, showError } from "@cursorless/common"; import { toString } from "lodash-es"; import { LanguageDefinition } from "./LanguageDefinition"; import { treeSitterQueryCache } from "./TreeSitterQuery/treeSitterQueryCache"; diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts b/packages/cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts index aa9c892ae1..145724b729 100644 --- a/packages/cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts +++ b/packages/cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts @@ -1,18 +1,17 @@ -import type { Position, TextDocument } from "@cursorless/common"; -import { type TreeSitter } from "@cursorless/common"; +import type { Position, TextDocument, TreeSitter } from "@cursorless/common"; import type * as treeSitter from "web-tree-sitter"; import { ide } from "../../singletons/ide.singleton"; +import { checkCaptureStartEnd } from "./checkCaptureStartEnd"; import { getNodeRange } from "./getNodeRange"; +import { isContainedInErrorNode } from "./isContainedInErrorNode"; +import { normalizeCaptureName } from "./normalizeCaptureName"; +import { parsePredicatesWithErrorHandling } from "./parsePredicatesWithErrorHandling"; +import { positionToPoint } from "./positionToPoint"; import type { MutableQueryCapture, MutableQueryMatch, QueryMatch, } from "./QueryCapture"; -import { checkCaptureStartEnd } from "./checkCaptureStartEnd"; -import { isContainedInErrorNode } from "./isContainedInErrorNode"; -import { normalizeCaptureName } from "./normalizeCaptureName"; -import { parsePredicatesWithErrorHandling } from "./parsePredicatesWithErrorHandling"; -import { positionToPoint } from "./positionToPoint"; import { getStartOfEndOfRange, rewriteStartOfEndOf, diff --git a/packages/cursorless-engine/src/processTargets/marks/LineNumberStage.ts b/packages/cursorless-engine/src/processTargets/marks/LineNumberStage.ts index e397404f47..97c4a2f203 100644 --- a/packages/cursorless-engine/src/processTargets/marks/LineNumberStage.ts +++ b/packages/cursorless-engine/src/processTargets/marks/LineNumberStage.ts @@ -1,5 +1,8 @@ -import type { LineNumberMark, LineNumberType } from "@cursorless/common"; -import type { TextEditor } from "@cursorless/common"; +import type { + LineNumberMark, + LineNumberType, + TextEditor, +} from "@cursorless/common"; import { ide } from "../../singletons/ide.singleton"; import type { MarkStage } from "../PipelineStages.types"; import { createLineTarget } from "../modifiers/scopeHandlers"; diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts index 0e40eaa4c4..37ff1906a5 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts @@ -1,5 +1,9 @@ -import type { TextEditor, Position } from "@cursorless/common"; -import type { Direction, ScopeType } from "@cursorless/common"; +import type { + Direction, + Position, + ScopeType, + TextEditor, +} from "@cursorless/common"; import { DocumentTarget } from "../../targets"; import { BaseScopeHandler } from "./BaseScopeHandler"; import type { TargetScope } from "./scope.types"; diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts index 95af8c8675..90e6ac1fa9 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts @@ -1,5 +1,9 @@ -import type { Direction, ScopeType } from "@cursorless/common"; -import type { Position, TextEditor } from "@cursorless/common"; +import type { + Direction, + Position, + ScopeType, + TextEditor, +} from "@cursorless/common"; import { flatmap } from "itertools"; import { BaseScopeHandler } from "./BaseScopeHandler"; import type { ScopeHandlerFactory } from "./ScopeHandlerFactory"; diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts index 49b3c5f2a9..54c36fd315 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts @@ -1,11 +1,12 @@ import type { + Direction, Position, Range, + ScopeType, TextDocument, TextEditor, TextLine, } from "@cursorless/common"; -import type { Direction, ScopeType } from "@cursorless/common"; import { ParagraphTarget } from "../../targets"; import { BaseScopeHandler } from "./BaseScopeHandler"; import { fitRangeToLineContent } from "./LineScopeHandler"; diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts index f6f0876e25..e322b97e0a 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts @@ -1,25 +1,24 @@ -import { - NoContainingScopeError, - Range, - type Direction, - type InteriorScopeType, - type Position, - type ScopeType, - type TextEditor, +import type { + Direction, + InteriorScopeType, + Position, + ScopeType, + TextEditor, } from "@cursorless/common"; +import { NoContainingScopeError, Range } from "@cursorless/common"; import type { LanguageDefinitions } from "../../../../languages/LanguageDefinitions"; import type { Target } from "../../../../typings/target.types"; import { InteriorTarget } from "../../../targets"; import { BaseScopeHandler } from "../BaseScopeHandler"; import { FallbackScopeHandler } from "../FallbackScopeHandler"; -import { SortedScopeHandler } from "../SortedScopeHandler"; import type { TargetScope } from "../scope.types"; import type { ComplexScopeType, + ScopeHandler, ScopeIteratorRequirements, } from "../scopeHandler.types"; -import { type ScopeHandler } from "../scopeHandler.types"; import type { ScopeHandlerFactory } from "../ScopeHandlerFactory"; +import { SortedScopeHandler } from "../SortedScopeHandler"; export class InteriorScopeHandler extends BaseScopeHandler { protected isHierarchical = true; diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts index 9ab0538058..202f8aa7d5 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts @@ -1,9 +1,15 @@ -import type { Direction, Position, TextEditor } from "@cursorless/common"; -import { type SurroundingPairInteriorScopeType } from "@cursorless/common"; +import type { + Direction, + Position, + SurroundingPairInteriorScopeType, + TextEditor, +} from "@cursorless/common"; import { BaseScopeHandler } from "../BaseScopeHandler"; import type { TargetScope } from "../scope.types"; -import type { ScopeIteratorRequirements } from "../scopeHandler.types"; -import { type ScopeHandler } from "../scopeHandler.types"; +import type { + ScopeHandler, + ScopeIteratorRequirements, +} from "../scopeHandler.types"; import type { ScopeHandlerFactory } from "../ScopeHandlerFactory"; export class SurroundingPairInteriorScopeHandler extends BaseScopeHandler { diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts index 4e51ce59ce..74850d1047 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts @@ -1,9 +1,9 @@ -import type { SimpleSurroundingPairName } from "@cursorless/common"; -import { - isString, - type ComplexSurroundingPairName, - type SurroundingPairName, +import type { + ComplexSurroundingPairName, + SimpleSurroundingPairName, + SurroundingPairName, } from "@cursorless/common"; +import { isString } from "@cursorless/common"; import { concat, uniq } from "lodash-es"; import { complexDelimiterMap, getSimpleDelimiterMap } from "./delimiterMaps"; import type { IndividualDelimiter } from "./types"; diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts index 253b8debdd..458ee23142 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts @@ -1,5 +1,4 @@ -import type { SimpleSurroundingPairName } from "@cursorless/common"; -import { type Range } from "@cursorless/common"; +import type { Range, SimpleSurroundingPairName } from "@cursorless/common"; /** * Used to indicate whether a particular side of the delimiter is left or right diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts index fe2ce3bae5..092ff63d27 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts @@ -1,10 +1,9 @@ -import type { TextEditor } from "@cursorless/common"; +import type { Direction, TextEditor } from "@cursorless/common"; import { Range } from "@cursorless/common"; -import { NestedScopeHandler } from "../NestedScopeHandler"; -import { WordTokenizer } from "./WordTokenizer"; -import type { Direction } from "@cursorless/common"; import { SubTokenWordTarget } from "../../../targets"; +import { NestedScopeHandler } from "../NestedScopeHandler"; import type { TargetScope } from "../scope.types"; +import { WordTokenizer } from "./WordTokenizer"; export class WordScopeHandler extends NestedScopeHandler { public readonly scopeType = { type: "word" } as const; diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts index 11fbb1f0ac..f3b07f6357 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts @@ -1,5 +1,4 @@ -import type { Position, Range } from "@cursorless/common"; -import type { Direction } from "@cursorless/common"; +import type { Direction, Position, Range } from "@cursorless/common"; import type { TargetScope } from "./scope.types"; /** diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts index 3035692255..283259baed 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts @@ -1,6 +1,5 @@ -import type { Position } from "@cursorless/common"; +import type { Direction, Position } from "@cursorless/common"; import { Range } from "@cursorless/common"; -import type { Direction } from "@cursorless/common"; import { strictlyContains } from "../../../util/rangeUtils"; import { compareTargetScopes } from "./compareTargetScopes"; import type { TargetScope } from "./scope.types"; diff --git a/packages/cursorless-engine/src/runCommand.ts b/packages/cursorless-engine/src/runCommand.ts index f30bf185be..cf7828bc40 100644 --- a/packages/cursorless-engine/src/runCommand.ts +++ b/packages/cursorless-engine/src/runCommand.ts @@ -4,17 +4,18 @@ import type { CommandServerApi, HatTokenMap, ReadOnlyHatMap, + TreeSitter, } from "@cursorless/common"; -import { clientSupportsFallback, type TreeSitter } from "@cursorless/common"; +import { clientSupportsFallback } from "@cursorless/common"; import type { CommandRunner } from "./CommandRunner"; import { Actions } from "./actions/Actions"; import type { CommandRunnerDecorator } from "./api/CursorlessEngineApi"; import type { Debug } from "./core/Debug"; +import type { Snippets } from "./core/Snippets"; +import type { StoredTargetMap } from "./core/StoredTargets"; import { CommandRunnerImpl } from "./core/commandRunner/CommandRunnerImpl"; import { canonicalizeAndValidateCommand } from "./core/commandVersionUpgrades/canonicalizeAndValidateCommand"; import type { RangeUpdater } from "./core/updateSelections/RangeUpdater"; -import type { Snippets } from "./core/Snippets"; -import type { StoredTargetMap } from "./core/StoredTargets"; import type { LanguageDefinitions } from "./languages/LanguageDefinitions"; import { TargetPipelineRunner } from "./processTargets"; import { MarkStageFactoryImpl } from "./processTargets/MarkStageFactoryImpl"; diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts b/packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts index 2ae9d9d1d3..3d1e537994 100644 --- a/packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts +++ b/packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts @@ -1,5 +1,7 @@ -import type { PartialPrimitiveTargetDescriptor } from "@cursorless/common"; -import type { TestCaseFixture } from "@cursorless/common"; +import type { + PartialPrimitiveTargetDescriptor, + TestCaseFixture, +} from "@cursorless/common"; import { transformPartialPrimitiveTargets } from "../../../util/getPrimitiveTargets"; export function upgradeFromVersion0(fixture: TestCaseFixture) { diff --git a/packages/cursorless-engine/src/util/allocateHats/getTokensInRange.ts b/packages/cursorless-engine/src/util/allocateHats/getTokensInRange.ts index efa8372100..8ae4b8c97f 100644 --- a/packages/cursorless-engine/src/util/allocateHats/getTokensInRange.ts +++ b/packages/cursorless-engine/src/util/allocateHats/getTokensInRange.ts @@ -1,7 +1,6 @@ -import type { TextEditor } from "@cursorless/common"; +import type { TextEditor, Token } from "@cursorless/common"; import { Range } from "@cursorless/common"; import { tokenize } from "../../tokenizer"; -import type { Token } from "@cursorless/common"; export function getTokensInRange(editor: TextEditor, range: Range): Token[] { const languageId = editor.document.languageId; diff --git a/packages/cursorless-engine/src/util/getMatchesInRange.ts b/packages/cursorless-engine/src/util/getMatchesInRange.ts index e02aa3f3f5..7a2a41e09e 100644 --- a/packages/cursorless-engine/src/util/getMatchesInRange.ts +++ b/packages/cursorless-engine/src/util/getMatchesInRange.ts @@ -1,5 +1,5 @@ -import type { TextEditor } from "@cursorless/common"; -import { Range, matchAll, type Direction } from "@cursorless/common"; +import type { Direction, TextEditor } from "@cursorless/common"; +import { matchAll, Range } from "@cursorless/common"; import { imap } from "itertools"; export function getMatchesInRange( diff --git a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsIDE.ts b/packages/cursorless-everywhere-talon-core/src/ide/TalonJsIDE.ts index 2fb21e304c..64a1f56d7c 100644 --- a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsIDE.ts +++ b/packages/cursorless-everywhere-talon-core/src/ide/TalonJsIDE.ts @@ -8,6 +8,7 @@ import type { GeneralizedRange, IDE, InputBoxOptions, + KeyValueStore, Listener, Messages, NotebookEditor, @@ -21,7 +22,7 @@ import type { TextEditorVisibleRangesChangeEvent, WorkspaceFolder, } from "@cursorless/common"; -import { Notifier, type KeyValueStore } from "@cursorless/common"; +import { Notifier } from "@cursorless/common"; import { pull } from "lodash-es"; import type { Talon } from "../types/talon.types"; import type { EditorState } from "../types/types"; diff --git a/packages/cursorless-everywhere-talon-core/src/ide/talonJsPerformEdits.ts b/packages/cursorless-everywhere-talon-core/src/ide/talonJsPerformEdits.ts index de317c186f..5929686e9c 100644 --- a/packages/cursorless-everywhere-talon-core/src/ide/talonJsPerformEdits.ts +++ b/packages/cursorless-everywhere-talon-core/src/ide/talonJsPerformEdits.ts @@ -1,5 +1,4 @@ -import type { Edit } from "@cursorless/common"; -import { type InMemoryTextDocument } from "@cursorless/common"; +import type { Edit, InMemoryTextDocument } from "@cursorless/common"; import type { Talon } from "../types/talon.types"; import type { EditorEdit } from "../types/types"; import type { TalonJsIDE } from "./TalonJsIDE"; diff --git a/packages/cursorless-org/package.json b/packages/cursorless-org/package.json index 856280b0f8..0cafbaba57 100644 --- a/packages/cursorless-org/package.json +++ b/packages/cursorless-org/package.json @@ -45,7 +45,7 @@ "@types/node": "^24.1.0", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", - "eslint": "^9.31.0", + "eslint": "^9.32.0", "eslint-config-next": "^15.4.4", "http-server": "^14.1.1", "postcss": "^8.5.6", diff --git a/packages/cursorless-org/tailwind.config.js b/packages/cursorless-org/tailwind.config.js index 6c5fb3dd53..633dea5bec 100644 --- a/packages/cursorless-org/tailwind.config.js +++ b/packages/cursorless-org/tailwind.config.js @@ -1,3 +1,5 @@ +/* eslint-disable import/no-anonymous-default-export */ + import { fontFamily } from "tailwindcss/defaultTheme"; import { readFileSync } from "node:fs"; diff --git a/packages/cursorless-tutorial/src/loadTutorial.ts b/packages/cursorless-tutorial/src/loadTutorial.ts index f0d9bf72a5..9d7a2c212f 100644 --- a/packages/cursorless-tutorial/src/loadTutorial.ts +++ b/packages/cursorless-tutorial/src/loadTutorial.ts @@ -1,11 +1,11 @@ import type { Hats, + KeyValueStore, RawTutorialContent, TutorialContentProvider, TutorialId, TutorialState, } from "@cursorless/common"; -import { type KeyValueStore } from "@cursorless/common"; import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine"; import { TutorialError } from "./TutorialError"; import { TutorialStepParser } from "./TutorialStepParser"; diff --git a/packages/cursorless-vscode-e2e/src/suite/fold.vscode.test.ts b/packages/cursorless-vscode-e2e/src/suite/fold.vscode.test.ts index 35a37cb992..f501aa75e1 100644 --- a/packages/cursorless-vscode-e2e/src/suite/fold.vscode.test.ts +++ b/packages/cursorless-vscode-e2e/src/suite/fold.vscode.test.ts @@ -1,8 +1,7 @@ -import * as assert from "assert"; +import { openNewEditor, runCursorlessCommand } from "@cursorless/vscode-common"; +import * as assert from "node:assert"; import * as vscode from "vscode"; -import { openNewEditor } from "@cursorless/vscode-common"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("fold", async function () { endToEndTestSetup(this); diff --git a/packages/cursorless-vscode-e2e/src/suite/groupByDocument.vscode.test.ts b/packages/cursorless-vscode-e2e/src/suite/groupByDocument.vscode.test.ts index 615ca08254..9799616c17 100644 --- a/packages/cursorless-vscode-e2e/src/suite/groupByDocument.vscode.test.ts +++ b/packages/cursorless-vscode-e2e/src/suite/groupByDocument.vscode.test.ts @@ -1,9 +1,11 @@ import { splitKey } from "@cursorless/common"; -import { getCursorlessApi } from "@cursorless/vscode-common"; -import * as assert from "assert"; +import { + getCursorlessApi, + runCursorlessCommand, +} from "@cursorless/vscode-common"; +import * as assert from "node:assert"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("Group by document", async function () { endToEndTestSetup(this); diff --git a/packages/cursorless-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts b/packages/cursorless-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts index ebbbc354e8..9a855cde49 100644 --- a/packages/cursorless-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts +++ b/packages/cursorless-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts @@ -1,7 +1,10 @@ -import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common"; -import * as assert from "assert"; +import { + getCursorlessApi, + openNewEditor, + runCursorlessCommand, +} from "@cursorless/vscode-common"; +import * as assert from "node:assert"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("Pour across split", async function () { endToEndTestSetup(this); diff --git a/packages/cursorless-vscode-e2e/src/suite/revealRange.vscode.test.ts b/packages/cursorless-vscode-e2e/src/suite/revealRange.vscode.test.ts index ec853d7591..5e645e9215 100644 --- a/packages/cursorless-vscode-e2e/src/suite/revealRange.vscode.test.ts +++ b/packages/cursorless-vscode-e2e/src/suite/revealRange.vscode.test.ts @@ -1,8 +1,7 @@ -import { openNewEditor } from "@cursorless/vscode-common"; +import { openNewEditor, runCursorlessCommand } from "@cursorless/vscode-common"; +import assert from "node:assert"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "@cursorless/vscode-common"; -import assert from "assert"; suite("revealRange", async function () { endToEndTestSetup(this); diff --git a/packages/cursorless-vscode-e2e/src/suite/scroll.vscode.test.ts b/packages/cursorless-vscode-e2e/src/suite/scroll.vscode.test.ts index da9f123275..ad7818d8df 100644 --- a/packages/cursorless-vscode-e2e/src/suite/scroll.vscode.test.ts +++ b/packages/cursorless-vscode-e2e/src/suite/scroll.vscode.test.ts @@ -1,7 +1,6 @@ -import { openNewEditor } from "@cursorless/vscode-common"; +import { openNewEditor, runCursorlessCommand } from "@cursorless/vscode-common"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("scroll", async function () { endToEndTestSetup(this); diff --git a/packages/cursorless-vscode-e2e/src/suite/visible.vscode.test.ts b/packages/cursorless-vscode-e2e/src/suite/visible.vscode.test.ts index 0567aa4936..b430220b9c 100644 --- a/packages/cursorless-vscode-e2e/src/suite/visible.vscode.test.ts +++ b/packages/cursorless-vscode-e2e/src/suite/visible.vscode.test.ts @@ -1,8 +1,7 @@ -import * as assert from "assert"; +import { openNewEditor, runCursorlessCommand } from "@cursorless/vscode-common"; +import * as assert from "node:assert"; import * as vscode from "vscode"; -import { openNewEditor } from "@cursorless/vscode-common"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("visible", async function () { endToEndTestSetup(this); diff --git a/packages/cursorless-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts b/packages/cursorless-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts index 802027c446..01ef8ae8ae 100644 --- a/packages/cursorless-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts +++ b/packages/cursorless-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts @@ -1,8 +1,11 @@ import { HatStability } from "@cursorless/common"; -import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common"; -import * as assert from "assert"; +import { + getCursorlessApi, + openNewEditor, + runCursorlessCommand, +} from "@cursorless/vscode-common"; +import * as assert from "node:assert"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "@cursorless/vscode-common"; import { setupFake } from "./setupFake"; suite("Wrap with snippet across split", async function () { diff --git a/packages/cursorless-vscode/src/VscodeSnippets.ts b/packages/cursorless-vscode/src/VscodeSnippets.ts index 722a8099eb..3a87a3f96c 100644 --- a/packages/cursorless-vscode/src/VscodeSnippets.ts +++ b/packages/cursorless-vscode/src/VscodeSnippets.ts @@ -1,5 +1,5 @@ -import type { Snippet, SnippetMap, TextEditor } from "@cursorless/common"; -import { mergeStrict, showError, type IDE } from "@cursorless/common"; +import type { IDE, Snippet, SnippetMap, TextEditor } from "@cursorless/common"; +import { mergeStrict, showError } from "@cursorless/common"; import { type Snippets } from "@cursorless/cursorless-engine"; import { walkFiles } from "@cursorless/node-common"; import { max } from "lodash-es"; diff --git a/packages/cursorless-vscode/src/extension.ts b/packages/cursorless-vscode/src/extension.ts index b00e14ed27..481a47c74d 100644 --- a/packages/cursorless-vscode/src/extension.ts +++ b/packages/cursorless-vscode/src/extension.ts @@ -6,12 +6,12 @@ import type { ScopeProvider, ScopeType, TextDocument, + TreeSitter, } from "@cursorless/common"; import { FakeCommandServerApi, FakeIDE, NormalizedIDE, - type TreeSitter, } from "@cursorless/common"; import type { EngineProps } from "@cursorless/cursorless-engine"; import { diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeConfiguration.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeConfiguration.ts index 0581a5b03b..6640df042f 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeConfiguration.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeConfiguration.ts @@ -1,13 +1,13 @@ -import * as os from "node:os"; -import { HatStability } from "@cursorless/common"; -import * as vscode from "vscode"; import type { Configuration, ConfigurationScope, CursorlessConfiguration, + GetFieldType, + Paths, } from "@cursorless/common"; -import type { GetFieldType, Paths } from "@cursorless/common"; -import { Notifier } from "@cursorless/common"; +import { HatStability, Notifier } from "@cursorless/common"; +import * as os from "node:os"; +import * as vscode from "vscode"; import type { VscodeIDE } from "./VscodeIDE"; type TranslatorMap = { diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts index 720630b315..daeafcf7d2 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts @@ -1,8 +1,7 @@ +import type { HatStyleInfo, HatStyleMap, Listener } from "@cursorless/common"; +import { Notifier } from "@cursorless/common"; import { pickBy } from "lodash-es"; import * as vscode from "vscode"; -import type { HatStyleInfo, HatStyleMap } from "@cursorless/common"; -import type { Listener } from "@cursorless/common"; -import { Notifier } from "@cursorless/common"; import type { HatColor, HatShape, VscodeHatStyleName } from "./hatStyles.types"; import { HAT_COLORS, HAT_NON_DEFAULT_SHAPES } from "./hatStyles.types"; diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeEvents.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeEvents.ts index 7afd189f49..eb77ddd1ea 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeEvents.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeEvents.ts @@ -1,12 +1,12 @@ -import { fromVscodeRange } from "@cursorless/vscode-common"; -import * as vscode from "vscode"; import type { + Disposable, + Event, TextDocumentChangeEvent, TextDocumentChangeReason, TextDocumentContentChangeEvent, } from "@cursorless/common"; -import type { Event } from "@cursorless/common"; -import type { Disposable } from "@cursorless/common"; +import { fromVscodeRange } from "@cursorless/vscode-common"; +import * as vscode from "vscode"; import { VscodeTextDocumentImpl } from "./VscodeTextDocumentImpl"; export function vscodeOnDidChangeTextDocument( diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeHighlights.ts b/packages/cursorless-vscode/src/ide/vscode/VscodeHighlights.ts index 54a9390ffb..1bcf07f42a 100644 --- a/packages/cursorless-vscode/src/ide/vscode/VscodeHighlights.ts +++ b/packages/cursorless-vscode/src/ide/vscode/VscodeHighlights.ts @@ -1,12 +1,11 @@ -import * as vscode from "vscode"; -import type { ExtensionContext } from "vscode"; -import { FlashStyle, partition } from "@cursorless/common"; import type { CharacterRange, GeneralizedRange, LineRange, } from "@cursorless/common"; -import { isLineRange } from "@cursorless/common"; +import { FlashStyle, isLineRange, partition } from "@cursorless/common"; +import type { ExtensionContext } from "vscode"; +import * as vscode from "vscode"; import { VscodeHighlightDecorationTypes } from "./VscodeHighlightDecorationTypes"; import type { VscodeTextEditorImpl } from "./VscodeTextEditorImpl"; diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardCommandsModal.ts b/packages/cursorless-vscode/src/keyboard/KeyboardCommandsModal.ts index 6002aed4ae..a47ef50083 100644 --- a/packages/cursorless-vscode/src/keyboard/KeyboardCommandsModal.ts +++ b/packages/cursorless-vscode/src/keyboard/KeyboardCommandsModal.ts @@ -1,18 +1,17 @@ +import { CompositeKeyMap } from "@cursorless/common"; +import type { VscodeApi } from "@cursorless/vscode-common"; import { pick, sortedUniq, toPairs } from "lodash-es"; import { Grammar, Parser } from "nearley"; import * as vscode from "vscode"; +import { KeyboardCommandHandler } from "./KeyboardCommandHandler"; import { KeyboardCommandsModalLayer } from "./KeyboardCommandsModalLayer"; import type KeyboardCommandsTargeted from "./KeyboardCommandsTargeted"; -import type { KeyDescriptor } from "./TokenTypeHelpers"; -import type { TokenTypeKeyMapMap } from "./TokenTypeHelpers"; +import { KeyboardConfig } from "./KeyboardConfig"; import type KeyboardHandler from "./KeyboardHandler"; +import type { KeyDescriptor, TokenTypeKeyMapMap } from "./TokenTypeHelpers"; +import { getTokenTypeKeyMaps } from "./getTokenTypeKeyMaps"; import grammar from "./grammar/generated/grammar"; import { getAcceptableTokenTypes } from "./grammar/getAcceptableTokenTypes"; -import { KeyboardCommandHandler } from "./KeyboardCommandHandler"; -import { getTokenTypeKeyMaps } from "./getTokenTypeKeyMaps"; -import type { VscodeApi } from "@cursorless/vscode-common"; -import { KeyboardConfig } from "./KeyboardConfig"; -import { CompositeKeyMap } from "@cursorless/common"; /** * Defines a mode to use with a modal version of Cursorless keyboard. diff --git a/packages/cursorless-vscode/src/registerCommands.ts b/packages/cursorless-vscode/src/registerCommands.ts index 5f735a5c01..8e0a5f8c13 100644 --- a/packages/cursorless-vscode/src/registerCommands.ts +++ b/packages/cursorless-vscode/src/registerCommands.ts @@ -1,8 +1,8 @@ -import type { CursorlessCommandId } from "@cursorless/common"; -import { - CURSORLESS_COMMAND_ID, - type CommandHistoryStorage, +import type { + CommandHistoryStorage, + CursorlessCommandId, } from "@cursorless/common"; +import { CURSORLESS_COMMAND_ID } from "@cursorless/common"; import { showCheatsheet, updateDefaults, diff --git a/packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts b/packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts index 933ae038be..0c957c570e 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts @@ -1,13 +1,13 @@ -import { get } from "lodash"; -import { Notifier } from "@cursorless/common"; import type { Configuration, ConfigurationScope, CursorlessConfigKey, CursorlessConfiguration, + GetFieldType, + Paths, } from "@cursorless/common"; -import { CONFIGURATION_DEFAULTS } from "@cursorless/common"; -import type { GetFieldType, Paths } from "@cursorless/common"; +import { CONFIGURATION_DEFAULTS, Notifier } from "@cursorless/common"; +import { get } from "lodash"; interface ConfigurationScopeValues { scope: ConfigurationScope; diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts index 8a45420cc5..3160a7ef96 100644 --- a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts +++ b/packages/neovim-common/src/ide/neovim/NeovimIDE.ts @@ -1,38 +1,37 @@ import type { Disposable, EditableTextEditor, + Event, + FlashDescriptor, + GeneralizedRange, IDE, NotebookEditor, OpenUntitledTextDocumentOptions, + QuickPickOptions, Range, RunMode, Selection, + TextDocument, TextDocumentChangeEvent, TextEditor, - WorkspaceFolder, -} from "@cursorless/common"; -import type { - Event, - FlashDescriptor, - GeneralizedRange, - QuickPickOptions, - TextDocument, TextEditorSelectionChangeEvent, TextEditorVisibleRangesChangeEvent, + WorkspaceFolder, } from "@cursorless/common"; +import { nodeGetRunMode } from "@cursorless/node-common"; import { pull } from "lodash"; import type { Buffer, NeovimClient, Window } from "neovim"; +import path from "path"; import { v4 as uuid } from "uuid"; +import { URI } from "vscode-uri"; import { NeovimCapabilities } from "./NeovimCapabilities"; import NeovimClipboard from "./NeovimClipboard"; import NeovimConfiguration from "./NeovimConfiguration"; import NeovimKeyValueStore from "./NeovimKeyValueStore"; import NeovimMessages from "./NeovimMessages"; import { NeovimTextEditorImpl } from "./NeovimTextEditorImpl"; -import path from "path"; -import { URI } from "vscode-uri"; -import { nodeGetRunMode } from "@cursorless/node-common"; +import { getNeovimRegistry } from "@cursorless/neovim-registry"; import { bufferGetSelections, getCursorlessNvimPath, @@ -44,7 +43,6 @@ import { neovimOnDidOpenTextDocument, } from "./NeovimEvents"; import { NeovimTextDocumentImpl } from "./NeovimTextDocumentImpl"; -import { getNeovimRegistry } from "@cursorless/neovim-registry"; export class NeovimIDE implements IDE { readonly configuration: NeovimConfiguration; diff --git a/packages/node-common/src/FileSystemTalonSpokenForms.ts b/packages/node-common/src/FileSystemTalonSpokenForms.ts index 97585cc055..028f41ba83 100644 --- a/packages/node-common/src/FileSystemTalonSpokenForms.ts +++ b/packages/node-common/src/FileSystemTalonSpokenForms.ts @@ -1,14 +1,11 @@ import type { Disposable, FileSystem, + Listener, SpokenFormEntry, TalonSpokenForms, } from "@cursorless/common"; -import { - NeedsInitialTalonUpdateError, - Notifier, - type Listener, -} from "@cursorless/common"; +import { NeedsInitialTalonUpdateError, Notifier } from "@cursorless/common"; import { readFile } from "node:fs/promises"; import * as path from "node:path"; diff --git a/packages/node-common/src/runRecordedTest.ts b/packages/node-common/src/runRecordedTest.ts index 78b2a8cdb9..cea16543cc 100644 --- a/packages/node-common/src/runRecordedTest.ts +++ b/packages/node-common/src/runRecordedTest.ts @@ -8,22 +8,22 @@ import type { SerializedMarks, SpyIDE, TestCaseFixtureLegacy, + TestHelpers, TextEditor, } from "@cursorless/common"; import { - Position, - Selection, clientSupportsFallback, getSnapshotForComparison, omitByDeep, + Position, rangeToPlainObject, - serializeTestFixture, + Selection, serializedMarksToTokenHats, + serializeTestFixture, shouldUpdateFixtures, splitKey, spyIDERecordedValuesToPlainObject, storedTargetKeys, - type TestHelpers, } from "@cursorless/common"; import { assert } from "chai"; import { isUndefined } from "lodash-es"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fdb48c64e..210822a0b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: ^3.3.1 version: 3.3.1 '@eslint/js': - specifier: ^9.31.0 - version: 9.31.0 + specifier: ^9.32.0 + version: 9.32.0 '@pnpm/meta-updater': specifier: ^2.0.6 version: 2.0.6(@types/node@24.1.0)(typanion@3.14.0) @@ -36,26 +36,26 @@ importers: specifier: ^0.25.8 version: 0.25.8 eslint: - specifier: ^9.31.0 - version: 9.31.0(jiti@2.5.1) + specifier: ^9.32.0 + version: 9.32.0(jiti@2.5.1) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.31.0(jiti@2.5.1)) + version: 10.1.8(eslint@9.32.0(jiti@2.5.1)) eslint-import-resolver-typescript: specifier: ^4.4.4 - version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.31.0(jiti@2.5.1)) + version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.31.0(jiti@2.5.1)) + version: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-mocha: specifier: ^11.1.0 - version: 11.1.0(eslint@9.31.0(jiti@2.5.1)) + version: 11.1.0(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-unicorn: specifier: ^60.0.0 - version: 60.0.0(eslint@9.31.0(jiti@2.5.1)) + version: 60.0.0(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-unused-imports: specifier: ^4.1.4 - version: 4.1.4(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1)) + version: 4.1.4(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1)) prettier: specifier: ~3.3.3 version: 3.3.3 @@ -70,7 +70,7 @@ importers: version: 5.8.3 typescript-eslint: specifier: ^8.38.0 - version: 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) + version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) packages/cheatsheet: dependencies: @@ -514,11 +514,11 @@ importers: specifier: ^19.1.6 version: 19.1.6(@types/react@19.1.8) eslint: - specifier: ^9.31.0 - version: 9.31.0(jiti@2.5.1) + specifier: ^9.32.0 + version: 9.32.0(jiti@2.5.1) eslint-config-next: specifier: ^15.4.4 - version: 15.4.4(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) + version: 15.4.4(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) http-server: specifier: ^14.1.1 version: 14.1.1 @@ -2402,8 +2402,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.31.0': - resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==} + '@eslint/js@9.32.0': + resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -2733,14 +2733,14 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.2.0': - resolution: {integrity: sha512-io1zEbbYcElht3tdlqEOFxZ0dMTYrHz9iMf0gqn1pPjZFTCgM5R4R5IMA20Chb2UPYYsxjzs8CgZ7Nb5n2K2rA==} + '@jsonjoy.com/json-pack@1.3.0': + resolution: {integrity: sha512-1Z1SAuWdmaD9LGfiors5zIQ/PHg/LmxyqNV7X4f9RDerTIXZr2isPg0TnRKoh8RFXAcUjVUMhtEZfgtkd5kXkw==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/util@1.6.0': - resolution: {integrity: sha512-sw/RMbehRhN68WRtcKCpQOPfnH6lLP4GJfqzi3iYej8tnzpZUDr6UkZYJjcjjC0FWEJOJbyM3PTIwxucUmDG2A==} + '@jsonjoy.com/util@1.8.0': + resolution: {integrity: sha512-HeR0JQNEdBozt+FrfyM5T0X3R+fIN0D+BRDkxPP5o41fTWzHfeZEqtK16aTW8haU+h+SG7XYq9PP5kobvOmkSA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -5563,8 +5563,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.17.1: - resolution: {integrity: sha512-t917ks10FGNf7MpwOxHUg6vo42p0XsdMHuBMVpy4NttPu5gIv8/ah5MgbHLVQJ2kmDvZfQUT1/xyCa1IR09u2Q==} + effect@3.17.2: + resolution: {integrity: sha512-xYHNOw90nfD9blT+VHgbK2uogu1gWQjfd1f1HIiRjnxIH9/cAmm3qj/muZZXL4VDSwTUZXZNhahUCxCBc4ZaHg==} ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} @@ -5863,8 +5863,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.31.0: - resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==} + eslint@9.32.0: + resolution: {integrity: sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -7571,8 +7571,8 @@ packages: resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} engines: {node: '>=10'} - memfs@4.17.2: - resolution: {integrity: sha512-NgYhCOWgovOXSzvYgUW0LQ7Qy72rWQMGGFJDoWg4G30RHd3z77VbYdtJ4fembJXBy8pMIUA31XNAupobOQlwdg==} + memfs@4.20.0: + resolution: {integrity: sha512-VKta4Y+0CPo0NvYMOE7vvhaNe4K5WTP077G1S4PS0h0joX0f15NosPT6y48rOpKLCh48nnlgY/TdRPwiKCIIkg==} engines: {node: '>= 4.0.0'} meow@11.0.0: @@ -8039,8 +8039,8 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + nwsapi@2.2.21: + resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -12806,9 +12806,9 @@ snapshots: '@esbuild/win32-x64@0.25.8': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0(jiti@2.5.1))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.32.0(jiti@2.5.1))': dependencies: - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -12841,7 +12841,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.31.0': {} + '@eslint/js@9.32.0': {} '@eslint/object-schema@2.1.6': {} @@ -13233,15 +13233,15 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.2.0(tslib@2.8.1)': + '@jsonjoy.com/json-pack@1.3.0(tslib@2.8.1)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/util': 1.6.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.8.0(tslib@2.8.1) hyperdyperid: 1.2.0 thingies: 1.21.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/util@1.6.0(tslib@2.8.1)': + '@jsonjoy.com/util@1.8.0(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -14988,7 +14988,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 24.1.0 + '@types/node': 17.0.45 '@types/semver@7.7.0': {} @@ -15062,15 +15062,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/type-utils': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.38.0 - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -15079,14 +15079,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.38.0 '@typescript-eslint/types': 8.38.0 '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.38.0 debug: 4.4.1(supports-color@8.1.1) - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -15109,13 +15109,13 @@ snapshots: dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.38.0 '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) debug: 4.4.1(supports-color@8.1.1) - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -15139,13 +15139,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) '@typescript-eslint/scope-manager': 8.38.0 '@typescript-eslint/types': 8.38.0 '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -16700,7 +16700,7 @@ snapshots: ee-first@1.1.1: {} - effect@3.17.1: + effect@3.17.2: dependencies: '@standard-schema/spec': 1.0.0 fast-check: 3.23.2 @@ -16930,19 +16930,19 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@15.4.4(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3): + eslint-config-next@15.4.4(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3): dependencies: '@next/eslint-plugin-next': 15.4.4 '@rushstack/eslint-patch': 1.12.0 - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) - eslint: 9.31.0(jiti@2.5.1) + '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.31.0(jiti@2.5.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.31.0(jiti@2.5.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.31.0(jiti@2.5.1)) - eslint-plugin-react: 7.37.5(eslint@9.31.0(jiti@2.5.1)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.31.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-react: 7.37.5(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.32.0(jiti@2.5.1)) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -16950,9 +16950,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@2.5.1)): + eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.5.1)): dependencies: - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: @@ -16969,25 +16969,25 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.31.0(jiti@2.5.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1(supports-color@8.1.1) - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.14 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.31.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.31.0(jiti@2.5.1)): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)): dependencies: debug: 4.4.1(supports-color@8.1.1) - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 @@ -16995,22 +16995,22 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.31.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.31.0(jiti@2.5.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.5.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) - eslint: 9.31.0(jiti@2.5.1) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.31.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.31.0(jiti@2.5.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -17019,9 +17019,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.31.0(jiti@2.5.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -17033,13 +17033,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.31.0(jiti@2.5.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.32.0(jiti@2.5.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -17049,7 +17049,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -17058,17 +17058,17 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-mocha@11.1.0(eslint@9.31.0(jiti@2.5.1)): + eslint-plugin-mocha@11.1.0(eslint@9.32.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.5.1)) - eslint: 9.31.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) + eslint: 9.32.0(jiti@2.5.1) globals: 15.15.0 - eslint-plugin-react-hooks@5.2.0(eslint@9.31.0(jiti@2.5.1)): + eslint-plugin-react-hooks@5.2.0(eslint@9.32.0(jiti@2.5.1)): dependencies: - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) - eslint-plugin-react@7.37.5(eslint@9.31.0(jiti@2.5.1)): + eslint-plugin-react@7.37.5(eslint@9.32.0(jiti@2.5.1)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -17076,7 +17076,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -17090,16 +17090,16 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-unicorn@60.0.0(eslint@9.31.0(jiti@2.5.1)): + eslint-plugin-unicorn@60.0.0(eslint@9.32.0(jiti@2.5.1)): dependencies: '@babel/helper-validator-identifier': 7.27.1 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) '@eslint/plugin-kit': 0.3.4 change-case: 5.4.4 ci-info: 4.3.0 clean-regexp: 1.0.0 core-js-compat: 3.44.0 - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) esquery: 1.6.0 find-up-simple: 1.0.1 globals: 16.3.0 @@ -17112,11 +17112,11 @@ snapshots: semver: 7.7.2 strip-indent: 4.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1)): dependencies: - eslint: 9.31.0(jiti@2.5.1) + eslint: 9.32.0(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) eslint-scope@5.1.1: dependencies: @@ -17132,15 +17132,15 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.31.0(jiti@2.5.1): + eslint@9.32.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.0 '@eslint/core': 0.15.1 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.31.0 + '@eslint/js': 9.32.0 '@eslint/plugin-kit': 0.3.4 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -18792,7 +18792,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 + nwsapi: 2.2.21 parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 @@ -19321,10 +19321,10 @@ snapshots: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 - memfs@4.17.2: + memfs@4.20.0: dependencies: - '@jsonjoy.com/json-pack': 1.2.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.6.0(tslib@2.8.1) + '@jsonjoy.com/json-pack': 1.3.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.8.0(tslib@2.8.1) tree-dump: 1.0.3(tslib@2.8.1) tslib: 2.8.1 @@ -19974,7 +19974,7 @@ snapshots: schema-utils: 3.3.0 webpack: 5.100.2(esbuild@0.25.8) - nwsapi@2.2.20: {} + nwsapi@2.2.21: {} object-assign@4.1.1: {} @@ -22011,7 +22011,7 @@ snapshots: chalk-template: 1.1.0 commander: 13.1.0 cosmiconfig: 9.0.0(typescript@5.8.3) - effect: 3.17.1 + effect: 3.17.2 enquirer: 2.4.1 fast-check: 3.23.2 globby: 14.1.0 @@ -22307,13 +22307,13 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript-eslint@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3): + typescript-eslint@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3) - eslint: 9.31.0(jiti@2.5.1) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.32.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -22604,7 +22604,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.100.2(esbuild@0.25.8)): dependencies: colorette: 2.0.20 - memfs: 4.17.2 + memfs: 4.20.0 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -22615,7 +22615,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.100.2): dependencies: colorette: 2.0.20 - memfs: 4.17.2 + memfs: 4.20.0 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1