@opentui/keymap 0.2.16 → 0.3.1

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/src/index.js.map CHANGED
@@ -15,7 +15,7 @@
15
15
  "function isPlainObject(value: object): boolean {\n const prototype = Object.getPrototypeOf(value)\n return prototype === Object.prototype || prototype === null\n}\n\nexport function getErrorMessage(error: unknown, fallback: string): string {\n if (error instanceof Error && error.message) {\n return error.message\n }\n\n return fallback\n}\n\nexport function isPromiseLike(value: unknown): value is Promise<unknown> {\n if (!value) {\n return false\n }\n\n if (typeof value !== \"object\" && typeof value !== \"function\") {\n return false\n }\n\n return typeof (value as { then?: unknown }).then === \"function\"\n}\n\nexport function snapshotDataValue(\n value: unknown,\n options?: {\n deep?: boolean\n freeze?: boolean\n preserveNonPlainObjects?: boolean\n },\n): unknown {\n const deep = options?.deep === true\n const freeze = options?.freeze === true\n const preserveNonPlainObjects = options?.preserveNonPlainObjects === true\n\n if (Array.isArray(value)) {\n const cloned = deep ? value.map((entry) => snapshotDataValue(entry, options)) : [...value]\n return freeze ? Object.freeze(cloned) : cloned\n }\n\n if (value && typeof value === \"object\") {\n if (preserveNonPlainObjects && !isPlainObject(value)) {\n return value\n }\n\n const cloned: Record<string, unknown> = {}\n for (const [key, entry] of Object.entries(value as Record<string, unknown>)) {\n cloned[key] = deep ? snapshotDataValue(entry, options) : entry\n }\n\n return freeze ? Object.freeze(cloned) : cloned\n }\n\n return value\n}\n",
