@jvs-milkdown/core 1.0.0 → 1.1.0
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/lib/index.js +20 -4
- package/lib/index.js.map +1 -1
- package/lib/internal-plugin/editor-view.d.ts.map +1 -1
- package/lib/internal-plugin/keymap.d.ts +1 -1
- package/lib/internal-plugin/keymap.d.ts.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +22 -14
- package/src/internal-plugin/editor-view.ts +1 -0
- package/src/internal-plugin/keymap.ts +33 -4
- package/LICENSE +0 -21
package/lib/index.js
CHANGED
|
@@ -3,11 +3,11 @@ import remarkParse from "remark-parse";
|
|
|
3
3
|
import remarkStringify from "remark-stringify";
|
|
4
4
|
import { unified } from "unified";
|
|
5
5
|
import { callCommandBeforeEditorView, ctxCallOutOfScope, docTypeError } from "@jvs-milkdown/exception";
|
|
6
|
-
import { baseKeymap, chainCommands, deleteSelection, joinTextblockBackward, selectNodeBackward } from "@jvs-milkdown/prose/commands";
|
|
6
|
+
import { baseKeymap, chainCommands, deleteSelection, joinTextblockBackward, selectAll, selectNodeBackward } from "@jvs-milkdown/prose/commands";
|
|
7
7
|
import { DOMParser, Node, Schema } from "@jvs-milkdown/prose/model";
|
|
8
8
|
import { customInputRules } from "@jvs-milkdown/prose";
|
|
9
9
|
import { keymap as keymap$1 } from "@jvs-milkdown/prose/keymap";
|
|
10
|
-
import { EditorState, Plugin, PluginKey } from "@jvs-milkdown/prose/state";
|
|
10
|
+
import { EditorState, Plugin, PluginKey, TextSelection } from "@jvs-milkdown/prose/state";
|
|
11
11
|
import { undoInputRule } from "@jvs-milkdown/prose/inputrules";
|
|
12
12
|
import { ParserState, SerializerState } from "@jvs-milkdown/transformer";
|
|
13
13
|
import { EditorView } from "@jvs-milkdown/prose/view";
|
|
@@ -232,8 +232,23 @@ withMeta(commands, { displayName: "Commands" });
|
|
|
232
232
|
//#endregion
|
|
233
233
|
//#region src/internal-plugin/keymap.ts
|
|
234
234
|
function overrideBaseKeymap(keymap) {
|
|
235
|
-
|
|
236
|
-
|
|
235
|
+
const customKeymap = { ...keymap };
|
|
236
|
+
customKeymap.Backspace = chainCommands(undoInputRule, deleteSelection, joinTextblockBackward, selectNodeBackward);
|
|
237
|
+
const handleSelectAll = (state, dispatch) => {
|
|
238
|
+
const { selection, doc } = state;
|
|
239
|
+
const { $from, $to } = selection;
|
|
240
|
+
if ($from.sameParent($to) && $from.parent.isTextblock) {
|
|
241
|
+
const blockStart = $from.start();
|
|
242
|
+
const blockEnd = $from.end();
|
|
243
|
+
if ($from.pos !== blockStart || $to.pos !== blockEnd) {
|
|
244
|
+
if (dispatch) dispatch(state.tr.setSelection(TextSelection.create(doc, blockStart, blockEnd)));
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return selectAll(state, dispatch);
|
|
249
|
+
};
|
|
250
|
+
customKeymap["Mod-a"] = handleSelectAll;
|
|
251
|
+
return customKeymap;
|
|
237
252
|
}
|
|
238
253
|
var KeymapManager = class {
|
|
239
254
|
constructor() {
|
|
@@ -441,6 +456,7 @@ var rootAttrsCtx = createSlice({}, "rootAttrs");
|
|
|
441
456
|
function createViewContainer(root, ctx) {
|
|
442
457
|
const container = document.createElement("div");
|
|
443
458
|
container.className = "milkdown";
|
|
459
|
+
container.style = "height: calc(100vh - 32px);";
|
|
444
460
|
root.appendChild(container);
|
|
445
461
|
ctx.set(rootDOMCtx, container);
|
|
446
462
|
const attrs = ctx.get(rootAttrsCtx);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["#ctx","#container","#ctx","#keymap","#enableInspector","#onStatusChange","#configureList","#usrPluginStore","#status","#prepare","#cleanup","#setStatus","#loadInternal","#loadPluginInStore","#sysPluginStore","#cleanupInternal","#ctx","#container","#clock"],"sources":["../src/__internal__/utils.ts","../src/__internal__/remark-handlers.ts","../src/internal-plugin/atoms.ts","../src/internal-plugin/config.ts","../src/internal-plugin/init.ts","../src/internal-plugin/schema.ts","../src/internal-plugin/commands.ts","../src/internal-plugin/keymap.ts","../src/internal-plugin/parser.ts","../src/internal-plugin/serializer.ts","../src/internal-plugin/editor-state.ts","../src/internal-plugin/paste-rule.ts","../src/internal-plugin/editor-view.ts","../src/editor/editor.ts"],"sourcesContent":["import type { Meta, MilkdownPlugin } from '@jvs-milkdown/ctx'\n\nexport function withMeta<T extends MilkdownPlugin>(\n plugin: T,\n meta: Partial<Meta> & Pick<Meta, 'displayName'>\n): T {\n plugin.meta = {\n package: '@jvs-milkdown/core',\n group: 'System',\n ...meta,\n }\n\n return plugin\n}\n","import type { Options } from 'remark-stringify'\n\nexport const remarkHandlers: Required<Options>['handlers'] = {\n text: (node, _, state, info) => {\n // This config is to remove the `` entity when have trailing spaces\n const value = node.value\n // Check if the text contains only trailing spaces that might be encoded\n if (/^[^*_\\\\]*\\s+$/.test(value)) {\n // For text that ends with spaces but has no markdown special characters that need escaping,\n // return the value directly to preserve trailing spaces\n return value\n }\n // For other text, use safe to handle markdown escaping but prevent space encoding\n return state.safe(value, { ...info, encode: [] })\n },\n strong: (node, _, state, info) => {\n const marker = node.marker || state.options.strong || '*'\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current(),\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n },\n emphasis: (node, _, state, info) => {\n const marker = node.marker || state.options.emphasis || '*'\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current(),\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n },\n}\n","import type { SliceType, TimerType } from '@jvs-milkdown/ctx'\nimport type { InputRule } from '@jvs-milkdown/prose/inputrules'\nimport type { EditorState, Plugin } from '@jvs-milkdown/prose/state'\nimport type {\n EditorView,\n MarkViewConstructor,\n NodeViewConstructor,\n} from '@jvs-milkdown/prose/view'\nimport type { RemarkParser, RemarkPlugin } from '@jvs-milkdown/transformer'\nimport type { Options } from 'remark-stringify'\n\nimport { createSlice } from '@jvs-milkdown/ctx'\nimport remarkParse from 'remark-parse'\nimport remarkStringify from 'remark-stringify'\nimport { unified } from 'unified'\n\nimport type { Editor } from '../editor'\n\nimport { remarkHandlers } from '../__internal__'\n\n/// A slice which contains the editor view instance.\nexport const editorViewCtx = createSlice({} as EditorView, 'editorView')\n\n/// A slice which contains the editor state.\nexport const editorStateCtx = createSlice({} as EditorState, 'editorState')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[ConfigReady]`.\nexport const initTimerCtx = createSlice([] as TimerType[], 'initTimer')\n\n/// A slice which stores the editor instance.\nexport const editorCtx = createSlice({} as Editor, 'editor')\n\n/// A slice which stores the input rules.\nexport const inputRulesCtx = createSlice([] as InputRule[], 'inputRules')\n\n/// A slice which stores the prosemirror plugins.\nexport const prosePluginsCtx = createSlice([] as Plugin[], 'prosePlugins')\n\n/// A slice which stores the remark plugins.\nexport const remarkPluginsCtx = createSlice(\n [] as RemarkPlugin[],\n 'remarkPlugins'\n)\n\ntype NodeView = [nodeId: string, view: NodeViewConstructor]\n\n/// A slice which stores the prosemirror node views.\nexport const nodeViewCtx = createSlice([] as NodeView[], 'nodeView')\n\ntype MarkView = [nodeId: string, view: MarkViewConstructor]\n\n/// A slice which stores the prosemirror mark views.\nexport const markViewCtx = createSlice([] as MarkView[], 'markView')\n\n/// A slice which stores the remark instance.\nexport const remarkCtx: SliceType<RemarkParser, 'remark'> = createSlice(\n unified().use(remarkParse).use(remarkStringify),\n 'remark'\n)\n\n/// A slice which stores the remark stringify options.\nexport const remarkStringifyOptionsCtx = createSlice(\n {\n handlers: remarkHandlers,\n encode: [],\n } as Options,\n 'remarkStringifyOptions'\n)\n","import type { Ctx, MilkdownPlugin } from '@jvs-milkdown/ctx'\n\nimport { createTimer } from '@jvs-milkdown/ctx'\n\nimport { withMeta } from '../__internal__'\n\n/// @internal\nexport type Config = (ctx: Ctx) => void | Promise<void>\n\n/// The timer which will be resolved when the config plugin is ready.\nexport const ConfigReady = createTimer('ConfigReady')\n\n/// The config plugin.\n/// This plugin will load all user configs.\nexport function config(configure: Config): MilkdownPlugin {\n const plugin: MilkdownPlugin = (ctx) => {\n ctx.record(ConfigReady)\n\n return async () => {\n await configure(ctx)\n ctx.done(ConfigReady)\n\n return () => {\n ctx.clearTimer(ConfigReady)\n }\n }\n }\n\n withMeta(plugin, {\n displayName: 'Config',\n })\n\n return plugin\n}\n","import type { MilkdownPlugin } from '@jvs-milkdown/ctx'\n\nimport { createTimer } from '@jvs-milkdown/ctx'\nimport remarkParse from 'remark-parse'\nimport remarkStringify, { type Options } from 'remark-stringify'\nimport { unified } from 'unified'\n\nimport type { Editor } from '../editor'\n\nimport { remarkHandlers, withMeta } from '../__internal__'\nimport {\n editorCtx,\n initTimerCtx,\n inputRulesCtx,\n markViewCtx,\n nodeViewCtx,\n prosePluginsCtx,\n remarkCtx,\n remarkPluginsCtx,\n remarkStringifyOptionsCtx,\n} from './atoms'\nimport { ConfigReady } from './config'\n\n/// The timer which will be resolved when the init plugin is ready.\nexport const InitReady = createTimer('InitReady')\n\n/// The init plugin.\n/// This plugin prepare slices that needed by other plugins. And create a remark instance.\n///\n/// This plugin will wait for the config plugin.\nexport function init(editor: Editor): MilkdownPlugin {\n const plugin: MilkdownPlugin = (ctx) => {\n ctx\n .inject(editorCtx, editor)\n .inject(prosePluginsCtx, [])\n .inject(remarkPluginsCtx, [])\n .inject(inputRulesCtx, [])\n .inject(nodeViewCtx, [])\n .inject(markViewCtx, [])\n .inject(remarkStringifyOptionsCtx, {\n handlers: remarkHandlers,\n encode: [],\n } as Options)\n .inject(remarkCtx, unified().use(remarkParse).use(remarkStringify))\n .inject(initTimerCtx, [ConfigReady])\n .record(InitReady)\n\n return async () => {\n await ctx.waitTimers(initTimerCtx)\n const options = ctx.get(remarkStringifyOptionsCtx)\n ctx.set(\n remarkCtx,\n unified().use(remarkParse).use(remarkStringify, options)\n )\n\n ctx.done(InitReady)\n\n return () => {\n ctx\n .remove(editorCtx)\n .remove(prosePluginsCtx)\n .remove(remarkPluginsCtx)\n .remove(inputRulesCtx)\n .remove(nodeViewCtx)\n .remove(markViewCtx)\n .remove(remarkStringifyOptionsCtx)\n .remove(remarkCtx)\n .remove(initTimerCtx)\n .clearTimer(InitReady)\n }\n }\n }\n withMeta(plugin, {\n displayName: 'Init',\n })\n\n return plugin\n}\n","import type { MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type {\n MarkSchema,\n NodeSchema,\n RemarkParser,\n} from '@jvs-milkdown/transformer'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { Schema } from '@jvs-milkdown/prose/model'\n\nimport { withMeta } from '../__internal__'\nimport { remarkCtx, remarkPluginsCtx } from './atoms'\nimport { InitReady } from './init'\n\n/// The timer which will be resolved when the schema plugin is ready.\nexport const SchemaReady = createTimer('SchemaReady')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[InitReady]`.\nexport const schemaTimerCtx = createSlice([] as TimerType[], 'schemaTimer')\n\n/// A slice which contains the schema.\nexport const schemaCtx = createSlice({} as Schema, 'schema')\n\n/// A slice which stores the nodes spec.\nexport const nodesCtx = createSlice([] as Array<[string, NodeSchema]>, 'nodes')\n\n/// A slice which stores the marks spec.\nexport const marksCtx = createSlice([] as Array<[string, MarkSchema]>, 'marks')\n\nfunction extendPriority<T extends NodeSchema | MarkSchema>(x: T): T {\n return {\n ...x,\n parseDOM: x.parseDOM?.map((rule) => ({ priority: x.priority, ...rule })),\n }\n}\n\n/// The schema plugin.\n/// This plugin will load all nodes spec and marks spec and create a schema.\n///\n/// This plugin will wait for the init plugin.\nexport const schema: MilkdownPlugin = (ctx) => {\n ctx\n .inject(schemaCtx, {} as Schema)\n .inject(nodesCtx, [])\n .inject(marksCtx, [])\n .inject(schemaTimerCtx, [InitReady])\n .record(SchemaReady)\n\n return async () => {\n await ctx.waitTimers(schemaTimerCtx)\n\n const remark = ctx.get(remarkCtx)\n const remarkPlugins = ctx.get(remarkPluginsCtx)\n\n const processor = remarkPlugins.reduce(\n (acc: RemarkParser, plug) =>\n acc.use(plug.plugin, plug.options) as unknown as RemarkParser,\n remark\n )\n ctx.set(remarkCtx, processor)\n\n const nodes = Object.fromEntries(\n ctx.get(nodesCtx).map(([key, x]) => [key, extendPriority(x)])\n )\n const marks = Object.fromEntries(\n ctx.get(marksCtx).map(([key, x]) => [key, extendPriority(x)])\n )\n const schema = new Schema({ nodes, marks })\n\n ctx.set(schemaCtx, schema)\n\n ctx.done(SchemaReady)\n\n return () => {\n ctx\n .remove(schemaCtx)\n .remove(nodesCtx)\n .remove(marksCtx)\n .remove(schemaTimerCtx)\n .clearTimer(SchemaReady)\n }\n }\n}\n\nwithMeta(schema, {\n displayName: 'Schema',\n})\n","import type { Ctx, MilkdownPlugin, SliceType } from '@jvs-milkdown/ctx'\nimport type { Command } from '@jvs-milkdown/prose/state'\n\nimport { Container, createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { callCommandBeforeEditorView } from '@jvs-milkdown/exception'\nimport { chainCommands } from '@jvs-milkdown/prose/commands'\n\nimport { withMeta } from '../__internal__'\nimport { editorViewCtx } from './atoms'\nimport { SchemaReady } from './schema'\n\n/// @internal\nexport type Cmd<T = undefined> = (payload?: T) => Command\n\n/// @internal\nexport type CmdKey<T = undefined> = SliceType<Cmd<T>>\n\ntype InferParams<T> = T extends CmdKey<infer U> ? U : never\n\n/// A chainable command helper.\nexport interface CommandChain {\n /// Run the command chain.\n run: () => boolean\n /// Add an inline command to the chain.\n inline: (command: Command) => CommandChain\n /// Add a registered command to the chain.\n pipe: {\n <T extends CmdKey<any>>(\n slice: string,\n payload?: InferParams<T>\n ): CommandChain\n <T>(slice: CmdKey<T>, payload?: T): CommandChain\n (slice: string | CmdKey<any>, payload?: any): CommandChain\n }\n}\n\n/// The command manager.\n/// This manager will manage all commands in editor.\n/// Generally, you don't need to use this manager directly.\n/// You can use the `$command` and `$commandAsync` in `@jvs-milkdown/utils` to create and call a command.\nexport class CommandManager {\n /// @internal\n #container = new Container()\n\n /// @internal\n #ctx: Ctx | null = null\n\n /// @internal\n setCtx = (ctx: Ctx) => {\n this.#ctx = ctx\n }\n\n get ctx() {\n return this.#ctx\n }\n\n /// Register a command into the manager.\n create<T>(meta: CmdKey<T>, value: Cmd<T>) {\n const slice = meta.create(this.#container.sliceMap)\n slice.set(value)\n return slice\n }\n\n /// Get a command from the manager.\n get<T extends CmdKey<any>>(slice: string): Cmd<InferParams<T>>\n get<T>(slice: CmdKey<T>): Cmd<T>\n get(slice: string | CmdKey<any>): Cmd<any>\n get(slice: string | CmdKey<any>): Cmd<any> {\n return this.#container.get(slice).get()\n }\n\n /// Remove a command from the manager.\n remove<T extends CmdKey<any>>(slice: string): void\n remove<T>(slice: CmdKey<T>): void\n remove(slice: string | CmdKey<any>): void\n remove(slice: string | CmdKey<any>): void {\n return this.#container.remove(slice)\n }\n\n /// Call a registered command.\n call<T extends CmdKey<any>>(slice: string, payload?: InferParams<T>): boolean\n call<T>(slice: CmdKey<T>, payload?: T): boolean\n call(slice: string | CmdKey<any>, payload?: any): boolean\n call(slice: string | CmdKey<any>, payload?: any): boolean {\n if (this.#ctx == null) throw callCommandBeforeEditorView()\n\n const cmd = this.get(slice)\n const command = cmd(payload)\n const view = this.#ctx.get(editorViewCtx)\n return command(view.state, view.dispatch, view)\n }\n\n /// Call an inline command.\n inline(command: Command) {\n if (this.#ctx == null) throw callCommandBeforeEditorView()\n const view = this.#ctx.get(editorViewCtx)\n return command(view.state, view.dispatch, view)\n }\n\n /// Create a command chain.\n /// All commands added by `pipe` will be run in order until one of them returns `true`.\n chain = (): CommandChain => {\n if (this.#ctx == null) throw callCommandBeforeEditorView()\n const ctx = this.#ctx\n const commands: Command[] = []\n const get = this.get.bind(this)\n\n const chains: CommandChain = {\n run: () => {\n const chained = chainCommands(...commands)\n const view = ctx.get(editorViewCtx)\n return chained(view.state, view.dispatch, view)\n },\n inline: (command: Command) => {\n commands.push(command)\n return chains\n },\n pipe: pipe.bind(this),\n }\n\n function pipe<T extends CmdKey<any>>(\n slice: string,\n payload?: InferParams<T>\n ): typeof chains\n function pipe<T>(slice: CmdKey<T>, payload?: T): typeof chains\n function pipe(slice: string | CmdKey<any>, payload?: any): typeof chains\n function pipe(slice: string | CmdKey<any>, payload?: any) {\n const cmd = get(slice)\n commands.push(cmd(payload))\n return chains\n }\n\n return chains\n }\n}\n\n/// Create a command key, which is a slice type that contains a command.\nexport function createCmdKey<T = undefined>(key = 'cmdKey'): CmdKey<T> {\n return createSlice((() => () => false) as Cmd<T>, key)\n}\n\n/// A slice which contains the command manager.\nexport const commandsCtx = createSlice(new CommandManager(), 'commands')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[SchemaReady]`.\nexport const commandsTimerCtx = createSlice([SchemaReady], 'commandsTimer')\n\n/// The timer which will be resolved when the commands plugin is ready.\nexport const CommandsReady = createTimer('CommandsReady')\n\n/// The commands plugin.\n/// This plugin will create a command manager.\n///\n/// This plugin will wait for the schema plugin.\nexport const commands: MilkdownPlugin = (ctx) => {\n const cmd = new CommandManager()\n cmd.setCtx(ctx)\n ctx\n .inject(commandsCtx, cmd)\n .inject(commandsTimerCtx, [SchemaReady])\n .record(CommandsReady)\n return async () => {\n await ctx.waitTimers(commandsTimerCtx)\n\n ctx.done(CommandsReady)\n\n return () => {\n ctx.remove(commandsCtx).remove(commandsTimerCtx).clearTimer(CommandsReady)\n }\n }\n}\n\nwithMeta(commands, {\n displayName: 'Commands',\n})\n","import type { Command } from '@jvs-milkdown/prose/state'\n\nimport {\n createSlice,\n createTimer,\n type Ctx,\n type MilkdownPlugin,\n type SliceType,\n} from '@jvs-milkdown/ctx'\nimport { ctxCallOutOfScope } from '@jvs-milkdown/exception'\nimport {\n baseKeymap,\n chainCommands,\n deleteSelection,\n joinTextblockBackward,\n selectNodeBackward,\n} from '@jvs-milkdown/prose/commands'\nimport { undoInputRule } from '@jvs-milkdown/prose/inputrules'\n\nimport { SchemaReady } from './schema'\n\n/// @internal\nexport type KeymapItem = {\n key: string\n onRun: (ctx: Ctx) => Command\n priority?: number\n}\n\n/// @internal\nexport type KeymapKey = SliceType<KeymapItem>\n\nfunction overrideBaseKeymap(keymap: Record<string, Command>) {\n const handleBackspace = chainCommands(\n undoInputRule,\n deleteSelection,\n joinTextblockBackward,\n selectNodeBackward\n )\n keymap.Backspace = handleBackspace\n return keymap\n}\n\n/// The keymap manager.\n/// This class is used to manage the keymap.\nexport class KeymapManager {\n /// @internal\n #ctx: Ctx | null = null\n\n #keymap: KeymapItem[] = []\n\n /// @internal\n setCtx = (ctx: Ctx) => {\n this.#ctx = ctx\n }\n\n get ctx() {\n return this.#ctx\n }\n\n /// Add a keymap item.\n /// When not passing a priority, the priority will be 50.\n /// For the same key, the keymap with higher priority will be executed first.\n /// If the priority is the same, the keymap will be executed in the order of addition.\n add = (keymap: KeymapItem) => {\n this.#keymap.push(keymap)\n\n return () => {\n this.#keymap = this.#keymap.filter((item) => item !== keymap)\n }\n }\n\n /// Add an object of keymap items.\n addObjectKeymap = (keymaps: Record<string, Command | KeymapItem>) => {\n const remove: (() => void)[] = []\n Object.entries(keymaps).forEach(([key, command]) => {\n if (typeof command === 'function') {\n const keymapItem = {\n key,\n onRun: () => command,\n }\n\n this.#keymap.push(keymapItem)\n remove.push(() => {\n this.#keymap = this.#keymap.filter((item) => item !== keymapItem)\n })\n } else {\n this.#keymap.push(command)\n remove.push(() => {\n this.#keymap = this.#keymap.filter((item) => item !== command)\n })\n }\n })\n\n return () => {\n remove.forEach((fn) => fn())\n }\n }\n\n /// Add the prosemirror base keymap.\n addBaseKeymap = () => {\n const base = overrideBaseKeymap(baseKeymap)\n return this.addObjectKeymap(base)\n }\n\n /// @internal\n build = () => {\n const keymap: Record<string, KeymapItem[]> = {}\n this.#keymap.forEach((item) => {\n keymap[item.key] = [...(keymap[item.key] || []), item]\n })\n\n const output: Record<string, Command> = Object.fromEntries(\n Object.entries(keymap).map(([key, items]) => {\n const sortedItems = items.sort(\n (a, b) => (b.priority ?? 50) - (a.priority ?? 50)\n )\n\n const command: Command = (state, dispatch, view) => {\n const ctx = this.#ctx\n if (ctx == null) throw ctxCallOutOfScope()\n\n const commands = sortedItems.map((item) => item.onRun(ctx))\n const chained = chainCommands(...commands)\n\n return chained(state, dispatch, view)\n }\n\n return [key, command] as const\n })\n )\n\n return output\n }\n}\n\n/// A slice which stores the keymap manager.\nexport const keymapCtx = createSlice(new KeymapManager(), 'keymap')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[SchemaReady]`.\nexport const keymapTimerCtx = createSlice([SchemaReady], 'keymapTimer')\n\n/// The timer which will be resolved when the keymap plugin is ready.\nexport const KeymapReady = createTimer('KeymapReady')\n\n/// The keymap plugin.\n/// This plugin will create a keymap manager.\n///\n/// This plugin will wait for the schema plugin.\nexport const keymap: MilkdownPlugin = (ctx) => {\n const km = new KeymapManager()\n km.setCtx(ctx)\n ctx\n .inject(keymapCtx, km)\n .inject(keymapTimerCtx, [SchemaReady])\n .record(KeymapReady)\n\n return async () => {\n await ctx.waitTimers(keymapTimerCtx)\n\n ctx.done(KeymapReady)\n\n return () => {\n ctx.remove(keymapCtx).remove(keymapTimerCtx).clearTimer(KeymapReady)\n }\n }\n}\n","import type { MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type { Parser } from '@jvs-milkdown/transformer'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { ctxCallOutOfScope } from '@jvs-milkdown/exception'\nimport { ParserState } from '@jvs-milkdown/transformer'\n\nimport { withMeta } from '../__internal__'\nimport { remarkCtx } from './atoms'\nimport { SchemaReady, schemaCtx } from './schema'\n\n/// The timer which will be resolved when the parser plugin is ready.\nexport const ParserReady = createTimer('ParserReady')\n\nconst outOfScope = (() => {\n throw ctxCallOutOfScope()\n}) as Parser\n\n/// A slice which contains the parser.\nexport const parserCtx = createSlice(outOfScope, 'parser')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[SchemaReady]`.\nexport const parserTimerCtx = createSlice([] as TimerType[], 'parserTimer')\n\n/// The parser plugin.\n/// This plugin will create a parser.\n///\n/// This plugin will wait for the schema plugin.\nexport const parser: MilkdownPlugin = (ctx) => {\n ctx\n .inject(parserCtx, outOfScope)\n .inject(parserTimerCtx, [SchemaReady])\n .record(ParserReady)\n\n return async () => {\n await ctx.waitTimers(parserTimerCtx)\n const remark = ctx.get(remarkCtx)\n const schema = ctx.get(schemaCtx)\n\n ctx.set(parserCtx, ParserState.create(schema, remark))\n ctx.done(ParserReady)\n return () => {\n ctx.remove(parserCtx).remove(parserTimerCtx).clearTimer(ParserReady)\n }\n }\n}\n\nwithMeta(parser, {\n displayName: 'Parser',\n})\n","import type { MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type { Serializer } from '@jvs-milkdown/transformer'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { ctxCallOutOfScope } from '@jvs-milkdown/exception'\nimport { SerializerState } from '@jvs-milkdown/transformer'\n\nimport { withMeta } from '../__internal__'\nimport { remarkCtx } from './atoms'\nimport { SchemaReady, schemaCtx } from './schema'\n\n/// The timer which will be resolved when the serializer plugin is ready.\nexport const SerializerReady = createTimer('SerializerReady')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[SchemaReady]`.\nexport const serializerTimerCtx = createSlice(\n [] as TimerType[],\n 'serializerTimer'\n)\n\nconst outOfScope = (() => {\n throw ctxCallOutOfScope()\n}) as Serializer\n\n/// A slice which contains the serializer.\nexport const serializerCtx = createSlice<Serializer, 'serializer'>(\n outOfScope,\n 'serializer'\n)\n\n/// The serializer plugin.\n/// This plugin will create a serializer.\n///\n/// This plugin will wait for the schema plugin.\nexport const serializer: MilkdownPlugin = (ctx) => {\n ctx\n .inject(serializerCtx, outOfScope)\n .inject(serializerTimerCtx, [SchemaReady])\n .record(SerializerReady)\n\n return async () => {\n await ctx.waitTimers(serializerTimerCtx)\n const remark = ctx.get(remarkCtx)\n const schema = ctx.get(schemaCtx)\n\n ctx.set(serializerCtx, SerializerState.create(schema, remark))\n ctx.done(SerializerReady)\n\n return () => {\n ctx\n .remove(serializerCtx)\n .remove(serializerTimerCtx)\n .clearTimer(SerializerReady)\n }\n }\n}\n\nwithMeta(serializer, {\n displayName: 'Serializer',\n})\n","import type { MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type { Schema } from '@jvs-milkdown/prose/model'\nimport type { JSONRecord, Parser } from '@jvs-milkdown/transformer'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { docTypeError } from '@jvs-milkdown/exception'\nimport { customInputRules as createInputRules } from '@jvs-milkdown/prose'\nimport { keymap as createKeymap } from '@jvs-milkdown/prose/keymap'\nimport { DOMParser, Node } from '@jvs-milkdown/prose/model'\nimport { EditorState, Plugin, PluginKey } from '@jvs-milkdown/prose/state'\n\nimport { withMeta } from '../__internal__'\nimport { editorStateCtx, inputRulesCtx, prosePluginsCtx } from './atoms'\nimport { CommandsReady } from './commands'\nimport { keymapCtx, KeymapReady } from './keymap'\nimport { ParserReady, parserCtx } from './parser'\nimport { schemaCtx } from './schema'\nimport { SerializerReady } from './serializer'\n\n/// @internal\nexport type DefaultValue =\n | string\n | { type: 'html'; dom: HTMLElement }\n | { type: 'json'; value: JSONRecord }\ntype StateOptions = Parameters<typeof EditorState.create>[0]\ntype StateOptionsOverride = (prev: StateOptions) => StateOptions\n\n/// A slice which contains the default value of the editor.\n/// Can be markdown string, html string or json.\nexport const defaultValueCtx = createSlice('' as DefaultValue, 'defaultValue')\n\n/// A slice which contains the options which is used to create the editor state.\nexport const editorStateOptionsCtx = createSlice<StateOptionsOverride>(\n (x) => x,\n 'stateOptions'\n)\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[ParserReady, SerializerReady, CommandsReady]`.\nexport const editorStateTimerCtx = createSlice(\n [] as TimerType[],\n 'editorStateTimer'\n)\n\n/// The timer which will be resolved when the editor state plugin is ready.\nexport const EditorStateReady = createTimer('EditorStateReady')\n\n/// @internal\nexport function getDoc(\n defaultValue: DefaultValue,\n parser: Parser,\n schema: Schema\n) {\n if (typeof defaultValue === 'string') return parser(defaultValue)\n\n if (defaultValue.type === 'html')\n return DOMParser.fromSchema(schema).parse(defaultValue.dom)\n\n if (defaultValue.type === 'json')\n return Node.fromJSON(schema, defaultValue.value)\n\n throw docTypeError(defaultValue)\n}\n\nconst key = new PluginKey('MILKDOWN_STATE_TRACKER')\n\n/// The editor state plugin.\n/// This plugin will create a prosemirror editor state.\n///\n/// This plugin will wait for the parser plugin, serializer plugin and commands plugin.\nexport const editorState: MilkdownPlugin = (ctx) => {\n ctx\n .inject(defaultValueCtx, '')\n .inject(editorStateCtx, {} as EditorState)\n .inject(editorStateOptionsCtx, (x) => x)\n .inject(editorStateTimerCtx, [\n ParserReady,\n SerializerReady,\n CommandsReady,\n KeymapReady,\n ])\n .record(EditorStateReady)\n\n return async () => {\n await ctx.waitTimers(editorStateTimerCtx)\n\n const schema = ctx.get(schemaCtx)\n const parser = ctx.get(parserCtx)\n const rules = ctx.get(inputRulesCtx)\n const optionsOverride = ctx.get(editorStateOptionsCtx)\n const prosePlugins = ctx.get(prosePluginsCtx)\n const defaultValue = ctx.get(defaultValueCtx)\n const doc = getDoc(defaultValue, parser, schema)\n const km = ctx.get(keymapCtx)\n const disposeBaseKeymap = km.addBaseKeymap()\n\n const plugins = [\n ...prosePlugins,\n new Plugin({\n key,\n state: {\n init: () => {\n // do nothing\n },\n apply: (_tr, _value, _oldState, newState) => {\n ctx.set(editorStateCtx, newState)\n },\n },\n }),\n createInputRules({ rules }),\n createKeymap(km.build()),\n ]\n\n ctx.set(prosePluginsCtx, plugins)\n\n const options = optionsOverride({\n schema,\n doc,\n plugins,\n })\n\n const state = EditorState.create(options)\n ctx.set(editorStateCtx, state)\n ctx.done(EditorStateReady)\n\n return () => {\n disposeBaseKeymap()\n ctx\n .remove(defaultValueCtx)\n .remove(editorStateCtx)\n .remove(editorStateOptionsCtx)\n .remove(editorStateTimerCtx)\n .clearTimer(EditorStateReady)\n }\n }\n}\n\nwithMeta(editorState, {\n displayName: 'EditorState',\n})\n","import type { Slice } from '@jvs-milkdown/prose/model'\nimport type { EditorView } from '@jvs-milkdown/prose/view'\n\nimport { createSlice, createTimer, type MilkdownPlugin } from '@jvs-milkdown/ctx'\n\nimport { withMeta } from '../__internal__'\nimport { SchemaReady } from './schema'\n\n/// A paste rule function which takes a slice and returns a new slice.\nexport type PasteRule = {\n /// The function to run the paste rule.\n run: (slice: Slice, view: EditorView, isPlainText: boolean) => Slice\n /// The priority of the paste rule. Higher priority rules will be run first. Default is 50.\n priority?: number\n}\n\n/// A slice which contains the paste rules.\nexport const pasteRulesCtx = createSlice([] as PasteRule[], 'pasteRule')\n\n/// A slice which stores timers that need to be waited for before starting to run the paste rule plugin.\n/// By default, it's `[SchemaReady]`.\nexport const pasteRulesTimerCtx = createSlice([SchemaReady], 'pasteRuleTimer')\n\n/// The timer which will be resolved when the paste rule plugin is ready.\nexport const PasteRulesReady = createTimer('PasteRuleReady')\n\n/// The paste rule plugin.\n/// This plugin will collect the paste rules to the editor view.\n///\n/// This plugin will wait for the schema plugin.\nexport const pasteRule: MilkdownPlugin = (ctx) => {\n ctx\n .inject(pasteRulesCtx, [])\n .inject(pasteRulesTimerCtx, [SchemaReady])\n .record(PasteRulesReady)\n\n return async () => {\n await ctx.waitTimers(pasteRulesTimerCtx)\n\n ctx.done(PasteRulesReady)\n\n return () => {\n ctx\n .remove(pasteRulesCtx)\n .remove(pasteRulesTimerCtx)\n .clearTimer(PasteRulesReady)\n }\n }\n}\n\nwithMeta(pasteRule, {\n displayName: 'PasteRule',\n})\n","import type { Ctx, MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type { DirectEditorProps } from '@jvs-milkdown/prose/view'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { Plugin, PluginKey } from '@jvs-milkdown/prose/state'\nimport { EditorView } from '@jvs-milkdown/prose/view'\n\nimport { withMeta } from '../__internal__'\nimport {\n editorStateCtx,\n editorViewCtx,\n markViewCtx,\n nodeViewCtx,\n prosePluginsCtx,\n} from './atoms'\nimport { EditorStateReady } from './editor-state'\nimport { InitReady } from './init'\nimport { pasteRulesCtx, PasteRulesReady } from './paste-rule'\n\ntype EditorOptions = Omit<DirectEditorProps, 'state'>\n\ntype RootType = Node | undefined | null | string\n\n/// The timer which will be resolved when the editor view plugin is ready.\nexport const EditorViewReady = createTimer('EditorViewReady')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[EditorStateReady]`.\nexport const editorViewTimerCtx = createSlice(\n [] as TimerType[],\n 'editorViewTimer'\n)\n\n/// A slice which contains the editor view options which will be passed to the editor view.\nexport const editorViewOptionsCtx = createSlice(\n {} as Partial<EditorOptions>,\n 'editorViewOptions'\n)\n\n/// A slice which contains the value to get the root element.\n/// Can be a selector string, a node or null.\n/// If it's null, the editor will be created in the body.\nexport const rootCtx = createSlice(null as RootType, 'root')\n\n/// A slice which contains the actually root element.\nexport const rootDOMCtx = createSlice(null as unknown as HTMLElement, 'rootDOM')\n\n/// A slice which contains the root element attributes.\n/// You can add attributes to the root element by this slice.\nexport const rootAttrsCtx = createSlice(\n {} as Record<string, string>,\n 'rootAttrs'\n)\n\nfunction createViewContainer(root: Node, ctx: Ctx) {\n const container = document.createElement('div')\n container.className = 'milkdown'\n root.appendChild(container)\n ctx.set(rootDOMCtx, container)\n\n const attrs = ctx.get(rootAttrsCtx)\n Object.entries(attrs).forEach(([key, value]) =>\n container.setAttribute(key, value)\n )\n\n return container\n}\n\nfunction prepareViewDom(dom: Element) {\n dom.classList.add('editor')\n dom.setAttribute('role', 'textbox')\n}\n\nconst key = new PluginKey('MILKDOWN_VIEW_CLEAR')\n\n/// The editor view plugin.\n/// This plugin will create an editor view.\n///\n/// This plugin will wait for the editor state plugin.\nexport const editorView: MilkdownPlugin = (ctx) => {\n ctx\n .inject(rootCtx, document.body)\n .inject(editorViewCtx, {} as EditorView)\n .inject(editorViewOptionsCtx, {})\n .inject(rootDOMCtx, null as unknown as HTMLElement)\n .inject(rootAttrsCtx, {})\n .inject(editorViewTimerCtx, [EditorStateReady, PasteRulesReady])\n .record(EditorViewReady)\n\n return async () => {\n await ctx.wait(InitReady)\n\n const root = ctx.get(rootCtx) || document.body\n const el = typeof root === 'string' ? document.querySelector(root) : root\n\n ctx.update(prosePluginsCtx, (xs) => [\n new Plugin({\n key,\n view: (editorView) => {\n const container = el ? createViewContainer(el, ctx) : undefined\n\n const handleDOM = () => {\n if (container && el) {\n const editor = editorView.dom\n el.replaceChild(container, editor)\n container.appendChild(editor)\n }\n }\n handleDOM()\n return {\n destroy: () => {\n if (container?.parentNode)\n container?.parentNode.replaceChild(editorView.dom, container)\n\n container?.remove()\n },\n }\n },\n }),\n ...xs,\n ])\n\n await ctx.waitTimers(editorViewTimerCtx)\n\n const state = ctx.get(editorStateCtx)\n const options = ctx.get(editorViewOptionsCtx)\n const nodeViews = Object.fromEntries(ctx.get(nodeViewCtx))\n const markViews = Object.fromEntries(ctx.get(markViewCtx))\n const view = new EditorView(el as Node, {\n state,\n nodeViews,\n markViews,\n transformPasted: (slice, view, isPlainText) => {\n ctx\n .get(pasteRulesCtx)\n .sort((a, b) => (b.priority ?? 50) - (a.priority ?? 50))\n .map((rule) => rule.run)\n .forEach((runner) => {\n slice = runner(slice, view, isPlainText)\n })\n\n return slice\n },\n ...options,\n })\n prepareViewDom(view.dom)\n ctx.set(editorViewCtx, view)\n ctx.done(EditorViewReady)\n\n return () => {\n view?.destroy()\n ctx\n .remove(rootCtx)\n .remove(editorViewCtx)\n .remove(editorViewOptionsCtx)\n .remove(rootDOMCtx)\n .remove(rootAttrsCtx)\n .remove(editorViewTimerCtx)\n .clearTimer(EditorViewReady)\n }\n }\n}\n\nwithMeta(editorView, {\n displayName: 'EditorView',\n})\n","import type { CtxRunner, MilkdownPlugin, Telemetry } from '@jvs-milkdown/ctx'\n\nimport { Clock, Container, Ctx } from '@jvs-milkdown/ctx'\n\nimport type { Config } from '../internal-plugin'\n\nimport {\n commands,\n config,\n editorState,\n editorView,\n init,\n keymap,\n parser,\n pasteRule,\n schema,\n serializer,\n} from '../internal-plugin'\n\n/// The status of the editor.\nexport enum EditorStatus {\n /// The editor is not initialized.\n Idle = 'Idle',\n /// The editor is creating.\n OnCreate = 'OnCreate',\n /// The editor has been created and ready to use.\n Created = 'Created',\n /// The editor is destroying.\n OnDestroy = 'OnDestroy',\n /// The editor has been destroyed.\n Destroyed = 'Destroyed',\n}\n\n/// Type for the callback called when editor status changed.\nexport type OnStatusChange = (status: EditorStatus) => void\n\ntype EditorPluginStore = Map<\n MilkdownPlugin,\n {\n ctx: Ctx | undefined\n handler: CtxRunner | undefined\n cleanup: ReturnType<CtxRunner>\n }\n>\n\n/// The milkdown editor class.\nexport class Editor {\n /// Create a new editor instance.\n static make() {\n return new Editor()\n }\n\n /// @internal\n #enableInspector = false\n /// @internal\n #status = EditorStatus.Idle\n /// @internal\n #configureList: Config[] = []\n /// @internal\n #onStatusChange: OnStatusChange = () => undefined\n\n /// @internal\n readonly #container = new Container()\n /// @internal\n readonly #clock = new Clock()\n\n /// @internal\n readonly #usrPluginStore: EditorPluginStore = new Map()\n\n /// @internal\n readonly #sysPluginStore: EditorPluginStore = new Map()\n\n /// @internal\n readonly #ctx = new Ctx(this.#container, this.#clock)\n\n /// @internal\n readonly #loadInternal = () => {\n const configPlugin = config(async (ctx) => {\n await Promise.all(\n this.#configureList.map((fn) => Promise.resolve(fn(ctx)))\n )\n })\n const internalPlugins = [\n schema,\n parser,\n serializer,\n commands,\n keymap,\n pasteRule,\n editorState,\n editorView,\n init(this),\n configPlugin,\n ]\n this.#prepare(internalPlugins, this.#sysPluginStore)\n }\n\n /// @internal\n readonly #prepare = (plugins: MilkdownPlugin[], store: EditorPluginStore) => {\n plugins.forEach((plugin) => {\n const ctx = this.#ctx.produce(\n this.#enableInspector ? plugin.meta : undefined\n )\n const handler = plugin(ctx)\n store.set(plugin, { ctx, handler, cleanup: undefined })\n })\n }\n\n /// @internal\n readonly #cleanup = (plugins: MilkdownPlugin[], remove = false) => {\n return Promise.all(\n [plugins].flat().map(async (plugin) => {\n const loader = this.#usrPluginStore.get(plugin)\n const cleanup = loader?.cleanup\n if (remove) this.#usrPluginStore.delete(plugin)\n else\n this.#usrPluginStore.set(plugin, {\n ctx: undefined,\n handler: undefined,\n cleanup: undefined,\n })\n\n if (typeof cleanup === 'function') return cleanup()\n\n return cleanup\n })\n )\n }\n\n /// @internal\n readonly #cleanupInternal = async () => {\n await Promise.all(\n [...this.#sysPluginStore.entries()].map(async ([_, { cleanup }]) => {\n if (typeof cleanup === 'function') return cleanup()\n\n return cleanup\n })\n )\n this.#sysPluginStore.clear()\n }\n\n /// @internal\n readonly #setStatus = (status: EditorStatus) => {\n this.#status = status\n this.#onStatusChange(status)\n }\n\n /// @internal\n readonly #loadPluginInStore = (store: EditorPluginStore) => {\n return [...store.entries()].map(async ([key, loader]) => {\n const { ctx, handler } = loader\n if (!handler) return\n\n const cleanup = await handler()\n\n store.set(key, { ctx, handler, cleanup })\n })\n }\n\n /// Get the ctx of the editor.\n get ctx() {\n return this.#ctx\n }\n\n /// Get the status of the editor.\n get status() {\n return this.#status\n }\n\n /// Enable the inspector for the editor.\n /// You can also pass `false` to disable the inspector.\n readonly enableInspector = (enable = true) => {\n this.#enableInspector = enable\n\n return this\n }\n\n /// Subscribe to the status change event for the editor.\n /// The new subscription will replace the old one.\n readonly onStatusChange = (onChange: OnStatusChange) => {\n this.#onStatusChange = onChange\n return this\n }\n\n /// Add a config for the editor.\n readonly config = (configure: Config) => {\n this.#configureList.push(configure)\n return this\n }\n\n /// Remove a config for the editor.\n readonly removeConfig = (configure: Config) => {\n this.#configureList = this.#configureList.filter((x) => x !== configure)\n return this\n }\n\n /// Use a plugin or a list of plugins for the editor.\n readonly use = (plugins: MilkdownPlugin | MilkdownPlugin[]) => {\n const _plugins = [plugins].flat()\n _plugins.flat().forEach((plugin) => {\n this.#usrPluginStore.set(plugin, {\n ctx: undefined,\n handler: undefined,\n cleanup: undefined,\n })\n })\n\n if (this.#status === EditorStatus.Created)\n this.#prepare(_plugins, this.#usrPluginStore)\n\n return this\n }\n\n /// Remove a plugin or a list of plugins from the editor.\n readonly remove = async (\n plugins: MilkdownPlugin | MilkdownPlugin[]\n ): Promise<Editor> => {\n if (this.#status === EditorStatus.OnCreate) {\n console.warn(\n '[Milkdown]: You are trying to remove plugins when the editor is creating, this is not recommended, please check your code.'\n )\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(this.remove(plugins))\n }, 50)\n })\n }\n\n await this.#cleanup([plugins].flat(), true)\n return this\n }\n\n /// Create the editor with current config and plugins.\n /// If the editor is already created, it will be recreated.\n readonly create = async (): Promise<Editor> => {\n if (this.#status === EditorStatus.OnCreate) return this\n\n if (this.#status === EditorStatus.Created) await this.destroy()\n\n this.#setStatus(EditorStatus.OnCreate)\n\n this.#loadInternal()\n this.#prepare([...this.#usrPluginStore.keys()], this.#usrPluginStore)\n\n await Promise.all(\n [\n this.#loadPluginInStore(this.#sysPluginStore),\n this.#loadPluginInStore(this.#usrPluginStore),\n ].flat()\n )\n\n this.#setStatus(EditorStatus.Created)\n return this\n }\n\n /// Destroy the editor.\n /// If you want to clear all plugins, set `clearPlugins` to `true`.\n readonly destroy = async (clearPlugins = false): Promise<Editor> => {\n if (\n this.#status === EditorStatus.Destroyed ||\n this.#status === EditorStatus.OnDestroy\n )\n return this\n\n if (this.#status === EditorStatus.OnCreate) {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(this.destroy(clearPlugins))\n }, 50)\n })\n }\n\n if (clearPlugins) this.#configureList = []\n\n this.#setStatus(EditorStatus.OnDestroy)\n await this.#cleanup([...this.#usrPluginStore.keys()], clearPlugins)\n await this.#cleanupInternal()\n\n this.#setStatus(EditorStatus.Destroyed)\n return this\n }\n\n /// Call an action with the ctx of the editor.\n /// This method should be used after the editor is created.\n readonly action = <T>(action: (ctx: Ctx) => T) => action(this.#ctx)\n\n /// Get inspections of plugins in editor.\n /// Make sure you have enabled inspector by `editor.enableInspector()` before calling this method.\n readonly inspect = (): Telemetry[] => {\n if (!this.#enableInspector) {\n console.warn(\n '[Milkdown]: You are trying to collect inspection when inspector is disabled, please enable inspector by `editor.enableInspector()` first.'\n )\n return []\n }\n return [...this.#sysPluginStore.values(), ...this.#usrPluginStore.values()]\n .map(({ ctx }) => ctx?.inspector?.read())\n .filter((x): x is Telemetry => Boolean(x))\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["#ctx","#container","#ctx","#keymap","#enableInspector","#onStatusChange","#configureList","#usrPluginStore","#status","#prepare","#cleanup","#setStatus","#loadInternal","#loadPluginInStore","#sysPluginStore","#cleanupInternal","#ctx","#container","#clock"],"sources":["../src/__internal__/utils.ts","../src/__internal__/remark-handlers.ts","../src/internal-plugin/atoms.ts","../src/internal-plugin/config.ts","../src/internal-plugin/init.ts","../src/internal-plugin/schema.ts","../src/internal-plugin/commands.ts","../src/internal-plugin/keymap.ts","../src/internal-plugin/parser.ts","../src/internal-plugin/serializer.ts","../src/internal-plugin/editor-state.ts","../src/internal-plugin/paste-rule.ts","../src/internal-plugin/editor-view.ts","../src/editor/editor.ts"],"sourcesContent":["import type { Meta, MilkdownPlugin } from '@jvs-milkdown/ctx'\n\nexport function withMeta<T extends MilkdownPlugin>(\n plugin: T,\n meta: Partial<Meta> & Pick<Meta, 'displayName'>\n): T {\n plugin.meta = {\n package: '@jvs-milkdown/core',\n group: 'System',\n ...meta,\n }\n\n return plugin\n}\n","import type { Options } from 'remark-stringify'\n\nexport const remarkHandlers: Required<Options>['handlers'] = {\n text: (node, _, state, info) => {\n // This config is to remove the `` entity when have trailing spaces\n const value = node.value\n // Check if the text contains only trailing spaces that might be encoded\n if (/^[^*_\\\\]*\\s+$/.test(value)) {\n // For text that ends with spaces but has no markdown special characters that need escaping,\n // return the value directly to preserve trailing spaces\n return value\n }\n // For other text, use safe to handle markdown escaping but prevent space encoding\n return state.safe(value, { ...info, encode: [] })\n },\n strong: (node, _, state, info) => {\n const marker = node.marker || state.options.strong || '*'\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current(),\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n },\n emphasis: (node, _, state, info) => {\n const marker = node.marker || state.options.emphasis || '*'\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current(),\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n },\n}\n","import type { SliceType, TimerType } from '@jvs-milkdown/ctx'\nimport type { InputRule } from '@jvs-milkdown/prose/inputrules'\nimport type { EditorState, Plugin } from '@jvs-milkdown/prose/state'\nimport type {\n EditorView,\n MarkViewConstructor,\n NodeViewConstructor,\n} from '@jvs-milkdown/prose/view'\nimport type { RemarkParser, RemarkPlugin } from '@jvs-milkdown/transformer'\nimport type { Options } from 'remark-stringify'\n\nimport { createSlice } from '@jvs-milkdown/ctx'\nimport remarkParse from 'remark-parse'\nimport remarkStringify from 'remark-stringify'\nimport { unified } from 'unified'\n\nimport type { Editor } from '../editor'\n\nimport { remarkHandlers } from '../__internal__'\n\n/// A slice which contains the editor view instance.\nexport const editorViewCtx = createSlice({} as EditorView, 'editorView')\n\n/// A slice which contains the editor state.\nexport const editorStateCtx = createSlice({} as EditorState, 'editorState')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[ConfigReady]`.\nexport const initTimerCtx = createSlice([] as TimerType[], 'initTimer')\n\n/// A slice which stores the editor instance.\nexport const editorCtx = createSlice({} as Editor, 'editor')\n\n/// A slice which stores the input rules.\nexport const inputRulesCtx = createSlice([] as InputRule[], 'inputRules')\n\n/// A slice which stores the prosemirror plugins.\nexport const prosePluginsCtx = createSlice([] as Plugin[], 'prosePlugins')\n\n/// A slice which stores the remark plugins.\nexport const remarkPluginsCtx = createSlice(\n [] as RemarkPlugin[],\n 'remarkPlugins'\n)\n\ntype NodeView = [nodeId: string, view: NodeViewConstructor]\n\n/// A slice which stores the prosemirror node views.\nexport const nodeViewCtx = createSlice([] as NodeView[], 'nodeView')\n\ntype MarkView = [nodeId: string, view: MarkViewConstructor]\n\n/// A slice which stores the prosemirror mark views.\nexport const markViewCtx = createSlice([] as MarkView[], 'markView')\n\n/// A slice which stores the remark instance.\nexport const remarkCtx: SliceType<RemarkParser, 'remark'> = createSlice(\n unified().use(remarkParse).use(remarkStringify),\n 'remark'\n)\n\n/// A slice which stores the remark stringify options.\nexport const remarkStringifyOptionsCtx = createSlice(\n {\n handlers: remarkHandlers,\n encode: [],\n } as Options,\n 'remarkStringifyOptions'\n)\n","import type { Ctx, MilkdownPlugin } from '@jvs-milkdown/ctx'\n\nimport { createTimer } from '@jvs-milkdown/ctx'\n\nimport { withMeta } from '../__internal__'\n\n/// @internal\nexport type Config = (ctx: Ctx) => void | Promise<void>\n\n/// The timer which will be resolved when the config plugin is ready.\nexport const ConfigReady = createTimer('ConfigReady')\n\n/// The config plugin.\n/// This plugin will load all user configs.\nexport function config(configure: Config): MilkdownPlugin {\n const plugin: MilkdownPlugin = (ctx) => {\n ctx.record(ConfigReady)\n\n return async () => {\n await configure(ctx)\n ctx.done(ConfigReady)\n\n return () => {\n ctx.clearTimer(ConfigReady)\n }\n }\n }\n\n withMeta(plugin, {\n displayName: 'Config',\n })\n\n return plugin\n}\n","import type { MilkdownPlugin } from '@jvs-milkdown/ctx'\n\nimport { createTimer } from '@jvs-milkdown/ctx'\nimport remarkParse from 'remark-parse'\nimport remarkStringify, { type Options } from 'remark-stringify'\nimport { unified } from 'unified'\n\nimport type { Editor } from '../editor'\n\nimport { remarkHandlers, withMeta } from '../__internal__'\nimport {\n editorCtx,\n initTimerCtx,\n inputRulesCtx,\n markViewCtx,\n nodeViewCtx,\n prosePluginsCtx,\n remarkCtx,\n remarkPluginsCtx,\n remarkStringifyOptionsCtx,\n} from './atoms'\nimport { ConfigReady } from './config'\n\n/// The timer which will be resolved when the init plugin is ready.\nexport const InitReady = createTimer('InitReady')\n\n/// The init plugin.\n/// This plugin prepare slices that needed by other plugins. And create a remark instance.\n///\n/// This plugin will wait for the config plugin.\nexport function init(editor: Editor): MilkdownPlugin {\n const plugin: MilkdownPlugin = (ctx) => {\n ctx\n .inject(editorCtx, editor)\n .inject(prosePluginsCtx, [])\n .inject(remarkPluginsCtx, [])\n .inject(inputRulesCtx, [])\n .inject(nodeViewCtx, [])\n .inject(markViewCtx, [])\n .inject(remarkStringifyOptionsCtx, {\n handlers: remarkHandlers,\n encode: [],\n } as Options)\n .inject(remarkCtx, unified().use(remarkParse).use(remarkStringify))\n .inject(initTimerCtx, [ConfigReady])\n .record(InitReady)\n\n return async () => {\n await ctx.waitTimers(initTimerCtx)\n const options = ctx.get(remarkStringifyOptionsCtx)\n ctx.set(\n remarkCtx,\n unified().use(remarkParse).use(remarkStringify, options)\n )\n\n ctx.done(InitReady)\n\n return () => {\n ctx\n .remove(editorCtx)\n .remove(prosePluginsCtx)\n .remove(remarkPluginsCtx)\n .remove(inputRulesCtx)\n .remove(nodeViewCtx)\n .remove(markViewCtx)\n .remove(remarkStringifyOptionsCtx)\n .remove(remarkCtx)\n .remove(initTimerCtx)\n .clearTimer(InitReady)\n }\n }\n }\n withMeta(plugin, {\n displayName: 'Init',\n })\n\n return plugin\n}\n","import type { MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type {\n MarkSchema,\n NodeSchema,\n RemarkParser,\n} from '@jvs-milkdown/transformer'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { Schema } from '@jvs-milkdown/prose/model'\n\nimport { withMeta } from '../__internal__'\nimport { remarkCtx, remarkPluginsCtx } from './atoms'\nimport { InitReady } from './init'\n\n/// The timer which will be resolved when the schema plugin is ready.\nexport const SchemaReady = createTimer('SchemaReady')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[InitReady]`.\nexport const schemaTimerCtx = createSlice([] as TimerType[], 'schemaTimer')\n\n/// A slice which contains the schema.\nexport const schemaCtx = createSlice({} as Schema, 'schema')\n\n/// A slice which stores the nodes spec.\nexport const nodesCtx = createSlice([] as Array<[string, NodeSchema]>, 'nodes')\n\n/// A slice which stores the marks spec.\nexport const marksCtx = createSlice([] as Array<[string, MarkSchema]>, 'marks')\n\nfunction extendPriority<T extends NodeSchema | MarkSchema>(x: T): T {\n return {\n ...x,\n parseDOM: x.parseDOM?.map((rule) => ({ priority: x.priority, ...rule })),\n }\n}\n\n/// The schema plugin.\n/// This plugin will load all nodes spec and marks spec and create a schema.\n///\n/// This plugin will wait for the init plugin.\nexport const schema: MilkdownPlugin = (ctx) => {\n ctx\n .inject(schemaCtx, {} as Schema)\n .inject(nodesCtx, [])\n .inject(marksCtx, [])\n .inject(schemaTimerCtx, [InitReady])\n .record(SchemaReady)\n\n return async () => {\n await ctx.waitTimers(schemaTimerCtx)\n\n const remark = ctx.get(remarkCtx)\n const remarkPlugins = ctx.get(remarkPluginsCtx)\n\n const processor = remarkPlugins.reduce(\n (acc: RemarkParser, plug) =>\n acc.use(plug.plugin, plug.options) as unknown as RemarkParser,\n remark\n )\n ctx.set(remarkCtx, processor)\n\n const nodes = Object.fromEntries(\n ctx.get(nodesCtx).map(([key, x]) => [key, extendPriority(x)])\n )\n const marks = Object.fromEntries(\n ctx.get(marksCtx).map(([key, x]) => [key, extendPriority(x)])\n )\n const schema = new Schema({ nodes, marks })\n\n ctx.set(schemaCtx, schema)\n\n ctx.done(SchemaReady)\n\n return () => {\n ctx\n .remove(schemaCtx)\n .remove(nodesCtx)\n .remove(marksCtx)\n .remove(schemaTimerCtx)\n .clearTimer(SchemaReady)\n }\n }\n}\n\nwithMeta(schema, {\n displayName: 'Schema',\n})\n","import type { Ctx, MilkdownPlugin, SliceType } from '@jvs-milkdown/ctx'\nimport type { Command } from '@jvs-milkdown/prose/state'\n\nimport { Container, createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { callCommandBeforeEditorView } from '@jvs-milkdown/exception'\nimport { chainCommands } from '@jvs-milkdown/prose/commands'\n\nimport { withMeta } from '../__internal__'\nimport { editorViewCtx } from './atoms'\nimport { SchemaReady } from './schema'\n\n/// @internal\nexport type Cmd<T = undefined> = (payload?: T) => Command\n\n/// @internal\nexport type CmdKey<T = undefined> = SliceType<Cmd<T>>\n\ntype InferParams<T> = T extends CmdKey<infer U> ? U : never\n\n/// A chainable command helper.\nexport interface CommandChain {\n /// Run the command chain.\n run: () => boolean\n /// Add an inline command to the chain.\n inline: (command: Command) => CommandChain\n /// Add a registered command to the chain.\n pipe: {\n <T extends CmdKey<any>>(\n slice: string,\n payload?: InferParams<T>\n ): CommandChain\n <T>(slice: CmdKey<T>, payload?: T): CommandChain\n (slice: string | CmdKey<any>, payload?: any): CommandChain\n }\n}\n\n/// The command manager.\n/// This manager will manage all commands in editor.\n/// Generally, you don't need to use this manager directly.\n/// You can use the `$command` and `$commandAsync` in `@jvs-milkdown/utils` to create and call a command.\nexport class CommandManager {\n /// @internal\n #container = new Container()\n\n /// @internal\n #ctx: Ctx | null = null\n\n /// @internal\n setCtx = (ctx: Ctx) => {\n this.#ctx = ctx\n }\n\n get ctx() {\n return this.#ctx\n }\n\n /// Register a command into the manager.\n create<T>(meta: CmdKey<T>, value: Cmd<T>) {\n const slice = meta.create(this.#container.sliceMap)\n slice.set(value)\n return slice\n }\n\n /// Get a command from the manager.\n get<T extends CmdKey<any>>(slice: string): Cmd<InferParams<T>>\n get<T>(slice: CmdKey<T>): Cmd<T>\n get(slice: string | CmdKey<any>): Cmd<any>\n get(slice: string | CmdKey<any>): Cmd<any> {\n return this.#container.get(slice).get()\n }\n\n /// Remove a command from the manager.\n remove<T extends CmdKey<any>>(slice: string): void\n remove<T>(slice: CmdKey<T>): void\n remove(slice: string | CmdKey<any>): void\n remove(slice: string | CmdKey<any>): void {\n return this.#container.remove(slice)\n }\n\n /// Call a registered command.\n call<T extends CmdKey<any>>(slice: string, payload?: InferParams<T>): boolean\n call<T>(slice: CmdKey<T>, payload?: T): boolean\n call(slice: string | CmdKey<any>, payload?: any): boolean\n call(slice: string | CmdKey<any>, payload?: any): boolean {\n if (this.#ctx == null) throw callCommandBeforeEditorView()\n\n const cmd = this.get(slice)\n const command = cmd(payload)\n const view = this.#ctx.get(editorViewCtx)\n return command(view.state, view.dispatch, view)\n }\n\n /// Call an inline command.\n inline(command: Command) {\n if (this.#ctx == null) throw callCommandBeforeEditorView()\n const view = this.#ctx.get(editorViewCtx)\n return command(view.state, view.dispatch, view)\n }\n\n /// Create a command chain.\n /// All commands added by `pipe` will be run in order until one of them returns `true`.\n chain = (): CommandChain => {\n if (this.#ctx == null) throw callCommandBeforeEditorView()\n const ctx = this.#ctx\n const commands: Command[] = []\n const get = this.get.bind(this)\n\n const chains: CommandChain = {\n run: () => {\n const chained = chainCommands(...commands)\n const view = ctx.get(editorViewCtx)\n return chained(view.state, view.dispatch, view)\n },\n inline: (command: Command) => {\n commands.push(command)\n return chains\n },\n pipe: pipe.bind(this),\n }\n\n function pipe<T extends CmdKey<any>>(\n slice: string,\n payload?: InferParams<T>\n ): typeof chains\n function pipe<T>(slice: CmdKey<T>, payload?: T): typeof chains\n function pipe(slice: string | CmdKey<any>, payload?: any): typeof chains\n function pipe(slice: string | CmdKey<any>, payload?: any) {\n const cmd = get(slice)\n commands.push(cmd(payload))\n return chains\n }\n\n return chains\n }\n}\n\n/// Create a command key, which is a slice type that contains a command.\nexport function createCmdKey<T = undefined>(key = 'cmdKey'): CmdKey<T> {\n return createSlice((() => () => false) as Cmd<T>, key)\n}\n\n/// A slice which contains the command manager.\nexport const commandsCtx = createSlice(new CommandManager(), 'commands')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[SchemaReady]`.\nexport const commandsTimerCtx = createSlice([SchemaReady], 'commandsTimer')\n\n/// The timer which will be resolved when the commands plugin is ready.\nexport const CommandsReady = createTimer('CommandsReady')\n\n/// The commands plugin.\n/// This plugin will create a command manager.\n///\n/// This plugin will wait for the schema plugin.\nexport const commands: MilkdownPlugin = (ctx) => {\n const cmd = new CommandManager()\n cmd.setCtx(ctx)\n ctx\n .inject(commandsCtx, cmd)\n .inject(commandsTimerCtx, [SchemaReady])\n .record(CommandsReady)\n return async () => {\n await ctx.waitTimers(commandsTimerCtx)\n\n ctx.done(CommandsReady)\n\n return () => {\n ctx.remove(commandsCtx).remove(commandsTimerCtx).clearTimer(CommandsReady)\n }\n }\n}\n\nwithMeta(commands, {\n displayName: 'Commands',\n})\n","import {\n createSlice,\n createTimer,\n type Ctx,\n type MilkdownPlugin,\n type SliceType,\n} from '@jvs-milkdown/ctx'\nimport { ctxCallOutOfScope } from '@jvs-milkdown/exception'\nimport {\n baseKeymap,\n chainCommands,\n deleteSelection,\n joinTextblockBackward,\n selectAll,\n selectNodeBackward,\n} from '@jvs-milkdown/prose/commands'\nimport { undoInputRule } from '@jvs-milkdown/prose/inputrules'\nimport { TextSelection, type Command } from '@jvs-milkdown/prose/state'\n\nimport { SchemaReady } from './schema'\n\n/// @internal\nexport type KeymapItem = {\n key: string\n onRun: (ctx: Ctx) => Command\n priority?: number\n}\n\n/// @internal\nexport type KeymapKey = SliceType<KeymapItem>\n\nfunction overrideBaseKeymap(keymap: Record<string, Command>) {\n const customKeymap = { ...keymap }\n const handleBackspace = chainCommands(\n undoInputRule,\n deleteSelection,\n joinTextblockBackward,\n selectNodeBackward\n )\n customKeymap.Backspace = handleBackspace\n\n const handleSelectAll: Command = (state, dispatch) => {\n const { selection, doc } = state\n const { $from, $to } = selection\n\n const sameParent = $from.sameParent($to)\n\n if (sameParent && $from.parent.isTextblock) {\n const blockStart = $from.start()\n const blockEnd = $from.end()\n\n if ($from.pos !== blockStart || $to.pos !== blockEnd) {\n if (dispatch) {\n dispatch(\n state.tr.setSelection(\n TextSelection.create(doc, blockStart, blockEnd)\n )\n )\n }\n return true\n }\n }\n\n return selectAll(state, dispatch)\n }\n\n customKeymap['Mod-a'] = handleSelectAll\n\n return customKeymap\n}\n\n/// The keymap manager.\n/// This class is used to manage the keymap.\nexport class KeymapManager {\n /// @internal\n #ctx: Ctx | null = null\n\n #keymap: KeymapItem[] = []\n\n /// @internal\n setCtx = (ctx: Ctx) => {\n this.#ctx = ctx\n }\n\n get ctx() {\n return this.#ctx\n }\n\n /// Add a keymap item.\n /// When not passing a priority, the priority will be 50.\n /// For the same key, the keymap with higher priority will be executed first.\n /// If the priority is the same, the keymap will be executed in the order of addition.\n add = (keymap: KeymapItem) => {\n this.#keymap.push(keymap)\n\n return () => {\n this.#keymap = this.#keymap.filter((item) => item !== keymap)\n }\n }\n\n /// Add an object of keymap items.\n addObjectKeymap = (keymaps: Record<string, Command | KeymapItem>) => {\n const remove: (() => void)[] = []\n Object.entries(keymaps).forEach(([key, command]) => {\n if (typeof command === 'function') {\n const keymapItem = {\n key,\n onRun: () => command,\n }\n\n this.#keymap.push(keymapItem)\n remove.push(() => {\n this.#keymap = this.#keymap.filter((item) => item !== keymapItem)\n })\n } else {\n this.#keymap.push(command)\n remove.push(() => {\n this.#keymap = this.#keymap.filter((item) => item !== command)\n })\n }\n })\n\n return () => {\n remove.forEach((fn) => fn())\n }\n }\n\n /// Add the prosemirror base keymap.\n addBaseKeymap = () => {\n const base = overrideBaseKeymap(baseKeymap)\n return this.addObjectKeymap(base)\n }\n\n /// @internal\n build = () => {\n const keymap: Record<string, KeymapItem[]> = {}\n this.#keymap.forEach((item) => {\n keymap[item.key] = [...(keymap[item.key] || []), item]\n })\n\n const output: Record<string, Command> = Object.fromEntries(\n Object.entries(keymap).map(([key, items]) => {\n const sortedItems = items.sort(\n (a, b) => (b.priority ?? 50) - (a.priority ?? 50)\n )\n\n const command: Command = (state, dispatch, view) => {\n const ctx = this.#ctx\n if (ctx == null) throw ctxCallOutOfScope()\n\n const commands = sortedItems.map((item) => item.onRun(ctx))\n const chained = chainCommands(...commands)\n\n return chained(state, dispatch, view)\n }\n\n return [key, command] as const\n })\n )\n\n return output\n }\n}\n\n/// A slice which stores the keymap manager.\nexport const keymapCtx = createSlice(new KeymapManager(), 'keymap')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[SchemaReady]`.\nexport const keymapTimerCtx = createSlice([SchemaReady], 'keymapTimer')\n\n/// The timer which will be resolved when the keymap plugin is ready.\nexport const KeymapReady = createTimer('KeymapReady')\n\n/// The keymap plugin.\n/// This plugin will create a keymap manager.\n///\n/// This plugin will wait for the schema plugin.\nexport const keymap: MilkdownPlugin = (ctx) => {\n const km = new KeymapManager()\n km.setCtx(ctx)\n ctx\n .inject(keymapCtx, km)\n .inject(keymapTimerCtx, [SchemaReady])\n .record(KeymapReady)\n\n return async () => {\n await ctx.waitTimers(keymapTimerCtx)\n\n ctx.done(KeymapReady)\n\n return () => {\n ctx.remove(keymapCtx).remove(keymapTimerCtx).clearTimer(KeymapReady)\n }\n }\n}\n","import type { MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type { Parser } from '@jvs-milkdown/transformer'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { ctxCallOutOfScope } from '@jvs-milkdown/exception'\nimport { ParserState } from '@jvs-milkdown/transformer'\n\nimport { withMeta } from '../__internal__'\nimport { remarkCtx } from './atoms'\nimport { SchemaReady, schemaCtx } from './schema'\n\n/// The timer which will be resolved when the parser plugin is ready.\nexport const ParserReady = createTimer('ParserReady')\n\nconst outOfScope = (() => {\n throw ctxCallOutOfScope()\n}) as Parser\n\n/// A slice which contains the parser.\nexport const parserCtx = createSlice(outOfScope, 'parser')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[SchemaReady]`.\nexport const parserTimerCtx = createSlice([] as TimerType[], 'parserTimer')\n\n/// The parser plugin.\n/// This plugin will create a parser.\n///\n/// This plugin will wait for the schema plugin.\nexport const parser: MilkdownPlugin = (ctx) => {\n ctx\n .inject(parserCtx, outOfScope)\n .inject(parserTimerCtx, [SchemaReady])\n .record(ParserReady)\n\n return async () => {\n await ctx.waitTimers(parserTimerCtx)\n const remark = ctx.get(remarkCtx)\n const schema = ctx.get(schemaCtx)\n\n ctx.set(parserCtx, ParserState.create(schema, remark))\n ctx.done(ParserReady)\n return () => {\n ctx.remove(parserCtx).remove(parserTimerCtx).clearTimer(ParserReady)\n }\n }\n}\n\nwithMeta(parser, {\n displayName: 'Parser',\n})\n","import type { MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type { Serializer } from '@jvs-milkdown/transformer'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { ctxCallOutOfScope } from '@jvs-milkdown/exception'\nimport { SerializerState } from '@jvs-milkdown/transformer'\n\nimport { withMeta } from '../__internal__'\nimport { remarkCtx } from './atoms'\nimport { SchemaReady, schemaCtx } from './schema'\n\n/// The timer which will be resolved when the serializer plugin is ready.\nexport const SerializerReady = createTimer('SerializerReady')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[SchemaReady]`.\nexport const serializerTimerCtx = createSlice(\n [] as TimerType[],\n 'serializerTimer'\n)\n\nconst outOfScope = (() => {\n throw ctxCallOutOfScope()\n}) as Serializer\n\n/// A slice which contains the serializer.\nexport const serializerCtx = createSlice<Serializer, 'serializer'>(\n outOfScope,\n 'serializer'\n)\n\n/// The serializer plugin.\n/// This plugin will create a serializer.\n///\n/// This plugin will wait for the schema plugin.\nexport const serializer: MilkdownPlugin = (ctx) => {\n ctx\n .inject(serializerCtx, outOfScope)\n .inject(serializerTimerCtx, [SchemaReady])\n .record(SerializerReady)\n\n return async () => {\n await ctx.waitTimers(serializerTimerCtx)\n const remark = ctx.get(remarkCtx)\n const schema = ctx.get(schemaCtx)\n\n ctx.set(serializerCtx, SerializerState.create(schema, remark))\n ctx.done(SerializerReady)\n\n return () => {\n ctx\n .remove(serializerCtx)\n .remove(serializerTimerCtx)\n .clearTimer(SerializerReady)\n }\n }\n}\n\nwithMeta(serializer, {\n displayName: 'Serializer',\n})\n","import type { MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type { Schema } from '@jvs-milkdown/prose/model'\nimport type { JSONRecord, Parser } from '@jvs-milkdown/transformer'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { docTypeError } from '@jvs-milkdown/exception'\nimport { customInputRules as createInputRules } from '@jvs-milkdown/prose'\nimport { keymap as createKeymap } from '@jvs-milkdown/prose/keymap'\nimport { DOMParser, Node } from '@jvs-milkdown/prose/model'\nimport { EditorState, Plugin, PluginKey } from '@jvs-milkdown/prose/state'\n\nimport { withMeta } from '../__internal__'\nimport { editorStateCtx, inputRulesCtx, prosePluginsCtx } from './atoms'\nimport { CommandsReady } from './commands'\nimport { keymapCtx, KeymapReady } from './keymap'\nimport { ParserReady, parserCtx } from './parser'\nimport { schemaCtx } from './schema'\nimport { SerializerReady } from './serializer'\n\n/// @internal\nexport type DefaultValue =\n | string\n | { type: 'html'; dom: HTMLElement }\n | { type: 'json'; value: JSONRecord }\ntype StateOptions = Parameters<typeof EditorState.create>[0]\ntype StateOptionsOverride = (prev: StateOptions) => StateOptions\n\n/// A slice which contains the default value of the editor.\n/// Can be markdown string, html string or json.\nexport const defaultValueCtx = createSlice('' as DefaultValue, 'defaultValue')\n\n/// A slice which contains the options which is used to create the editor state.\nexport const editorStateOptionsCtx = createSlice<StateOptionsOverride>(\n (x) => x,\n 'stateOptions'\n)\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[ParserReady, SerializerReady, CommandsReady]`.\nexport const editorStateTimerCtx = createSlice(\n [] as TimerType[],\n 'editorStateTimer'\n)\n\n/// The timer which will be resolved when the editor state plugin is ready.\nexport const EditorStateReady = createTimer('EditorStateReady')\n\n/// @internal\nexport function getDoc(\n defaultValue: DefaultValue,\n parser: Parser,\n schema: Schema\n) {\n if (typeof defaultValue === 'string') return parser(defaultValue)\n\n if (defaultValue.type === 'html')\n return DOMParser.fromSchema(schema).parse(defaultValue.dom)\n\n if (defaultValue.type === 'json')\n return Node.fromJSON(schema, defaultValue.value)\n\n throw docTypeError(defaultValue)\n}\n\nconst key = new PluginKey('MILKDOWN_STATE_TRACKER')\n\n/// The editor state plugin.\n/// This plugin will create a prosemirror editor state.\n///\n/// This plugin will wait for the parser plugin, serializer plugin and commands plugin.\nexport const editorState: MilkdownPlugin = (ctx) => {\n ctx\n .inject(defaultValueCtx, '')\n .inject(editorStateCtx, {} as EditorState)\n .inject(editorStateOptionsCtx, (x) => x)\n .inject(editorStateTimerCtx, [\n ParserReady,\n SerializerReady,\n CommandsReady,\n KeymapReady,\n ])\n .record(EditorStateReady)\n\n return async () => {\n await ctx.waitTimers(editorStateTimerCtx)\n\n const schema = ctx.get(schemaCtx)\n const parser = ctx.get(parserCtx)\n const rules = ctx.get(inputRulesCtx)\n const optionsOverride = ctx.get(editorStateOptionsCtx)\n const prosePlugins = ctx.get(prosePluginsCtx)\n const defaultValue = ctx.get(defaultValueCtx)\n const doc = getDoc(defaultValue, parser, schema)\n const km = ctx.get(keymapCtx)\n const disposeBaseKeymap = km.addBaseKeymap()\n\n const plugins = [\n ...prosePlugins,\n new Plugin({\n key,\n state: {\n init: () => {\n // do nothing\n },\n apply: (_tr, _value, _oldState, newState) => {\n ctx.set(editorStateCtx, newState)\n },\n },\n }),\n createInputRules({ rules }),\n createKeymap(km.build()),\n ]\n\n ctx.set(prosePluginsCtx, plugins)\n\n const options = optionsOverride({\n schema,\n doc,\n plugins,\n })\n\n const state = EditorState.create(options)\n ctx.set(editorStateCtx, state)\n ctx.done(EditorStateReady)\n\n return () => {\n disposeBaseKeymap()\n ctx\n .remove(defaultValueCtx)\n .remove(editorStateCtx)\n .remove(editorStateOptionsCtx)\n .remove(editorStateTimerCtx)\n .clearTimer(EditorStateReady)\n }\n }\n}\n\nwithMeta(editorState, {\n displayName: 'EditorState',\n})\n","import type { Slice } from '@jvs-milkdown/prose/model'\nimport type { EditorView } from '@jvs-milkdown/prose/view'\n\nimport { createSlice, createTimer, type MilkdownPlugin } from '@jvs-milkdown/ctx'\n\nimport { withMeta } from '../__internal__'\nimport { SchemaReady } from './schema'\n\n/// A paste rule function which takes a slice and returns a new slice.\nexport type PasteRule = {\n /// The function to run the paste rule.\n run: (slice: Slice, view: EditorView, isPlainText: boolean) => Slice\n /// The priority of the paste rule. Higher priority rules will be run first. Default is 50.\n priority?: number\n}\n\n/// A slice which contains the paste rules.\nexport const pasteRulesCtx = createSlice([] as PasteRule[], 'pasteRule')\n\n/// A slice which stores timers that need to be waited for before starting to run the paste rule plugin.\n/// By default, it's `[SchemaReady]`.\nexport const pasteRulesTimerCtx = createSlice([SchemaReady], 'pasteRuleTimer')\n\n/// The timer which will be resolved when the paste rule plugin is ready.\nexport const PasteRulesReady = createTimer('PasteRuleReady')\n\n/// The paste rule plugin.\n/// This plugin will collect the paste rules to the editor view.\n///\n/// This plugin will wait for the schema plugin.\nexport const pasteRule: MilkdownPlugin = (ctx) => {\n ctx\n .inject(pasteRulesCtx, [])\n .inject(pasteRulesTimerCtx, [SchemaReady])\n .record(PasteRulesReady)\n\n return async () => {\n await ctx.waitTimers(pasteRulesTimerCtx)\n\n ctx.done(PasteRulesReady)\n\n return () => {\n ctx\n .remove(pasteRulesCtx)\n .remove(pasteRulesTimerCtx)\n .clearTimer(PasteRulesReady)\n }\n }\n}\n\nwithMeta(pasteRule, {\n displayName: 'PasteRule',\n})\n","import type { Ctx, MilkdownPlugin, TimerType } from '@jvs-milkdown/ctx'\nimport type { DirectEditorProps } from '@jvs-milkdown/prose/view'\n\nimport { createSlice, createTimer } from '@jvs-milkdown/ctx'\nimport { Plugin, PluginKey } from '@jvs-milkdown/prose/state'\nimport { EditorView } from '@jvs-milkdown/prose/view'\n\nimport { withMeta } from '../__internal__'\nimport {\n editorStateCtx,\n editorViewCtx,\n markViewCtx,\n nodeViewCtx,\n prosePluginsCtx,\n} from './atoms'\nimport { EditorStateReady } from './editor-state'\nimport { InitReady } from './init'\nimport { pasteRulesCtx, PasteRulesReady } from './paste-rule'\n\ntype EditorOptions = Omit<DirectEditorProps, 'state'>\n\ntype RootType = Node | undefined | null | string\n\n/// The timer which will be resolved when the editor view plugin is ready.\nexport const EditorViewReady = createTimer('EditorViewReady')\n\n/// A slice which stores timers that need to be waited for before starting to run the plugin.\n/// By default, it's `[EditorStateReady]`.\nexport const editorViewTimerCtx = createSlice(\n [] as TimerType[],\n 'editorViewTimer'\n)\n\n/// A slice which contains the editor view options which will be passed to the editor view.\nexport const editorViewOptionsCtx = createSlice(\n {} as Partial<EditorOptions>,\n 'editorViewOptions'\n)\n\n/// A slice which contains the value to get the root element.\n/// Can be a selector string, a node or null.\n/// If it's null, the editor will be created in the body.\nexport const rootCtx = createSlice(null as RootType, 'root')\n\n/// A slice which contains the actually root element.\nexport const rootDOMCtx = createSlice(null as unknown as HTMLElement, 'rootDOM')\n\n/// A slice which contains the root element attributes.\n/// You can add attributes to the root element by this slice.\nexport const rootAttrsCtx = createSlice(\n {} as Record<string, string>,\n 'rootAttrs'\n)\n\nfunction createViewContainer(root: Node, ctx: Ctx) {\n const container = document.createElement('div')\n container.className = 'milkdown'\n container.style = 'height: calc(100vh - 32px);'\n root.appendChild(container)\n ctx.set(rootDOMCtx, container)\n\n const attrs = ctx.get(rootAttrsCtx)\n Object.entries(attrs).forEach(([key, value]) =>\n container.setAttribute(key, value)\n )\n\n return container\n}\n\nfunction prepareViewDom(dom: Element) {\n dom.classList.add('editor')\n dom.setAttribute('role', 'textbox')\n}\n\nconst key = new PluginKey('MILKDOWN_VIEW_CLEAR')\n\n/// The editor view plugin.\n/// This plugin will create an editor view.\n///\n/// This plugin will wait for the editor state plugin.\nexport const editorView: MilkdownPlugin = (ctx) => {\n ctx\n .inject(rootCtx, document.body)\n .inject(editorViewCtx, {} as EditorView)\n .inject(editorViewOptionsCtx, {})\n .inject(rootDOMCtx, null as unknown as HTMLElement)\n .inject(rootAttrsCtx, {})\n .inject(editorViewTimerCtx, [EditorStateReady, PasteRulesReady])\n .record(EditorViewReady)\n\n return async () => {\n await ctx.wait(InitReady)\n\n const root = ctx.get(rootCtx) || document.body\n const el = typeof root === 'string' ? document.querySelector(root) : root\n\n ctx.update(prosePluginsCtx, (xs) => [\n new Plugin({\n key,\n view: (editorView) => {\n const container = el ? createViewContainer(el, ctx) : undefined\n\n const handleDOM = () => {\n if (container && el) {\n const editor = editorView.dom\n el.replaceChild(container, editor)\n container.appendChild(editor)\n }\n }\n handleDOM()\n return {\n destroy: () => {\n if (container?.parentNode)\n container?.parentNode.replaceChild(editorView.dom, container)\n\n container?.remove()\n },\n }\n },\n }),\n ...xs,\n ])\n\n await ctx.waitTimers(editorViewTimerCtx)\n\n const state = ctx.get(editorStateCtx)\n const options = ctx.get(editorViewOptionsCtx)\n const nodeViews = Object.fromEntries(ctx.get(nodeViewCtx))\n const markViews = Object.fromEntries(ctx.get(markViewCtx))\n const view = new EditorView(el as Node, {\n state,\n nodeViews,\n markViews,\n transformPasted: (slice, view, isPlainText) => {\n ctx\n .get(pasteRulesCtx)\n .sort((a, b) => (b.priority ?? 50) - (a.priority ?? 50))\n .map((rule) => rule.run)\n .forEach((runner) => {\n slice = runner(slice, view, isPlainText)\n })\n\n return slice\n },\n ...options,\n })\n prepareViewDom(view.dom)\n ctx.set(editorViewCtx, view)\n ctx.done(EditorViewReady)\n\n return () => {\n view?.destroy()\n ctx\n .remove(rootCtx)\n .remove(editorViewCtx)\n .remove(editorViewOptionsCtx)\n .remove(rootDOMCtx)\n .remove(rootAttrsCtx)\n .remove(editorViewTimerCtx)\n .clearTimer(EditorViewReady)\n }\n }\n}\n\nwithMeta(editorView, {\n displayName: 'EditorView',\n})\n","import type { CtxRunner, MilkdownPlugin, Telemetry } from '@jvs-milkdown/ctx'\n\nimport { Clock, Container, Ctx } from '@jvs-milkdown/ctx'\n\nimport type { Config } from '../internal-plugin'\n\nimport {\n commands,\n config,\n editorState,\n editorView,\n init,\n keymap,\n parser,\n pasteRule,\n schema,\n serializer,\n} from '../internal-plugin'\n\n/// The status of the editor.\nexport enum EditorStatus {\n /// The editor is not initialized.\n Idle = 'Idle',\n /// The editor is creating.\n OnCreate = 'OnCreate',\n /// The editor has been created and ready to use.\n Created = 'Created',\n /// The editor is destroying.\n OnDestroy = 'OnDestroy',\n /// The editor has been destroyed.\n Destroyed = 'Destroyed',\n}\n\n/// Type for the callback called when editor status changed.\nexport type OnStatusChange = (status: EditorStatus) => void\n\ntype EditorPluginStore = Map<\n MilkdownPlugin,\n {\n ctx: Ctx | undefined\n handler: CtxRunner | undefined\n cleanup: ReturnType<CtxRunner>\n }\n>\n\n/// The milkdown editor class.\nexport class Editor {\n /// Create a new editor instance.\n static make() {\n return new Editor()\n }\n\n /// @internal\n #enableInspector = false\n /// @internal\n #status = EditorStatus.Idle\n /// @internal\n #configureList: Config[] = []\n /// @internal\n #onStatusChange: OnStatusChange = () => undefined\n\n /// @internal\n readonly #container = new Container()\n /// @internal\n readonly #clock = new Clock()\n\n /// @internal\n readonly #usrPluginStore: EditorPluginStore = new Map()\n\n /// @internal\n readonly #sysPluginStore: EditorPluginStore = new Map()\n\n /// @internal\n readonly #ctx = new Ctx(this.#container, this.#clock)\n\n /// @internal\n readonly #loadInternal = () => {\n const configPlugin = config(async (ctx) => {\n await Promise.all(\n this.#configureList.map((fn) => Promise.resolve(fn(ctx)))\n )\n })\n const internalPlugins = [\n schema,\n parser,\n serializer,\n commands,\n keymap,\n pasteRule,\n editorState,\n editorView,\n init(this),\n configPlugin,\n ]\n this.#prepare(internalPlugins, this.#sysPluginStore)\n }\n\n /// @internal\n readonly #prepare = (plugins: MilkdownPlugin[], store: EditorPluginStore) => {\n plugins.forEach((plugin) => {\n const ctx = this.#ctx.produce(\n this.#enableInspector ? plugin.meta : undefined\n )\n const handler = plugin(ctx)\n store.set(plugin, { ctx, handler, cleanup: undefined })\n })\n }\n\n /// @internal\n readonly #cleanup = (plugins: MilkdownPlugin[], remove = false) => {\n return Promise.all(\n [plugins].flat().map(async (plugin) => {\n const loader = this.#usrPluginStore.get(plugin)\n const cleanup = loader?.cleanup\n if (remove) this.#usrPluginStore.delete(plugin)\n else\n this.#usrPluginStore.set(plugin, {\n ctx: undefined,\n handler: undefined,\n cleanup: undefined,\n })\n\n if (typeof cleanup === 'function') return cleanup()\n\n return cleanup\n })\n )\n }\n\n /// @internal\n readonly #cleanupInternal = async () => {\n await Promise.all(\n [...this.#sysPluginStore.entries()].map(async ([_, { cleanup }]) => {\n if (typeof cleanup === 'function') return cleanup()\n\n return cleanup\n })\n )\n this.#sysPluginStore.clear()\n }\n\n /// @internal\n readonly #setStatus = (status: EditorStatus) => {\n this.#status = status\n this.#onStatusChange(status)\n }\n\n /// @internal\n readonly #loadPluginInStore = (store: EditorPluginStore) => {\n return [...store.entries()].map(async ([key, loader]) => {\n const { ctx, handler } = loader\n if (!handler) return\n\n const cleanup = await handler()\n\n store.set(key, { ctx, handler, cleanup })\n })\n }\n\n /// Get the ctx of the editor.\n get ctx() {\n return this.#ctx\n }\n\n /// Get the status of the editor.\n get status() {\n return this.#status\n }\n\n /// Enable the inspector for the editor.\n /// You can also pass `false` to disable the inspector.\n readonly enableInspector = (enable = true) => {\n this.#enableInspector = enable\n\n return this\n }\n\n /// Subscribe to the status change event for the editor.\n /// The new subscription will replace the old one.\n readonly onStatusChange = (onChange: OnStatusChange) => {\n this.#onStatusChange = onChange\n return this\n }\n\n /// Add a config for the editor.\n readonly config = (configure: Config) => {\n this.#configureList.push(configure)\n return this\n }\n\n /// Remove a config for the editor.\n readonly removeConfig = (configure: Config) => {\n this.#configureList = this.#configureList.filter((x) => x !== configure)\n return this\n }\n\n /// Use a plugin or a list of plugins for the editor.\n readonly use = (plugins: MilkdownPlugin | MilkdownPlugin[]) => {\n const _plugins = [plugins].flat()\n _plugins.flat().forEach((plugin) => {\n this.#usrPluginStore.set(plugin, {\n ctx: undefined,\n handler: undefined,\n cleanup: undefined,\n })\n })\n\n if (this.#status === EditorStatus.Created)\n this.#prepare(_plugins, this.#usrPluginStore)\n\n return this\n }\n\n /// Remove a plugin or a list of plugins from the editor.\n readonly remove = async (\n plugins: MilkdownPlugin | MilkdownPlugin[]\n ): Promise<Editor> => {\n if (this.#status === EditorStatus.OnCreate) {\n console.warn(\n '[Milkdown]: You are trying to remove plugins when the editor is creating, this is not recommended, please check your code.'\n )\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(this.remove(plugins))\n }, 50)\n })\n }\n\n await this.#cleanup([plugins].flat(), true)\n return this\n }\n\n /// Create the editor with current config and plugins.\n /// If the editor is already created, it will be recreated.\n readonly create = async (): Promise<Editor> => {\n if (this.#status === EditorStatus.OnCreate) return this\n\n if (this.#status === EditorStatus.Created) await this.destroy()\n\n this.#setStatus(EditorStatus.OnCreate)\n\n this.#loadInternal()\n this.#prepare([...this.#usrPluginStore.keys()], this.#usrPluginStore)\n\n await Promise.all(\n [\n this.#loadPluginInStore(this.#sysPluginStore),\n this.#loadPluginInStore(this.#usrPluginStore),\n ].flat()\n )\n\n this.#setStatus(EditorStatus.Created)\n return this\n }\n\n /// Destroy the editor.\n /// If you want to clear all plugins, set `clearPlugins` to `true`.\n readonly destroy = async (clearPlugins = false): Promise<Editor> => {\n if (\n this.#status === EditorStatus.Destroyed ||\n this.#status === EditorStatus.OnDestroy\n )\n return this\n\n if (this.#status === EditorStatus.OnCreate) {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(this.destroy(clearPlugins))\n }, 50)\n })\n }\n\n if (clearPlugins) this.#configureList = []\n\n this.#setStatus(EditorStatus.OnDestroy)\n await this.#cleanup([...this.#usrPluginStore.keys()], clearPlugins)\n await this.#cleanupInternal()\n\n this.#setStatus(EditorStatus.Destroyed)\n return this\n }\n\n /// Call an action with the ctx of the editor.\n /// This method should be used after the editor is created.\n readonly action = <T>(action: (ctx: Ctx) => T) => action(this.#ctx)\n\n /// Get inspections of plugins in editor.\n /// Make sure you have enabled inspector by `editor.enableInspector()` before calling this method.\n readonly inspect = (): Telemetry[] => {\n if (!this.#enableInspector) {\n console.warn(\n '[Milkdown]: You are trying to collect inspection when inspector is disabled, please enable inspector by `editor.enableInspector()` first.'\n )\n return []\n }\n return [...this.#sysPluginStore.values(), ...this.#usrPluginStore.values()]\n .map(({ ctx }) => ctx?.inspector?.read())\n .filter((x): x is Telemetry => Boolean(x))\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-view.d.ts","sourceRoot":"","sources":["../../src/internal-plugin/editor-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAkBjE,KAAK,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAErD,KAAK,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAAA;AAGhD,eAAO,MAAM,eAAe,WAAiC,CAAA;AAI7D,eAAO,MAAM,kBAAkB,uEAG9B,CAAA;AAGD,eAAO,MAAM,oBAAoB,oFAGhC,CAAA;AAKD,eAAO,MAAM,OAAO,yDAAwC,CAAA;AAG5D,eAAO,MAAM,UAAU,+DAAyD,CAAA;AAIhF,eAAO,MAAM,YAAY,4EAGxB,CAAA;
|
|
1
|
+
{"version":3,"file":"editor-view.d.ts","sourceRoot":"","sources":["../../src/internal-plugin/editor-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAkBjE,KAAK,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAErD,KAAK,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAAA;AAGhD,eAAO,MAAM,eAAe,WAAiC,CAAA;AAI7D,eAAO,MAAM,kBAAkB,uEAG9B,CAAA;AAGD,eAAO,MAAM,oBAAoB,oFAGhC,CAAA;AAKD,eAAO,MAAM,OAAO,yDAAwC,CAAA;AAG5D,eAAO,MAAM,UAAU,+DAAyD,CAAA;AAIhF,eAAO,MAAM,YAAY,4EAGxB,CAAA;AA4BD,eAAO,MAAM,UAAU,EAAE,cAkFxB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Command } from '@jvs-milkdown/prose/state';
|
|
2
1
|
import { type Ctx, type MilkdownPlugin, type SliceType } from '@jvs-milkdown/ctx';
|
|
2
|
+
import { type Command } from '@jvs-milkdown/prose/state';
|
|
3
3
|
export type KeymapItem = {
|
|
4
4
|
key: string;
|
|
5
5
|
onRun: (ctx: Ctx) => Command;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../../src/internal-plugin/keymap.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../../src/internal-plugin/keymap.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAA;AAW1B,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAKvE,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAGD,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;AA4C7C,qBAAa,aAAa;;IAOxB,MAAM,GAAI,KAAK,GAAG,UAEjB;IAED,IAAI,GAAG,eAEN;IAMD,GAAG,GAAI,QAAQ,UAAU,gBAMxB;IAGD,eAAe,GAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC,gBAwB/D;IAGD,aAAa,mBAGZ;IAGD,KAAK,gCA2BJ;CACF;AAGD,eAAO,MAAM,SAAS,oCAA6C,CAAA;AAInE,eAAO,MAAM,cAAc,mEAA4C,CAAA;AAGvE,eAAO,MAAM,WAAW,uCAA6B,CAAA;AAMrD,eAAO,MAAM,MAAM,EAAE,cAiBpB,CAAA"}
|
package/lib/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../ctx/lib/context/slice.d.ts","../../ctx/lib/context/container.d.ts","../../ctx/lib/context/index.d.ts","../../ctx/lib/inspector/meta.d.ts","../../ctx/lib/timer/timer.d.ts","../../ctx/lib/timer/clock.d.ts","../../ctx/lib/timer/index.d.ts","../../ctx/lib/inspector/inspector.d.ts","../../ctx/lib/inspector/index.d.ts","../../ctx/lib/plugin/ctx.d.ts","../../ctx/lib/plugin/types.d.ts","../../ctx/lib/plugin/index.d.ts","../../ctx/lib/index.d.ts","../../../node_modules/.pnpm/orderedmap@2.1.1/node_modules/orderedmap/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-model@1.25.4/node_modules/prosemirror-model/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-transform@1.11.0/node_modules/prosemirror-transform/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-view@1.41.7/node_modules/prosemirror-view/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-state@1.4.4/node_modules/prosemirror-state/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-inputrules@1.5.1/node_modules/prosemirror-inputrules/dist/index.d.ts","../../prose/lib/inputrules.d.ts","../../prose/lib/state.d.ts","../../prose/lib/view.d.ts","../../prose/lib/model.d.ts","../../../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../../node_modules/.pnpm/@types+mdast@4.0.4/node_modules/@types/mdast/index.d.ts","../../../node_modules/.pnpm/micromark-util-types@2.0.2/node_modules/micromark-util-types/index.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/types.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.d.ts","../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.d.ts","../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.d.ts","../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.d.ts","../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.d.ts","../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.d.ts","../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.d.ts","../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.d.ts","../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/types.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/break.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/code.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/html.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/root.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/text.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/index.d.ts","../../../node_modules/.pnpm/remark-stringify@11.0.0/node_modules/remark-stringify/lib/index.d.ts","../../../node_modules/.pnpm/remark-stringify@11.0.0/node_modules/remark-stringify/index.d.ts","../../../node_modules/.pnpm/remark@15.0.1/node_modules/remark/index.d.ts","../../transformer/lib/utility/stack.d.ts","../../transformer/lib/utility/index.d.ts","../../transformer/lib/serializer/stack-element.d.ts","../../transformer/lib/serializer/state.d.ts","../../transformer/lib/serializer/types.d.ts","../../transformer/lib/utility/types.d.ts","../../transformer/lib/parser/stack-element.d.ts","../../transformer/lib/parser/state.d.ts","../../transformer/lib/parser/types.d.ts","../../transformer/lib/parser/index.d.ts","../../transformer/lib/serializer/index.d.ts","../../transformer/lib/index.d.ts","../src/__internal__/utils.ts","../src/__internal__/remark-handlers.ts","../src/__internal__/index.ts","../src/internal-plugin/atoms.ts","../../exception/lib/code.d.ts","../../exception/lib/error.d.ts","../../exception/lib/index.d.ts","../../../node_modules/.pnpm/prosemirror-commands@1.7.1/node_modules/prosemirror-commands/dist/index.d.ts","../../prose/lib/commands.d.ts","../src/internal-plugin/config.ts","../src/internal-plugin/init.ts","../src/internal-plugin/schema.ts","../src/internal-plugin/commands.ts","../../prose/lib/index.d.ts","../../../node_modules/.pnpm/prosemirror-keymap@1.2.3/node_modules/prosemirror-keymap/dist/index.d.ts","../../prose/lib/keymap.d.ts","../src/internal-plugin/keymap.ts","../src/internal-plugin/parser.ts","../src/internal-plugin/serializer.ts","../src/internal-plugin/editor-state.ts","../src/internal-plugin/paste-rule.ts","../src/internal-plugin/editor-view.ts","../src/internal-plugin/index.ts","../src/editor/editor.ts","../src/editor/index.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@4.1.0/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/display.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/timers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.0/node_modules/@vitest/runner/dist/tasks.d-d2gkpdwq.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.0/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/traces.d.402v_yfi.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.0/node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.0/node_modules/@vitest/snapshot/dist/rawsnapshot.d-u2kjuxdr.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.0/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/config.d.ejlve3es.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/rpc.d.bfmwpdph.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/worker.d.b84svry0.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/browser.d.x3sxoocv.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.1.0/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@4.1.0/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.0/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/global.d.x-ilcfae.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.0_vite@8_4e6228533c587271678a054b13744890/node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.0_vite@8_4e6228533c587271678a054b13744890/node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.0_vite@8_4e6228533c587271678a054b13744890/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/runners.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/index.d.ts","../src/internal-plugin/keymap.test.ts"],"fileIdsList":[[190,191],[82],[164,170,172,187,188,189,192,197],[198],[198,199],[168,170,171],[168,170],[168],[163,168,179,180],[163,179],[163,169],[163],[165],[163,164,165,166,167],[204,205],[204,205,206,207],[204,206],[204],[84,85,86,87],[83,84,85,87],[83,84,87],[99,100,120],[83,121],[83],[101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],[82,83],[73,76],[75,76],[72],[73,74,75],[73],[73,74,76],[83,84,87,96,97,98,123],[83,87,91,96,98,123],[83,96,98,121,122,123],[83,91,96,98,121,123],[83,96,98,123],[93],[91,95],[82,91,92,94,96,98,123],[88],[89,90],[82,89,91],[174],[174,175,176,177],[176],[172,194,195,197],[172,173,185,197],[163,170,172,181,197],[178],[163,172,181,184,193,196,197],[172,173,178,181,197],[172,194,195,196,197],[172,178,182,183,184,197],[163,168,170,172,173,178,181,182,183,184,185,186,187,193,194,195,196,197,200,201,202,203,208],[163,170,172,173,181,182,194,195,196,197,201],[137,138],[123],[71],[71,159],[160],[159,161],[71,78,79,80,96,98,123,136,139,161],[71,79,139,140,143,145,148],[71,139],[71,79,81,136,139,140,143,148,149,150,152,153,154,155],[71,79,80,139,140,147,156,157],[140,146,147,148,149,153,154,155,156,157,158],[71,96,98,123,139,140,146,161],[71,153,209],[71,78,79,143,145,148],[71,136,139,140,143,148],[71,80,81,139,148],[71,81,136,139,140,147],[59],[59,60],[60],[61,65,67,70],[62,66],[61,62,65],[61,65,67,71],[68,69],[67,68],[63],[63,64],[64],[141],[142],[144],[73,75,76,77],[77],[151],[76],[75],[126,134,135],[132,133],[81,126],[81,126,131,133],[81,130,132],[128,129],[126,136],[81,126,127,129],[81,128],[125,130],[81,96,98,123,124,129,133]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"73cc073d7a102374d6b9bcdbde8072f3aa3c8f86767f562086b6a7a7df5f22c0","e66deb230968faf1a8f37ea6f217f319dd0dad7a39ead1bf5d4f54e2eb5ce4bd","13ee17bbdd42459d6450899cea1999aab64c723328e773c0be5e8a13b51b6259","f79062b892847b4e33d0b730bf9dcf66ac24fc3fe9df7bba4d0997c6bdf6cbde","20f3a5481b2c009533e9e6b864cbd4ae3c09ccfca0577918b3587cda295e7071","2797c77cc0da0836a37c8c1fe64942a999c73f811f5481d827ac7d8cb9ddedd3","5a40849c3a5d5a8c2aa754fc964830ea344c94bfeddd4b442bdeae899e2f5339","848836f528d4ac80a5b3212c719225a3ba09406d44fea755cb642299a68d7056","fae981646738728f2b882c14625b99c23c430400a21c081dc6888d9703bd6c68","45c8a077eb724bae4e1fc0d15f76618650e32e55c4582dc1f27153ecdeb66ca6","302c082712d8fe41be387cd34af45b163b5314c04ddeefe53b1cb57fe46d3221","0c1a84d7b974db1961c6e9ab71d5257dfa38d99fb6300f22de55750526c9daef","69bc40bb169ea922cab72dc2142f37e75b44095cf1e79ca1b2809164c284de57",{"version":"264f935450101e4b000eb351cf75c9d799ca20a278b260a9e5770303b5f2b6a3","impliedFormat":99},{"version":"f6f171b23ae6db93454343f1b788960f799c8f37043904874a752c0990c6fca6","impliedFormat":99},{"version":"089f9928e7ab1ca2c225e167a80ff1cb5ed0a71c98be7e81f040a51e2cc6bf5e","impliedFormat":99},{"version":"b11acc27c280988d7256bbd8ffe9f1cb5a0e5ed17cddf5335289ee0e81500369","affectsGlobalScope":true,"impliedFormat":99},{"version":"02ab5dbcaa58da1d58c46c7cdfa7f94792c5ccf0fc7c0622ef33755fe415366c","impliedFormat":99},{"version":"2a04530c2579ddcf996e1cf017caaba573e0ebf8a5b9e45d3bc25ba4489fb5a3","impliedFormat":99},"f41d91b2db1112fcc673a6862fe68cadcbdd0a66ed16b47ac74a0a6da8932bb4","e689cc8cd8a102d31c9d3a7b0db0028594202093c4aca25982b425e8ae744556","1b4ed9deaba72d4bc8495bf46db690dbf91040da0cb2401db10bad162732c0e2","478e59ac0830a0f6360236632d0d589fb0211183aa1ab82292fbca529c0cce35",{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"a5dbd4c9941b614526619bad31047ddd5f504ec4cdad88d6117b549faef34dd3","impliedFormat":99},{"version":"d36518bd617ff673c7d9f372706f241932a43f27673187f2a8472e93c40041c6","impliedFormat":99},{"version":"f8eb2909590ec619643841ead2fc4b4b183fbd859848ef051295d35fef9d8469","impliedFormat":99},{"version":"fe784567dd721417e2c4c7c1d7306f4b8611a4f232f5b7ce734382cf34b417d2","impliedFormat":99},{"version":"2b37ba54ec067598bf912d56fcb81f6d8ad86a045c757e79440bdef97b52fe1b","impliedFormat":99},{"version":"1bc9dd465634109668661f998485a32da369755d9f32b5a55ed64a525566c94b","impliedFormat":99},{"version":"5702b3c2f5d248290ed99419d77ca1cc3e6c29db5847172377659c50e6303768","impliedFormat":99},{"version":"9764b2eb5b4fc0b8951468fb3dbd6cd922d7752343ef5fbf1a7cd3dfcd54a75e","impliedFormat":99},{"version":"1fc2d3fe8f31c52c802c4dee6c0157c5a1d1f6be44ece83c49174e316cf931ad","impliedFormat":99},{"version":"dc4aae103a0c812121d9db1f7a5ea98231801ed405bf577d1c9c46a893177e36","impliedFormat":99},{"version":"106d3f40907ba68d2ad8ce143a68358bad476e1cc4a5c710c11c7dbaac878308","impliedFormat":99},{"version":"42ad582d92b058b88570d5be95393cf0a6c09a29ba9aa44609465b41d39d2534","impliedFormat":99},{"version":"36e051a1e0d2f2a808dbb164d846be09b5d98e8b782b37922a3b75f57ee66698","impliedFormat":99},{"version":"4f7e6730a707b0d4971d96de3b562819ce304af770723707a58a578dd55a5e52","impliedFormat":99},{"version":"d1c1213e9176398b4d1d9aa543691181fd5ae23ae5415e80ede41f1ec1ccf72a","impliedFormat":99},{"version":"45d1e8fb4fd3e265b15f5a77866a8e21870eae4c69c473c33289a4b971e93704","impliedFormat":99},{"version":"cd40919f70c875ca07ecc5431cc740e366c008bcbe08ba14b8c78353fb4680df","impliedFormat":99},{"version":"ddfd9196f1f83997873bbe958ce99123f11b062f8309fc09d9c9667b2c284391","impliedFormat":99},{"version":"2999ba314a310f6a333199848166d008d088c6e36d090cbdcc69db67d8ae3154","impliedFormat":99},{"version":"62c1e573cd595d3204dfc02b96eba623020b181d2aa3ce6a33e030bc83bebb41","impliedFormat":99},{"version":"ca1616999d6ded0160fea978088a57df492b6c3f8c457a5879837a7e68d69033","impliedFormat":99},{"version":"835e3d95251bbc48918bb874768c13b8986b87ea60471ad8eceb6e38ddd8845e","impliedFormat":99},{"version":"de54e18f04dbcc892a4b4241b9e4c233cfce9be02ac5f43a631bbc25f479cd84","impliedFormat":99},{"version":"453fb9934e71eb8b52347e581b36c01d7751121a75a5cd1a96e3237e3fd9fc7e","impliedFormat":99},{"version":"bc1a1d0eba489e3eb5c2a4aa8cd986c700692b07a76a60b73a3c31e52c7ef983","impliedFormat":99},{"version":"4098e612efd242b5e203c5c0b9afbf7473209905ab2830598be5c7b3942643d0","impliedFormat":99},{"version":"28410cfb9a798bd7d0327fbf0afd4c4038799b1d6a3f86116dc972e31156b6d2","impliedFormat":99},{"version":"514ae9be6724e2164eb38f2a903ef56cf1d0e6ddb62d0d40f155f32d1317c116","impliedFormat":99},{"version":"970e5e94a9071fd5b5c41e2710c0ef7d73e7f7732911681592669e3f7bd06308","impliedFormat":99},{"version":"491fb8b0e0aef777cec1339cb8f5a1a599ed4973ee22a2f02812dd0f48bd78c1","impliedFormat":99},{"version":"6acf0b3018881977d2cfe4382ac3e3db7e103904c4b634be908f1ade06eb302d","impliedFormat":99},{"version":"2dbb2e03b4b7f6524ad5683e7b5aa2e6aef9c83cab1678afd8467fde6d5a3a92","impliedFormat":99},{"version":"135b12824cd5e495ea0a8f7e29aba52e1adb4581bb1e279fb179304ba60c0a44","impliedFormat":99},{"version":"e4c784392051f4bbb80304d3a909da18c98bc58b093456a09b3e3a1b7b10937f","impliedFormat":99},{"version":"2e87c3480512f057f2e7f44f6498b7e3677196e84e0884618fc9e8b6d6228bed","impliedFormat":99},{"version":"66984309d771b6b085e3369227077da237b40e798570f0a2ddbfea383db39812","impliedFormat":99},{"version":"e41be8943835ad083a4f8a558bd2a89b7fe39619ed99f1880187c75e231d033e","impliedFormat":99},{"version":"260558fff7344e4985cfc78472ae58cbc2487e406d23c1ddaf4d484618ce4cfd","impliedFormat":99},{"version":"e6274d956641c1cbd5a01a221a85a6671fd85104ed6b530f8d34ad3086804133","impliedFormat":99},{"version":"77516308358982bb05209e8c0ed6f321860e03393587d89f61055941e5bbcdd2","impliedFormat":99},{"version":"dc8652855a95ef9b9c12be8d2f5e6fc37b96aa2144f6c6f195cd1d2e07f721ee","impliedFormat":99},"e2cb25ca55e10ba874410188a53331a6b0b2bc13c0ee4d538bde50460a4e1b77","041afde4e1ac27e6fabdc2ca87882a3a766443fcfe1a1cfc3ed78bcc1c25b28a","c2049793874bbeafd60402bab915f3d285f4057e718dfdefe8a54ccc80c991dd","8a2b6f999a708119f4fa55fc58c5803ca9563340d0a54b9fe2a4fa14838f148c","2db5b1bbf946e20cef3c889cb7be46e3da384bdd1b4b53964253d97635718774","79e620484ae1a7011482631159563e4729f7f4d4c316b914125cb95f678ffbb9","6434c2976daf446cfd95935af4e0a0b6b369ce81af183579dab3ac6567dbbfd0","f50c1778b48a9275078ad81abaa5b4cb13a295b3889986f8e72fe61dd9cd8b86","6e935a5aec1b1f86cfa97fb93ec13c8759479712014d7dc4c13f140f7d409357","8cd4c86b90f9a96ba804585a4b6a998f484a860af3dfd12641ecb9eca109274b","8cd4c86b90f9a96ba804585a4b6a998f484a860af3dfd12641ecb9eca109274b","1b92de1f5b74cf4bda283aa7688c80781e9c7273f44a4ef2db084747a94be933",{"version":"9c07655d97608c6a082c2117786c60e8b52fe723269d80b4b5514f25f89e29a8","signature":"6d17ed9b7135b0b3db99ead1c9a36ed2c4891df097fff6c3e2a9ef3df9a5740f"},{"version":"8bcbff3c0866421697d73d34fae1b2819cf028a6206b2c284c77e4fcb57a3dd4","signature":"1cace9c9622a28eadfc2938bc64a68ee0db03df840d6efacd3ce99e78ed4d1b0"},{"version":"83a0167975601ed7c872f0a5563e836b59be92ebe1f6316c9e32e98c15f47bec","signature":"70bb51dce3f7123f059955d9c6f1d4bf00619d7f483f0ff4c431999341a7ab40"},{"version":"fb0cd7c6899ad5d487e61f62df8fc96a9b73bfe1c6d7610be72e142e5cf77d8a","signature":"8c24aeb14985e8089f29e1fea075e95a7c8825077277079d5dc4130ceb6339de"},"16976e5481a0abbe56fa82010ecd47c152e76d9c7ecb5977d68a1b2c4a785c91","749f3bd08d4fc5cc1c95e3c3b07dede327898a51cf6fa7f156456c0d46aae680","7797184093e9b9f6203d001829de6f91d142497913c67a8d0c2a5b25de005a68",{"version":"c60e1b30f06db4bb8955ee847c28592af992e45f2b8db300c1b0edfc3329b9cb","impliedFormat":99},"61a03f64adcb31f88db8ab9dceb0ce4fa239e8e725edd308d6f2ca94e1de82cc",{"version":"d7078beac51b6602d6e8b7c6cf788bae156388172ebee3761fbf2756264ced46","signature":"6abd2f68e6651205f5d7763dcf7a5b5e5dc28b6194b097b467913d2cf19c1dd2"},{"version":"2894270b4e3d4b7a05df28e41c20d56ece05b0e5ea5902d9c7b887d53e9a0b42","signature":"441c8ea68ff583cefd0f77d2a1699f6328d714ebfb9435ffedad5470392de2e7"},{"version":"449c7a99335eebc907b2a3ac80639b59ceb24a131ae11940a03e08b9ef25eea8","signature":"5ca4d7a999b9fa8c7e2ef9746968eaeabb8e69a904cc62a3c18ac23b9664c8a8"},{"version":"bde17d9dc5000a6811808450578e11044bb52d3ff234d6fd4d3db0947ba6ab50","signature":"ff041f34cc1936cb45f94de1924d396abd69b3d6e0cc887dfaa0b6ec176e27e1"},"5399c605927513bf84fadca98140f7d1fb2b5bd13e1b95c63245c5cf0889a97b",{"version":"c18f616b098332f45b312f3c1385de32e7b3dba6a3da8a778547dcd7ed264649","impliedFormat":99},"8218396f3bd9e5724bc2fb6592a1da7d2254fd1d4459f0117ef8d27084e15fd4",{"version":"2596c3b8576bd81a3c0fb52f366814dfd4a02a44a4ff13f6cff0ad7a575a7b09","signature":"de54e6c6d074b3a521a47b0fbe17732a951a852ef704402daceabcd450134283"},{"version":"3bdc2038a2b8f4a230a7c241ad2918832ab0bf9a5ba83cee2c4341ab38d61afd","signature":"cc60d13b9e2058908f082cca058357d2ebd83143b3dc4e3a01731e8a4b7ae2fe"},{"version":"2a2bf28ea49852d2e74e4a554b0872e02d2a6118ca76abc461be4e703907d3d7","signature":"bff722032fb479d76cdd167e0aa05e2e3ca9b728cff777e893aa694bad01e3a9"},{"version":"e35605c0d828574942edbf44edf6084b8ff2e70fa40e82454ce8a86230225d8d","signature":"c04c352fc277c57e16519814a13e1b84e6c54c461b89ee63c8bff94ddf615555"},{"version":"984b866f62b263dd46f439830e8682d27886d65d365668d9a96fff3f79292551","signature":"ad43cfeea2ffc4f26107e49ae92bed3fe01b0c2aa3e328e293d7b0dceb01300f"},{"version":"9cf091726943bf905d3e9379c843601ce02cf00eb7734c127bce32bfec920b4b","signature":"e406a8398f12e8bb0d7661b9974a9ce78043a916cd2c652f7b82b7889e57f9e8"},{"version":"f71355e5a8a09ed236b9b530678657ad2c8a868c129f8ee408cfc223adc1f1ec","signature":"50e52950b1b92455f40c3fba61ee9a43e74bf9bdf6a25e01ad2e3a2226bbb2ec"},{"version":"c98f84f81058725a2010627ccb07bcfc75014e098ec6fb2bae301b99712977b2","signature":"cd2e2d6ffad8a1de80249fd4aa35f6c6f9160c18f69fbaf6507072eba208abda"},{"version":"79364e225e6c33339e507c97ae55786c4053ce9ca52ea994637b10587634d68a","signature":"3b8dd8f967501f6193f2d31f8a124e05186264f37f1b73d073cf39c6e123fe50"},{"version":"4f115551dc9c25dbdd276d82a5252840129556324811ba53bafa41ddc2c7e993","signature":"bc699cb86e1528d370a29ae99fe8f89e3a838bb620ad4071a4c9999a390c8361"},{"version":"cadeb2c96f1c964d7e49c0f17d6805e1b4dee62f0862c49bb178dae6ab277e8e","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"eb64a68249f1ee45e496a23cd0be8fe8c84aecb4c038b86d4abcc765c5ba115e","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"3354286ef917d22c72e0c830324062f950134d8882e9ea57ad6ade3d8ad943cf","impliedFormat":99},{"version":"3dedc468e9b0ed804c0226482e344bd769417f834988af838d814504af81cba6","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"82179358c2d9d7347f1602dc9300039a2250e483137b38ebf31d4d2e5519c181","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"091546ac9077cddcd7b9479cc2e0c677238bf13e39eab4b13e75046c3328df93","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"727858fb893b87791876dee5e3cd4c187a721d2de516fd19d3d00dc6e8a894b3","impliedFormat":99},{"version":"5bfaa2ee33e63a1b17b08dbefd7a3c42d1e0f914e52aca5bef679b420bd7a07c","impliedFormat":99},{"version":"7d5c6cc5d537c47c7723a1fe76411b99373eb55c487045dfd076c1956e87389a","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"a86701e56b10a6d1ef9b2ecaeedbab94ed7b957a646cd71fd09d02b323c6d3d7","impliedFormat":99},{"version":"b3f0791a73b6521da68107c5ba1bfed4bc21ff7099b892700fd65670e88ef6ee","impliedFormat":99},{"version":"d0411dddbef50f9ad568ee9d24b108153bcb8f0db1094de6dfbadf02feb3aa70","impliedFormat":99},{"version":"25249ca5fe64ca60d7bfb7fbbf0cb084324853b03a265dbbbc45fb4949de7567","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"31d5fb0aeb0368909fbe8cd9b893c16350aa94d48a2f909fdd393982ceb4814d","affectsGlobalScope":true,"impliedFormat":99},{"version":"90fe5875e2c7519711442683a9489416819c6cec8d395e48ff568e94254533e7","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"72a863bc6c0fc7a6263d8e07279167d86467a3869b5f002b1df6eaf5000ccc7b","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"42f0f7e74d73ae5873ed666373e09a367d62232ca378677094d0dc06020d6e00","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"ebb9b9fa684d70aef64614a59b7582f46f4982139b8b632b911ef98e10c4d117","impliedFormat":99},{"version":"6fc8fdb157985884dbe30cce1acdef84a8c176ab839d7a961b677773d23bb859","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[137,140],[146,149],[153,162],210],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":5,"tsBuildInfoFile":"./tsconfig.tsbuildinfo","useUnknownInCatchVariables":true,"verbatimModuleSyntax":true},"referencedMap":[[192,1],[83,2],[193,3],[199,4],[200,5],[172,6],[171,7],[194,6],[179,8],[181,9],[180,10],[170,11],[164,12],[166,13],[168,14],[169,12],[206,15],[208,16],[207,17],[205,18],[87,19],[86,20],[85,21],[121,22],[101,23],[102,23],[103,23],[104,23],[105,23],[106,23],[107,24],[109,23],[108,23],[120,25],[110,23],[112,23],[111,23],[114,23],[113,23],[115,23],[116,23],[117,23],[118,23],[119,23],[100,23],[99,26],[144,27],[77,27],[151,28],[73,29],[76,30],[74,31],[75,32],[98,33],[97,34],[123,35],[122,36],[124,37],[94,38],[96,39],[95,40],[89,41],[88,2],[91,42],[90,43],[175,44],[178,45],[176,44],[177,46],[196,47],[186,48],[182,49],[183,8],[202,50],[197,51],[184,52],[201,53],[185,54],[209,55],[203,56],[139,57],[138,58],[137,59],[160,60],[161,61],[162,62],[140,63],[149,64],[146,65],[156,66],[158,67],[159,68],[147,69],[210,70],[153,71],[154,72],[157,73],[148,74],[155,72],[60,75],[61,76],[59,77],[71,78],[67,79],[66,80],[68,81],[70,82],[69,83],[64,84],[65,85],[63,86],[142,87],[143,88],[145,89],[150,90],[78,91],[152,92],[81,31],[79,93],[80,94],[136,95],[134,96],[131,97],[132,98],[133,99],[135,100],[127,101],[128,102],[129,103],[126,104],[130,105]],"latestChangedDtsFile":"./internal-plugin/keymap.test.d.ts","version":"6.0.2"}
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../ctx/lib/context/slice.d.ts","../../ctx/lib/context/container.d.ts","../../ctx/lib/context/index.d.ts","../../ctx/lib/inspector/meta.d.ts","../../ctx/lib/timer/timer.d.ts","../../ctx/lib/timer/clock.d.ts","../../ctx/lib/timer/index.d.ts","../../ctx/lib/inspector/inspector.d.ts","../../ctx/lib/inspector/index.d.ts","../../ctx/lib/plugin/ctx.d.ts","../../ctx/lib/plugin/types.d.ts","../../ctx/lib/plugin/index.d.ts","../../ctx/lib/index.d.ts","../../../node_modules/.pnpm/orderedmap@2.1.1/node_modules/orderedmap/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-model@1.25.4/node_modules/prosemirror-model/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-transform@1.11.0/node_modules/prosemirror-transform/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-view@1.41.7/node_modules/prosemirror-view/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-state@1.4.4/node_modules/prosemirror-state/dist/index.d.ts","../../../node_modules/.pnpm/prosemirror-inputrules@1.5.1/node_modules/prosemirror-inputrules/dist/index.d.ts","../../prose/lib/inputrules.d.ts","../../prose/lib/state.d.ts","../../prose/lib/view.d.ts","../../prose/lib/model.d.ts","../../../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../../node_modules/.pnpm/@types+mdast@4.0.4/node_modules/@types/mdast/index.d.ts","../../../node_modules/.pnpm/micromark-util-types@2.0.2/node_modules/micromark-util-types/index.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/types.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.d.ts","../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.d.ts","../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.d.ts","../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.d.ts","../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.d.ts","../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.d.ts","../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.d.ts","../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.d.ts","../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/types.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/break.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/code.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/html.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/root.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/text.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/index.d.ts","../../../node_modules/.pnpm/remark-stringify@11.0.0/node_modules/remark-stringify/lib/index.d.ts","../../../node_modules/.pnpm/remark-stringify@11.0.0/node_modules/remark-stringify/index.d.ts","../../../node_modules/.pnpm/remark@15.0.1/node_modules/remark/index.d.ts","../../transformer/lib/utility/stack.d.ts","../../transformer/lib/utility/index.d.ts","../../transformer/lib/serializer/stack-element.d.ts","../../transformer/lib/serializer/state.d.ts","../../transformer/lib/serializer/types.d.ts","../../transformer/lib/utility/types.d.ts","../../transformer/lib/parser/stack-element.d.ts","../../transformer/lib/parser/state.d.ts","../../transformer/lib/parser/types.d.ts","../../transformer/lib/parser/index.d.ts","../../transformer/lib/serializer/index.d.ts","../../transformer/lib/index.d.ts","../src/__internal__/utils.ts","../src/__internal__/remark-handlers.ts","../src/__internal__/index.ts","../src/internal-plugin/atoms.ts","../../exception/lib/code.d.ts","../../exception/lib/error.d.ts","../../exception/lib/index.d.ts","../../../node_modules/.pnpm/prosemirror-commands@1.7.1/node_modules/prosemirror-commands/dist/index.d.ts","../../prose/lib/commands.d.ts","../src/internal-plugin/config.ts","../src/internal-plugin/init.ts","../src/internal-plugin/schema.ts","../src/internal-plugin/commands.ts","../../prose/lib/toolkit/browser.d.ts","../../prose/lib/toolkit/input-rules/custom-input-rules.d.ts","../../prose/lib/toolkit/input-rules/common.d.ts","../../prose/lib/toolkit/input-rules/mark-rule.d.ts","../../prose/lib/toolkit/input-rules/node-rule.d.ts","../../prose/lib/toolkit/input-rules/index.d.ts","../../prose/lib/toolkit/position/index.d.ts","../../prose/lib/toolkit/prose/helper.d.ts","../../prose/lib/toolkit/prose/types.d.ts","../../prose/lib/toolkit/prose/node.d.ts","../../prose/lib/toolkit/prose/schema.d.ts","../../prose/lib/toolkit/prose/selection.d.ts","../../prose/lib/toolkit/prose/index.d.ts","../../prose/lib/toolkit/index.d.ts","../../prose/lib/index.d.ts","../../../node_modules/.pnpm/prosemirror-keymap@1.2.3/node_modules/prosemirror-keymap/dist/index.d.ts","../../prose/lib/keymap.d.ts","../src/internal-plugin/keymap.ts","../src/internal-plugin/parser.ts","../src/internal-plugin/serializer.ts","../src/internal-plugin/editor-state.ts","../src/internal-plugin/paste-rule.ts","../src/internal-plugin/editor-view.ts","../src/internal-plugin/index.ts","../src/editor/editor.ts","../src/editor/index.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@4.1.0/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/display.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/timers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.0/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.0/node_modules/@vitest/runner/dist/tasks.d-d2gkpdwq.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.0/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/traces.d.402v_yfi.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@8.0.1_@types+node@24.1_876433a21c88fe1552cff9da3a930571/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.0/node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.0/node_modules/@vitest/snapshot/dist/rawsnapshot.d-u2kjuxdr.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.0/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/config.d.ejlve3es.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/rpc.d.bfmwpdph.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/worker.d.b84svry0.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/browser.d.x3sxoocv.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.1.0/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@4.1.0/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.0/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/global.d.x-ilcfae.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.0_vite@8_4e6228533c587271678a054b13744890/node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.0_vite@8_4e6228533c587271678a054b13744890/node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.0_vite@8_4e6228533c587271678a054b13744890/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/runners.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.0_@types+node@24_44b8d052b1a18cdf1651bd8d8e21974e/node_modules/vitest/dist/index.d.ts","../src/internal-plugin/keymap.test.ts"],"fileIdsList":[[204,205],[82],[178,184,186,201,202,203,206,211],[212],[212,213],[182,184,185],[182,184],[182],[177,182,193,194],[177,193],[177,183],[177],[179],[177,178,179,180,181],[218,219],[218,219,220,221],[218,220],[218],[84,85,86,87],[83,84,85,87],[83,84,87],[99,100,120],[83,121],[83],[101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],[82,83],[73,76],[75,76],[72],[73,74,75],[73],[73,74,76],[83,84,87,96,97,98,123],[83,87,91,96,98,123],[83,96,98,121,122,123],[83,91,96,98,121,123],[83,96,98,123],[93],[91,95],[82,91,92,94,96,98,123],[88],[89,90],[82,89,91],[188],[188,189,190,191],[190],[186,208,209,211],[186,187,199,211],[177,184,186,195,211],[192],[177,186,195,198,207,210,211],[186,187,192,195,211],[186,208,209,210,211],[186,192,196,197,198,211],[177,182,184,186,187,192,195,196,197,198,199,200,201,207,208,209,210,211,214,215,216,217,222],[177,184,186,187,195,196,208,209,210,211,215],[137,138],[123],[71],[71,173],[174],[173,175],[71,78,79,80,96,98,123,136,139,175],[71,79,139,140,143,145,148],[71,139],[71,79,81,136,139,140,143,148,149,164,166,167,168,169],[71,79,80,139,140,147,170,171],[140,146,147,148,149,167,168,169,170,171,172],[71,96,98,123,139,140,146,175],[71,167,223],[71,78,79,143,145,148],[71,136,139,140,143,148],[71,80,81,139,148],[71,81,136,139,140,147],[59],[59,60],[60],[61,65,67,70],[62,66],[61,62,65],[61,65,67,71],[68,69],[67,68],[63],[63,64],[64],[141],[142],[144],[163],[77],[165],[76],[150,155,156,162],[79,81],[78,79],[151,152,153,154],[78,81,152],[80],[157,159,160,161],[81,158],[81],[79,81,158],[75],[126,134,135],[132,133],[81,126],[81,126,131,133],[81,130,132],[128,129],[126,136],[81,126,127,129],[81,128],[125,130],[81,96,98,123,124,129,133]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"73cc073d7a102374d6b9bcdbde8072f3aa3c8f86767f562086b6a7a7df5f22c0","e66deb230968faf1a8f37ea6f217f319dd0dad7a39ead1bf5d4f54e2eb5ce4bd","13ee17bbdd42459d6450899cea1999aab64c723328e773c0be5e8a13b51b6259","f79062b892847b4e33d0b730bf9dcf66ac24fc3fe9df7bba4d0997c6bdf6cbde","20f3a5481b2c009533e9e6b864cbd4ae3c09ccfca0577918b3587cda295e7071","2797c77cc0da0836a37c8c1fe64942a999c73f811f5481d827ac7d8cb9ddedd3","5a40849c3a5d5a8c2aa754fc964830ea344c94bfeddd4b442bdeae899e2f5339","848836f528d4ac80a5b3212c719225a3ba09406d44fea755cb642299a68d7056","fae981646738728f2b882c14625b99c23c430400a21c081dc6888d9703bd6c68","45c8a077eb724bae4e1fc0d15f76618650e32e55c4582dc1f27153ecdeb66ca6","302c082712d8fe41be387cd34af45b163b5314c04ddeefe53b1cb57fe46d3221","0c1a84d7b974db1961c6e9ab71d5257dfa38d99fb6300f22de55750526c9daef","69bc40bb169ea922cab72dc2142f37e75b44095cf1e79ca1b2809164c284de57",{"version":"264f935450101e4b000eb351cf75c9d799ca20a278b260a9e5770303b5f2b6a3","impliedFormat":99},{"version":"f6f171b23ae6db93454343f1b788960f799c8f37043904874a752c0990c6fca6","impliedFormat":99},{"version":"089f9928e7ab1ca2c225e167a80ff1cb5ed0a71c98be7e81f040a51e2cc6bf5e","impliedFormat":99},{"version":"b11acc27c280988d7256bbd8ffe9f1cb5a0e5ed17cddf5335289ee0e81500369","affectsGlobalScope":true,"impliedFormat":99},{"version":"02ab5dbcaa58da1d58c46c7cdfa7f94792c5ccf0fc7c0622ef33755fe415366c","impliedFormat":99},{"version":"2a04530c2579ddcf996e1cf017caaba573e0ebf8a5b9e45d3bc25ba4489fb5a3","impliedFormat":99},"f41d91b2db1112fcc673a6862fe68cadcbdd0a66ed16b47ac74a0a6da8932bb4","e689cc8cd8a102d31c9d3a7b0db0028594202093c4aca25982b425e8ae744556","1b4ed9deaba72d4bc8495bf46db690dbf91040da0cb2401db10bad162732c0e2","478e59ac0830a0f6360236632d0d589fb0211183aa1ab82292fbca529c0cce35",{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"a5dbd4c9941b614526619bad31047ddd5f504ec4cdad88d6117b549faef34dd3","impliedFormat":99},{"version":"d36518bd617ff673c7d9f372706f241932a43f27673187f2a8472e93c40041c6","impliedFormat":99},{"version":"f8eb2909590ec619643841ead2fc4b4b183fbd859848ef051295d35fef9d8469","impliedFormat":99},{"version":"fe784567dd721417e2c4c7c1d7306f4b8611a4f232f5b7ce734382cf34b417d2","impliedFormat":99},{"version":"2b37ba54ec067598bf912d56fcb81f6d8ad86a045c757e79440bdef97b52fe1b","impliedFormat":99},{"version":"1bc9dd465634109668661f998485a32da369755d9f32b5a55ed64a525566c94b","impliedFormat":99},{"version":"5702b3c2f5d248290ed99419d77ca1cc3e6c29db5847172377659c50e6303768","impliedFormat":99},{"version":"9764b2eb5b4fc0b8951468fb3dbd6cd922d7752343ef5fbf1a7cd3dfcd54a75e","impliedFormat":99},{"version":"1fc2d3fe8f31c52c802c4dee6c0157c5a1d1f6be44ece83c49174e316cf931ad","impliedFormat":99},{"version":"dc4aae103a0c812121d9db1f7a5ea98231801ed405bf577d1c9c46a893177e36","impliedFormat":99},{"version":"106d3f40907ba68d2ad8ce143a68358bad476e1cc4a5c710c11c7dbaac878308","impliedFormat":99},{"version":"42ad582d92b058b88570d5be95393cf0a6c09a29ba9aa44609465b41d39d2534","impliedFormat":99},{"version":"36e051a1e0d2f2a808dbb164d846be09b5d98e8b782b37922a3b75f57ee66698","impliedFormat":99},{"version":"4f7e6730a707b0d4971d96de3b562819ce304af770723707a58a578dd55a5e52","impliedFormat":99},{"version":"d1c1213e9176398b4d1d9aa543691181fd5ae23ae5415e80ede41f1ec1ccf72a","impliedFormat":99},{"version":"45d1e8fb4fd3e265b15f5a77866a8e21870eae4c69c473c33289a4b971e93704","impliedFormat":99},{"version":"cd40919f70c875ca07ecc5431cc740e366c008bcbe08ba14b8c78353fb4680df","impliedFormat":99},{"version":"ddfd9196f1f83997873bbe958ce99123f11b062f8309fc09d9c9667b2c284391","impliedFormat":99},{"version":"2999ba314a310f6a333199848166d008d088c6e36d090cbdcc69db67d8ae3154","impliedFormat":99},{"version":"62c1e573cd595d3204dfc02b96eba623020b181d2aa3ce6a33e030bc83bebb41","impliedFormat":99},{"version":"ca1616999d6ded0160fea978088a57df492b6c3f8c457a5879837a7e68d69033","impliedFormat":99},{"version":"835e3d95251bbc48918bb874768c13b8986b87ea60471ad8eceb6e38ddd8845e","impliedFormat":99},{"version":"de54e18f04dbcc892a4b4241b9e4c233cfce9be02ac5f43a631bbc25f479cd84","impliedFormat":99},{"version":"453fb9934e71eb8b52347e581b36c01d7751121a75a5cd1a96e3237e3fd9fc7e","impliedFormat":99},{"version":"bc1a1d0eba489e3eb5c2a4aa8cd986c700692b07a76a60b73a3c31e52c7ef983","impliedFormat":99},{"version":"4098e612efd242b5e203c5c0b9afbf7473209905ab2830598be5c7b3942643d0","impliedFormat":99},{"version":"28410cfb9a798bd7d0327fbf0afd4c4038799b1d6a3f86116dc972e31156b6d2","impliedFormat":99},{"version":"514ae9be6724e2164eb38f2a903ef56cf1d0e6ddb62d0d40f155f32d1317c116","impliedFormat":99},{"version":"970e5e94a9071fd5b5c41e2710c0ef7d73e7f7732911681592669e3f7bd06308","impliedFormat":99},{"version":"491fb8b0e0aef777cec1339cb8f5a1a599ed4973ee22a2f02812dd0f48bd78c1","impliedFormat":99},{"version":"6acf0b3018881977d2cfe4382ac3e3db7e103904c4b634be908f1ade06eb302d","impliedFormat":99},{"version":"2dbb2e03b4b7f6524ad5683e7b5aa2e6aef9c83cab1678afd8467fde6d5a3a92","impliedFormat":99},{"version":"135b12824cd5e495ea0a8f7e29aba52e1adb4581bb1e279fb179304ba60c0a44","impliedFormat":99},{"version":"e4c784392051f4bbb80304d3a909da18c98bc58b093456a09b3e3a1b7b10937f","impliedFormat":99},{"version":"2e87c3480512f057f2e7f44f6498b7e3677196e84e0884618fc9e8b6d6228bed","impliedFormat":99},{"version":"66984309d771b6b085e3369227077da237b40e798570f0a2ddbfea383db39812","impliedFormat":99},{"version":"e41be8943835ad083a4f8a558bd2a89b7fe39619ed99f1880187c75e231d033e","impliedFormat":99},{"version":"260558fff7344e4985cfc78472ae58cbc2487e406d23c1ddaf4d484618ce4cfd","impliedFormat":99},{"version":"e6274d956641c1cbd5a01a221a85a6671fd85104ed6b530f8d34ad3086804133","impliedFormat":99},{"version":"77516308358982bb05209e8c0ed6f321860e03393587d89f61055941e5bbcdd2","impliedFormat":99},{"version":"dc8652855a95ef9b9c12be8d2f5e6fc37b96aa2144f6c6f195cd1d2e07f721ee","impliedFormat":99},"e2cb25ca55e10ba874410188a53331a6b0b2bc13c0ee4d538bde50460a4e1b77","041afde4e1ac27e6fabdc2ca87882a3a766443fcfe1a1cfc3ed78bcc1c25b28a","c2049793874bbeafd60402bab915f3d285f4057e718dfdefe8a54ccc80c991dd","8a2b6f999a708119f4fa55fc58c5803ca9563340d0a54b9fe2a4fa14838f148c","2db5b1bbf946e20cef3c889cb7be46e3da384bdd1b4b53964253d97635718774","79e620484ae1a7011482631159563e4729f7f4d4c316b914125cb95f678ffbb9","6434c2976daf446cfd95935af4e0a0b6b369ce81af183579dab3ac6567dbbfd0","f50c1778b48a9275078ad81abaa5b4cb13a295b3889986f8e72fe61dd9cd8b86","6e935a5aec1b1f86cfa97fb93ec13c8759479712014d7dc4c13f140f7d409357","8cd4c86b90f9a96ba804585a4b6a998f484a860af3dfd12641ecb9eca109274b","8cd4c86b90f9a96ba804585a4b6a998f484a860af3dfd12641ecb9eca109274b","1b92de1f5b74cf4bda283aa7688c80781e9c7273f44a4ef2db084747a94be933",{"version":"9c07655d97608c6a082c2117786c60e8b52fe723269d80b4b5514f25f89e29a8","signature":"6d17ed9b7135b0b3db99ead1c9a36ed2c4891df097fff6c3e2a9ef3df9a5740f"},{"version":"8bcbff3c0866421697d73d34fae1b2819cf028a6206b2c284c77e4fcb57a3dd4","signature":"1cace9c9622a28eadfc2938bc64a68ee0db03df840d6efacd3ce99e78ed4d1b0"},{"version":"83a0167975601ed7c872f0a5563e836b59be92ebe1f6316c9e32e98c15f47bec","signature":"70bb51dce3f7123f059955d9c6f1d4bf00619d7f483f0ff4c431999341a7ab40"},{"version":"fb0cd7c6899ad5d487e61f62df8fc96a9b73bfe1c6d7610be72e142e5cf77d8a","signature":"8c24aeb14985e8089f29e1fea075e95a7c8825077277079d5dc4130ceb6339de"},"16976e5481a0abbe56fa82010ecd47c152e76d9c7ecb5977d68a1b2c4a785c91","749f3bd08d4fc5cc1c95e3c3b07dede327898a51cf6fa7f156456c0d46aae680","7797184093e9b9f6203d001829de6f91d142497913c67a8d0c2a5b25de005a68",{"version":"c60e1b30f06db4bb8955ee847c28592af992e45f2b8db300c1b0edfc3329b9cb","impliedFormat":99},"61a03f64adcb31f88db8ab9dceb0ce4fa239e8e725edd308d6f2ca94e1de82cc",{"version":"d7078beac51b6602d6e8b7c6cf788bae156388172ebee3761fbf2756264ced46","signature":"6abd2f68e6651205f5d7763dcf7a5b5e5dc28b6194b097b467913d2cf19c1dd2"},{"version":"2894270b4e3d4b7a05df28e41c20d56ece05b0e5ea5902d9c7b887d53e9a0b42","signature":"441c8ea68ff583cefd0f77d2a1699f6328d714ebfb9435ffedad5470392de2e7"},{"version":"449c7a99335eebc907b2a3ac80639b59ceb24a131ae11940a03e08b9ef25eea8","signature":"5ca4d7a999b9fa8c7e2ef9746968eaeabb8e69a904cc62a3c18ac23b9664c8a8"},{"version":"bde17d9dc5000a6811808450578e11044bb52d3ff234d6fd4d3db0947ba6ab50","signature":"ff041f34cc1936cb45f94de1924d396abd69b3d6e0cc887dfaa0b6ec176e27e1"},"d9fc24b35b002a548f4414e49fe3793d9a5b35ee52005272caf4318f2e4f8365","38815495490dbe68097e68af671c9f38d7b7becdc86046701caf27b3aefc1238","4f5fa1f41df5934999037079798a183a672f6a51bf00fecd8a58a40bf8a6ab4b","9228f51f27ecf7b4ea783d9a8ad6fa0b04aedd65f15765ef2e2b4fa993230c71","a4a6eecc3b94a291ecd8001af8bc77860553c1cd0539b7df753db546b90957f1","531aa8b58051f4a06c342c0e058080be43e46ec8caeb686e988f01506dd86e8b","830ef6b30732865e6c28f3a1a5ab6b2d912705dde825638ac06b125ec43d21d0","36a26b110dcea31cd8bab601c2b73930f04e8b5417f9749d9f5fb1eab2a763b6","4c5e77be4579c26825232a95edbf67c1fe38ef7af273b3829831e95cbeb86bb1","fe92ca191d247c305b79d52f46a30ba4d7c93dd1c3e92d7c6c613d330b3da187","89854e488820d88a1b94cf1fd4f156c48859af845d09130f81d516c1aa5db130","0b91eff2dfe722ddce2e4541b66db7b80b83c9912ddd338906bff6e0d1b992c9","7c746be7d0a5cd1a23a4b9f9290669f7c49ca4b315e19c103b1c8ede5037b984","40bcee342fdfb92c1e899d6eb5dfe6e4b1d7c22ec66ddefaec6e287a182e2d9b","717d62319839b9544128ebd5d5d414a2ef6aca2068d40045336d838e2872bdc9",{"version":"c18f616b098332f45b312f3c1385de32e7b3dba6a3da8a778547dcd7ed264649","impliedFormat":99},"8218396f3bd9e5724bc2fb6592a1da7d2254fd1d4459f0117ef8d27084e15fd4",{"version":"11e99978017363b8304af8659ac61b6b84e1afbeb77821185b3ada2c3b47dba8","signature":"3fc92b50147ec179c1db1355901683a7f48646c6203ae982f2bc31dc8959f4ff"},{"version":"3bdc2038a2b8f4a230a7c241ad2918832ab0bf9a5ba83cee2c4341ab38d61afd","signature":"cc60d13b9e2058908f082cca058357d2ebd83143b3dc4e3a01731e8a4b7ae2fe"},{"version":"2a2bf28ea49852d2e74e4a554b0872e02d2a6118ca76abc461be4e703907d3d7","signature":"bff722032fb479d76cdd167e0aa05e2e3ca9b728cff777e893aa694bad01e3a9"},{"version":"e35605c0d828574942edbf44edf6084b8ff2e70fa40e82454ce8a86230225d8d","signature":"c04c352fc277c57e16519814a13e1b84e6c54c461b89ee63c8bff94ddf615555"},{"version":"984b866f62b263dd46f439830e8682d27886d65d365668d9a96fff3f79292551","signature":"ad43cfeea2ffc4f26107e49ae92bed3fe01b0c2aa3e328e293d7b0dceb01300f"},{"version":"9daa7972ff78c7ce9ea9ee78b3ab27ba71a30896161528b6a00bb950d88981a5","signature":"e406a8398f12e8bb0d7661b9974a9ce78043a916cd2c652f7b82b7889e57f9e8"},{"version":"f71355e5a8a09ed236b9b530678657ad2c8a868c129f8ee408cfc223adc1f1ec","signature":"50e52950b1b92455f40c3fba61ee9a43e74bf9bdf6a25e01ad2e3a2226bbb2ec"},{"version":"c98f84f81058725a2010627ccb07bcfc75014e098ec6fb2bae301b99712977b2","signature":"cd2e2d6ffad8a1de80249fd4aa35f6c6f9160c18f69fbaf6507072eba208abda"},{"version":"79364e225e6c33339e507c97ae55786c4053ce9ca52ea994637b10587634d68a","signature":"3b8dd8f967501f6193f2d31f8a124e05186264f37f1b73d073cf39c6e123fe50"},{"version":"4f115551dc9c25dbdd276d82a5252840129556324811ba53bafa41ddc2c7e993","signature":"bc699cb86e1528d370a29ae99fe8f89e3a838bb620ad4071a4c9999a390c8361"},{"version":"cadeb2c96f1c964d7e49c0f17d6805e1b4dee62f0862c49bb178dae6ab277e8e","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"eb64a68249f1ee45e496a23cd0be8fe8c84aecb4c038b86d4abcc765c5ba115e","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"3354286ef917d22c72e0c830324062f950134d8882e9ea57ad6ade3d8ad943cf","impliedFormat":99},{"version":"3dedc468e9b0ed804c0226482e344bd769417f834988af838d814504af81cba6","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"82179358c2d9d7347f1602dc9300039a2250e483137b38ebf31d4d2e5519c181","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"091546ac9077cddcd7b9479cc2e0c677238bf13e39eab4b13e75046c3328df93","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"727858fb893b87791876dee5e3cd4c187a721d2de516fd19d3d00dc6e8a894b3","impliedFormat":99},{"version":"5bfaa2ee33e63a1b17b08dbefd7a3c42d1e0f914e52aca5bef679b420bd7a07c","impliedFormat":99},{"version":"7d5c6cc5d537c47c7723a1fe76411b99373eb55c487045dfd076c1956e87389a","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"a86701e56b10a6d1ef9b2ecaeedbab94ed7b957a646cd71fd09d02b323c6d3d7","impliedFormat":99},{"version":"b3f0791a73b6521da68107c5ba1bfed4bc21ff7099b892700fd65670e88ef6ee","impliedFormat":99},{"version":"d0411dddbef50f9ad568ee9d24b108153bcb8f0db1094de6dfbadf02feb3aa70","impliedFormat":99},{"version":"25249ca5fe64ca60d7bfb7fbbf0cb084324853b03a265dbbbc45fb4949de7567","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"31d5fb0aeb0368909fbe8cd9b893c16350aa94d48a2f909fdd393982ceb4814d","affectsGlobalScope":true,"impliedFormat":99},{"version":"90fe5875e2c7519711442683a9489416819c6cec8d395e48ff568e94254533e7","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"72a863bc6c0fc7a6263d8e07279167d86467a3869b5f002b1df6eaf5000ccc7b","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"42f0f7e74d73ae5873ed666373e09a367d62232ca378677094d0dc06020d6e00","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"ebb9b9fa684d70aef64614a59b7582f46f4982139b8b632b911ef98e10c4d117","impliedFormat":99},{"version":"6fc8fdb157985884dbe30cce1acdef84a8c176ab839d7a961b677773d23bb859","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[137,140],[146,149],[167,176],224],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":5,"tsBuildInfoFile":"./tsconfig.tsbuildinfo","useUnknownInCatchVariables":true,"verbatimModuleSyntax":true},"referencedMap":[[206,1],[83,2],[207,3],[213,4],[214,5],[186,6],[185,7],[208,6],[193,8],[195,9],[194,10],[184,11],[178,12],[180,13],[182,14],[183,12],[220,15],[222,16],[221,17],[219,18],[87,19],[86,20],[85,21],[121,22],[101,23],[102,23],[103,23],[104,23],[105,23],[106,23],[107,24],[109,23],[108,23],[120,25],[110,23],[112,23],[111,23],[114,23],[113,23],[115,23],[116,23],[117,23],[118,23],[119,23],[100,23],[99,26],[144,27],[77,27],[165,28],[73,29],[76,30],[74,31],[75,32],[98,33],[97,34],[123,35],[122,36],[124,37],[94,38],[96,39],[95,40],[89,41],[88,2],[91,42],[90,43],[189,44],[192,45],[190,44],[191,46],[210,47],[200,48],[196,49],[197,8],[216,50],[211,51],[198,52],[215,53],[199,54],[223,55],[217,56],[139,57],[138,58],[137,59],[174,60],[175,61],[176,62],[140,63],[149,64],[146,65],[170,66],[172,67],[173,68],[147,69],[224,70],[167,71],[168,72],[171,73],[148,74],[169,72],[60,75],[61,76],[59,77],[71,78],[67,79],[66,80],[68,81],[70,82],[69,83],[64,84],[65,85],[63,86],[142,87],[143,88],[145,89],[164,90],[78,91],[166,92],[81,31],[79,93],[163,94],[152,95],[151,96],[155,97],[153,98],[154,98],[156,99],[157,95],[162,100],[159,101],[160,102],[161,103],[158,102],[80,104],[136,105],[134,106],[131,107],[132,108],[133,109],[135,110],[127,111],[128,112],[129,113],[126,114],[130,115]],"latestChangedDtsFile":"./internal-plugin/keymap.test.d.ts","version":"6.0.2"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jvs-milkdown/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"markdown",
|
|
6
6
|
"markdown editor",
|
|
@@ -22,24 +22,32 @@
|
|
|
22
22
|
],
|
|
23
23
|
"type": "module",
|
|
24
24
|
"sideEffects": false,
|
|
25
|
-
"main": "./
|
|
25
|
+
"main": "./src/index.ts",
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
28
|
-
"import": "./
|
|
29
|
-
"types": "./lib/index.d.ts"
|
|
28
|
+
"import": "./src/index.ts"
|
|
30
29
|
}
|
|
31
30
|
},
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"import": "./lib/index.js",
|
|
35
|
+
"types": "./lib/index.d.ts"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"main": "./lib/index.js",
|
|
39
|
+
"types": "./lib/index.d.ts"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "vite build"
|
|
43
43
|
},
|
|
44
|
-
"
|
|
45
|
-
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@jvs-milkdown/ctx": "workspace:*",
|
|
46
|
+
"@jvs-milkdown/exception": "workspace:*",
|
|
47
|
+
"@jvs-milkdown/prose": "workspace:*",
|
|
48
|
+
"@jvs-milkdown/transformer": "workspace:*",
|
|
49
|
+
"remark-parse": "^11.0.0",
|
|
50
|
+
"remark-stringify": "^11.0.0",
|
|
51
|
+
"unified": "^11.0.3"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -55,6 +55,7 @@ export const rootAttrsCtx = createSlice(
|
|
|
55
55
|
function createViewContainer(root: Node, ctx: Ctx) {
|
|
56
56
|
const container = document.createElement('div')
|
|
57
57
|
container.className = 'milkdown'
|
|
58
|
+
container.style = 'height: calc(100vh - 32px);'
|
|
58
59
|
root.appendChild(container)
|
|
59
60
|
ctx.set(rootDOMCtx, container)
|
|
60
61
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { Command } from '@jvs-milkdown/prose/state'
|
|
2
|
-
|
|
3
1
|
import {
|
|
4
2
|
createSlice,
|
|
5
3
|
createTimer,
|
|
@@ -13,9 +11,11 @@ import {
|
|
|
13
11
|
chainCommands,
|
|
14
12
|
deleteSelection,
|
|
15
13
|
joinTextblockBackward,
|
|
14
|
+
selectAll,
|
|
16
15
|
selectNodeBackward,
|
|
17
16
|
} from '@jvs-milkdown/prose/commands'
|
|
18
17
|
import { undoInputRule } from '@jvs-milkdown/prose/inputrules'
|
|
18
|
+
import { TextSelection, type Command } from '@jvs-milkdown/prose/state'
|
|
19
19
|
|
|
20
20
|
import { SchemaReady } from './schema'
|
|
21
21
|
|
|
@@ -30,14 +30,43 @@ export type KeymapItem = {
|
|
|
30
30
|
export type KeymapKey = SliceType<KeymapItem>
|
|
31
31
|
|
|
32
32
|
function overrideBaseKeymap(keymap: Record<string, Command>) {
|
|
33
|
+
const customKeymap = { ...keymap }
|
|
33
34
|
const handleBackspace = chainCommands(
|
|
34
35
|
undoInputRule,
|
|
35
36
|
deleteSelection,
|
|
36
37
|
joinTextblockBackward,
|
|
37
38
|
selectNodeBackward
|
|
38
39
|
)
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
customKeymap.Backspace = handleBackspace
|
|
41
|
+
|
|
42
|
+
const handleSelectAll: Command = (state, dispatch) => {
|
|
43
|
+
const { selection, doc } = state
|
|
44
|
+
const { $from, $to } = selection
|
|
45
|
+
|
|
46
|
+
const sameParent = $from.sameParent($to)
|
|
47
|
+
|
|
48
|
+
if (sameParent && $from.parent.isTextblock) {
|
|
49
|
+
const blockStart = $from.start()
|
|
50
|
+
const blockEnd = $from.end()
|
|
51
|
+
|
|
52
|
+
if ($from.pos !== blockStart || $to.pos !== blockEnd) {
|
|
53
|
+
if (dispatch) {
|
|
54
|
+
dispatch(
|
|
55
|
+
state.tr.setSelection(
|
|
56
|
+
TextSelection.create(doc, blockStart, blockEnd)
|
|
57
|
+
)
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
return true
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return selectAll(state, dispatch)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
customKeymap['Mod-a'] = handleSelectAll
|
|
68
|
+
|
|
69
|
+
return customKeymap
|
|
41
70
|
}
|
|
42
71
|
|
|
43
72
|
/// The keymap manager.
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2020-present Mirone
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|