@opentui/keymap 0.2.8 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/package.json +4 -4
- package/src/index.js +20 -12
- package/src/index.js.map +3 -3
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ It models keybindings as priority-ordered, focus-scoped layers attached to targe
|
|
|
11
11
|
- **Layered bindings** with priority ordering, newest-first ties, `fallthrough`, and `preventDefault` control.
|
|
12
12
|
- **Branch-aware multi-key sequences** over flat compiled bindings, with a public pending-sequence API, synchronous `pendingSequence` events, active continuation queries, and automatic invalidation on focus changes.
|
|
13
13
|
- **Programmable exact-vs-prefix disambiguation** (e.g. `g` vs `gg`) with `runExact`, `continueSequence`, `clear`, and deferred `AbortSignal` + `sleep` decisions. Ships a Neovim-style timeout resolver.
|
|
14
|
-
- **Pluggable binding language**: stackable binding parsers, key expanders, layer-binding transformers, binding transformers, command resolvers, command transformers, and event-match resolvers.
|
|
14
|
+
- **Pluggable binding language**: stackable binding parsers, key expanders, layer-binding transformers, binding transformers, command resolvers, command transformers, and ordered event-match resolvers.
|
|
15
15
|
- **Extensible schema and activation**: register custom fields on layers, bindings, and commands. Field compilers can emit `attrs`; all field kinds can gate activation via `require(...)` and `activeWhen(matcher)`.
|
|
16
16
|
- **Reactive matchers** with subscription-driven state notifications, plus React store and Solid signal helpers.
|
|
17
17
|
- **Raw and key intercepts** before and after normal binding dispatch, including pre-binding `consume({ preventDefault, stopPropagation })`, post-dispatch handled/no-match outcomes, and raw input `stop()` handling.
|
|
@@ -33,7 +33,7 @@ It models keybindings as priority-ordered, focus-scoped layers attached to targe
|
|
|
33
33
|
- `registerNeovimDisambiguation`, `registerEscapeClearsPendingSequence`, `registerBackspacePopsPendingSequence`.
|
|
34
34
|
- `registerDeadBindingWarnings`, `registerUnresolvedCommandWarnings`.
|
|
35
35
|
|
|
36
|
-
`@opentui/keymap/addons/opentui` adds OpenTUI-specific pieces: layout-independent matching via `event.baseCode`, and pre-wired textarea / edit-buffer commands.
|
|
36
|
+
`@opentui/keymap/addons/opentui` adds OpenTUI-specific pieces: layout-independent matching via `event.baseCode`, and pre-wired textarea / edit-buffer commands. Direct event matches win before fallback matches, even across layers.
|
|
37
37
|
|
|
38
38
|
## Entry Points
|
|
39
39
|
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"main": "src/index.js",
|
|
5
5
|
"types": "src/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "0.2.
|
|
7
|
+
"version": "0.2.10",
|
|
8
8
|
"description": "Standalone keymap package for OpenTUI",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@opentui/core": "0.2.
|
|
73
|
+
"@opentui/core": "0.2.10"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@opentui/react": "workspace:*",
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"typescript": "^5"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
|
-
"@opentui/react": "0.2.
|
|
87
|
-
"@opentui/solid": "0.2.
|
|
86
|
+
"@opentui/react": "0.2.10",
|
|
87
|
+
"@opentui/solid": "0.2.10",
|
|
88
88
|
"react": ">=19.2.0",
|
|
89
89
|
"solid-js": "1.9.12"
|
|
90
90
|
},
|
package/src/index.js
CHANGED
|
@@ -2886,15 +2886,15 @@ function createDispatchService(state, notify, runtime, activation, conditions, e
|
|
|
2886
2886
|
const activeLayers = activation.getActiveLayers(focused);
|
|
2887
2887
|
const matchKeys = resolveEventMatchKeys(event);
|
|
2888
2888
|
let outcome = noMatchOutcome();
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2889
|
+
for (const strokeKey of matchKeys) {
|
|
2890
|
+
layerLoop:
|
|
2891
|
+
for (const layer of activeLayers) {
|
|
2892
|
+
if (layer.bindings.length === 0) {
|
|
2893
|
+
continue;
|
|
2894
|
+
}
|
|
2895
|
+
if (!conditions.matchesConditions(layer)) {
|
|
2896
|
+
continue;
|
|
2897
|
+
}
|
|
2898
2898
|
const result = runReleaseBindings(layer, strokeKey, event, focused);
|
|
2899
2899
|
outcome = preferDispatchOutcome(outcome, result.outcome);
|
|
2900
2900
|
if (!result.handled) {
|
|
@@ -2905,7 +2905,7 @@ function createDispatchService(state, notify, runtime, activation, conditions, e
|
|
|
2905
2905
|
}
|
|
2906
2906
|
continue layerLoop;
|
|
2907
2907
|
}
|
|
2908
|
-
|
|
2908
|
+
}
|
|
2909
2909
|
return outcome;
|
|
2910
2910
|
}
|
|
2911
2911
|
function dispatchLayers(event) {
|
|
@@ -2916,7 +2916,15 @@ function createDispatchService(state, notify, runtime, activation, conditions, e
|
|
|
2916
2916
|
return dispatchPendingSequence(pending, matchKeys, event, focused);
|
|
2917
2917
|
}
|
|
2918
2918
|
const activeLayers = activation.getActiveLayers(focused);
|
|
2919
|
-
|
|
2919
|
+
let outcome = noMatchOutcome();
|
|
2920
|
+
for (const matchKey of matchKeys) {
|
|
2921
|
+
const result = dispatchFromRoot(activeLayers, [matchKey], event, focused);
|
|
2922
|
+
outcome = preferDispatchOutcome(outcome, result);
|
|
2923
|
+
if (result.handled) {
|
|
2924
|
+
return outcome;
|
|
2925
|
+
}
|
|
2926
|
+
}
|
|
2927
|
+
return outcome;
|
|
2920
2928
|
}
|
|
2921
2929
|
function dispatchPendingSequence(pending, matchKeys, event, focused) {
|
|
2922
2930
|
const activeView = catalog.getActiveCommandView(focused);
|
|
@@ -4488,5 +4496,5 @@ export {
|
|
|
4488
4496
|
KEYMAP_EXTENSION_CONTEXT
|
|
4489
4497
|
};
|
|
4490
4498
|
|
|
4491
|
-
//# debugId=
|
|
4499
|
+
//# debugId=4219BCC7E15CDA4F64756E2164756E21
|
|
4492
4500
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"import type { Keymap } from \"./keymap.js\"\n\nexport interface KeymapEvent {\n name: string\n ctrl: boolean\n shift: boolean\n meta: boolean\n super?: boolean\n hyper?: boolean\n preventDefault(): void\n stopPropagation(): void\n readonly propagationStopped: boolean\n}\n\nexport type HostPlatform = \"macos\" | \"windows\" | \"linux\" | \"unknown\"\n\nexport type HostModifier = \"ctrl\" | \"shift\" | \"meta\" | \"super\" | \"hyper\"\n\nexport type HostCapability = \"supported\" | \"unsupported\" | \"unknown\"\n\nexport interface HostMetadata {\n platform: HostPlatform\n primaryModifier: \"ctrl\" | \"super\" | \"unknown\"\n modifiers: Record<HostModifier, HostCapability>\n}\n\nexport interface KeymapHost<TTarget extends object, TEvent extends KeymapEvent = KeymapEvent> {\n readonly metadata: HostMetadata\n readonly rootTarget: TTarget\n readonly isDestroyed: boolean\n getFocusedTarget(): TTarget | null\n getParentTarget(target: TTarget): TTarget | null\n isTargetDestroyed(target: TTarget): boolean\n onKeyPress(listener: (event: TEvent) => void): () => void\n onKeyRelease(listener: (event: TEvent) => void): () => void\n onFocusChange(listener: (target: TTarget | null) => void): () => void\n /** Optional for hosts whose lifetime is managed by GC or root reachability. */\n onDestroy?(listener: () => void): () => void\n onTargetDestroy(target: TTarget, listener: () => void): () => void\n onRawInput?(listener: (sequence: string) => boolean): () => void\n createCommandEvent(): TEvent\n}\n\nexport type EventData = Record<string, unknown>\n\nexport type Attributes = Record<string, unknown>\n\nexport interface KeyStrokeInput {\n name: string\n ctrl?: boolean\n shift?: boolean\n meta?: boolean\n super?: boolean\n hyper?: boolean\n}\n\nexport interface NormalizedKeyStroke extends KeyStrokeInput {\n ctrl: boolean\n shift: boolean\n meta: boolean\n super: boolean\n}\n\nexport type KeyMatch = string\n\nexport interface EventMatchResolverContext {\n resolveKey(key: KeyLike): KeyMatch\n}\n\nexport type EventMatchResolver<TEvent extends KeymapEvent = KeymapEvent> = (\n event: TEvent,\n ctx: EventMatchResolverContext,\n) => readonly KeyMatch[] | undefined\n\nexport const KEY_DISAMBIGUATION_DECISION = Symbol(\"keymap-disambiguation-decision\")\nexport const KEY_DEFERRED_DISAMBIGUATION_DECISION = Symbol(\"keymap-deferred-disambiguation-decision\")\n\nexport interface KeyDisambiguationDecision {\n readonly [KEY_DISAMBIGUATION_DECISION]: true\n}\n\nexport interface KeyDeferredDisambiguationDecision {\n readonly [KEY_DEFERRED_DISAMBIGUATION_DECISION]: true\n}\n\nexport interface KeyDisambiguationContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n readonly event: Readonly<Omit<TEvent, \"preventDefault\" | \"stopPropagation\">>\n readonly focused: TTarget | null\n readonly sequence: readonly KeySequencePart[]\n readonly stroke: KeySequencePart\n readonly exact: readonly ActiveBinding<TTarget, TEvent>[]\n readonly continuations: readonly ActiveKey<TTarget, TEvent>[]\n getData(name: string): unknown\n setData(name: string, value: unknown): void\n runExact(): KeyDisambiguationDecision\n continueSequence(): KeyDisambiguationDecision\n clear(): KeyDisambiguationDecision\n defer(run: KeyDeferredDisambiguationHandler<TTarget, TEvent>): KeyDisambiguationDecision\n}\n\nexport interface KeyDeferredDisambiguationContext<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n> {\n readonly signal: AbortSignal\n readonly sequence: readonly KeySequencePart[]\n readonly focused: TTarget | null\n sleep(ms: number): Promise<boolean>\n runExact(): KeyDeferredDisambiguationDecision\n continueSequence(): KeyDeferredDisambiguationDecision\n clear(): KeyDeferredDisambiguationDecision\n}\n\nexport type KeyDeferredDisambiguationHandler<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n> = (\n ctx: KeyDeferredDisambiguationContext<TTarget, TEvent>,\n) => KeyDeferredDisambiguationDecision | void | Promise<KeyDeferredDisambiguationDecision | void>\n\nexport type KeyDisambiguationResolver<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (\n ctx: KeyDisambiguationContext<TTarget, TEvent>,\n) => KeyDisambiguationDecision | undefined\n\nexport interface ResolvedKeyToken {\n stroke: NormalizedKeyStroke\n match: KeyMatch\n}\n\nexport interface KeySequencePart {\n stroke: NormalizedKeyStroke\n display: string\n match: KeyMatch\n tokenName?: string\n patternName?: string\n payloadKey?: string\n}\n\nexport interface StringifyOptions {\n preferDisplay?: boolean\n separator?: string\n}\n\nexport type KeyStringifyInput =\n | KeyStrokeInput\n | NormalizedKeyStroke\n | KeySequencePart\n | { stroke: NormalizedKeyStroke; display?: string }\n\nexport type KeyLike = string | KeyStrokeInput\n\n/**\n * Public command shape used for layer registration, command queries, command\n * contexts, and command resolver results. Custom command fields are top-level\n * properties so registration stays as simple as `{ name, run, desc }`.\n */\nexport interface Command<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n TPayload = unknown,\n> {\n name: string\n run(ctx: CommandContext<TTarget, TEvent, TPayload>): CommandResult<TTarget, TEvent>\n [key: string]: unknown\n}\n\nexport type CommandQueryValue<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | unknown\n | readonly unknown[]\n | ((value: unknown, command: Command<TTarget, TEvent>) => boolean)\n\nexport type CommandFilter<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | Readonly<Record<string, CommandQueryValue<TTarget, TEvent>>>\n | ((command: Command<TTarget, TEvent>) => boolean)\n\nexport interface CommandQuery<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n visibility?: \"reachable\" | \"active\" | \"registered\"\n focused?: TTarget | null\n namespace?: string | readonly string[]\n search?: string\n searchIn?: readonly string[]\n filter?: CommandFilter<TTarget, TEvent>\n limit?: number\n}\n\nexport interface CommandBindingsQuery<TTarget extends object = object> {\n visibility?: \"reachable\" | \"active\" | \"registered\"\n focused?: TTarget | null\n commands: readonly string[]\n}\n\nexport interface RunCommandOptions<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n event?: TEvent\n focused?: TTarget | null\n target?: TTarget | null\n includeCommand?: boolean\n payload?: unknown\n}\n\nexport type RunCommandResult<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | { ok: true; command?: Command<TTarget, TEvent> }\n | { ok: false; reason: \"not-found\" }\n | {\n ok: false\n reason: \"inactive\" | \"disabled\" | \"invalid-args\" | \"rejected\" | \"error\"\n command?: Command<TTarget, TEvent>\n }\n\nexport interface CommandContext<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n TPayload = unknown,\n> {\n keymap: Keymap<TTarget, TEvent>\n event: TEvent\n focused: TTarget | null\n target: TTarget | null\n data: Readonly<EventData>\n command?: Command<TTarget, TEvent, TPayload>\n input: string\n payload: TPayload\n}\n\nexport type CommandResult<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | boolean\n | void\n | RunCommandResult<TTarget, TEvent>\n | Promise<boolean | void | RunCommandResult<TTarget, TEvent>>\n\nexport type CommandResolutionStatus = \"resolved\" | \"unresolved\" | \"error\"\n\nexport type CommandHandler<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n TPayload = unknown,\n> = (ctx: CommandContext<TTarget, TEvent, TPayload>) => CommandResult<TTarget, TEvent>\n\nexport type BindingCommand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | string\n | CommandHandler<TTarget, TEvent>\n\nexport type BindingEvent = \"press\" | \"release\"\n\nexport interface Binding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n key: KeyLike\n cmd?: BindingCommand<TTarget, TEvent>\n event?: BindingEvent\n /**\n * Default `true`. Calls `event.preventDefault()` and\n * `event.stopPropagation()` so the matched key does not reach the focused\n * target or later host listeners. Independent of `fallthrough`, which only\n * controls dispatch inside the keymap. Set `preventDefault: false` if you\n * want a fallthrough binding to keep matching inside the keymap and still let\n * the key escape to later handlers.\n */\n preventDefault?: boolean\n /**\n * Default `false`. Continues to later matching bindings in the same\n * dispatch chain after this command runs. Independent of `preventDefault`,\n * which controls whether the key event leaves the keymap.\n */\n fallthrough?: boolean\n [key: string]: unknown\n}\n\nexport type Bindings<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = readonly Binding<\n TTarget,\n TEvent\n>[]\n\nexport type TargetMode = \"focus\" | \"focus-within\"\n\nexport interface Layer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n target?: TTarget\n priority?: number\n bindings?: Bindings<TTarget, TEvent>\n commands?: readonly Command<TTarget, TEvent, any>[]\n targetMode?: TargetMode\n /**\n * Extra layer fields feed layer-field compilers and binding compilation via\n * `BindingParserContext.layer` / `BindingTransformerContext.layer`. Unlike\n * binding and command fields, layer fields do not compile into public attrs.\n */\n [key: string]: unknown\n}\n\nexport interface ParsedCommand {\n input: string\n name: string\n args: string[]\n}\n\nexport interface CommandResolverContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n readonly input: string\n readonly payload: unknown\n setInput(input: string): void\n setPayload(payload: unknown): void\n getCommand(name: string): Command<TTarget, TEvent> | undefined\n}\n\nexport type CommandResolver<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (\n command: string,\n ctx: CommandResolverContext<TTarget, TEvent>,\n) => Command<TTarget, TEvent> | undefined\n\nexport interface KeyToken {\n name: string\n key: KeyLike\n}\n\nexport interface SequencePatternMatch {\n value?: unknown\n display?: string\n}\n\nexport interface SequencePattern<TEvent extends KeymapEvent = KeymapEvent> {\n name: string\n display?: string\n payloadKey?: string\n min?: number\n max?: number\n match(event: TEvent): SequencePatternMatch | undefined\n finalize?(values: readonly unknown[]): unknown\n}\n\nexport interface ResolvedSequencePattern<TEvent extends KeymapEvent = KeymapEvent> {\n name: string\n display?: string\n payloadKey: string\n match: KeyMatch\n min: number\n max: number\n matcher(event: TEvent): SequencePatternMatch | undefined\n finalize?: (values: readonly unknown[]) => unknown\n}\n\nexport interface ActiveBinding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n sequence: KeySequencePart[]\n command?: BindingCommand<TTarget, TEvent>\n commandAttrs?: Readonly<Attributes>\n attrs?: Readonly<Attributes>\n event: BindingEvent\n preventDefault: boolean\n fallthrough: boolean\n}\n\nexport interface DispatchLayer<TTarget extends object = object> {\n order: number\n priority: number\n target?: TTarget\n targetMode?: TargetMode\n}\n\nexport interface DispatchBinding<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n> extends ActiveBinding<TTarget, TEvent> {\n sourceLayerOrder: number\n bindingIndex: number\n}\n\nexport type DispatchPhase =\n | \"sequence-start\"\n | \"sequence-advance\"\n | \"sequence-clear\"\n | \"binding-execute\"\n | \"binding-reject\"\n\nexport interface DispatchEvent<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n phase: DispatchPhase\n event: BindingEvent\n focused: TTarget | null\n layer?: DispatchLayer<TTarget>\n binding?: DispatchBinding<TTarget, TEvent>\n sequence: readonly KeySequencePart[]\n command?: BindingCommand<TTarget, TEvent>\n}\n\nexport type KeyAfterReason =\n | \"intercept-consumed\"\n | \"binding-handled\"\n | \"binding-rejected\"\n | \"no-match\"\n | \"sequence-pending\"\n | \"sequence-miss\"\n | \"sequence-cleared\"\n\nexport interface KeyAfterInputContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n event: TEvent\n eventType: BindingEvent\n focused: TTarget | null\n handled: boolean\n reason: KeyAfterReason\n sequence: readonly KeySequencePart[]\n pendingSequence: readonly KeySequencePart[]\n setData: (name: string, value: unknown) => void\n getData: (name: string) => unknown\n consume: (options?: { preventDefault?: boolean; stopPropagation?: boolean }) => void\n}\n\n/**\n * Command metadata together with the bindings that invoke it in a given query\n * projection.\n */\nexport interface CommandEntry<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n command: Command<TTarget, TEvent>\n bindings: readonly ActiveBinding<TTarget, TEvent>[]\n}\n\nexport interface ActiveKeyOptions {\n includeBindings?: boolean\n includeMetadata?: boolean\n}\n\nexport interface ActiveKey<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n stroke: NormalizedKeyStroke\n display: string\n tokenName?: string\n bindings?: ActiveBinding<TTarget, TEvent>[]\n bindingAttrs?: Readonly<Attributes>\n commandAttrs?: Readonly<Attributes>\n command?: BindingCommand<TTarget, TEvent>\n continues: boolean\n}\n\n/**\n * Boolean source with subscription-based invalidation. `ctx.activeWhen(...)`\n * subscribes at registration time and unsubscribes when the owning\n * layer or binding is removed.\n */\nexport interface ReactiveMatcher {\n get(): boolean\n subscribe(onChange: () => void): () => void\n}\n\nexport interface BindingFieldContext {\n require(name: string, value: unknown): void\n attr(name: string, value: unknown): void\n /**\n * Registers a runtime matcher. Matchers are evaluated when the owning\n * record is queried or dispatched; reactive matchers also notify state\n * subscribers when their external source changes.\n */\n activeWhen(matcher: (() => boolean) | ReactiveMatcher): void\n}\n\nexport type BindingFieldCompiler = (value: unknown, ctx: BindingFieldContext) => void\n\nexport interface LayerFieldContext {\n require(name: string, value: unknown): void\n attr(name: string, value: unknown): void\n /**\n * Registers a runtime matcher. Matchers are evaluated when the owning\n * record is queried or dispatched; reactive matchers also notify state\n * subscribers when their external source changes.\n */\n activeWhen(matcher: (() => boolean) | ReactiveMatcher): void\n}\n\nexport type LayerFieldCompiler = (value: unknown, ctx: LayerFieldContext) => void\n\nexport interface LayerAnalysisContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n target?: TTarget\n order: number\n sourceBindings: readonly Binding<TTarget, TEvent>[]\n bindings: readonly LayerBindingAnalysis<TTarget, TEvent>[]\n hasTokenBindings: boolean\n checkCommandResolution(command: string): CommandResolutionStatus\n warn(code: string, warning: unknown, message: string): void\n warnOnce(key: string, code: string, warning: unknown, message: string): void\n error(code: string, error: unknown, message: string): void\n}\n\nexport interface LayerBindingAnalysis<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n sequence: KeySequencePart[]\n command?: BindingCommand<TTarget, TEvent>\n attrs?: Readonly<Attributes>\n event: BindingEvent\n preventDefault: boolean\n fallthrough: boolean\n parsedBinding: ParsedBinding<TTarget, TEvent>\n sourceTarget?: TTarget\n sourceLayerOrder: number\n bindingIndex: number\n hasCommandAtSequence: boolean\n hasContinuations: boolean\n}\n\nexport type LayerAnalyzer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (\n ctx: LayerAnalysisContext<TTarget, TEvent>,\n) => void\n\nexport interface BindingParserContext {\n input: string\n index: number\n layer: Readonly<Record<string, unknown>>\n tokens: ReadonlyMap<string, ResolvedKeyToken>\n patterns: ReadonlyMap<string, ResolvedSequencePattern>\n normalizeTokenName(token: string): string\n createMatch(id: string): KeyMatch\n parseObjectKey(\n key: KeyStrokeInput,\n options?: {\n display?: string\n match?: KeyMatch\n tokenName?: string\n },\n ): KeySequencePart\n}\n\nexport interface BindingExpanderContext {\n input: string\n displays?: readonly string[]\n layer: Readonly<Record<string, unknown>>\n}\n\nexport interface BindingExpansion {\n key: string\n displays?: readonly string[]\n}\n\nexport interface BindingParserResult {\n parts: KeySequencePart[]\n nextIndex: number\n usedTokens?: readonly string[]\n unknownTokens?: readonly string[]\n}\n\nexport type BindingParser = (ctx: BindingParserContext) => BindingParserResult | undefined\n\nexport type BindingExpander = (ctx: BindingExpanderContext) => readonly BindingExpansion[] | undefined\n\nexport interface ParsedBinding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n key: KeyLike\n sequence: KeySequencePart[]\n cmd?: BindingCommand<TTarget, TEvent>\n event?: BindingEvent\n preventDefault?: boolean\n fallthrough?: boolean\n [key: string]: unknown\n}\n\nexport interface BindingTransformerContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n layer: Readonly<Record<string, unknown>>\n parseKey(key: KeyLike): KeySequencePart\n add(binding: ParsedBinding<TTarget, TEvent>): void\n skipOriginal(): void\n}\n\nexport type BindingTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (\n binding: ParsedBinding<TTarget, TEvent>,\n ctx: BindingTransformerContext<TTarget, TEvent>,\n) => void\n\nexport type BindingsValidationResult = { ok: true } | { ok: false; reason: string }\n\nexport interface LayerBindingsTransformerContext<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n> {\n layer: Readonly<Layer<TTarget, TEvent>>\n validateBindings(bindings: unknown): BindingsValidationResult\n}\n\nexport type LayerBindingsTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (\n bindings: readonly Binding<TTarget, TEvent>[],\n ctx: LayerBindingsTransformerContext<TTarget, TEvent>,\n) => readonly Binding<TTarget, TEvent>[] | void\n\nexport interface CommandTransformerContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n layer: Readonly<Layer<TTarget, TEvent>>\n add(command: Command<TTarget, TEvent>): void\n skipOriginal(): void\n}\n\nexport type CommandTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (\n command: Command<TTarget, TEvent>,\n ctx: CommandTransformerContext<TTarget, TEvent>,\n) => void\n\nexport interface CommandFieldContext {\n require(name: string, value: unknown): void\n attr(name: string, value: unknown): void\n /**\n * Registers a runtime matcher. Matchers are evaluated when the owning\n * record is queried or dispatched; reactive matchers also notify state\n * subscribers when their external source changes.\n */\n activeWhen(matcher: (() => boolean) | ReactiveMatcher): void\n}\n\nexport type CommandFieldCompiler = (value: unknown, ctx: CommandFieldContext) => void\n\nexport interface KeyInputContext<TEvent extends KeymapEvent = KeymapEvent> {\n event: TEvent\n setData: (name: string, value: unknown) => void\n getData: (name: string) => unknown\n consume: (options?: { preventDefault?: boolean; stopPropagation?: boolean }) => void\n}\n\nexport interface RawInputContext {\n sequence: string\n stop: () => void\n}\n\nexport type Hooks<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = {\n /**\n * Batched \"derived state may have changed\" signal. Re-read through getters;\n * framework adapters should use this event.\n */\n state: void\n /**\n * Synchronous pending-sequence updates, including clear. Payload is the\n * current sequence.\n */\n pendingSequence: readonly KeySequencePart[]\n /** Dispatch trace events for sequence continuation and binding execution. */\n dispatch: DispatchEvent<TTarget, TEvent>\n}\n\nexport type HookName = keyof Hooks\n\nexport type Listener<TValue> = [TValue] extends [void] ? () => void : (value: TValue) => void\n\nexport interface WarningEvent {\n code: string\n message: string\n warning: unknown\n}\n\nexport interface ErrorEvent {\n code: string\n message: string\n error: unknown\n}\n\n/** Events exposed by `keymap.on(...)`. `state` is batched and `pendingSequence` is synchronous. */\nexport type Events<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Hooks<\n TTarget,\n TEvent\n> & {\n warning: WarningEvent\n error: ErrorEvent\n}\n\nexport type EventName = keyof Events\n\nexport type Intercepts<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = {\n key: KeyInputContext<TEvent>\n \"key:after\": KeyAfterInputContext<TTarget, TEvent>\n raw: RawInputContext\n}\n\nexport type InterceptName = keyof Intercepts\n\nexport interface KeyInterceptOptions {\n priority?: number\n release?: boolean\n}\n\nexport interface RawInterceptOptions {\n priority?: number\n}\n\nexport type { Keymap }\n\nexport interface RuntimeMatcher {\n source: string\n match: () => boolean\n /**\n * Present for reactive matchers; wired during registration and torn down via\n * `dispose`.\n */\n subscribe?: (onChange: () => void) => () => void\n dispose?: () => void\n}\n\nexport interface RuntimeMatchable {\n requires: readonly [name: string, value: unknown][]\n matchers: readonly RuntimeMatcher[]\n}\n\nexport interface BindingState<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>\n extends ActiveBinding<TTarget, TEvent>, RuntimeMatchable {\n binding: Binding<TTarget, TEvent>\n run?: CommandHandler<TTarget, TEvent>\n parsedBinding: ParsedBinding<TTarget, TEvent>\n sourceTarget?: TTarget\n sourceLayerOrder: number\n bindingIndex: number\n}\n\nexport interface ActiveKeySelection<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n display: string\n tokenName?: string\n continues: boolean\n firstBinding?: BindingState<TTarget, TEvent>\n commandBinding?: BindingState<TTarget, TEvent>\n bindings?: readonly BindingState<TTarget, TEvent>[]\n stop: boolean\n}\n\nexport interface ActiveKeyState<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n stroke: NormalizedKeyStroke\n display: string\n tokenName?: string\n continues: boolean\n firstBinding?: BindingState<TTarget, TEvent>\n commandBinding?: BindingState<TTarget, TEvent>\n bindings?: BindingState<TTarget, TEvent>[]\n}\n\nexport interface CommandState<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n> extends RuntimeMatchable {\n command: Command<TTarget, TEvent, any>\n fields: Readonly<Record<string, unknown>>\n attrs?: Readonly<Attributes>\n}\n\nexport interface BindingCompilationResult<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n bindings: readonly BindingState<TTarget, TEvent>[]\n hasTokenBindings: boolean\n}\n\nexport interface SequenceNode<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n parent: SequenceNode<TTarget, TEvent> | null\n depth: number\n stroke: NormalizedKeyStroke | null\n match: KeyMatch | null\n pattern?: ResolvedSequencePattern<TEvent>\n children: Map<KeyMatch, SequenceNode<TTarget, TEvent>>\n patternChildren: SequenceNode<TTarget, TEvent>[]\n bindings: BindingState<TTarget, TEvent>[]\n reachableBindings: BindingState<TTarget, TEvent>[]\n}\n\nexport interface RegisteredLayer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n order: number\n target?: TTarget\n targetMode?: TargetMode\n priority: number\n requires: readonly [name: string, value: unknown][]\n matchers: readonly RuntimeMatcher[]\n fields?: Readonly<Record<string, unknown>>\n attrs?: Readonly<Attributes>\n commands: readonly CommandState<TTarget, TEvent>[]\n sourceBindings: readonly Binding<TTarget, TEvent>[]\n bindings: readonly BindingState<TTarget, TEvent>[]\n root: SequenceNode<TTarget, TEvent>\n hasTokenBindings: boolean\n activeKeyCacheBlocked: boolean\n activeCommandViewCacheBlocked: boolean\n offTargetDestroy?: () => void\n}\n\nexport interface PendingSequenceCapture<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n layer: RegisteredLayer<TTarget, TEvent>\n binding: BindingState<TTarget, TEvent>\n index: number\n parts: readonly KeySequencePart[]\n patterns?: readonly PendingSequencePatternCapture[]\n}\n\nexport interface PendingSequencePatternCapture {\n name: string\n payloadKey: string\n values: readonly unknown[]\n parts: readonly KeySequencePart[]\n}\n\nexport interface PendingSequenceState<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[]\n}\n",
|
|
21
21
|
"import type {\n KeyDeferredDisambiguationDecision,\n KeyDeferredDisambiguationHandler,\n KeyDisambiguationDecision,\n KeymapEvent,\n PendingSequenceCapture,\n} from \"../types.js\"\nimport { KEY_DEFERRED_DISAMBIGUATION_DECISION, KEY_DISAMBIGUATION_DECISION } from \"../types.js\"\n\nexport type SyncDecisionAction = \"run-exact\" | \"continue-sequence\" | \"clear\" | \"defer\"\nexport type DeferredDecisionAction = \"run-exact\" | \"continue-sequence\" | \"clear\"\n\nexport interface InternalDisambiguationDecision extends KeyDisambiguationDecision {\n readonly action: SyncDecisionAction\n readonly handler?: KeyDeferredDisambiguationHandler<any, any>\n}\n\nexport interface InternalDeferredDisambiguationDecision extends KeyDeferredDisambiguationDecision {\n readonly action: DeferredDecisionAction\n}\n\nexport interface PendingDisambiguation<TTarget extends object, TEvent extends KeymapEvent> {\n id: number\n controller: AbortController\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[]\n apply: (decision: InternalDeferredDisambiguationDecision | void) => void\n}\n\nexport function createSyncDecision(\n action: SyncDecisionAction,\n handler?: KeyDeferredDisambiguationHandler<any, any>,\n): InternalDisambiguationDecision {\n return {\n [KEY_DISAMBIGUATION_DECISION]: true,\n action,\n handler,\n }\n}\n\nexport function createDeferredDecision(action: DeferredDecisionAction): InternalDeferredDisambiguationDecision {\n return {\n [KEY_DEFERRED_DISAMBIGUATION_DECISION]: true,\n action,\n }\n}\n\nexport function isSyncDecision(value: unknown): value is InternalDisambiguationDecision {\n return (\n !!value &&\n typeof value === \"object\" &&\n (value as { [KEY_DISAMBIGUATION_DECISION]?: unknown })[KEY_DISAMBIGUATION_DECISION] === true\n )\n}\n\nexport function isDeferredDecision(value: unknown): value is InternalDeferredDisambiguationDecision {\n return (\n !!value &&\n typeof value === \"object\" &&\n (value as { [KEY_DEFERRED_DISAMBIGUATION_DECISION]?: unknown })[KEY_DEFERRED_DISAMBIGUATION_DECISION] === true\n )\n}\n\nexport function sleepWithSignal(ms: number, signal: AbortSignal): Promise<boolean> {\n if (signal.aborted) {\n return Promise.resolve(false)\n }\n\n return new Promise<boolean>((resolve) => {\n const timeout = setTimeout(\n () => {\n signal.removeEventListener(\"abort\", onAbort)\n resolve(true)\n },\n Math.max(0, ms),\n )\n\n const onAbort = () => {\n clearTimeout(timeout)\n signal.removeEventListener(\"abort\", onAbort)\n resolve(false)\n }\n\n signal.addEventListener(\"abort\", onAbort, { once: true })\n })\n}\n",
|
|
22
22
|
"import type {\n KeymapEvent,\n KeySequencePart,\n PendingSequenceCapture,\n ResolvedSequencePattern,\n SequencePatternMatch,\n} from \"../types.js\"\nimport { createKeySequencePart } from \"./keys.js\"\nimport type { NotificationService } from \"./notify.js\"\n\nexport function matchSequencePattern<TTarget extends object, TEvent extends KeymapEvent>(\n patterns: ReadonlyMap<string, ResolvedSequencePattern<TEvent>>,\n notify: NotificationService<TTarget, TEvent>,\n patternName: string,\n event: TEvent,\n): SequencePatternMatch | undefined {\n const pattern = patterns.get(patternName)\n if (!pattern) {\n return undefined\n }\n\n try {\n return pattern.matcher(event)\n } catch (error) {\n notify.emitError(\n \"sequence-pattern-match-error\",\n error,\n `[Keymap] Error matching sequence pattern \"${pattern.name}\":`,\n )\n return undefined\n }\n}\n\nexport function createPatternEventPart<TEvent extends KeymapEvent>(\n patterns: ReadonlyMap<string, ResolvedSequencePattern<TEvent>>,\n event: TEvent,\n patternName: string,\n match: SequencePatternMatch,\n): KeySequencePart {\n const pattern = patterns.get(patternName)\n const payloadKey = pattern?.payloadKey ?? patternName\n const part = createKeySequencePart(\n {\n name: event.name,\n ctrl: event.ctrl,\n shift: event.shift,\n meta: event.meta,\n super: event.super ?? false,\n hyper: event.hyper || undefined,\n },\n { display: match.display ?? String(match.value ?? event.name) },\n )\n\n return { ...part, patternName, payloadKey }\n}\n\nexport function createSequencePayload<TTarget extends object, TEvent extends KeymapEvent>(\n patterns: ReadonlyMap<string, ResolvedSequencePattern<TEvent>>,\n notify: NotificationService<TTarget, TEvent>,\n capture?: PendingSequenceCapture<TTarget, TEvent>,\n): unknown {\n if (!capture?.patterns || capture.patterns.length === 0) {\n return undefined\n }\n\n const payload: Record<string, unknown> = {}\n let hasPayload = false\n for (const captured of capture.patterns) {\n const pattern = patterns.get(captured.name)\n let value: unknown\n\n try {\n value = pattern?.finalize\n ? pattern.finalize(captured.values)\n : captured.values.length === 1\n ? captured.values[0]\n : [...captured.values]\n } catch (error) {\n notify.emitError(\n \"sequence-pattern-finalize-error\",\n error,\n `[Keymap] Error finalizing sequence pattern \"${captured.name}\":`,\n )\n continue\n }\n\n const existing = payload[captured.payloadKey]\n if (existing === undefined) {\n payload[captured.payloadKey] = value\n hasPayload = true\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n payload[captured.payloadKey] = [existing, value]\n }\n }\n\n return hasPayload ? payload : undefined\n}\n",
|
|
23
|
-
"import type { CompilerService } from \"./compiler.js\"\nimport type { RuntimeEmitter } from \"../lib/runtime-utils.js\"\nimport type { ActivationService } from \"./activation.js\"\nimport type { CommandExecutorService } from \"./command-executor.js\"\nimport type { CommandCatalogService } from \"./command-catalog.js\"\nimport type { ConditionService } from \"./conditions.js\"\nimport type { LayerService } from \"./layers.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport type { RuntimeService } from \"./runtime.js\"\nimport type { State } from \"./state.js\"\nimport { cloneKeySequence, cloneKeyStroke, stringifyKeySequence } from \"./keys.js\"\nimport { captureHasContinuations, captureIsExact } from \"./primitives/pending-captures.js\"\nimport { advanceSequenceCapture, capturePriority, collectRootSequenceCaptures } from \"./sequence-index.js\"\nimport { isPromiseLike } from \"./values.js\"\nimport {\n type ActiveBinding,\n type ActiveKey,\n type EventMatchResolverContext,\n type EventMatchResolver,\n type KeyDeferredDisambiguationContext,\n type KeyDeferredDisambiguationDecision,\n type KeyDeferredDisambiguationHandler,\n type KeyDisambiguationContext,\n type KeyDisambiguationDecision,\n type KeyDisambiguationResolver,\n type KeyMatch,\n type KeyInterceptOptions,\n type KeyAfterInputContext,\n type KeyAfterReason,\n type KeyInputContext,\n type KeymapEvent,\n type PendingSequenceCapture,\n type PendingSequenceState,\n type RawInterceptOptions,\n type RawInputContext,\n type BindingState,\n type Hooks,\n type DispatchBinding,\n type DispatchEvent,\n type KeySequencePart,\n type RegisteredLayer,\n} from \"../types.js\"\nimport type { PriorityRegistration } from \"../lib/registry.js\"\nimport {\n createDeferredDecision,\n createSyncDecision,\n isDeferredDecision,\n isSyncDecision,\n sleepWithSignal,\n type InternalDeferredDisambiguationDecision,\n type InternalDisambiguationDecision,\n type PendingDisambiguation,\n} from \"./dispatch-decisions.js\"\nimport {\n createPatternEventPart as createPatternEventPartFromPattern,\n createSequencePayload as createSequencePayloadFromPattern,\n matchSequencePattern,\n} from \"./dispatch-patterns.js\"\n\ninterface KeyDispatchOutcome {\n handled: boolean\n reason: KeyAfterReason\n sequence?: readonly KeySequencePart[]\n captures?: readonly PendingSequenceCapture<any, any>[]\n}\n\ntype KeyAfterHook<TTarget extends object, TEvent extends KeymapEvent> = PriorityRegistration<\n (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n { priority: number; release: boolean }\n>\n\nexport interface DispatchService<TTarget extends object, TEvent extends KeymapEvent> {\n intercept(name: \"key\", fn: (ctx: KeyInputContext<TEvent>) => void, options?: KeyInterceptOptions): () => void\n intercept(\n name: \"key:after\",\n fn: (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n options?: KeyInterceptOptions,\n ): () => void\n intercept(name: \"raw\", fn: (ctx: RawInputContext) => void, options?: RawInterceptOptions): () => void\n prependEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void\n appendEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void\n clearEventMatchResolvers(): void\n prependDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void\n appendDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void\n clearDisambiguationResolvers(): void\n handlePendingSequenceChange(\n previous: PendingSequenceState<TTarget, TEvent> | null,\n next: PendingSequenceState<TTarget, TEvent> | null,\n ): void\n handleRawSequence(sequence: string): boolean\n handleKeyEvent(event: TEvent, release: boolean): void\n}\n\nexport function createDispatchService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n runtime: RuntimeService<TTarget, TEvent>,\n activation: ActivationService<TTarget, TEvent>,\n conditions: ConditionService<TTarget, TEvent>,\n executor: CommandExecutorService<TTarget, TEvent>,\n compiler: CompilerService<TTarget, TEvent>,\n catalog: CommandCatalogService<TTarget, TEvent>,\n layers: LayerService<TTarget, TEvent>,\n hooks: RuntimeEmitter<Hooks<TTarget, TEvent>>,\n): DispatchService<TTarget, TEvent> {\n const eventMatchResolverContext: EventMatchResolverContext = {\n resolveKey: (key) => compiler.parseTokenKey(key).match,\n }\n let pendingDisambiguation: PendingDisambiguation<TTarget, TEvent> | null = null\n let nextPendingDisambiguationId = 0\n\n function intercept(name: \"key\", fn: (ctx: KeyInputContext<TEvent>) => void, options?: KeyInterceptOptions): () => void\n\n function intercept(\n name: \"key:after\",\n fn: (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n options?: KeyInterceptOptions,\n ): () => void\n\n function intercept(name: \"raw\", fn: (ctx: RawInputContext) => void, options?: RawInterceptOptions): () => void\n\n function intercept(\n name: \"key\" | \"key:after\" | \"raw\",\n fn:\n | ((ctx: KeyInputContext<TEvent>) => void)\n | ((ctx: KeyAfterInputContext<TTarget, TEvent>) => void)\n | ((ctx: RawInputContext) => void),\n options?: KeyInterceptOptions | RawInterceptOptions,\n ): () => void {\n if (name === \"key\") {\n const keyOptions = options as KeyInterceptOptions | undefined\n return state.keyHooks.register(fn as (ctx: KeyInputContext<TEvent>) => void, {\n priority: keyOptions?.priority ?? 0,\n release: keyOptions?.release ?? false,\n })\n }\n\n if (name === \"key:after\") {\n const keyOptions = options as KeyInterceptOptions | undefined\n return state.keyAfterHooks.register(fn as (ctx: KeyAfterInputContext<TTarget, TEvent>) => void, {\n priority: keyOptions?.priority ?? 0,\n release: keyOptions?.release ?? false,\n })\n }\n\n const rawOptions = options as RawInterceptOptions | undefined\n return state.rawHooks.register(fn as (ctx: RawInputContext) => void, {\n priority: rawOptions?.priority ?? 0,\n })\n }\n\n function prependEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void {\n return state.eventMatchResolvers.prepend(resolver)\n }\n\n function appendEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void {\n return state.eventMatchResolvers.append(resolver)\n }\n\n function clearEventMatchResolvers(): void {\n state.eventMatchResolvers.clear()\n }\n\n function prependDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void {\n return mutateDisambiguationResolvers(() => state.disambiguationResolvers.prepend(resolver), resolver)\n }\n\n function appendDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void {\n return mutateDisambiguationResolvers(() => state.disambiguationResolvers.append(resolver), resolver)\n }\n\n function clearDisambiguationResolvers(): void {\n if (!state.disambiguationResolvers.has()) {\n return\n }\n\n notify.runWithStateChangeBatch(() => {\n state.disambiguationResolvers.clear()\n layers.recompileBindings()\n })\n }\n\n function handlePendingSequenceChange(\n _previous: PendingSequenceState<TTarget, TEvent> | null,\n _next: PendingSequenceState<TTarget, TEvent> | null,\n ): void {\n if (!pendingDisambiguation) {\n return\n }\n\n cancelPendingDisambiguation()\n }\n\n function handleRawSequence(sequence: string): boolean {\n const hooks = state.rawHooks.entries()\n if (hooks.length === 0) {\n return false\n }\n\n let stopped = false\n const context: RawInputContext = {\n sequence,\n stop() {\n stopped = true\n },\n }\n\n for (const hook of hooks) {\n try {\n hook.listener(context)\n } catch (error) {\n notify.emitError(\"raw-intercept-error\", error, \"[Keymap] Error in raw intercept listener:\")\n }\n\n if (stopped) {\n return true\n }\n }\n\n return false\n }\n\n function createDispatchBinding(\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n ): DispatchBinding<TTarget, TEvent> {\n return {\n sequence: cloneKeySequence(binding.sequence),\n command: binding.command,\n commandAttrs: catalog.getBindingCommandAttrs(binding, focused, catalog.getActiveCommandView(focused)),\n attrs: binding.attrs,\n event: binding.event,\n preventDefault: binding.preventDefault,\n fallthrough: binding.fallthrough,\n sourceLayerOrder: binding.sourceLayerOrder,\n bindingIndex: binding.bindingIndex,\n }\n }\n\n function emitDispatchEvent(event: DispatchEvent<TTarget, TEvent>): void {\n if (!hooks.has(\"dispatch\")) {\n return\n }\n\n hooks.emit(\"dispatch\", event)\n }\n\n function emitBindingDispatch(\n phase: \"binding-execute\" | \"binding-reject\",\n layer: RegisteredLayer<TTarget, TEvent>,\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n ): void {\n if (!hooks.has(\"dispatch\")) {\n return\n }\n\n emitDispatchEvent({\n phase,\n event: binding.event,\n focused,\n layer: {\n order: layer.order,\n priority: layer.priority,\n target: layer.target,\n targetMode: layer.targetMode,\n },\n binding: createDispatchBinding(binding, focused),\n sequence: cloneKeySequence(binding.sequence),\n command: binding.command,\n })\n }\n\n function emitSequenceDispatch(\n phase: \"sequence-start\" | \"sequence-advance\" | \"sequence-clear\",\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n focused: TTarget | null,\n ): void {\n if (!hooks.has(\"dispatch\")) {\n return\n }\n\n const first = captures[0]\n const sequence = captures.length > 0 ? activation.collectSequencePartsFromPending({ captures }) : []\n\n emitDispatchEvent({\n phase,\n event: \"press\",\n focused,\n layer: first\n ? {\n order: first.layer.order,\n priority: first.layer.priority,\n target: first.layer.target,\n targetMode: first.layer.targetMode,\n }\n : undefined,\n sequence,\n })\n }\n\n function getKeyAfterHooks(release: boolean): readonly KeyAfterHook<TTarget, TEvent>[] | undefined {\n const hooks = state.keyAfterHooks.entries()\n for (const hook of hooks) {\n if (hook.release === release) {\n return hooks\n }\n }\n\n return undefined\n }\n\n function getOutcomeSequence(outcome: KeyDispatchOutcome): readonly KeySequencePart[] {\n if (outcome.sequence) {\n return cloneKeySequence(outcome.sequence)\n }\n\n if (outcome.captures) {\n return activation.collectSequencePartsFromPending({ captures: outcome.captures })\n }\n\n return []\n }\n\n function createSequenceOutcome(\n reason: \"sequence-pending\" | \"sequence-miss\" | \"sequence-cleared\",\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n ): KeyDispatchOutcome {\n return {\n handled: reason !== \"sequence-miss\",\n reason,\n captures,\n }\n }\n\n function createBindingOutcome(binding: BindingState<TTarget, TEvent>, handled: boolean): KeyDispatchOutcome {\n return {\n handled,\n reason: handled ? \"binding-handled\" : \"binding-rejected\",\n sequence: binding.sequence,\n }\n }\n\n function preferDispatchOutcome(current: KeyDispatchOutcome, next: KeyDispatchOutcome): KeyDispatchOutcome {\n if (next.handled || current.reason === \"no-match\") {\n return next\n }\n\n return current\n }\n\n function emitKeyAfter(\n hooks: readonly KeyAfterHook<TTarget, TEvent>[],\n event: TEvent,\n release: boolean,\n focused: TTarget | null,\n outcome: KeyDispatchOutcome,\n ): void {\n const context: KeyAfterInputContext<TTarget, TEvent> = {\n event,\n eventType: release ? \"release\" : \"press\",\n focused,\n handled: outcome.handled,\n reason: outcome.reason,\n sequence: getOutcomeSequence(outcome),\n pendingSequence: activation.getPendingSequence(),\n setData: (name, value) => {\n runtime.setData(name, value)\n },\n getData: (name) => {\n return runtime.getData(name)\n },\n consume: (options) => {\n const shouldPreventDefault = options?.preventDefault ?? true\n const shouldStopPropagation = options?.stopPropagation ?? true\n\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n\n if (shouldStopPropagation) {\n event.stopPropagation()\n }\n },\n }\n\n for (const hook of hooks) {\n if (hook.release !== release) {\n continue\n }\n\n try {\n hook.listener(context)\n } catch (error) {\n notify.emitError(\"key-after-intercept-error\", error, \"[Keymap] Error in key:after intercept listener:\")\n }\n }\n }\n\n function noMatchOutcome(): KeyDispatchOutcome {\n return { handled: false, reason: \"no-match\" }\n }\n\n function consumeSequenceEvent(event: TEvent): void {\n event.preventDefault()\n event.stopPropagation()\n }\n\n function holdSequence(\n phase: \"sequence-start\" | \"sequence-advance\",\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n focused: TTarget | null,\n event: TEvent,\n ): KeyDispatchOutcome {\n activation.setPendingSequence({ captures })\n const outcome = createSequenceOutcome(\"sequence-pending\", captures)\n emitSequenceDispatch(phase, captures, focused)\n consumeSequenceEvent(event)\n return outcome\n }\n\n function clearSequence(\n reason: \"sequence-cleared\",\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n focused: TTarget | null,\n event: TEvent,\n ): KeyDispatchOutcome {\n const outcome = createSequenceOutcome(reason, captures)\n emitSequenceDispatch(\"sequence-clear\", captures, focused)\n activation.setPendingSequence(null)\n consumeSequenceEvent(event)\n return outcome\n }\n\n function handleKeyEvent(event: TEvent, release: boolean): void {\n if (!release) {\n cancelPendingDisambiguation()\n }\n\n const afterHooks = getKeyAfterHooks(release)\n const afterFocused = afterHooks ? activation.getFocusedTarget() : null\n const hooks = state.keyHooks.entries()\n const context: KeyInputContext<TEvent> = {\n event,\n setData: (name, value) => {\n runtime.setData(name, value)\n },\n getData: (name) => {\n return runtime.getData(name)\n },\n consume: (options) => {\n const shouldPreventDefault = options?.preventDefault ?? true\n const shouldStopPropagation = options?.stopPropagation ?? true\n\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n\n if (shouldStopPropagation) {\n event.stopPropagation()\n }\n },\n }\n\n for (const hook of hooks) {\n if (hook.release !== release) {\n continue\n }\n\n try {\n hook.listener(context)\n } catch (error) {\n notify.emitError(\"key-intercept-error\", error, \"[Keymap] Error in key intercept listener:\")\n }\n\n if (event.propagationStopped) {\n if (afterHooks) {\n emitKeyAfter(afterHooks, event, release, afterFocused, {\n handled: true,\n reason: \"intercept-consumed\",\n sequence: [],\n })\n }\n return\n }\n }\n\n if (release) {\n const outcome = dispatchReleaseLayers(event)\n if (afterHooks) {\n emitKeyAfter(afterHooks, event, release, afterFocused, outcome)\n }\n return\n }\n\n const outcome = dispatchLayers(event)\n if (afterHooks) {\n emitKeyAfter(afterHooks, event, release, afterFocused, outcome)\n }\n }\n\n function mutateDisambiguationResolvers(\n register: () => () => void,\n resolver: KeyDisambiguationResolver<TTarget, TEvent>,\n ): () => void {\n return notify.runWithStateChangeBatch(() => {\n const hadResolvers = state.disambiguationResolvers.has()\n const off = register()\n\n if (!hadResolvers && state.disambiguationResolvers.has()) {\n layers.recompileBindings()\n }\n\n return () => {\n notify.runWithStateChangeBatch(() => {\n const hadBeforeRemoval = state.disambiguationResolvers.has()\n off()\n\n if (state.disambiguationResolvers.values().includes(resolver)) {\n return\n }\n\n if (hadBeforeRemoval && !state.disambiguationResolvers.has()) {\n layers.recompileBindings()\n }\n })\n }\n })\n }\n\n function dispatchReleaseLayers(event: TEvent): KeyDispatchOutcome {\n const focused = activation.getFocusedTarget()\n const activeLayers = activation.getActiveLayers(focused)\n const matchKeys = resolveEventMatchKeys(event)\n let outcome = noMatchOutcome()\n\n layerLoop: for (const layer of activeLayers) {\n if (layer.bindings.length === 0) {\n continue\n }\n\n if (!conditions.matchesConditions(layer)) {\n continue\n }\n\n for (const strokeKey of matchKeys) {\n const result = runReleaseBindings(layer, strokeKey, event, focused)\n outcome = preferDispatchOutcome(outcome, result.outcome)\n if (!result.handled) {\n continue\n }\n\n if (result.stop) {\n return outcome\n }\n\n continue layerLoop\n }\n }\n\n return outcome\n }\n\n function dispatchLayers(event: TEvent): KeyDispatchOutcome {\n const focused = activation.getFocusedTarget()\n const pending = activation.ensureValidPendingSequence()\n const matchKeys = resolveEventMatchKeys(event)\n\n if (pending) {\n return dispatchPendingSequence(pending, matchKeys, event, focused)\n }\n\n const activeLayers = activation.getActiveLayers(focused)\n return dispatchFromRoot(activeLayers, matchKeys, event, focused)\n }\n\n function dispatchPendingSequence(\n pending: PendingSequenceState<TTarget, TEvent>,\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome {\n const activeView = catalog.getActiveCommandView(focused)\n const advancedCaptures: PendingSequenceCapture<TTarget, TEvent>[] = []\n\n for (const capture of pending.captures) {\n const advanced = advanceSequenceCapture(\n capture,\n matchKeys,\n event,\n state.patterns,\n matchPattern,\n createPatternEventPart,\n )\n if (!advanced) {\n continue\n }\n\n advancedCaptures.push(advanced)\n }\n\n const bestPriority = advancedCaptures.reduce(\n (best, capture) => Math.min(best, capturePriority(capture, matchKeys)),\n Number.POSITIVE_INFINITY,\n )\n const prioritizedCaptures = advancedCaptures.filter(\n (capture) => capturePriority(capture, matchKeys) === bestPriority,\n )\n\n if (\n prioritizedCaptures.length === 0 ||\n !prioritizedCaptures.some((capture) => captureIsReachable(capture, focused, activeView))\n ) {\n const outcome = createSequenceOutcome(\"sequence-miss\", pending.captures)\n emitSequenceDispatch(\"sequence-clear\", pending.captures, focused)\n activation.setPendingSequence(null)\n return outcome\n }\n\n return dispatchPendingCapturesFromIndex(prioritizedCaptures, 0, false, event, focused)\n }\n\n function dispatchPendingCapturesFromIndex(\n advancedCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n startIndex: number,\n handledExact: boolean,\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome {\n let hasHandledExact = handledExact\n let outcome = noMatchOutcome()\n const processedExact = new Set<PendingSequenceCapture<TTarget, TEvent>>()\n\n for (let index = startIndex; index < advancedCaptures.length; index += 1) {\n const capture = advancedCaptures[index]\n if (!capture || processedExact.has(capture)) {\n continue\n }\n\n const continuationCapturesForPrefix = collectContinuationCapturesForPrefix(advancedCaptures, index, capture)\n if (continuationCapturesForPrefix.length > 0) {\n if (hasHandledExact) {\n continue\n }\n\n const exactCaptures = collectExactCapturesForPrefix(advancedCaptures, capture)\n const resolvedOutcome = tryResolvePendingAmbiguity(\n advancedCaptures,\n index,\n continuationCapturesForPrefix,\n exactCaptures,\n event,\n focused,\n hasHandledExact,\n )\n if (resolvedOutcome) {\n return resolvedOutcome\n }\n\n return holdSequence(\"sequence-advance\", continuationCapturesForPrefix, focused, event)\n }\n\n if (!captureIsExact(capture, state.patterns)) {\n continue\n }\n\n const exactCaptures = collectExactCapturesForPrefix(advancedCaptures, capture)\n for (const exact of exactCaptures) processedExact.add(exact)\n const result = runCaptureBindings(capture.layer, exactCaptures, event, focused)\n outcome = preferDispatchOutcome(outcome, result.outcome)\n if (!result.handled) {\n continue\n }\n\n hasHandledExact = true\n if (result.stop) {\n emitSequenceDispatch(\"sequence-clear\", advancedCaptures, focused)\n activation.setPendingSequence(null)\n return outcome\n }\n }\n\n emitSequenceDispatch(\"sequence-clear\", advancedCaptures, focused)\n activation.setPendingSequence(null)\n return outcome\n }\n\n function dispatchFromRoot(\n activeLayers: RegisteredLayer<TTarget, TEvent>[],\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome {\n return dispatchFromRootAtIndex(activeLayers, 0, matchKeys, event, focused)\n }\n\n function dispatchFromRootAtIndex(\n activeLayers: RegisteredLayer<TTarget, TEvent>[],\n startIndex: number,\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome {\n const activeView = catalog.getActiveCommandView(focused)\n let outcome = noMatchOutcome()\n\n for (let index = startIndex; index < activeLayers.length; index += 1) {\n const layer = activeLayers[index]\n if (!layer) {\n continue\n }\n\n if (!conditions.matchesConditions(layer)) {\n continue\n }\n\n const captures = collectRootCaptures(layer, matchKeys, event, focused, activeView)\n if (captures.length === 0) {\n continue\n }\n\n const layerContinuationCaptures = captures.filter((capture) =>\n captureHasContinuations(capture, state.patterns, false),\n )\n if (layerContinuationCaptures.length > 0) {\n const exactCaptures = captures.filter((capture) => captureIsExact(capture, state.patterns))\n const continuationCaptures = collectPendingCapturesFromRoot(activeLayers, index, matchKeys, event, focused)\n const resolvedOutcome = tryResolveRootAmbiguity(\n activeLayers,\n index,\n matchKeys,\n continuationCaptures,\n exactCaptures,\n event,\n focused,\n )\n if (resolvedOutcome) {\n return resolvedOutcome\n }\n\n return holdSequence(\"sequence-start\", continuationCaptures, focused, event)\n }\n\n const exactCaptures = captures.filter((capture) => captureIsExact(capture, state.patterns))\n const result = runCaptureBindings(layer, exactCaptures, event, focused)\n outcome = preferDispatchOutcome(outcome, result.outcome)\n if (!result.handled) {\n continue\n }\n\n if (result.stop) {\n return outcome\n }\n }\n\n return outcome\n }\n\n function tryResolveRootAmbiguity(\n activeLayers: RegisteredLayer<TTarget, TEvent>[],\n layerIndex: number,\n matchKeys: readonly KeyMatch[],\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n exactCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome | undefined {\n const applyExact = (): KeyDispatchOutcome => {\n activation.setPendingSequence(null)\n const layer = exactCaptures[0]?.layer\n if (!layer) return noMatchOutcome()\n const result = runCaptureBindings(layer, exactCaptures, event, focused)\n if (!result.stop) {\n return preferDispatchOutcome(\n result.outcome,\n dispatchFromRootAtIndex(activeLayers, layerIndex + 1, matchKeys, event, focused),\n )\n }\n\n return result.outcome\n }\n\n return tryResolveAmbiguity({\n event,\n focused,\n continuationCaptures,\n exactBindingsSource: exactCaptures.map((capture) => capture.binding),\n sequencePhase: \"sequence-start\",\n runExact: applyExact,\n })\n }\n\n function tryResolvePendingAmbiguity(\n advancedCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n captureIndex: number,\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n exactCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n event: TEvent,\n focused: TTarget | null,\n handledExact: boolean,\n ): KeyDispatchOutcome | undefined {\n const applyExact = (): KeyDispatchOutcome => {\n activation.setPendingSequence(null)\n const layer = exactCaptures[0]?.layer\n if (!layer) return noMatchOutcome()\n const result = runCaptureBindings(layer, exactCaptures, event, focused)\n if (result.stop) {\n return result.outcome\n }\n\n return preferDispatchOutcome(\n result.outcome,\n dispatchPendingCapturesFromIndex(\n advancedCaptures,\n captureIndex + 1,\n handledExact || result.handled,\n event,\n focused,\n ),\n )\n }\n\n return tryResolveAmbiguity({\n event,\n focused,\n continuationCaptures,\n exactBindingsSource: exactCaptures.map((capture) => capture.binding),\n sequencePhase: \"sequence-advance\",\n runExact: applyExact,\n })\n }\n\n function tryResolveAmbiguity(options: {\n event: TEvent\n focused: TTarget | null\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[]\n exactBindingsSource: readonly BindingState<TTarget, TEvent>[]\n sequencePhase: \"sequence-start\" | \"sequence-advance\"\n runExact: () => KeyDispatchOutcome\n }): KeyDispatchOutcome | undefined {\n const { event, focused, continuationCaptures, exactBindingsSource, sequencePhase, runExact } = options\n\n if (!state.disambiguationResolvers.has() || continuationCaptures.length === 0) {\n return undefined\n }\n\n const activeView = catalog.getActiveCommandView(focused)\n const exactBindings = activation.collectMatchingBindings(exactBindingsSource, focused, activeView)\n if (!exactBindings.some((binding) => binding.command !== undefined)) {\n return undefined\n }\n\n const continueSequence = (): KeyDispatchOutcome => {\n return holdSequence(sequencePhase, continuationCaptures, focused, event)\n }\n\n const clear = (): KeyDispatchOutcome => {\n return clearSequence(\"sequence-cleared\", continuationCaptures, focused, event)\n }\n\n let sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]> | undefined\n const getSequence = (): ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]> => {\n sequence ??= activation.collectSequencePartsFromPending({ captures: continuationCaptures })\n return sequence\n }\n\n const decision = resolveDisambiguation({\n event,\n focused,\n getSequence,\n exactBindings,\n continuationCaptures,\n activeView,\n })\n\n if (!decision) {\n warnUnresolvedAmbiguity(getSequence())\n return continueSequence()\n }\n\n return applySyncDecision(decision, continuationCaptures, runExact, continueSequence, clear, focused, getSequence)\n }\n\n function applySyncDecision(\n decision: InternalDisambiguationDecision,\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n runExact: () => KeyDispatchOutcome,\n continueSequence: () => KeyDispatchOutcome,\n clear: () => KeyDispatchOutcome,\n focused: TTarget | null,\n getSequence: () => ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>,\n ): KeyDispatchOutcome {\n if (decision.action === \"run-exact\") {\n return runExact()\n }\n\n if (decision.action === \"continue-sequence\") {\n return continueSequence()\n }\n\n if (decision.action === \"clear\") {\n return clear()\n }\n\n const outcome = continueSequence()\n scheduleDeferredDisambiguation(continuationCaptures, decision.handler!, focused, getSequence(), (nextDecision) => {\n if (!nextDecision) {\n return\n }\n\n if (nextDecision.action === \"run-exact\") {\n runExact()\n return\n }\n\n if (nextDecision.action === \"continue-sequence\") {\n continueSequence()\n return\n }\n\n clear()\n })\n return outcome\n }\n\n function resolveDisambiguation(options: {\n event: TEvent\n focused: TTarget | null\n getSequence: () => ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>\n exactBindings: readonly BindingState<TTarget, TEvent>[]\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[]\n activeView: ReturnType<CommandCatalogService<TTarget, TEvent>[\"getActiveCommandView\"]>\n }): InternalDisambiguationDecision | undefined {\n let sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]> | undefined\n let exact: readonly ActiveBinding<TTarget, TEvent>[] | undefined\n let continuations: readonly ActiveKey<TTarget, TEvent>[] | undefined\n let strokePart: KeyDisambiguationContext<TTarget, TEvent>[\"stroke\"] | undefined\n\n const ctx: KeyDisambiguationContext<TTarget, TEvent> = {\n event: options.event as Readonly<Omit<TEvent, \"preventDefault\" | \"stopPropagation\">>,\n focused: options.focused,\n get sequence() {\n sequence ??= cloneKeySequence(options.getSequence())\n return sequence\n },\n get stroke() {\n const stroke = options.getSequence().at(-1)\n if (!stroke) {\n throw new Error(\"Disambiguation context expected a non-empty sequence\")\n }\n\n strokePart ??= {\n ...stroke,\n stroke: cloneKeyStroke(stroke.stroke),\n }\n\n return strokePart\n },\n get exact() {\n exact ??= activation\n .collectActiveBindings(options.exactBindings, options.focused, options.activeView)\n .map((binding) => ({\n ...binding,\n sequence: cloneKeySequence(binding.sequence),\n }))\n\n return exact\n },\n get continuations() {\n continuations ??= activation.getActiveKeysForCaptures(options.continuationCaptures, {\n includeBindings: true,\n includeMetadata: true,\n })\n\n return continuations\n },\n getData: (name) => {\n return runtime.getData(name)\n },\n setData: (name, value) => {\n runtime.setData(name, value)\n },\n runExact: () => createSyncDecision(\"run-exact\"),\n continueSequence: () => createSyncDecision(\"continue-sequence\"),\n clear: () => createSyncDecision(\"clear\"),\n defer: (run) => createSyncDecision(\"defer\", run),\n }\n\n for (const resolver of state.disambiguationResolvers.values()) {\n let result: KeyDisambiguationDecision | undefined\n\n try {\n result = resolver(ctx)\n } catch (error) {\n notify.emitError(\"disambiguation-resolver-error\", error, \"[Keymap] Error in disambiguation resolver:\")\n continue\n }\n\n if (result === undefined) {\n continue\n }\n\n if (isPromiseLike(result)) {\n notify.emitError(\n \"invalid-disambiguation-resolver-return\",\n result,\n \"[Keymap] Disambiguation resolvers must return synchronously; use ctx.defer(...) for async handling\",\n )\n continue\n }\n\n if (!isSyncDecision(result)) {\n notify.emitError(\n \"invalid-disambiguation-decision\",\n result,\n \"[Keymap] Invalid disambiguation decision returned by resolver:\",\n )\n continue\n }\n\n return result\n }\n\n return undefined\n }\n\n function scheduleDeferredDisambiguation(\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n handler: KeyDeferredDisambiguationHandler<TTarget, TEvent>,\n focused: TTarget | null,\n sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>,\n apply: (decision: InternalDeferredDisambiguationDecision | void) => void,\n ): void {\n cancelPendingDisambiguation()\n\n const controller = new AbortController()\n const pending: PendingDisambiguation<TTarget, TEvent> = {\n id: nextPendingDisambiguationId++,\n controller,\n captures,\n apply,\n }\n pendingDisambiguation = pending\n\n queueMicrotask(() => {\n executeDeferredDisambiguation(pending, handler, focused, sequence)\n })\n }\n\n function executeDeferredDisambiguation(\n pending: PendingDisambiguation<TTarget, TEvent>,\n handler: KeyDeferredDisambiguationHandler<TTarget, TEvent>,\n focused: TTarget | null,\n sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>,\n ): void {\n if (!isPendingDisambiguationCurrent(pending)) {\n return\n }\n\n const ctx: KeyDeferredDisambiguationContext<TTarget, TEvent> = {\n signal: pending.controller.signal,\n sequence: cloneKeySequence(sequence),\n focused,\n sleep: (ms) => {\n return sleepWithSignal(ms, pending.controller.signal)\n },\n runExact: () => createDeferredDecision(\"run-exact\"),\n continueSequence: () => createDeferredDecision(\"continue-sequence\"),\n clear: () => createDeferredDecision(\"clear\"),\n }\n\n let result: KeyDeferredDisambiguationDecision | void | Promise<KeyDeferredDisambiguationDecision | void>\n try {\n result = handler(ctx)\n } catch (error) {\n if (isPendingDisambiguationCurrent(pending)) {\n notify.emitError(\"deferred-disambiguation-error\", error, \"[Keymap] Error in deferred disambiguation handler:\")\n finishPendingDisambiguation(pending)\n }\n return\n }\n\n if (isPromiseLike(result)) {\n result\n .then((resolved) => {\n applyDeferredDisambiguationResult(pending, resolved)\n })\n .catch((error) => {\n if (!isPendingDisambiguationCurrent(pending)) {\n return\n }\n\n notify.emitError(\"deferred-disambiguation-error\", error, \"[Keymap] Error in deferred disambiguation handler:\")\n finishPendingDisambiguation(pending)\n })\n return\n }\n\n applyDeferredDisambiguationResult(pending, result)\n }\n\n function applyDeferredDisambiguationResult(\n pending: PendingDisambiguation<TTarget, TEvent>,\n result: KeyDeferredDisambiguationDecision | void,\n ): void {\n if (!isPendingDisambiguationCurrent(pending)) {\n return\n }\n\n if (result !== undefined && !isDeferredDecision(result)) {\n notify.emitError(\n \"invalid-deferred-disambiguation-decision\",\n result,\n \"[Keymap] Invalid deferred disambiguation decision returned by handler:\",\n )\n finishPendingDisambiguation(pending)\n return\n }\n\n finishPendingDisambiguation(pending)\n pending.apply(result as InternalDeferredDisambiguationDecision | void)\n }\n\n function finishPendingDisambiguation(pending: PendingDisambiguation<TTarget, TEvent>): void {\n if (!isPendingDisambiguationCurrent(pending)) {\n return\n }\n\n pendingDisambiguation = null\n }\n\n function cancelPendingDisambiguation(): void {\n const pending = pendingDisambiguation\n if (!pending) {\n return\n }\n\n pendingDisambiguation = null\n pending.controller.abort()\n }\n\n function isPendingDisambiguationCurrent(pending: PendingDisambiguation<TTarget, TEvent>): boolean {\n return pendingDisambiguation === pending\n }\n\n function warnUnresolvedAmbiguity(\n sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>,\n ): void {\n const display = stringifyKeySequence(sequence, { preferDisplay: true })\n\n notify.warnOnce(\n `unresolved-disambiguation:${display}`,\n \"unresolved-disambiguation\",\n { sequence: display },\n `[Keymap] Ambiguous exact/prefix sequence \"${display}\" fell back to prefix handling because no disambiguation resolver resolved it`,\n )\n }\n\n function collectPendingCapturesFromRoot(\n activeLayers: RegisteredLayer<TTarget, TEvent>[],\n startIndex: number,\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n ): PendingSequenceCapture<TTarget, TEvent>[] {\n const captures: PendingSequenceCapture<TTarget, TEvent>[] = []\n const activeView = catalog.getActiveCommandView(focused)\n\n for (let index = startIndex; index < activeLayers.length; index += 1) {\n const layer = activeLayers[index]\n if (!layer) {\n continue\n }\n\n if (!conditions.matchesConditions(layer)) {\n continue\n }\n\n for (const capture of collectRootCaptures(layer, matchKeys, event, focused, activeView)) {\n if (captureHasContinuations(capture, state.patterns, false)) {\n captures.push(capture)\n }\n }\n }\n\n return captures\n }\n\n function collectContinuationCapturesForPrefix(\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n startIndex: number,\n prefix: PendingSequenceCapture<TTarget, TEvent>,\n ): PendingSequenceCapture<TTarget, TEvent>[] {\n return captures.filter((candidate, candidateIndex) => {\n return (\n candidateIndex >= startIndex &&\n captureHasContinuations(candidate, state.patterns, false) &&\n sameParts(candidate.parts, prefix.parts)\n )\n })\n }\n\n function collectExactCapturesForPrefix(\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n prefix: PendingSequenceCapture<TTarget, TEvent>,\n ): PendingSequenceCapture<TTarget, TEvent>[] {\n return captures.filter((capture) => {\n return (\n capture.layer === prefix.layer &&\n captureIsExact(capture, state.patterns) &&\n sameParts(capture.parts, prefix.parts)\n )\n })\n }\n\n function resolveEventMatchKeys(event: TEvent): KeyMatch[] {\n const resolvers = state.eventMatchResolvers.values()\n\n if (resolvers.length === 0) {\n return []\n }\n\n if (resolvers.length === 1) {\n return resolveSingleEventMatchKeys(resolvers[0]!, event, eventMatchResolverContext, notify)\n }\n\n const keys: KeyMatch[] = []\n const seen = new Set<KeyMatch>()\n\n for (const resolver of resolvers) {\n let resolved: readonly KeyMatch[] | undefined\n\n try {\n resolved = resolver(event, eventMatchResolverContext)\n } catch (error) {\n notify.emitError(\"event-match-resolver-error\", error, \"[Keymap] Error in event match resolver:\")\n continue\n }\n\n if (!resolved || resolved.length === 0) {\n continue\n }\n\n for (const candidate of resolved) {\n if (typeof candidate !== \"string\") {\n notify.emitError(\n \"invalid-event-match-resolver-candidate\",\n candidate,\n \"[Keymap] Invalid event match resolver candidate:\",\n )\n continue\n }\n\n if (seen.has(candidate)) {\n continue\n }\n\n seen.add(candidate)\n keys.push(candidate)\n }\n }\n\n return keys\n }\n\n function runReleaseBindings(\n layer: RegisteredLayer<TTarget, TEvent>,\n strokeKey: KeyMatch,\n event: TEvent,\n focused: TTarget | null,\n ): { handled: boolean; stop: boolean; outcome: KeyDispatchOutcome } {\n let handled = false\n let outcome = noMatchOutcome()\n\n for (const binding of layer.bindings) {\n if (binding.event !== \"release\") {\n continue\n }\n\n const firstPart = binding.sequence[0]\n if (!firstPart || firstPart.match !== strokeKey) {\n continue\n }\n\n if (!conditions.matchesConditions(binding)) {\n continue\n }\n\n const bindingHandled = executor.runBinding(layer, binding, event, focused)\n outcome = preferDispatchOutcome(outcome, createBindingOutcome(binding, bindingHandled))\n if (!bindingHandled) {\n emitBindingDispatch(\"binding-reject\", layer, binding, focused)\n continue\n }\n\n emitBindingDispatch(\"binding-execute\", layer, binding, focused)\n handled = true\n if (!binding.fallthrough) {\n return { handled: true, stop: true, outcome }\n }\n }\n\n return { handled, stop: false, outcome }\n }\n\n function matchPattern(patternName: string, event: TEvent) {\n return matchSequencePattern(state.patterns, notify, patternName, event)\n }\n\n function createPatternEventPart(\n event: TEvent,\n patternName: string,\n match: NonNullable<ReturnType<typeof matchPattern>>,\n ) {\n return createPatternEventPartFromPattern(state.patterns, event, patternName, match)\n }\n\n function collectRootCaptures(\n layer: RegisteredLayer<TTarget, TEvent>,\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n activeView: ReturnType<CommandCatalogService<TTarget, TEvent>[\"getActiveCommandView\"]>,\n ): PendingSequenceCapture<TTarget, TEvent>[] {\n const captures = collectRootSequenceCaptures(layer, matchKeys, event, matchPattern, createPatternEventPart)\n return captures.some((capture) => captureIsReachable(capture, focused, activeView)) ? captures : []\n }\n\n function createSequencePayload(capture?: PendingSequenceCapture<TTarget, TEvent>): unknown {\n return createSequencePayloadFromPattern(state.patterns, notify, capture)\n }\n\n function bindingMatchesRuntimeState(\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n activeView: ReturnType<CommandCatalogService<TTarget, TEvent>[\"getActiveCommandView\"]>,\n ): boolean {\n return conditions.matchesConditions(binding) && catalog.isBindingVisible(binding, focused, activeView)\n }\n\n function captureIsReachable(\n capture: PendingSequenceCapture<TTarget, TEvent>,\n focused: TTarget | null,\n activeView: ReturnType<CommandCatalogService<TTarget, TEvent>[\"getActiveCommandView\"]>,\n ): boolean {\n return bindingMatchesRuntimeState(capture.binding, focused, activeView)\n }\n\n function runCaptureBindings(\n layer: RegisteredLayer<TTarget, TEvent>,\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n event: TEvent,\n focused: TTarget | null,\n ): { handled: boolean; stop: boolean; outcome: KeyDispatchOutcome } {\n let handled = false\n let outcome = noMatchOutcome()\n\n for (const capture of captures) {\n const binding = capture.binding\n if (!conditions.matchesConditions(binding)) {\n continue\n }\n\n const bindingHandled = executor.runBinding(layer, binding, event, focused, createSequencePayload(capture))\n outcome = preferDispatchOutcome(outcome, createBindingOutcome(binding, bindingHandled))\n if (!bindingHandled) {\n emitBindingDispatch(\"binding-reject\", layer, binding, focused)\n continue\n }\n\n emitBindingDispatch(\"binding-execute\", layer, binding, focused)\n handled = true\n if (!binding.fallthrough) {\n return { handled: true, stop: true, outcome }\n }\n }\n\n return { handled, stop: false, outcome }\n }\n\n return {\n intercept,\n prependEventMatchResolver,\n appendEventMatchResolver,\n clearEventMatchResolvers,\n prependDisambiguationResolver,\n appendDisambiguationResolver,\n clearDisambiguationResolvers,\n handlePendingSequenceChange,\n handleRawSequence,\n handleKeyEvent,\n }\n}\n\nfunction resolveSingleEventMatchKeys<TTarget extends object, TEvent extends KeymapEvent>(\n resolver: EventMatchResolver<TEvent>,\n event: TEvent,\n ctx: EventMatchResolverContext,\n notify: NotificationService<TTarget, TEvent>,\n): KeyMatch[] {\n let resolved: readonly KeyMatch[] | undefined\n try {\n resolved = resolver(event, ctx)\n } catch (error) {\n notify.emitError(\"event-match-resolver-error\", error, \"[Keymap] Error in event match resolver:\")\n return []\n }\n\n if (!resolved || resolved.length === 0) {\n return []\n }\n\n if (resolved.length === 1) {\n const [candidate] = resolved\n if (typeof candidate !== \"string\") {\n notify.emitError(\n \"invalid-event-match-resolver-candidate\",\n candidate,\n \"[Keymap] Invalid event match resolver candidate:\",\n )\n return []\n }\n\n return [candidate]\n }\n\n const keys: KeyMatch[] = []\n const seen = new Set<KeyMatch>()\n for (const candidate of resolved) {\n if (typeof candidate !== \"string\") {\n notify.emitError(\n \"invalid-event-match-resolver-candidate\",\n candidate,\n \"[Keymap] Invalid event match resolver candidate:\",\n )\n continue\n }\n\n if (seen.has(candidate)) {\n continue\n }\n\n seen.add(candidate)\n keys.push(candidate)\n }\n\n return keys\n}\n\nfunction sameParts(left: readonly KeySequencePart[], right: readonly KeySequencePart[]): boolean {\n if (left.length !== right.length) {\n return false\n }\n\n for (let index = 0; index < left.length; index += 1) {\n if (left[index]?.match !== right[index]?.match) {\n return false\n }\n }\n\n return true\n}\n",
|
|
23
|
+
"import type { CompilerService } from \"./compiler.js\"\nimport type { RuntimeEmitter } from \"../lib/runtime-utils.js\"\nimport type { ActivationService } from \"./activation.js\"\nimport type { CommandExecutorService } from \"./command-executor.js\"\nimport type { CommandCatalogService } from \"./command-catalog.js\"\nimport type { ConditionService } from \"./conditions.js\"\nimport type { LayerService } from \"./layers.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport type { RuntimeService } from \"./runtime.js\"\nimport type { State } from \"./state.js\"\nimport { cloneKeySequence, cloneKeyStroke, stringifyKeySequence } from \"./keys.js\"\nimport { captureHasContinuations, captureIsExact } from \"./primitives/pending-captures.js\"\nimport { advanceSequenceCapture, capturePriority, collectRootSequenceCaptures } from \"./sequence-index.js\"\nimport { isPromiseLike } from \"./values.js\"\nimport {\n type ActiveBinding,\n type ActiveKey,\n type EventMatchResolverContext,\n type EventMatchResolver,\n type KeyDeferredDisambiguationContext,\n type KeyDeferredDisambiguationDecision,\n type KeyDeferredDisambiguationHandler,\n type KeyDisambiguationContext,\n type KeyDisambiguationDecision,\n type KeyDisambiguationResolver,\n type KeyMatch,\n type KeyInterceptOptions,\n type KeyAfterInputContext,\n type KeyAfterReason,\n type KeyInputContext,\n type KeymapEvent,\n type PendingSequenceCapture,\n type PendingSequenceState,\n type RawInterceptOptions,\n type RawInputContext,\n type BindingState,\n type Hooks,\n type DispatchBinding,\n type DispatchEvent,\n type KeySequencePart,\n type RegisteredLayer,\n} from \"../types.js\"\nimport type { PriorityRegistration } from \"../lib/registry.js\"\nimport {\n createDeferredDecision,\n createSyncDecision,\n isDeferredDecision,\n isSyncDecision,\n sleepWithSignal,\n type InternalDeferredDisambiguationDecision,\n type InternalDisambiguationDecision,\n type PendingDisambiguation,\n} from \"./dispatch-decisions.js\"\nimport {\n createPatternEventPart as createPatternEventPartFromPattern,\n createSequencePayload as createSequencePayloadFromPattern,\n matchSequencePattern,\n} from \"./dispatch-patterns.js\"\n\ninterface KeyDispatchOutcome {\n handled: boolean\n reason: KeyAfterReason\n sequence?: readonly KeySequencePart[]\n captures?: readonly PendingSequenceCapture<any, any>[]\n}\n\ntype KeyAfterHook<TTarget extends object, TEvent extends KeymapEvent> = PriorityRegistration<\n (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n { priority: number; release: boolean }\n>\n\nexport interface DispatchService<TTarget extends object, TEvent extends KeymapEvent> {\n intercept(name: \"key\", fn: (ctx: KeyInputContext<TEvent>) => void, options?: KeyInterceptOptions): () => void\n intercept(\n name: \"key:after\",\n fn: (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n options?: KeyInterceptOptions,\n ): () => void\n intercept(name: \"raw\", fn: (ctx: RawInputContext) => void, options?: RawInterceptOptions): () => void\n prependEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void\n appendEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void\n clearEventMatchResolvers(): void\n prependDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void\n appendDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void\n clearDisambiguationResolvers(): void\n handlePendingSequenceChange(\n previous: PendingSequenceState<TTarget, TEvent> | null,\n next: PendingSequenceState<TTarget, TEvent> | null,\n ): void\n handleRawSequence(sequence: string): boolean\n handleKeyEvent(event: TEvent, release: boolean): void\n}\n\nexport function createDispatchService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n runtime: RuntimeService<TTarget, TEvent>,\n activation: ActivationService<TTarget, TEvent>,\n conditions: ConditionService<TTarget, TEvent>,\n executor: CommandExecutorService<TTarget, TEvent>,\n compiler: CompilerService<TTarget, TEvent>,\n catalog: CommandCatalogService<TTarget, TEvent>,\n layers: LayerService<TTarget, TEvent>,\n hooks: RuntimeEmitter<Hooks<TTarget, TEvent>>,\n): DispatchService<TTarget, TEvent> {\n const eventMatchResolverContext: EventMatchResolverContext = {\n resolveKey: (key) => compiler.parseTokenKey(key).match,\n }\n let pendingDisambiguation: PendingDisambiguation<TTarget, TEvent> | null = null\n let nextPendingDisambiguationId = 0\n\n function intercept(name: \"key\", fn: (ctx: KeyInputContext<TEvent>) => void, options?: KeyInterceptOptions): () => void\n\n function intercept(\n name: \"key:after\",\n fn: (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n options?: KeyInterceptOptions,\n ): () => void\n\n function intercept(name: \"raw\", fn: (ctx: RawInputContext) => void, options?: RawInterceptOptions): () => void\n\n function intercept(\n name: \"key\" | \"key:after\" | \"raw\",\n fn:\n | ((ctx: KeyInputContext<TEvent>) => void)\n | ((ctx: KeyAfterInputContext<TTarget, TEvent>) => void)\n | ((ctx: RawInputContext) => void),\n options?: KeyInterceptOptions | RawInterceptOptions,\n ): () => void {\n if (name === \"key\") {\n const keyOptions = options as KeyInterceptOptions | undefined\n return state.keyHooks.register(fn as (ctx: KeyInputContext<TEvent>) => void, {\n priority: keyOptions?.priority ?? 0,\n release: keyOptions?.release ?? false,\n })\n }\n\n if (name === \"key:after\") {\n const keyOptions = options as KeyInterceptOptions | undefined\n return state.keyAfterHooks.register(fn as (ctx: KeyAfterInputContext<TTarget, TEvent>) => void, {\n priority: keyOptions?.priority ?? 0,\n release: keyOptions?.release ?? false,\n })\n }\n\n const rawOptions = options as RawInterceptOptions | undefined\n return state.rawHooks.register(fn as (ctx: RawInputContext) => void, {\n priority: rawOptions?.priority ?? 0,\n })\n }\n\n function prependEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void {\n return state.eventMatchResolvers.prepend(resolver)\n }\n\n function appendEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void {\n return state.eventMatchResolvers.append(resolver)\n }\n\n function clearEventMatchResolvers(): void {\n state.eventMatchResolvers.clear()\n }\n\n function prependDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void {\n return mutateDisambiguationResolvers(() => state.disambiguationResolvers.prepend(resolver), resolver)\n }\n\n function appendDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void {\n return mutateDisambiguationResolvers(() => state.disambiguationResolvers.append(resolver), resolver)\n }\n\n function clearDisambiguationResolvers(): void {\n if (!state.disambiguationResolvers.has()) {\n return\n }\n\n notify.runWithStateChangeBatch(() => {\n state.disambiguationResolvers.clear()\n layers.recompileBindings()\n })\n }\n\n function handlePendingSequenceChange(\n _previous: PendingSequenceState<TTarget, TEvent> | null,\n _next: PendingSequenceState<TTarget, TEvent> | null,\n ): void {\n if (!pendingDisambiguation) {\n return\n }\n\n cancelPendingDisambiguation()\n }\n\n function handleRawSequence(sequence: string): boolean {\n const hooks = state.rawHooks.entries()\n if (hooks.length === 0) {\n return false\n }\n\n let stopped = false\n const context: RawInputContext = {\n sequence,\n stop() {\n stopped = true\n },\n }\n\n for (const hook of hooks) {\n try {\n hook.listener(context)\n } catch (error) {\n notify.emitError(\"raw-intercept-error\", error, \"[Keymap] Error in raw intercept listener:\")\n }\n\n if (stopped) {\n return true\n }\n }\n\n return false\n }\n\n function createDispatchBinding(\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n ): DispatchBinding<TTarget, TEvent> {\n return {\n sequence: cloneKeySequence(binding.sequence),\n command: binding.command,\n commandAttrs: catalog.getBindingCommandAttrs(binding, focused, catalog.getActiveCommandView(focused)),\n attrs: binding.attrs,\n event: binding.event,\n preventDefault: binding.preventDefault,\n fallthrough: binding.fallthrough,\n sourceLayerOrder: binding.sourceLayerOrder,\n bindingIndex: binding.bindingIndex,\n }\n }\n\n function emitDispatchEvent(event: DispatchEvent<TTarget, TEvent>): void {\n if (!hooks.has(\"dispatch\")) {\n return\n }\n\n hooks.emit(\"dispatch\", event)\n }\n\n function emitBindingDispatch(\n phase: \"binding-execute\" | \"binding-reject\",\n layer: RegisteredLayer<TTarget, TEvent>,\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n ): void {\n if (!hooks.has(\"dispatch\")) {\n return\n }\n\n emitDispatchEvent({\n phase,\n event: binding.event,\n focused,\n layer: {\n order: layer.order,\n priority: layer.priority,\n target: layer.target,\n targetMode: layer.targetMode,\n },\n binding: createDispatchBinding(binding, focused),\n sequence: cloneKeySequence(binding.sequence),\n command: binding.command,\n })\n }\n\n function emitSequenceDispatch(\n phase: \"sequence-start\" | \"sequence-advance\" | \"sequence-clear\",\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n focused: TTarget | null,\n ): void {\n if (!hooks.has(\"dispatch\")) {\n return\n }\n\n const first = captures[0]\n const sequence = captures.length > 0 ? activation.collectSequencePartsFromPending({ captures }) : []\n\n emitDispatchEvent({\n phase,\n event: \"press\",\n focused,\n layer: first\n ? {\n order: first.layer.order,\n priority: first.layer.priority,\n target: first.layer.target,\n targetMode: first.layer.targetMode,\n }\n : undefined,\n sequence,\n })\n }\n\n function getKeyAfterHooks(release: boolean): readonly KeyAfterHook<TTarget, TEvent>[] | undefined {\n const hooks = state.keyAfterHooks.entries()\n for (const hook of hooks) {\n if (hook.release === release) {\n return hooks\n }\n }\n\n return undefined\n }\n\n function getOutcomeSequence(outcome: KeyDispatchOutcome): readonly KeySequencePart[] {\n if (outcome.sequence) {\n return cloneKeySequence(outcome.sequence)\n }\n\n if (outcome.captures) {\n return activation.collectSequencePartsFromPending({ captures: outcome.captures })\n }\n\n return []\n }\n\n function createSequenceOutcome(\n reason: \"sequence-pending\" | \"sequence-miss\" | \"sequence-cleared\",\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n ): KeyDispatchOutcome {\n return {\n handled: reason !== \"sequence-miss\",\n reason,\n captures,\n }\n }\n\n function createBindingOutcome(binding: BindingState<TTarget, TEvent>, handled: boolean): KeyDispatchOutcome {\n return {\n handled,\n reason: handled ? \"binding-handled\" : \"binding-rejected\",\n sequence: binding.sequence,\n }\n }\n\n function preferDispatchOutcome(current: KeyDispatchOutcome, next: KeyDispatchOutcome): KeyDispatchOutcome {\n if (next.handled || current.reason === \"no-match\") {\n return next\n }\n\n return current\n }\n\n function emitKeyAfter(\n hooks: readonly KeyAfterHook<TTarget, TEvent>[],\n event: TEvent,\n release: boolean,\n focused: TTarget | null,\n outcome: KeyDispatchOutcome,\n ): void {\n const context: KeyAfterInputContext<TTarget, TEvent> = {\n event,\n eventType: release ? \"release\" : \"press\",\n focused,\n handled: outcome.handled,\n reason: outcome.reason,\n sequence: getOutcomeSequence(outcome),\n pendingSequence: activation.getPendingSequence(),\n setData: (name, value) => {\n runtime.setData(name, value)\n },\n getData: (name) => {\n return runtime.getData(name)\n },\n consume: (options) => {\n const shouldPreventDefault = options?.preventDefault ?? true\n const shouldStopPropagation = options?.stopPropagation ?? true\n\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n\n if (shouldStopPropagation) {\n event.stopPropagation()\n }\n },\n }\n\n for (const hook of hooks) {\n if (hook.release !== release) {\n continue\n }\n\n try {\n hook.listener(context)\n } catch (error) {\n notify.emitError(\"key-after-intercept-error\", error, \"[Keymap] Error in key:after intercept listener:\")\n }\n }\n }\n\n function noMatchOutcome(): KeyDispatchOutcome {\n return { handled: false, reason: \"no-match\" }\n }\n\n function consumeSequenceEvent(event: TEvent): void {\n event.preventDefault()\n event.stopPropagation()\n }\n\n function holdSequence(\n phase: \"sequence-start\" | \"sequence-advance\",\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n focused: TTarget | null,\n event: TEvent,\n ): KeyDispatchOutcome {\n activation.setPendingSequence({ captures })\n const outcome = createSequenceOutcome(\"sequence-pending\", captures)\n emitSequenceDispatch(phase, captures, focused)\n consumeSequenceEvent(event)\n return outcome\n }\n\n function clearSequence(\n reason: \"sequence-cleared\",\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n focused: TTarget | null,\n event: TEvent,\n ): KeyDispatchOutcome {\n const outcome = createSequenceOutcome(reason, captures)\n emitSequenceDispatch(\"sequence-clear\", captures, focused)\n activation.setPendingSequence(null)\n consumeSequenceEvent(event)\n return outcome\n }\n\n function handleKeyEvent(event: TEvent, release: boolean): void {\n if (!release) {\n cancelPendingDisambiguation()\n }\n\n const afterHooks = getKeyAfterHooks(release)\n const afterFocused = afterHooks ? activation.getFocusedTarget() : null\n const hooks = state.keyHooks.entries()\n const context: KeyInputContext<TEvent> = {\n event,\n setData: (name, value) => {\n runtime.setData(name, value)\n },\n getData: (name) => {\n return runtime.getData(name)\n },\n consume: (options) => {\n const shouldPreventDefault = options?.preventDefault ?? true\n const shouldStopPropagation = options?.stopPropagation ?? true\n\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n\n if (shouldStopPropagation) {\n event.stopPropagation()\n }\n },\n }\n\n for (const hook of hooks) {\n if (hook.release !== release) {\n continue\n }\n\n try {\n hook.listener(context)\n } catch (error) {\n notify.emitError(\"key-intercept-error\", error, \"[Keymap] Error in key intercept listener:\")\n }\n\n if (event.propagationStopped) {\n if (afterHooks) {\n emitKeyAfter(afterHooks, event, release, afterFocused, {\n handled: true,\n reason: \"intercept-consumed\",\n sequence: [],\n })\n }\n return\n }\n }\n\n if (release) {\n const outcome = dispatchReleaseLayers(event)\n if (afterHooks) {\n emitKeyAfter(afterHooks, event, release, afterFocused, outcome)\n }\n return\n }\n\n const outcome = dispatchLayers(event)\n if (afterHooks) {\n emitKeyAfter(afterHooks, event, release, afterFocused, outcome)\n }\n }\n\n function mutateDisambiguationResolvers(\n register: () => () => void,\n resolver: KeyDisambiguationResolver<TTarget, TEvent>,\n ): () => void {\n return notify.runWithStateChangeBatch(() => {\n const hadResolvers = state.disambiguationResolvers.has()\n const off = register()\n\n if (!hadResolvers && state.disambiguationResolvers.has()) {\n layers.recompileBindings()\n }\n\n return () => {\n notify.runWithStateChangeBatch(() => {\n const hadBeforeRemoval = state.disambiguationResolvers.has()\n off()\n\n if (state.disambiguationResolvers.values().includes(resolver)) {\n return\n }\n\n if (hadBeforeRemoval && !state.disambiguationResolvers.has()) {\n layers.recompileBindings()\n }\n })\n }\n })\n }\n\n function dispatchReleaseLayers(event: TEvent): KeyDispatchOutcome {\n const focused = activation.getFocusedTarget()\n const activeLayers = activation.getActiveLayers(focused)\n const matchKeys = resolveEventMatchKeys(event)\n let outcome = noMatchOutcome()\n\n for (const strokeKey of matchKeys) {\n layerLoop: for (const layer of activeLayers) {\n if (layer.bindings.length === 0) {\n continue\n }\n\n if (!conditions.matchesConditions(layer)) {\n continue\n }\n\n const result = runReleaseBindings(layer, strokeKey, event, focused)\n outcome = preferDispatchOutcome(outcome, result.outcome)\n if (!result.handled) {\n continue\n }\n\n if (result.stop) {\n return outcome\n }\n\n continue layerLoop\n }\n }\n\n return outcome\n }\n\n function dispatchLayers(event: TEvent): KeyDispatchOutcome {\n const focused = activation.getFocusedTarget()\n const pending = activation.ensureValidPendingSequence()\n const matchKeys = resolveEventMatchKeys(event)\n\n if (pending) {\n return dispatchPendingSequence(pending, matchKeys, event, focused)\n }\n\n const activeLayers = activation.getActiveLayers(focused)\n let outcome = noMatchOutcome()\n\n for (const matchKey of matchKeys) {\n const result = dispatchFromRoot(activeLayers, [matchKey], event, focused)\n outcome = preferDispatchOutcome(outcome, result)\n if (result.handled) {\n return outcome\n }\n }\n\n return outcome\n }\n\n function dispatchPendingSequence(\n pending: PendingSequenceState<TTarget, TEvent>,\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome {\n const activeView = catalog.getActiveCommandView(focused)\n const advancedCaptures: PendingSequenceCapture<TTarget, TEvent>[] = []\n\n for (const capture of pending.captures) {\n const advanced = advanceSequenceCapture(\n capture,\n matchKeys,\n event,\n state.patterns,\n matchPattern,\n createPatternEventPart,\n )\n if (!advanced) {\n continue\n }\n\n advancedCaptures.push(advanced)\n }\n\n const bestPriority = advancedCaptures.reduce(\n (best, capture) => Math.min(best, capturePriority(capture, matchKeys)),\n Number.POSITIVE_INFINITY,\n )\n const prioritizedCaptures = advancedCaptures.filter(\n (capture) => capturePriority(capture, matchKeys) === bestPriority,\n )\n\n if (\n prioritizedCaptures.length === 0 ||\n !prioritizedCaptures.some((capture) => captureIsReachable(capture, focused, activeView))\n ) {\n const outcome = createSequenceOutcome(\"sequence-miss\", pending.captures)\n emitSequenceDispatch(\"sequence-clear\", pending.captures, focused)\n activation.setPendingSequence(null)\n return outcome\n }\n\n return dispatchPendingCapturesFromIndex(prioritizedCaptures, 0, false, event, focused)\n }\n\n function dispatchPendingCapturesFromIndex(\n advancedCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n startIndex: number,\n handledExact: boolean,\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome {\n let hasHandledExact = handledExact\n let outcome = noMatchOutcome()\n const processedExact = new Set<PendingSequenceCapture<TTarget, TEvent>>()\n\n for (let index = startIndex; index < advancedCaptures.length; index += 1) {\n const capture = advancedCaptures[index]\n if (!capture || processedExact.has(capture)) {\n continue\n }\n\n const continuationCapturesForPrefix = collectContinuationCapturesForPrefix(advancedCaptures, index, capture)\n if (continuationCapturesForPrefix.length > 0) {\n if (hasHandledExact) {\n continue\n }\n\n const exactCaptures = collectExactCapturesForPrefix(advancedCaptures, capture)\n const resolvedOutcome = tryResolvePendingAmbiguity(\n advancedCaptures,\n index,\n continuationCapturesForPrefix,\n exactCaptures,\n event,\n focused,\n hasHandledExact,\n )\n if (resolvedOutcome) {\n return resolvedOutcome\n }\n\n return holdSequence(\"sequence-advance\", continuationCapturesForPrefix, focused, event)\n }\n\n if (!captureIsExact(capture, state.patterns)) {\n continue\n }\n\n const exactCaptures = collectExactCapturesForPrefix(advancedCaptures, capture)\n for (const exact of exactCaptures) processedExact.add(exact)\n const result = runCaptureBindings(capture.layer, exactCaptures, event, focused)\n outcome = preferDispatchOutcome(outcome, result.outcome)\n if (!result.handled) {\n continue\n }\n\n hasHandledExact = true\n if (result.stop) {\n emitSequenceDispatch(\"sequence-clear\", advancedCaptures, focused)\n activation.setPendingSequence(null)\n return outcome\n }\n }\n\n emitSequenceDispatch(\"sequence-clear\", advancedCaptures, focused)\n activation.setPendingSequence(null)\n return outcome\n }\n\n function dispatchFromRoot(\n activeLayers: RegisteredLayer<TTarget, TEvent>[],\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome {\n return dispatchFromRootAtIndex(activeLayers, 0, matchKeys, event, focused)\n }\n\n function dispatchFromRootAtIndex(\n activeLayers: RegisteredLayer<TTarget, TEvent>[],\n startIndex: number,\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome {\n const activeView = catalog.getActiveCommandView(focused)\n let outcome = noMatchOutcome()\n\n for (let index = startIndex; index < activeLayers.length; index += 1) {\n const layer = activeLayers[index]\n if (!layer) {\n continue\n }\n\n if (!conditions.matchesConditions(layer)) {\n continue\n }\n\n const captures = collectRootCaptures(layer, matchKeys, event, focused, activeView)\n if (captures.length === 0) {\n continue\n }\n\n const layerContinuationCaptures = captures.filter((capture) =>\n captureHasContinuations(capture, state.patterns, false),\n )\n if (layerContinuationCaptures.length > 0) {\n const exactCaptures = captures.filter((capture) => captureIsExact(capture, state.patterns))\n const continuationCaptures = collectPendingCapturesFromRoot(activeLayers, index, matchKeys, event, focused)\n const resolvedOutcome = tryResolveRootAmbiguity(\n activeLayers,\n index,\n matchKeys,\n continuationCaptures,\n exactCaptures,\n event,\n focused,\n )\n if (resolvedOutcome) {\n return resolvedOutcome\n }\n\n return holdSequence(\"sequence-start\", continuationCaptures, focused, event)\n }\n\n const exactCaptures = captures.filter((capture) => captureIsExact(capture, state.patterns))\n const result = runCaptureBindings(layer, exactCaptures, event, focused)\n outcome = preferDispatchOutcome(outcome, result.outcome)\n if (!result.handled) {\n continue\n }\n\n if (result.stop) {\n return outcome\n }\n }\n\n return outcome\n }\n\n function tryResolveRootAmbiguity(\n activeLayers: RegisteredLayer<TTarget, TEvent>[],\n layerIndex: number,\n matchKeys: readonly KeyMatch[],\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n exactCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n event: TEvent,\n focused: TTarget | null,\n ): KeyDispatchOutcome | undefined {\n const applyExact = (): KeyDispatchOutcome => {\n activation.setPendingSequence(null)\n const layer = exactCaptures[0]?.layer\n if (!layer) return noMatchOutcome()\n const result = runCaptureBindings(layer, exactCaptures, event, focused)\n if (!result.stop) {\n return preferDispatchOutcome(\n result.outcome,\n dispatchFromRootAtIndex(activeLayers, layerIndex + 1, matchKeys, event, focused),\n )\n }\n\n return result.outcome\n }\n\n return tryResolveAmbiguity({\n event,\n focused,\n continuationCaptures,\n exactBindingsSource: exactCaptures.map((capture) => capture.binding),\n sequencePhase: \"sequence-start\",\n runExact: applyExact,\n })\n }\n\n function tryResolvePendingAmbiguity(\n advancedCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n captureIndex: number,\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n exactCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n event: TEvent,\n focused: TTarget | null,\n handledExact: boolean,\n ): KeyDispatchOutcome | undefined {\n const applyExact = (): KeyDispatchOutcome => {\n activation.setPendingSequence(null)\n const layer = exactCaptures[0]?.layer\n if (!layer) return noMatchOutcome()\n const result = runCaptureBindings(layer, exactCaptures, event, focused)\n if (result.stop) {\n return result.outcome\n }\n\n return preferDispatchOutcome(\n result.outcome,\n dispatchPendingCapturesFromIndex(\n advancedCaptures,\n captureIndex + 1,\n handledExact || result.handled,\n event,\n focused,\n ),\n )\n }\n\n return tryResolveAmbiguity({\n event,\n focused,\n continuationCaptures,\n exactBindingsSource: exactCaptures.map((capture) => capture.binding),\n sequencePhase: \"sequence-advance\",\n runExact: applyExact,\n })\n }\n\n function tryResolveAmbiguity(options: {\n event: TEvent\n focused: TTarget | null\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[]\n exactBindingsSource: readonly BindingState<TTarget, TEvent>[]\n sequencePhase: \"sequence-start\" | \"sequence-advance\"\n runExact: () => KeyDispatchOutcome\n }): KeyDispatchOutcome | undefined {\n const { event, focused, continuationCaptures, exactBindingsSource, sequencePhase, runExact } = options\n\n if (!state.disambiguationResolvers.has() || continuationCaptures.length === 0) {\n return undefined\n }\n\n const activeView = catalog.getActiveCommandView(focused)\n const exactBindings = activation.collectMatchingBindings(exactBindingsSource, focused, activeView)\n if (!exactBindings.some((binding) => binding.command !== undefined)) {\n return undefined\n }\n\n const continueSequence = (): KeyDispatchOutcome => {\n return holdSequence(sequencePhase, continuationCaptures, focused, event)\n }\n\n const clear = (): KeyDispatchOutcome => {\n return clearSequence(\"sequence-cleared\", continuationCaptures, focused, event)\n }\n\n let sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]> | undefined\n const getSequence = (): ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]> => {\n sequence ??= activation.collectSequencePartsFromPending({ captures: continuationCaptures })\n return sequence\n }\n\n const decision = resolveDisambiguation({\n event,\n focused,\n getSequence,\n exactBindings,\n continuationCaptures,\n activeView,\n })\n\n if (!decision) {\n warnUnresolvedAmbiguity(getSequence())\n return continueSequence()\n }\n\n return applySyncDecision(decision, continuationCaptures, runExact, continueSequence, clear, focused, getSequence)\n }\n\n function applySyncDecision(\n decision: InternalDisambiguationDecision,\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n runExact: () => KeyDispatchOutcome,\n continueSequence: () => KeyDispatchOutcome,\n clear: () => KeyDispatchOutcome,\n focused: TTarget | null,\n getSequence: () => ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>,\n ): KeyDispatchOutcome {\n if (decision.action === \"run-exact\") {\n return runExact()\n }\n\n if (decision.action === \"continue-sequence\") {\n return continueSequence()\n }\n\n if (decision.action === \"clear\") {\n return clear()\n }\n\n const outcome = continueSequence()\n scheduleDeferredDisambiguation(continuationCaptures, decision.handler!, focused, getSequence(), (nextDecision) => {\n if (!nextDecision) {\n return\n }\n\n if (nextDecision.action === \"run-exact\") {\n runExact()\n return\n }\n\n if (nextDecision.action === \"continue-sequence\") {\n continueSequence()\n return\n }\n\n clear()\n })\n return outcome\n }\n\n function resolveDisambiguation(options: {\n event: TEvent\n focused: TTarget | null\n getSequence: () => ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>\n exactBindings: readonly BindingState<TTarget, TEvent>[]\n continuationCaptures: readonly PendingSequenceCapture<TTarget, TEvent>[]\n activeView: ReturnType<CommandCatalogService<TTarget, TEvent>[\"getActiveCommandView\"]>\n }): InternalDisambiguationDecision | undefined {\n let sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]> | undefined\n let exact: readonly ActiveBinding<TTarget, TEvent>[] | undefined\n let continuations: readonly ActiveKey<TTarget, TEvent>[] | undefined\n let strokePart: KeyDisambiguationContext<TTarget, TEvent>[\"stroke\"] | undefined\n\n const ctx: KeyDisambiguationContext<TTarget, TEvent> = {\n event: options.event as Readonly<Omit<TEvent, \"preventDefault\" | \"stopPropagation\">>,\n focused: options.focused,\n get sequence() {\n sequence ??= cloneKeySequence(options.getSequence())\n return sequence\n },\n get stroke() {\n const stroke = options.getSequence().at(-1)\n if (!stroke) {\n throw new Error(\"Disambiguation context expected a non-empty sequence\")\n }\n\n strokePart ??= {\n ...stroke,\n stroke: cloneKeyStroke(stroke.stroke),\n }\n\n return strokePart\n },\n get exact() {\n exact ??= activation\n .collectActiveBindings(options.exactBindings, options.focused, options.activeView)\n .map((binding) => ({\n ...binding,\n sequence: cloneKeySequence(binding.sequence),\n }))\n\n return exact\n },\n get continuations() {\n continuations ??= activation.getActiveKeysForCaptures(options.continuationCaptures, {\n includeBindings: true,\n includeMetadata: true,\n })\n\n return continuations\n },\n getData: (name) => {\n return runtime.getData(name)\n },\n setData: (name, value) => {\n runtime.setData(name, value)\n },\n runExact: () => createSyncDecision(\"run-exact\"),\n continueSequence: () => createSyncDecision(\"continue-sequence\"),\n clear: () => createSyncDecision(\"clear\"),\n defer: (run) => createSyncDecision(\"defer\", run),\n }\n\n for (const resolver of state.disambiguationResolvers.values()) {\n let result: KeyDisambiguationDecision | undefined\n\n try {\n result = resolver(ctx)\n } catch (error) {\n notify.emitError(\"disambiguation-resolver-error\", error, \"[Keymap] Error in disambiguation resolver:\")\n continue\n }\n\n if (result === undefined) {\n continue\n }\n\n if (isPromiseLike(result)) {\n notify.emitError(\n \"invalid-disambiguation-resolver-return\",\n result,\n \"[Keymap] Disambiguation resolvers must return synchronously; use ctx.defer(...) for async handling\",\n )\n continue\n }\n\n if (!isSyncDecision(result)) {\n notify.emitError(\n \"invalid-disambiguation-decision\",\n result,\n \"[Keymap] Invalid disambiguation decision returned by resolver:\",\n )\n continue\n }\n\n return result\n }\n\n return undefined\n }\n\n function scheduleDeferredDisambiguation(\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n handler: KeyDeferredDisambiguationHandler<TTarget, TEvent>,\n focused: TTarget | null,\n sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>,\n apply: (decision: InternalDeferredDisambiguationDecision | void) => void,\n ): void {\n cancelPendingDisambiguation()\n\n const controller = new AbortController()\n const pending: PendingDisambiguation<TTarget, TEvent> = {\n id: nextPendingDisambiguationId++,\n controller,\n captures,\n apply,\n }\n pendingDisambiguation = pending\n\n queueMicrotask(() => {\n executeDeferredDisambiguation(pending, handler, focused, sequence)\n })\n }\n\n function executeDeferredDisambiguation(\n pending: PendingDisambiguation<TTarget, TEvent>,\n handler: KeyDeferredDisambiguationHandler<TTarget, TEvent>,\n focused: TTarget | null,\n sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>,\n ): void {\n if (!isPendingDisambiguationCurrent(pending)) {\n return\n }\n\n const ctx: KeyDeferredDisambiguationContext<TTarget, TEvent> = {\n signal: pending.controller.signal,\n sequence: cloneKeySequence(sequence),\n focused,\n sleep: (ms) => {\n return sleepWithSignal(ms, pending.controller.signal)\n },\n runExact: () => createDeferredDecision(\"run-exact\"),\n continueSequence: () => createDeferredDecision(\"continue-sequence\"),\n clear: () => createDeferredDecision(\"clear\"),\n }\n\n let result: KeyDeferredDisambiguationDecision | void | Promise<KeyDeferredDisambiguationDecision | void>\n try {\n result = handler(ctx)\n } catch (error) {\n if (isPendingDisambiguationCurrent(pending)) {\n notify.emitError(\"deferred-disambiguation-error\", error, \"[Keymap] Error in deferred disambiguation handler:\")\n finishPendingDisambiguation(pending)\n }\n return\n }\n\n if (isPromiseLike(result)) {\n result\n .then((resolved) => {\n applyDeferredDisambiguationResult(pending, resolved)\n })\n .catch((error) => {\n if (!isPendingDisambiguationCurrent(pending)) {\n return\n }\n\n notify.emitError(\"deferred-disambiguation-error\", error, \"[Keymap] Error in deferred disambiguation handler:\")\n finishPendingDisambiguation(pending)\n })\n return\n }\n\n applyDeferredDisambiguationResult(pending, result)\n }\n\n function applyDeferredDisambiguationResult(\n pending: PendingDisambiguation<TTarget, TEvent>,\n result: KeyDeferredDisambiguationDecision | void,\n ): void {\n if (!isPendingDisambiguationCurrent(pending)) {\n return\n }\n\n if (result !== undefined && !isDeferredDecision(result)) {\n notify.emitError(\n \"invalid-deferred-disambiguation-decision\",\n result,\n \"[Keymap] Invalid deferred disambiguation decision returned by handler:\",\n )\n finishPendingDisambiguation(pending)\n return\n }\n\n finishPendingDisambiguation(pending)\n pending.apply(result as InternalDeferredDisambiguationDecision | void)\n }\n\n function finishPendingDisambiguation(pending: PendingDisambiguation<TTarget, TEvent>): void {\n if (!isPendingDisambiguationCurrent(pending)) {\n return\n }\n\n pendingDisambiguation = null\n }\n\n function cancelPendingDisambiguation(): void {\n const pending = pendingDisambiguation\n if (!pending) {\n return\n }\n\n pendingDisambiguation = null\n pending.controller.abort()\n }\n\n function isPendingDisambiguationCurrent(pending: PendingDisambiguation<TTarget, TEvent>): boolean {\n return pendingDisambiguation === pending\n }\n\n function warnUnresolvedAmbiguity(\n sequence: ReturnType<ActivationService<TTarget, TEvent>[\"collectSequencePartsFromPending\"]>,\n ): void {\n const display = stringifyKeySequence(sequence, { preferDisplay: true })\n\n notify.warnOnce(\n `unresolved-disambiguation:${display}`,\n \"unresolved-disambiguation\",\n { sequence: display },\n `[Keymap] Ambiguous exact/prefix sequence \"${display}\" fell back to prefix handling because no disambiguation resolver resolved it`,\n )\n }\n\n function collectPendingCapturesFromRoot(\n activeLayers: RegisteredLayer<TTarget, TEvent>[],\n startIndex: number,\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n ): PendingSequenceCapture<TTarget, TEvent>[] {\n const captures: PendingSequenceCapture<TTarget, TEvent>[] = []\n const activeView = catalog.getActiveCommandView(focused)\n\n for (let index = startIndex; index < activeLayers.length; index += 1) {\n const layer = activeLayers[index]\n if (!layer) {\n continue\n }\n\n if (!conditions.matchesConditions(layer)) {\n continue\n }\n\n for (const capture of collectRootCaptures(layer, matchKeys, event, focused, activeView)) {\n if (captureHasContinuations(capture, state.patterns, false)) {\n captures.push(capture)\n }\n }\n }\n\n return captures\n }\n\n function collectContinuationCapturesForPrefix(\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n startIndex: number,\n prefix: PendingSequenceCapture<TTarget, TEvent>,\n ): PendingSequenceCapture<TTarget, TEvent>[] {\n return captures.filter((candidate, candidateIndex) => {\n return (\n candidateIndex >= startIndex &&\n captureHasContinuations(candidate, state.patterns, false) &&\n sameParts(candidate.parts, prefix.parts)\n )\n })\n }\n\n function collectExactCapturesForPrefix(\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n prefix: PendingSequenceCapture<TTarget, TEvent>,\n ): PendingSequenceCapture<TTarget, TEvent>[] {\n return captures.filter((capture) => {\n return (\n capture.layer === prefix.layer &&\n captureIsExact(capture, state.patterns) &&\n sameParts(capture.parts, prefix.parts)\n )\n })\n }\n\n function resolveEventMatchKeys(event: TEvent): KeyMatch[] {\n const resolvers = state.eventMatchResolvers.values()\n\n if (resolvers.length === 0) {\n return []\n }\n\n if (resolvers.length === 1) {\n return resolveSingleEventMatchKeys(resolvers[0]!, event, eventMatchResolverContext, notify)\n }\n\n const keys: KeyMatch[] = []\n const seen = new Set<KeyMatch>()\n\n for (const resolver of resolvers) {\n let resolved: readonly KeyMatch[] | undefined\n\n try {\n resolved = resolver(event, eventMatchResolverContext)\n } catch (error) {\n notify.emitError(\"event-match-resolver-error\", error, \"[Keymap] Error in event match resolver:\")\n continue\n }\n\n if (!resolved || resolved.length === 0) {\n continue\n }\n\n for (const candidate of resolved) {\n if (typeof candidate !== \"string\") {\n notify.emitError(\n \"invalid-event-match-resolver-candidate\",\n candidate,\n \"[Keymap] Invalid event match resolver candidate:\",\n )\n continue\n }\n\n if (seen.has(candidate)) {\n continue\n }\n\n seen.add(candidate)\n keys.push(candidate)\n }\n }\n\n return keys\n }\n\n function runReleaseBindings(\n layer: RegisteredLayer<TTarget, TEvent>,\n strokeKey: KeyMatch,\n event: TEvent,\n focused: TTarget | null,\n ): { handled: boolean; stop: boolean; outcome: KeyDispatchOutcome } {\n let handled = false\n let outcome = noMatchOutcome()\n\n for (const binding of layer.bindings) {\n if (binding.event !== \"release\") {\n continue\n }\n\n const firstPart = binding.sequence[0]\n if (!firstPart || firstPart.match !== strokeKey) {\n continue\n }\n\n if (!conditions.matchesConditions(binding)) {\n continue\n }\n\n const bindingHandled = executor.runBinding(layer, binding, event, focused)\n outcome = preferDispatchOutcome(outcome, createBindingOutcome(binding, bindingHandled))\n if (!bindingHandled) {\n emitBindingDispatch(\"binding-reject\", layer, binding, focused)\n continue\n }\n\n emitBindingDispatch(\"binding-execute\", layer, binding, focused)\n handled = true\n if (!binding.fallthrough) {\n return { handled: true, stop: true, outcome }\n }\n }\n\n return { handled, stop: false, outcome }\n }\n\n function matchPattern(patternName: string, event: TEvent) {\n return matchSequencePattern(state.patterns, notify, patternName, event)\n }\n\n function createPatternEventPart(\n event: TEvent,\n patternName: string,\n match: NonNullable<ReturnType<typeof matchPattern>>,\n ) {\n return createPatternEventPartFromPattern(state.patterns, event, patternName, match)\n }\n\n function collectRootCaptures(\n layer: RegisteredLayer<TTarget, TEvent>,\n matchKeys: readonly KeyMatch[],\n event: TEvent,\n focused: TTarget | null,\n activeView: ReturnType<CommandCatalogService<TTarget, TEvent>[\"getActiveCommandView\"]>,\n ): PendingSequenceCapture<TTarget, TEvent>[] {\n const captures = collectRootSequenceCaptures(layer, matchKeys, event, matchPattern, createPatternEventPart)\n return captures.some((capture) => captureIsReachable(capture, focused, activeView)) ? captures : []\n }\n\n function createSequencePayload(capture?: PendingSequenceCapture<TTarget, TEvent>): unknown {\n return createSequencePayloadFromPattern(state.patterns, notify, capture)\n }\n\n function bindingMatchesRuntimeState(\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n activeView: ReturnType<CommandCatalogService<TTarget, TEvent>[\"getActiveCommandView\"]>,\n ): boolean {\n return conditions.matchesConditions(binding) && catalog.isBindingVisible(binding, focused, activeView)\n }\n\n function captureIsReachable(\n capture: PendingSequenceCapture<TTarget, TEvent>,\n focused: TTarget | null,\n activeView: ReturnType<CommandCatalogService<TTarget, TEvent>[\"getActiveCommandView\"]>,\n ): boolean {\n return bindingMatchesRuntimeState(capture.binding, focused, activeView)\n }\n\n function runCaptureBindings(\n layer: RegisteredLayer<TTarget, TEvent>,\n captures: readonly PendingSequenceCapture<TTarget, TEvent>[],\n event: TEvent,\n focused: TTarget | null,\n ): { handled: boolean; stop: boolean; outcome: KeyDispatchOutcome } {\n let handled = false\n let outcome = noMatchOutcome()\n\n for (const capture of captures) {\n const binding = capture.binding\n if (!conditions.matchesConditions(binding)) {\n continue\n }\n\n const bindingHandled = executor.runBinding(layer, binding, event, focused, createSequencePayload(capture))\n outcome = preferDispatchOutcome(outcome, createBindingOutcome(binding, bindingHandled))\n if (!bindingHandled) {\n emitBindingDispatch(\"binding-reject\", layer, binding, focused)\n continue\n }\n\n emitBindingDispatch(\"binding-execute\", layer, binding, focused)\n handled = true\n if (!binding.fallthrough) {\n return { handled: true, stop: true, outcome }\n }\n }\n\n return { handled, stop: false, outcome }\n }\n\n return {\n intercept,\n prependEventMatchResolver,\n appendEventMatchResolver,\n clearEventMatchResolvers,\n prependDisambiguationResolver,\n appendDisambiguationResolver,\n clearDisambiguationResolvers,\n handlePendingSequenceChange,\n handleRawSequence,\n handleKeyEvent,\n }\n}\n\nfunction resolveSingleEventMatchKeys<TTarget extends object, TEvent extends KeymapEvent>(\n resolver: EventMatchResolver<TEvent>,\n event: TEvent,\n ctx: EventMatchResolverContext,\n notify: NotificationService<TTarget, TEvent>,\n): KeyMatch[] {\n let resolved: readonly KeyMatch[] | undefined\n try {\n resolved = resolver(event, ctx)\n } catch (error) {\n notify.emitError(\"event-match-resolver-error\", error, \"[Keymap] Error in event match resolver:\")\n return []\n }\n\n if (!resolved || resolved.length === 0) {\n return []\n }\n\n if (resolved.length === 1) {\n const [candidate] = resolved\n if (typeof candidate !== \"string\") {\n notify.emitError(\n \"invalid-event-match-resolver-candidate\",\n candidate,\n \"[Keymap] Invalid event match resolver candidate:\",\n )\n return []\n }\n\n return [candidate]\n }\n\n const keys: KeyMatch[] = []\n const seen = new Set<KeyMatch>()\n for (const candidate of resolved) {\n if (typeof candidate !== \"string\") {\n notify.emitError(\n \"invalid-event-match-resolver-candidate\",\n candidate,\n \"[Keymap] Invalid event match resolver candidate:\",\n )\n continue\n }\n\n if (seen.has(candidate)) {\n continue\n }\n\n seen.add(candidate)\n keys.push(candidate)\n }\n\n return keys\n}\n\nfunction sameParts(left: readonly KeySequencePart[], right: readonly KeySequencePart[]): boolean {\n if (left.length !== right.length) {\n return false\n }\n\n for (let index = 0; index < left.length; index += 1) {\n if (left[index]?.match !== right[index]?.match) {\n return false\n }\n }\n\n return true\n}\n",
|
|
24
24
|
"import type { CompilerService } from \"./compiler.js\"\nimport type { LayerService } from \"./layers.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport type { State } from \"./state.js\"\nimport { RESERVED_BINDING_FIELDS, RESERVED_COMMAND_FIELDS, RESERVED_LAYER_FIELDS } from \"../schema.js\"\nimport type {\n KeySequencePart,\n KeyToken,\n KeymapEvent,\n ResolvedKeyToken,\n ResolvedSequencePattern,\n SequencePattern,\n} from \"../types.js\"\nimport { createTextKeyMatch, normalizeBindingTokenName } from \"./keys.js\"\nimport { getErrorMessage } from \"./values.js\"\n\nconst NOOP = (): void => {}\n\ntype FieldKind = \"layer\" | \"binding\" | \"command\"\n\nfunction normalizePatternLimit(name: string, field: \"min\" | \"max\", value: unknown, fallback: number): number {\n if (value === undefined) {\n return fallback\n }\n\n if (typeof value !== \"number\" || !Number.isInteger(value) || value < 0) {\n throw new Error(`Keymap sequence pattern \"${name}\" ${field} must be a non-negative integer`)\n }\n\n return value\n}\n\nfunction registerFieldCompilers<T>(\n fields: Record<string, T>,\n options: {\n kind: FieldKind\n reservedFields: ReadonlySet<string>\n registeredFields: Map<string, T>\n emitError(code: string, error: unknown, message: string): void\n },\n): () => void {\n const { kind, reservedFields, registeredFields, emitError } = options\n const entries = Object.entries(fields)\n const registered: Array<[string, T]> = []\n\n for (const [name, compiler] of entries) {\n if (reservedFields.has(name)) {\n emitError(`reserved-${kind}-field`, { field: name, kind }, `Keymap ${kind} field \"${name}\" is reserved`)\n continue\n }\n\n if (registeredFields.has(name)) {\n emitError(\n `duplicate-${kind}-field`,\n { field: name, kind },\n `Keymap ${kind} field \"${name}\" is already registered`,\n )\n continue\n }\n\n registeredFields.set(name, compiler)\n registered.push([name, compiler])\n }\n\n return () => {\n for (const [name, compiler] of registered) {\n const current = registeredFields.get(name)\n if (current === compiler) {\n registeredFields.delete(name)\n }\n }\n }\n}\n\nexport function registerToken<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n compiler: CompilerService<TTarget, TEvent>,\n layers: LayerService<TTarget, TEvent>,\n token: KeyToken,\n): () => void {\n let normalizedToken: string\n\n try {\n normalizedToken = normalizeBindingTokenName(token.name)\n } catch (error) {\n notify.emitError(\"token-name-normalize-error\", error, getErrorMessage(error, \"Failed to register keymap token\"))\n return NOOP\n }\n\n if (state.tokens.has(normalizedToken) || state.patterns.has(normalizedToken)) {\n notify.emitError(\n \"duplicate-token\",\n { token: normalizedToken },\n `Keymap token \"${normalizedToken}\" is already registered`,\n )\n return NOOP\n }\n\n let parsedToken: KeySequencePart\n\n try {\n parsedToken = compiler.parseTokenKey(token.key)\n if (parsedToken.patternName) {\n throw new Error(`Invalid key \"${String(token.key)}\": expected a concrete key stroke`)\n }\n } catch (error) {\n notify.emitError(\n \"token-parse-error\",\n error,\n getErrorMessage(error, `Failed to register keymap token \"${normalizedToken}\"`),\n )\n return NOOP\n }\n\n const registeredToken: ResolvedKeyToken = {\n stroke: parsedToken.stroke,\n match: parsedToken.match,\n }\n const nextTokens = new Map(state.tokens)\n nextTokens.set(normalizedToken, registeredToken)\n\n try {\n layers.applyTokenState(nextTokens)\n } catch (error) {\n notify.emitError(\n \"token-register-error\",\n error,\n getErrorMessage(error, `Failed to register keymap token \"${normalizedToken}\"`),\n )\n return NOOP\n }\n\n return () => {\n const current = state.tokens.get(normalizedToken)\n if (current !== registeredToken) {\n return\n }\n\n const nextTokens = new Map(state.tokens)\n nextTokens.delete(normalizedToken)\n\n try {\n layers.applyTokenState(nextTokens)\n } catch (error) {\n notify.emitError(\n \"token-unregister-error\",\n error,\n getErrorMessage(error, `Failed to unregister keymap token \"${normalizedToken}\"`),\n )\n }\n }\n}\n\nexport function registerSequencePattern<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n layers: LayerService<TTarget, TEvent>,\n pattern: SequencePattern<TEvent>,\n): () => void {\n let normalizedName: string\n let resolvedPattern: ResolvedSequencePattern<TEvent>\n\n try {\n normalizedName = normalizeBindingTokenName(pattern.name)\n const min = normalizePatternLimit(normalizedName, \"min\", pattern.min, 1)\n const max = normalizePatternLimit(normalizedName, \"max\", pattern.max, Number.MAX_SAFE_INTEGER)\n if (max < min) {\n throw new Error(`Keymap sequence pattern \"${normalizedName}\" max must be greater than or equal to min`)\n }\n\n resolvedPattern = {\n name: normalizedName,\n display: pattern.display,\n payloadKey: pattern.payloadKey ?? normalizedName,\n match: createTextKeyMatch(`pattern:${normalizedName}`),\n min,\n max,\n matcher: (event) => pattern.match(event),\n finalize: pattern.finalize,\n }\n } catch (error) {\n notify.emitError(\n \"sequence-pattern-register-error\",\n error,\n getErrorMessage(error, \"Failed to register keymap sequence pattern\"),\n )\n return NOOP\n }\n\n if (state.tokens.has(normalizedName) || state.patterns.has(normalizedName)) {\n notify.emitError(\n \"duplicate-sequence-pattern\",\n { pattern: normalizedName },\n `Keymap sequence pattern \"${normalizedName}\" is already registered`,\n )\n return NOOP\n }\n\n state.patterns.set(normalizedName, resolvedPattern)\n layers.recompileBindings()\n\n return () => {\n const current = state.patterns.get(normalizedName)\n if (current !== resolvedPattern) {\n return\n }\n\n state.patterns.delete(normalizedName)\n layers.recompileBindings()\n }\n}\n\nexport function registerFields<TTarget extends object, TEvent extends KeymapEvent, T>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n kind: FieldKind,\n fields: Record<string, T>,\n): () => void {\n const reservedFields =\n kind === \"layer\" ? RESERVED_LAYER_FIELDS : kind === \"binding\" ? RESERVED_BINDING_FIELDS : RESERVED_COMMAND_FIELDS\n const registeredFields =\n kind === \"layer\" ? state.layerFields : kind === \"binding\" ? state.bindingFields : state.commandFields\n\n return registerFieldCompilers(fields, {\n kind,\n reservedFields,\n registeredFields: registeredFields as Map<string, T>,\n emitError: (code, error, message) => notify.emitError(code, error, message),\n })\n}\n",
|
|
25
25
|
"import type { CompilerService } from \"./compiler.js\"\nimport type { CommandCatalogService } from \"./command-catalog.js\"\nimport type { ConditionService } from \"./conditions.js\"\nimport type { ActivationService } from \"./activation.js\"\nimport type {\n Attributes,\n Binding,\n BindingState,\n BindingCompilationResult,\n Command,\n EventData,\n KeymapEvent,\n KeymapHost,\n Layer,\n ResolvedKeyToken,\n CommandState,\n RegisteredLayer,\n RuntimeMatchable,\n RuntimeMatcher,\n TargetMode,\n} from \"../types.js\"\nimport { RESERVED_LAYER_FIELDS } from \"../schema.js\"\nimport type { State } from \"./state.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport { snapshotBindings, validateBindings } from \"./primitives/bindings.js\"\nimport { createFieldCompilerContext } from \"./primitives/field-invariants.js\"\nimport { buildSequenceTree } from \"./sequence-index.js\"\nimport { getErrorMessage, snapshotDataValue } from \"./values.js\"\n\nconst NOOP = (): void => {}\n\nfunction compareLayers<TTarget extends object, TEvent extends KeymapEvent>(\n left: RegisteredLayer<TTarget, TEvent>,\n right: RegisteredLayer<TTarget, TEvent>,\n): number {\n const priorityDiff = right.priority - left.priority\n return priorityDiff || right.order - left.order\n}\n\nfunction layerBlocksActiveKeyCache<TTarget extends object, TEvent extends KeymapEvent>(\n layer: RegisteredLayer<TTarget, TEvent>,\n): boolean {\n if (layer.matchers.length > 0) return true\n for (const command of layer.commands) if (command.matchers.length > 0) return true\n for (const binding of layer.bindings) if (binding.matchers.length > 0) return true\n return false\n}\n\nfunction layerBlocksActiveCommandViewCache<TTarget extends object, TEvent extends KeymapEvent>(\n layer: RegisteredLayer<TTarget, TEvent>,\n): boolean {\n if (layer.commands.length === 0) return false\n if (layer.matchers.length > 0) return true\n for (const command of layer.commands) if (command.matchers.length > 0) return true\n return false\n}\n\ninterface CompileLayerRuntimeStateResult {\n requires: readonly [name: string, value: unknown][]\n matchers: readonly RuntimeMatcher[]\n fields?: Readonly<Record<string, unknown>>\n attrs?: Readonly<Attributes>\n}\n\ninterface LayersOptions<TTarget extends object, TEvent extends KeymapEvent> {\n compiler: CompilerService<TTarget, TEvent>\n commands: CommandCatalogService<TTarget, TEvent>\n host: KeymapHost<TTarget, TEvent>\n diagnostics?: LayerDiagnostics<TTarget, TEvent>\n warnUnknownField: (kind: \"binding\" | \"layer\", fieldName: string) => void\n}\n\nexport interface AnalyzeLayerOptions<TTarget extends object, TEvent extends KeymapEvent> {\n target?: TTarget\n order: number\n commands: readonly CommandState<TTarget, TEvent>[]\n sourceBindings: readonly Binding<TTarget, TEvent>[]\n bindings: readonly BindingState<TTarget, TEvent>[]\n hasTokenBindings: boolean\n}\n\nexport interface LayerDiagnostics<TTarget extends object, TEvent extends KeymapEvent> {\n analyzeLayer(options: AnalyzeLayerOptions<TTarget, TEvent>): void\n}\n\nexport interface LayerService<TTarget extends object, TEvent extends KeymapEvent> {\n registerLayer(layer: Layer<TTarget, TEvent>): () => void\n applyTokenState(nextTokens: Map<string, ResolvedKeyToken>): void\n recompileBindings(): void\n cleanup(): void\n}\n\nexport function createLayerService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n conditions: ConditionService<TTarget, TEvent>,\n activation: ActivationService<TTarget, TEvent>,\n options: LayersOptions<TTarget, TEvent>,\n): LayerService<TTarget, TEvent> {\n const registerLayer = (layer: Layer<TTarget, TEvent>): (() => void) => {\n return notify.runWithStateChangeBatch(() => {\n const target = layer.target\n if (target && options.host.isTargetDestroyed(target)) {\n notify.emitError(\n \"destroyed-layer-target\",\n { target },\n \"Cannot register a keymap layer for a destroyed keymap target\",\n )\n return NOOP\n }\n\n let sourceBindings: Binding<TTarget, TEvent>[]\n let requires: readonly [name: string, value: unknown][]\n let matchers: readonly RuntimeMatcher[]\n let fields: Readonly<Record<string, unknown>> | undefined\n let attrs: Readonly<Attributes> | undefined\n let commands: readonly CommandState<TTarget, TEvent>[]\n let targetMode: TargetMode | undefined\n\n try {\n targetMode = normalizeTargetMode(layer)\n sourceBindings = applyLayerBindingsTransformers(snapshotBindings(layer.bindings ?? []), layer)\n const sourceCommands = applyCommandTransformers(layer.commands ?? [], layer)\n commands = sourceCommands.length === 0 ? [] : options.commands.normalizeCommands(sourceCommands)\n ;({ requires, matchers, fields, attrs } = compileLayerRuntimeState(layer))\n } catch (error) {\n notify.emitError(\"register-layer-failed\", error, getErrorMessage(error, \"Failed to register keymap layer\"))\n return NOOP\n }\n\n const order = state.order++\n const bindingStates = options.compiler.compileBindings(sourceBindings, state.tokens, target, order, fields)\n\n if (bindingStates.bindings.length === 0 && !bindingStates.hasTokenBindings && commands.length === 0) {\n return NOOP\n }\n\n options.diagnostics?.analyzeLayer({\n target,\n order,\n commands,\n sourceBindings,\n bindings: bindingStates.bindings,\n hasTokenBindings: bindingStates.hasTokenBindings,\n })\n\n const registeredLayer: RegisteredLayer<TTarget, TEvent> = {\n order,\n target,\n targetMode,\n priority: layer.priority ?? 0,\n requires,\n matchers,\n fields,\n attrs,\n commands,\n sourceBindings,\n bindings: bindingStates.bindings,\n root: buildSequenceTree(bindingStates.bindings, state.patterns),\n hasTokenBindings: bindingStates.hasTokenBindings,\n activeKeyCacheBlocked: false,\n activeCommandViewCacheBlocked: false,\n }\n\n updateCacheBlockers(registeredLayer)\n\n state.layers.add(registeredLayer)\n state.sortedLayers = [...state.sortedLayers, registeredLayer].sort(compareLayers)\n attachReactiveMatchers(registeredLayer)\n for (const command of registeredLayer.commands) {\n attachReactiveMatchers(command)\n }\n for (const binding of registeredLayer.bindings) {\n attachReactiveMatchers(binding)\n }\n\n if (target) {\n const onTargetDestroy = () => {\n unregisterLayer(registeredLayer)\n }\n\n registeredLayer.offTargetDestroy = options.host.onTargetDestroy(target, onTargetDestroy)\n }\n\n if (registeredLayer.commands.length > 0) {\n activation.ensureValidPendingSequence()\n }\n\n notify.queueStateChange()\n\n return () => {\n unregisterLayer(registeredLayer)\n }\n })\n }\n\n const applyTokenState = (nextTokens: Map<string, ResolvedKeyToken>): void => {\n notify.runWithStateChangeBatch(() => {\n const nextCompilations = new Map<RegisteredLayer<TTarget, TEvent>, BindingCompilationResult<TTarget, TEvent>>()\n\n for (const layer of state.layers) {\n if (!layer.hasTokenBindings) {\n continue\n }\n\n nextCompilations.set(layer, compileLayerBindings(layer, nextTokens))\n }\n\n state.tokens = nextTokens\n\n let shouldClearPending = false\n for (const [layer, compilation] of nextCompilations) {\n if (applyBindingStates(layer, compilation)) {\n shouldClearPending = true\n }\n }\n\n if (shouldClearPending) {\n activation.setPendingSequence(null)\n }\n\n if (nextCompilations.size > 0) {\n notify.queueStateChange()\n }\n })\n }\n\n const recompileBindings = (): void => {\n notify.runWithStateChangeBatch(() => {\n let recompiledLayers = 0\n let shouldClearPending = false\n\n for (const layer of state.layers) {\n if (layer.sourceBindings.length === 0) {\n continue\n }\n\n const compilation = compileLayerBindings(layer, state.tokens)\n\n if (applyBindingStates(layer, compilation)) {\n shouldClearPending = true\n }\n\n recompiledLayers += 1\n }\n\n if (shouldClearPending) {\n activation.setPendingSequence(null)\n }\n\n if (recompiledLayers > 0) {\n notify.queueStateChange()\n }\n })\n }\n\n const cleanup = (): void => {\n for (const layer of state.layers) {\n detachReactiveMatchers(layer)\n for (const command of layer.commands) {\n detachReactiveMatchers(command)\n }\n for (const binding of layer.bindings) {\n detachReactiveMatchers(binding)\n }\n\n layer.offTargetDestroy?.()\n layer.offTargetDestroy = undefined\n }\n }\n\n const normalizeTargetMode = (layer: Layer<TTarget, TEvent>): TargetMode | undefined => {\n if (layer.targetMode) {\n if (!layer.target) {\n throw new Error(`Keymap targetMode \"${layer.targetMode}\" requires a target`)\n }\n\n return layer.targetMode\n }\n\n return layer.target ? \"focus-within\" : undefined\n }\n\n const applyLayerBindingsTransformers = (\n bindings: Binding<TTarget, TEvent>[],\n layer: Layer<TTarget, TEvent>,\n ): Binding<TTarget, TEvent>[] => {\n const transformers = state.layerBindingsTransformers.values()\n if (transformers.length === 0) {\n return bindings\n }\n\n let current = bindings\n\n for (const transformer of transformers) {\n const next = transformer(current, {\n layer,\n validateBindings: (bindings) => validateBindings(bindings),\n })\n if (!next) {\n continue\n }\n\n current = snapshotBindings(next)\n }\n\n return current\n }\n\n const applyCommandTransformers = (\n commands: readonly Command<TTarget, TEvent>[],\n layer: Layer<TTarget, TEvent>,\n ): readonly Command<TTarget, TEvent>[] => {\n const transformers = state.commandTransformers.values()\n if (commands.length === 0 || transformers.length === 0) {\n return commands\n }\n\n const transformedCommands: Command<TTarget, TEvent>[] = []\n\n for (const command of commands) {\n const transformedCommand = { ...command }\n const extraCommands: Command<TTarget, TEvent>[] = []\n let keepOriginal = true\n\n for (const transformer of transformers) {\n try {\n transformer(transformedCommand, {\n layer,\n add(nextCommand) {\n extraCommands.push({ ...nextCommand })\n },\n skipOriginal() {\n keepOriginal = false\n },\n })\n } catch (error) {\n notify.emitError(\"command-transformer-error\", error, \"[Keymap] Error in command transformer:\")\n }\n }\n\n if (keepOriginal) {\n transformedCommands.push(transformedCommand)\n }\n transformedCommands.push(...extraCommands)\n }\n\n return transformedCommands\n }\n\n const compileLayerRuntimeState = (layer: Layer<TTarget, TEvent>): CompileLayerRuntimeStateResult => {\n const mergedRequires: EventData = {}\n const matchers: RuntimeMatcher[] = []\n const fields: Record<string, unknown> = Object.create(null)\n const attrs: Attributes = {}\n\n for (const [fieldName, value] of Object.entries(layer)) {\n if (RESERVED_LAYER_FIELDS.has(fieldName)) {\n continue\n }\n\n if (value === undefined) {\n continue\n }\n\n fields[fieldName] = snapshotDataValue(value)\n\n const compiler = state.layerFields.get(fieldName)\n if (!compiler) {\n options.warnUnknownField(\"layer\", fieldName)\n continue\n }\n\n compiler(\n value,\n createFieldCompilerContext({\n fieldName,\n conditions: conditions,\n requirements: mergedRequires,\n matchers,\n attrs,\n }),\n )\n }\n\n return {\n requires: Object.entries(mergedRequires),\n matchers,\n fields: Object.keys(fields).length > 0 ? Object.freeze(fields) : undefined,\n attrs:\n Object.keys(attrs).length > 0\n ? (snapshotDataValue(attrs, { freeze: true }) as Readonly<Attributes>)\n : undefined,\n }\n }\n\n const compileLayerBindings = (\n layer: RegisteredLayer<TTarget, TEvent>,\n tokens: ReadonlyMap<string, ResolvedKeyToken>,\n ): BindingCompilationResult<TTarget, TEvent> => {\n return options.compiler.compileBindings(layer.sourceBindings, tokens, layer.target, layer.order, layer.fields)\n }\n\n const applyBindingStates = (\n layer: RegisteredLayer<TTarget, TEvent>,\n compilation: BindingCompilationResult<TTarget, TEvent>,\n ): boolean => {\n options.diagnostics?.analyzeLayer({\n target: layer.target,\n order: layer.order,\n commands: layer.commands,\n sourceBindings: layer.sourceBindings,\n bindings: compilation.bindings,\n hasTokenBindings: compilation.hasTokenBindings,\n })\n\n untrackCacheBlockers(layer)\n for (const binding of layer.bindings) {\n detachReactiveMatchers(binding)\n }\n\n layer.bindings = compilation.bindings\n layer.root = buildSequenceTree(compilation.bindings, state.patterns)\n layer.hasTokenBindings = compilation.hasTokenBindings\n updateCacheBlockers(layer)\n\n for (const binding of layer.bindings) {\n attachReactiveMatchers(binding)\n }\n\n return state.pending?.captures.some((capture) => capture.layer === layer) ?? false\n }\n\n const unregisterLayer = (layer: RegisteredLayer<TTarget, TEvent>): void => {\n notify.runWithStateChangeBatch(() => {\n if (!state.layers.delete(layer)) {\n return\n }\n\n state.sortedLayers = state.sortedLayers.filter((candidate) => candidate !== layer)\n untrackCacheBlockers(layer)\n\n detachReactiveMatchers(layer)\n for (const command of layer.commands) {\n detachReactiveMatchers(command)\n }\n for (const binding of layer.bindings) {\n detachReactiveMatchers(binding)\n }\n\n layer.offTargetDestroy?.()\n layer.offTargetDestroy = undefined\n\n if (state.pending?.captures.some((capture) => capture.layer === layer)) {\n activation.setPendingSequence(null)\n } else if (layer.commands.length > 0 && !options.host.isDestroyed) {\n activation.ensureValidPendingSequence()\n }\n\n notify.queueStateChange()\n })\n }\n\n const attachReactiveMatchers = (target: RuntimeMatchable): void => {\n for (const matcher of target.matchers) {\n if (!matcher.subscribe) {\n continue\n }\n\n try {\n matcher.dispose = matcher.subscribe(() => {\n if (!activation.hasPendingSequenceState()) {\n notify.queueStateChange()\n return\n }\n\n notify.runWithStateChangeBatch(() => {\n activation.revalidatePendingSequenceIfNeeded()\n notify.queueStateChange()\n })\n })\n } catch (error) {\n notify.emitError(\n \"reactive-matcher-subscribe-error\",\n error,\n getErrorMessage(error, `Failed to subscribe to reactive matcher from ${matcher.source}`),\n )\n }\n }\n }\n\n const updateCacheBlockers = (layer: RegisteredLayer<TTarget, TEvent>): void => {\n const activeKeyBlocked = layerBlocksActiveKeyCache(layer)\n const activeCommandViewBlocked = layerBlocksActiveCommandViewCache(layer)\n\n layer.activeKeyCacheBlocked = activeKeyBlocked\n layer.activeCommandViewCacheBlocked = activeCommandViewBlocked\n if (activeKeyBlocked) state.activeKeyCacheBlockers += 1\n if (activeCommandViewBlocked) state.activeCommandViewCacheBlockers += 1\n }\n\n const untrackCacheBlockers = (layer: RegisteredLayer<TTarget, TEvent>): void => {\n if (layer.activeKeyCacheBlocked) {\n state.activeKeyCacheBlockers -= 1\n layer.activeKeyCacheBlocked = false\n }\n\n if (layer.activeCommandViewCacheBlocked) {\n state.activeCommandViewCacheBlockers -= 1\n layer.activeCommandViewCacheBlocked = false\n }\n }\n\n const detachReactiveMatchers = (target: RuntimeMatchable): void => {\n for (const matcher of target.matchers) {\n if (!matcher.dispose) {\n continue\n }\n\n try {\n matcher.dispose()\n } catch (error) {\n notify.emitError(\n \"reactive-matcher-dispose-error\",\n error,\n getErrorMessage(error, `Failed to dispose reactive matcher from ${matcher.source}`),\n )\n }\n\n matcher.dispose = undefined\n }\n }\n\n return { registerLayer, applyTokenState, recompileBindings, cleanup }\n}\n",
|
|
26
26
|
"import type { Events, HookName, Hooks, KeymapEvent } from \"../types.js\"\nimport type { RuntimeEmitter } from \"../lib/runtime-utils.js\"\nimport type { State } from \"./state.js\"\n\ntype DiagnosticEvents<TTarget extends object, TEvent extends KeymapEvent> = Pick<\n Events<TTarget, TEvent>,\n \"warning\" | \"error\"\n>\n\nexport const MAX_STATE_CHANGE_FLUSH_ITERATIONS = 1000\n\nexport interface NotificationService<TTarget extends object, TEvent extends KeymapEvent> {\n runWithStateChangeBatch<T>(fn: () => T): T\n queueStateChange(options?: { invalidateCaches?: boolean }): void\n emitWarning(code: string, warning: unknown, message: string): void\n emitError(code: string, error: unknown, message: string): void\n reportListenerError(name: HookName, error: unknown): void\n warnOnce(key: string, code: string, warning: unknown, message: string): void\n}\n\nexport function createNotificationService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n events: RuntimeEmitter<DiagnosticEvents<TTarget, TEvent>>,\n hooks: RuntimeEmitter<Hooks<TTarget, TEvent>>,\n): NotificationService<TTarget, TEvent> {\n const emitWarning = (code: string, warning: unknown, message: string): void => {\n if (!events.has(\"warning\")) {\n const consoleMessage = `[${code}] ${message}`\n if (warning instanceof Error) {\n console.warn(consoleMessage, warning)\n } else {\n console.warn(consoleMessage)\n }\n\n return\n }\n\n events.emit(\"warning\", { code, message, warning })\n }\n\n const emitError = (code: string, error: unknown, message: string): void => {\n if (!events.has(\"error\")) {\n const consoleMessage = `[${code}] ${message}`\n if (error instanceof Error) {\n console.error(consoleMessage, error)\n } else {\n console.error(consoleMessage)\n }\n\n return\n }\n\n events.emit(\"error\", { code, message, error })\n }\n\n const flushStateChange = (): void => {\n if (!state.stateChangePending || state.stateChangeDepth > 0 || state.flushingStateChange) {\n return\n }\n\n state.flushingStateChange = true\n\n try {\n let iterations = 0\n\n while (state.stateChangePending && state.stateChangeDepth === 0) {\n if (iterations >= MAX_STATE_CHANGE_FLUSH_ITERATIONS) {\n state.stateChangePending = false\n emitError(\n \"state-change-feedback-loop\",\n { iterations: MAX_STATE_CHANGE_FLUSH_ITERATIONS },\n `[Keymap] Possible infinite state listener feedback loop detected after ${MAX_STATE_CHANGE_FLUSH_ITERATIONS} iterations; pending state notifications were dropped`,\n )\n break\n }\n\n iterations += 1\n state.stateChangePending = false\n hooks.emit(\"state\")\n }\n } finally {\n state.flushingStateChange = false\n }\n }\n\n return {\n runWithStateChangeBatch(fn) {\n state.stateChangeDepth += 1\n\n try {\n return fn()\n } finally {\n state.stateChangeDepth -= 1\n if (state.stateChangeDepth === 0) {\n flushStateChange()\n }\n }\n },\n queueStateChange(options) {\n state.derivedVersion += 1\n if (options?.invalidateCaches !== false) {\n state.cacheVersion += 1\n }\n\n if (!hooks.has(\"state\")) {\n return\n }\n\n state.stateChangePending = true\n if (state.stateChangeDepth === 0 && !state.flushingStateChange) {\n flushStateChange()\n }\n },\n emitWarning,\n emitError,\n reportListenerError(name, error) {\n if (name === \"state\") {\n emitError(\"state-listener-error\", error, \"[Keymap] Error in state listener:\")\n return\n }\n\n if (name === \"pendingSequence\") {\n emitError(\"pending-sequence-listener-error\", error, \"[Keymap] Error in pending sequence listener:\")\n return\n }\n\n if (name === \"dispatch\") {\n emitError(\"dispatch-listener-error\", error, \"[Keymap] Error in dispatch listener:\")\n }\n },\n warnOnce(key, code, warning, message) {\n if (state.usedWarningKeys.has(key)) {\n return\n }\n\n state.usedWarningKeys.add(key)\n emitWarning(code, warning, message)\n },\n }\n}\n",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"import type {\n Attributes,\n BindingExpander,\n BindingFieldCompiler,\n LayerBindingsTransformer,\n BindingParser,\n BindingTransformer,\n Command,\n CommandFieldCompiler,\n CommandTransformer,\n CommandResolver,\n EventData,\n KeyDisambiguationResolver,\n EventMatchResolver,\n Hooks,\n KeyAfterInputContext,\n KeyInputContext,\n KeymapEvent,\n LayerFieldCompiler,\n PendingSequenceState,\n RawInputContext,\n ResolvedSequencePattern,\n CommandState,\n RegisteredLayer,\n} from \"../types.js\"\nimport {\n createRuntimeOrderedRegistry,\n createRuntimePriorityRegistry,\n type RuntimeOrderedRegistry,\n type RuntimePriorityRegistry,\n} from \"../lib/runtime-utils.js\"\n\nconst EMPTY_DATA: Readonly<EventData> = Object.freeze({})\n\nexport interface LayerCommandEntry<TTarget extends object, TEvent extends KeymapEvent> {\n layer: RegisteredLayer<TTarget, TEvent>\n commandState: CommandState<TTarget, TEvent>\n}\n\nexport interface ResolvedCommandEntry<TTarget extends object, TEvent extends KeymapEvent> {\n target?: TTarget\n command: Command<TTarget, TEvent>\n attrs?: Readonly<Attributes>\n input?: string\n payload?: unknown\n}\n\nexport interface ActiveCommandView<TTarget extends object, TEvent extends KeymapEvent> {\n layers: readonly RegisteredLayer<TTarget, TEvent>[]\n entries: readonly LayerCommandEntry<TTarget, TEvent>[]\n reachable: readonly LayerCommandEntry<TTarget, TEvent>[]\n reachableByName: ReadonlyMap<string, LayerCommandEntry<TTarget, TEvent>>\n chainsByName: ReadonlyMap<string, readonly LayerCommandEntry<TTarget, TEvent>[]>\n}\n\nexport interface CommandView<TTarget extends object, TEvent extends KeymapEvent> {\n entries: readonly LayerCommandEntry<TTarget, TEvent>[]\n chainsByName: ReadonlyMap<string, readonly LayerCommandEntry<TTarget, TEvent>[]>\n}\n\nexport interface State<TTarget extends object, TEvent extends KeymapEvent> {\n order: number\n tokens: Map<string, import(\"../types.js\").ResolvedKeyToken>\n patterns: Map<string, ResolvedSequencePattern<TEvent>>\n layerFields: Map<string, LayerFieldCompiler>\n layerBindingsTransformers: RuntimeOrderedRegistry<LayerBindingsTransformer<TTarget, TEvent>>\n bindingExpanders: RuntimeOrderedRegistry<BindingExpander>\n bindingParsers: RuntimeOrderedRegistry<BindingParser>\n bindingTransformers: RuntimeOrderedRegistry<BindingTransformer<TTarget, TEvent>>\n bindingFields: Map<string, BindingFieldCompiler>\n commandTransformers: RuntimeOrderedRegistry<CommandTransformer<TTarget, TEvent>>\n commandFields: Map<string, CommandFieldCompiler>\n eventMatchResolvers: RuntimeOrderedRegistry<EventMatchResolver<TEvent>>\n disambiguationResolvers: RuntimeOrderedRegistry<KeyDisambiguationResolver<TTarget, TEvent>>\n keyHooks: RuntimePriorityRegistry<(ctx: KeyInputContext<TEvent>) => void, { priority: number; release: boolean }>\n keyAfterHooks: RuntimePriorityRegistry<\n (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n { priority: number; release: boolean }\n >\n rawHooks: RuntimePriorityRegistry<(ctx: RawInputContext) => void, { priority: number }>\n layers: Set<RegisteredLayer<TTarget, TEvent>>\n sortedLayers: RegisteredLayer<TTarget, TEvent>[]\n activeLayersCacheVersion: number\n activeLayersCacheFocused: TTarget | null | undefined\n activeLayersCache: RegisteredLayer<TTarget, TEvent>[]\n activeKeyCacheBlockers: number\n activeCommandViewCacheBlockers: number\n commandResolvers: RuntimeOrderedRegistry<CommandResolver<TTarget, TEvent>>\n pending: PendingSequenceState<TTarget, TEvent> | null\n data: EventData\n dataVersion: number\n readonlyDataVersion: number\n readonlyData: Readonly<EventData>\n cacheVersion: number\n derivedVersion: number\n stateChangeDepth: number\n stateChangePending: boolean\n flushingStateChange: boolean\n usedWarningKeys: Set<string>\n}\n\nexport function createKeymapState<TTarget extends object, TEvent extends KeymapEvent>(): State<TTarget, TEvent> {\n return {\n order: 0,\n tokens: new Map<string, import(\"../types.js\").ResolvedKeyToken>(),\n patterns: new Map<string, ResolvedSequencePattern<TEvent>>(),\n layerFields: new Map<string, LayerFieldCompiler>(),\n layerBindingsTransformers: createRuntimeOrderedRegistry<LayerBindingsTransformer<TTarget, TEvent>>(),\n bindingExpanders: createRuntimeOrderedRegistry<BindingExpander>(),\n bindingParsers: createRuntimeOrderedRegistry<BindingParser>(),\n bindingTransformers: createRuntimeOrderedRegistry<BindingTransformer<TTarget, TEvent>>(),\n bindingFields: new Map<string, BindingFieldCompiler>(),\n commandTransformers: createRuntimeOrderedRegistry<CommandTransformer<TTarget, TEvent>>(),\n commandFields: new Map<string, CommandFieldCompiler>(),\n eventMatchResolvers: createRuntimeOrderedRegistry<EventMatchResolver<TEvent>>(),\n disambiguationResolvers: createRuntimeOrderedRegistry<KeyDisambiguationResolver<TTarget, TEvent>>(),\n keyHooks: createRuntimePriorityRegistry<\n (ctx: KeyInputContext<TEvent>) => void,\n { priority: number; release: boolean }\n >(),\n keyAfterHooks: createRuntimePriorityRegistry<\n (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n { priority: number; release: boolean }\n >(),\n rawHooks: createRuntimePriorityRegistry<(ctx: RawInputContext) => void, { priority: number }>(),\n layers: new Set<RegisteredLayer<TTarget, TEvent>>(),\n sortedLayers: [],\n activeLayersCacheVersion: -1,\n activeLayersCacheFocused: undefined,\n activeLayersCache: [],\n activeKeyCacheBlockers: 0,\n activeCommandViewCacheBlockers: 0,\n commandResolvers: createRuntimeOrderedRegistry<CommandResolver<TTarget, TEvent>>(),\n pending: null,\n data: {},\n dataVersion: 0,\n readonlyDataVersion: -1,\n readonlyData: EMPTY_DATA,\n cacheVersion: 0,\n derivedVersion: 0,\n stateChangeDepth: 0,\n stateChangePending: false,\n flushingStateChange: false,\n usedWarningKeys: new Set<string>(),\n }\n}\n",
|
|
29
29
|
"import type {\n ActiveBinding,\n ActiveKey,\n ActiveKeyOptions,\n BindingExpander,\n BindingParser,\n BindingFieldCompiler,\n LayerBindingsTransformer,\n BindingTransformer,\n Events,\n Hooks,\n CommandFieldCompiler,\n CommandTransformer,\n CommandBindingsQuery,\n CommandEntry,\n CommandQuery,\n Command,\n KeymapEvent,\n KeymapHost,\n HostMetadata,\n LayerAnalyzer,\n Listener,\n RunCommandOptions,\n RunCommandResult,\n CommandResolver,\n KeyAfterInputContext,\n KeyInterceptOptions,\n KeyInputContext,\n Layer,\n LayerFieldCompiler,\n KeyDisambiguationResolver,\n RawInterceptOptions,\n RawInputContext,\n EventMatchResolver,\n KeyMatch,\n KeyStringifyInput,\n KeyToken,\n SequencePattern,\n KeyLike,\n KeySequencePart,\n StringifyOptions,\n} from \"./types.js\"\nimport { createLayerDiagnostics, type LayerDiagnosticsCore } from \"./services/layer-diagnostics.js\"\nimport { createActivationService, type ActivationService } from \"./services/activation.js\"\nimport { createCommandCatalogService, type CommandCatalogService } from \"./services/command-catalog.js\"\nimport { createCommandExecutorService, type CommandExecutorService } from \"./services/command-executor.js\"\nimport { createCompilerService, type CompilerService } from \"./services/compiler.js\"\nimport { createConditionService, type ConditionService } from \"./services/conditions.js\"\nimport { createDispatchService, type DispatchService } from \"./services/dispatch.js\"\nimport {\n registerFields,\n registerSequencePattern as registerEnvironmentSequencePattern,\n registerToken as registerEnvironmentToken,\n} from \"./services/environment.js\"\nimport { createLayerService, type LayerService } from \"./services/layers.js\"\nimport type { EmitterListener } from \"./lib/emitter.js\"\nimport { createRuntimeEmitter, type RuntimeEmitter } from \"./lib/runtime-utils.js\"\nimport { createNotificationService, type NotificationService } from \"./services/notify.js\"\nimport { resolveKeyMatch } from \"./services/keys.js\"\nimport { createRuntimeService, type RuntimeService } from \"./services/runtime.js\"\nimport { KEYMAP_EXTENSION_CONTEXT, type KeymapExtensionContext } from \"./services/extension-context.js\"\nimport { createKeymapState } from \"./services/state.js\"\n\ntype DiagnosticEvents<TTarget extends object, TEvent extends KeymapEvent> = Pick<\n Events<TTarget, TEvent>,\n \"warning\" | \"error\"\n>\n\nfunction getKeyMatchKey(input: KeyStringifyInput): KeyMatch {\n return resolveKeyMatch(input)\n}\n\nexport class Keymap<TTarget extends object, TEvent extends KeymapEvent = KeymapEvent> {\n #state = createKeymapState<TTarget, TEvent>()\n #cleanedUp = false\n #resources = new Map<symbol, { count: number; dispose: () => void }>()\n #cleanupListeners: Array<() => void> = []\n // Reuse `Emitter`, but keep its `onError` hook as a no-op so throwing error\n // listeners cannot re-enter `emitError` and loop forever.\n #events = createRuntimeEmitter<DiagnosticEvents<TTarget, TEvent>>(() => {})\n #hooks: RuntimeEmitter<Hooks<TTarget, TEvent>>\n #notify: NotificationService<TTarget, TEvent>\n #activation: ActivationService<TTarget, TEvent>\n #runtime: RuntimeService<TTarget, TEvent>\n #conditions: ConditionService<TTarget, TEvent>\n #catalog: CommandCatalogService<TTarget, TEvent>\n #executor: CommandExecutorService<TTarget, TEvent>\n #compiler: CompilerService<TTarget, TEvent>\n #dispatch: DispatchService<TTarget, TEvent>\n #layers: LayerService<TTarget, TEvent>\n #layerDiagnostics: LayerDiagnosticsCore<TTarget, TEvent>\n\n #keypressListener: (event: TEvent) => void\n #keyreleaseListener: (event: TEvent) => void\n #rawListener: (sequence: string) => boolean\n #focusedTargetListener: (focused: TTarget | null) => void\n\n #host: KeymapHost<TTarget, TEvent>\n\n public getPendingSequence: () => readonly KeySequencePart[]\n public getActiveKeys: (options?: ActiveKeyOptions) => readonly ActiveKey<TTarget, TEvent>[]\n\n constructor(host: KeymapHost<TTarget, TEvent>) {\n this.#host = host\n if (host.isDestroyed) {\n throw new Error(\"Cannot create a keymap for a destroyed host\")\n }\n\n this.#hooks = createRuntimeEmitter<Hooks<TTarget, TEvent>>((name, error) => {\n this.#notify.reportListenerError(name, error)\n })\n this.#notify = createNotificationService(this.#state, this.#events, this.#hooks)\n this.#conditions = createConditionService(this.#state, this.#notify)\n this.#catalog = createCommandCatalogService(this.#state, this.#host, this.#notify, this.#conditions, {\n onCommandResolversChanged: () => {\n this.#activation.ensureValidPendingSequence()\n },\n })\n this.#activation = createActivationService(\n this.#state,\n this.#host,\n this.#hooks,\n this.#notify,\n this.#conditions,\n this.#catalog,\n {\n onPendingSequenceChanged: (previous, next) => {\n this.#dispatch?.handlePendingSequenceChange(previous, next)\n },\n },\n )\n this.#runtime = createRuntimeService(this.#state, this.#notify, this.#activation)\n this.#executor = createCommandExecutorService(this.#notify, this.#runtime, this.#activation, this.#catalog, {\n keymap: this,\n createCommandEvent: () => this.#host.createCommandEvent(),\n })\n this.#compiler = createCompilerService(this.#state, this.#notify, this.#conditions, {\n warnUnknownField: (kind, fieldName) => {\n this.#warnUnknownField(kind, fieldName)\n },\n warnUnknownToken: (token, sequence) => {\n this.#warnUnknownToken(token, sequence)\n },\n })\n this.#layerDiagnostics = createLayerDiagnostics(this.#notify, this.#catalog)\n this.#layers = createLayerService(this.#state, this.#notify, this.#conditions, this.#activation, {\n compiler: this.#compiler,\n commands: this.#catalog,\n host: this.#host,\n diagnostics: this.#layerDiagnostics,\n warnUnknownField: (kind, fieldName) => {\n this.#warnUnknownField(kind, fieldName)\n },\n })\n this.#dispatch = createDispatchService(\n this.#state,\n this.#notify,\n this.#runtime,\n this.#activation,\n this.#conditions,\n this.#executor,\n this.#compiler,\n this.#catalog,\n this.#layers,\n this.#hooks,\n )\n this.getPendingSequence = this.#activation.getPendingSequence\n this.getActiveKeys = this.#activation.getActiveKeys\n this.#keypressListener = (event) => {\n this.#dispatch.handleKeyEvent(event, false)\n }\n this.#keyreleaseListener = (event) => {\n this.#dispatch.handleKeyEvent(event, true)\n }\n this.#rawListener = (sequence) => {\n return this.#dispatch.handleRawSequence(sequence)\n }\n this.#focusedTargetListener = (focused) => {\n this.#handleFocusedTargetChange(focused)\n }\n\n this.#cleanupListeners.push(this.#host.onKeyPress(this.#keypressListener))\n this.#cleanupListeners.push(this.#host.onKeyRelease(this.#keyreleaseListener))\n if (this.#host.onRawInput) {\n this.#cleanupListeners.push(this.#host.onRawInput(this.#rawListener))\n }\n this.#cleanupListeners.push(this.#host.onFocusChange(this.#focusedTargetListener))\n if (this.#host.onDestroy) {\n this.#cleanupListeners.push(\n this.#host.onDestroy(() => {\n this.#cleanup()\n }),\n )\n }\n }\n\n public [KEYMAP_EXTENSION_CONTEXT](): KeymapExtensionContext<TTarget, TEvent> {\n return {\n state: this.#state,\n host: this.#host,\n conditions: this.#conditions,\n catalog: this.#catalog,\n activation: this.#activation,\n }\n }\n\n #cleanup(): void {\n if (this.#cleanedUp) {\n return\n }\n\n this.#cleanedUp = true\n\n this.#activation.setPendingSequence(null)\n\n for (const resource of this.#resources.values()) {\n resource.dispose()\n }\n this.#resources.clear()\n\n this.#layers.cleanup()\n\n for (const cleanupListener of this.#cleanupListeners.splice(0)) {\n cleanupListener()\n }\n }\n\n public setData(name: string, value: unknown): void {\n this.#runtime.setData(name, value)\n }\n\n public getData(name: string): unknown {\n return this.#runtime.getData(name)\n }\n\n public getHostMetadata(): Readonly<HostMetadata> {\n return this.#host.metadata\n }\n\n public hasPendingSequence(): boolean {\n return this.#activation.ensureValidPendingSequence() !== undefined\n }\n\n public createKeyMatcher(key: KeyLike): (input: KeyStringifyInput | null | undefined) => boolean {\n const match = this.#compiler.parseTokenKey(key).match\n\n return (input) => {\n if (!input) {\n return false\n }\n\n return getKeyMatchKey(input) === match\n }\n }\n\n public parseKeySequence(key: KeyLike): readonly KeySequencePart[] {\n return this.#compiler.parseKeySequence(key)\n }\n\n public formatKey(key: KeyLike, options?: StringifyOptions): string {\n return this.#compiler.formatKey(key, options)\n }\n\n public clearPendingSequence(): void {\n this.#activation.setPendingSequence(null)\n }\n\n public popPendingSequence(): boolean {\n return this.#activation.popPendingSequence()\n }\n\n public getCommands(query?: CommandQuery<TTarget, TEvent>): readonly Command<TTarget, TEvent>[] {\n return this.#catalog.getCommands(query)\n }\n\n public getCommandEntries(query?: CommandQuery<TTarget, TEvent>): readonly CommandEntry<TTarget, TEvent>[] {\n return this.#catalog.getCommandEntries(query)\n }\n\n public getCommandBindings(\n query: CommandBindingsQuery<TTarget>,\n ): ReadonlyMap<string, readonly ActiveBinding<TTarget, TEvent>[]> {\n return this.#catalog.getCommandBindings(query)\n }\n\n public acquireResource(key: symbol, setup: () => () => void): () => void {\n if (this.#cleanedUp || this.#host.isDestroyed) {\n throw new Error(\"Cannot use a keymap after its host was destroyed\")\n }\n\n const existing = this.#resources.get(key)\n if (existing) {\n existing.count += 1\n return () => {\n this.#releaseResource(key, existing)\n }\n }\n\n const dispose = setup()\n const resource = { count: 1, dispose }\n this.#resources.set(key, resource)\n\n return () => {\n this.#releaseResource(key, resource)\n }\n }\n\n public runCommand(cmd: string, options?: RunCommandOptions<TTarget, TEvent>): RunCommandResult<TTarget, TEvent> {\n return this.#executor.runCommand(cmd, options)\n }\n\n public dispatchCommand(cmd: string, options?: RunCommandOptions<TTarget, TEvent>): RunCommandResult<TTarget, TEvent> {\n return this.#executor.dispatchCommand(cmd, options)\n }\n\n public on(name: \"state\", fn: Listener<Events<TTarget, TEvent>[\"state\"]>): () => void\n\n public on(name: \"pendingSequence\", fn: Listener<Events<TTarget, TEvent>[\"pendingSequence\"]>): () => void\n\n public on(name: \"dispatch\", fn: Listener<Events<TTarget, TEvent>[\"dispatch\"]>): () => void\n\n public on(name: \"warning\", fn: Listener<Events<TTarget, TEvent>[\"warning\"]>): () => void\n\n public on(name: \"error\", fn: Listener<Events<TTarget, TEvent>[\"error\"]>): () => void\n\n public on(\n name: keyof Events<TTarget, TEvent>,\n fn: (() => void) | ((value: Events<TTarget, TEvent>[keyof Events<TTarget, TEvent>]) => void),\n ): () => void {\n if (name === \"warning\") {\n return this.#events.hook(name, fn as EmitterListener<Events<TTarget, TEvent>[\"warning\"]>)\n }\n\n if (name === \"error\") {\n return this.#events.hook(name, fn as EmitterListener<Events<TTarget, TEvent>[\"error\"]>)\n }\n\n return this.#hooks.hook(name, fn as Listener<Hooks<TTarget, TEvent>[typeof name]>)\n }\n\n public intercept(name: \"key\", fn: (ctx: KeyInputContext<TEvent>) => void, options?: KeyInterceptOptions): () => void\n\n public intercept(\n name: \"key:after\",\n fn: (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n options?: KeyInterceptOptions,\n ): () => void\n\n public intercept(name: \"raw\", fn: (ctx: RawInputContext) => void, options?: RawInterceptOptions): () => void\n\n public intercept(\n name: \"key\" | \"key:after\" | \"raw\",\n fn:\n | ((ctx: KeyInputContext<TEvent>) => void)\n | ((ctx: KeyAfterInputContext<TTarget, TEvent>) => void)\n | ((ctx: RawInputContext) => void),\n options?: KeyInterceptOptions | RawInterceptOptions,\n ): () => void {\n if (name === \"key\") {\n return this.#dispatch.intercept(\n name,\n fn as (ctx: KeyInputContext<TEvent>) => void,\n options as KeyInterceptOptions,\n )\n }\n\n if (name === \"key:after\") {\n return this.#dispatch.intercept(\n name,\n fn as (ctx: KeyAfterInputContext<TTarget, TEvent>) => void,\n options as KeyInterceptOptions,\n )\n }\n\n return this.#dispatch.intercept(name, fn as (ctx: RawInputContext) => void, options as RawInterceptOptions)\n }\n\n public registerLayer(layer: Layer<TTarget, TEvent>): () => void {\n return this.#layers.registerLayer(layer)\n }\n\n public registerLayerFields(fields: Record<string, LayerFieldCompiler>): () => void {\n return registerFields(this.#state, this.#notify, \"layer\", fields)\n }\n\n public prependLayerBindingsTransformer(transformer: LayerBindingsTransformer<TTarget, TEvent>): () => void {\n return this.#state.layerBindingsTransformers.prepend(transformer)\n }\n\n public appendLayerBindingsTransformer(transformer: LayerBindingsTransformer<TTarget, TEvent>): () => void {\n return this.#state.layerBindingsTransformers.append(transformer)\n }\n\n public clearLayerBindingsTransformers(): void {\n this.#state.layerBindingsTransformers.clear()\n }\n\n public prependBindingTransformer(transformer: BindingTransformer<TTarget, TEvent>): () => void {\n return this.#state.bindingTransformers.prepend(transformer)\n }\n\n public appendBindingTransformer(transformer: BindingTransformer<TTarget, TEvent>): () => void {\n return this.#state.bindingTransformers.append(transformer)\n }\n\n public clearBindingTransformers(): void {\n this.#state.bindingTransformers.clear()\n }\n\n public prependCommandTransformer(transformer: CommandTransformer<TTarget, TEvent>): () => void {\n return this.#state.commandTransformers.prepend(transformer)\n }\n\n public appendCommandTransformer(transformer: CommandTransformer<TTarget, TEvent>): () => void {\n return this.#state.commandTransformers.append(transformer)\n }\n\n public clearCommandTransformers(): void {\n this.#state.commandTransformers.clear()\n }\n\n public prependBindingParser(parser: BindingParser): () => void {\n return this.#state.bindingParsers.prepend(parser)\n }\n\n public appendBindingParser(parser: BindingParser): () => void {\n return this.#state.bindingParsers.append(parser)\n }\n\n public clearBindingParsers(): void {\n this.#state.bindingParsers.clear()\n }\n\n public registerToken(token: KeyToken): () => void {\n return registerEnvironmentToken(this.#state, this.#notify, this.#compiler, this.#layers, token)\n }\n\n public registerSequencePattern(pattern: SequencePattern<TEvent>): () => void {\n return registerEnvironmentSequencePattern(this.#state, this.#notify, this.#layers, pattern)\n }\n\n public prependBindingExpander(expander: BindingExpander): () => void {\n return this.#state.bindingExpanders.prepend(expander)\n }\n\n public appendBindingExpander(expander: BindingExpander): () => void {\n return this.#state.bindingExpanders.append(expander)\n }\n\n public clearBindingExpanders(): void {\n this.#state.bindingExpanders.clear()\n }\n\n public registerBindingFields(fields: Record<string, BindingFieldCompiler>): () => void {\n return registerFields(this.#state, this.#notify, \"binding\", fields)\n }\n\n public registerCommandFields(fields: Record<string, CommandFieldCompiler>): () => void {\n return registerFields(this.#state, this.#notify, \"command\", fields)\n }\n\n public prependCommandResolver(resolver: CommandResolver<TTarget, TEvent>): () => void {\n return this.#catalog.prependCommandResolver(resolver)\n }\n\n public appendCommandResolver(resolver: CommandResolver<TTarget, TEvent>): () => void {\n return this.#catalog.appendCommandResolver(resolver)\n }\n\n public clearCommandResolvers(): void {\n this.#catalog.clearCommandResolvers()\n }\n\n public prependLayerAnalyzer(analyzer: LayerAnalyzer<TTarget, TEvent>): () => void {\n return this.#layerDiagnostics.prependLayerAnalyzer(analyzer)\n }\n\n public appendLayerAnalyzer(analyzer: LayerAnalyzer<TTarget, TEvent>): () => void {\n return this.#layerDiagnostics.appendLayerAnalyzer(analyzer)\n }\n\n public clearLayerAnalyzers(): void {\n this.#layerDiagnostics.clearLayerAnalyzers()\n }\n\n public prependEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void {\n return this.#dispatch.prependEventMatchResolver(resolver)\n }\n\n public appendEventMatchResolver(resolver: EventMatchResolver<TEvent>): () => void {\n return this.#dispatch.appendEventMatchResolver(resolver)\n }\n\n public clearEventMatchResolvers(): void {\n this.#dispatch.clearEventMatchResolvers()\n }\n\n public prependDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void {\n return this.#dispatch.prependDisambiguationResolver(resolver)\n }\n\n public appendDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void {\n return this.#dispatch.appendDisambiguationResolver(resolver)\n }\n\n public clearDisambiguationResolvers(): void {\n this.#dispatch.clearDisambiguationResolvers()\n }\n\n #handleFocusedTargetChange(_focused: TTarget | null): void {\n this.#notify.runWithStateChangeBatch(() => {\n // Any focus change breaks a pending sequence. Prefix dispatch is captured\n // against the state that started it, and changing focus can change the\n // active bindings and their precedence.\n this.#activation.setPendingSequence(null)\n this.#notify.queueStateChange({ invalidateCaches: false })\n })\n }\n\n #warnUnknownField(kind: \"binding\" | \"layer\", fieldName: string): void {\n this.#notify.warnOnce(\n `${kind}:${fieldName}`,\n `unknown-${kind}-field`,\n { field: fieldName, kind },\n `[Keymap] Unknown ${kind} field \"${fieldName}\" was ignored`,\n )\n }\n\n #warnUnknownToken(token: string, sequence: string): void {\n this.#notify.warnOnce(\n `token:${token}`,\n \"unknown-token\",\n { token, sequence },\n `[Keymap] Unknown token \"${token}\" in key sequence \"${sequence}\" was ignored`,\n )\n }\n\n #releaseResource(key: symbol, resource: { count: number; dispose: () => void }): void {\n const current = this.#resources.get(key)\n if (current !== resource) {\n return\n }\n\n resource.count -= 1\n if (resource.count > 0) {\n return\n }\n\n resource.dispose()\n this.#resources.delete(key)\n }\n}\n"
|
|
30
30
|
],
|
|
31
|
-
"mappings": "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",
|
|
32
|
-
"debugId": "
|
|
31
|
+
"mappings": "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",
|
|
32
|
+
"debugId": "4219BCC7E15CDA4F64756E2164756E21",
|
|
33
33
|
"names": []
|
|
34
34
|
}
|