mimo-reasonix 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1239) hide show
  1. package/dist/cli/package.json +1 -1
  2. package/node_modules/@alcalzone/ansi-tokenize/LICENSE +21 -0
  3. package/node_modules/@alcalzone/ansi-tokenize/README.md +278 -0
  4. package/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.d.ts +7 -0
  5. package/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js +57 -0
  6. package/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js.map +1 -0
  7. package/node_modules/@alcalzone/ansi-tokenize/build/consts.d.ts +17 -0
  8. package/node_modules/@alcalzone/ansi-tokenize/build/consts.js +28 -0
  9. package/node_modules/@alcalzone/ansi-tokenize/build/consts.js.map +1 -0
  10. package/node_modules/@alcalzone/ansi-tokenize/build/diff.d.ts +6 -0
  11. package/node_modules/@alcalzone/ansi-tokenize/build/diff.js +26 -0
  12. package/node_modules/@alcalzone/ansi-tokenize/build/diff.js.map +1 -0
  13. package/node_modules/@alcalzone/ansi-tokenize/build/index.d.ts +6 -0
  14. package/node_modules/@alcalzone/ansi-tokenize/build/index.js +7 -0
  15. package/node_modules/@alcalzone/ansi-tokenize/build/index.js.map +1 -0
  16. package/node_modules/@alcalzone/ansi-tokenize/build/reduce.d.ts +5 -0
  17. package/node_modules/@alcalzone/ansi-tokenize/build/reduce.js +37 -0
  18. package/node_modules/@alcalzone/ansi-tokenize/build/reduce.js.map +1 -0
  19. package/node_modules/@alcalzone/ansi-tokenize/build/styledChars.d.ts +6 -0
  20. package/node_modules/@alcalzone/ansi-tokenize/build/styledChars.js +38 -0
  21. package/node_modules/@alcalzone/ansi-tokenize/build/styledChars.js.map +1 -0
  22. package/node_modules/@alcalzone/ansi-tokenize/build/tokenize.d.ts +16 -0
  23. package/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js +194 -0
  24. package/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js.map +1 -0
  25. package/node_modules/@alcalzone/ansi-tokenize/build/undo.d.ts +3 -0
  26. package/node_modules/@alcalzone/ansi-tokenize/build/undo.js +11 -0
  27. package/node_modules/@alcalzone/ansi-tokenize/build/undo.js.map +1 -0
  28. package/node_modules/@alcalzone/ansi-tokenize/package.json +55 -0
  29. package/node_modules/ansi-regex/index.d.ts +33 -0
  30. package/node_modules/ansi-regex/index.js +14 -0
  31. package/node_modules/ansi-regex/license +9 -0
  32. package/node_modules/ansi-regex/package.json +61 -0
  33. package/node_modules/ansi-regex/readme.md +66 -0
  34. package/node_modules/ansi-styles/index.d.ts +236 -0
  35. package/node_modules/ansi-styles/index.js +223 -0
  36. package/node_modules/ansi-styles/license +9 -0
  37. package/node_modules/ansi-styles/package.json +54 -0
  38. package/node_modules/ansi-styles/readme.md +173 -0
  39. package/node_modules/auto-bind/index.d.ts +50 -0
  40. package/node_modules/auto-bind/index.js +41 -0
  41. package/node_modules/auto-bind/license +9 -0
  42. package/node_modules/auto-bind/package.json +51 -0
  43. package/node_modules/auto-bind/react.d.ts +26 -0
  44. package/node_modules/auto-bind/react.js +28 -0
  45. package/node_modules/auto-bind/readme.md +92 -0
  46. package/node_modules/bidi-js/LICENSE.txt +22 -0
  47. package/node_modules/bidi-js/README.md +133 -0
  48. package/node_modules/bidi-js/dist/bidi.js +1010 -0
  49. package/node_modules/bidi-js/dist/bidi.min.js +1 -0
  50. package/node_modules/bidi-js/dist/bidi.min.mjs +1 -0
  51. package/node_modules/bidi-js/dist/bidi.mjs +1002 -0
  52. package/node_modules/bidi-js/package.json +39 -0
  53. package/node_modules/bidi-js/src/brackets.js +30 -0
  54. package/node_modules/bidi-js/src/charTypes.js +66 -0
  55. package/node_modules/bidi-js/src/data/bidiBrackets.data.js +5 -0
  56. package/node_modules/bidi-js/src/data/bidiCharTypes.data.js +25 -0
  57. package/node_modules/bidi-js/src/data/bidiMirroring.data.js +2 -0
  58. package/node_modules/bidi-js/src/embeddingLevels.js +690 -0
  59. package/node_modules/bidi-js/src/index.js +5 -0
  60. package/node_modules/bidi-js/src/mirroring.js +48 -0
  61. package/node_modules/bidi-js/src/reordering.js +99 -0
  62. package/node_modules/bidi-js/src/util/parseCharacterMap.js +30 -0
  63. package/node_modules/chalk/license +9 -0
  64. package/node_modules/chalk/package.json +83 -0
  65. package/node_modules/chalk/readme.md +297 -0
  66. package/node_modules/chalk/source/index.d.ts +325 -0
  67. package/node_modules/chalk/source/index.js +225 -0
  68. package/node_modules/chalk/source/utilities.js +33 -0
  69. package/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  70. package/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  71. package/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  72. package/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  73. package/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  74. package/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
  75. package/node_modules/cli-boxes/boxes.json +82 -0
  76. package/node_modules/cli-boxes/index.d.ts +122 -0
  77. package/node_modules/cli-boxes/index.js +3 -0
  78. package/node_modules/cli-boxes/license +9 -0
  79. package/node_modules/cli-boxes/package.json +49 -0
  80. package/node_modules/cli-boxes/readme.md +103 -0
  81. package/node_modules/code-excerpt/dist/index.d.ts +9 -0
  82. package/node_modules/code-excerpt/dist/index.js +27 -0
  83. package/node_modules/code-excerpt/license +21 -0
  84. package/node_modules/code-excerpt/package.json +43 -0
  85. package/node_modules/code-excerpt/readme.md +65 -0
  86. package/node_modules/convert-to-spaces/dist/index.d.ts +2 -0
  87. package/node_modules/convert-to-spaces/dist/index.js +4 -0
  88. package/node_modules/convert-to-spaces/license +21 -0
  89. package/node_modules/convert-to-spaces/package.json +40 -0
  90. package/node_modules/convert-to-spaces/readme.md +39 -0
  91. package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  92. package/node_modules/emoji-regex/README.md +107 -0
  93. package/node_modules/emoji-regex/index.d.ts +3 -0
  94. package/node_modules/emoji-regex/index.js +4 -0
  95. package/node_modules/emoji-regex/index.mjs +4 -0
  96. package/node_modules/emoji-regex/package.json +45 -0
  97. package/node_modules/escape-string-regexp/index.d.ts +18 -0
  98. package/node_modules/escape-string-regexp/index.js +11 -0
  99. package/node_modules/escape-string-regexp/license +9 -0
  100. package/node_modules/escape-string-regexp/package.json +43 -0
  101. package/node_modules/escape-string-regexp/readme.md +29 -0
  102. package/node_modules/get-east-asian-width/index.d.ts +60 -0
  103. package/node_modules/get-east-asian-width/index.js +30 -0
  104. package/node_modules/get-east-asian-width/license +9 -0
  105. package/node_modules/get-east-asian-width/lookup-data.js +18 -0
  106. package/node_modules/get-east-asian-width/lookup.js +135 -0
  107. package/node_modules/get-east-asian-width/package.json +71 -0
  108. package/node_modules/get-east-asian-width/readme.md +65 -0
  109. package/node_modules/get-east-asian-width/utilities.js +24 -0
  110. package/node_modules/indent-string/index.d.ts +38 -0
  111. package/node_modules/indent-string/index.js +38 -0
  112. package/node_modules/indent-string/license +9 -0
  113. package/node_modules/indent-string/package.json +40 -0
  114. package/node_modules/indent-string/readme.md +73 -0
  115. package/node_modules/ink/LICENSE +30 -0
  116. package/node_modules/ink/package.json +53 -0
  117. package/node_modules/ink/src/Ansi.tsx +254 -0
  118. package/node_modules/ink/src/_internal/debug.ts +27 -0
  119. package/node_modules/ink/src/_internal/earlyInput.ts +7 -0
  120. package/node_modules/ink/src/_internal/env.ts +38 -0
  121. package/node_modules/ink/src/_internal/envUtils.ts +13 -0
  122. package/node_modules/ink/src/_internal/execFileNoThrow.ts +58 -0
  123. package/node_modules/ink/src/_internal/fullscreen.ts +9 -0
  124. package/node_modules/ink/src/_internal/intl.ts +13 -0
  125. package/node_modules/ink/src/_internal/iter-lines.ts +14 -0
  126. package/node_modules/ink/src/_internal/log.ts +15 -0
  127. package/node_modules/ink/src/_internal/semver.ts +12 -0
  128. package/node_modules/ink/src/_internal/sliceAnsi.ts +6 -0
  129. package/node_modules/ink/src/_internal/state.ts +22 -0
  130. package/node_modules/ink/src/_internal/yoga-layout.ts +23 -0
  131. package/node_modules/ink/src/ambient.d.ts +47 -0
  132. package/node_modules/ink/src/bidi.ts +110 -0
  133. package/node_modules/ink/src/clearTerminal.ts +53 -0
  134. package/node_modules/ink/src/colorize.ts +129 -0
  135. package/node_modules/ink/src/components/AlternateScreen.tsx +49 -0
  136. package/node_modules/ink/src/components/App.tsx +700 -0
  137. package/node_modules/ink/src/components/AppContext.ts +17 -0
  138. package/node_modules/ink/src/components/Box.tsx +105 -0
  139. package/node_modules/ink/src/components/Button.tsx +96 -0
  140. package/node_modules/ink/src/components/ClockContext.tsx +94 -0
  141. package/node_modules/ink/src/components/CursorDeclarationContext.ts +23 -0
  142. package/node_modules/ink/src/components/ErrorOverview.tsx +116 -0
  143. package/node_modules/ink/src/components/Link.tsx +27 -0
  144. package/node_modules/ink/src/components/Newline.tsx +11 -0
  145. package/node_modules/ink/src/components/NoSelect.tsx +16 -0
  146. package/node_modules/ink/src/components/RawAnsi.tsx +18 -0
  147. package/node_modules/ink/src/components/ScrollBox.tsx +209 -0
  148. package/node_modules/ink/src/components/Spacer.tsx +6 -0
  149. package/node_modules/ink/src/components/StdinContext.ts +35 -0
  150. package/node_modules/ink/src/components/TerminalFocusContext.tsx +37 -0
  151. package/node_modules/ink/src/components/TerminalSizeContext.tsx +9 -0
  152. package/node_modules/ink/src/components/Text.tsx +85 -0
  153. package/node_modules/ink/src/components/TextInput.tsx +140 -0
  154. package/node_modules/ink/src/constants.ts +2 -0
  155. package/node_modules/ink/src/cursor.ts +6 -0
  156. package/node_modules/ink/src/devtools.ts +2 -0
  157. package/node_modules/ink/src/dom.ts +451 -0
  158. package/node_modules/ink/src/events/click-event.ts +19 -0
  159. package/node_modules/ink/src/events/dispatcher.ts +185 -0
  160. package/node_modules/ink/src/events/emitter.ts +37 -0
  161. package/node_modules/ink/src/events/event-handlers.ts +60 -0
  162. package/node_modules/ink/src/events/event.ts +12 -0
  163. package/node_modules/ink/src/events/focus-event.ts +13 -0
  164. package/node_modules/ink/src/events/input-event.ts +212 -0
  165. package/node_modules/ink/src/events/keyboard-event.ts +41 -0
  166. package/node_modules/ink/src/events/paste-event.ts +11 -0
  167. package/node_modules/ink/src/events/resize-event.ts +13 -0
  168. package/node_modules/ink/src/events/terminal-event.ts +99 -0
  169. package/node_modules/ink/src/events/terminal-focus-event.ts +13 -0
  170. package/node_modules/ink/src/focus.ts +159 -0
  171. package/node_modules/ink/src/frame.ts +105 -0
  172. package/node_modules/ink/src/get-max-width.ts +10 -0
  173. package/node_modules/ink/src/hit-test.ts +107 -0
  174. package/node_modules/ink/src/hooks/use-animation-frame.ts +33 -0
  175. package/node_modules/ink/src/hooks/use-app.ts +6 -0
  176. package/node_modules/ink/src/hooks/use-declared-cursor.ts +59 -0
  177. package/node_modules/ink/src/hooks/use-input.ts +57 -0
  178. package/node_modules/ink/src/hooks/use-interval.ts +53 -0
  179. package/node_modules/ink/src/hooks/use-search-highlight.ts +41 -0
  180. package/node_modules/ink/src/hooks/use-selection.ts +86 -0
  181. package/node_modules/ink/src/hooks/use-stdin.ts +6 -0
  182. package/node_modules/ink/src/hooks/use-tab-status.ts +68 -0
  183. package/node_modules/ink/src/hooks/use-terminal-focus.ts +8 -0
  184. package/node_modules/ink/src/hooks/use-terminal-title.ts +21 -0
  185. package/node_modules/ink/src/hooks/use-terminal-viewport.ts +77 -0
  186. package/node_modules/ink/src/index.ts +150 -0
  187. package/node_modules/ink/src/ink.tsx +1499 -0
  188. package/node_modules/ink/src/instances.ts +5 -0
  189. package/node_modules/ink/src/layout/engine.ts +10 -0
  190. package/node_modules/ink/src/layout/geometry.ts +116 -0
  191. package/node_modules/ink/src/layout/node.ts +178 -0
  192. package/node_modules/ink/src/layout/yoga.ts +316 -0
  193. package/node_modules/ink/src/line-width-cache.ts +19 -0
  194. package/node_modules/ink/src/log-update.ts +777 -0
  195. package/node_modules/ink/src/measure-element.ts +14 -0
  196. package/node_modules/ink/src/measure-text.ts +29 -0
  197. package/node_modules/ink/src/node-cache.ts +58 -0
  198. package/node_modules/ink/src/optimizer.ts +65 -0
  199. package/node_modules/ink/src/output.ts +730 -0
  200. package/node_modules/ink/src/parse-keypress.ts +751 -0
  201. package/node_modules/ink/src/react-jsx-aug.d.ts +14 -0
  202. package/node_modules/ink/src/reconciler.ts +508 -0
  203. package/node_modules/ink/src/render-border.ts +230 -0
  204. package/node_modules/ink/src/render-node-to-output.ts +1477 -0
  205. package/node_modules/ink/src/render-to-screen.ts +201 -0
  206. package/node_modules/ink/src/renderer.ts +183 -0
  207. package/node_modules/ink/src/root.ts +148 -0
  208. package/node_modules/ink/src/screen.ts +1301 -0
  209. package/node_modules/ink/src/searchHighlight.ts +68 -0
  210. package/node_modules/ink/src/selection.ts +742 -0
  211. package/node_modules/ink/src/squash-text-nodes.ts +70 -0
  212. package/node_modules/ink/src/stringWidth.ts +222 -0
  213. package/node_modules/ink/src/styles.ts +603 -0
  214. package/node_modules/ink/src/supports-hyperlinks.ts +41 -0
  215. package/node_modules/ink/src/tabstops.ts +39 -0
  216. package/node_modules/ink/src/terminal-focus-state.ts +46 -0
  217. package/node_modules/ink/src/terminal-querier.ts +143 -0
  218. package/node_modules/ink/src/terminal.ts +220 -0
  219. package/node_modules/ink/src/termio/ansi.ts +66 -0
  220. package/node_modules/ink/src/termio/csi.ts +290 -0
  221. package/node_modules/ink/src/termio/dec.ts +52 -0
  222. package/node_modules/ink/src/termio/esc.ts +63 -0
  223. package/node_modules/ink/src/termio/osc.ts +364 -0
  224. package/node_modules/ink/src/termio/parser.ts +383 -0
  225. package/node_modules/ink/src/termio/sgr.ts +331 -0
  226. package/node_modules/ink/src/termio/tokenize.ts +311 -0
  227. package/node_modules/ink/src/termio/types.ts +225 -0
  228. package/node_modules/ink/src/termio.ts +20 -0
  229. package/node_modules/ink/src/useTerminalNotification.ts +124 -0
  230. package/node_modules/ink/src/warn.ts +10 -0
  231. package/node_modules/ink/src/widest-line.ts +12 -0
  232. package/node_modules/ink/src/wrap-text.ts +55 -0
  233. package/node_modules/ink/src/wrapAnsi.ts +15 -0
  234. package/node_modules/ink/tsconfig.json +26 -0
  235. package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  236. package/node_modules/is-fullwidth-code-point/index.js +12 -0
  237. package/node_modules/is-fullwidth-code-point/license +9 -0
  238. package/node_modules/is-fullwidth-code-point/package.json +53 -0
  239. package/node_modules/is-fullwidth-code-point/readme.md +31 -0
  240. package/node_modules/lodash-es/LICENSE +47 -0
  241. package/node_modules/lodash-es/README.md +10 -0
  242. package/node_modules/lodash-es/_DataView.js +7 -0
  243. package/node_modules/lodash-es/_Hash.js +32 -0
  244. package/node_modules/lodash-es/_LazyWrapper.js +28 -0
  245. package/node_modules/lodash-es/_ListCache.js +32 -0
  246. package/node_modules/lodash-es/_LodashWrapper.js +22 -0
  247. package/node_modules/lodash-es/_Map.js +7 -0
  248. package/node_modules/lodash-es/_MapCache.js +32 -0
  249. package/node_modules/lodash-es/_Promise.js +7 -0
  250. package/node_modules/lodash-es/_Set.js +7 -0
  251. package/node_modules/lodash-es/_SetCache.js +27 -0
  252. package/node_modules/lodash-es/_Stack.js +27 -0
  253. package/node_modules/lodash-es/_Symbol.js +6 -0
  254. package/node_modules/lodash-es/_Uint8Array.js +6 -0
  255. package/node_modules/lodash-es/_WeakMap.js +7 -0
  256. package/node_modules/lodash-es/_addMapEntry.js +15 -0
  257. package/node_modules/lodash-es/_addSetEntry.js +15 -0
  258. package/node_modules/lodash-es/_apply.js +21 -0
  259. package/node_modules/lodash-es/_arrayAggregator.js +22 -0
  260. package/node_modules/lodash-es/_arrayEach.js +22 -0
  261. package/node_modules/lodash-es/_arrayEachRight.js +21 -0
  262. package/node_modules/lodash-es/_arrayEvery.js +23 -0
  263. package/node_modules/lodash-es/_arrayFilter.js +25 -0
  264. package/node_modules/lodash-es/_arrayIncludes.js +17 -0
  265. package/node_modules/lodash-es/_arrayIncludesWith.js +22 -0
  266. package/node_modules/lodash-es/_arrayLikeKeys.js +49 -0
  267. package/node_modules/lodash-es/_arrayMap.js +21 -0
  268. package/node_modules/lodash-es/_arrayPush.js +20 -0
  269. package/node_modules/lodash-es/_arrayReduce.js +26 -0
  270. package/node_modules/lodash-es/_arrayReduceRight.js +24 -0
  271. package/node_modules/lodash-es/_arraySample.js +15 -0
  272. package/node_modules/lodash-es/_arraySampleSize.js +17 -0
  273. package/node_modules/lodash-es/_arrayShuffle.js +15 -0
  274. package/node_modules/lodash-es/_arraySome.js +23 -0
  275. package/node_modules/lodash-es/_asciiSize.js +12 -0
  276. package/node_modules/lodash-es/_asciiToArray.js +12 -0
  277. package/node_modules/lodash-es/_asciiWords.js +15 -0
  278. package/node_modules/lodash-es/_assignMergeValue.js +20 -0
  279. package/node_modules/lodash-es/_assignValue.js +28 -0
  280. package/node_modules/lodash-es/_assocIndexOf.js +21 -0
  281. package/node_modules/lodash-es/_baseAggregator.js +21 -0
  282. package/node_modules/lodash-es/_baseAssign.js +17 -0
  283. package/node_modules/lodash-es/_baseAssignIn.js +17 -0
  284. package/node_modules/lodash-es/_baseAssignValue.js +25 -0
  285. package/node_modules/lodash-es/_baseAt.js +23 -0
  286. package/node_modules/lodash-es/_baseClamp.js +22 -0
  287. package/node_modules/lodash-es/_baseClone.js +166 -0
  288. package/node_modules/lodash-es/_baseConforms.js +18 -0
  289. package/node_modules/lodash-es/_baseConformsTo.js +27 -0
  290. package/node_modules/lodash-es/_baseCreate.js +30 -0
  291. package/node_modules/lodash-es/_baseDelay.js +21 -0
  292. package/node_modules/lodash-es/_baseDifference.js +67 -0
  293. package/node_modules/lodash-es/_baseEach.js +14 -0
  294. package/node_modules/lodash-es/_baseEachRight.js +14 -0
  295. package/node_modules/lodash-es/_baseEvery.js +21 -0
  296. package/node_modules/lodash-es/_baseExtremum.js +32 -0
  297. package/node_modules/lodash-es/_baseFill.js +32 -0
  298. package/node_modules/lodash-es/_baseFilter.js +21 -0
  299. package/node_modules/lodash-es/_baseFindIndex.js +24 -0
  300. package/node_modules/lodash-es/_baseFindKey.js +23 -0
  301. package/node_modules/lodash-es/_baseFlatten.js +38 -0
  302. package/node_modules/lodash-es/_baseFor.js +16 -0
  303. package/node_modules/lodash-es/_baseForOwn.js +16 -0
  304. package/node_modules/lodash-es/_baseForOwnRight.js +16 -0
  305. package/node_modules/lodash-es/_baseForRight.js +15 -0
  306. package/node_modules/lodash-es/_baseFunctions.js +19 -0
  307. package/node_modules/lodash-es/_baseGet.js +24 -0
  308. package/node_modules/lodash-es/_baseGetAllKeys.js +20 -0
  309. package/node_modules/lodash-es/_baseGetTag.js +28 -0
  310. package/node_modules/lodash-es/_baseGt.js +14 -0
  311. package/node_modules/lodash-es/_baseHas.js +19 -0
  312. package/node_modules/lodash-es/_baseHasIn.js +13 -0
  313. package/node_modules/lodash-es/_baseInRange.js +18 -0
  314. package/node_modules/lodash-es/_baseIndexOf.js +20 -0
  315. package/node_modules/lodash-es/_baseIndexOfWith.js +23 -0
  316. package/node_modules/lodash-es/_baseIntersection.js +74 -0
  317. package/node_modules/lodash-es/_baseInverter.js +21 -0
  318. package/node_modules/lodash-es/_baseInvoke.js +24 -0
  319. package/node_modules/lodash-es/_baseIsArguments.js +18 -0
  320. package/node_modules/lodash-es/_baseIsArrayBuffer.js +17 -0
  321. package/node_modules/lodash-es/_baseIsDate.js +18 -0
  322. package/node_modules/lodash-es/_baseIsEqual.js +28 -0
  323. package/node_modules/lodash-es/_baseIsEqualDeep.js +83 -0
  324. package/node_modules/lodash-es/_baseIsMap.js +18 -0
  325. package/node_modules/lodash-es/_baseIsMatch.js +62 -0
  326. package/node_modules/lodash-es/_baseIsNaN.js +12 -0
  327. package/node_modules/lodash-es/_baseIsNative.js +47 -0
  328. package/node_modules/lodash-es/_baseIsRegExp.js +18 -0
  329. package/node_modules/lodash-es/_baseIsSet.js +18 -0
  330. package/node_modules/lodash-es/_baseIsTypedArray.js +60 -0
  331. package/node_modules/lodash-es/_baseIteratee.js +31 -0
  332. package/node_modules/lodash-es/_baseKeys.js +30 -0
  333. package/node_modules/lodash-es/_baseKeysIn.js +33 -0
  334. package/node_modules/lodash-es/_baseLodash.js +10 -0
  335. package/node_modules/lodash-es/_baseLt.js +14 -0
  336. package/node_modules/lodash-es/_baseMap.js +22 -0
  337. package/node_modules/lodash-es/_baseMatches.js +22 -0
  338. package/node_modules/lodash-es/_baseMatchesProperty.js +33 -0
  339. package/node_modules/lodash-es/_baseMean.js +20 -0
  340. package/node_modules/lodash-es/_baseMerge.js +42 -0
  341. package/node_modules/lodash-es/_baseMergeDeep.js +94 -0
  342. package/node_modules/lodash-es/_baseNth.js +20 -0
  343. package/node_modules/lodash-es/_baseOrderBy.js +49 -0
  344. package/node_modules/lodash-es/_basePick.js +19 -0
  345. package/node_modules/lodash-es/_basePickBy.js +30 -0
  346. package/node_modules/lodash-es/_baseProperty.js +14 -0
  347. package/node_modules/lodash-es/_basePropertyDeep.js +16 -0
  348. package/node_modules/lodash-es/_basePropertyOf.js +14 -0
  349. package/node_modules/lodash-es/_basePullAll.js +51 -0
  350. package/node_modules/lodash-es/_basePullAt.js +37 -0
  351. package/node_modules/lodash-es/_baseRandom.js +18 -0
  352. package/node_modules/lodash-es/_baseRange.js +28 -0
  353. package/node_modules/lodash-es/_baseReduce.js +23 -0
  354. package/node_modules/lodash-es/_baseRepeat.js +35 -0
  355. package/node_modules/lodash-es/_baseRest.js +17 -0
  356. package/node_modules/lodash-es/_baseSample.js +15 -0
  357. package/node_modules/lodash-es/_baseSampleSize.js +18 -0
  358. package/node_modules/lodash-es/_baseSet.js +51 -0
  359. package/node_modules/lodash-es/_baseSetData.js +17 -0
  360. package/node_modules/lodash-es/_baseSetToString.js +22 -0
  361. package/node_modules/lodash-es/_baseShuffle.js +15 -0
  362. package/node_modules/lodash-es/_baseSlice.js +31 -0
  363. package/node_modules/lodash-es/_baseSome.js +22 -0
  364. package/node_modules/lodash-es/_baseSortBy.js +21 -0
  365. package/node_modules/lodash-es/_baseSortedIndex.js +42 -0
  366. package/node_modules/lodash-es/_baseSortedIndexBy.js +67 -0
  367. package/node_modules/lodash-es/_baseSortedUniq.js +30 -0
  368. package/node_modules/lodash-es/_baseSum.js +24 -0
  369. package/node_modules/lodash-es/_baseTimes.js +20 -0
  370. package/node_modules/lodash-es/_baseToNumber.js +24 -0
  371. package/node_modules/lodash-es/_baseToPairs.js +18 -0
  372. package/node_modules/lodash-es/_baseToString.js +37 -0
  373. package/node_modules/lodash-es/_baseTrim.js +19 -0
  374. package/node_modules/lodash-es/_baseUnary.js +14 -0
  375. package/node_modules/lodash-es/_baseUniq.js +72 -0
  376. package/node_modules/lodash-es/_baseUnset.js +52 -0
  377. package/node_modules/lodash-es/_baseUpdate.js +18 -0
  378. package/node_modules/lodash-es/_baseValues.js +19 -0
  379. package/node_modules/lodash-es/_baseWhile.js +26 -0
  380. package/node_modules/lodash-es/_baseWrapperValue.js +25 -0
  381. package/node_modules/lodash-es/_baseXor.js +36 -0
  382. package/node_modules/lodash-es/_baseZipObject.js +23 -0
  383. package/node_modules/lodash-es/_cacheHas.js +13 -0
  384. package/node_modules/lodash-es/_castArrayLikeObject.js +14 -0
  385. package/node_modules/lodash-es/_castFunction.js +14 -0
  386. package/node_modules/lodash-es/_castPath.js +21 -0
  387. package/node_modules/lodash-es/_castRest.js +14 -0
  388. package/node_modules/lodash-es/_castSlice.js +18 -0
  389. package/node_modules/lodash-es/_charsEndIndex.js +19 -0
  390. package/node_modules/lodash-es/_charsStartIndex.js +20 -0
  391. package/node_modules/lodash-es/_cloneArrayBuffer.js +16 -0
  392. package/node_modules/lodash-es/_cloneBuffer.js +35 -0
  393. package/node_modules/lodash-es/_cloneDataView.js +16 -0
  394. package/node_modules/lodash-es/_cloneMap.js +22 -0
  395. package/node_modules/lodash-es/_cloneRegExp.js +17 -0
  396. package/node_modules/lodash-es/_cloneSet.js +22 -0
  397. package/node_modules/lodash-es/_cloneSymbol.js +18 -0
  398. package/node_modules/lodash-es/_cloneTypedArray.js +16 -0
  399. package/node_modules/lodash-es/_compareAscending.js +41 -0
  400. package/node_modules/lodash-es/_compareMultiple.js +44 -0
  401. package/node_modules/lodash-es/_composeArgs.js +39 -0
  402. package/node_modules/lodash-es/_composeArgsRight.js +41 -0
  403. package/node_modules/lodash-es/_copyArray.js +20 -0
  404. package/node_modules/lodash-es/_copyObject.js +40 -0
  405. package/node_modules/lodash-es/_copySymbols.js +16 -0
  406. package/node_modules/lodash-es/_copySymbolsIn.js +16 -0
  407. package/node_modules/lodash-es/_coreJsData.js +6 -0
  408. package/node_modules/lodash-es/_countHolders.js +21 -0
  409. package/node_modules/lodash-es/_createAggregator.js +23 -0
  410. package/node_modules/lodash-es/_createAssigner.js +37 -0
  411. package/node_modules/lodash-es/_createBaseEach.js +32 -0
  412. package/node_modules/lodash-es/_createBaseFor.js +25 -0
  413. package/node_modules/lodash-es/_createBind.js +28 -0
  414. package/node_modules/lodash-es/_createCaseFirst.js +33 -0
  415. package/node_modules/lodash-es/_createCompounder.js +24 -0
  416. package/node_modules/lodash-es/_createCtor.js +37 -0
  417. package/node_modules/lodash-es/_createCurry.js +46 -0
  418. package/node_modules/lodash-es/_createFind.js +25 -0
  419. package/node_modules/lodash-es/_createFlow.js +78 -0
  420. package/node_modules/lodash-es/_createHybrid.js +92 -0
  421. package/node_modules/lodash-es/_createInverter.js +17 -0
  422. package/node_modules/lodash-es/_createMathOperation.js +38 -0
  423. package/node_modules/lodash-es/_createOver.js +27 -0
  424. package/node_modules/lodash-es/_createPadding.js +33 -0
  425. package/node_modules/lodash-es/_createPartial.js +43 -0
  426. package/node_modules/lodash-es/_createRange.js +30 -0
  427. package/node_modules/lodash-es/_createRecurry.js +56 -0
  428. package/node_modules/lodash-es/_createRelationalOperation.js +20 -0
  429. package/node_modules/lodash-es/_createRound.js +35 -0
  430. package/node_modules/lodash-es/_createSet.js +19 -0
  431. package/node_modules/lodash-es/_createToPairs.js +30 -0
  432. package/node_modules/lodash-es/_createWrap.js +106 -0
  433. package/node_modules/lodash-es/_customDefaultsAssignIn.js +29 -0
  434. package/node_modules/lodash-es/_customDefaultsMerge.js +28 -0
  435. package/node_modules/lodash-es/_customOmitClone.js +16 -0
  436. package/node_modules/lodash-es/_deburrLetter.js +71 -0
  437. package/node_modules/lodash-es/_defineProperty.js +11 -0
  438. package/node_modules/lodash-es/_equalArrays.js +84 -0
  439. package/node_modules/lodash-es/_equalByTag.js +112 -0
  440. package/node_modules/lodash-es/_equalObjects.js +90 -0
  441. package/node_modules/lodash-es/_escapeHtmlChar.js +21 -0
  442. package/node_modules/lodash-es/_escapeStringChar.js +22 -0
  443. package/node_modules/lodash-es/_flatRest.js +16 -0
  444. package/node_modules/lodash-es/_freeGlobal.js +4 -0
  445. package/node_modules/lodash-es/_getAllKeys.js +16 -0
  446. package/node_modules/lodash-es/_getAllKeysIn.js +17 -0
  447. package/node_modules/lodash-es/_getData.js +15 -0
  448. package/node_modules/lodash-es/_getFuncName.js +31 -0
  449. package/node_modules/lodash-es/_getHolder.js +13 -0
  450. package/node_modules/lodash-es/_getMapData.js +18 -0
  451. package/node_modules/lodash-es/_getMatchData.js +24 -0
  452. package/node_modules/lodash-es/_getNative.js +17 -0
  453. package/node_modules/lodash-es/_getPrototype.js +6 -0
  454. package/node_modules/lodash-es/_getRawTag.js +46 -0
  455. package/node_modules/lodash-es/_getSymbols.js +30 -0
  456. package/node_modules/lodash-es/_getSymbolsIn.js +25 -0
  457. package/node_modules/lodash-es/_getTag.js +58 -0
  458. package/node_modules/lodash-es/_getValue.js +13 -0
  459. package/node_modules/lodash-es/_getView.js +33 -0
  460. package/node_modules/lodash-es/_getWrapDetails.js +17 -0
  461. package/node_modules/lodash-es/_hasPath.js +39 -0
  462. package/node_modules/lodash-es/_hasUnicode.js +26 -0
  463. package/node_modules/lodash-es/_hasUnicodeWord.js +15 -0
  464. package/node_modules/lodash-es/_hashClear.js +15 -0
  465. package/node_modules/lodash-es/_hashDelete.js +17 -0
  466. package/node_modules/lodash-es/_hashGet.js +30 -0
  467. package/node_modules/lodash-es/_hashHas.js +23 -0
  468. package/node_modules/lodash-es/_hashSet.js +23 -0
  469. package/node_modules/lodash-es/_initCloneArray.js +26 -0
  470. package/node_modules/lodash-es/_initCloneByTag.js +77 -0
  471. package/node_modules/lodash-es/_initCloneObject.js +18 -0
  472. package/node_modules/lodash-es/_insertWrapDetails.js +23 -0
  473. package/node_modules/lodash-es/_isFlattenable.js +20 -0
  474. package/node_modules/lodash-es/_isIndex.js +25 -0
  475. package/node_modules/lodash-es/_isIterateeCall.js +30 -0
  476. package/node_modules/lodash-es/_isKey.js +29 -0
  477. package/node_modules/lodash-es/_isKeyable.js +15 -0
  478. package/node_modules/lodash-es/_isLaziable.js +28 -0
  479. package/node_modules/lodash-es/_isMaskable.js +14 -0
  480. package/node_modules/lodash-es/_isMasked.js +20 -0
  481. package/node_modules/lodash-es/_isPrototype.js +18 -0
  482. package/node_modules/lodash-es/_isStrictComparable.js +15 -0
  483. package/node_modules/lodash-es/_iteratorToArray.js +18 -0
  484. package/node_modules/lodash-es/_lazyClone.js +23 -0
  485. package/node_modules/lodash-es/_lazyReverse.js +23 -0
  486. package/node_modules/lodash-es/_lazyValue.js +69 -0
  487. package/node_modules/lodash-es/_listCacheClear.js +13 -0
  488. package/node_modules/lodash-es/_listCacheDelete.js +35 -0
  489. package/node_modules/lodash-es/_listCacheGet.js +19 -0
  490. package/node_modules/lodash-es/_listCacheHas.js +16 -0
  491. package/node_modules/lodash-es/_listCacheSet.js +26 -0
  492. package/node_modules/lodash-es/_mapCacheClear.js +21 -0
  493. package/node_modules/lodash-es/_mapCacheDelete.js +18 -0
  494. package/node_modules/lodash-es/_mapCacheGet.js +16 -0
  495. package/node_modules/lodash-es/_mapCacheHas.js +16 -0
  496. package/node_modules/lodash-es/_mapCacheSet.js +22 -0
  497. package/node_modules/lodash-es/_mapToArray.js +18 -0
  498. package/node_modules/lodash-es/_matchesStrictComparable.js +20 -0
  499. package/node_modules/lodash-es/_memoizeCapped.js +26 -0
  500. package/node_modules/lodash-es/_mergeData.js +90 -0
  501. package/node_modules/lodash-es/_metaMap.js +6 -0
  502. package/node_modules/lodash-es/_nativeCreate.js +6 -0
  503. package/node_modules/lodash-es/_nativeKeys.js +6 -0
  504. package/node_modules/lodash-es/_nativeKeysIn.js +20 -0
  505. package/node_modules/lodash-es/_nodeUtil.js +30 -0
  506. package/node_modules/lodash-es/_objectToString.js +22 -0
  507. package/node_modules/lodash-es/_overArg.js +15 -0
  508. package/node_modules/lodash-es/_overRest.js +36 -0
  509. package/node_modules/lodash-es/_parent.js +16 -0
  510. package/node_modules/lodash-es/_reEscape.js +4 -0
  511. package/node_modules/lodash-es/_reEvaluate.js +4 -0
  512. package/node_modules/lodash-es/_reInterpolate.js +4 -0
  513. package/node_modules/lodash-es/_realNames.js +4 -0
  514. package/node_modules/lodash-es/_reorder.js +29 -0
  515. package/node_modules/lodash-es/_replaceHolders.js +29 -0
  516. package/node_modules/lodash-es/_root.js +9 -0
  517. package/node_modules/lodash-es/_safeGet.js +21 -0
  518. package/node_modules/lodash-es/_setCacheAdd.js +19 -0
  519. package/node_modules/lodash-es/_setCacheHas.js +14 -0
  520. package/node_modules/lodash-es/_setData.js +20 -0
  521. package/node_modules/lodash-es/_setToArray.js +18 -0
  522. package/node_modules/lodash-es/_setToPairs.js +18 -0
  523. package/node_modules/lodash-es/_setToString.js +14 -0
  524. package/node_modules/lodash-es/_setWrapToString.js +21 -0
  525. package/node_modules/lodash-es/_shortOut.js +37 -0
  526. package/node_modules/lodash-es/_shuffleSelf.js +28 -0
  527. package/node_modules/lodash-es/_stackClear.js +15 -0
  528. package/node_modules/lodash-es/_stackDelete.js +18 -0
  529. package/node_modules/lodash-es/_stackGet.js +14 -0
  530. package/node_modules/lodash-es/_stackHas.js +14 -0
  531. package/node_modules/lodash-es/_stackSet.js +34 -0
  532. package/node_modules/lodash-es/_strictIndexOf.js +23 -0
  533. package/node_modules/lodash-es/_strictLastIndexOf.js +21 -0
  534. package/node_modules/lodash-es/_stringSize.js +18 -0
  535. package/node_modules/lodash-es/_stringToArray.js +18 -0
  536. package/node_modules/lodash-es/_stringToPath.js +27 -0
  537. package/node_modules/lodash-es/_toKey.js +21 -0
  538. package/node_modules/lodash-es/_toSource.js +26 -0
  539. package/node_modules/lodash-es/_trimmedEndIndex.js +19 -0
  540. package/node_modules/lodash-es/_unescapeHtmlChar.js +21 -0
  541. package/node_modules/lodash-es/_unicodeSize.js +44 -0
  542. package/node_modules/lodash-es/_unicodeToArray.js +40 -0
  543. package/node_modules/lodash-es/_unicodeWords.js +69 -0
  544. package/node_modules/lodash-es/_updateWrapDetails.js +46 -0
  545. package/node_modules/lodash-es/_wrapperClone.js +23 -0
  546. package/node_modules/lodash-es/add.js +22 -0
  547. package/node_modules/lodash-es/after.js +42 -0
  548. package/node_modules/lodash-es/array.default.js +81 -0
  549. package/node_modules/lodash-es/array.js +66 -0
  550. package/node_modules/lodash-es/ary.js +29 -0
  551. package/node_modules/lodash-es/assign.js +58 -0
  552. package/node_modules/lodash-es/assignIn.js +40 -0
  553. package/node_modules/lodash-es/assignInWith.js +38 -0
  554. package/node_modules/lodash-es/assignWith.js +37 -0
  555. package/node_modules/lodash-es/at.js +23 -0
  556. package/node_modules/lodash-es/attempt.js +35 -0
  557. package/node_modules/lodash-es/before.js +40 -0
  558. package/node_modules/lodash-es/bind.js +57 -0
  559. package/node_modules/lodash-es/bindAll.js +41 -0
  560. package/node_modules/lodash-es/bindKey.js +68 -0
  561. package/node_modules/lodash-es/camelCase.js +29 -0
  562. package/node_modules/lodash-es/capitalize.js +23 -0
  563. package/node_modules/lodash-es/castArray.js +44 -0
  564. package/node_modules/lodash-es/ceil.js +26 -0
  565. package/node_modules/lodash-es/chain.js +38 -0
  566. package/node_modules/lodash-es/chunk.js +50 -0
  567. package/node_modules/lodash-es/clamp.js +39 -0
  568. package/node_modules/lodash-es/clone.js +36 -0
  569. package/node_modules/lodash-es/cloneDeep.js +29 -0
  570. package/node_modules/lodash-es/cloneDeepWith.js +40 -0
  571. package/node_modules/lodash-es/cloneWith.js +42 -0
  572. package/node_modules/lodash-es/collection.default.js +37 -0
  573. package/node_modules/lodash-es/collection.js +29 -0
  574. package/node_modules/lodash-es/commit.js +33 -0
  575. package/node_modules/lodash-es/compact.js +31 -0
  576. package/node_modules/lodash-es/concat.js +43 -0
  577. package/node_modules/lodash-es/cond.js +60 -0
  578. package/node_modules/lodash-es/conforms.js +35 -0
  579. package/node_modules/lodash-es/conformsTo.js +32 -0
  580. package/node_modules/lodash-es/constant.js +26 -0
  581. package/node_modules/lodash-es/countBy.js +40 -0
  582. package/node_modules/lodash-es/create.js +43 -0
  583. package/node_modules/lodash-es/curry.js +57 -0
  584. package/node_modules/lodash-es/curryRight.js +54 -0
  585. package/node_modules/lodash-es/date.default.js +5 -0
  586. package/node_modules/lodash-es/date.js +2 -0
  587. package/node_modules/lodash-es/debounce.js +191 -0
  588. package/node_modules/lodash-es/deburr.js +45 -0
  589. package/node_modules/lodash-es/defaultTo.js +25 -0
  590. package/node_modules/lodash-es/defaults.js +64 -0
  591. package/node_modules/lodash-es/defaultsDeep.js +30 -0
  592. package/node_modules/lodash-es/defer.js +26 -0
  593. package/node_modules/lodash-es/delay.js +28 -0
  594. package/node_modules/lodash-es/difference.js +33 -0
  595. package/node_modules/lodash-es/differenceBy.js +44 -0
  596. package/node_modules/lodash-es/differenceWith.js +40 -0
  597. package/node_modules/lodash-es/divide.js +22 -0
  598. package/node_modules/lodash-es/drop.js +38 -0
  599. package/node_modules/lodash-es/dropRight.js +39 -0
  600. package/node_modules/lodash-es/dropRightWhile.js +45 -0
  601. package/node_modules/lodash-es/dropWhile.js +45 -0
  602. package/node_modules/lodash-es/each.js +1 -0
  603. package/node_modules/lodash-es/eachRight.js +1 -0
  604. package/node_modules/lodash-es/endsWith.js +43 -0
  605. package/node_modules/lodash-es/entries.js +1 -0
  606. package/node_modules/lodash-es/entriesIn.js +1 -0
  607. package/node_modules/lodash-es/eq.js +37 -0
  608. package/node_modules/lodash-es/escape.js +43 -0
  609. package/node_modules/lodash-es/escapeRegExp.js +32 -0
  610. package/node_modules/lodash-es/every.js +56 -0
  611. package/node_modules/lodash-es/extend.js +1 -0
  612. package/node_modules/lodash-es/extendWith.js +1 -0
  613. package/node_modules/lodash-es/fill.js +45 -0
  614. package/node_modules/lodash-es/filter.js +52 -0
  615. package/node_modules/lodash-es/find.js +42 -0
  616. package/node_modules/lodash-es/findIndex.js +55 -0
  617. package/node_modules/lodash-es/findKey.js +44 -0
  618. package/node_modules/lodash-es/findLast.js +25 -0
  619. package/node_modules/lodash-es/findLastIndex.js +59 -0
  620. package/node_modules/lodash-es/findLastKey.js +44 -0
  621. package/node_modules/lodash-es/first.js +1 -0
  622. package/node_modules/lodash-es/flatMap.js +29 -0
  623. package/node_modules/lodash-es/flatMapDeep.js +31 -0
  624. package/node_modules/lodash-es/flatMapDepth.js +31 -0
  625. package/node_modules/lodash-es/flatten.js +22 -0
  626. package/node_modules/lodash-es/flattenDeep.js +25 -0
  627. package/node_modules/lodash-es/flattenDepth.js +33 -0
  628. package/node_modules/lodash-es/flip.js +28 -0
  629. package/node_modules/lodash-es/floor.js +26 -0
  630. package/node_modules/lodash-es/flow.js +27 -0
  631. package/node_modules/lodash-es/flowRight.js +26 -0
  632. package/node_modules/lodash-es/forEach.js +41 -0
  633. package/node_modules/lodash-es/forEachRight.js +31 -0
  634. package/node_modules/lodash-es/forIn.js +39 -0
  635. package/node_modules/lodash-es/forInRight.js +37 -0
  636. package/node_modules/lodash-es/forOwn.js +36 -0
  637. package/node_modules/lodash-es/forOwnRight.js +34 -0
  638. package/node_modules/lodash-es/fromPairs.js +30 -0
  639. package/node_modules/lodash-es/function.default.js +31 -0
  640. package/node_modules/lodash-es/function.js +24 -0
  641. package/node_modules/lodash-es/functions.js +31 -0
  642. package/node_modules/lodash-es/functionsIn.js +31 -0
  643. package/node_modules/lodash-es/get.js +33 -0
  644. package/node_modules/lodash-es/groupBy.js +41 -0
  645. package/node_modules/lodash-es/gt.js +29 -0
  646. package/node_modules/lodash-es/gte.js +30 -0
  647. package/node_modules/lodash-es/has.js +35 -0
  648. package/node_modules/lodash-es/hasIn.js +34 -0
  649. package/node_modules/lodash-es/head.js +23 -0
  650. package/node_modules/lodash-es/identity.js +21 -0
  651. package/node_modules/lodash-es/inRange.js +55 -0
  652. package/node_modules/lodash-es/includes.js +53 -0
  653. package/node_modules/lodash-es/indexOf.js +42 -0
  654. package/node_modules/lodash-es/initial.js +22 -0
  655. package/node_modules/lodash-es/intersection.js +30 -0
  656. package/node_modules/lodash-es/intersectionBy.js +45 -0
  657. package/node_modules/lodash-es/intersectionWith.js +41 -0
  658. package/node_modules/lodash-es/invert.js +42 -0
  659. package/node_modules/lodash-es/invertBy.js +56 -0
  660. package/node_modules/lodash-es/invoke.js +24 -0
  661. package/node_modules/lodash-es/invokeMap.js +41 -0
  662. package/node_modules/lodash-es/isArguments.js +36 -0
  663. package/node_modules/lodash-es/isArray.js +26 -0
  664. package/node_modules/lodash-es/isArrayBuffer.js +27 -0
  665. package/node_modules/lodash-es/isArrayLike.js +33 -0
  666. package/node_modules/lodash-es/isArrayLikeObject.js +33 -0
  667. package/node_modules/lodash-es/isBoolean.js +29 -0
  668. package/node_modules/lodash-es/isBuffer.js +38 -0
  669. package/node_modules/lodash-es/isDate.js +27 -0
  670. package/node_modules/lodash-es/isElement.js +25 -0
  671. package/node_modules/lodash-es/isEmpty.js +77 -0
  672. package/node_modules/lodash-es/isEqual.js +35 -0
  673. package/node_modules/lodash-es/isEqualWith.js +41 -0
  674. package/node_modules/lodash-es/isError.js +36 -0
  675. package/node_modules/lodash-es/isFinite.js +36 -0
  676. package/node_modules/lodash-es/isFunction.js +37 -0
  677. package/node_modules/lodash-es/isInteger.js +33 -0
  678. package/node_modules/lodash-es/isLength.js +35 -0
  679. package/node_modules/lodash-es/isMap.js +27 -0
  680. package/node_modules/lodash-es/isMatch.js +36 -0
  681. package/node_modules/lodash-es/isMatchWith.js +41 -0
  682. package/node_modules/lodash-es/isNaN.js +38 -0
  683. package/node_modules/lodash-es/isNative.js +40 -0
  684. package/node_modules/lodash-es/isNil.js +25 -0
  685. package/node_modules/lodash-es/isNull.js +22 -0
  686. package/node_modules/lodash-es/isNumber.js +38 -0
  687. package/node_modules/lodash-es/isObject.js +31 -0
  688. package/node_modules/lodash-es/isObjectLike.js +29 -0
  689. package/node_modules/lodash-es/isPlainObject.js +62 -0
  690. package/node_modules/lodash-es/isRegExp.js +27 -0
  691. package/node_modules/lodash-es/isSafeInteger.js +37 -0
  692. package/node_modules/lodash-es/isSet.js +27 -0
  693. package/node_modules/lodash-es/isString.js +30 -0
  694. package/node_modules/lodash-es/isSymbol.js +29 -0
  695. package/node_modules/lodash-es/isTypedArray.js +27 -0
  696. package/node_modules/lodash-es/isUndefined.js +22 -0
  697. package/node_modules/lodash-es/isWeakMap.js +28 -0
  698. package/node_modules/lodash-es/isWeakSet.js +28 -0
  699. package/node_modules/lodash-es/iteratee.js +53 -0
  700. package/node_modules/lodash-es/join.js +26 -0
  701. package/node_modules/lodash-es/kebabCase.js +28 -0
  702. package/node_modules/lodash-es/keyBy.js +36 -0
  703. package/node_modules/lodash-es/keys.js +37 -0
  704. package/node_modules/lodash-es/keysIn.js +32 -0
  705. package/node_modules/lodash-es/lang.default.js +71 -0
  706. package/node_modules/lodash-es/lang.js +57 -0
  707. package/node_modules/lodash-es/last.js +20 -0
  708. package/node_modules/lodash-es/lastIndexOf.js +46 -0
  709. package/node_modules/lodash-es/lodash.default.js +643 -0
  710. package/node_modules/lodash-es/lodash.js +331 -0
  711. package/node_modules/lodash-es/lowerCase.js +27 -0
  712. package/node_modules/lodash-es/lowerFirst.js +22 -0
  713. package/node_modules/lodash-es/lt.js +29 -0
  714. package/node_modules/lodash-es/lte.js +30 -0
  715. package/node_modules/lodash-es/map.js +53 -0
  716. package/node_modules/lodash-es/mapKeys.js +36 -0
  717. package/node_modules/lodash-es/mapValues.js +43 -0
  718. package/node_modules/lodash-es/matches.js +46 -0
  719. package/node_modules/lodash-es/matchesProperty.js +44 -0
  720. package/node_modules/lodash-es/math.default.js +21 -0
  721. package/node_modules/lodash-es/math.js +16 -0
  722. package/node_modules/lodash-es/max.js +29 -0
  723. package/node_modules/lodash-es/maxBy.js +34 -0
  724. package/node_modules/lodash-es/mean.js +22 -0
  725. package/node_modules/lodash-es/meanBy.js +31 -0
  726. package/node_modules/lodash-es/memoize.js +73 -0
  727. package/node_modules/lodash-es/merge.js +39 -0
  728. package/node_modules/lodash-es/mergeWith.js +39 -0
  729. package/node_modules/lodash-es/method.js +34 -0
  730. package/node_modules/lodash-es/methodOf.js +33 -0
  731. package/node_modules/lodash-es/min.js +29 -0
  732. package/node_modules/lodash-es/minBy.js +34 -0
  733. package/node_modules/lodash-es/mixin.js +74 -0
  734. package/node_modules/lodash-es/multiply.js +22 -0
  735. package/node_modules/lodash-es/negate.js +40 -0
  736. package/node_modules/lodash-es/next.js +35 -0
  737. package/node_modules/lodash-es/noop.js +17 -0
  738. package/node_modules/lodash-es/now.js +23 -0
  739. package/node_modules/lodash-es/nth.js +29 -0
  740. package/node_modules/lodash-es/nthArg.js +32 -0
  741. package/node_modules/lodash-es/number.default.js +7 -0
  742. package/node_modules/lodash-es/number.js +4 -0
  743. package/node_modules/lodash-es/object.default.js +60 -0
  744. package/node_modules/lodash-es/object.js +48 -0
  745. package/node_modules/lodash-es/omit.js +57 -0
  746. package/node_modules/lodash-es/omitBy.js +29 -0
  747. package/node_modules/lodash-es/once.js +25 -0
  748. package/node_modules/lodash-es/orderBy.js +47 -0
  749. package/node_modules/lodash-es/over.js +24 -0
  750. package/node_modules/lodash-es/overArgs.js +61 -0
  751. package/node_modules/lodash-es/overEvery.js +34 -0
  752. package/node_modules/lodash-es/overSome.js +37 -0
  753. package/node_modules/lodash-es/package.json +23 -0
  754. package/node_modules/lodash-es/pad.js +49 -0
  755. package/node_modules/lodash-es/padEnd.js +39 -0
  756. package/node_modules/lodash-es/padStart.js +39 -0
  757. package/node_modules/lodash-es/parseInt.js +43 -0
  758. package/node_modules/lodash-es/partial.js +50 -0
  759. package/node_modules/lodash-es/partialRight.js +49 -0
  760. package/node_modules/lodash-es/partition.js +43 -0
  761. package/node_modules/lodash-es/pick.js +25 -0
  762. package/node_modules/lodash-es/pickBy.js +37 -0
  763. package/node_modules/lodash-es/plant.js +48 -0
  764. package/node_modules/lodash-es/property.js +32 -0
  765. package/node_modules/lodash-es/propertyOf.js +30 -0
  766. package/node_modules/lodash-es/pull.js +29 -0
  767. package/node_modules/lodash-es/pullAll.js +29 -0
  768. package/node_modules/lodash-es/pullAllBy.js +33 -0
  769. package/node_modules/lodash-es/pullAllWith.js +32 -0
  770. package/node_modules/lodash-es/pullAt.js +43 -0
  771. package/node_modules/lodash-es/random.js +91 -0
  772. package/node_modules/lodash-es/range.js +46 -0
  773. package/node_modules/lodash-es/rangeRight.js +41 -0
  774. package/node_modules/lodash-es/rearg.js +33 -0
  775. package/node_modules/lodash-es/reduce.js +51 -0
  776. package/node_modules/lodash-es/reduceRight.js +36 -0
  777. package/node_modules/lodash-es/reject.js +46 -0
  778. package/node_modules/lodash-es/remove.js +53 -0
  779. package/node_modules/lodash-es/repeat.js +37 -0
  780. package/node_modules/lodash-es/replace.js +29 -0
  781. package/node_modules/lodash-es/rest.js +40 -0
  782. package/node_modules/lodash-es/result.js +56 -0
  783. package/node_modules/lodash-es/reverse.js +34 -0
  784. package/node_modules/lodash-es/round.js +26 -0
  785. package/node_modules/lodash-es/sample.js +24 -0
  786. package/node_modules/lodash-es/sampleSize.js +37 -0
  787. package/node_modules/lodash-es/seq.default.js +20 -0
  788. package/node_modules/lodash-es/seq.js +15 -0
  789. package/node_modules/lodash-es/set.js +35 -0
  790. package/node_modules/lodash-es/setWith.js +32 -0
  791. package/node_modules/lodash-es/shuffle.js +25 -0
  792. package/node_modules/lodash-es/size.js +46 -0
  793. package/node_modules/lodash-es/slice.js +37 -0
  794. package/node_modules/lodash-es/snakeCase.js +28 -0
  795. package/node_modules/lodash-es/some.js +51 -0
  796. package/node_modules/lodash-es/sortBy.js +48 -0
  797. package/node_modules/lodash-es/sortedIndex.js +24 -0
  798. package/node_modules/lodash-es/sortedIndexBy.js +33 -0
  799. package/node_modules/lodash-es/sortedIndexOf.js +31 -0
  800. package/node_modules/lodash-es/sortedLastIndex.js +25 -0
  801. package/node_modules/lodash-es/sortedLastIndexBy.js +33 -0
  802. package/node_modules/lodash-es/sortedLastIndexOf.js +31 -0
  803. package/node_modules/lodash-es/sortedUniq.js +24 -0
  804. package/node_modules/lodash-es/sortedUniqBy.js +26 -0
  805. package/node_modules/lodash-es/split.js +52 -0
  806. package/node_modules/lodash-es/spread.js +63 -0
  807. package/node_modules/lodash-es/startCase.js +29 -0
  808. package/node_modules/lodash-es/startsWith.js +39 -0
  809. package/node_modules/lodash-es/string.default.js +41 -0
  810. package/node_modules/lodash-es/string.js +32 -0
  811. package/node_modules/lodash-es/stubArray.js +23 -0
  812. package/node_modules/lodash-es/stubFalse.js +18 -0
  813. package/node_modules/lodash-es/stubObject.js +23 -0
  814. package/node_modules/lodash-es/stubString.js +18 -0
  815. package/node_modules/lodash-es/stubTrue.js +18 -0
  816. package/node_modules/lodash-es/subtract.js +22 -0
  817. package/node_modules/lodash-es/sum.js +24 -0
  818. package/node_modules/lodash-es/sumBy.js +33 -0
  819. package/node_modules/lodash-es/tail.js +22 -0
  820. package/node_modules/lodash-es/take.js +37 -0
  821. package/node_modules/lodash-es/takeRight.js +39 -0
  822. package/node_modules/lodash-es/takeRightWhile.js +45 -0
  823. package/node_modules/lodash-es/takeWhile.js +45 -0
  824. package/node_modules/lodash-es/tap.js +29 -0
  825. package/node_modules/lodash-es/template.js +284 -0
  826. package/node_modules/lodash-es/templateSettings.js +71 -0
  827. package/node_modules/lodash-es/throttle.js +69 -0
  828. package/node_modules/lodash-es/thru.js +28 -0
  829. package/node_modules/lodash-es/times.js +51 -0
  830. package/node_modules/lodash-es/toArray.js +58 -0
  831. package/node_modules/lodash-es/toFinite.js +42 -0
  832. package/node_modules/lodash-es/toInteger.js +36 -0
  833. package/node_modules/lodash-es/toIterator.js +23 -0
  834. package/node_modules/lodash-es/toJSON.js +1 -0
  835. package/node_modules/lodash-es/toLength.js +38 -0
  836. package/node_modules/lodash-es/toLower.js +28 -0
  837. package/node_modules/lodash-es/toNumber.js +64 -0
  838. package/node_modules/lodash-es/toPairs.js +30 -0
  839. package/node_modules/lodash-es/toPairsIn.js +30 -0
  840. package/node_modules/lodash-es/toPath.js +33 -0
  841. package/node_modules/lodash-es/toPlainObject.js +32 -0
  842. package/node_modules/lodash-es/toSafeInteger.js +37 -0
  843. package/node_modules/lodash-es/toString.js +28 -0
  844. package/node_modules/lodash-es/toUpper.js +28 -0
  845. package/node_modules/lodash-es/transform.js +65 -0
  846. package/node_modules/lodash-es/trim.js +47 -0
  847. package/node_modules/lodash-es/trimEnd.js +41 -0
  848. package/node_modules/lodash-es/trimStart.js +43 -0
  849. package/node_modules/lodash-es/truncate.js +111 -0
  850. package/node_modules/lodash-es/unary.js +22 -0
  851. package/node_modules/lodash-es/unescape.js +34 -0
  852. package/node_modules/lodash-es/union.js +26 -0
  853. package/node_modules/lodash-es/unionBy.js +39 -0
  854. package/node_modules/lodash-es/unionWith.js +34 -0
  855. package/node_modules/lodash-es/uniq.js +25 -0
  856. package/node_modules/lodash-es/uniqBy.js +31 -0
  857. package/node_modules/lodash-es/uniqWith.js +28 -0
  858. package/node_modules/lodash-es/uniqueId.js +28 -0
  859. package/node_modules/lodash-es/unset.js +34 -0
  860. package/node_modules/lodash-es/unzip.js +45 -0
  861. package/node_modules/lodash-es/unzipWith.js +39 -0
  862. package/node_modules/lodash-es/update.js +35 -0
  863. package/node_modules/lodash-es/updateWith.js +33 -0
  864. package/node_modules/lodash-es/upperCase.js +27 -0
  865. package/node_modules/lodash-es/upperFirst.js +22 -0
  866. package/node_modules/lodash-es/util.default.js +42 -0
  867. package/node_modules/lodash-es/util.js +33 -0
  868. package/node_modules/lodash-es/value.js +1 -0
  869. package/node_modules/lodash-es/valueOf.js +1 -0
  870. package/node_modules/lodash-es/values.js +34 -0
  871. package/node_modules/lodash-es/valuesIn.js +32 -0
  872. package/node_modules/lodash-es/without.js +31 -0
  873. package/node_modules/lodash-es/words.js +35 -0
  874. package/node_modules/lodash-es/wrap.js +30 -0
  875. package/node_modules/lodash-es/wrapperAt.js +48 -0
  876. package/node_modules/lodash-es/wrapperChain.js +34 -0
  877. package/node_modules/lodash-es/wrapperLodash.js +147 -0
  878. package/node_modules/lodash-es/wrapperReverse.js +44 -0
  879. package/node_modules/lodash-es/wrapperValue.js +21 -0
  880. package/node_modules/lodash-es/xor.js +28 -0
  881. package/node_modules/lodash-es/xorBy.js +39 -0
  882. package/node_modules/lodash-es/xorWith.js +34 -0
  883. package/node_modules/lodash-es/zip.js +22 -0
  884. package/node_modules/lodash-es/zipObject.js +24 -0
  885. package/node_modules/lodash-es/zipObjectDeep.js +23 -0
  886. package/node_modules/lodash-es/zipWith.js +32 -0
  887. package/node_modules/lodash.debounce/LICENSE +47 -0
  888. package/node_modules/lodash.debounce/README.md +18 -0
  889. package/node_modules/lodash.debounce/index.js +377 -0
  890. package/node_modules/lodash.debounce/package.json +17 -0
  891. package/node_modules/require-from-string/index.js +34 -0
  892. package/node_modules/require-from-string/license +21 -0
  893. package/node_modules/require-from-string/package.json +28 -0
  894. package/node_modules/require-from-string/readme.md +56 -0
  895. package/node_modules/semver/LICENSE +15 -0
  896. package/node_modules/semver/README.md +665 -0
  897. package/node_modules/semver/bin/semver.js +191 -0
  898. package/node_modules/semver/classes/comparator.js +143 -0
  899. package/node_modules/semver/classes/index.js +7 -0
  900. package/node_modules/semver/classes/range.js +557 -0
  901. package/node_modules/semver/classes/semver.js +333 -0
  902. package/node_modules/semver/functions/clean.js +8 -0
  903. package/node_modules/semver/functions/cmp.js +54 -0
  904. package/node_modules/semver/functions/coerce.js +62 -0
  905. package/node_modules/semver/functions/compare-build.js +9 -0
  906. package/node_modules/semver/functions/compare-loose.js +5 -0
  907. package/node_modules/semver/functions/compare.js +7 -0
  908. package/node_modules/semver/functions/diff.js +60 -0
  909. package/node_modules/semver/functions/eq.js +5 -0
  910. package/node_modules/semver/functions/gt.js +5 -0
  911. package/node_modules/semver/functions/gte.js +5 -0
  912. package/node_modules/semver/functions/inc.js +21 -0
  913. package/node_modules/semver/functions/lt.js +5 -0
  914. package/node_modules/semver/functions/lte.js +5 -0
  915. package/node_modules/semver/functions/major.js +5 -0
  916. package/node_modules/semver/functions/minor.js +5 -0
  917. package/node_modules/semver/functions/neq.js +5 -0
  918. package/node_modules/semver/functions/parse.js +18 -0
  919. package/node_modules/semver/functions/patch.js +5 -0
  920. package/node_modules/semver/functions/prerelease.js +8 -0
  921. package/node_modules/semver/functions/rcompare.js +5 -0
  922. package/node_modules/semver/functions/rsort.js +5 -0
  923. package/node_modules/semver/functions/satisfies.js +12 -0
  924. package/node_modules/semver/functions/sort.js +5 -0
  925. package/node_modules/semver/functions/valid.js +8 -0
  926. package/node_modules/semver/index.js +91 -0
  927. package/node_modules/semver/internal/constants.js +37 -0
  928. package/node_modules/semver/internal/debug.js +11 -0
  929. package/node_modules/semver/internal/identifiers.js +29 -0
  930. package/node_modules/semver/internal/lrucache.js +42 -0
  931. package/node_modules/semver/internal/parse-options.js +17 -0
  932. package/node_modules/semver/internal/re.js +223 -0
  933. package/node_modules/semver/package.json +78 -0
  934. package/node_modules/semver/preload.js +4 -0
  935. package/node_modules/semver/range.bnf +16 -0
  936. package/node_modules/semver/ranges/gtr.js +6 -0
  937. package/node_modules/semver/ranges/intersects.js +9 -0
  938. package/node_modules/semver/ranges/ltr.js +6 -0
  939. package/node_modules/semver/ranges/max-satisfying.js +27 -0
  940. package/node_modules/semver/ranges/min-satisfying.js +26 -0
  941. package/node_modules/semver/ranges/min-version.js +63 -0
  942. package/node_modules/semver/ranges/outside.js +82 -0
  943. package/node_modules/semver/ranges/simplify.js +49 -0
  944. package/node_modules/semver/ranges/subset.js +249 -0
  945. package/node_modules/semver/ranges/to-comparators.js +10 -0
  946. package/node_modules/semver/ranges/valid.js +13 -0
  947. package/node_modules/signal-exit/LICENSE.txt +16 -0
  948. package/node_modules/signal-exit/README.md +74 -0
  949. package/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
  950. package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
  951. package/node_modules/signal-exit/dist/cjs/browser.js +10 -0
  952. package/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
  953. package/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
  954. package/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
  955. package/node_modules/signal-exit/dist/cjs/index.js +279 -0
  956. package/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
  957. package/node_modules/signal-exit/dist/cjs/package.json +3 -0
  958. package/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
  959. package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
  960. package/node_modules/signal-exit/dist/cjs/signals.js +42 -0
  961. package/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
  962. package/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
  963. package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
  964. package/node_modules/signal-exit/dist/mjs/browser.js +4 -0
  965. package/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
  966. package/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
  967. package/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
  968. package/node_modules/signal-exit/dist/mjs/index.js +275 -0
  969. package/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
  970. package/node_modules/signal-exit/dist/mjs/package.json +3 -0
  971. package/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
  972. package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
  973. package/node_modules/signal-exit/dist/mjs/signals.js +39 -0
  974. package/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
  975. package/node_modules/signal-exit/package.json +106 -0
  976. package/node_modules/slice-ansi/index.d.ts +19 -0
  977. package/node_modules/slice-ansi/index.js +169 -0
  978. package/node_modules/slice-ansi/license +10 -0
  979. package/node_modules/slice-ansi/package.json +58 -0
  980. package/node_modules/slice-ansi/readme.md +54 -0
  981. package/node_modules/stack-utils/LICENSE.md +21 -0
  982. package/node_modules/stack-utils/index.js +344 -0
  983. package/node_modules/stack-utils/package.json +39 -0
  984. package/node_modules/stack-utils/readme.md +143 -0
  985. package/node_modules/string-width/index.d.ts +39 -0
  986. package/node_modules/string-width/index.js +82 -0
  987. package/node_modules/string-width/license +9 -0
  988. package/node_modules/string-width/package.json +64 -0
  989. package/node_modules/string-width/readme.md +66 -0
  990. package/node_modules/strip-ansi/index.d.ts +15 -0
  991. package/node_modules/strip-ansi/index.js +19 -0
  992. package/node_modules/strip-ansi/license +9 -0
  993. package/node_modules/strip-ansi/package.json +59 -0
  994. package/node_modules/strip-ansi/readme.md +37 -0
  995. package/node_modules/supports-hyperlinks/browser.js +10 -0
  996. package/node_modules/supports-hyperlinks/index.d.ts +25 -0
  997. package/node_modules/supports-hyperlinks/index.js +157 -0
  998. package/node_modules/supports-hyperlinks/license +10 -0
  999. package/node_modules/supports-hyperlinks/node_modules/has-flag/index.d.ts +39 -0
  1000. package/node_modules/supports-hyperlinks/node_modules/has-flag/index.js +8 -0
  1001. package/node_modules/supports-hyperlinks/node_modules/has-flag/license +9 -0
  1002. package/node_modules/supports-hyperlinks/node_modules/has-flag/package.json +49 -0
  1003. package/node_modules/supports-hyperlinks/node_modules/has-flag/readme.md +74 -0
  1004. package/node_modules/supports-hyperlinks/node_modules/supports-color/browser.d.ts +1 -0
  1005. package/node_modules/supports-hyperlinks/node_modules/supports-color/browser.js +35 -0
  1006. package/node_modules/supports-hyperlinks/node_modules/supports-color/index.d.ts +55 -0
  1007. package/node_modules/supports-hyperlinks/node_modules/supports-color/index.js +202 -0
  1008. package/node_modules/supports-hyperlinks/node_modules/supports-color/license +9 -0
  1009. package/node_modules/supports-hyperlinks/node_modules/supports-color/package.json +64 -0
  1010. package/node_modules/supports-hyperlinks/node_modules/supports-color/readme.md +75 -0
  1011. package/node_modules/supports-hyperlinks/package.json +47 -0
  1012. package/node_modules/supports-hyperlinks/readme.md +39 -0
  1013. package/node_modules/tagged-tag/index.d.ts +3 -0
  1014. package/node_modules/tagged-tag/license +9 -0
  1015. package/node_modules/tagged-tag/package.json +36 -0
  1016. package/node_modules/tagged-tag/readme.md +5 -0
  1017. package/node_modules/type-fest/index.d.ts +221 -0
  1018. package/node_modules/type-fest/license-cc0 +121 -0
  1019. package/node_modules/type-fest/license-mit +9 -0
  1020. package/node_modules/type-fest/package.json +75 -0
  1021. package/node_modules/type-fest/readme.md +1077 -0
  1022. package/node_modules/type-fest/source/absolute.d.ts +52 -0
  1023. package/node_modules/type-fest/source/all-extend.d.ts +119 -0
  1024. package/node_modules/type-fest/source/all-union-fields.d.ts +91 -0
  1025. package/node_modules/type-fest/source/and-all.d.ts +76 -0
  1026. package/node_modules/type-fest/source/and.d.ts +82 -0
  1027. package/node_modules/type-fest/source/array-element.d.ts +46 -0
  1028. package/node_modules/type-fest/source/array-indices.d.ts +25 -0
  1029. package/node_modules/type-fest/source/array-length.d.ts +36 -0
  1030. package/node_modules/type-fest/source/array-reverse.d.ts +84 -0
  1031. package/node_modules/type-fest/source/array-slice.d.ts +132 -0
  1032. package/node_modules/type-fest/source/array-splice.d.ts +104 -0
  1033. package/node_modules/type-fest/source/array-tail.d.ts +70 -0
  1034. package/node_modules/type-fest/source/array-values.d.ts +24 -0
  1035. package/node_modules/type-fest/source/arrayable.d.ts +31 -0
  1036. package/node_modules/type-fest/source/async-return-type.d.ts +28 -0
  1037. package/node_modules/type-fest/source/asyncify.d.ts +25 -0
  1038. package/node_modules/type-fest/source/basic.d.ts +38 -0
  1039. package/node_modules/type-fest/source/camel-case.d.ts +125 -0
  1040. package/node_modules/type-fest/source/camel-cased-properties-deep.d.ts +106 -0
  1041. package/node_modules/type-fest/source/camel-cased-properties.d.ts +49 -0
  1042. package/node_modules/type-fest/source/characters.d.ts +67 -0
  1043. package/node_modules/type-fest/source/conditional-except.d.ts +47 -0
  1044. package/node_modules/type-fest/source/conditional-keys.d.ts +63 -0
  1045. package/node_modules/type-fest/source/conditional-pick-deep.d.ts +122 -0
  1046. package/node_modules/type-fest/source/conditional-pick.d.ts +48 -0
  1047. package/node_modules/type-fest/source/conditional-simplify-deep.d.ts +73 -0
  1048. package/node_modules/type-fest/source/conditional-simplify.d.ts +50 -0
  1049. package/node_modules/type-fest/source/delimiter-case.d.ts +78 -0
  1050. package/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts +115 -0
  1051. package/node_modules/type-fest/source/delimiter-cased-properties.d.ts +52 -0
  1052. package/node_modules/type-fest/source/distributed-omit.d.ts +96 -0
  1053. package/node_modules/type-fest/source/distributed-pick.d.ts +92 -0
  1054. package/node_modules/type-fest/source/empty-object.d.ts +51 -0
  1055. package/node_modules/type-fest/source/entries.d.ts +64 -0
  1056. package/node_modules/type-fest/source/entry.d.ts +67 -0
  1057. package/node_modules/type-fest/source/exact.d.ts +73 -0
  1058. package/node_modules/type-fest/source/except.d.ts +112 -0
  1059. package/node_modules/type-fest/source/exclude-exactly.d.ts +57 -0
  1060. package/node_modules/type-fest/source/exclude-rest-element.d.ts +40 -0
  1061. package/node_modules/type-fest/source/exclude-strict.d.ts +51 -0
  1062. package/node_modules/type-fest/source/exclusify-union.d.ts +147 -0
  1063. package/node_modules/type-fest/source/extends-strict.d.ts +44 -0
  1064. package/node_modules/type-fest/source/extract-rest-element.d.ts +30 -0
  1065. package/node_modules/type-fest/source/extract-strict.d.ts +51 -0
  1066. package/node_modules/type-fest/source/find-global-type.d.ts +68 -0
  1067. package/node_modules/type-fest/source/fixed-length-array.d.ts +97 -0
  1068. package/node_modules/type-fest/source/get.d.ts +227 -0
  1069. package/node_modules/type-fest/source/global-this.d.ts +24 -0
  1070. package/node_modules/type-fest/source/globals/index.d.ts +3 -0
  1071. package/node_modules/type-fest/source/globals/observable-like.d.ts +78 -0
  1072. package/node_modules/type-fest/source/greater-than-or-equal.d.ts +63 -0
  1073. package/node_modules/type-fest/source/greater-than.d.ts +92 -0
  1074. package/node_modules/type-fest/source/has-optional-keys.d.ts +23 -0
  1075. package/node_modules/type-fest/source/has-readonly-keys.d.ts +23 -0
  1076. package/node_modules/type-fest/source/has-required-keys.d.ts +61 -0
  1077. package/node_modules/type-fest/source/has-writable-keys.d.ts +23 -0
  1078. package/node_modules/type-fest/source/if-any.d.ts +28 -0
  1079. package/node_modules/type-fest/source/if-empty-object.d.ts +30 -0
  1080. package/node_modules/type-fest/source/if-never.d.ts +28 -0
  1081. package/node_modules/type-fest/source/if-null.d.ts +28 -0
  1082. package/node_modules/type-fest/source/if-unknown.d.ts +28 -0
  1083. package/node_modules/type-fest/source/if.d.ts +102 -0
  1084. package/node_modules/type-fest/source/includes.d.ts +24 -0
  1085. package/node_modules/type-fest/source/int-closed-range.d.ts +45 -0
  1086. package/node_modules/type-fest/source/int-range.d.ts +67 -0
  1087. package/node_modules/type-fest/source/internal/array.d.ts +144 -0
  1088. package/node_modules/type-fest/source/internal/characters.d.ts +65 -0
  1089. package/node_modules/type-fest/source/internal/enforce-optional.d.ts +49 -0
  1090. package/node_modules/type-fest/source/internal/index.d.ts +11 -0
  1091. package/node_modules/type-fest/source/internal/keys.d.ts +100 -0
  1092. package/node_modules/type-fest/source/internal/numeric.d.ts +141 -0
  1093. package/node_modules/type-fest/source/internal/object.d.ts +292 -0
  1094. package/node_modules/type-fest/source/internal/string.d.ts +202 -0
  1095. package/node_modules/type-fest/source/internal/tuple.d.ts +79 -0
  1096. package/node_modules/type-fest/source/internal/type.d.ts +165 -0
  1097. package/node_modules/type-fest/source/invariant-of.d.ts +85 -0
  1098. package/node_modules/type-fest/source/is-any.d.ts +31 -0
  1099. package/node_modules/type-fest/source/is-equal.d.ts +41 -0
  1100. package/node_modules/type-fest/source/is-float.d.ts +43 -0
  1101. package/node_modules/type-fest/source/is-integer.d.ts +60 -0
  1102. package/node_modules/type-fest/source/is-literal.d.ts +315 -0
  1103. package/node_modules/type-fest/source/is-lowercase.d.ts +38 -0
  1104. package/node_modules/type-fest/source/is-never.d.ts +56 -0
  1105. package/node_modules/type-fest/source/is-null.d.ts +22 -0
  1106. package/node_modules/type-fest/source/is-nullable.d.ts +30 -0
  1107. package/node_modules/type-fest/source/is-optional-key-of.d.ts +51 -0
  1108. package/node_modules/type-fest/source/is-optional.d.ts +28 -0
  1109. package/node_modules/type-fest/source/is-readonly-key-of.d.ts +55 -0
  1110. package/node_modules/type-fest/source/is-required-key-of.d.ts +51 -0
  1111. package/node_modules/type-fest/source/is-tuple.d.ts +92 -0
  1112. package/node_modules/type-fest/source/is-undefined.d.ts +22 -0
  1113. package/node_modules/type-fest/source/is-union.d.ts +40 -0
  1114. package/node_modules/type-fest/source/is-unknown.d.ts +43 -0
  1115. package/node_modules/type-fest/source/is-uppercase.d.ts +38 -0
  1116. package/node_modules/type-fest/source/is-writable-key-of.d.ts +51 -0
  1117. package/node_modules/type-fest/source/iterable-element.d.ts +66 -0
  1118. package/node_modules/type-fest/source/join.d.ts +79 -0
  1119. package/node_modules/type-fest/source/json-value.d.ts +33 -0
  1120. package/node_modules/type-fest/source/jsonifiable.d.ts +37 -0
  1121. package/node_modules/type-fest/source/jsonify.d.ts +127 -0
  1122. package/node_modules/type-fest/source/kebab-case.d.ts +47 -0
  1123. package/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts +72 -0
  1124. package/node_modules/type-fest/source/kebab-cased-properties.d.ts +46 -0
  1125. package/node_modules/type-fest/source/key-as-string.d.ts +27 -0
  1126. package/node_modules/type-fest/source/keys-of-union.d.ts +44 -0
  1127. package/node_modules/type-fest/source/last-array-element.d.ts +36 -0
  1128. package/node_modules/type-fest/source/less-than-or-equal.d.ts +60 -0
  1129. package/node_modules/type-fest/source/less-than.d.ts +60 -0
  1130. package/node_modules/type-fest/source/literal-to-primitive-deep.d.ts +71 -0
  1131. package/node_modules/type-fest/source/literal-to-primitive.d.ts +38 -0
  1132. package/node_modules/type-fest/source/literal-union.d.ts +39 -0
  1133. package/node_modules/type-fest/source/merge-deep.d.ts +495 -0
  1134. package/node_modules/type-fest/source/merge-exclusive.d.ts +45 -0
  1135. package/node_modules/type-fest/source/merge.d.ts +87 -0
  1136. package/node_modules/type-fest/source/multidimensional-array.d.ts +38 -0
  1137. package/node_modules/type-fest/source/multidimensional-readonly-array.d.ts +38 -0
  1138. package/node_modules/type-fest/source/non-empty-object.d.ts +38 -0
  1139. package/node_modules/type-fest/source/non-empty-string.d.ts +32 -0
  1140. package/node_modules/type-fest/source/non-empty-tuple.d.ts +24 -0
  1141. package/node_modules/type-fest/source/non-nullable-deep.d.ts +102 -0
  1142. package/node_modules/type-fest/source/numeric.d.ts +226 -0
  1143. package/node_modules/type-fest/source/object-merge.d.ts +194 -0
  1144. package/node_modules/type-fest/source/omit-deep.d.ts +153 -0
  1145. package/node_modules/type-fest/source/omit-index-signature.d.ts +98 -0
  1146. package/node_modules/type-fest/source/opaque.d.ts +3 -0
  1147. package/node_modules/type-fest/source/optional-keys-of.d.ts +46 -0
  1148. package/node_modules/type-fest/source/optional.d.ts +31 -0
  1149. package/node_modules/type-fest/source/or-all.d.ts +73 -0
  1150. package/node_modules/type-fest/source/or.d.ts +82 -0
  1151. package/node_modules/type-fest/source/override-properties.d.ts +43 -0
  1152. package/node_modules/type-fest/source/package-json.d.ts +710 -0
  1153. package/node_modules/type-fest/source/partial-deep.d.ts +157 -0
  1154. package/node_modules/type-fest/source/partial-on-undefined-deep.d.ts +81 -0
  1155. package/node_modules/type-fest/source/pascal-case.d.ts +52 -0
  1156. package/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts +79 -0
  1157. package/node_modules/type-fest/source/pascal-cased-properties.d.ts +46 -0
  1158. package/node_modules/type-fest/source/paths.d.ts +241 -0
  1159. package/node_modules/type-fest/source/pick-deep.d.ts +139 -0
  1160. package/node_modules/type-fest/source/pick-index-signature.d.ts +52 -0
  1161. package/node_modules/type-fest/source/primitive.d.ts +15 -0
  1162. package/node_modules/type-fest/source/promisable.d.ts +27 -0
  1163. package/node_modules/type-fest/source/readonly-deep.d.ts +118 -0
  1164. package/node_modules/type-fest/source/readonly-keys-of.d.ts +38 -0
  1165. package/node_modules/type-fest/source/readonly-tuple.d.ts +34 -0
  1166. package/node_modules/type-fest/source/remove-prefix.d.ts +132 -0
  1167. package/node_modules/type-fest/source/replace.d.ts +87 -0
  1168. package/node_modules/type-fest/source/require-all-or-none.d.ts +54 -0
  1169. package/node_modules/type-fest/source/require-at-least-one.d.ts +48 -0
  1170. package/node_modules/type-fest/source/require-exactly-one.d.ts +48 -0
  1171. package/node_modules/type-fest/source/require-one-or-none.d.ts +49 -0
  1172. package/node_modules/type-fest/source/required-deep.d.ts +78 -0
  1173. package/node_modules/type-fest/source/required-keys-of.d.ts +38 -0
  1174. package/node_modules/type-fest/source/schema.d.ts +119 -0
  1175. package/node_modules/type-fest/source/screaming-snake-case.d.ts +31 -0
  1176. package/node_modules/type-fest/source/set-field-type.d.ts +67 -0
  1177. package/node_modules/type-fest/source/set-non-nullable-deep.d.ts +88 -0
  1178. package/node_modules/type-fest/source/set-non-nullable.d.ts +34 -0
  1179. package/node_modules/type-fest/source/set-optional.d.ts +42 -0
  1180. package/node_modules/type-fest/source/set-parameter-type.d.ts +125 -0
  1181. package/node_modules/type-fest/source/set-readonly.d.ts +40 -0
  1182. package/node_modules/type-fest/source/set-required-deep.d.ts +64 -0
  1183. package/node_modules/type-fest/source/set-required.d.ts +75 -0
  1184. package/node_modules/type-fest/source/set-return-type.d.ts +31 -0
  1185. package/node_modules/type-fest/source/shared-union-fields-deep.d.ts +180 -0
  1186. package/node_modules/type-fest/source/shared-union-fields.d.ts +79 -0
  1187. package/node_modules/type-fest/source/simplify-deep.d.ts +117 -0
  1188. package/node_modules/type-fest/source/simplify.d.ts +61 -0
  1189. package/node_modules/type-fest/source/single-key-object.d.ts +28 -0
  1190. package/node_modules/type-fest/source/snake-case.d.ts +48 -0
  1191. package/node_modules/type-fest/source/snake-cased-properties-deep.d.ts +72 -0
  1192. package/node_modules/type-fest/source/snake-cased-properties.d.ts +46 -0
  1193. package/node_modules/type-fest/source/some-extend.d.ts +113 -0
  1194. package/node_modules/type-fest/source/split-on-rest-element.d.ts +106 -0
  1195. package/node_modules/type-fest/source/split.d.ts +90 -0
  1196. package/node_modules/type-fest/source/spread.d.ts +78 -0
  1197. package/node_modules/type-fest/source/string-repeat.d.ts +49 -0
  1198. package/node_modules/type-fest/source/string-slice.d.ts +39 -0
  1199. package/node_modules/type-fest/source/stringified.d.ts +25 -0
  1200. package/node_modules/type-fest/source/structured-cloneable.d.ts +89 -0
  1201. package/node_modules/type-fest/source/subtract.d.ts +87 -0
  1202. package/node_modules/type-fest/source/sum.d.ts +82 -0
  1203. package/node_modules/type-fest/source/tagged-union.d.ts +53 -0
  1204. package/node_modules/type-fest/source/tagged.d.ts +261 -0
  1205. package/node_modules/type-fest/source/trim.d.ts +29 -0
  1206. package/node_modules/type-fest/source/tsconfig-json.d.ts +1356 -0
  1207. package/node_modules/type-fest/source/tuple-of.d.ts +80 -0
  1208. package/node_modules/type-fest/source/tuple-to-object.d.ts +47 -0
  1209. package/node_modules/type-fest/source/tuple-to-union.d.ts +54 -0
  1210. package/node_modules/type-fest/source/typed-array.d.ts +19 -0
  1211. package/node_modules/type-fest/source/undefined-on-partial-deep.d.ts +83 -0
  1212. package/node_modules/type-fest/source/union-length.d.ts +27 -0
  1213. package/node_modules/type-fest/source/union-member.d.ts +65 -0
  1214. package/node_modules/type-fest/source/union-to-intersection.d.ts +35 -0
  1215. package/node_modules/type-fest/source/union-to-tuple.d.ts +49 -0
  1216. package/node_modules/type-fest/source/unknown-array.d.ts +27 -0
  1217. package/node_modules/type-fest/source/unknown-map.d.ts +26 -0
  1218. package/node_modules/type-fest/source/unknown-record.d.ts +33 -0
  1219. package/node_modules/type-fest/source/unknown-set.d.ts +26 -0
  1220. package/node_modules/type-fest/source/unwrap-partial.d.ts +33 -0
  1221. package/node_modules/type-fest/source/value-of.d.ts +24 -0
  1222. package/node_modules/type-fest/source/words.d.ts +148 -0
  1223. package/node_modules/type-fest/source/writable-deep.d.ts +84 -0
  1224. package/node_modules/type-fest/source/writable-keys-of.d.ts +34 -0
  1225. package/node_modules/type-fest/source/writable.d.ts +68 -0
  1226. package/node_modules/type-fest/source/xor.d.ts +83 -0
  1227. package/node_modules/usehooks-ts/LICENSE +22 -0
  1228. package/node_modules/usehooks-ts/README.md +473 -0
  1229. package/node_modules/usehooks-ts/dist/index.cjs +1084 -0
  1230. package/node_modules/usehooks-ts/dist/index.d.cts +953 -0
  1231. package/node_modules/usehooks-ts/dist/index.d.ts +953 -0
  1232. package/node_modules/usehooks-ts/dist/index.js +1046 -0
  1233. package/node_modules/usehooks-ts/package.json +74 -0
  1234. package/node_modules/wrap-ansi/index.d.ts +41 -0
  1235. package/node_modules/wrap-ansi/index.js +222 -0
  1236. package/node_modules/wrap-ansi/license +9 -0
  1237. package/node_modules/wrap-ansi/package.json +69 -0
  1238. package/node_modules/wrap-ansi/readme.md +75 -0
  1239. package/package.json +3 -2
