@tiptap/core 2.0.0-beta.20 → 2.0.0-beta.200

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.
Files changed (333) hide show
  1. package/README.md +2 -2
  2. package/dist/packages/core/src/CommandManager.d.ts +13 -6
  3. package/dist/packages/core/src/Editor.d.ts +24 -19
  4. package/dist/packages/core/src/EventEmitter.d.ts +8 -4
  5. package/dist/packages/core/src/Extension.d.ts +99 -27
  6. package/dist/packages/core/src/ExtensionManager.d.ts +7 -13
  7. package/dist/packages/core/src/InputRule.d.ts +42 -0
  8. package/dist/packages/core/src/Mark.d.ts +139 -31
  9. package/dist/packages/core/src/Node.d.ts +157 -33
  10. package/dist/packages/core/src/NodeView.d.ts +8 -12
  11. package/dist/packages/core/src/PasteRule.d.ts +42 -0
  12. package/dist/packages/core/src/Tracker.d.ts +11 -0
  13. package/dist/packages/core/src/commands/blur.d.ts +3 -3
  14. package/dist/packages/core/src/commands/clearContent.d.ts +3 -3
  15. package/dist/packages/core/src/commands/clearNodes.d.ts +3 -3
  16. package/dist/packages/core/src/commands/command.d.ts +2 -2
  17. package/dist/packages/core/src/commands/createParagraphNear.d.ts +3 -3
  18. package/dist/packages/core/src/commands/deleteNode.d.ts +13 -0
  19. package/dist/packages/core/src/commands/deleteRange.d.ts +3 -3
  20. package/dist/packages/core/src/commands/deleteSelection.d.ts +3 -3
  21. package/dist/packages/core/src/commands/enter.d.ts +3 -3
  22. package/dist/packages/core/src/commands/exitCode.d.ts +3 -3
  23. package/dist/packages/core/src/commands/extendMarkRange.d.ts +3 -3
  24. package/dist/packages/core/src/commands/first.d.ts +3 -3
  25. package/dist/packages/core/src/commands/focus.d.ts +5 -3
  26. package/dist/packages/core/src/commands/forEach.d.ts +14 -0
  27. package/dist/packages/core/src/commands/index.d.ts +50 -0
  28. package/dist/packages/core/src/commands/insertContent.d.ts +7 -3
  29. package/dist/packages/core/src/commands/insertContentAt.d.ts +16 -0
  30. package/dist/packages/core/src/commands/joinBackward.d.ts +3 -3
  31. package/dist/packages/core/src/commands/joinForward.d.ts +3 -3
  32. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +3 -3
  33. package/dist/packages/core/src/commands/lift.d.ts +3 -3
  34. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +3 -3
  35. package/dist/packages/core/src/commands/liftListItem.d.ts +3 -3
  36. package/dist/packages/core/src/commands/newlineInCode.d.ts +3 -3
  37. package/dist/packages/core/src/commands/resetAttributes.d.ts +4 -4
  38. package/dist/packages/core/src/commands/scrollIntoView.d.ts +3 -3
  39. package/dist/packages/core/src/commands/selectAll.d.ts +3 -3
  40. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +3 -3
  41. package/dist/packages/core/src/commands/selectNodeForward.d.ts +3 -3
  42. package/dist/packages/core/src/commands/selectParentNode.d.ts +3 -3
  43. package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +12 -0
  44. package/dist/packages/core/src/commands/selectTextblockStart.d.ts +12 -0
  45. package/dist/packages/core/src/commands/setContent.d.ts +4 -3
  46. package/dist/packages/core/src/commands/setMark.d.ts +3 -3
  47. package/dist/packages/core/src/commands/setMeta.d.ts +12 -0
  48. package/dist/packages/core/src/commands/setNode.d.ts +3 -3
  49. package/dist/packages/core/src/commands/setNodeSelection.d.ts +12 -0
  50. package/dist/packages/core/src/commands/setTextSelection.d.ts +12 -0
  51. package/dist/packages/core/src/commands/sinkListItem.d.ts +3 -3
  52. package/dist/packages/core/src/commands/splitBlock.d.ts +3 -3
  53. package/dist/packages/core/src/commands/splitListItem.d.ts +3 -3
  54. package/dist/packages/core/src/commands/toggleList.d.ts +3 -3
  55. package/dist/packages/core/src/commands/toggleMark.d.ts +8 -3
  56. package/dist/packages/core/src/commands/toggleNode.d.ts +3 -3
  57. package/dist/packages/core/src/commands/toggleWrap.d.ts +3 -3
  58. package/dist/packages/core/src/commands/undoInputRule.d.ts +3 -3
  59. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +3 -3
  60. package/dist/packages/core/src/commands/unsetMark.d.ts +8 -3
  61. package/dist/packages/core/src/commands/updateAttributes.d.ts +4 -4
  62. package/dist/packages/core/src/commands/wrapIn.d.ts +3 -3
  63. package/dist/packages/core/src/commands/wrapInList.d.ts +3 -3
  64. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +1 -1
  65. package/dist/packages/core/src/extensions/commands.d.ts +2 -99
  66. package/dist/packages/core/src/extensions/editable.d.ts +1 -1
  67. package/dist/packages/core/src/extensions/focusEvents.d.ts +1 -1
  68. package/dist/packages/core/src/extensions/index.d.ts +1 -0
  69. package/dist/packages/core/src/extensions/keymap.d.ts +1 -1
  70. package/dist/packages/core/src/extensions/tabindex.d.ts +2 -0
  71. package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +7 -0
  72. package/dist/packages/core/src/helpers/createChainableState.d.ts +5 -0
  73. package/dist/packages/core/src/helpers/createDocument.d.ts +3 -4
  74. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +4 -5
  75. package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +2 -0
  76. package/dist/packages/core/src/helpers/findChildren.d.ts +3 -0
  77. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +6 -0
  78. package/dist/packages/core/src/helpers/findParentNode.d.ts +2 -3
  79. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +2 -2
  80. package/dist/packages/core/src/helpers/generateHTML.d.ts +2 -2
  81. package/dist/packages/core/src/helpers/generateJSON.d.ts +2 -0
  82. package/dist/packages/core/src/helpers/generateText.d.ts +5 -0
  83. package/dist/packages/core/src/helpers/getAttributes.d.ts +3 -0
  84. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +2 -2
  85. package/dist/packages/core/src/helpers/getChangedRanges.d.ts +11 -0
  86. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +8 -0
  87. package/dist/packages/core/src/helpers/getExtensionField.d.ts +2 -0
  88. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +2 -2
  89. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +2 -3
  90. package/dist/packages/core/src/helpers/getMarkRange.d.ts +1 -1
  91. package/dist/packages/core/src/helpers/getMarkType.d.ts +1 -1
  92. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +2 -2
  93. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +2 -3
  94. package/dist/packages/core/src/helpers/getNodeType.d.ts +1 -1
  95. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +3 -3
  96. package/dist/packages/core/src/helpers/getSchema.d.ts +1 -1
  97. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +3 -0
  98. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +1 -1
  99. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +1 -1
  100. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +2 -2
  101. package/dist/packages/core/src/helpers/getText.d.ts +6 -0
  102. package/dist/packages/core/src/helpers/getTextBetween.d.ts +6 -0
  103. package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +2 -0
  104. package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +3 -0
  105. package/dist/packages/core/src/helpers/index.d.ts +33 -0
  106. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +1 -1
  107. package/dist/packages/core/src/helpers/isActive.d.ts +1 -2
  108. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +2 -0
  109. package/dist/packages/core/src/helpers/isList.d.ts +1 -1
  110. package/dist/packages/core/src/helpers/isMarkActive.d.ts +2 -3
  111. package/dist/packages/core/src/helpers/isNodeActive.d.ts +2 -3
  112. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +1 -1
  113. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +1 -1
  114. package/dist/packages/core/src/helpers/isTextSelection.d.ts +1 -1
  115. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -0
  116. package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +4 -0
  117. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +1 -1
  118. package/dist/packages/core/src/helpers/splitExtensions.d.ts +6 -6
  119. package/dist/packages/core/src/index.d.ts +14 -21
  120. package/dist/packages/core/src/inputRules/index.d.ts +5 -0
  121. package/dist/packages/core/src/inputRules/markInputRule.d.ts +11 -2
  122. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +11 -2
  123. package/dist/packages/core/src/inputRules/textInputRule.d.ts +9 -0
  124. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +14 -0
  125. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +23 -0
  126. package/dist/packages/core/src/pasteRules/index.d.ts +3 -0
  127. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +11 -2
  128. package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +12 -0
  129. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +9 -0
  130. package/dist/packages/core/src/style.d.ts +1 -2
  131. package/dist/packages/core/src/types.d.ts +112 -56
  132. package/dist/packages/core/src/utilities/callOrReturn.d.ts +2 -1
  133. package/dist/packages/core/src/utilities/createStyleTag.d.ts +1 -1
  134. package/dist/packages/core/src/utilities/deleteProps.d.ts +1 -2
  135. package/dist/packages/core/src/utilities/elementFromString.d.ts +1 -1
  136. package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +1 -0
  137. package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -0
  138. package/dist/packages/core/src/utilities/fromString.d.ts +1 -1
  139. package/dist/packages/core/src/utilities/index.d.ts +3 -0
  140. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +1 -1
  141. package/dist/packages/core/src/utilities/isFunction.d.ts +1 -0
  142. package/dist/packages/core/src/utilities/isMacOS.d.ts +1 -0
  143. package/dist/packages/core/src/utilities/isNumber.d.ts +1 -0
  144. package/dist/packages/core/src/utilities/isPlainObject.d.ts +1 -1
  145. package/dist/packages/core/src/utilities/isRegExp.d.ts +1 -0
  146. package/dist/packages/core/src/utilities/isiOS.d.ts +1 -0
  147. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +1 -2
  148. package/dist/packages/core/src/utilities/mergeDeep.d.ts +1 -2
  149. package/dist/packages/core/src/utilities/minMax.d.ts +1 -1
  150. package/dist/packages/core/src/utilities/objectIncludes.d.ts +3 -2
  151. package/dist/packages/core/src/utilities/removeDuplicates.d.ts +8 -0
  152. package/dist/tiptap-core.cjs.js +2755 -1460
  153. package/dist/tiptap-core.cjs.js.map +1 -1
  154. package/dist/tiptap-core.esm.js +2709 -1448
  155. package/dist/tiptap-core.esm.js.map +1 -1
  156. package/dist/tiptap-core.umd.js +2731 -1435
  157. package/dist/tiptap-core.umd.js.map +1 -1
  158. package/package.json +16 -20
  159. package/src/CommandManager.ts +64 -65
  160. package/src/Editor.ts +116 -78
  161. package/src/EventEmitter.ts +14 -4
  162. package/src/Extension.ts +193 -43
  163. package/src/ExtensionManager.ts +242 -84
  164. package/src/InputRule.ts +265 -0
  165. package/src/Mark.ts +277 -48
  166. package/src/Node.ts +279 -57
  167. package/src/NodeView.ts +115 -47
  168. package/src/PasteRule.ts +280 -0
  169. package/src/Tracker.ts +42 -0
  170. package/src/commands/blur.ts +12 -6
  171. package/src/commands/clearContent.ts +3 -3
  172. package/src/commands/clearNodes.ts +30 -18
  173. package/src/commands/command.ts +2 -2
  174. package/src/commands/createParagraphNear.ts +4 -3
  175. package/src/commands/deleteNode.ts +37 -0
  176. package/src/commands/deleteRange.ts +3 -3
  177. package/src/commands/deleteSelection.ts +4 -3
  178. package/src/commands/enter.ts +3 -3
  179. package/src/commands/exitCode.ts +4 -3
  180. package/src/commands/extendMarkRange.ts +12 -11
  181. package/src/commands/first.ts +3 -3
  182. package/src/commands/focus.ts +47 -44
  183. package/src/commands/forEach.ts +24 -0
  184. package/src/commands/index.ts +50 -0
  185. package/src/commands/insertContent.ts +13 -24
  186. package/src/commands/insertContentAt.ts +108 -0
  187. package/src/commands/joinBackward.ts +4 -3
  188. package/src/commands/joinForward.ts +4 -3
  189. package/src/commands/keyboardShortcut.ts +6 -6
  190. package/src/commands/lift.ts +6 -5
  191. package/src/commands/liftEmptyBlock.ts +4 -3
  192. package/src/commands/liftListItem.ts +6 -5
  193. package/src/commands/newlineInCode.ts +4 -3
  194. package/src/commands/resetAttributes.ts +9 -8
  195. package/src/commands/scrollIntoView.ts +3 -3
  196. package/src/commands/selectAll.ts +8 -6
  197. package/src/commands/selectNodeBackward.ts +4 -3
  198. package/src/commands/selectNodeForward.ts +4 -3
  199. package/src/commands/selectParentNode.ts +4 -3
  200. package/src/commands/selectTextblockEnd.ts +20 -0
  201. package/src/commands/selectTextblockStart.ts +20 -0
  202. package/src/commands/setContent.ts +9 -15
  203. package/src/commands/setMark.ts +80 -14
  204. package/src/commands/setMeta.ts +18 -0
  205. package/src/commands/setNode.ts +29 -7
  206. package/src/commands/setNodeSelection.ts +27 -0
  207. package/src/commands/setTextSelection.ts +33 -0
  208. package/src/commands/sinkListItem.ts +6 -5
  209. package/src/commands/splitBlock.ts +14 -19
  210. package/src/commands/splitListItem.ts +45 -18
  211. package/src/commands/toggleList.ts +83 -18
  212. package/src/commands/toggleMark.ts +18 -7
  213. package/src/commands/toggleNode.ts +6 -5
  214. package/src/commands/toggleWrap.ts +9 -9
  215. package/src/commands/undoInputRule.ts +34 -5
  216. package/src/commands/unsetAllMarks.ts +7 -11
  217. package/src/commands/unsetMark.ts +35 -22
  218. package/src/commands/updateAttributes.ts +16 -9
  219. package/src/commands/wrapIn.ts +5 -10
  220. package/src/commands/wrapInList.ts +6 -5
  221. package/src/extensions/clipboardTextSerializer.ts +14 -35
  222. package/src/extensions/commands.ts +3 -147
  223. package/src/extensions/editable.ts +1 -0
  224. package/src/extensions/focusEvents.ts +3 -5
  225. package/src/extensions/index.ts +1 -0
  226. package/src/extensions/keymap.ts +110 -13
  227. package/src/extensions/tabindex.ts +18 -0
  228. package/src/helpers/combineTransactionSteps.ts +18 -0
  229. package/src/helpers/createChainableState.ts +38 -0
  230. package/src/helpers/createDocument.ts +5 -6
  231. package/src/helpers/createNodeFromContent.ts +17 -19
  232. package/src/helpers/defaultBlockAt.ts +13 -0
  233. package/src/helpers/findChildren.ts +18 -0
  234. package/src/helpers/findChildrenInRange.ts +32 -0
  235. package/src/helpers/findParentNode.ts +3 -2
  236. package/src/helpers/findParentNodeClosestToPos.ts +3 -2
  237. package/src/helpers/generateHTML.ts +6 -5
  238. package/src/helpers/generateJSON.ts +14 -0
  239. package/src/helpers/generateText.ts +30 -0
  240. package/src/helpers/getAttributes.ts +28 -0
  241. package/src/helpers/getAttributesFromExtensions.ts +42 -14
  242. package/src/helpers/getChangedRanges.ts +83 -0
  243. package/src/helpers/getDebugJSON.ts +54 -0
  244. package/src/helpers/getExtensionField.ts +25 -0
  245. package/src/helpers/getHTMLFromFragment.ts +6 -5
  246. package/src/helpers/getMarkAttributes.ts +14 -10
  247. package/src/helpers/getMarkRange.ts +41 -8
  248. package/src/helpers/getMarkType.ts +5 -1
  249. package/src/helpers/getMarksBetween.ts +32 -10
  250. package/src/helpers/getNodeAttributes.ts +9 -9
  251. package/src/helpers/getNodeType.ts +5 -1
  252. package/src/helpers/getRenderedAttributes.ts +6 -7
  253. package/src/helpers/getSchema.ts +7 -133
  254. package/src/helpers/getSchemaByResolvedExtensions.ts +148 -0
  255. package/src/helpers/getSchemaTypeByName.ts +2 -10
  256. package/src/helpers/getSchemaTypeNameByName.ts +1 -1
  257. package/src/helpers/getSplittedAttributes.ts +4 -4
  258. package/src/helpers/getText.ts +19 -0
  259. package/src/helpers/getTextBetween.ts +49 -0
  260. package/src/helpers/getTextContentFromNodes.ts +21 -0
  261. package/src/helpers/getTextSerializersFromSchema.ts +10 -0
  262. package/src/helpers/index.ts +33 -0
  263. package/src/helpers/injectExtensionAttributesToParseRule.ts +17 -19
  264. package/src/helpers/isActive.ts +5 -5
  265. package/src/helpers/isExtensionRulesEnabled.ts +15 -0
  266. package/src/helpers/isList.ts +14 -7
  267. package/src/helpers/isMarkActive.ts +45 -20
  268. package/src/helpers/isNodeActive.ts +28 -35
  269. package/src/helpers/isNodeEmpty.ts +1 -1
  270. package/src/helpers/isNodeSelection.ts +2 -3
  271. package/src/helpers/isTextSelection.ts +2 -3
  272. package/src/helpers/posToDOMRect.ts +35 -0
  273. package/src/helpers/resolveFocusPosition.ts +43 -0
  274. package/src/helpers/selectionToInsertionEnd.ts +2 -2
  275. package/src/helpers/splitExtensions.ts +3 -3
  276. package/src/index.ts +15 -24
  277. package/src/inputRules/index.ts +5 -0
  278. package/src/inputRules/markInputRule.ts +59 -39
  279. package/src/inputRules/nodeInputRule.ts +45 -11
  280. package/src/inputRules/textInputRule.ts +35 -0
  281. package/src/inputRules/textblockTypeInputRule.ts +38 -0
  282. package/src/inputRules/wrappingInputRule.ts +60 -0
  283. package/src/pasteRules/index.ts +3 -0
  284. package/src/pasteRules/markPasteRule.ts +62 -53
  285. package/src/pasteRules/nodePasteRule.ts +39 -0
  286. package/src/pasteRules/textPasteRule.ts +35 -0
  287. package/src/style.ts +16 -3
  288. package/src/types.ts +129 -43
  289. package/src/utilities/callOrReturn.ts +6 -3
  290. package/src/utilities/createStyleTag.ts +12 -1
  291. package/src/utilities/deleteProps.ts +2 -4
  292. package/src/utilities/elementFromString.ts +4 -5
  293. package/src/utilities/escapeForRegEx.ts +4 -0
  294. package/src/utilities/findDuplicates.ts +5 -0
  295. package/src/utilities/fromString.ts +2 -2
  296. package/src/utilities/index.ts +3 -0
  297. package/src/utilities/isEmptyObject.ts +2 -2
  298. package/src/utilities/isFunction.ts +3 -0
  299. package/src/utilities/isMacOS.ts +5 -0
  300. package/src/utilities/isNumber.ts +3 -0
  301. package/src/utilities/isPlainObject.ts +8 -5
  302. package/src/utilities/isRegExp.ts +3 -0
  303. package/src/utilities/isString.ts +3 -0
  304. package/src/utilities/isiOS.ts +12 -0
  305. package/src/utilities/mergeAttributes.ts +2 -3
  306. package/src/utilities/mergeDeep.ts +2 -3
  307. package/src/utilities/minMax.ts +1 -1
  308. package/src/utilities/objectIncludes.ts +17 -5
  309. package/src/utilities/removeDuplicates.ts +15 -0
  310. package/CHANGELOG.md +0 -357
  311. package/LICENSE.md +0 -21
  312. package/dist/packages/core/src/commands/insertHTML.d.ts +0 -12
  313. package/dist/packages/core/src/commands/insertNode.d.ts +0 -13
  314. package/dist/packages/core/src/commands/insertText.d.ts +0 -12
  315. package/dist/packages/core/src/commands/replace.d.ts +0 -13
  316. package/dist/packages/core/src/commands/replaceRange.d.ts +0 -13
  317. package/dist/packages/core/src/commands/resetNodeAttributes.d.ts +0 -13
  318. package/dist/packages/core/src/commands/updateNodeAttributes.d.ts +0 -13
  319. package/dist/packages/core/src/utilities/isClass.d.ts +0 -1
  320. package/dist/packages/core/src/utilities/isObject.d.ts +0 -1
  321. package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
  322. package/dist/tiptap-core.bundle.umd.min.js +0 -17
  323. package/dist/tiptap-core.bundle.umd.min.js.map +0 -1
  324. package/src/commands/insertHTML.ts +0 -30
  325. package/src/commands/insertNode.ts +0 -33
  326. package/src/commands/insertText.ts +0 -22
  327. package/src/commands/replace.ts +0 -20
  328. package/src/commands/replaceRange.ts +0 -36
  329. package/src/commands/resetNodeAttributes.ts +0 -33
  330. package/src/commands/updateNodeAttributes.ts +0 -35
  331. package/src/utilities/isClass.ts +0 -7
  332. package/src/utilities/isObject.ts +0 -10
  333. package/src/utilities/removeElement.ts +0 -5