16
16
  "import { RESERVED_COMMAND_FIELDS } from \"../schema.js\"\nimport type {\n ActiveBinding,\n Attributes,\n Command,\n CommandEntry,\n CommandBindingsQuery,\n CommandFieldCompiler,\n CommandResolutionStatus,\n CommandQuery,\n CommandQueryValue,\n CommandResolver,\n CommandResolverContext,\n BindingState,\n EventData,\n KeymapEvent,\n KeymapHost,\n CommandState,\n RuntimeMatcher,\n} from \"../types.js\"\nimport { normalizeCommandName } from \"./primitives/command-normalization.js\"\nimport { getFocusedTargetIfAvailable, isLayerActiveForFocused } from \"./primitives/active-layers.js\"\nimport { getActiveCommandView as createActiveCommandView, getRegisteredCommandView } from \"./runtime-view.js\"\nimport type { ConditionService } from \"./conditions.js\"\nimport { createFieldCompilerContext } from \"./primitives/field-invariants.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport type { ActiveCommandView, LayerCommandEntry, CommandView, ResolvedCommandEntry, State } from \"./state.js\"\nimport { getErrorMessage } from \"./values.js\"\n\nconst DEFAULT_COMMAND_SEARCH_FIELDS = [\"name\"] as const\n\nconst EMPTY_COMMAND_FIELDS: Readonly<Record<string, unknown>> = Object.freeze({})\nconst commandSearchCache = new WeakMap<CommandState<any, any>, Map<string, string | undefined>>()\n\ninterface NormalizeCommandsOptions<TTarget extends object, TEvent extends KeymapEvent> {\n commands: readonly Command<TTarget, TEvent>[]\n commandFields: ReadonlyMap<string, CommandFieldCompiler>\n conditions: ConditionService<TTarget, TEvent>\n onError(code: string, error: unknown, message: string): void\n}\n\ninterface QueryLayerCommandEntriesOptions<TTarget extends object, TEvent extends KeymapEvent> {\n entries: Iterable<LayerCommandEntry<TTarget, TEvent>>\n query?: CommandQuery<TTarget, TEvent>\n getCommand(command: CommandState<TTarget, TEvent>): Command<TTarget, TEvent>\n onFilterError(error: unknown): void\n}\n\ninterface CommandQueryMatchOptions<TTarget extends object, TEvent extends KeymapEvent> {\n getCommand(command: CommandState<TTarget, TEvent>): Command<TTarget, TEvent>\n onFilterError(error: unknown): void\n}\n\ninterface CommandCatalogOptions {\n onCommandResolversChanged(): void\n}\n\ninterface ResolvedCommandLookup<TTarget extends object, TEvent extends KeymapEvent> {\n resolved?: ResolvedCommandEntry<TTarget, TEvent>\n hadError: boolean\n}\n\ninterface CommandExecutionFields {\n input: string\n payload?: unknown\n}\n\ninterface CommandResolverAttempt<TTarget extends object, TEvent extends KeymapEvent> {\n context: CommandResolverContext<TTarget, TEvent>\n getExecutionFields(): CommandExecutionFields\n}\n\nexport interface CommandCatalogService<TTarget extends object, TEvent extends KeymapEvent> {\n normalizeCommands(commands: readonly Command<TTarget, TEvent>[]): CommandState<TTarget, TEvent>[]\n prependCommandResolver(resolver: CommandResolver<TTarget, TEvent>): () => void\n appendCommandResolver(resolver: CommandResolver<TTarget, TEvent>): () => void\n clearCommandResolvers(): void\n getCommands(query?: CommandQuery<TTarget, TEvent>): readonly Command<TTarget, TEvent>[]\n getCommandEntries(query?: CommandQuery<TTarget, TEvent>): readonly CommandEntry<TTarget, TEvent>[]\n getCommandBindings(\n query: CommandBindingsQuery<TTarget>,\n ): ReadonlyMap<string, readonly ActiveBinding<TTarget, TEvent>[]>\n getResolvedCommandChain(\n command: string,\n focused: TTarget | null,\n execution?: CommandExecutionFields,\n ): { entries?: readonly ResolvedCommandEntry<TTarget, TEvent>[]; hadError: boolean }\n getRegisteredResolvedEntries(command: string): readonly ResolvedCommandEntry<TTarget, TEvent>[] | undefined\n getActiveRegisteredResolvedEntries(\n command: string,\n focused: TTarget | null,\n ): readonly ResolvedCommandEntry<TTarget, TEvent>[] | undefined\n resolveRegisteredResolverFallback(\n command: string,\n execution?: CommandExecutionFields,\n ): ResolvedCommandLookup<TTarget, TEvent>\n resolveActiveResolverFallback(\n command: string,\n focused: TTarget | null,\n execution?: CommandExecutionFields,\n ): ResolvedCommandLookup<TTarget, TEvent>\n getTopCommand(command: string, focused: TTarget | null): Command<TTarget, TEvent> | undefined\n getDispatchUnavailableCommandState(\n command: string,\n focused: TTarget | null,\n includeCommand: boolean,\n ): { reason: \"inactive\" | \"disabled\"; command?: Command<TTarget, TEvent> } | undefined\n getActiveCommandView(focused: TTarget | null): ActiveCommandView<TTarget, TEvent>\n isBindingVisible(\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n activeView: ActiveCommandView<TTarget, TEvent>,\n ): boolean\n getBindingCommandAttrs(\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n activeView: ActiveCommandView<TTarget, TEvent>,\n ): Readonly<Attributes> | undefined\n getCommandResolutionStatus(\n command: string,\n layerCommands?: readonly CommandState<TTarget, TEvent>[],\n ): CommandResolutionStatus\n}\n\nexport function createCommandCatalogService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n host: KeymapHost<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n conditions: ConditionService<TTarget, TEvent>,\n options: CommandCatalogOptions,\n): CommandCatalogService<TTarget, TEvent> {\n let registeredViewVersion = -1\n let registeredView: CommandView<TTarget, TEvent> | undefined\n let activeViewVersion = -1\n let activeViewFocused: TTarget | null | undefined\n let activeView: ActiveCommandView<TTarget, TEvent> | undefined\n let registeredBindingsCacheVersion = -1\n let registeredBindingsCacheCommands: readonly string[] | undefined\n let registeredBindingsCache: ReadonlyMap<string, readonly ActiveBinding<TTarget, TEvent>[]> | undefined\n let registeredBindingsByCommandVersion = -1\n let registeredBindingsByCommand: ReadonlyMap<string, readonly BindingState<TTarget, TEvent>[]> | undefined\n let registeredResolvedCacheVersion = -1\n let registeredResolvedCache = new Map<string, readonly ResolvedCommandEntry<TTarget, TEvent>[] | null>()\n\n const normalizeLayerCommands = (commands: readonly Command<TTarget, TEvent>[]): CommandState<TTarget, TEvent>[] => {\n return normalizeCommands({\n commands,\n commandFields: state.commandFields,\n conditions: conditions,\n onError: (code, error, message) => {\n notify.emitError(code, error, message)\n },\n })\n }\n\n const prependCommandResolver = (resolver: CommandResolver<TTarget, TEvent>): (() => void) => {\n return mutateCommandResolvers(() => state.commandResolvers.prepend(resolver), resolver)\n }\n\n const appendCommandResolver = (resolver: CommandResolver<TTarget, TEvent>): (() => void) => {\n return mutateCommandResolvers(() => state.commandResolvers.append(resolver), resolver)\n }\n\n const clearCommandResolvers = (): void => {\n if (!state.commandResolvers.has()) {\n return\n }\n\n notify.runWithStateChangeBatch(() => {\n state.commandResolvers.clear()\n options.onCommandResolversChanged()\n notify.queueStateChange()\n })\n }\n\n const getCommands = (query?: CommandQuery<TTarget, TEvent>): readonly Command<TTarget, TEvent>[] => {\n return getFilteredCommandEntries(query).map((entry) => getCommand(entry.commandState))\n }\n\n const getCommandEntries = (query?: CommandQuery<TTarget, TEvent>): readonly CommandEntry<TTarget, TEvent>[] => {\n const context = getCommandQueryContext(query)\n const filteredEntries = getFilteredCommandEntries(query, context)\n if (filteredEntries.length === 0) {\n return []\n }\n\n const grouped = filteredEntries.map((entry) => ({\n entry,\n command: getCommand(entry.commandState),\n commandAttrs: entry.commandState.attrs,\n bindings: [] as ActiveBinding<TTarget, TEvent>[],\n }))\n const indexesByName = new Map<string, number[]>()\n\n for (const [index, item] of grouped.entries()) {\n const existing = indexesByName.get(item.command.name)\n if (existing) {\n existing.push(index)\n } else {\n indexesByName.set(item.command.name, [index])\n }\n }\n\n if (indexesByName.size > 0) {\n collectCommandEntryBindings(grouped, indexesByName, context)\n }\n\n return grouped.map((item) => ({\n command: item.command,\n bindings: item.bindings,\n }))\n }\n\n const getCommandBindings = (\n query: CommandBindingsQuery<TTarget>,\n ): ReadonlyMap<string, readonly ActiveBinding<TTarget, TEvent>[]> => {\n if (\n query.visibility === \"registered\" &&\n registeredBindingsCacheVersion === state.derivedVersion &&\n registeredBindingsCacheCommands === query.commands &&\n registeredBindingsCache\n ) {\n return registeredBindingsCache\n }\n\n const bindingsByCommand = new Map<string, ActiveBinding<TTarget, TEvent>[]>()\n for (const command of query.commands) {\n if (!bindingsByCommand.has(command)) {\n bindingsByCommand.set(command, [])\n }\n }\n\n if (bindingsByCommand.size === 0) {\n return bindingsByCommand\n }\n\n collectCommandBindings(bindingsByCommand, getCommandQueryContext(query))\n if (query.visibility === \"registered\") {\n registeredBindingsCacheVersion = state.derivedVersion\n registeredBindingsCacheCommands = query.commands\n registeredBindingsCache = bindingsByCommand\n }\n\n return bindingsByCommand\n }\n\n const getResolvedCommandChain = (\n command: string,\n focused: TTarget | null,\n execution?: CommandExecutionFields,\n ): { entries?: readonly ResolvedCommandEntry<TTarget, TEvent>[]; hadError: boolean } => {\n const view = getActiveCommandView(focused)\n if (execution) {\n const resolved: ResolvedCommandEntry<TTarget, TEvent>[] = []\n const chain = view.chainsByName.get(command)\n if (chain) {\n for (const entry of chain) {\n resolved.push({\n target: entry.layer.target,\n command: entry.commandState.command,\n attrs: entry.commandState.attrs,\n payload: execution.payload,\n })\n }\n }\n\n const fallback = resolveCommandWithResolversForMode(command, focused, { mode: \"active\", execution })\n if (fallback.resolved) {\n resolved.push(fallback.resolved)\n }\n\n return { entries: resolved.length > 0 ? resolved : undefined, hadError: fallback.hadError }\n }\n\n const resolved: ResolvedCommandEntry<TTarget, TEvent>[] = []\n for (const entry of view.chainsByName.get(command) ?? []) {\n resolved.push({\n target: entry.layer.target,\n command: entry.commandState.command,\n attrs: entry.commandState.attrs,\n })\n }\n\n const fallback = resolveCommandWithResolversForMode(command, focused, { mode: \"active\" })\n if (fallback.resolved) {\n resolved.push(fallback.resolved)\n }\n\n return { entries: resolved.length > 0 ? resolved : undefined, hadError: fallback.hadError }\n }\n\n const getRegisteredResolvedEntries = (\n command: string,\n ): readonly ResolvedCommandEntry<TTarget, TEvent>[] | undefined => {\n if (registeredResolvedCacheVersion !== state.derivedVersion) {\n registeredResolvedCacheVersion = state.derivedVersion\n registeredResolvedCache = new Map<string, readonly ResolvedCommandEntry<TTarget, TEvent>[] | null>()\n }\n\n if (registeredResolvedCache.has(command)) {\n return registeredResolvedCache.get(command) ?? undefined\n }\n\n const resolved = resolveRegisteredEntries(getRegisteredCommandChain(command))\n registeredResolvedCache.set(command, resolved ?? null)\n return resolved\n }\n\n const getActiveRegisteredResolvedEntries = (\n command: string,\n focused: TTarget | null,\n ): readonly ResolvedCommandEntry<TTarget, TEvent>[] | undefined => {\n return resolveRegisteredEntries(getActiveCommandView(focused).chainsByName.get(command))\n }\n\n const resolveRegisteredResolverFallback = (\n command: string,\n execution?: CommandExecutionFields,\n ): ResolvedCommandLookup<TTarget, TEvent> => {\n return resolveCommandWithResolversForMode(command, null, { mode: \"registered\", execution })\n }\n\n const resolveActiveResolverFallback = (\n command: string,\n focused: TTarget | null,\n execution?: CommandExecutionFields,\n ): ResolvedCommandLookup<TTarget, TEvent> => {\n return resolveCommandWithResolversForMode(command, focused, { mode: \"active\", execution })\n }\n\n const getTopCommand = (command: string, focused: TTarget | null): Command<TTarget, TEvent> | undefined => {\n const top = getTopResolvedCommand(command, focused)\n return top?.command\n }\n\n const getCommandByName = (command: string): Command<TTarget, TEvent> | undefined => {\n const top = getCommandEntry(command)\n return top?.commandState.command\n }\n\n const getDispatchUnavailableCommandState = (\n command: string,\n focused: TTarget | null,\n includeCommand: boolean,\n ): { reason: \"inactive\" | \"disabled\"; command?: Command<TTarget, TEvent> } | undefined => {\n const view = getCommandView()\n const chain = view.chainsByName.get(command)\n if (!chain || chain.length === 0) {\n return undefined\n }\n\n let inactiveEntry: LayerCommandEntry<TTarget, TEvent> | undefined\n let disabledEntry: LayerCommandEntry<TTarget, TEvent> | undefined\n\n for (const entry of chain) {\n if (!isLayerActiveForFocused(host, entry.layer, focused)) {\n inactiveEntry ??= entry\n continue\n }\n\n if (!conditions.matchesConditions(entry.layer) || !conditions.matchesConditions(entry.commandState)) {\n disabledEntry ??= entry\n }\n }\n\n const unavailableEntry = disabledEntry ?? inactiveEntry\n if (!unavailableEntry) {\n return undefined\n }\n\n return {\n reason: disabledEntry ? \"disabled\" : \"inactive\",\n command: includeCommand ? unavailableEntry.commandState.command : undefined,\n }\n }\n\n const getActiveCommandView = (focused: TTarget | null): ActiveCommandView<TTarget, TEvent> => {\n if (activeViewVersion === state.derivedVersion && activeViewFocused === focused && activeView) {\n return activeView\n }\n\n const view = createActiveCommandView(state, host, conditions, focused)\n if (activeCommandViewCanCache()) {\n activeViewVersion = state.derivedVersion\n activeViewFocused = focused\n activeView = view\n }\n\n return view\n }\n\n const getCommandView = (): CommandView<TTarget, TEvent> => {\n if (registeredViewVersion === state.derivedVersion && registeredView) {\n return registeredView\n }\n\n registeredViewVersion = state.derivedVersion\n registeredView = getRegisteredCommandView(state)\n return registeredView\n }\n\n const activeCommandViewCanCache = (): boolean => {\n return state.activeCommandViewCacheBlockers === 0\n }\n\n const isBindingVisible = (\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n activeView: ActiveCommandView<TTarget, TEvent>,\n ): boolean => {\n if (binding.command === undefined || binding.run) {\n return true\n }\n\n if (typeof binding.command !== \"string\") {\n return false\n }\n\n if (activeView.reachableByName.has(binding.command)) {\n return true\n }\n\n return getFallbackResolvedCommand(binding.command, focused, \"active\") !== undefined\n }\n\n const getBindingCommandAttrs = (\n binding: BindingState<TTarget, TEvent>,\n focused: TTarget | null,\n activeView: ActiveCommandView<TTarget, TEvent>,\n ): Readonly<Attributes> | undefined => {\n if (typeof binding.command !== \"string\") {\n return undefined\n }\n\n const active = activeView.reachableByName.get(binding.command)\n if (active) {\n return active.commandState.attrs\n }\n\n const fallback = getFallbackResolvedCommand(binding.command, focused, \"active\")\n return fallback?.attrs\n }\n\n const getCommandResolutionStatus = (\n command: string,\n layerCommands?: readonly CommandState<TTarget, TEvent>[],\n ): CommandResolutionStatus => {\n if (layerCommands?.some((state) => state.command.name === command) || getCommandView().chainsByName.has(command)) {\n return \"resolved\"\n }\n\n const lookup = resolveCommandWithResolversForMode(command, getFocusedTargetIfAvailable(host))\n if (lookup.resolved || lookup.hadError) {\n return lookup.resolved ? \"resolved\" : \"error\"\n }\n\n return \"unresolved\"\n }\n\n const mutateCommandResolvers = (\n register: () => () => void,\n resolver: CommandResolver<TTarget, TEvent>,\n ): (() => void) => {\n return notify.runWithStateChangeBatch(() => {\n const off = register()\n options.onCommandResolversChanged()\n notify.queueStateChange()\n\n return () => {\n notify.runWithStateChangeBatch(() => {\n off()\n if (state.commandResolvers.values().includes(resolver)) {\n return\n }\n\n options.onCommandResolversChanged()\n notify.queueStateChange()\n })\n }\n })\n }\n\n const getTopResolvedCommand = (\n command: string,\n focused: TTarget | null,\n ): ResolvedCommandEntry<TTarget, TEvent> | undefined => {\n const activeView = getActiveCommandView(focused)\n const active = activeView.reachableByName.get(command)\n if (active) {\n return {\n target: active.layer.target,\n command: active.commandState.command,\n attrs: active.commandState.attrs,\n }\n }\n\n return getFallbackResolvedCommand(command, focused, \"active\")\n }\n\n const getCommandEntry = (command: string): LayerCommandEntry<TTarget, TEvent> | undefined => {\n return getRegisteredCommandChain(command)?.[0]\n }\n\n const getRegisteredCommandChain = (command: string): readonly LayerCommandEntry<TTarget, TEvent>[] | undefined => {\n const entries: LayerCommandEntry<TTarget, TEvent>[] = []\n for (const layer of state.sortedLayers) {\n for (const commandState of layer.commands) {\n if (commandState.command.name === command) {\n entries.push({ layer, commandState })\n }\n }\n }\n\n return entries.length > 0 ? entries : undefined\n }\n\n const resolveRegisteredEntries = (\n chain: readonly LayerCommandEntry<TTarget, TEvent>[] | undefined,\n ): readonly ResolvedCommandEntry<TTarget, TEvent>[] | undefined => {\n if (!chain?.length) {\n return undefined\n }\n\n return chain.map((entry) => ({\n target: entry.layer.target,\n command: entry.commandState.command,\n attrs: entry.commandState.attrs,\n }))\n }\n\n const getFallbackResolvedCommand = (\n command: string,\n focused: TTarget | null,\n mode: \"active\" | \"registered\",\n ): ResolvedCommandEntry<TTarget, TEvent> | undefined => {\n const lookup = resolveCommandWithResolversForMode(command, focused, { mode })\n return lookup.resolved\n }\n\n const getRegisteredLayerCommandEntries = (): readonly LayerCommandEntry<TTarget, TEvent>[] => {\n return getCommandView().entries\n }\n\n const getRegisteredBindingsByCommand = (): ReadonlyMap<string, readonly BindingState<TTarget, TEvent>[]> => {\n if (registeredBindingsByCommandVersion === state.derivedVersion && registeredBindingsByCommand) {\n return registeredBindingsByCommand\n }\n\n const bindingsByCommand = new Map<string, BindingState<TTarget, TEvent>[]>()\n for (const layer of state.layers) {\n for (const binding of layer.bindings) {\n if (typeof binding.command !== \"string\") {\n continue\n }\n\n const bindings = bindingsByCommand.get(binding.command)\n if (bindings) {\n bindings.push(binding)\n } else {\n bindingsByCommand.set(binding.command, [binding])\n }\n }\n }\n\n registeredBindingsByCommandVersion = state.derivedVersion\n registeredBindingsByCommand = bindingsByCommand\n return bindingsByCommand\n }\n\n const getCommandQueryContext = (\n query?: CommandQuery<TTarget, TEvent>,\n ): {\n visibility: \"reachable\" | \"active\" | \"registered\"\n focused: TTarget | null\n activeView?: ActiveCommandView<TTarget, TEvent>\n } => {\n const visibility = query?.visibility ?? \"reachable\"\n const focused =\n query && Object.prototype.hasOwnProperty.call(query, \"focused\")\n ? (query.focused ?? null)\n : getFocusedTargetIfAvailable(host)\n\n if (visibility === \"registered\") {\n return { visibility, focused }\n }\n\n return {\n visibility,\n focused,\n activeView: getActiveCommandView(focused),\n }\n }\n\n const getFilteredCommandEntries = (\n query?: CommandQuery<TTarget, TEvent>,\n context: {\n visibility: \"reachable\" | \"active\" | \"registered\"\n focused: TTarget | null\n activeView?: ActiveCommandView<TTarget, TEvent>\n } = getCommandQueryContext(query),\n ): LayerCommandEntry<TTarget, TEvent>[] => {\n let entries: readonly LayerCommandEntry<TTarget, TEvent>[]\n if (context.visibility === \"registered\") {\n entries = getRegisteredLayerCommandEntries()\n } else if (context.visibility === \"active\") {\n entries = context.activeView?.entries ?? []\n } else {\n entries = context.activeView?.reachable ?? []\n }\n\n return queryLayerCommandEntries({\n entries,\n query,\n getCommand: (command) => getCommand(command),\n onFilterError: (error) => {\n notify.emitError(\"command-query-filter-error\", error, \"[Keymap] Error in command query filter:\")\n },\n })\n }\n\n const collectCommandEntryBindings = (\n grouped: Array<{\n entry: LayerCommandEntry<TTarget, TEvent>\n command: Command<TTarget, TEvent>\n commandAttrs: Readonly<Attributes> | undefined\n bindings: ActiveBinding<TTarget, TEvent>[]\n }>,\n indexesByName: ReadonlyMap<string, readonly number[]>,\n context: {\n visibility: \"reachable\" | \"active\" | \"registered\"\n focused: TTarget | null\n activeView?: ActiveCommandView<TTarget, TEvent>\n },\n ): void => {\n visitCommandQueryBindings(context, (binding) => {\n collectBindingForCommandEntries(grouped, indexesByName, binding)\n })\n }\n\n const collectCommandBindings = (\n bindingsByCommand: Map<string, ActiveBinding<TTarget, TEvent>[]>,\n context: {\n visibility: \"reachable\" | \"active\" | \"registered\"\n focused: TTarget | null\n activeView?: ActiveCommandView<TTarget, TEvent>\n },\n ): void => {\n if (context.visibility === \"registered\") {\n const registeredBindings = getRegisteredBindingsByCommand()\n for (const [command, bindings] of bindingsByCommand) {\n const commandAttrs = getCommandView().chainsByName.get(command)?.[0]?.commandState.attrs\n for (const binding of registeredBindings.get(command) ?? []) {\n bindings.push(createActiveBinding(binding, commandAttrs))\n }\n }\n return\n }\n\n visitCommandQueryBindings(context, (binding) => {\n collectBindingForCommandBindings(bindingsByCommand, binding, context)\n })\n }\n\n const visitCommandQueryBindings = (\n context: {\n visibility: \"reachable\" | \"active\" | \"registered\"\n focused: TTarget | null\n activeView?: ActiveCommandView<TTarget, TEvent>\n },\n visit: (binding: BindingState<TTarget, TEvent>) => void,\n ): void => {\n if (context.visibility === \"registered\") {\n for (const layer of state.layers) {\n for (const binding of layer.bindings) visit(binding)\n }\n return\n }\n\n const activeView = context.activeView\n if (!activeView) {\n return\n }\n\n for (const layer of activeView.layers) {\n if (layer.bindings.length === 0 || !conditions.matchesConditions(layer)) {\n continue\n }\n\n for (const binding of layer.bindings) {\n if (conditions.matchesConditions(binding) && isBindingVisible(binding, context.focused, activeView)) {\n visit(binding)\n }\n }\n }\n }\n\n const collectBindingForCommandEntries = (\n grouped: Array<{\n entry: LayerCommandEntry<TTarget, TEvent>\n command: Command<TTarget, TEvent>\n commandAttrs: Readonly<Attributes> | undefined\n bindings: ActiveBinding<TTarget, TEvent>[]\n }>,\n indexesByName: ReadonlyMap<string, readonly number[]>,\n binding: BindingState<TTarget, TEvent>,\n ): void => {\n if (typeof binding.command !== \"string\") {\n return\n }\n\n const indexes = indexesByName.get(binding.command)\n if (!indexes || indexes.length === 0) {\n return\n }\n\n for (const index of indexes) {\n const item = grouped[index]\n if (!item) {\n continue\n }\n\n item.bindings.push(createActiveBinding(binding, item.commandAttrs))\n }\n }\n\n const collectBindingForCommandBindings = (\n bindingsByCommand: Map<string, ActiveBinding<TTarget, TEvent>[]>,\n binding: BindingState<TTarget, TEvent>,\n context: {\n visibility: \"reachable\" | \"active\" | \"registered\"\n focused: TTarget | null\n activeView?: ActiveCommandView<TTarget, TEvent>\n },\n ): void => {\n if (typeof binding.command !== \"string\") {\n return\n }\n\n const bindings = bindingsByCommand.get(binding.command)\n if (!bindings) {\n return\n }\n\n bindings.push(createActiveBinding(binding, getCommandBindingAttrsForQuery(binding, context)))\n }\n\n const createActiveBinding = (\n binding: BindingState<TTarget, TEvent>,\n commandAttrs: Readonly<Attributes> | undefined,\n ): ActiveBinding<TTarget, TEvent> => {\n return {\n sequence: binding.sequence,\n command: binding.command,\n commandAttrs,\n attrs: binding.attrs,\n event: binding.event,\n preventDefault: binding.preventDefault,\n fallthrough: binding.fallthrough,\n }\n }\n\n const getCommandBindingAttrsForQuery = (\n binding: BindingState<TTarget, TEvent>,\n context: {\n visibility: \"reachable\" | \"active\" | \"registered\"\n focused: TTarget | null\n activeView?: ActiveCommandView<TTarget, TEvent>\n },\n ): Readonly<Attributes> | undefined => {\n if (typeof binding.command !== \"string\") {\n return undefined\n }\n\n if (context.visibility === \"registered\") {\n return getCommandView().chainsByName.get(binding.command)?.[0]?.commandState.attrs\n }\n\n const activeView = context.activeView\n if (!activeView) {\n return undefined\n }\n\n return getBindingCommandAttrs(binding, context.focused, activeView)\n }\n\n const resolveCommandWithResolversForMode = (\n command: string,\n focused: TTarget | null,\n options?: { mode?: \"active\" | \"registered\"; execution?: CommandExecutionFields },\n ): ResolvedCommandLookup<TTarget, TEvent> => {\n const mode = options?.mode ?? \"active\"\n const execution = options?.execution ?? { input: command }\n\n const lookup = resolveCommandWithResolvers(\n command,\n state.commandResolvers.values(),\n () => createCommandResolverContext(focused, mode, execution),\n (error) => {\n notify.emitError(\"command-resolver-error\", error, `[Keymap] Error in command resolver for \"${command}\":`)\n },\n )\n let resolved = lookup.resolved\n if (resolved) {\n const entry = getCommandEntryForMode(resolved.command.name, focused, mode)\n if (entry?.commandState.command === resolved.command && resolved.target === undefined) {\n resolved = { ...resolved, target: entry.layer.target }\n lookup.resolved = resolved\n }\n }\n\n if (resolved && !resolved.attrs) {\n const attrs =\n getCommandStateAttrs(resolved.command.name, focused, mode) ?? getResolverCommandAttrs(resolved.command)\n if (attrs) {\n lookup.resolved = { ...resolved, attrs }\n }\n }\n\n return lookup\n }\n\n const getCommandStateAttrs = (\n command: string,\n focused: TTarget | null,\n mode: \"active\" | \"registered\",\n ): Readonly<Attributes> | undefined => {\n if (mode === \"registered\") {\n return getCommandEntry(command)?.commandState.attrs\n }\n\n return getActiveCommandView(focused).reachableByName.get(command)?.commandState.attrs\n }\n\n const getCommandEntryForMode = (\n command: string,\n focused: TTarget | null,\n mode: \"active\" | \"registered\",\n ): LayerCommandEntry<TTarget, TEvent> | undefined => {\n if (mode === \"registered\") {\n return getCommandEntry(command)\n }\n\n return getActiveCommandView(focused).reachableByName.get(command)\n }\n\n const createCommandResolverContext = (\n focused: TTarget | null,\n mode: \"active\" | \"registered\",\n execution: CommandExecutionFields,\n ): CommandResolverAttempt<TTarget, TEvent> => {\n let input = execution.input\n let payload = execution.payload\n\n return {\n context: {\n get input() {\n return input\n },\n get payload() {\n return payload\n },\n setInput(nextInput) {\n input = nextInput\n },\n setPayload(nextPayload) {\n payload = nextPayload\n },\n getCommand: (name: string) => {\n if (mode === \"registered\") {\n return getCommandByName(name)\n }\n\n return getTopCommand(name, focused)\n },\n },\n getExecutionFields() {\n return { input, payload }\n },\n }\n }\n\n return {\n normalizeCommands: normalizeLayerCommands,\n prependCommandResolver,\n appendCommandResolver,\n clearCommandResolvers,\n getCommands,\n getCommandEntries,\n getCommandBindings,\n getResolvedCommandChain,\n getRegisteredResolvedEntries,\n getActiveRegisteredResolvedEntries,\n resolveRegisteredResolverFallback,\n resolveActiveResolverFallback,\n getTopCommand,\n getDispatchUnavailableCommandState,\n getActiveCommandView,\n isBindingVisible,\n getBindingCommandAttrs,\n getCommandResolutionStatus,\n }\n}\n\nexport function getCommand<TTarget extends object, TEvent extends KeymapEvent>(\n state: CommandState<TTarget, TEvent>,\n): Command<TTarget, TEvent> {\n return state.command\n}\n\nfunction normalizeCommands<TTarget extends object, TEvent extends KeymapEvent>(\n options: NormalizeCommandsOptions<TTarget, TEvent>,\n): CommandState<TTarget, TEvent>[] {\n const normalizedCommands: CommandState<TTarget, TEvent>[] = []\n const seen = new Set<string>()\n\n for (const command of options.commands) {\n try {\n const mergedRequires: EventData = {}\n const matchers: RuntimeMatcher[] = []\n const normalizedName = normalizeCommandName(command.name)\n const fields = getCommandFields(command)\n const attrs: Attributes = {}\n\n if (seen.has(normalizedName)) {\n options.onError(\n \"duplicate-command\",\n { command: normalizedName },\n `Duplicate keymap command \"${normalizedName}\" in the same layer`,\n )\n continue\n }\n\n command.name = normalizedName\n\n for (const [fieldName, value] of Object.entries(fields)) {\n if (value === undefined) {\n continue\n }\n\n const compiler = options.commandFields.get(fieldName)\n if (!compiler) {\n continue\n }\n\n compiler(\n value,\n createFieldCompilerContext({\n fieldName,\n conditions: options.conditions,\n requirements: mergedRequires,\n matchers,\n attrs,\n }),\n )\n }\n\n const commandState: CommandState<TTarget, TEvent> = {\n command,\n fields,\n attrs: Object.keys(attrs).length === 0 ? undefined : attrs,\n requires: Object.entries(mergedRequires),\n matchers,\n }\n\n seen.add(commandState.command.name)\n normalizedCommands.push(commandState)\n } catch (error) {\n options.onError(\n \"register-command-failed\",\n error,\n getErrorMessage(error, `Failed to register keymap command \"${String(command.name)}\"`),\n )\n continue\n }\n }\n\n return normalizedCommands\n}\n\nfunction resolveCommandWithResolvers<TTarget extends object, TEvent extends KeymapEvent>(\n command: string,\n resolvers: readonly CommandResolver<TTarget, TEvent>[],\n createContext: () => CommandResolverAttempt<TTarget, TEvent>,\n onResolverError: (error: unknown) => void,\n): ResolvedCommandLookup<TTarget, TEvent> {\n if (resolvers.length === 0) {\n return { hadError: false }\n }\n\n let hadError = false\n\n for (const resolver of resolvers) {\n let resolvedCommand: Command<TTarget, TEvent> | undefined\n const attempt = createContext()\n\n try {\n resolvedCommand = resolver(command, attempt.context)\n } catch (error) {\n hadError = true\n onResolverError(error)\n continue\n }\n\n if (resolvedCommand) {\n return { hadError, resolved: getResolverCommandEntry(resolvedCommand, attempt.getExecutionFields()) }\n }\n }\n\n return { hadError }\n}\n\nfunction isCommandMetadataRecord(value: unknown): value is Readonly<Record<string, unknown>> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction getCommandFields<TTarget extends object, TEvent extends KeymapEvent>(\n command: Command<TTarget, TEvent>,\n): Readonly<Record<string, unknown>> {\n const fields: Record<string, unknown> = {}\n for (const [name, value] of Object.entries(command)) {\n if (!RESERVED_COMMAND_FIELDS.has(name) && value !== undefined) {\n fields[name] = value\n }\n }\n\n return Object.keys(fields).length === 0 ? EMPTY_COMMAND_FIELDS : fields\n}\n\nfunction getResolverCommandEntry<TTarget extends object, TEvent extends KeymapEvent>(\n command: Command<TTarget, TEvent>,\n execution: CommandExecutionFields,\n): ResolvedCommandEntry<TTarget, TEvent> {\n return {\n command,\n input: execution.input,\n payload: execution.payload,\n }\n}\n\nfunction getResolverCommandAttrs<TTarget extends object, TEvent extends KeymapEvent>(\n command: Command<TTarget, TEvent>,\n): Readonly<Attributes> | undefined {\n const fields = getCommandFields(command)\n return fields === EMPTY_COMMAND_FIELDS ? undefined : fields\n}\n\nfunction queryLayerCommandEntries<TTarget extends object, TEvent extends KeymapEvent>(\n options: QueryLayerCommandEntriesOptions<TTarget, TEvent>,\n): LayerCommandEntry<TTarget, TEvent>[] {\n const namespace = options.query?.namespace\n const limit = normalizeQueryLimit(options.query?.limit)\n if (limit === 0) {\n return []\n }\n\n const normalizedSearch = options.query?.search?.trim().toLowerCase() ?? \"\"\n let searchKeys = DEFAULT_COMMAND_SEARCH_FIELDS as readonly string[]\n if (options.query?.searchIn && options.query.searchIn.length > 0) {\n searchKeys = options.query.searchIn\n }\n\n const filter = options.query?.filter\n let filterEntries: readonly [string, CommandQueryValue<TTarget, TEvent>][] | undefined\n let filterPredicate: ((command: Command<TTarget, TEvent>) => boolean) | undefined\n let exactNameFilter: ReadonlySet<string> | undefined\n\n if (typeof filter === \"function\") {\n filterPredicate = filter\n } else if (filter) {\n const entries = Object.entries(filter)\n const remainingEntries: [string, CommandQueryValue<TTarget, TEvent>][] = []\n for (const [key, matcher] of entries) {\n if (key === \"name\") {\n if (typeof matcher === \"string\") {\n exactNameFilter = new Set([matcher])\n continue\n }\n\n if (Array.isArray(matcher)) {\n const names = new Set<string>()\n for (const value of matcher) {\n if (typeof value === \"string\") {\n names.add(value)\n }\n }\n exactNameFilter = names\n continue\n }\n }\n\n remainingEntries.push([key, matcher])\n }\n filterEntries = remainingEntries.length > 0 ? remainingEntries : undefined\n }\n\n const results: LayerCommandEntry<TTarget, TEvent>[] = []\n for (const entry of options.entries) {\n const commandState = entry.commandState\n\n if (!commandMatchesNamespace(commandState, namespace)) {\n continue\n }\n\n if (!commandMatchesSearch(commandState, normalizedSearch, searchKeys)) {\n continue\n }\n\n if (exactNameFilter && !exactNameFilter.has(commandState.command.name)) {\n continue\n }\n\n if (!commandMatchesFilters(commandState, filterEntries, options)) {\n continue\n }\n\n if (filterPredicate) {\n let matches = false\n\n try {\n matches = filterPredicate(options.getCommand(commandState))\n } catch (error) {\n options.onFilterError(error)\n continue\n }\n\n if (!matches) {\n continue\n }\n }\n\n results.push(entry)\n if (limit !== undefined && results.length >= limit) {\n break\n }\n }\n\n return results\n}\n\nfunction normalizeQueryLimit(value: unknown): number | undefined {\n if (value === undefined) {\n return undefined\n }\n\n const limit = Math.floor(Number(value))\n if (!Number.isFinite(limit) || limit <= 0) {\n return 0\n }\n\n return limit\n}\n\nfunction commandMatchesSearch<TTarget extends object, TEvent extends KeymapEvent>(\n commandState: CommandState<TTarget, TEvent>,\n search: string,\n searchKeys: readonly string[],\n): boolean {\n if (!search) {\n return true\n }\n\n for (const key of searchKeys) {\n if (commandKeyMatchesSearch(commandState, key, search)) {\n return true\n }\n }\n\n return false\n}\n\nfunction commandMatchesNamespace<TTarget extends object, TEvent extends KeymapEvent>(\n commandState: CommandState<TTarget, TEvent>,\n namespace: string | readonly string[] | undefined,\n): boolean {\n if (namespace === undefined) {\n return true\n }\n\n const fields = commandState.fields\n if (!Object.prototype.hasOwnProperty.call(fields, \"namespace\")) {\n return false\n }\n\n return valueMatchesFilter(fields.namespace, namespace)\n}\n\nfunction commandMatchesFilters<TTarget extends object, TEvent extends KeymapEvent>(\n commandState: CommandState<TTarget, TEvent>,\n filters: readonly [string, CommandQueryValue<TTarget, TEvent>][] | undefined,\n options: CommandQueryMatchOptions<TTarget, TEvent>,\n): boolean {\n if (!filters) {\n return true\n }\n\n for (const [key, matcher] of filters) {\n if (!commandKeyMatchesQuery(commandState, key, matcher, options)) {\n return false\n }\n }\n\n return true\n}\n\nfunction commandKeyMatchesSearch<TTarget extends object, TEvent extends KeymapEvent>(\n commandState: CommandState<TTarget, TEvent>,\n key: string,\n search: string,\n): boolean {\n return getCommandSearchText(commandState, key)?.includes(search) === true\n}\n\nfunction getCommandSearchText<TTarget extends object, TEvent extends KeymapEvent>(\n commandState: CommandState<TTarget, TEvent>,\n key: string,\n): string | undefined {\n let cache = commandSearchCache.get(commandState)\n if (!cache) {\n cache = new Map<string, string | undefined>()\n commandSearchCache.set(commandState, cache)\n }\n\n if (cache.has(key)) {\n return cache.get(key)\n }\n\n const fields = commandState.fields\n const attrs = commandState.attrs\n let value: unknown\n if (key === \"name\") {\n value = commandState.command.name\n } else if (Object.prototype.hasOwnProperty.call(fields, key)) {\n value = fields[key]\n } else if (attrs && Object.prototype.hasOwnProperty.call(attrs, key)) {\n value = attrs[key]\n }\n\n const text = toSearchText(value)\n cache.set(key, text)\n return text\n}\n\nfunction toSearchText(value: unknown): string | undefined {\n if (Array.isArray(value)) {\n const parts: string[] = []\n for (const entry of value) {\n const text = toSearchText(entry)\n if (text !== undefined) {\n parts.push(text)\n }\n }\n\n return parts.length > 0 ? parts.join(\"\\0\") : undefined\n }\n\n if (typeof value === \"string\") {\n return value.toLowerCase()\n }\n\n if (typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\") {\n return String(value).toLowerCase()\n }\n\n return undefined\n}\n\nfunction runCommandQueryPredicate<TTarget extends object, TEvent extends KeymapEvent>(\n matcher: (value: unknown, command: Command<TTarget, TEvent>) => boolean,\n value: unknown,\n command: Command<TTarget, TEvent>,\n onFilterError: (error: unknown) => void,\n): boolean {\n try {\n return matcher(value, command)\n } catch (error) {\n onFilterError(error)\n return false\n }\n}\n\nfunction commandKeyMatchesQuery<TTarget extends object, TEvent extends KeymapEvent>(\n commandState: CommandState<TTarget, TEvent>,\n key: string,\n matcher: CommandQueryValue<TTarget, TEvent>,\n options: CommandQueryMatchOptions<TTarget, TEvent>,\n): boolean {\n if (typeof matcher === \"function\") {\n return commandKeyMatchesPredicate(\n commandState,\n key,\n matcher as (value: unknown, command: Command<TTarget, TEvent>) => boolean,\n options,\n )\n }\n\n return commandKeyMatchesExact(commandState, key, matcher)\n}\n\nfunction commandKeyMatchesPredicate<TTarget extends object, TEvent extends KeymapEvent>(\n commandState: CommandState<TTarget, TEvent>,\n key: string,\n matcher: (value: unknown, command: Command<TTarget, TEvent>) => boolean,\n options: CommandQueryMatchOptions<TTarget, TEvent>,\n): boolean {\n const command = commandState.command\n const fields = commandState.fields\n const attrs = commandState.attrs\n let commandView: Command<TTarget, TEvent> | undefined\n let foundValue = false\n const getCommandView = () => (commandView ??= options.getCommand(commandState))\n\n if (key === \"name\") {\n foundValue = true\n if (runCommandQueryPredicate(matcher, command.name, getCommandView(), options.onFilterError)) {\n return true\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(fields, key)) {\n foundValue = true\n if (runCommandQueryPredicate(matcher, fields[key], getCommandView(), options.onFilterError)) {\n return true\n }\n }\n\n if (attrs && Object.prototype.hasOwnProperty.call(attrs, key)) {\n foundValue = true\n if (runCommandQueryPredicate(matcher, attrs[key], getCommandView(), options.onFilterError)) {\n return true\n }\n }\n\n return !foundValue && runCommandQueryPredicate(matcher, undefined, getCommandView(), options.onFilterError)\n}\n\nfunction commandKeyMatchesExact<TTarget extends object, TEvent extends KeymapEvent>(\n commandState: CommandState<TTarget, TEvent>,\n key: string,\n matcher: unknown | readonly unknown[],\n): boolean {\n const command = commandState.command\n const fields = commandState.fields\n const attrs = commandState.attrs\n\n if (key === \"name\" && valueMatchesFilter(command.name, matcher)) {\n return true\n }\n\n if (Object.prototype.hasOwnProperty.call(fields, key) && valueMatchesFilter(fields[key], matcher)) {\n return true\n }\n\n return !!attrs && Object.prototype.hasOwnProperty.call(attrs, key) && valueMatchesFilter(attrs[key], matcher)\n}\n\nfunction valueMatchesFilter(value: unknown, matcher: unknown | readonly unknown[]): boolean {\n if (Array.isArray(matcher)) {\n return matcher.some((expected) => valueMatchesExact(value, expected))\n }\n\n return valueMatchesExact(value, matcher)\n}\n\nfunction valueMatchesExact(value: unknown, expected: unknown): boolean {\n if (Array.isArray(value)) {\n return value.some((entry) => valueMatchesExact(entry, expected))\n }\n\n return Object.is(value, expected)\n}\n",