@@ -0,0 +1,700 @@
1
+ import React, { PureComponent, type ReactNode } from 'react';
2
+ import { logForDebugging } from '../_internal/debug.js';
3
+ import { stopCapturingEarlyInput } from '../_internal/earlyInput.js';
4
+ import { isEnvTruthy } from '../_internal/envUtils.js';
5
+ import { isMouseClicksDisabled } from '../_internal/fullscreen.js';
6
+ import { logError } from '../_internal/log.js';
7
+ import { updateLastInteractionTime } from '../_internal/state.js';
8
+ import { EventEmitter } from '../events/emitter.js';
9
+ import { InputEvent } from '../events/input-event.js';
10
+ import { TerminalFocusEvent } from '../events/terminal-focus-event.js';
11
+ import { INITIAL_STATE, type ParsedInput, type ParsedKey, type ParsedMouse, parseMultipleKeypresses } from '../parse-keypress.js';
12
+ import reconciler from '../reconciler.js';
13
+ import { finishSelection, hasSelection, type SelectionState, startSelection } from '../selection.js';
14
+ import { isXtermJs, setXtversionName, supportsExtendedKeys } from '../terminal.js';
15
+ import { getTerminalFocused, setTerminalFocused } from '../terminal-focus-state.js';
16
+ import { TerminalQuerier, xtversion } from '../terminal-querier.js';
17
+ import { DISABLE_KITTY_KEYBOARD, DISABLE_MODIFY_OTHER_KEYS, ENABLE_KITTY_KEYBOARD, ENABLE_MODIFY_OTHER_KEYS, FOCUS_IN, FOCUS_OUT } from '../termio/csi.js';
18
+ import { DBP, DFE, DISABLE_MOUSE_TRACKING, EBP, EFE, HIDE_CURSOR, SHOW_CURSOR } from '../termio/dec.js';
19
+ import AppContext from './AppContext.js';
20
+ import { ClockProvider } from './ClockContext.js';
21
+ import CursorDeclarationContext, { type CursorDeclarationSetter } from './CursorDeclarationContext.js';
22
+ import ErrorOverview from './ErrorOverview.js';
23
+ import StdinContext from './StdinContext.js';
24
+ import { TerminalFocusProvider } from './TerminalFocusContext.js';
25
+ import { TerminalSizeContext } from './TerminalSizeContext.js';
26
+
27
+ // Windows doesn't have SIGSTOP/SIGCONT semantics, so the Ctrl+Z suspend
28
+ // path is a no-op there. Cached at module load — the platform isn't
29
+ // going to change at runtime.
30
+ const SUPPORTS_SUSPEND = process.platform !== 'win32';
31
+
32
+ // If stdin goes silent for this long and then receives a chunk, treat
33
+ // the next chunk as a resume signal and re-assert terminal modes (mouse
34
+ // tracking, etc.). Real reattach scenarios — tmux detach/attach, SSH
35
+ // reconnect, laptop wake — reset the terminal's DEC private modes
36
+ // without sending us any signal we could hook into directly. Five
37
+ // seconds is comfortably longer than any normal inter-keystroke gap but
38
+ // short enough that the first scroll after reattach still works.
39
+ const STDIN_RESUME_GAP_MS = 5000;
40
+
41
+ // Short flush timeout for a stranded ESC-prefixed sequence (cursor
42
+ // keys, etc.). 50ms is enough to receive the rest of an SS3/CSI tail
43
+ // across most terminals; long enough that a deliberate single ESC keypress
44
+ // resolves to "Escape" instead of being treated as the start of a sequence.
45
+ const NORMAL_FLUSH_TIMEOUT_MS = 50;
46
+
47
+ // Pastes can interleave with our processing if the terminal sends them in
48
+ // chunks larger than the readable buffer. Hold incomplete paste content
49
+ // longer so we don't split it across two parse runs.
50
+ const PASTE_FLUSH_TIMEOUT_MS = 500;
51
+
52
+ // macOS double/triple-click default: a follow-up click within this many
53
+ // ms and this many cells of the previous click counts as a continuation
54
+ // (word-select on 2, line-select on 3). The position tolerance allows
55
+ // for trackpad jitter between consecutive taps.
56
+ const MULTI_CLICK_TIMEOUT_MS = 500;
57
+ const MULTI_CLICK_DISTANCE = 1;
58
+
59
+ // Bits in the SGR mouse button code we need to inspect by name. Names
60
+ // match what the terminal protocol calls them.
61
+ const MOUSE_BUTTON_BASE_MASK = 0x03;
62
+ const MOUSE_BUTTON_MOTION_BIT = 0x20;
63
+ const MOUSE_BUTTON_ALT_BIT = 0x08;
64
+ const MOUSE_BUTTON_BASE_RELEASE_LEGACY = 3; // "no button" from X10 encoding
65
+ type Props = {
66
+ readonly children: ReactNode;
67
+ readonly stdin: NodeJS.ReadStream;
68
+ readonly stdout: NodeJS.WriteStream;
69
+ readonly stderr: NodeJS.WriteStream;
70
+ readonly exitOnCtrlC: boolean;
71
+ readonly onExit: (error?: Error) => void;
72
+ readonly terminalColumns: number;
73
+ readonly terminalRows: number;
74
+ /** Shared selection state. */
75
+ readonly selection: SelectionState;
76
+ readonly onSelectionChange: () => void;
77
+ /** Dispatch a click at `(col, row)`. */
78
+ readonly onClickAt: (col: number, row: number) => boolean;
79
+ readonly onHoverAt: (col: number, row: number) => void;
80
+ readonly getHyperlinkAt: (col: number, row: number) => string | undefined;
81
+ /** Open a hyperlink URL in the browser. Called when the defer fires. */
82
+ readonly onOpenHyperlink: (url: string) => void;
83
+ /** Fired on the press half of a double/triple click at `(col, row)`. */
84
+ readonly onMultiClick: (col: number, row: number, count: 2 | 3) => void;
85
+ /** Fired on drag-motion. */
86
+ readonly onSelectionDrag: (col: number, row: number) => void;
87
+ readonly onStdinResume?: () => void;
88
+ readonly onCursorDeclaration?: CursorDeclarationSetter;
89
+ /** Dispatch a parsed keyboard event through the DOM tree. */
90
+ readonly dispatchKeyboardEvent: (parsedKey: ParsedKey) => void;
91
+ };
92
+
93
+ type State = {
94
+ readonly error?: Error;
95
+ };
96
+
97
+ /** Root component for every rendered tree. */
98
+ export default class App extends PureComponent<Props, State> {
99
+ static displayName = 'InternalApp';
100
+ static getDerivedStateFromError(error: Error) {
101
+ return {
102
+ error,
103
+ };
104
+ }
105
+ override state = {
106
+ error: undefined,
107
+ };
108
+
109
+ // Reference count for raw-mode enablement. Components that need raw
110
+ // keyboard input call `handleSetRawMode(true)` independently; we only
111
+ // disable raw mode once every consumer has released.
112
+ rawModeEnabledCount = 0;
113
+ internal_eventEmitter = new EventEmitter();
114
+ keyParseState = INITIAL_STATE;
115
+ // Timer for flushing incomplete escape sequences. Always either null
116
+ // or a live timer reference — `flushIncomplete` clears it itself.
117
+ incompleteEscapeTimer: NodeJS.Timeout | null = null;
118
+
119
+ // Terminal query/response dispatcher. Responses (DECRPM, DA1, OSC
120
+ // replies, ...) arrive on stdin and `parse-keypress` separates them
121
+ // from real keys; this querier routes them to pending resolvers.
122
+ querier = new TerminalQuerier(this.props.stdout);
123
+
124
+ // Multi-click tracking for double/triple-click text selection. A
125
+ // click within `MULTI_CLICK_TIMEOUT_MS` and `MULTI_CLICK_DISTANCE`
126
+ // of the previous one increments `clickCount`; otherwise it resets
127
+ // to 1 (the new chain starts).
128
+ lastClickTime = 0;
129
+ lastClickCol = -1;
130
+ lastClickRow = -1;
131
+ clickCount = 0;
132
+ // Pending hyperlink open. Cancelled if a second click arrives within
133
+ // `MULTI_CLICK_TIMEOUT_MS` so double-clicking an OSC 8 link selects
134
+ // the word without also opening the browser. DOM `onClick` dispatch
135
+ // does NOT go through this timer — `onClickAt` returning `true`
136
+ // short-circuits before the link path runs.
137
+ pendingHyperlinkTimer: ReturnType<typeof setTimeout> | null = null;
138
+ // Last mode-1003 motion position. Terminals dedupe at cell granularity
139
+ // already, but tracking it ourselves lets us skip `dispatchHover`
140
+ // entirely on duplicate events (drag-then-release at the same cell,
141
+ // for example).
142
+ lastHoverCol = -1;
143
+ lastHoverRow = -1;
144
+
145
+ // Timestamp of the last stdin chunk. Used by the resume-gap check to
146
+ // detect tmux attach / SSH reconnect / laptop wake. Initialised to
147
+ // `now` so the first chunk after startup doesn't false-trigger.
148
+ lastStdinTime = Date.now();
149
+
150
+ // True iff the configured stdin is a TTY (and therefore supports
151
+ // entering raw mode).
152
+ isRawModeSupported(): boolean {
153
+ return this.props.stdin.isTTY;
154
+ }
155
+ override render() {
156
+ return <TerminalSizeContext.Provider value={{
157
+ columns: this.props.terminalColumns,
158
+ rows: this.props.terminalRows
159
+ }}>
160
+ <AppContext.Provider value={{
161
+ exit: this.handleExit
162
+ }}>
163
+ <StdinContext.Provider value={{
164
+ stdin: this.props.stdin,
165
+ setRawMode: this.handleSetRawMode,
166
+ isRawModeSupported: this.isRawModeSupported(),
167
+ internal_exitOnCtrlC: this.props.exitOnCtrlC,
168
+ internal_eventEmitter: this.internal_eventEmitter,
169
+ internal_querier: this.querier
170
+ }}>
171
+ <TerminalFocusProvider>
172
+ <ClockProvider>
173
+ <CursorDeclarationContext.Provider value={this.props.onCursorDeclaration ?? (() => {})}>
174
+ {this.state.error ? <ErrorOverview error={this.state.error as Error} /> : this.props.children}
175
+ </CursorDeclarationContext.Provider>
176
+ </ClockProvider>
177
+ </TerminalFocusProvider>
178
+ </StdinContext.Provider>
179
+ </AppContext.Provider>
180
+ </TerminalSizeContext.Provider>;
181
+ }
182
+ override componentDidMount() {
183
+ // Hide the native cursor while the app is running. In accessibility
184
+ // mode the cursor stays visible because screen magnifiers and similar
185
+ // assistive tools track its position to follow focus.
186
+ if (this.props.stdout.isTTY && !isEnvTruthy(process.env.REASONIX_ACCESSIBILITY)) {
187
+ this.props.stdout.write(HIDE_CURSOR);
188
+ }
189
+ }
190
+ override componentWillUnmount() {
191
+ if (this.props.stdout.isTTY) {
192
+ this.props.stdout.write(SHOW_CURSOR);
193
+ }
194
+
195
+ // Drop any pending timers so they don't fire into a torn-down tree.
196
+ if (this.incompleteEscapeTimer) {
197
+ clearTimeout(this.incompleteEscapeTimer);
198
+ this.incompleteEscapeTimer = null;
199
+ }
200
+ if (this.pendingHyperlinkTimer) {
201
+ clearTimeout(this.pendingHyperlinkTimer);
202
+ this.pendingHyperlinkTimer = null;
203
+ }
204
+ // Skip `setRawMode` on non-TTY stdin; calling it would throw the
205
+ // same error the prop-time guard reports, and unmount paths are not
206
+ // a useful place to surface that.
207
+ if (this.isRawModeSupported()) {
208
+ this.handleSetRawMode(false);
209
+ }
210
+ }
211
+ override componentDidCatch(error: Error) {
212
+ this.handleExit(error);
213
+ }
214
+ handleSetRawMode = (isEnabled: boolean): void => {
215
+ const {
216
+ stdin
217
+ } = this.props;
218
+ if (!this.isRawModeSupported()) {
219
+ if (stdin === process.stdin) {
220
+ throw new Error('Raw mode is not supported on the default process.stdin used as the input stream.\nThis usually means the process was launched without a TTY (e.g. piped input, CI runner). Pass an explicit `stdin` option whose `isTTY` is true, or render with `{ stdin: process.stdin }` only inside an interactive terminal.');
221
+ } else {
222
+ throw new Error('Raw mode is not supported on the provided `stdin` stream.\nThe stream must be a TTY (its `isTTY` property must be true). Streams from pipes, files, or non-interactive shells cannot enter raw mode; supply a TTY-backed stream or skip the components that depend on raw keyboard input.');
223
+ }
224
+ }
225
+ stdin.setEncoding('utf8');
226
+ if (isEnabled) {
227
+ // Only do the heavy setup once, on the first enable.
228
+ if (this.rawModeEnabledCount === 0) {
229
+ // Stop early-input capture before installing our own readable
230
+ // listener. Both use the same `'readable' + read()` pattern, so
231
+ // they cannot coexist on the same stream — whichever drains
232
+ // stdin first wins, and the loser sees no events. Any buffered
233
+ // text the early capture collected is preserved separately and
234
+ // can be consumed via `consumeEarlyInput()`.
235
+ stopCapturingEarlyInput();
236
+ stdin.ref();
237
+ stdin.setRawMode(true);
238
+ stdin.addListener('readable', this.handleReadable);
239
+ // Bracketed paste mode: pastes arrive wrapped in
240
+ // `ESC [ 200 ~` / `ESC [ 201 ~` so the parser can tell them
241
+ // apart from typed input.
242
+ this.props.stdout.write(EBP);
243
+ // DECSET 1004 — terminal focus reporting.
244
+ this.props.stdout.write(EFE);
245
+ // Extended key reporting, so ctrl+shift+<letter> is
246
+ // distinguishable from plain ctrl+<letter>. We push the kitty
247
+ // keyboard stack (CSI >1u) AND set xterm modifyOtherKeys level
248
+ // 2 (CSI >4;2m); terminals respect whichever they implement
249
+ // (tmux honours only the latter), and the unused one is a
250
+ // harmless no-op on the rest.
251
+ if (supportsExtendedKeys()) {
252
+ this.props.stdout.write(ENABLE_KITTY_KEYBOARD);
253
+ this.props.stdout.write(ENABLE_MODIFY_OTHER_KEYS);
254
+ }
255
+ // Probe terminal identity via XTVERSION. Unlike `TERM_PROGRAM`
256
+ // this query/reply travels through the pty, which means it
257
+ // survives SSH and tmux. The reply (when we get one) is used
258
+ // for wheel-scroll base detection on hosts where env vars
259
+ // aren't reliable. Fire-and-forget: the querier's DA1 sentinel
260
+ // bounds the round-trip, so a silent terminal just leaves
261
+ // `name` undefined and we move on.
262
+ //
263
+ // Deferred to the next macrotask so it doesn't interleave with
264
+ // alt-screen / mouse-tracking writes that may happen later in
265
+ // the same render cycle.
266
+ setImmediate(() => {
267
+ void Promise.all([this.querier.send(xtversion()), this.querier.flush()]).then(([r]) => {
268
+ if (r) {
269
+ setXtversionName(r.name);
270
+ logForDebugging(`XTVERSION: terminal identified as "${r.name}"`);
271
+ } else {
272
+ logForDebugging('XTVERSION: no reply (terminal ignored query)');
273
+ }
274
+ });
275
+ });
276
+ }
277
+ this.rawModeEnabledCount++;
278
+ return;
279
+ }
280
+
281
+ // Disable for real only when every consumer has released.
282
+ if (--this.rawModeEnabledCount === 0) {
283
+ this.props.stdout.write(DISABLE_MODIFY_OTHER_KEYS);
284
+ this.props.stdout.write(DISABLE_KITTY_KEYBOARD);
285
+ // DECRST 1004 — leave terminal focus reporting off.
286
+ this.props.stdout.write(DFE);
287
+ // Disable bracketed paste mode.
288
+ this.props.stdout.write(DBP);
289
+ stdin.setRawMode(false);
290
+ stdin.removeListener('readable', this.handleReadable);
291
+ stdin.unref();
292
+ }
293
+ };
294
+
295
+ /** Flush whatever incomplete escape sequence the parser is holding. */
296
+ flushIncomplete = (): void => {
297
+ this.incompleteEscapeTimer = null;
298
+
299
+ if (!this.keyParseState.incomplete) return;
300
+
301
+ if (this.props.stdin.readableLength > 0) {
302
+ this.incompleteEscapeTimer = setTimeout(this.flushIncomplete, NORMAL_FLUSH_TIMEOUT_MS);
303
+ return;
304
+ }
305
+
306
+ // Run the parser with `input=null` to signal "no more bytes are
307
+ // coming, finalise whatever you have". Reuses all the regular parse
308
+ // dispatch code below.
309
+ this.processInput(null);
310
+ };
311
+
312
+ processInput = (input: string | Buffer | null): void => {
313
+ const [keys, newState] = parseMultipleKeypresses(this.keyParseState, input);
314
+ this.keyParseState = newState;
315
+
316
+ if (keys.length > 0) {
317
+ reconciler.discreteUpdates(processKeysInBatch, this, keys, undefined, undefined);
318
+ }
319
+
320
+ // Re-arm the flush timer if the parser is still holding a partial
321
+ // sequence. Cancel an existing timer first so the timeout reflects
322
+ // the most recent input (especially important when we transition
323
+ // into paste mode and need the longer timeout).
324
+ if (this.keyParseState.incomplete) {
325
+ if (this.incompleteEscapeTimer) {
326
+ clearTimeout(this.incompleteEscapeTimer);
327
+ }
328
+ this.incompleteEscapeTimer = setTimeout(
329
+ this.flushIncomplete,
330
+ this.keyParseState.mode === 'IN_PASTE' ? PASTE_FLUSH_TIMEOUT_MS : NORMAL_FLUSH_TIMEOUT_MS,
331
+ );
332
+ }
333
+ };
334
+ handleReadable = (): void => {
335
+ // Detect long stdin gaps (tmux attach, SSH reconnect, laptop wake).
336
+ // The terminal probably reset its DEC private modes during the gap,
337
+ // so we ask the host to re-assert mouse tracking and friends. One
338
+ // `Date.now()` per readable event covers every chunk we drain in
339
+ // this turn.
340
+ const now = Date.now();
341
+ if (now - this.lastStdinTime > STDIN_RESUME_GAP_MS) {
342
+ this.props.onStdinResume?.();
343
+ }
344
+ this.lastStdinTime = now;
345
+ try {
346
+ let chunk;
347
+ while ((chunk = this.props.stdin.read() as string | null) !== null) {
348
+ this.processInput(chunk);
349
+ }
350
+ } catch (error) {
351
+ // Bun's behaviour on an uncaught throw inside a stream 'readable'
352
+ // handler is to wedge the stream permanently — data stays
353
+ // buffered and 'readable' never re-fires. Logging + recovering
354
+ // here keeps the input pipeline healthy so subsequent keystrokes
355
+ // are still delivered.
356
+ logError(error);
357
+
358
+ // Re-attach the listener if Bun detached it as part of the
359
+ // exception path. Without this the session is alive but the
360
+ // stdin reader is silently dead — every key vanishes into the
361
+ // void until the user kills the process.
362
+ const { stdin } = this.props;
363
+ if (this.rawModeEnabledCount > 0 && !stdin.listeners('readable').includes(this.handleReadable)) {
364
+ logForDebugging('handleReadable: re-attaching stdin readable listener after error recovery', {
365
+ level: 'warn',
366
+ });
367
+ stdin.addListener('readable', this.handleReadable);
368
+ }
369
+ }
370
+ };
371
+ handleInput = (input: string | undefined): void => {
372
+ // Ctrl+C → exit. The Ctrl+Z (suspend) path used to live here too,
373
+ // but it now runs in `processKeysInBatch` against the parsed key so
374
+ // it works under both legacy (`\x1a`) and Kitty CSI-u (`\x1b[122;5u`)
375
+ // encodings — Ghostty, iTerm2, kitty, and WezTerm all emit the latter.
376
+ if (input === '\x03' && this.props.exitOnCtrlC) {
377
+ this.handleExit();
378
+ }
379
+ };
380
+ handleExit = (error?: Error): void => {
381
+ if (this.isRawModeSupported()) {
382
+ this.handleSetRawMode(false);
383
+ }
384
+ this.props.onExit(error);
385
+ };
386
+ handleTerminalFocus = (isFocused: boolean): void => {
387
+ // The focus store fans out to `TerminalFocusProvider` (context) and
388
+ // to the clock (interval speed), so we don't need to setState here
389
+ // — App.tsx is intentionally insulated from focus churn.
390
+ setTerminalFocused(isFocused);
391
+ };
392
+ handleSuspend = (): void => {
393
+ if (!this.isRawModeSupported()) {
394
+ return;
395
+ }
396
+
397
+ // Snapshot the raw-mode reference count so we can restore the
398
+ // exact same depth on resume — components that were holding raw
399
+ // mode at suspend time still expect it to be on when we come back.
400
+ const rawModeCountBeforeSuspend = this.rawModeEnabledCount;
401
+
402
+ // Fully unwind raw mode so the parent shell sees a normal cooked
403
+ // terminal while we're stopped.
404
+ while (this.rawModeEnabledCount > 0) {
405
+ this.handleSetRawMode(false);
406
+ }
407
+
408
+ // Restore cursor visibility, turn off focus reporting, and disable
409
+ // mouse tracking before stopping. `DISABLE_MOUSE_TRACKING` is a
410
+ // no-op if tracking was never enabled, but emitting it
411
+ // unconditionally is necessary: otherwise leftover SGR mouse
412
+ // sequences would arrive at the shell prompt and render as
413
+ // garbled text until the user runs `reset`.
414
+ if (this.props.stdout.isTTY) {
415
+ this.props.stdout.write(SHOW_CURSOR + DFE + DISABLE_MOUSE_TRACKING);
416
+ }
417
+
418
+ // Notify subscribers so app-level housekeeping (saving state,
419
+ // suspending background work) can run before we actually stop.
420
+ this.internal_eventEmitter.emit('suspend');
421
+
422
+ const resumeHandler = () => {
423
+ // Restore raw mode to the depth it was at when we suspended.
424
+ for (let i = 0; i < rawModeCountBeforeSuspend; i++) {
425
+ if (this.isRawModeSupported()) {
426
+ this.handleSetRawMode(true);
427
+ }
428
+ }
429
+
430
+ // Hide the cursor again (unless in accessibility mode) and
431
+ // re-enable focus reporting so the terminal is back in the state
432
+ // the app expected before suspension.
433
+ if (this.props.stdout.isTTY) {
434
+ if (!isEnvTruthy(process.env.REASONIX_ACCESSIBILITY)) {
435
+ this.props.stdout.write(HIDE_CURSOR);
436
+ }
437
+ this.props.stdout.write(EFE);
438
+ }
439
+
440
+ this.internal_eventEmitter.emit('resume');
441
+ process.removeListener('SIGCONT', resumeHandler);
442
+ };
443
+ process.on('SIGCONT', resumeHandler);
444
+ process.kill(process.pid, 'SIGSTOP');
445
+ };
446
+ }
447
+
448
+ function processKeysInBatch(app: App, items: ParsedInput[], _unused1: undefined, _unused2: undefined): void {
449
+ // Refresh the "last interaction" timestamp used by notification
450
+ // dampening and other idle-gated background work. Only real
451
+ // engagement counts: keys + mouse clicks/drags, but the passive
452
+ // no-button motion that mode-1003 emits when the user just brushes
453
+ // the cursor through the window does not — counting it would
454
+ // suppress idle notifications and defer housekeeping forever.
455
+ // Terminal responses (XTVERSION etc.) are automated and excluded.
456
+ if (items.some(i => i.kind === 'key' || (i.kind === 'mouse' && !isPassiveHover(i.button)))) {
457
+ updateLastInteractionTime();
458
+ }
459
+ for (const item of items) {
460
+ // Terminal responses (DECRPM, DA1, OSC replies, ...) are not user
461
+ // input — resolve any pending promise on the querier and stop.
462
+ if (item.kind === 'response') {
463
+ app.querier.onResponse(item.response);
464
+ continue;
465
+ }
466
+
467
+ // Mouse click/drag/motion. The terminal protocol sends 1-indexed
468
+ // columns and rows; the screen buffer uses 0-indexed, so the
469
+ // handler does the conversion.
470
+ if (item.kind === 'mouse') {
471
+ handleMouseEvent(app, item);
472
+ continue;
473
+ }
474
+ const sequence = item.sequence;
475
+
476
+ // DECSET 1004 terminal focus events.
477
+ if (sequence === FOCUS_IN) {
478
+ app.handleTerminalFocus(true);
479
+ const event = new TerminalFocusEvent('terminalfocus');
480
+ app.internal_eventEmitter.emit('terminalfocus', event);
481
+ continue;
482
+ }
483
+ if (sequence === FOCUS_OUT) {
484
+ app.handleTerminalFocus(false);
485
+ // Defensive selection close: if we never saw the mouse release
486
+ // (e.g. iTerm2 doesn't capture the pointer past the window
487
+ // bounds, so the release SGR never arrives), the focus-out event
488
+ // is our next observable signal that the drag is over. Without
489
+ // this, `isDragging` stays true forever and drag-to-scroll's
490
+ // timer keeps firing.
491
+ if (app.props.selection.isDragging) {
492
+ finishSelection(app.props.selection);
493
+ app.props.onSelectionChange();
494
+ }
495
+ const event = new TerminalFocusEvent('terminalblur');
496
+ app.internal_eventEmitter.emit('terminalblur', event);
497
+ continue;
498
+ }
499
+
500
+ // Receiving real input implies the terminal window is focused.
501
+ // Some emulators (notably tmux without `focus-events on`) never
502
+ // emit focus-in, so this is the only signal we'll get that they
503
+ // came back. Without it the clock stays at the blurred-tick rate
504
+ // and animations look choppy.
505
+ if (!getTerminalFocused()) {
506
+ setTerminalFocused(true);
507
+ }
508
+
509
+ // Ctrl+Z (suspend). Reading the parsed key here, rather than
510
+ // matching `\x1a` on the raw byte, handles both legacy and Kitty
511
+ // CSI-u (`\x1b[122;5u`) encodings.
512
+ if (item.name === 'z' && item.ctrl && SUPPORTS_SUSPEND) {
513
+ app.handleSuspend();
514
+ continue;
515
+ }
516
+ app.handleInput(sequence);
517
+ const event = new InputEvent(item);
518
+ app.internal_eventEmitter.emit('input', event);
519
+
520
+ // Mirror the input through the DOM tree so `onKeyDown` handlers on
521
+ // focused Boxes can react.
522
+ app.props.dispatchKeyboardEvent(item);
523
+ }
524
+ }
525
+
526
+ function isPassiveHover(button: number): boolean {
527
+ return (button & MOUSE_BUTTON_MOTION_BIT) !== 0
528
+ && (button & MOUSE_BUTTON_BASE_MASK) === MOUSE_BUTTON_BASE_RELEASE_LEGACY;
529
+ }
530
+
531
+ export function handleMouseEvent(app: App, m: ParsedMouse): void {
532
+ // Allow disabling click handling without disabling wheel scroll.
533
+ // Wheel events arrive through the keybinding system as
534
+ // 'wheelup'/'wheeldown', not here, so this gate doesn't affect them.
535
+ if (isMouseClicksDisabled()) return;
536
+ const sel = app.props.selection;
537
+ // Terminal protocol is 1-indexed; the screen buffer is 0-indexed.
538
+ const col = m.col - 1;
539
+ const row = m.row - 1;
540
+ const baseButton = m.button & MOUSE_BUTTON_BASE_MASK;
541
+ if (m.action === 'press') {
542
+ if ((m.button & MOUSE_BUTTON_MOTION_BIT) !== 0 && baseButton === MOUSE_BUTTON_BASE_RELEASE_LEGACY) {
543
+ // Mode-1003 motion with no button held: dispatch hover and stop.
544
+ // No selection logic, no click-count side effects.
545
+ //
546
+ // Lost-release recovery: if the user is "dragging" but we see
547
+ // no-button motion, the release happened outside the terminal
548
+ // window (iTerm2 doesn't capture the pointer past window
549
+ // bounds, so its SGR 'm' release never arrives). Finish the
550
+ // selection here so copy-on-select still fires. The FOCUS_OUT
551
+ // path handles "switched apps", but not "released past the edge,
552
+ // came back" — and tmux without `focus-events on` doesn't even
553
+ // emit focus changes, so this is the more reliable signal.
554
+ if (sel.isDragging) {
555
+ finishSelection(sel);
556
+ app.props.onSelectionChange();
557
+ }
558
+ if (col === app.lastHoverCol && row === app.lastHoverRow) return;
559
+ app.lastHoverCol = col;
560
+ app.lastHoverRow = row;
561
+ app.props.onHoverAt(col, row);
562
+ return;
563
+ }
564
+ if (baseButton !== 0) {
565
+ // Non-left press breaks the multi-click chain.
566
+ app.clickCount = 0;
567
+ return;
568
+ }
569
+ if ((m.button & MOUSE_BUTTON_MOTION_BIT) !== 0) {
570
+ // Drag motion: mode-aware extension (char / word / line).
571
+ // `onSelectionDrag` calls `notifySelectionChange` internally so
572
+ // we don't double-up by calling `onSelectionChange` here.
573
+ app.props.onSelectionDrag(col, row);
574
+ return;
575
+ }
576
+ // Lost-release fallback for mode-1002-only terminals (no motion
577
+ // reports when no button is held). Seeing a fresh press while
578
+ // `isDragging=true` means the previous release was dropped (cursor
579
+ // left the window). Finish that selection so copy-on-select fires
580
+ // before `startSelection` / `onMultiClick` clobbers the anchor.
581
+ // Mode-1003 terminals hit the no-button-motion recovery above
582
+ // instead, so this branch only fires on the older protocol.
583
+ if (sel.isDragging) {
584
+ finishSelection(sel);
585
+ app.props.onSelectionChange();
586
+ }
587
+ // Fresh left press. Detect multi-click here, on press, not on
588
+ // release. Two reasons:
589
+ //
590
+ // 1. The word/line highlight needs to appear immediately so the
591
+ // feedback feels native.
592
+ // 2. Detecting on release used to let double-click+drag fall
593
+ // through to char-mode selection, because by the time the
594
+ // second release came in we were already mid-drag.
595
+ const now = Date.now();
596
+ const nearLast = now - app.lastClickTime < MULTI_CLICK_TIMEOUT_MS
597
+ && Math.abs(col - app.lastClickCol) <= MULTI_CLICK_DISTANCE
598
+ && Math.abs(row - app.lastClickRow) <= MULTI_CLICK_DISTANCE;
599
+ app.clickCount = nearLast ? app.clickCount + 1 : 1;
600
+ app.lastClickTime = now;
601
+ app.lastClickCol = col;
602
+ app.lastClickRow = row;
603
+ if (app.clickCount >= 2) {
604
+ // Cancel any pending hyperlink-open from the prior click — this
605
+ // is a double-click, not a single-click on a link.
606
+ if (app.pendingHyperlinkTimer) {
607
+ clearTimeout(app.pendingHyperlinkTimer);
608
+ app.pendingHyperlinkTimer = null;
609
+ }
610
+ // Cap at 3 (line select) for quadruple-and-up clicks.
611
+ const count = app.clickCount === 2 ? 2 : 3;
612
+ app.props.onMultiClick(col, row, count);
613
+ return;
614
+ }
615
+ startSelection(sel, col, row);
616
+ // SGR bit 0x08 carries the alt-key state. (xterm.js wires its
617
+ // `altKey` field here, NOT `metaKey` — see the hyperlink guard
618
+ // below for the consequences.) On macOS xterm.js, receiving alt
619
+ // also implies `macOptionClickForcesSelection=OFF`; otherwise
620
+ // xterm.js would have consumed the event for native selection
621
+ // before forwarding it.
622
+ sel.lastPressHadAlt = (m.button & MOUSE_BUTTON_ALT_BIT) !== 0;
623
+ app.props.onSelectionChange();
624
+ return;
625
+ }
626
+
627
+ // Release path. End any drag even when the base button is non-zero:
628
+ // some terminals encode the release with the motion bit set, or with
629
+ // `button=3` "no button" (left over from the pre-SGR X10 encoding).
630
+ // Filtering those out would leave `isDragging=true` permanently and
631
+ // let drag-to-scroll's timer keep firing until the scroll boundary.
632
+ // For non-left releases we still only act when we ARE dragging, so an
633
+ // unrelated middle/right release doesn't touch the selection.
634
+ if (baseButton !== 0) {
635
+ if (!sel.isDragging) return;
636
+ finishSelection(sel);
637
+ app.props.onSelectionChange();
638
+ return;
639
+ }
640
+ finishSelection(sel);
641
+ // Note: we deliberately do NOT reset `clickCount` on a release that
642
+ // followed a drag. This matches NSEvent.clickCount semantics — an
643
+ // intervening drag doesn't break the click chain — and the practical
644
+ // payoff is that trackpad jitter during an intended double-click
645
+ // (press → wobble → release → press) resolves to word-select instead
646
+ // of degrading to a fresh single click. The `nearLast` window
647
+ // (`MULTI_CLICK_TIMEOUT_MS` / `MULTI_CLICK_DISTANCE`) keeps the
648
+ // effect bounded; a deliberate long drag past that window just
649
+ // starts a fresh chain.
650
+ //
651
+ // Click semantics by mode:
652
+ // - char mode: press sets anchor, focus stays null until drag, so
653
+ // a press+release with no drag is `hasSelection=false` → click.
654
+ // - word/line mode: the press already set both anchor and focus
655
+ // (`hasSelection=true`), so release just keeps the highlight.
656
+ //
657
+ // The `sel.anchor` guard handles orphaned releases — e.g. the button
658
+ // was already held when mouse tracking was enabled, so we get a
659
+ // release with no prior press recorded.
660
+ if (!hasSelection(sel) && sel.anchor) {
661
+ // Single click: dispatch DOM `onClick` immediately. Cursor
662
+ // repositioning and similar handlers are latency-sensitive and
663
+ // shouldn't be deferred. If no DOM handler consumed the click, we
664
+ // fall through to hyperlink handling, which IS deferred so a
665
+ // second click can cancel it.
666
+ if (!app.props.onClickAt(col, row)) {
667
+ // Resolve the URL synchronously while the screen buffer still
668
+ // shows what the user clicked. Only the browser-open itself is
669
+ // deferred — that's what double-click can cancel.
670
+ const url = app.props.getHyperlinkAt(col, row);
671
+ // xterm.js (VS Code, Cursor, Windsurf, ...) ships its own OSC 8
672
+ // handler that fires on Cmd+click *without consuming the mouse
673
+ // event*: Linkifier._handleMouseUp calls link.activate() but
674
+ // never preventDefault/stopPropagation, so the click is still
675
+ // forwarded to the pty as SGR. If we opened the URL too, both
676
+ // VS Code's terminalLinkManager AND we would open it — twice.
677
+ // We can't filter by Cmd from this end: xterm.js drops metaKey
678
+ // before SGR encoding (its ICoreMouseEvent has no meta field;
679
+ // the SGR bit we call "meta" is wired to alt). The least-bad
680
+ // option is to defer entirely to xterm.js when we know we're
681
+ // inside it; Cmd+click is the native UX there anyway.
682
+ //
683
+ // TERM_PROGRAM='vscode' is the synchronous fast-path; the
684
+ // `isXtermJs()` fallback uses the XTVERSION probe result, which
685
+ // catches SSH sessions and non-VS Code embedders like Hyper.
686
+ if (url && process.env.TERM_PROGRAM !== 'vscode' && !isXtermJs()) {
687
+ // Clicking a second link supersedes the first — only the
688
+ // most recent click opens.
689
+ if (app.pendingHyperlinkTimer) {
690
+ clearTimeout(app.pendingHyperlinkTimer);
691
+ }
692
+ app.pendingHyperlinkTimer = setTimeout((app, url) => {
693
+ app.pendingHyperlinkTimer = null;
694
+ app.props.onOpenHyperlink(url);
695
+ }, MULTI_CLICK_TIMEOUT_MS, app, url);
696
+ }
697
+ }
698
+ }
699
+ app.props.onSelectionChange();
700
+ }