@@ -1,12 +1,12 @@
1
- import { DOMOutputSpec, NodeSpec, Node as ProseMirrorNode, NodeType } from 'prosemirror-model';
2
- import { Command as ProseMirrorCommand } from 'prosemirror-commands';
1
+ import { DOMOutputSpec, Node as ProseMirrorNode, NodeSpec, NodeType } from 'prosemirror-model';
3
2
  import { Plugin, Transaction } from 'prosemirror-state';
4
- import { InputRule } from 'prosemirror-inputrules';
5
- import { Attributes, NodeViewRenderer, GlobalAttributes, RawCommands } from './types';
6
3
  import { NodeConfig } from '.';
7
4
  import { Editor } from './Editor';
5
+ import { InputRule } from './InputRule';
6
+ import { PasteRule } from './PasteRule';
7
+ import { Attributes, Extensions, GlobalAttributes, KeyboardShortcutCommand, NodeViewRenderer, ParentConfig, RawCommands } from './types';
8
8
  declare module '@tiptap/core' {
9
- interface NodeConfig<Options = any> {
9
+ interface NodeConfig<Options = any, Storage = any> {
10
10
  [key: string]: any;
11
11
  /**
12
12
  * Name
@@ -20,109 +20,168 @@ declare module '@tiptap/core' {
20
20
  * Default options
21
21
  */
22
22
  defaultOptions?: Options;
23
+ /**
24
+ * Default Options
25
+ */
26
+ addOptions?: (this: {
27
+ name: string;
28
+ parent: Exclude<ParentConfig<NodeConfig<Options, Storage>>['addOptions'], undefined>;
29
+ }) => Options;
30
+ /**
31
+ * Default Storage
32
+ */
33
+ addStorage?: (this: {
34
+ name: string;
35
+ options: Options;
36
+ parent: Exclude<ParentConfig<NodeConfig<Options, Storage>>['addStorage'], undefined>;
37
+ }) => Storage;
23
38
  /**
24
39
  * Global attributes
25
40
  */
26
41
  addGlobalAttributes?: (this: {
42
+ name: string;
27
43
  options: Options;
44
+ storage: Storage;
45
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addGlobalAttributes'];
28
46
  }) => GlobalAttributes | {};
29
47
  /**
30
48
  * Raw
31
49
  */
32
50
  addCommands?: (this: {
51
+ name: string;
33
52
  options: Options;
53
+ storage: Storage;
34
54
  editor: Editor;
35
55
  type: NodeType;
56
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addCommands'];
36
57
  }) => Partial<RawCommands>;
37
58
  /**
38
59
  * Keyboard shortcuts
39
60
  */
40
61
  addKeyboardShortcuts?: (this: {
62
+ name: string;
41
63
  options: Options;
64
+ storage: Storage;
42
65
  editor: Editor;
43
66
  type: NodeType;
67
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addKeyboardShortcuts'];
44
68
  }) => {
45
- [key: string]: ProseMirrorCommand;
69
+ [key: string]: KeyboardShortcutCommand;
46
70
  };
47
71
  /**
48
72
  * Input rules
49
73
  */
50
74
  addInputRules?: (this: {
75
+ name: string;
51
76
  options: Options;
77
+ storage: Storage;
52
78
  editor: Editor;
53
79
  type: NodeType;
80
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addInputRules'];
54
81
  }) => InputRule[];
55
82
  /**
56
83
  * Paste rules
57
84
  */
58
85
  addPasteRules?: (this: {
86
+ name: string;
59
87
  options: Options;
88
+ storage: Storage;
60
89
  editor: Editor;
61
90
  type: NodeType;
62
- }) => Plugin[];
91
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addPasteRules'];
92
+ }) => PasteRule[];
63
93
  /**
64
94
  * ProseMirror plugins
65
95
  */
66
96
  addProseMirrorPlugins?: (this: {
97
+ name: string;
67
98
  options: Options;
99
+ storage: Storage;
68
100
  editor: Editor;
69
101
  type: NodeType;
102
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addProseMirrorPlugins'];
70
103
  }) => Plugin[];
104
+ /**
105
+ * Extensions
106
+ */
107
+ addExtensions?: (this: {
108
+ name: string;
109
+ options: Options;
110
+ storage: Storage;
111
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addExtensions'];
112
+ }) => Extensions;
71
113
  /**
72
114
  * Extend Node Schema
73
115
  */
74
116
  extendNodeSchema?: ((this: {
117
+ name: string;
75
118
  options: Options;
76
- }, extension: Node) => {
77
- [key: string]: any;
78
- }) | null;
119
+ storage: Storage;
120
+ parent: ParentConfig<NodeConfig<Options, Storage>>['extendNodeSchema'];
121
+ }, extension: Node) => Record<string, any>) | null;
79
122
  /**
80
123
  * Extend Mark Schema
81
124
  */