17
17
  "import type { Keymap } from \"../keymap.js\"\nimport type {\n BindingCommand,\n Command,\n CommandContext,\n CommandHandler,\n CommandResult,\n BindingState,\n KeymapEvent,\n RegisteredLayer,\n RunCommandOptions,\n RunCommandResult,\n} from \"../types.js\"\nimport { normalizeBindingCommand } from \"./primitives/command-normalization.js\"\nimport type { CommandCatalogService } from \"./command-catalog.js\"\nimport type { ActivationService } from \"./activation.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport type { RuntimeService } from \"./runtime.js\"\nimport { isPromiseLike } from \"./values.js\"\n\ninterface CommandExecutionResult<TTarget extends object, TEvent extends KeymapEvent> {\n status: \"handled\" | \"rejected\" | \"error\"\n result: RunCommandResult<TTarget, TEvent>\n}\n\ninterface CommandExecutorOptions<TTarget extends object, TEvent extends KeymapEvent> {\n keymap: Keymap<TTarget, TEvent>\n createCommandEvent: () => TEvent\n}\n\nexport interface CommandExecutorService<TTarget extends object, TEvent extends KeymapEvent> {\n runCommand(cmd: string, options?: RunCommandOptions<TTarget, TEvent>): RunCommandResult<TTarget, TEvent>\n dispatchCommand(cmd: string, options?: RunCommandOptions<TTarget, TEvent>): RunCommandResult<TTarget, TEvent>\n runBinding(\n bindingLayer: RegisteredLayer<TTarget, TEvent>,\n binding: BindingState<TTarget, TEvent>,\n event: TEvent,\n focused: TTarget | null,\n payload?: unknown,\n ): boolean\n}\n\nexport function createCommandExecutorService<TTarget extends object, TEvent extends KeymapEvent>(\n notify: NotificationService<TTarget, TEvent>,\n runtime: RuntimeService<TTarget, TEvent>,\n activation: ActivationService<TTarget, TEvent>,\n catalog: CommandCatalogService<TTarget, TEvent>,\n options: CommandExecutorOptions<TTarget, TEvent>,\n): CommandExecutorService<TTarget, TEvent> {\n const createCommandContext = (\n event: TEvent,\n focused: TTarget | null,\n target: TTarget | null,\n data: Readonly<Record<string, unknown>>,\n input: string,\n payload: unknown,\n ): CommandContext<TTarget, TEvent> => {\n return {\n keymap: options.keymap,\n event,\n focused,\n target,\n data,\n input,\n payload,\n }\n }\n\n const executeResolvedCommand = (\n commandName: string,\n command: Command<TTarget, TEvent> | CommandHandler<TTarget, TEvent>,\n context: CommandContext<TTarget, TEvent>,\n includeCommand: boolean,\n ): CommandExecutionResult<TTarget, TEvent> => {\n const commandView = typeof command === \"function\" ? undefined : command\n const run = typeof command === \"function\" ? command : command.run\n const resultCommand = includeCommand ? commandView : undefined\n let result: CommandResult<TTarget, TEvent>\n\n try {\n result = run(commandView ? { ...context, command: commandView } : context)\n } catch (error) {\n notify.emitError(\"command-execution-error\", error, `[Keymap] Error running command \"${commandName}\":`)\n return {\n status: \"error\",\n result: resultCommand ? { ok: false, reason: \"error\", command: resultCommand } : { ok: false, reason: \"error\" },\n }\n }\n\n if (isPromiseLike(result)) {\n result.catch((error) => {\n notify.emitError(\"async-command-error\", error, `[Keymap] Async error in command \"${commandName}\":`)\n })\n\n return {\n status: \"handled\",\n result: resultCommand ? { ok: true, command: resultCommand } : { ok: true },\n }\n }\n\n if (isRunCommandResult(result)) {\n let commandResult: RunCommandResult<TTarget, TEvent> = result\n if (!result.ok && result.reason !== \"not-found\" && includeCommand && commandView && !result.command) {\n commandResult = { ...result, command: commandView }\n } else if (result.ok && includeCommand && commandView && !result.command) {\n commandResult = { ...result, command: commandView }\n }\n\n return {\n status: result.ok ? \"handled\" : \"rejected\",\n result: commandResult,\n }\n }\n\n if (result === false) {\n return {\n status: \"rejected\",\n result: resultCommand\n ? { ok: false, reason: \"rejected\", command: resultCommand }\n : { ok: false, reason: \"rejected\" },\n }\n }\n\n return {\n status: \"handled\",\n result: resultCommand ? { ok: true, command: resultCommand } : { ok: true },\n }\n }\n\n const executeCommandChain = (\n commandName: string,\n chain: readonly { target?: TTarget; command: Command<TTarget, TEvent> }[] | undefined,\n event: TEvent,\n focused: TTarget | null,\n target: TTarget | null | undefined,\n data: Readonly<Record<string, unknown>>,\n payload: unknown,\n includeCommand: boolean,\n ): [RunCommandResult<TTarget, TEvent> | undefined, RunCommandResult<TTarget, TEvent> | undefined] => {\n let rejected: RunCommandResult<TTarget, TEvent> | undefined\n for (const entry of chain ?? []) {\n const executed = executeResolvedCommand(\n commandName,\n entry.command,\n createCommandContext(event, focused, target ?? entry.target ?? null, data, commandName, payload),\n includeCommand,\n )\n\n if (executed.status === \"handled\" || executed.status === \"error\") {\n return [executed.result, rejected]\n }\n\n rejected = executed.result\n }\n\n return [undefined, rejected]\n }\n\n const executeProgrammaticCommand = (\n cmd: string,\n commandOptions: RunCommandOptions<TTarget, TEvent> | undefined,\n mode: \"registered\" | \"active\",\n ): RunCommandResult<TTarget, TEvent> => {\n let normalized: BindingCommand<TTarget, TEvent> | undefined\n\n try {\n normalized = normalizeBindingCommand(cmd)\n } catch {\n return { ok: false, reason: \"invalid-args\" }\n }\n\n if (typeof normalized !== \"string\") {\n return { ok: false, reason: \"not-found\" }\n }\n\n const includeCommand = commandOptions?.includeCommand === true\n const focused = commandOptions?.focused ?? activation.getFocusedTargetIfAvailable()\n const event = commandOptions?.event ?? options.createCommandEvent()\n const data = runtime.getReadonlyData()\n const payload = commandOptions?.payload\n const chain =\n mode === \"registered\"\n ? catalog.getRegisteredResolvedEntries(normalized)\n : catalog.getActiveRegisteredResolvedEntries(normalized, focused)\n const [done, rejected] = executeCommandChain(\n normalized,\n chain,\n event,\n focused,\n commandOptions?.target,\n data,\n payload,\n includeCommand,\n )\n if (done) {\n return done\n }\n\n let rejectedResult = rejected\n const fallback =\n mode === \"registered\"\n ? catalog.resolveRegisteredResolverFallback(normalized, { input: normalized, payload })\n : catalog.resolveActiveResolverFallback(normalized, focused, { input: normalized, payload })\n if (fallback.resolved) {\n const result = executeResolvedCommand(\n normalized,\n fallback.resolved.command,\n createCommandContext(\n event,\n focused,\n commandOptions?.target ?? fallback.resolved.target ?? null,\n data,\n fallback.resolved.input ?? normalized,\n fallback.resolved.payload,\n ),\n includeCommand,\n )\n\n if (result.status === \"handled\" || result.status === \"error\") {\n return result.result\n }\n\n rejectedResult = result.result\n }\n\n if (fallback.hadError) {\n return { ok: false, reason: \"error\" }\n }\n\n if (mode === \"active\") {\n const unavailable = catalog.getDispatchUnavailableCommandState(normalized, focused, includeCommand)\n if (unavailable) {\n return unavailable.command\n ? { ok: false, reason: unavailable.reason, command: unavailable.command }\n : { ok: false, reason: unavailable.reason }\n }\n }\n\n return rejectedResult ?? { ok: false, reason: \"not-found\" }\n }\n\n return {\n runCommand(cmd, commandOptions) {\n return executeProgrammaticCommand(cmd, commandOptions, \"registered\")\n },\n dispatchCommand(cmd, commandOptions) {\n return executeProgrammaticCommand(cmd, commandOptions, \"active\")\n },\n runBinding(bindingLayer, binding, event, focused, payload) {\n const data = runtime.getReadonlyData()\n\n if (binding.run) {\n const result = executeResolvedCommand(\n typeof binding.command === \"string\" ? binding.command : \"<function>\",\n binding.run,\n createCommandContext(\n event,\n focused,\n bindingLayer.target ?? null,\n data,\n typeof binding.command === \"string\" ? binding.command : \"<function>\",\n payload,\n ),\n false,\n )\n\n if (result.status === \"rejected\") {\n return false\n }\n\n applyBindingEventEffects(binding, event)\n return true\n }\n\n if (typeof binding.command !== \"string\") {\n return false\n }\n\n const chain = catalog.getResolvedCommandChain(\n binding.command,\n focused,\n payload === undefined ? undefined : { input: binding.command, payload },\n ).entries\n for (const entry of chain ?? []) {\n const result = executeResolvedCommand(\n binding.command,\n entry.command,\n createCommandContext(\n event,\n focused,\n entry.target ?? bindingLayer.target ?? null,\n data,\n entry.input ?? binding.command,\n entry.payload,\n ),\n false,\n )\n if (result.status === \"rejected\") {\n continue\n }\n\n applyBindingEventEffects(binding, event)\n return true\n }\n\n return false\n },\n }\n}\n\nfunction isRunCommandResult<TTarget extends object, TEvent extends KeymapEvent>(\n value: CommandResult<TTarget, TEvent>,\n): value is RunCommandResult<TTarget, TEvent> {\n return typeof value === \"object\" && value !== null && \"ok\" in value\n}\n\nfunction applyBindingEventEffects<TTarget extends object, TEvent extends KeymapEvent>(\n binding: BindingState<TTarget, TEvent>,\n event: TEvent,\n): void {\n if (!binding.preventDefault) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n}\n",
18
- "import type { ConditionService } from \"./conditions.js\"\nimport type { State } from \"./state.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport { normalizeBindingCommand } from \"./primitives/command-normalization.js\"\nimport type {\n Attributes,\n BindingCommand,\n BindingEvent,\n BindingExpansion,\n BindingExpander,\n BindingExpanderContext,\n Binding,\n BindingParser,\n BindingParserContext,\n EventData,\n ParsedBinding,\n ReactiveMatcher,\n BindingState,\n BindingCompilationResult,\n KeyLike,\n KeyMatch,\n KeymapEvent,\n KeyStrokeInput,\n KeySequencePart,\n ResolvedKeyToken,\n ResolvedSequencePattern,\n RuntimeMatcher,\n StringifyOptions,\n} from \"../types.js\"\nimport { RESERVED_BINDING_FIELDS } from \"../schema.js\"\nimport {\n cloneKeySequence,\n createKeySequencePart,\n createTextKeyMatch,\n normalizeBindingTokenName,\n stringifyKeySequence,\n} from \"./keys.js\"\nimport { snapshotParsedBinding } from \"./primitives/bindings.js\"\nimport { createFieldCompilerContext } from \"./primitives/field-invariants.js\"\nimport { getErrorMessage, snapshotDataValue } from \"./values.js\"\n\nconst EMPTY_COMPILE_FIELDS: Readonly<Record<string, unknown>> = Object.freeze({})\nconst EMPTY_REQUIRES: readonly [name: string, value: unknown][] = []\nconst EMPTY_MATCHERS: readonly RuntimeMatcher[] = []\n\nfunction snapshotAttributes(attrs: Attributes): Readonly<Attributes> | undefined {\n if (Object.keys(attrs).length === 0) {\n return undefined\n }\n\n return snapshotDataValue(attrs, { freeze: true }) as Readonly<Attributes>\n}\n\ninterface ParsedBindingSequenceResult {\n parts: KeySequencePart[]\n usedTokens: readonly string[]\n unknownTokens: readonly string[]\n hasTokenBindings: boolean\n}\n\ninterface ExpandedBindingKey {\n key: KeyLike\n displays?: readonly string[]\n}\n\nexport interface CompilerOptions {\n warnUnknownField: (kind: \"binding\" | \"layer\", fieldName: string) => void\n warnUnknownToken: (token: string, sequence: string) => void\n}\n\nexport interface CompilerService<TTarget extends object, TEvent extends KeymapEvent> {\n parseTokenKey(key: KeyLike): KeySequencePart\n parseKeySequence(key: KeyLike): KeySequencePart[]\n formatKey(key: KeyLike, options?: StringifyOptions): string\n compileBindings(\n bindings: readonly Binding<TTarget, TEvent>[],\n tokens: ReadonlyMap<string, ResolvedKeyToken>,\n sourceTarget: TTarget | undefined,\n sourceLayerOrder: number,\n fields?: Readonly<Record<string, unknown>>,\n ): BindingCompilationResult<TTarget, TEvent>\n}\n\nexport function createCompilerService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n conditions: ConditionService<TTarget, TEvent>,\n options: CompilerOptions,\n): CompilerService<TTarget, TEvent> {\n const parseTokenKey = (key: KeyLike): KeySequencePart => {\n return parseSingleKeyPartWithParsers(key, state.bindingParsers.values(), {\n tokens: state.tokens,\n patterns: state.patterns,\n layer: EMPTY_COMPILE_FIELDS,\n parseObjectKey: (value, options) => parseObjectKeyPart(value, options),\n })\n }\n\n const parseKeySequence = (key: KeyLike): KeySequencePart[] => {\n if (typeof key !== \"string\") {\n return [parseObjectKeyPart(key)]\n }\n\n const parsed = parseBindingSequenceWithParsers(key, state.bindingParsers.values(), {\n tokens: state.tokens,\n patterns: state.patterns,\n layer: EMPTY_COMPILE_FIELDS,\n parseObjectKey: (value, options) => parseObjectKeyPart(value, options),\n })\n\n for (const tokenName of parsed.unknownTokens) {\n options.warnUnknownToken(tokenName, key)\n }\n\n return parsed.parts\n }\n\n const formatKey = (key: KeyLike, options?: StringifyOptions): string => {\n return stringifyKeySequence(parseKeySequence(key), options)\n }\n\n const compileBindings = (\n bindings: readonly Binding<TTarget, TEvent>[],\n tokens: ReadonlyMap<string, ResolvedKeyToken>,\n sourceTarget: TTarget | undefined,\n sourceLayerOrder: number,\n compileFields?: Readonly<Record<string, unknown>>,\n ): BindingCompilationResult<TTarget, TEvent> => {\n const bindingStates: BindingState<TTarget, TEvent>[] = []\n let hasTokenBindings = false\n const bindingExpanders = state.bindingExpanders.values()\n const bindingParsers = state.bindingParsers.values()\n const bindingFieldCompilers = state.bindingFields\n const allowExactPrefixAmbiguity = state.disambiguationResolvers.has()\n const warnUnknownField = options.warnUnknownField\n const warnUnknownToken = options.warnUnknownToken\n\n for (const [bindingIndex, binding] of bindings.entries()) {\n let expandedBindingKeys: readonly ExpandedBindingKey[]\n\n try {\n expandedBindingKeys = expandBindingKeyWithExpanders(binding.key, bindingExpanders, {\n layer: compileFields,\n })\n } catch (error) {\n notify.emitError(\"binding-expand-error\", error, getErrorMessage(error, \"Failed to expand keymap binding\"))\n continue\n }\n\n for (const expandedBindingKey of expandedBindingKeys) {\n const expandedKey = expandedBindingKey.key\n let parsed: ParsedBindingSequenceResult | undefined\n\n try {\n parsed =\n typeof expandedKey === \"string\"\n ? parseBindingSequenceWithParsers(expandedKey, bindingParsers, {\n tokens,\n patterns: state.patterns,\n layer: compileFields,\n parseObjectKey: (value, options) => parseObjectKeyPart(value, options),\n })\n : {\n parts: [parseObjectKeyPart(expandedKey)],\n usedTokens: [] as readonly string[],\n unknownTokens: [] as readonly string[],\n hasTokenBindings: false,\n }\n\n parsed = applyExpansionDisplays(parsed, expandedBindingKey)\n } catch (error) {\n notify.emitError(\"binding-parse-error\", error, getErrorMessage(error, \"Failed to parse keymap binding\"))\n continue\n }\n\n const sequence = parsed.parts\n hasTokenBindings ||= parsed.hasTokenBindings\n\n for (const tokenName of parsed.unknownTokens) {\n warnUnknownToken(tokenName, typeof expandedKey === \"string\" ? expandedKey : String(expandedKey.name))\n }\n\n for (const compiledInput of applyBindingTransformers(\n binding,\n sequence,\n tokens,\n bindingParsers,\n compileFields,\n )) {\n try {\n const event = normalizeBindingEvent(compiledInput.event)\n const compiledSequence = compiledInput.sequence\n const mergedRequires: EventData = {}\n const mergedAttrs: Attributes = {}\n const matchers: RuntimeMatcher[] = []\n\n for (const fieldName in compiledInput) {\n if (fieldName === \"sequence\") {\n continue\n }\n\n if (RESERVED_BINDING_FIELDS.has(fieldName)) {\n continue\n }\n\n const value = compiledInput[fieldName as keyof ParsedBinding]\n\n if (value === undefined) {\n continue\n }\n\n const compiler = bindingFieldCompilers.get(fieldName)\n if (!compiler) {\n warnUnknownField(\"binding\", fieldName)\n continue\n }\n\n compiler(\n value,\n createFieldCompilerContext({\n fieldName,\n conditions,\n requirements: mergedRequires,\n matchers,\n attrs: mergedAttrs,\n }),\n )\n }\n\n const attrs = Object.keys(mergedAttrs).length > 0 ? snapshotAttributes(mergedAttrs) : undefined\n const command = normalizeBindingCommand(compiledInput.cmd)\n const compiledBinding: BindingState<TTarget, TEvent> = {\n binding,\n sequence: compiledSequence,\n command,\n event,\n parsedBinding: snapshotParsedBinding(compiledInput),\n sourceTarget,\n sourceLayerOrder,\n bindingIndex: bindingIndex,\n requires: Object.keys(mergedRequires).length > 0 ? Object.entries(mergedRequires) : EMPTY_REQUIRES,\n matchers: matchers.length > 0 ? matchers : EMPTY_MATCHERS,\n preventDefault: compiledInput.preventDefault !== false,\n fallthrough: compiledInput.fallthrough ?? false,\n }\n\n if (attrs) {\n compiledBinding.attrs = attrs\n }\n\n if (typeof command === \"function\") {\n compiledBinding.run = command\n }\n\n if (compiledSequence.length === 0) {\n continue\n }\n\n if (event === \"release\" && compiledSequence.length > 1) {\n throw new Error(\"Keymap release bindings only support a single key stroke\")\n }\n\n const terminalPattern = compiledSequence.at(-1)\n if (terminalPattern?.patternName) {\n const pattern = state.patterns.get(terminalPattern.patternName)\n if (pattern && pattern.max !== pattern.min) {\n throw new Error(\"Keymap unbounded sequence patterns must be followed by a concrete continuation\")\n }\n }\n\n if (event === \"press\" && !allowExactPrefixAmbiguity) {\n validateExactPrefixAmbiguity(bindingStates, compiledBinding)\n }\n\n bindingStates.push(compiledBinding)\n } catch (error) {\n notify.emitError(\"binding-compile-error\", error, getErrorMessage(error, \"Failed to compile keymap binding\"))\n }\n }\n }\n }\n\n return {\n bindings: bindingStates,\n hasTokenBindings,\n }\n }\n\n const parseObjectKeyPart = (\n key: KeyStrokeInput,\n options?: {\n display?: string\n match?: KeyMatch\n tokenName?: string\n },\n ): KeySequencePart => {\n return createKeySequencePart(key, options)\n }\n\n const normalizeBindingEvent = (event: unknown): BindingEvent => {\n if (event === undefined || event === \"press\") {\n return \"press\"\n }\n\n if (event === \"release\") {\n return \"release\"\n }\n\n throw new Error(`Invalid keymap binding event \"${String(event)}\": expected \"press\" or \"release\"`)\n }\n\n const applyBindingTransformers = (\n binding: Binding<TTarget, TEvent>,\n sequence: KeySequencePart[],\n tokens: ReadonlyMap<string, ResolvedKeyToken>,\n bindingParsers: readonly BindingParser[],\n compileFields?: Readonly<Record<string, unknown>>,\n ): ParsedBinding<TTarget, TEvent>[] => {\n const bindingTransformers = state.bindingTransformers.values()\n\n if (bindingTransformers.length === 0) {\n return [{ ...binding, sequence: cloneKeySequence(sequence) }]\n }\n\n const parsedBinding: ParsedBinding<TTarget, TEvent> = {\n ...binding,\n sequence: cloneKeySequence(sequence),\n }\n const extraBindings: ParsedBinding<TTarget, TEvent>[] = []\n let keepOriginal = true\n const layer = compileFields ?? EMPTY_COMPILE_FIELDS\n\n for (const transformer of bindingTransformers) {\n try {\n transformer(parsedBinding, {\n layer,\n parseKey: (key) => {\n return parseSingleKeyPartWithParsers(key, bindingParsers, {\n tokens,\n patterns: state.patterns,\n layer,\n parseObjectKey: (value, options) => parseObjectKeyPart(value, options),\n })\n },\n add: (nextBinding) => {\n extraBindings.push(snapshotParsedBinding(nextBinding))\n },\n skipOriginal: () => {\n keepOriginal = false\n },\n })\n } catch (error) {\n notify.emitError(\"binding-transformer-error\", error, \"[Keymap] Error in binding transformer:\")\n }\n }\n\n if (!keepOriginal) {\n return extraBindings\n }\n\n if (extraBindings.length === 0) {\n return [parsedBinding]\n }\n\n return [parsedBinding, ...extraBindings]\n }\n\n return { parseTokenKey, parseKeySequence, formatKey, compileBindings }\n}\n\nfunction sequenceMatchesPrefix(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\nfunction validateExactPrefixAmbiguity<TTarget extends object, TEvent extends KeymapEvent>(\n bindings: readonly BindingState<TTarget, TEvent>[],\n next: BindingState<TTarget, TEvent>,\n): void {\n for (const existing of bindings) {\n if (existing.event !== \"press\") {\n continue\n }\n\n if (\n (existing.command !== undefined && sequenceMatchesPrefix(existing.sequence, next.sequence)) ||\n (next.command !== undefined && sequenceMatchesPrefix(next.sequence, existing.sequence))\n ) {\n throw new Error(\n \"Keymap bindings cannot use the same sequence as both an exact match and a prefix in the same layer\",\n )\n }\n }\n}\n\nfunction expandBindingKeyWithExpanders(\n key: KeyLike,\n expanders: readonly BindingExpander[],\n options?: {\n layer?: Readonly<Record<string, unknown>>\n },\n): readonly ExpandedBindingKey[] {\n if (typeof key !== \"string\" || expanders.length === 0) {\n return [{ key }]\n }\n\n const layer = options?.layer ?? EMPTY_COMPILE_FIELDS\n let candidates: BindingExpansion[] = [{ key }]\n\n for (const expander of expanders) {\n const nextCandidates: BindingExpansion[] = []\n\n for (const candidate of candidates) {\n const result = expander({\n input: candidate.key,\n displays: candidate.displays,\n layer,\n } satisfies BindingExpanderContext)\n if (!result) {\n nextCandidates.push(candidate)\n continue\n }\n\n if (result.length === 0) {\n throw new Error(`Keymap binding expander must return at least one key sequence for \"${candidate.key}\"`)\n }\n\n for (const expanded of result) {\n if (!expanded || typeof expanded !== \"object\" || Array.isArray(expanded) || typeof expanded.key !== \"string\") {\n throw new Error(\n `Keymap binding expander must return expansion objects with string keys for \"${candidate.key}\"`,\n )\n }\n\n if (expanded.displays !== undefined) {\n if (!Array.isArray(expanded.displays)) {\n throw new Error(`Keymap binding expander displays must be an array of strings for \"${candidate.key}\"`)\n }\n\n for (const display of expanded.displays) {\n if (typeof display !== \"string\") {\n throw new Error(`Keymap binding expander displays must be an array of strings for \"${candidate.key}\"`)\n }\n }\n }\n\n nextCandidates.push(expanded)\n }\n }\n\n candidates = nextCandidates\n }\n\n return candidates\n}\n\nfunction applyExpansionDisplays(\n parsed: ParsedBindingSequenceResult,\n expansion: ExpandedBindingKey,\n): ParsedBindingSequenceResult {\n if (!expansion.displays) {\n return parsed\n }\n\n if (expansion.displays.length !== parsed.parts.length) {\n throw new Error(\n `Keymap binding expansion displays length must match parsed sequence length for \"${String(expansion.key)}\"`,\n )\n }\n\n return {\n ...parsed,\n parts: parsed.parts.map((part, index) => ({\n ...part,\n display: expansion.displays![index]!,\n })),\n }\n}\n\nfunction parseBindingSequenceWithParsers(\n key: string,\n parsers: readonly BindingParser[],\n options: {\n tokens?: ReadonlyMap<string, ResolvedKeyToken>\n patterns?: ReadonlyMap<string, ResolvedSequencePattern>\n layer?: Readonly<Record<string, unknown>>\n parseObjectKey: (\n key: KeyStrokeInput,\n options?: { display?: string; match?: KeyMatch; tokenName?: string },\n ) => KeySequencePart\n },\n): ParsedBindingSequenceResult {\n if (key.length === 0) {\n throw new Error(\"Invalid key sequence: sequence cannot be empty\")\n }\n\n if (parsers.length === 0) {\n throw new Error(\"No keymap binding parsers are registered\")\n }\n\n const tokens = options.tokens ?? new Map<string, ResolvedKeyToken>()\n const patterns = options.patterns ?? new Map<string, ResolvedSequencePattern>()\n const layer = options.layer ?? EMPTY_COMPILE_FIELDS\n const parseObjectKey = options.parseObjectKey\n const parts: KeySequencePart[] = []\n const usedTokens = new Set<string>()\n const unknownTokens = new Set<string>()\n\n let index = 0\n while (index < key.length) {\n let matched = false\n\n for (const parser of parsers) {\n const result = parser({\n input: key,\n index,\n layer,\n tokens,\n patterns,\n normalizeTokenName: normalizeBindingTokenName,\n createMatch: createTextKeyMatch,\n parseObjectKey,\n } satisfies BindingParserContext)\n if (!result) {\n continue\n }\n\n if (result.nextIndex <= index || result.nextIndex > key.length) {\n throw new Error(`Keymap binding parser must advance the input for \"${key}\" at index ${index}`)\n }\n\n parts.push(...result.parts)\n for (const tokenName of result.usedTokens ?? []) {\n usedTokens.add(tokenName)\n }\n for (const tokenName of result.unknownTokens ?? []) {\n unknownTokens.add(tokenName)\n }\n\n index = result.nextIndex\n matched = true\n break\n }\n\n if (!matched) {\n throw new Error(`No keymap binding parser handled input at index ${index} in \"${key}\"`)\n }\n }\n\n return {\n parts,\n usedTokens: [...usedTokens],\n unknownTokens: [...unknownTokens],\n hasTokenBindings: usedTokens.size > 0 || unknownTokens.size > 0,\n }\n}\n\nfunction parseSingleKeyPartWithParsers(\n key: KeyLike,\n parsers: readonly BindingParser[],\n options: {\n tokens?: ReadonlyMap<string, ResolvedKeyToken>\n patterns?: ReadonlyMap<string, ResolvedSequencePattern>\n layer?: Readonly<Record<string, unknown>>\n parseObjectKey: (\n key: KeyStrokeInput,\n options?: { display?: string; match?: KeyMatch; tokenName?: string },\n ) => KeySequencePart\n },\n): KeySequencePart {\n if (typeof key !== \"string\") {\n return options.parseObjectKey(key)\n }\n\n const { parts } = parseBindingSequenceWithParsers(key, parsers, options)\n const [part] = parts\n if (!part || parts.length !== 1) {\n throw new Error(`Invalid key \"${String(key)}\": expected a single key stroke`)\n }\n\n return part\n}\n",
18
+ "import type { ConditionService } from \"./conditions.js\"\nimport type { State } from \"./state.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport { normalizeBindingCommand } from \"./primitives/command-normalization.js\"\nimport type {\n Attributes,\n BindingCommand,\n BindingEvent,\n BindingExpansion,\n BindingExpander,\n BindingExpanderContext,\n Binding,\n BindingParser,\n BindingParserContext,\n EventData,\n ParsedBinding,\n ReactiveMatcher,\n BindingState,\n BindingCompilationResult,\n KeyLike,\n KeyMatch,\n KeymapEvent,\n KeyStrokeInput,\n KeySequencePart,\n ResolvedKeyToken,\n ResolvedSequencePattern,\n RuntimeMatcher,\n StringifyOptions,\n} from \"../types.js\"\nimport { RESERVED_BINDING_FIELDS } from \"../schema.js\"\nimport {\n cloneKeySequence,\n createKeySequencePart,\n createTextKeyMatch,\n normalizeBindingTokenName,\n stringifyKeySequence,\n} from \"./keys.js\"\nimport { snapshotParsedBinding } from \"./primitives/bindings.js\"\nimport { createFieldCompilerContext } from \"./primitives/field-invariants.js\"\nimport { getErrorMessage, snapshotDataValue } from \"./values.js\"\n\nconst EMPTY_COMPILE_FIELDS: Readonly<Record<string, unknown>> = Object.freeze({})\nconst EMPTY_REQUIRES: readonly [name: string, value: unknown][] = []\nconst EMPTY_MATCHERS: readonly RuntimeMatcher[] = []\n\nfunction snapshotAttributes(attrs: Attributes): Readonly<Attributes> | undefined {\n if (Object.keys(attrs).length === 0) {\n return undefined\n }\n\n return snapshotDataValue(attrs, { freeze: true }) as Readonly<Attributes>\n}\n\ninterface ParsedBindingSequenceResult {\n parts: KeySequencePart[]\n usedTokens: readonly string[]\n unknownTokens: readonly string[]\n hasTokenBindings: boolean\n}\n\ninterface ExpandedBindingKey {\n key: KeyLike\n displays?: readonly string[]\n}\n\nexport interface CompilerOptions {\n warnUnknownField: (kind: \"binding\" | \"layer\", fieldName: string) => void\n warnUnknownToken: (token: string, sequence: string) => void\n}\n\nexport interface CompilerService<TTarget extends object, TEvent extends KeymapEvent> {\n parseTokenKey(key: KeyLike): KeySequencePart\n parseKeySequence(key: KeyLike): KeySequencePart[]\n formatKey(key: KeyLike, options?: StringifyOptions): string\n compileBindings(\n bindings: readonly Binding<TTarget, TEvent>[],\n tokens: ReadonlyMap<string, ResolvedKeyToken>,\n sourceTarget: TTarget | undefined,\n sourceLayerOrder: number,\n fields?: Readonly<Record<string, unknown>>,\n ): BindingCompilationResult<TTarget, TEvent>\n}\n\nexport function createCompilerService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n conditions: ConditionService<TTarget, TEvent>,\n options: CompilerOptions,\n): CompilerService<TTarget, TEvent> {\n const parseTokenKey = (key: KeyLike): KeySequencePart => {\n return parseSingleKeyPartWithParsers(key, state.bindingParsers.values(), {\n tokens: state.tokens,\n patterns: state.patterns,\n layer: EMPTY_COMPILE_FIELDS,\n parseObjectKey: (value, options) => parseObjectKeyPart(value, options),\n })\n }\n\n const parseKeySequence = (key: KeyLike): KeySequencePart[] => {\n if (typeof key !== \"string\") {\n return [parseObjectKeyPart(key)]\n }\n\n const parsed = parseBindingSequenceWithParsers(key, state.bindingParsers.values(), {\n tokens: state.tokens,\n patterns: state.patterns,\n layer: EMPTY_COMPILE_FIELDS,\n parseObjectKey: (value, options) => parseObjectKeyPart(value, options),\n })\n\n for (const tokenName of parsed.unknownTokens) {\n options.warnUnknownToken(tokenName, key)\n }\n\n if (parsed.unknownTokens.length > 0) {\n return []\n }\n\n return parsed.parts\n }\n\n const formatKey = (key: KeyLike, options?: StringifyOptions): string => {\n return stringifyKeySequence(parseKeySequence(key), options)\n }\n\n const compileBindings = (\n bindings: readonly Binding<TTarget, TEvent>[],\n tokens: ReadonlyMap<string, ResolvedKeyToken>,\n sourceTarget: TTarget | undefined,\n sourceLayerOrder: number,\n compileFields?: Readonly<Record<string, unknown>>,\n ): BindingCompilationResult<TTarget, TEvent> => {\n const bindingStates: BindingState<TTarget, TEvent>[] = []\n let hasTokenBindings = false\n const bindingExpanders = state.bindingExpanders.values()\n const bindingParsers = state.bindingParsers.values()\n const bindingFieldCompilers = state.bindingFields\n const allowExactPrefixAmbiguity = state.disambiguationResolvers.has()\n const warnUnknownField = options.warnUnknownField\n const warnUnknownToken = options.warnUnknownToken\n\n for (const [bindingIndex, binding] of bindings.entries()) {\n let expandedBindingKeys: readonly ExpandedBindingKey[]\n\n try {\n expandedBindingKeys = expandBindingKeyWithExpanders(binding.key, bindingExpanders, {\n layer: compileFields,\n })\n } catch (error) {\n notify.emitError(\"binding-expand-error\", error, getErrorMessage(error, \"Failed to expand keymap binding\"))\n continue\n }\n\n for (const expandedBindingKey of expandedBindingKeys) {\n const expandedKey = expandedBindingKey.key\n let parsed: ParsedBindingSequenceResult | undefined\n\n try {\n parsed =\n typeof expandedKey === \"string\"\n ? parseBindingSequenceWithParsers(expandedKey, bindingParsers, {\n tokens,\n patterns: state.patterns,\n layer: compileFields,\n parseObjectKey: (value, options) => parseObjectKeyPart(value, options),\n })\n : {\n parts: [parseObjectKeyPart(expandedKey)],\n usedTokens: [] as readonly string[],\n unknownTokens: [] as readonly string[],\n hasTokenBindings: false,\n }\n\n parsed = applyExpansionDisplays(parsed, expandedBindingKey)\n } catch (error) {\n notify.emitError(\"binding-parse-error\", error, getErrorMessage(error, \"Failed to parse keymap binding\"))\n continue\n }\n\n const sequence = parsed.parts\n hasTokenBindings ||= parsed.hasTokenBindings\n\n for (const tokenName of parsed.unknownTokens) {\n warnUnknownToken(tokenName, typeof expandedKey === \"string\" ? expandedKey : String(expandedKey.name))\n }\n\n if (parsed.unknownTokens.length > 0) {\n continue\n }\n\n for (const compiledInput of applyBindingTransformers(\n binding,\n sequence,\n tokens,\n bindingParsers,\n compileFields,\n )) {\n try {\n const event = normalizeBindingEvent(compiledInput.event)\n const compiledSequence = compiledInput.sequence\n const mergedRequires: EventData = {}\n const mergedAttrs: Attributes = {}\n const matchers: RuntimeMatcher[] = []\n\n for (const fieldName in compiledInput) {\n if (fieldName === \"sequence\") {\n continue\n }\n\n if (RESERVED_BINDING_FIELDS.has(fieldName)) {\n continue\n }\n\n const value = compiledInput[fieldName as keyof ParsedBinding]\n\n if (value === undefined) {\n continue\n }\n\n const compiler = bindingFieldCompilers.get(fieldName)\n if (!compiler) {\n warnUnknownField(\"binding\", fieldName)\n continue\n }\n\n compiler(\n value,\n createFieldCompilerContext({\n fieldName,\n conditions,\n requirements: mergedRequires,\n matchers,\n attrs: mergedAttrs,\n }),\n )\n }\n\n const attrs = Object.keys(mergedAttrs).length > 0 ? snapshotAttributes(mergedAttrs) : undefined\n const command = normalizeBindingCommand(compiledInput.cmd)\n const compiledBinding: BindingState<TTarget, TEvent> = {\n binding,\n sequence: compiledSequence,\n command,\n event,\n parsedBinding: snapshotParsedBinding(compiledInput),\n sourceTarget,\n sourceLayerOrder,\n bindingIndex: bindingIndex,\n requires: Object.keys(mergedRequires).length > 0 ? Object.entries(mergedRequires) : EMPTY_REQUIRES,\n matchers: matchers.length > 0 ? matchers : EMPTY_MATCHERS,\n preventDefault: compiledInput.preventDefault !== false,\n fallthrough: compiledInput.fallthrough ?? false,\n }\n\n if (attrs) {\n compiledBinding.attrs = attrs\n }\n\n if (typeof command === \"function\") {\n compiledBinding.run = command\n }\n\n if (compiledSequence.length === 0) {\n continue\n }\n\n if (event === \"release\" && compiledSequence.length > 1) {\n throw new Error(\"Keymap release bindings only support a single key stroke\")\n }\n\n const terminalPattern = compiledSequence.at(-1)\n if (terminalPattern?.patternName) {\n const pattern = state.patterns.get(terminalPattern.patternName)\n if (pattern && pattern.max !== pattern.min) {\n throw new Error(\"Keymap unbounded sequence patterns must be followed by a concrete continuation\")\n }\n }\n\n if (event === \"press\" && !allowExactPrefixAmbiguity) {\n validateExactPrefixAmbiguity(bindingStates, compiledBinding)\n }\n\n bindingStates.push(compiledBinding)\n } catch (error) {\n notify.emitError(\"binding-compile-error\", error, getErrorMessage(error, \"Failed to compile keymap binding\"))\n }\n }\n }\n }\n\n return {\n bindings: bindingStates,\n hasTokenBindings,\n }\n }\n\n const parseObjectKeyPart = (\n key: KeyStrokeInput,\n options?: {\n display?: string\n match?: KeyMatch\n tokenName?: string\n },\n ): KeySequencePart => {\n return createKeySequencePart(key, options)\n }\n\n const normalizeBindingEvent = (event: unknown): BindingEvent => {\n if (event === undefined || event === \"press\") {\n return \"press\"\n }\n\n if (event === \"release\") {\n return \"release\"\n }\n\n throw new Error(`Invalid keymap binding event \"${String(event)}\": expected \"press\" or \"release\"`)\n }\n\n const applyBindingTransformers = (\n binding: Binding<TTarget, TEvent>,\n sequence: KeySequencePart[],\n tokens: ReadonlyMap<string, ResolvedKeyToken>,\n bindingParsers: readonly BindingParser[],\n compileFields?: Readonly<Record<string, unknown>>,\n ): ParsedBinding<TTarget, TEvent>[] => {\n const bindingTransformers = state.bindingTransformers.values()\n\n if (bindingTransformers.length === 0) {\n return [{ ...binding, sequence: cloneKeySequence(sequence) }]\n }\n\n const parsedBinding: ParsedBinding<TTarget, TEvent> = {\n ...binding,\n sequence: cloneKeySequence(sequence),\n }\n const extraBindings: ParsedBinding<TTarget, TEvent>[] = []\n let keepOriginal = true\n const layer = compileFields ?? EMPTY_COMPILE_FIELDS\n\n for (const transformer of bindingTransformers) {\n try {\n transformer(parsedBinding, {\n layer,\n parseKey: (key) => {\n return parseSingleKeyPartWithParsers(key, bindingParsers, {\n tokens,\n patterns: state.patterns,\n layer,\n parseObjectKey: (value, options) => parseObjectKeyPart(value, options),\n })\n },\n add: (nextBinding) => {\n extraBindings.push(snapshotParsedBinding(nextBinding))\n },\n skipOriginal: () => {\n keepOriginal = false\n },\n })\n } catch (error) {\n notify.emitError(\"binding-transformer-error\", error, \"[Keymap] Error in binding transformer:\")\n }\n }\n\n if (!keepOriginal) {\n return extraBindings\n }\n\n if (extraBindings.length === 0) {\n return [parsedBinding]\n }\n\n return [parsedBinding, ...extraBindings]\n }\n\n return { parseTokenKey, parseKeySequence, formatKey, compileBindings }\n}\n\nfunction sequenceMatchesPrefix(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\nfunction validateExactPrefixAmbiguity<TTarget extends object, TEvent extends KeymapEvent>(\n bindings: readonly BindingState<TTarget, TEvent>[],\n next: BindingState<TTarget, TEvent>,\n): void {\n for (const existing of bindings) {\n if (existing.event !== \"press\") {\n continue\n }\n\n if (\n (existing.command !== undefined && sequenceMatchesPrefix(existing.sequence, next.sequence)) ||\n (next.command !== undefined && sequenceMatchesPrefix(next.sequence, existing.sequence))\n ) {\n throw new Error(\n \"Keymap bindings cannot use the same sequence as both an exact match and a prefix in the same layer\",\n )\n }\n }\n}\n\nfunction expandBindingKeyWithExpanders(\n key: KeyLike,\n expanders: readonly BindingExpander[],\n options?: {\n layer?: Readonly<Record<string, unknown>>\n },\n): readonly ExpandedBindingKey[] {\n if (typeof key !== \"string\" || expanders.length === 0) {\n return [{ key }]\n }\n\n const layer = options?.layer ?? EMPTY_COMPILE_FIELDS\n let candidates: BindingExpansion[] = [{ key }]\n\n for (const expander of expanders) {\n const nextCandidates: BindingExpansion[] = []\n\n for (const candidate of candidates) {\n const result = expander({\n input: candidate.key,\n displays: candidate.displays,\n layer,\n } satisfies BindingExpanderContext)\n if (!result) {\n nextCandidates.push(candidate)\n continue\n }\n\n if (result.length === 0) {\n throw new Error(`Keymap binding expander must return at least one key sequence for \"${candidate.key}\"`)\n }\n\n for (const expanded of result) {\n if (!expanded || typeof expanded !== \"object\" || Array.isArray(expanded) || typeof expanded.key !== \"string\") {\n throw new Error(\n `Keymap binding expander must return expansion objects with string keys for \"${candidate.key}\"`,\n )\n }\n\n if (expanded.displays !== undefined) {\n if (!Array.isArray(expanded.displays)) {\n throw new Error(`Keymap binding expander displays must be an array of strings for \"${candidate.key}\"`)\n }\n\n for (const display of expanded.displays) {\n if (typeof display !== \"string\") {\n throw new Error(`Keymap binding expander displays must be an array of strings for \"${candidate.key}\"`)\n }\n }\n }\n\n nextCandidates.push(expanded)\n }\n }\n\n candidates = nextCandidates\n }\n\n return candidates\n}\n\nfunction applyExpansionDisplays(\n parsed: ParsedBindingSequenceResult,\n expansion: ExpandedBindingKey,\n): ParsedBindingSequenceResult {\n if (!expansion.displays) {\n return parsed\n }\n\n if (expansion.displays.length !== parsed.parts.length) {\n throw new Error(\n `Keymap binding expansion displays length must match parsed sequence length for \"${String(expansion.key)}\"`,\n )\n }\n\n return {\n ...parsed,\n parts: parsed.parts.map((part, index) => ({\n ...part,\n display: expansion.displays![index]!,\n })),\n }\n}\n\nfunction parseBindingSequenceWithParsers(\n key: string,\n parsers: readonly BindingParser[],\n options: {\n tokens?: ReadonlyMap<string, ResolvedKeyToken>\n patterns?: ReadonlyMap<string, ResolvedSequencePattern>\n layer?: Readonly<Record<string, unknown>>\n parseObjectKey: (\n key: KeyStrokeInput,\n options?: { display?: string; match?: KeyMatch; tokenName?: string },\n ) => KeySequencePart\n },\n): ParsedBindingSequenceResult {\n if (key.length === 0) {\n throw new Error(\"Invalid key sequence: sequence cannot be empty\")\n }\n\n if (parsers.length === 0) {\n throw new Error(\"No keymap binding parsers are registered\")\n }\n\n const tokens = options.tokens ?? new Map<string, ResolvedKeyToken>()\n const patterns = options.patterns ?? new Map<string, ResolvedSequencePattern>()\n const layer = options.layer ?? EMPTY_COMPILE_FIELDS\n const parseObjectKey = options.parseObjectKey\n const parts: KeySequencePart[] = []\n const usedTokens = new Set<string>()\n const unknownTokens = new Set<string>()\n\n let index = 0\n while (index < key.length) {\n let matched = false\n\n for (const parser of parsers) {\n const result = parser({\n input: key,\n index,\n layer,\n tokens,\n patterns,\n normalizeTokenName: normalizeBindingTokenName,\n createMatch: createTextKeyMatch,\n parseObjectKey,\n } satisfies BindingParserContext)\n if (!result) {\n continue\n }\n\n if (result.nextIndex <= index || result.nextIndex > key.length) {\n throw new Error(`Keymap binding parser must advance the input for \"${key}\" at index ${index}`)\n }\n\n parts.push(...result.parts)\n for (const tokenName of result.usedTokens ?? []) {\n usedTokens.add(tokenName)\n }\n for (const tokenName of result.unknownTokens ?? []) {\n unknownTokens.add(tokenName)\n }\n\n index = result.nextIndex\n matched = true\n break\n }\n\n if (!matched) {\n throw new Error(`No keymap binding parser handled input at index ${index} in \"${key}\"`)\n }\n }\n\n return {\n parts,\n usedTokens: [...usedTokens],\n unknownTokens: [...unknownTokens],\n hasTokenBindings: usedTokens.size > 0 || unknownTokens.size > 0,\n }\n}\n\nfunction parseSingleKeyPartWithParsers(\n key: KeyLike,\n parsers: readonly BindingParser[],\n options: {\n tokens?: ReadonlyMap<string, ResolvedKeyToken>\n patterns?: ReadonlyMap<string, ResolvedSequencePattern>\n layer?: Readonly<Record<string, unknown>>\n parseObjectKey: (\n key: KeyStrokeInput,\n options?: { display?: string; match?: KeyMatch; tokenName?: string },\n ) => KeySequencePart\n },\n): KeySequencePart {\n if (typeof key !== \"string\") {\n return options.parseObjectKey(key)\n }\n\n const { parts } = parseBindingSequenceWithParsers(key, parsers, options)\n const [part] = parts\n if (!part || parts.length !== 1) {\n throw new Error(`Invalid key \"${String(key)}\": expected a single key stroke`)\n }\n\n return part\n}\n",
19
19
  "import type { State } from \"./state.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport type { KeymapEvent, ReactiveMatcher, RuntimeMatchable, RuntimeMatcher } from \"../types.js\"\n\nfunction isReactiveMatcher(value: unknown): value is ReactiveMatcher {\n if (!value || typeof value !== \"object\") {\n return false\n }\n\n const candidate = value as { get?: unknown; subscribe?: unknown }\n return typeof candidate.get === \"function\" && typeof candidate.subscribe === \"function\"\n}\n\nexport interface ConditionService<TTarget extends object, TEvent extends KeymapEvent> {\n buildRuntimeMatcher(matcher: (() => boolean) | ReactiveMatcher, source: string): RuntimeMatcher\n matchesConditions(target: RuntimeMatchable): boolean\n}\n\nexport function createConditionService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n): ConditionService<TTarget, TEvent> {\n const hasNoConditions = (target: RuntimeMatchable): boolean => {\n return target.requires.length === 0 && target.matchers.length === 0\n }\n\n const matchesRuntimeMatcher = (matcher: RuntimeMatcher): boolean => {\n try {\n return matcher.match()\n } catch (error) {\n notify.emitError(\n \"runtime-matcher-error\",\n error,\n `[Keymap] Error evaluating runtime matcher from ${matcher.source}:`,\n )\n return false\n }\n }\n\n const matchesRuntimeMatchers = (target: RuntimeMatchable): boolean => {\n if (target.matchers.length === 0) {\n return true\n }\n\n if (target.matchers.length === 1) {\n const [matcher] = target.matchers\n return matcher ? matchesRuntimeMatcher(matcher) : true\n }\n\n for (const matcher of target.matchers) {\n if (!matchesRuntimeMatcher(matcher)) {\n return false\n }\n }\n\n return true\n }\n\n const matchRequirements = (requires: readonly [name: string, value: unknown][]): boolean => {\n if (requires.length === 0) {\n return true\n }\n\n for (const [name, value] of requires) {\n if (!Object.is(state.data[name], value)) {\n return false\n }\n }\n\n return true\n }\n\n const matchesConditions = (target: RuntimeMatchable): boolean => {\n return hasNoConditions(target) || (matchRequirements(target.requires) && matchesRuntimeMatchers(target))\n }\n\n return {\n buildRuntimeMatcher(matcher, source) {\n if (typeof matcher === \"function\") {\n return { source, match: matcher }\n }\n\n if (isReactiveMatcher(matcher)) {\n return {\n source,\n match: () => matcher.get(),\n subscribe: (onChange) => matcher.subscribe(onChange),\n }\n }\n\n throw new Error(`Keymap ${source} expected a function or a reactive matcher`)\n },\n matchesConditions,\n }\n}\n",
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",
@@ -26,9 +26,9 @@
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",
27
27
  "import type { EventData, KeymapEvent } from \"../types.js\"\nimport type { ActivationService } from \"./activation.js\"\nimport type { NotificationService } from \"./notify.js\"\nimport type { State } from \"./state.js\"\n\nexport interface RuntimeService<TTarget extends object, TEvent extends KeymapEvent> {\n getData(name: string): unknown\n setData(name: string, value: unknown): void\n getReadonlyData(): Readonly<EventData>\n}\n\nexport function createRuntimeService<TTarget extends object, TEvent extends KeymapEvent>(\n state: State<TTarget, TEvent>,\n notify: NotificationService<TTarget, TEvent>,\n activation: ActivationService<TTarget, TEvent>,\n): RuntimeService<TTarget, TEvent> {\n return {\n getData(name) {\n return state.data[name]\n },\n setData(name, value) {\n notify.runWithStateChangeBatch(() => {\n if (value === undefined) {\n if (!(name in state.data)) {\n return\n }\n\n delete state.data[name]\n state.dataVersion += 1\n activation.ensureValidPendingSequence()\n notify.queueStateChange()\n return\n }\n\n if (Object.is(state.data[name], value)) {\n return\n }\n\n state.data[name] = value\n state.dataVersion += 1\n activation.ensureValidPendingSequence()\n notify.queueStateChange()\n })\n },\n getReadonlyData() {\n if (state.readonlyDataVersion === state.dataVersion) {\n return state.readonlyData\n }\n\n state.readonlyData = Object.freeze({ ...state.data })\n state.readonlyDataVersion = state.dataVersion\n return state.readonlyData\n },\n }\n}\n",
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
- "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"
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}\"; binding was skipped until the token is registered`,\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": "4219BCC7E15CDA4F64756E2164756E21",
31
+ "mappings": "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",
32
+ "debugId": "A236609826B66D7364756E2164756E21",
33
33
  "names": []
34
34
  }