82
125
  extendMarkSchema?: ((this: {
126
+ name: string;
83
127
  options: Options;
84
- }, extension: Node) => {
85
- [key: string]: any;
86
- }) | null;
128
+ storage: Storage;
129
+ parent: ParentConfig<NodeConfig<Options, Storage>>['extendMarkSchema'];
130
+ }, extension: Node) => Record<string, any>) | null;
87
131
  /**
88
- * The editor is ready.
132
+ * The editor is not ready yet.
89
133
  */
90
- onCreate?: ((this: {
134
+ onBeforeCreate?: ((this: {
135
+ name: string;
91
136
  options: Options;
137
+ storage: Storage;
92
138
  editor: Editor;
93
139
  type: NodeType;
140
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onBeforeCreate'];
94
141
  }) => void) | null;
95
142
  /**
96
- * The content has changed.
143
+ * The editor is ready.
97
144
  */
98
- onUpdate?: ((this: {
145
+ onCreate?: ((this: {
146
+ name: string;
99
147
  options: Options;
148
+ storage: Storage;
100
149
  editor: Editor;
101
150
  type: NodeType;
151
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onCreate'];
102
152
  }) => void) | null;
103
153
  /**
104
- * The selection has changed.
154
+ * The content has changed.
105
155
  */
106
- onSelectionUpdate?: ((this: {
156
+ onUpdate?: ((this: {
157
+ name: string;
107
158
  options: Options;
159
+ storage: Storage;
108
160
  editor: Editor;
109
161
  type: NodeType;
162
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onUpdate'];
110
163
  }) => void) | null;
111
164
  /**
112
- * The view has changed.
165
+ * The selection has changed.
113
166
  */
114
- onViewUpdate?: ((this: {
167
+ onSelectionUpdate?: ((this: {
168
+ name: string;
115
169
  options: Options;
170
+ storage: Storage;
116
171
  editor: Editor;
117
172
  type: NodeType;
173
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onSelectionUpdate'];
118
174
  }) => void) | null;
119
175
  /**
120
176
  * The editor state has changed.
121
177
  */
122
178
  onTransaction?: ((this: {
179
+ name: string;
123
180
  options: Options;
181
+ storage: Storage;
124
182
  editor: Editor;
125
183
  type: NodeType;
184
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onTransaction'];
126
185
  }, props: {
127
186
  transaction: Transaction;
128
187
  }) => void) | null;
@@ -130,9 +189,12 @@ declare module '@tiptap/core' {
130
189
  * The editor is focused.
131
190
  */
132
191
  onFocus?: ((this: {
192
+ name: string;
133
193
  options: Options;
194
+ storage: Storage;
134
195
  editor: Editor;
135
196
  type: NodeType;
197
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onFocus'];
136
198
  }, props: {
137
199
  event: FocusEvent;
138
200
  }) => void) | null;
@@ -140,9 +202,12 @@ declare module '@tiptap/core' {
140
202
  * The editor isn’t focused anymore.
141
203
  */
142
204
  onBlur?: ((this: {
205
+ name: string;
143
206
  options: Options;
207
+ storage: Storage;
144
208
  editor: Editor;
145
209
  type: NodeType;
210
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onBlur'];
146
211
  }, props: {
147
212
  event: FocusEvent;
148
213
  }) => void) | null;
@@ -150,17 +215,23 @@ declare module '@tiptap/core' {
150
215
  * The editor is destroyed.
151
216
  */
152
217
  onDestroy?: ((this: {
218
+ name: string;
153
219
  options: Options;
220
+ storage: Storage;
154
221
  editor: Editor;
155
222
  type: NodeType;
223
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onDestroy'];
156
224
  }) => void) | null;
157
225
  /**
158
226
  * Node View
159
227
  */
160
228
  addNodeView?: ((this: {
229
+ name: string;
161
230
  options: Options;
231
+ storage: Storage;
162
232
  editor: Editor;
163
233
  type: NodeType;
234
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addNodeView'];
164
235
  }) => NodeViewRenderer) | null;
165
236
  /**
166
237
  * TopNode
@@ -170,104 +241,157 @@ declare module '@tiptap/core' {
170
241
  * Content
171
242
  */
172
243
  content?: NodeSpec['content'] | ((this: {
244
+ name: string;
173
245
  options: Options;
246
+ storage: Storage;
247
+ parent: ParentConfig<NodeConfig<Options, Storage>>['content'];
174
248
  }) => NodeSpec['content']);
175
249
  /**
176
250
  * Marks
177
251
  */
178
252
  marks?: NodeSpec['marks'] | ((this: {
253
+ name: string;
179
254
  options: Options;
255
+ storage: Storage;
256
+ parent: ParentConfig<NodeConfig<Options, Storage>>['marks'];
180
257
  }) => NodeSpec['marks']);
181
258
  /**
182
259
  * Group
183
260
  */
184
261
  group?: NodeSpec['group'] | ((this: {
262
+ name: string;
185
263
  options: Options;
264
+ storage: Storage;
265
+ parent: ParentConfig<NodeConfig<Options, Storage>>['group'];
186
266
  }) => NodeSpec['group']);
187
267
  /**
188
268
  * Inline
189
269
  */
190
270
  inline?: NodeSpec['inline'] | ((this: {
271
+ name: string;
191
272
  options: Options;
273
+ storage: Storage;
274
+ parent: ParentConfig<NodeConfig<Options, Storage>>['inline'];
192
275
  }) => NodeSpec['inline']);
193
276
  /**
194
277
  * Atom
195
278
  */
196
279
  atom?: NodeSpec['atom'] | ((this: {
280
+ name: string;
197
281
  options: Options;
282
+ storage: Storage;
283
+ parent: ParentConfig<NodeConfig<Options, Storage>>['atom'];
198
284
  }) => NodeSpec['atom']);
199
285
  /**
200
286
  * Selectable
201
287
  */
202
288
  selectable?: NodeSpec['selectable'] | ((this: {
289
+ name: string;
203
290
  options: Options;
291
+ storage: Storage;
292
+ parent: ParentConfig<NodeConfig<Options, Storage>>['selectable'];
204
293
  }) => NodeSpec['selectable']);
205
294
  /**
206
295
  * Draggable
207
296
  */
208
297
  draggable?: NodeSpec['draggable'] | ((this: {
298
+ name: string;
209
299
  options: Options;
300
+ storage: Storage;
301
+ parent: ParentConfig<NodeConfig<Options, Storage>>['draggable'];
210
302
  }) => NodeSpec['draggable']);
211
303
  /**
212
304
  * Code
213
305
  */
214
306
  code?: NodeSpec['code'] | ((this: {
307
+ name: string;
215
308
  options: Options;
309
+ storage: Storage;
310
+ parent: ParentConfig<NodeConfig<Options, Storage>>['code'];
216
311
  }) => NodeSpec['code']);
312
+ /**
313
+ * Whitespace
314
+ */
315
+ whitespace?: NodeSpec['whitespace'] | ((this: {
316
+ name: string;
317
+ options: Options;
318
+ storage: Storage;
319
+ parent: ParentConfig<NodeConfig<Options, Storage>>['whitespace'];
320
+ }) => NodeSpec['whitespace']);
217
321
  /**
218
322
  * Defining
219
323
  */
220
324
  defining?: NodeSpec['defining'] | ((this: {
325
+ name: string;
221
326
  options: Options;
327
+ storage: Storage;
328
+ parent: ParentConfig<NodeConfig<Options, Storage>>['defining'];
222
329
  }) => NodeSpec['defining']);
223
330
  /**
224
331
  * Isolating
225
332
  */
226
333
  isolating?: NodeSpec['isolating'] | ((this: {
334
+ name: string;
227
335
  options: Options;
336
+ storage: Storage;
337
+ parent: ParentConfig<NodeConfig<Options, Storage>>['isolating'];
228
338
  }) => NodeSpec['isolating']);
229
339
  /**
230
340
  * Parse HTML
231
341
  */
232
342
  parseHTML?: (this: {
343
+ name: string;
233
344
  options: Options;
345
+ storage: Storage;
346
+ parent: ParentConfig<NodeConfig<Options, Storage>>['parseHTML'];
234
347
  }) => NodeSpec['parseDOM'];
235
348
  /**
236
349
  * Render HTML
237
350
  */
238
351
  renderHTML?: ((this: {
352
+ name: string;
239
353
  options: Options;
354
+ storage: Storage;
355
+ parent: ParentConfig<NodeConfig<Options, Storage>>['renderHTML'];
240
356
  }, props: {
241
357
  node: ProseMirrorNode;
242
- HTMLAttributes: {
243
- [key: string]: any;
244
- };
358
+ HTMLAttributes: Record<string, any>;
245
359
  }) => DOMOutputSpec) | null;
246
360
  /**
247
361
  * Render Text
248
362
  */
249
363
  renderText?: ((this: {
364
+ name: string;
250
365
  options: Options;
251
- editor: Editor;
252
- type: NodeType;
366
+ storage: Storage;
367
+ parent: ParentConfig<NodeConfig<Options, Storage>>['renderText'];
253
368
  }, props: {
254
369
  node: ProseMirrorNode;
370
+ pos: number;
371
+ parent: ProseMirrorNode;
372
+ index: number;
255
373
  }) => string) | null;
256
374
  /**
257
375
  * Add Attributes
258
376
  */
259
377
  addAttributes?: (this: {
378
+ name: string;
260
379
  options: Options;
380
+ storage: Storage;
381
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addAttributes'];
261
382
  }) => Attributes | {};
262
383
  }
263
384
  }
264
- export declare class Node<Options = any> {
265
- #private;
385
+ export declare class Node<Options = any, Storage = any> {
266
386
  type: string;
267
- config: NodeConfig;
387
+ name: string;
388
+ parent: Node | null;
389
+ child: Node | null;
268
390
  options: Options;
269
- constructor(config: NodeConfig<Options>);
270
- static create<O>(config: NodeConfig<O>): Node<O>;
271
- configure(options?: Partial<Options>): Node<Options>;
272
- extend<ExtendedOptions = Options>(extendedConfig: Partial<NodeConfig<ExtendedOptions>>): Node<ExtendedOptions>;
391
+ storage: Storage;
392
+ config: NodeConfig;
393
+ constructor(config?: Partial<NodeConfig<Options, Storage>>);
394
+ static create<O = any, S = any>(config?: Partial<NodeConfig<O, S>>): Node<O, S>;
395
+ configure(options?: Partial<Options>): Node<Options, Storage>;
396
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig?: Partial<NodeConfig<ExtendedOptions, ExtendedStorage>>): Node<ExtendedOptions, ExtendedStorage>;
273
397
  }
@@ -1,25 +1,21 @@
1
- import { Decoration, NodeView as ProseMirrorNodeView } from 'prosemirror-view';
2
1
  import { Node as ProseMirrorNode } from 'prosemirror-model';
2
+ import { Decoration, NodeView as ProseMirrorNodeView } from 'prosemirror-view';
3
3
  import { Editor as CoreEditor } from './Editor';
4
4
  import { Node } from './Node';
5
- import { NodeViewRendererProps } from './types';
6
- interface NodeViewRendererOptions {
7
- stopEvent: ((event: Event) => boolean) | null;
8
- update: ((node: ProseMirrorNode, decorations: Decoration[]) => boolean) | null;
9
- }
10
- export declare class NodeView<Component, Editor extends CoreEditor = CoreEditor> implements ProseMirrorNodeView {
5
+ import { NodeViewRendererOptions, NodeViewRendererProps } from './types';
6
+ export declare class NodeView<Component, Editor extends CoreEditor = CoreEditor, Options extends NodeViewRendererOptions = NodeViewRendererOptions> implements ProseMirrorNodeView {
11
7
  component: Component;
12
8
  editor: Editor;
9
+ options: Options;
13
10
  extension: Node;
14
11
  node: ProseMirrorNode;
15
12
  decorations: Decoration[];
16
13
  getPos: any;
17
14
  isDragging: boolean;
18
- options: NodeViewRendererOptions;
19
- constructor(component: Component, props: NodeViewRendererProps, options?: Partial<NodeViewRendererOptions>);
15
+ constructor(component: Component, props: NodeViewRendererProps, options?: Partial<Options>);
20
16
  mount(): void;
21
- get dom(): Element | null;
22
- get contentDOM(): Element | null;
17
+ get dom(): HTMLElement;
18
+ get contentDOM(): HTMLElement | null;
23
19
  onDragStart(event: DragEvent): void;
24
20
  stopEvent(event: Event): boolean;
25
21
  ignoreMutation(mutation: MutationRecord | {
@@ -27,5 +23,5 @@ export declare class NodeView<Component, Editor extends CoreEditor = CoreEditor>
27
23
  target: Element;
28
24
  }): boolean;
29
25
  updateAttributes(attributes: {}): void;
26
+ deleteNode(): void;
30
27
  }
31
- export {};
@@ -0,0 +1,42 @@
1
+ import { EditorState, Plugin } from 'prosemirror-state';
2
+ import { Editor } from './Editor';
3
+ import { CanCommands, ChainedCommands, ExtendedRegExpMatchArray, Range, SingleCommands } from './types';
4
+ export declare type PasteRuleMatch = {
5
+ index: number;
6
+ text: string;
7
+ replaceWith?: string;
8
+ match?: RegExpMatchArray;
9
+ data?: Record<string, any>;
10
+ };
11
+ export declare type PasteRuleFinder = RegExp | ((text: string) => PasteRuleMatch[] | null | undefined);
12
+ export declare class PasteRule {
13
+ find: PasteRuleFinder;
14
+ handler: (props: {
15
+ state: EditorState;
16
+ range: Range;
17
+ match: ExtendedRegExpMatchArray;
18
+ commands: SingleCommands;
19
+ chain: () => ChainedCommands;
20
+ can: () => CanCommands;
21
+ }) => void | null;
22
+ constructor(config: {
23
+ find: PasteRuleFinder;
24
+ handler: (props: {
25
+ state: EditorState;
26
+ range: Range;
27
+ match: ExtendedRegExpMatchArray;
28
+ commands: SingleCommands;
29
+ chain: () => ChainedCommands;
30
+ can: () => CanCommands;
31
+ }) => void | null;
32
+ });
33
+ }
34
+ /**
35
+ * Create an paste rules plugin. When enabled, it will cause pasted
36
+ * text that matches any of the given rules to trigger the rule’s
37
+ * action.
38
+ */
39
+ export declare function pasteRulesPlugin(props: {
40
+ editor: Editor;
41
+ rules: PasteRule[];
42
+ }): Plugin[];
@@ -0,0 +1,11 @@
1
+ import { Transaction } from 'prosemirror-state';
2
+ export interface TrackerResult {
3
+ position: number;
4
+ deleted: boolean;
5
+ }
6
+ export declare class Tracker {
7
+ transaction: Transaction;
8
+ currentStep: number;
9
+ constructor(transaction: Transaction);
10
+ map(position: number): TrackerResult;
11
+ }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  blur: {
5
5
  /**
6
6
  * Removes focus from the editor.
7
7
  */
8
- blur: () => Command;
8
+ blur: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  clearContent: {
5
5
  /**
6
6
  * Clear the whole document.
7
7
  */
8
- clearContent: (emitUpdate: Boolean) => Command;
8
+ clearContent: (emitUpdate?: boolean) => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  clearNodes: {
5
5
  /**
6
6
  * Normalize nodes to a simple paragraph.
7
7
  */
8
- clearNodes: () => Command;
8
+ clearNodes: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
1
  import { Command, RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  command: {
5
5
  /**
6
6
  * Define a command inline.
7
7
  */
8
- command: (fn: (props: Parameters<Command>[0]) => boolean) => Command;
8
+ command: (fn: (props: Parameters<Command>[0]) => boolean) => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  createParagraphNear: {
5
5
  /**
6
6
  * Create a paragraph nearby.
7
7
  */
8
- createParagraphNear: () => Command;
8
+ createParagraphNear: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -0,0 +1,13 @@
1
+ import { NodeType } from 'prosemirror-model';
2
+ import { RawCommands } from '../types';
3
+ declare module '@tiptap/core' {
4
+ interface Commands<ReturnType> {
5
+ deleteNode: {
6
+ /**
7
+ * Delete a node.
8
+ */
9
+ deleteNode: (typeOrName: string | NodeType) => ReturnType;
10
+ };
11
+ }
12
+ }
13
+ export declare const deleteNode: RawCommands['deleteNode'];
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands, Range } from '../types';
1
+ import { Range, RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  deleteRange: {
5
5
  /**
6
6
  * Delete a given range.
7
7
  */
8
- deleteRange: (range: Range) => Command;
8
+ deleteRange: (range: Range) => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  deleteSelection: {
5
5
  /**
6
6
  * Delete the selection, if there is one.
7
7
  */
8
- deleteSelection: () => Command;
8
+ deleteSelection: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  enter: {
5
5
  /**
6
6
  * Trigger enter.
7
7
  */
8
- enter: () => Command;
8
+ enter: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  exitCode: {
5
5
  /**
6
6
  * Exit from a code block.
7
7
  */
8
- exitCode: () => Command;
8
+ exitCode: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }