@inhuman.tools/quickdraw 0.0.0-stage → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +101 -2
  3. package/aurora.vert +168 -0
  4. package/dist/bench/host.d.ts +62 -0
  5. package/dist/bench/host.d.ts.map +1 -0
  6. package/dist/bench/host.js +77 -0
  7. package/dist/bench/host.js.map +1 -0
  8. package/dist/bench/main.d.ts +6 -0
  9. package/dist/bench/main.d.ts.map +1 -0
  10. package/dist/bench/main.js +118 -0
  11. package/dist/bench/main.js.map +1 -0
  12. package/dist/bench/model.d.ts +36 -0
  13. package/dist/bench/model.d.ts.map +1 -0
  14. package/dist/bench/model.js +112 -0
  15. package/dist/bench/model.js.map +1 -0
  16. package/dist/bench/tea.d.ts +14 -0
  17. package/dist/bench/tea.d.ts.map +1 -0
  18. package/dist/bench/tea.js +6 -0
  19. package/dist/bench/tea.js.map +1 -0
  20. package/dist/bench/view.d.ts +9 -0
  21. package/dist/bench/view.d.ts.map +1 -0
  22. package/dist/bench/view.js +88 -0
  23. package/dist/bench/view.js.map +1 -0
  24. package/dist/bench/worker.d.ts +6 -0
  25. package/dist/bench/worker.d.ts.map +1 -0
  26. package/dist/bench/worker.js +46 -0
  27. package/dist/bench/worker.js.map +1 -0
  28. package/dist/buffer/bgfx-mark.d.ts +32 -0
  29. package/dist/buffer/bgfx-mark.d.ts.map +1 -0
  30. package/dist/buffer/bgfx-mark.js +43 -0
  31. package/dist/buffer/bgfx-mark.js.map +1 -0
  32. package/dist/buffer/index.d.ts +191 -0
  33. package/dist/buffer/index.d.ts.map +1 -0
  34. package/dist/buffer/index.js +353 -0
  35. package/dist/buffer/index.js.map +1 -0
  36. package/dist/capabilities/env.d.ts +23 -0
  37. package/dist/capabilities/env.d.ts.map +1 -0
  38. package/dist/capabilities/env.js +35 -0
  39. package/dist/capabilities/env.js.map +1 -0
  40. package/dist/capabilities/index.d.ts +13 -0
  41. package/dist/capabilities/index.d.ts.map +1 -0
  42. package/dist/capabilities/index.js +13 -0
  43. package/dist/capabilities/index.js.map +1 -0
  44. package/dist/capabilities/parse.d.ts +41 -0
  45. package/dist/capabilities/parse.d.ts.map +1 -0
  46. package/dist/capabilities/parse.js +86 -0
  47. package/dist/capabilities/parse.js.map +1 -0
  48. package/dist/capabilities/probe.d.ts +37 -0
  49. package/dist/capabilities/probe.d.ts.map +1 -0
  50. package/dist/capabilities/probe.js +75 -0
  51. package/dist/capabilities/probe.js.map +1 -0
  52. package/dist/capabilities/sequences.d.ts +33 -0
  53. package/dist/capabilities/sequences.d.ts.map +1 -0
  54. package/dist/capabilities/sequences.js +36 -0
  55. package/dist/capabilities/sequences.js.map +1 -0
  56. package/dist/capabilities/types.d.ts +25 -0
  57. package/dist/capabilities/types.d.ts.map +1 -0
  58. package/dist/capabilities/types.js +5 -0
  59. package/dist/capabilities/types.js.map +1 -0
  60. package/dist/index.d.ts +11 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +11 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/input/decode.d.ts +167 -0
  65. package/dist/input/decode.d.ts.map +1 -0
  66. package/dist/input/decode.js +825 -0
  67. package/dist/input/decode.js.map +1 -0
  68. package/dist/input/draft.d.ts +85 -0
  69. package/dist/input/draft.d.ts.map +1 -0
  70. package/dist/input/draft.js +276 -0
  71. package/dist/input/draft.js.map +1 -0
  72. package/dist/input/index.d.ts +3 -0
  73. package/dist/input/index.d.ts.map +1 -0
  74. package/dist/input/index.js +3 -0
  75. package/dist/input/index.js.map +1 -0
  76. package/dist/input/prompt-blocks.d.ts +58 -0
  77. package/dist/input/prompt-blocks.d.ts.map +1 -0
  78. package/dist/input/prompt-blocks.js +48 -0
  79. package/dist/input/prompt-blocks.js.map +1 -0
  80. package/dist/input/rich-draft.d.ts +46 -0
  81. package/dist/input/rich-draft.d.ts.map +1 -0
  82. package/dist/input/rich-draft.js +391 -0
  83. package/dist/input/rich-draft.js.map +1 -0
  84. package/dist/input/rich-hit.d.ts +17 -0
  85. package/dist/input/rich-hit.d.ts.map +1 -0
  86. package/dist/input/rich-hit.js +89 -0
  87. package/dist/input/rich-hit.js.map +1 -0
  88. package/dist/input/rich-intake.d.ts +16 -0
  89. package/dist/input/rich-intake.d.ts.map +1 -0
  90. package/dist/input/rich-intake.js +22 -0
  91. package/dist/input/rich-intake.js.map +1 -0
  92. package/dist/input/rich-paint.d.ts +13 -0
  93. package/dist/input/rich-paint.d.ts.map +1 -0
  94. package/dist/input/rich-paint.js +18 -0
  95. package/dist/input/rich-paint.js.map +1 -0
  96. package/dist/internals/bgfx/index.d.ts +17 -0
  97. package/dist/internals/bgfx/index.d.ts.map +1 -0
  98. package/dist/internals/bgfx/index.js +17 -0
  99. package/dist/internals/bgfx/index.js.map +1 -0
  100. package/dist/internals/bgfx/materialize.d.ts +31 -0
  101. package/dist/internals/bgfx/materialize.d.ts.map +1 -0
  102. package/dist/internals/bgfx/materialize.js +117 -0
  103. package/dist/internals/bgfx/materialize.js.map +1 -0
  104. package/dist/internals/bgfx/opacity.d.ts +37 -0
  105. package/dist/internals/bgfx/opacity.d.ts.map +1 -0
  106. package/dist/internals/bgfx/opacity.js +76 -0
  107. package/dist/internals/bgfx/opacity.js.map +1 -0
  108. package/dist/internals/bgfx/registry.d.ts +13 -0
  109. package/dist/internals/bgfx/registry.d.ts.map +1 -0
  110. package/dist/internals/bgfx/registry.js +24 -0
  111. package/dist/internals/bgfx/registry.js.map +1 -0
  112. package/dist/internals/bgfx/sab-layout.d.ts +61 -0
  113. package/dist/internals/bgfx/sab-layout.d.ts.map +1 -0
  114. package/dist/internals/bgfx/sab-layout.js +107 -0
  115. package/dist/internals/bgfx/sab-layout.js.map +1 -0
  116. package/dist/internals/bgfx/shader-frame-host.d.ts +22 -0
  117. package/dist/internals/bgfx/shader-frame-host.d.ts.map +1 -0
  118. package/dist/internals/bgfx/shader-frame-host.js +165 -0
  119. package/dist/internals/bgfx/shader-frame-host.js.map +1 -0
  120. package/dist/internals/bgfx/shadertoy-catalog.d.ts +41 -0
  121. package/dist/internals/bgfx/shadertoy-catalog.d.ts.map +1 -0
  122. package/dist/internals/bgfx/shadertoy-catalog.js +200 -0
  123. package/dist/internals/bgfx/shadertoy-catalog.js.map +1 -0
  124. package/dist/internals/bgfx/shadertoy-gl.d.ts +38 -0
  125. package/dist/internals/bgfx/shadertoy-gl.d.ts.map +1 -0
  126. package/dist/internals/bgfx/shadertoy-gl.js +283 -0
  127. package/dist/internals/bgfx/shadertoy-gl.js.map +1 -0
  128. package/dist/internals/bgfx/types.d.ts +51 -0
  129. package/dist/internals/bgfx/types.d.ts.map +1 -0
  130. package/dist/internals/bgfx/types.js +14 -0
  131. package/dist/internals/bgfx/types.js.map +1 -0
  132. package/dist/internals/bgfx-worker.d.ts +6 -0
  133. package/dist/internals/bgfx-worker.d.ts.map +1 -0
  134. package/dist/internals/bgfx-worker.js +131 -0
  135. package/dist/internals/bgfx-worker.js.map +1 -0
  136. package/dist/layout/birth.d.ts +77 -0
  137. package/dist/layout/birth.d.ts.map +1 -0
  138. package/dist/layout/birth.js +148 -0
  139. package/dist/layout/birth.js.map +1 -0
  140. package/dist/layout/children.d.ts +5 -0
  141. package/dist/layout/children.d.ts.map +1 -0
  142. package/dist/layout/children.js +19 -0
  143. package/dist/layout/children.js.map +1 -0
  144. package/dist/layout/chrome_frame.d.ts +254 -0
  145. package/dist/layout/chrome_frame.d.ts.map +1 -0
  146. package/dist/layout/chrome_frame.js +1080 -0
  147. package/dist/layout/chrome_frame.js.map +1 -0
  148. package/dist/layout/chrome_mask.d.ts +40 -0
  149. package/dist/layout/chrome_mask.d.ts.map +1 -0
  150. package/dist/layout/chrome_mask.js +150 -0
  151. package/dist/layout/chrome_mask.js.map +1 -0
  152. package/dist/layout/engine.d.ts +49 -0
  153. package/dist/layout/engine.d.ts.map +1 -0
  154. package/dist/layout/engine.js +1269 -0
  155. package/dist/layout/engine.js.map +1 -0
  156. package/dist/layout/flex.d.ts +36 -0
  157. package/dist/layout/flex.d.ts.map +1 -0
  158. package/dist/layout/flex.js +111 -0
  159. package/dist/layout/flex.js.map +1 -0
  160. package/dist/layout/grid.d.ts +36 -0
  161. package/dist/layout/grid.d.ts.map +1 -0
  162. package/dist/layout/grid.js +126 -0
  163. package/dist/layout/grid.js.map +1 -0
  164. package/dist/layout/index.d.ts +30 -0
  165. package/dist/layout/index.d.ts.map +1 -0
  166. package/dist/layout/index.js +30 -0
  167. package/dist/layout/index.js.map +1 -0
  168. package/dist/layout/indication.d.ts +34 -0
  169. package/dist/layout/indication.d.ts.map +1 -0
  170. package/dist/layout/indication.js +68 -0
  171. package/dist/layout/indication.js.map +1 -0
  172. package/dist/layout/length.d.ts +18 -0
  173. package/dist/layout/length.d.ts.map +1 -0
  174. package/dist/layout/length.js +24 -0
  175. package/dist/layout/length.js.map +1 -0
  176. package/dist/layout/live_paint.d.ts +145 -0
  177. package/dist/layout/live_paint.d.ts.map +1 -0
  178. package/dist/layout/live_paint.js +255 -0
  179. package/dist/layout/live_paint.js.map +1 -0
  180. package/dist/layout/markdown.d.ts +22 -0
  181. package/dist/layout/markdown.d.ts.map +1 -0
  182. package/dist/layout/markdown.js +167 -0
  183. package/dist/layout/markdown.js.map +1 -0
  184. package/dist/layout/measure.d.ts +46 -0
  185. package/dist/layout/measure.d.ts.map +1 -0
  186. package/dist/layout/measure.js +307 -0
  187. package/dist/layout/measure.js.map +1 -0
  188. package/dist/layout/paint-hotkey.d.ts +45 -0
  189. package/dist/layout/paint-hotkey.d.ts.map +1 -0
  190. package/dist/layout/paint-hotkey.js +152 -0
  191. package/dist/layout/paint-hotkey.js.map +1 -0
  192. package/dist/layout/paint.d.ts +25 -0
  193. package/dist/layout/paint.d.ts.map +1 -0
  194. package/dist/layout/paint.js +189 -0
  195. package/dist/layout/paint.js.map +1 -0
  196. package/dist/layout/paint_theme.d.ts +85 -0
  197. package/dist/layout/paint_theme.d.ts.map +1 -0
  198. package/dist/layout/paint_theme.js +76 -0
  199. package/dist/layout/paint_theme.js.map +1 -0
  200. package/dist/layout/progress.d.ts +31 -0
  201. package/dist/layout/progress.d.ts.map +1 -0
  202. package/dist/layout/progress.js +83 -0
  203. package/dist/layout/progress.js.map +1 -0
  204. package/dist/layout/selection.d.ts +136 -0
  205. package/dist/layout/selection.d.ts.map +1 -0
  206. package/dist/layout/selection.js +312 -0
  207. package/dist/layout/selection.js.map +1 -0
  208. package/dist/layout/selection_gesture.d.ts +88 -0
  209. package/dist/layout/selection_gesture.d.ts.map +1 -0
  210. package/dist/layout/selection_gesture.js +239 -0
  211. package/dist/layout/selection_gesture.js.map +1 -0
  212. package/dist/layout/selection_paint.d.ts +47 -0
  213. package/dist/layout/selection_paint.d.ts.map +1 -0
  214. package/dist/layout/selection_paint.js +320 -0
  215. package/dist/layout/selection_paint.js.map +1 -0
  216. package/dist/layout/serialize.d.ts +49 -0
  217. package/dist/layout/serialize.d.ts.map +1 -0
  218. package/dist/layout/serialize.js +437 -0
  219. package/dist/layout/serialize.js.map +1 -0
  220. package/dist/layout/squeeze.d.ts +58 -0
  221. package/dist/layout/squeeze.d.ts.map +1 -0
  222. package/dist/layout/squeeze.js +239 -0
  223. package/dist/layout/squeeze.js.map +1 -0
  224. package/dist/layout/text.d.ts +44 -0
  225. package/dist/layout/text.d.ts.map +1 -0
  226. package/dist/layout/text.js +230 -0
  227. package/dist/layout/text.js.map +1 -0
  228. package/dist/layout/theme_store.d.ts +21 -0
  229. package/dist/layout/theme_store.d.ts.map +1 -0
  230. package/dist/layout/theme_store.js +133 -0
  231. package/dist/layout/theme_store.js.map +1 -0
  232. package/dist/layout/types.d.ts +564 -0
  233. package/dist/layout/types.d.ts.map +1 -0
  234. package/dist/layout/types.js +2 -0
  235. package/dist/layout/types.js.map +1 -0
  236. package/dist/layout/visual_draft.d.ts +60 -0
  237. package/dist/layout/visual_draft.d.ts.map +1 -0
  238. package/dist/layout/visual_draft.js +199 -0
  239. package/dist/layout/visual_draft.js.map +1 -0
  240. package/dist/lexicon/color.d.ts +22 -0
  241. package/dist/lexicon/color.d.ts.map +1 -0
  242. package/dist/lexicon/color.js +6 -0
  243. package/dist/lexicon/color.js.map +1 -0
  244. package/dist/lexicon/index.d.ts +15 -0
  245. package/dist/lexicon/index.d.ts.map +1 -0
  246. package/dist/lexicon/index.js +15 -0
  247. package/dist/lexicon/index.js.map +1 -0
  248. package/dist/lexicon/prominence.d.ts +46 -0
  249. package/dist/lexicon/prominence.d.ts.map +1 -0
  250. package/dist/lexicon/prominence.js +73 -0
  251. package/dist/lexicon/prominence.js.map +1 -0
  252. package/dist/lexicon/quarantine.d.ts +21 -0
  253. package/dist/lexicon/quarantine.d.ts.map +1 -0
  254. package/dist/lexicon/quarantine.js +15 -0
  255. package/dist/lexicon/quarantine.js.map +1 -0
  256. package/dist/lexicon/roles.d.ts +37 -0
  257. package/dist/lexicon/roles.d.ts.map +1 -0
  258. package/dist/lexicon/roles.js +52 -0
  259. package/dist/lexicon/roles.js.map +1 -0
  260. package/dist/lexicon/tiers.d.ts +18 -0
  261. package/dist/lexicon/tiers.d.ts.map +1 -0
  262. package/dist/lexicon/tiers.js +17 -0
  263. package/dist/lexicon/tiers.js.map +1 -0
  264. package/dist/measure/index.d.ts +43 -0
  265. package/dist/measure/index.d.ts.map +1 -0
  266. package/dist/measure/index.js +120 -0
  267. package/dist/measure/index.js.map +1 -0
  268. package/dist/render.d.ts +72 -0
  269. package/dist/render.d.ts.map +1 -0
  270. package/dist/render.js +164 -0
  271. package/dist/render.js.map +1 -0
  272. package/dist/runtime/agents_keys.d.ts +8 -0
  273. package/dist/runtime/agents_keys.d.ts.map +1 -0
  274. package/dist/runtime/agents_keys.js +24 -0
  275. package/dist/runtime/agents_keys.js.map +1 -0
  276. package/dist/runtime/agents_peek.d.ts +44 -0
  277. package/dist/runtime/agents_peek.d.ts.map +1 -0
  278. package/dist/runtime/agents_peek.js +96 -0
  279. package/dist/runtime/agents_peek.js.map +1 -0
  280. package/dist/runtime/agents_preview.d.ts +25 -0
  281. package/dist/runtime/agents_preview.d.ts.map +1 -0
  282. package/dist/runtime/agents_preview.js +118 -0
  283. package/dist/runtime/agents_preview.js.map +1 -0
  284. package/dist/runtime/box_bus.d.ts +144 -0
  285. package/dist/runtime/box_bus.d.ts.map +1 -0
  286. package/dist/runtime/box_bus.js +74 -0
  287. package/dist/runtime/box_bus.js.map +1 -0
  288. package/dist/runtime/clipboard-image.d.ts +20 -0
  289. package/dist/runtime/clipboard-image.d.ts.map +1 -0
  290. package/dist/runtime/clipboard-image.js +62 -0
  291. package/dist/runtime/clipboard-image.js.map +1 -0
  292. package/dist/runtime/copy_toast.d.ts +46 -0
  293. package/dist/runtime/copy_toast.d.ts.map +1 -0
  294. package/dist/runtime/copy_toast.js +117 -0
  295. package/dist/runtime/copy_toast.js.map +1 -0
  296. package/dist/runtime/echo.d.ts +41 -0
  297. package/dist/runtime/echo.d.ts.map +1 -0
  298. package/dist/runtime/echo.js +112 -0
  299. package/dist/runtime/echo.js.map +1 -0
  300. package/dist/runtime/frame.d.ts +79 -0
  301. package/dist/runtime/frame.d.ts.map +1 -0
  302. package/dist/runtime/frame.js +258 -0
  303. package/dist/runtime/frame.js.map +1 -0
  304. package/dist/runtime/index.d.ts +16 -0
  305. package/dist/runtime/index.d.ts.map +1 -0
  306. package/dist/runtime/index.js +16 -0
  307. package/dist/runtime/index.js.map +1 -0
  308. package/dist/runtime/key_buffer.d.ts +19 -0
  309. package/dist/runtime/key_buffer.d.ts.map +1 -0
  310. package/dist/runtime/key_buffer.js +24 -0
  311. package/dist/runtime/key_buffer.js.map +1 -0
  312. package/dist/runtime/keys.d.ts +66 -0
  313. package/dist/runtime/keys.d.ts.map +1 -0
  314. package/dist/runtime/keys.js +220 -0
  315. package/dist/runtime/keys.js.map +1 -0
  316. package/dist/runtime/paint_snapshot.d.ts +9 -0
  317. package/dist/runtime/paint_snapshot.d.ts.map +1 -0
  318. package/dist/runtime/paint_snapshot.js +8 -0
  319. package/dist/runtime/paint_snapshot.js.map +1 -0
  320. package/dist/runtime/paint_source.d.ts +266 -0
  321. package/dist/runtime/paint_source.d.ts.map +1 -0
  322. package/dist/runtime/paint_source.js +532 -0
  323. package/dist/runtime/paint_source.js.map +1 -0
  324. package/dist/runtime/present_loop.d.ts +11 -0
  325. package/dist/runtime/present_loop.d.ts.map +1 -0
  326. package/dist/runtime/present_loop.js +46 -0
  327. package/dist/runtime/present_loop.js.map +1 -0
  328. package/dist/runtime/present_profile.d.ts +58 -0
  329. package/dist/runtime/present_profile.d.ts.map +1 -0
  330. package/dist/runtime/present_profile.js +130 -0
  331. package/dist/runtime/present_profile.js.map +1 -0
  332. package/dist/runtime/raster.d.ts +24 -0
  333. package/dist/runtime/raster.d.ts.map +1 -0
  334. package/dist/runtime/raster.js +43 -0
  335. package/dist/runtime/raster.js.map +1 -0
  336. package/dist/runtime/renderer.d.ts +151 -0
  337. package/dist/runtime/renderer.d.ts.map +1 -0
  338. package/dist/runtime/renderer.js +1607 -0
  339. package/dist/runtime/renderer.js.map +1 -0
  340. package/dist/runtime/screenshot.d.ts +9 -0
  341. package/dist/runtime/screenshot.d.ts.map +1 -0
  342. package/dist/runtime/screenshot.js +111 -0
  343. package/dist/runtime/screenshot.js.map +1 -0
  344. package/dist/runtime/selection_host.d.ts +41 -0
  345. package/dist/runtime/selection_host.d.ts.map +1 -0
  346. package/dist/runtime/selection_host.js +190 -0
  347. package/dist/runtime/selection_host.js.map +1 -0
  348. package/dist/runtime/stderr_hold.d.ts +16 -0
  349. package/dist/runtime/stderr_hold.d.ts.map +1 -0
  350. package/dist/runtime/stderr_hold.js +23 -0
  351. package/dist/runtime/stderr_hold.js.map +1 -0
  352. package/dist/runtime/thought_birth.d.ts +25 -0
  353. package/dist/runtime/thought_birth.d.ts.map +1 -0
  354. package/dist/runtime/thought_birth.js +122 -0
  355. package/dist/runtime/thought_birth.js.map +1 -0
  356. package/dist/runtime/thought_collapsed.d.ts +35 -0
  357. package/dist/runtime/thought_collapsed.d.ts.map +1 -0
  358. package/dist/runtime/thought_collapsed.js +94 -0
  359. package/dist/runtime/thought_collapsed.js.map +1 -0
  360. package/dist/runtime/tty.d.ts +58 -0
  361. package/dist/runtime/tty.d.ts.map +1 -0
  362. package/dist/runtime/tty.js +130 -0
  363. package/dist/runtime/tty.js.map +1 -0
  364. package/dist/theme/ansi16.d.ts +34 -0
  365. package/dist/theme/ansi16.d.ts.map +1 -0
  366. package/dist/theme/ansi16.js +181 -0
  367. package/dist/theme/ansi16.js.map +1 -0
  368. package/dist/theme/ansi256.d.ts +15 -0
  369. package/dist/theme/ansi256.d.ts.map +1 -0
  370. package/dist/theme/ansi256.js +94 -0
  371. package/dist/theme/ansi256.js.map +1 -0
  372. package/dist/theme/ground.d.ts +8 -0
  373. package/dist/theme/ground.d.ts.map +1 -0
  374. package/dist/theme/ground.js +11 -0
  375. package/dist/theme/ground.js.map +1 -0
  376. package/dist/theme/index.d.ts +10 -0
  377. package/dist/theme/index.d.ts.map +1 -0
  378. package/dist/theme/index.js +10 -0
  379. package/dist/theme/index.js.map +1 -0
  380. package/dist/theme/region.d.ts +42 -0
  381. package/dist/theme/region.d.ts.map +1 -0
  382. package/dist/theme/region.js +105 -0
  383. package/dist/theme/region.js.map +1 -0
  384. package/dist/theme/resolver.d.ts +126 -0
  385. package/dist/theme/resolver.d.ts.map +1 -0
  386. package/dist/theme/resolver.js +366 -0
  387. package/dist/theme/resolver.js.map +1 -0
  388. package/dist/theme/salience.d.ts +90 -0
  389. package/dist/theme/salience.d.ts.map +1 -0
  390. package/dist/theme/salience.js +208 -0
  391. package/dist/theme/salience.js.map +1 -0
  392. package/dist/theme/seeds.d.ts +113 -0
  393. package/dist/theme/seeds.d.ts.map +1 -0
  394. package/dist/theme/seeds.js +52 -0
  395. package/dist/theme/seeds.js.map +1 -0
  396. package/dist/theme/selection.d.ts +94 -0
  397. package/dist/theme/selection.d.ts.map +1 -0
  398. package/dist/theme/selection.js +135 -0
  399. package/dist/theme/selection.js.map +1 -0
  400. package/dist/theme/theme.d.ts +41 -0
  401. package/dist/theme/theme.d.ts.map +1 -0
  402. package/dist/theme/theme.js +34 -0
  403. package/dist/theme/theme.js.map +1 -0
  404. package/dist/widgets/composer-caret.d.ts +47 -0
  405. package/dist/widgets/composer-caret.d.ts.map +1 -0
  406. package/dist/widgets/composer-caret.js +90 -0
  407. package/dist/widgets/composer-caret.js.map +1 -0
  408. package/dist/widgets/composer-click.d.ts +30 -0
  409. package/dist/widgets/composer-click.d.ts.map +1 -0
  410. package/dist/widgets/composer-click.js +89 -0
  411. package/dist/widgets/composer-click.js.map +1 -0
  412. package/dist/widgets/composer-command.d.ts +64 -0
  413. package/dist/widgets/composer-command.d.ts.map +1 -0
  414. package/dist/widgets/composer-command.js +127 -0
  415. package/dist/widgets/composer-command.js.map +1 -0
  416. package/dist/widgets/composer-frame.d.ts +74 -0
  417. package/dist/widgets/composer-frame.d.ts.map +1 -0
  418. package/dist/widgets/composer-frame.js +284 -0
  419. package/dist/widgets/composer-frame.js.map +1 -0
  420. package/dist/widgets/composer-picker.d.ts +89 -0
  421. package/dist/widgets/composer-picker.d.ts.map +1 -0
  422. package/dist/widgets/composer-picker.js +240 -0
  423. package/dist/widgets/composer-picker.js.map +1 -0
  424. package/dist/widgets/diff.d.ts +11 -0
  425. package/dist/widgets/diff.d.ts.map +1 -0
  426. package/dist/widgets/diff.js +19 -0
  427. package/dist/widgets/diff.js.map +1 -0
  428. package/dist/widgets/expand.d.ts +28 -0
  429. package/dist/widgets/expand.d.ts.map +1 -0
  430. package/dist/widgets/expand.js +94 -0
  431. package/dist/widgets/expand.js.map +1 -0
  432. package/dist/widgets/index.d.ts +126 -0
  433. package/dist/widgets/index.d.ts.map +1 -0
  434. package/dist/widgets/index.js +455 -0
  435. package/dist/widgets/index.js.map +1 -0
  436. package/dist/widgets/internals/arrival-lang.d.ts +88 -0
  437. package/dist/widgets/internals/arrival-lang.d.ts.map +1 -0
  438. package/dist/widgets/internals/arrival-lang.js +211 -0
  439. package/dist/widgets/internals/arrival-lang.js.map +1 -0
  440. package/dist/widgets/internals/diff-expand.d.ts +93 -0
  441. package/dist/widgets/internals/diff-expand.d.ts.map +1 -0
  442. package/dist/widgets/internals/diff-expand.js +1106 -0
  443. package/dist/widgets/internals/diff-expand.js.map +1 -0
  444. package/dist/widgets/internals/embedded-syntax.d.ts +62 -0
  445. package/dist/widgets/internals/embedded-syntax.d.ts.map +1 -0
  446. package/dist/widgets/internals/embedded-syntax.js +465 -0
  447. package/dist/widgets/internals/embedded-syntax.js.map +1 -0
  448. package/dist/widgets/internals/markdown-expand.d.ts +57 -0
  449. package/dist/widgets/internals/markdown-expand.d.ts.map +1 -0
  450. package/dist/widgets/internals/markdown-expand.js +980 -0
  451. package/dist/widgets/internals/markdown-expand.js.map +1 -0
  452. package/dist/widgets/internals/overlay-syntax.d.ts +24 -0
  453. package/dist/widgets/internals/overlay-syntax.d.ts.map +1 -0
  454. package/dist/widgets/internals/overlay-syntax.js +90 -0
  455. package/dist/widgets/internals/overlay-syntax.js.map +1 -0
  456. package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts +6 -0
  457. package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts.map +1 -0
  458. package/dist/widgets/internals/pierre-parse/cleanLastNewline.js +8 -0
  459. package/dist/widgets/internals/pierre-parse/cleanLastNewline.js.map +1 -0
  460. package/dist/widgets/internals/pierre-parse/constants.d.ts +13 -0
  461. package/dist/widgets/internals/pierre-parse/constants.d.ts.map +1 -0
  462. package/dist/widgets/internals/pierre-parse/constants.js +13 -0
  463. package/dist/widgets/internals/pierre-parse/constants.js.map +1 -0
  464. package/dist/widgets/internals/pierre-parse/detachString.d.ts +3 -0
  465. package/dist/widgets/internals/pierre-parse/detachString.d.ts.map +1 -0
  466. package/dist/widgets/internals/pierre-parse/detachString.js +24 -0
  467. package/dist/widgets/internals/pierre-parse/detachString.js.map +1 -0
  468. package/dist/widgets/internals/pierre-parse/index.d.ts +8 -0
  469. package/dist/widgets/internals/pierre-parse/index.d.ts.map +1 -0
  470. package/dist/widgets/internals/pierre-parse/index.js +8 -0
  471. package/dist/widgets/internals/pierre-parse/index.js.map +1 -0
  472. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts +15 -0
  473. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts.map +1 -0
  474. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js +39 -0
  475. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js.map +1 -0
  476. package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts +11 -0
  477. package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts.map +1 -0
  478. package/dist/widgets/internals/pierre-parse/parsePatchFiles.js +621 -0
  479. package/dist/widgets/internals/pierre-parse/parsePatchFiles.js.map +1 -0
  480. package/dist/widgets/internals/pierre-parse/types.d.ts +73 -0
  481. package/dist/widgets/internals/pierre-parse/types.d.ts.map +1 -0
  482. package/dist/widgets/internals/pierre-parse/types.js +7 -0
  483. package/dist/widgets/internals/pierre-parse/types.js.map +1 -0
  484. package/dist/widgets/internals/syntax.d.ts +55 -0
  485. package/dist/widgets/internals/syntax.d.ts.map +1 -0
  486. package/dist/widgets/internals/syntax.js +261 -0
  487. package/dist/widgets/internals/syntax.js.map +1 -0
  488. package/dist/widgets/markdown.d.ts +14 -0
  489. package/dist/widgets/markdown.d.ts.map +1 -0
  490. package/dist/widgets/markdown.js +9 -0
  491. package/dist/widgets/markdown.js.map +1 -0
  492. package/dist/widgets/shadow-stream.d.ts +88 -0
  493. package/dist/widgets/shadow-stream.d.ts.map +1 -0
  494. package/dist/widgets/shadow-stream.js +359 -0
  495. package/dist/widgets/shadow-stream.js.map +1 -0
  496. package/dist/widgets/speech.d.ts +36 -0
  497. package/dist/widgets/speech.d.ts.map +1 -0
  498. package/dist/widgets/speech.js +238 -0
  499. package/dist/widgets/speech.js.map +1 -0
  500. package/dist/widgets/stream-birth.d.ts +13 -0
  501. package/dist/widgets/stream-birth.d.ts.map +1 -0
  502. package/dist/widgets/stream-birth.js +70 -0
  503. package/dist/widgets/stream-birth.js.map +1 -0
  504. package/dist/widgets/syntax-boot.d.ts +25 -0
  505. package/dist/widgets/syntax-boot.d.ts.map +1 -0
  506. package/dist/widgets/syntax-boot.js +181 -0
  507. package/dist/widgets/syntax-boot.js.map +1 -0
  508. package/dist/widgets/text.d.ts +16 -0
  509. package/dist/widgets/text.d.ts.map +1 -0
  510. package/dist/widgets/text.js +14 -0
  511. package/dist/widgets/text.js.map +1 -0
  512. package/dist/widgets/transcript.d.ts +44 -0
  513. package/dist/widgets/transcript.d.ts.map +1 -0
  514. package/dist/widgets/transcript.js +106 -0
  515. package/dist/widgets/transcript.js.map +1 -0
  516. package/doom.vert +1840 -0
  517. package/fonts/DejaVuSans.ttf +0 -0
  518. package/fonts/DejaVuSansMono.ttf +0 -0
  519. package/fonts/LICENSE-DejaVu.txt +187 -0
  520. package/fonts/README.md +6 -0
  521. package/gradient.vert +75 -0
  522. package/package.json +146 -3
@@ -0,0 +1,621 @@
1
+ /**
2
+ * Vendored from @pierre/diffs@1.2.12 dist/utils/parsePatchFiles.js (Apache-2.0).
3
+ * Origin: package @pierre/diffs — pure patch/hunk parser only.
4
+ * See NOTICE and APACHE-2.0-LICENSE.md in this directory.
5
+ *
6
+ * Modifications: TypeScript module; local imports; typed public API wrappers.
7
+ * No intentional algorithm changes.
8
+ */
9
+ // @ts-nocheck — vendored untyped Pierre slice; enabling the check is a rewrite of the body, not a one-line fix.
10
+ import { cleanLastNewline } from "./cleanLastNewline.js";
11
+ import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, GIT_DIFF_FILE_BREAK_REGEX, INDEX_LINE_METADATA, } from "./constants.js";
12
+ import { detachString, releaseStringDetachBuffer } from "./detachString.js";
13
+ function processPatchImpl(data, cacheKeyPrefix, throwOnError) {
14
+ try {
15
+ return _processPatch(data, cacheKeyPrefix, throwOnError);
16
+ }
17
+ finally {
18
+ releaseStringDetachBuffer();
19
+ }
20
+ }
21
+ function _processPatch(data, cacheKeyPrefix, throwOnError = false) {
22
+ const isGitDiff = isGitDiffPatch(data);
23
+ const rawFiles = isGitDiff ? splitGitDiffFiles(data) : splitUnifiedDiffFiles(data);
24
+ let patchMetadata;
25
+ const files = [];
26
+ for (const fileOrPatchMetadata of rawFiles) {
27
+ if (isGitDiff && !GIT_DIFF_FILE_BREAK_REGEX.test(fileOrPatchMetadata)) {
28
+ if (patchMetadata == null)
29
+ patchMetadata = detachString(fileOrPatchMetadata);
30
+ else if (throwOnError)
31
+ throw new Error("parsePatchContent: unknown file blob");
32
+ else
33
+ console.error("parsePatchContent: unknown file blob:", fileOrPatchMetadata);
34
+ continue;
35
+ }
36
+ else if (!isGitDiff && !startsWithUnifiedDiffFileHeader(fileOrPatchMetadata)) {
37
+ if (patchMetadata == null)
38
+ patchMetadata = detachString(fileOrPatchMetadata);
39
+ else if (throwOnError)
40
+ throw new Error("parsePatchContent: unknown file blob");
41
+ else
42
+ console.error("parsePatchContent: unknown file blob:", fileOrPatchMetadata);
43
+ continue;
44
+ }
45
+ const currentFile = _processFile(fileOrPatchMetadata, {
46
+ cacheKey: cacheKeyPrefix == null ? void 0 : `${cacheKeyPrefix}-${files.length}`,
47
+ isGitDiff,
48
+ throwOnError,
49
+ });
50
+ if (currentFile != null)
51
+ files.push(currentFile);
52
+ }
53
+ return {
54
+ patchMetadata,
55
+ files,
56
+ };
57
+ }
58
+ function processFileImpl(fileDiffString, options) {
59
+ try {
60
+ return _processFile(fileDiffString, options);
61
+ }
62
+ finally {
63
+ releaseStringDetachBuffer();
64
+ }
65
+ }
66
+ function _processFile(fileDiffString, { cacheKey, isGitDiff = GIT_DIFF_FILE_BREAK_REGEX.test(fileDiffString), oldFile, newFile, throwOnError = false } = {}) {
67
+ let lastHunkEnd = 0;
68
+ const hunks = splitAtLinePrefix(fileDiffString, "@@ ");
69
+ let currentFile;
70
+ const isPartial = oldFile == null || newFile == null;
71
+ let deletionLineIndex = 0;
72
+ let additionLineIndex = 0;
73
+ for (const hunk of hunks) {
74
+ const lines = splitWithNewlines(hunk);
75
+ const firstLine = lines[0];
76
+ if (firstLine == null) {
77
+ if (throwOnError)
78
+ throw new Error("parsePatchContent: invalid hunk");
79
+ else
80
+ console.error("parsePatchContent: invalid hunk", hunk);
81
+ continue;
82
+ }
83
+ const fileHeader = parseHunkHeader(firstLine);
84
+ let additionLines = 0;
85
+ let deletionLines = 0;
86
+ if (fileHeader == null || currentFile == null) {
87
+ if (currentFile != null) {
88
+ if (throwOnError)
89
+ throw new Error("parsePatchContent: Invalid hunk");
90
+ else
91
+ console.error("parsePatchContent: Invalid hunk", hunk);
92
+ continue;
93
+ }
94
+ currentFile = {
95
+ name: "",
96
+ type: "change",
97
+ hunks: [],
98
+ splitLineCount: 0,
99
+ unifiedLineCount: 0,
100
+ isPartial,
101
+ additionLines: !isPartial && oldFile != null && newFile != null ? splitFileContents(newFile.contents) : [],
102
+ deletionLines: !isPartial && oldFile != null && newFile != null ? splitFileContents(oldFile.contents) : [],
103
+ cacheKey: maybeDetachOptionalString(cacheKey),
104
+ };
105
+ if (currentFile.additionLines.length === 1 && newFile?.contents === "")
106
+ currentFile.additionLines.length = 0;
107
+ if (currentFile.deletionLines.length === 1 && oldFile?.contents === "")
108
+ currentFile.deletionLines.length = 0;
109
+ for (const line of lines) {
110
+ if (line.startsWith("diff --git")) {
111
+ const filenameMatch = line.trim().match(ALTERNATE_FILE_NAMES_GIT);
112
+ const prevName = filenameMatch?.[1] ?? filenameMatch?.[2];
113
+ const name = filenameMatch?.[3] ?? filenameMatch?.[4];
114
+ if (prevName == null || name == null) {
115
+ if (throwOnError)
116
+ throw new Error("parsePatchContent: invalid git diff header");
117
+ else
118
+ console.error("parsePatchContent: invalid git diff header", line);
119
+ continue;
120
+ }
121
+ currentFile.name = detachString(name.trim());
122
+ if (prevName !== name)
123
+ currentFile.prevName = detachString(prevName.trim());
124
+ continue;
125
+ }
126
+ const filenameMatch = line.startsWith("---") || line.startsWith("+++")
127
+ ? line.match(isGitDiff ? FILENAME_HEADER_REGEX_GIT : FILENAME_HEADER_REGEX)
128
+ : null;
129
+ if (filenameMatch != null) {
130
+ const [, type, fileName] = filenameMatch;
131
+ if (type === "---" && fileName !== "/dev/null") {
132
+ const detachedFileName = detachString(fileName.trim());
133
+ currentFile.prevName = detachedFileName;
134
+ currentFile.name = detachedFileName;
135
+ }
136
+ else if (type === "+++" && fileName !== "/dev/null")
137
+ currentFile.name = detachString(fileName.trim());
138
+ }
139
+ else if (isGitDiff) {
140
+ if (line.startsWith("new mode "))
141
+ currentFile.mode = detachString(line.slice(8).trim());
142
+ if (line.startsWith("old mode "))
143
+ currentFile.prevMode = detachString(line.slice(8).trim());
144
+ if (line.startsWith("new file mode")) {
145
+ currentFile.type = "new";
146
+ currentFile.mode = detachString(line.slice(13).trim());
147
+ }
148
+ if (line.startsWith("deleted file mode")) {
149
+ currentFile.type = "deleted";
150
+ currentFile.mode = detachString(line.slice(17).trim());
151
+ }
152
+ if (line.startsWith("similarity index"))
153
+ currentFile.type = line.startsWith("similarity index 100%") ? "rename-pure" : "rename-changed";
154
+ if (line.startsWith("index ")) {
155
+ const [, prevObjectId, newObjectId, mode] = line.trim().match(INDEX_LINE_METADATA) ?? [];
156
+ if (prevObjectId != null)
157
+ currentFile.prevObjectId = detachString(prevObjectId);
158
+ if (newObjectId != null)
159
+ currentFile.newObjectId = detachString(newObjectId);
160
+ if (mode != null)
161
+ currentFile.mode = detachString(mode);
162
+ }
163
+ if (line.startsWith("rename from "))
164
+ currentFile.prevName = detachString(line.slice(12).trim());
165
+ if (line.startsWith("rename to "))
166
+ currentFile.name = detachString(line.slice(10).trim());
167
+ }
168
+ }
169
+ continue;
170
+ }
171
+ let currentContent;
172
+ let lastLineType;
173
+ while (lines.length > 0 &&
174
+ (lines.at(-1) === "\n" || lines.at(-1) === "\r" || lines.at(-1) === "\r\n" || lines.at(-1) === ""))
175
+ lines.pop();
176
+ const { additionStart, deletionStart } = fileHeader;
177
+ deletionLineIndex = isPartial ? deletionLineIndex : deletionStart - 1;
178
+ additionLineIndex = isPartial ? additionLineIndex : additionStart - 1;
179
+ const hunkData = {
180
+ collapsedBefore: 0,
181
+ splitLineCount: 0,
182
+ splitLineStart: 0,
183
+ unifiedLineCount: 0,
184
+ unifiedLineStart: 0,
185
+ additionCount: fileHeader.additionCount,
186
+ additionStart,
187
+ additionLines,
188
+ deletionCount: fileHeader.deletionCount,
189
+ deletionStart,
190
+ deletionLines,
191
+ deletionLineIndex,
192
+ additionLineIndex,
193
+ hunkContent: [],
194
+ hunkContext: maybeDetachOptionalString(fileHeader.hunkContext),
195
+ hunkSpecs: detachString(firstLine),
196
+ noEOFCRAdditions: false,
197
+ noEOFCRDeletions: false,
198
+ };
199
+ let parsedAdditionLines = 0;
200
+ let parsedDeletionLines = 0;
201
+ for (let lineIndex = 1; lineIndex < lines.length; lineIndex++) {
202
+ const rawLine = lines[lineIndex];
203
+ if (parsedAdditionLines >= hunkData.additionCount &&
204
+ parsedDeletionLines >= hunkData.deletionCount &&
205
+ !rawLine.startsWith("\\")) {
206
+ if (throwOnError && isHunkBodyLine(rawLine) && !isFormatPatchVersionSeparator(rawLine))
207
+ throw new Error("parsePatchContent: hunk has more lines than expected");
208
+ break;
209
+ }
210
+ const firstChar = rawLine[0];
211
+ if (firstChar !== "+" && firstChar !== "-" && firstChar !== " " && firstChar !== "\\") {
212
+ if (throwOnError)
213
+ throw new Error("parsePatchContent: invalid hunk line");
214
+ console.error(`parseLineType: Invalid firstChar: "${firstChar}", full line: "${rawLine}"`);
215
+ console.error("processFile: invalid rawLine:", rawLine);
216
+ continue;
217
+ }
218
+ const type = parseRawLineType(firstChar);
219
+ switch (type) {
220
+ case "addition": {
221
+ if (throwOnError && parsedAdditionLines >= hunkData.additionCount)
222
+ throw new Error("parsePatchContent: hunk has too many addition lines");
223
+ const line = getParsedLineContent(rawLine);
224
+ if (currentContent == null || currentContent.type !== "change") {
225
+ currentContent = createContentGroup("change", deletionLineIndex, additionLineIndex);
226
+ hunkData.hunkContent.push(currentContent);
227
+ }
228
+ additionLineIndex++;
229
+ parsedAdditionLines++;
230
+ if (isPartial)
231
+ currentFile.additionLines.push(line);
232
+ currentContent.additions++;
233
+ additionLines++;
234
+ lastLineType = "addition";
235
+ break;
236
+ }
237
+ case "deletion": {
238
+ if (throwOnError && parsedDeletionLines >= hunkData.deletionCount)
239
+ throw new Error("parsePatchContent: hunk has too many deletion lines");
240
+ const line = getParsedLineContent(rawLine);
241
+ if (currentContent == null || currentContent.type !== "change") {
242
+ currentContent = createContentGroup("change", deletionLineIndex, additionLineIndex);
243
+ hunkData.hunkContent.push(currentContent);
244
+ }
245
+ deletionLineIndex++;
246
+ parsedDeletionLines++;
247
+ if (isPartial)
248
+ currentFile.deletionLines.push(line);
249
+ currentContent.deletions++;
250
+ deletionLines++;
251
+ lastLineType = "deletion";
252
+ break;
253
+ }
254
+ case "context": {
255
+ if (throwOnError &&
256
+ (parsedDeletionLines >= hunkData.deletionCount || parsedAdditionLines >= hunkData.additionCount))
257
+ throw new Error("parsePatchContent: hunk has too many context lines");
258
+ const line = getParsedLineContent(rawLine);
259
+ if (currentContent == null || currentContent.type !== "context") {
260
+ currentContent = createContentGroup("context", deletionLineIndex, additionLineIndex);
261
+ hunkData.hunkContent.push(currentContent);
262
+ }
263
+ additionLineIndex++;
264
+ deletionLineIndex++;
265
+ parsedAdditionLines++;
266
+ parsedDeletionLines++;
267
+ if (isPartial) {
268
+ currentFile.deletionLines.push(line);
269
+ currentFile.additionLines.push(line);
270
+ }
271
+ currentContent.lines++;
272
+ lastLineType = "context";
273
+ break;
274
+ }
275
+ default:
276
+ if (type === "metadata" && currentContent != null) {
277
+ if (currentContent.type === "context") {
278
+ hunkData.noEOFCRAdditions = true;
279
+ hunkData.noEOFCRDeletions = true;
280
+ }
281
+ else if (lastLineType === "deletion")
282
+ hunkData.noEOFCRDeletions = true;
283
+ else if (lastLineType === "addition")
284
+ hunkData.noEOFCRAdditions = true;
285
+ if (isPartial && (lastLineType === "addition" || lastLineType === "context")) {
286
+ const lastIndex = currentFile.additionLines.length - 1;
287
+ if (lastIndex >= 0)
288
+ currentFile.additionLines[lastIndex] = cleanLastNewline(currentFile.additionLines[lastIndex]);
289
+ }
290
+ if (isPartial && (lastLineType === "deletion" || lastLineType === "context")) {
291
+ const lastIndex = currentFile.deletionLines.length - 1;
292
+ if (lastIndex >= 0)
293
+ currentFile.deletionLines[lastIndex] = cleanLastNewline(currentFile.deletionLines[lastIndex]);
294
+ }
295
+ }
296
+ }
297
+ }
298
+ if (throwOnError &&
299
+ (parsedAdditionLines !== hunkData.additionCount || parsedDeletionLines !== hunkData.deletionCount))
300
+ throw new Error("parsePatchContent: hunk line count mismatch");
301
+ hunkData.additionLines = additionLines;
302
+ hunkData.deletionLines = deletionLines;
303
+ hunkData.collapsedBefore = Math.max(hunkData.additionStart - 1 - lastHunkEnd, 0);
304
+ currentFile.hunks.push(hunkData);
305
+ lastHunkEnd = hunkData.additionStart + hunkData.additionCount - 1;
306
+ for (const content of hunkData.hunkContent)
307
+ if (content.type === "context") {
308
+ hunkData.splitLineCount += content.lines;
309
+ hunkData.unifiedLineCount += content.lines;
310
+ }
311
+ else {
312
+ hunkData.splitLineCount += Math.max(content.additions, content.deletions);
313
+ hunkData.unifiedLineCount += content.deletions + content.additions;
314
+ }
315
+ hunkData.splitLineStart = currentFile.splitLineCount + hunkData.collapsedBefore;
316
+ hunkData.unifiedLineStart = currentFile.unifiedLineCount + hunkData.collapsedBefore;
317
+ currentFile.splitLineCount += hunkData.collapsedBefore + hunkData.splitLineCount;
318
+ currentFile.unifiedLineCount += hunkData.collapsedBefore + hunkData.unifiedLineCount;
319
+ }
320
+ if (currentFile == null)
321
+ return;
322
+ if (throwOnError && isPartial && !isGitDiff && currentFile.hunks.length === 0)
323
+ throw new Error("parsePatchContent: unified file has no hunks");
324
+ if (currentFile.hunks.length > 0 &&
325
+ !isPartial &&
326
+ currentFile.additionLines.length > 0 &&
327
+ currentFile.deletionLines.length > 0) {
328
+ const lastHunk = currentFile.hunks.at(-1);
329
+ const lastHunkLastLine = lastHunk.additionStart + lastHunk.additionCount - 1;
330
+ const totalFileLines = currentFile.additionLines.length;
331
+ const collapsedAfter = Math.max(totalFileLines - lastHunkLastLine, 0);
332
+ currentFile.splitLineCount += collapsedAfter;
333
+ currentFile.unifiedLineCount += collapsedAfter;
334
+ }
335
+ if (!isGitDiff) {
336
+ if (currentFile.prevName != null && currentFile.name !== currentFile.prevName)
337
+ currentFile.type = currentFile.hunks.length > 0 ? "rename-changed" : "rename-pure";
338
+ else if ((oldFile == null || oldFile.contents === "") && newFile != null && newFile.contents !== "")
339
+ currentFile.type = "new";
340
+ else if (oldFile != null && oldFile.contents !== "" && (newFile == null || newFile.contents === ""))
341
+ currentFile.type = "deleted";
342
+ }
343
+ if (currentFile.type !== "rename-pure" && currentFile.type !== "rename-changed")
344
+ currentFile.prevName = void 0;
345
+ return currentFile;
346
+ }
347
+ function parsePatchFilesImpl(data, cacheKeyPrefix, throwOnError = false) {
348
+ const patches = [];
349
+ const rawPatches = hasCommitMetadataBoundary(data) ? data.split(COMMIT_METADATA_SPLIT) : [data];
350
+ for (const patch of rawPatches)
351
+ try {
352
+ patches.push(processPatch(patch, cacheKeyPrefix == null ? void 0 : `${cacheKeyPrefix}-${patches.length}`, throwOnError));
353
+ }
354
+ catch (error) {
355
+ if (throwOnError)
356
+ throw error;
357
+ else
358
+ console.error(error);
359
+ }
360
+ return patches;
361
+ }
362
+ function hasCommitMetadataBoundary(data) {
363
+ return data.startsWith("From ") || data.includes("\nFrom ");
364
+ }
365
+ function splitFileContents(contents) {
366
+ const lines = splitWithNewlines(contents);
367
+ for (let index = 0; index < lines.length; index++)
368
+ lines[index] = detachString(lines[index]);
369
+ return lines;
370
+ }
371
+ function splitWithNewlines(contents) {
372
+ if (contents.length === 0)
373
+ return [""];
374
+ const lines = [];
375
+ let startIndex = 0;
376
+ for (;;) {
377
+ const newlineIndex = contents.indexOf("\n", startIndex);
378
+ if (newlineIndex === -1)
379
+ break;
380
+ lines.push(contents.slice(startIndex, newlineIndex + 1));
381
+ startIndex = newlineIndex + 1;
382
+ }
383
+ if (startIndex < contents.length)
384
+ lines.push(contents.slice(startIndex));
385
+ return lines;
386
+ }
387
+ function splitGitDiffFiles(contents) {
388
+ return splitAtLinePrefix(contents, "diff --git");
389
+ }
390
+ function splitUnifiedDiffFiles(contents) {
391
+ if (contents.length === 0)
392
+ return [""];
393
+ const parts = [];
394
+ let partStartIndex = 0;
395
+ let lineStartIndex = 0;
396
+ let remainingDeletionLines = 0;
397
+ let remainingAdditionLines = 0;
398
+ let hasOpenedUnifiedFile = false;
399
+ while (lineStartIndex < contents.length) {
400
+ const nextLineStartIndex = getNextLineStartIndex(contents, lineStartIndex);
401
+ if (remainingDeletionLines <= 0 && remainingAdditionLines <= 0) {
402
+ if (isUnifiedDiffFileHeaderAt(contents, lineStartIndex)) {
403
+ if (lineStartIndex > partStartIndex)
404
+ parts.push(contents.slice(partStartIndex, lineStartIndex));
405
+ partStartIndex = lineStartIndex;
406
+ hasOpenedUnifiedFile = true;
407
+ lineStartIndex = getNextLineStartIndex(contents, nextLineStartIndex);
408
+ continue;
409
+ }
410
+ if (hasOpenedUnifiedFile && contents.startsWith("@@ -", lineStartIndex)) {
411
+ const fileHeader = parseHunkHeader(contents.slice(lineStartIndex, nextLineStartIndex));
412
+ if (fileHeader != null) {
413
+ remainingDeletionLines = fileHeader.deletionCount;
414
+ remainingAdditionLines = fileHeader.additionCount;
415
+ }
416
+ }
417
+ lineStartIndex = nextLineStartIndex;
418
+ continue;
419
+ }
420
+ const firstChar = contents[lineStartIndex];
421
+ if (firstChar === "\\") {
422
+ lineStartIndex = nextLineStartIndex;
423
+ continue;
424
+ }
425
+ switch (firstChar) {
426
+ case " ": {
427
+ remainingDeletionLines = Math.max(remainingDeletionLines - 1, 0);
428
+ remainingAdditionLines = Math.max(remainingAdditionLines - 1, 0);
429
+ break;
430
+ }
431
+ case "-": {
432
+ remainingDeletionLines = Math.max(remainingDeletionLines - 1, 0);
433
+ break;
434
+ }
435
+ case "+":
436
+ {
437
+ remainingAdditionLines = Math.max(remainingAdditionLines - 1, 0);
438
+ // No default
439
+ }
440
+ break;
441
+ }
442
+ lineStartIndex = nextLineStartIndex;
443
+ }
444
+ parts.push(contents.slice(partStartIndex));
445
+ return parts;
446
+ }
447
+ function startsWithUnifiedDiffFileHeader(contents) {
448
+ return isUnifiedDiffFileHeaderAt(contents, 0);
449
+ }
450
+ function isUnifiedDiffFileHeaderAt(contents, lineStartIndex) {
451
+ const nextLineStartIndex = getNextLineStartIndex(contents, lineStartIndex);
452
+ return (isUnifiedDiffHeaderLineAt(contents, lineStartIndex, "---") &&
453
+ isUnifiedDiffHeaderLineAt(contents, nextLineStartIndex, "+++"));
454
+ }
455
+ function isUnifiedDiffHeaderLineAt(contents, lineStartIndex, prefix) {
456
+ if (!contents.startsWith(prefix, lineStartIndex))
457
+ return false;
458
+ const separator = contents[lineStartIndex + prefix.length];
459
+ if (separator !== " " && separator !== " ")
460
+ return false;
461
+ for (let index = lineStartIndex + prefix.length + 1; index < contents.length; index++) {
462
+ const char = contents[index];
463
+ if (char === "\n" || char === "\r")
464
+ break;
465
+ if (char !== " " && char !== " ")
466
+ return true;
467
+ }
468
+ return false;
469
+ }
470
+ function getNextLineStartIndex(contents, lineStartIndex) {
471
+ const newlineIndex = contents.indexOf("\n", lineStartIndex);
472
+ return newlineIndex === -1 ? contents.length : newlineIndex + 1;
473
+ }
474
+ function isHunkBodyLine(line) {
475
+ const firstChar = line[0];
476
+ return firstChar === "+" || firstChar === "-" || firstChar === " ";
477
+ }
478
+ function isFormatPatchVersionSeparator(line) {
479
+ if (!line.startsWith("--"))
480
+ return false;
481
+ for (let index = 2; index < line.length; index++) {
482
+ const char = line[index];
483
+ if (char !== " " && char !== " " && char !== "\n" && char !== "\r")
484
+ return false;
485
+ }
486
+ return true;
487
+ }
488
+ function parseHunkHeader(line) {
489
+ if (!line.startsWith("@@ -"))
490
+ return;
491
+ let index = 4;
492
+ const deletionStartResult = readPositiveInteger(line, index);
493
+ if (deletionStartResult == null)
494
+ return;
495
+ const deletionStart = deletionStartResult.value;
496
+ index = deletionStartResult.endIndex;
497
+ let deletionCount = 1;
498
+ if (line[index] === ",") {
499
+ const deletionCountResult = readPositiveInteger(line, index + 1);
500
+ if (deletionCountResult == null)
501
+ return;
502
+ deletionCount = deletionCountResult.value;
503
+ index = deletionCountResult.endIndex;
504
+ }
505
+ if (line[index] !== " " || line[index + 1] !== "+")
506
+ return;
507
+ index += 2;
508
+ const additionStartResult = readPositiveInteger(line, index);
509
+ if (additionStartResult == null)
510
+ return;
511
+ const additionStart = additionStartResult.value;
512
+ index = additionStartResult.endIndex;
513
+ let additionCount = 1;
514
+ if (line[index] === ",") {
515
+ const additionCountResult = readPositiveInteger(line, index + 1);
516
+ if (additionCountResult == null)
517
+ return;
518
+ additionCount = additionCountResult.value;
519
+ index = additionCountResult.endIndex;
520
+ }
521
+ if (line[index] !== " " || line[index + 1] !== "@" || line[index + 2] !== "@")
522
+ return;
523
+ let hunkContext;
524
+ const contextStartIndex = index + 3;
525
+ if (line[contextStartIndex] === " ")
526
+ hunkContext = trimLineEnd(line.slice(contextStartIndex + 1));
527
+ return {
528
+ additionCount,
529
+ additionStart,
530
+ deletionCount,
531
+ deletionStart,
532
+ hunkContext,
533
+ };
534
+ }
535
+ function readPositiveInteger(value, startIndex) {
536
+ let index = startIndex;
537
+ let parsedValue = 0;
538
+ for (; index < value.length; index++) {
539
+ const digit = value.charCodeAt(index) - 48;
540
+ if (digit < 0 || digit > 9)
541
+ break;
542
+ parsedValue = parsedValue * 10 + digit;
543
+ }
544
+ if (index === startIndex)
545
+ return;
546
+ return {
547
+ value: parsedValue,
548
+ endIndex: index,
549
+ };
550
+ }
551
+ function trimLineEnd(value) {
552
+ if (value.endsWith("\r\n"))
553
+ return value.slice(0, -2);
554
+ if (value.endsWith("\n"))
555
+ return value.slice(0, -1);
556
+ return value;
557
+ }
558
+ function isGitDiffPatch(data) {
559
+ return data.startsWith("diff --git") || data.includes("\ndiff --git");
560
+ }
561
+ function splitAtLinePrefix(contents, prefix) {
562
+ if (contents.length === 0)
563
+ return [""];
564
+ const newlinePrefix = `\n${prefix}`;
565
+ const firstBoundaryIndex = contents.startsWith(prefix) ? 0 : findLinePrefixIndex(contents, newlinePrefix, 0);
566
+ if (firstBoundaryIndex === -1)
567
+ return [contents];
568
+ const parts = [];
569
+ if (firstBoundaryIndex > 0)
570
+ parts.push(contents.slice(0, firstBoundaryIndex));
571
+ let startIndex = firstBoundaryIndex;
572
+ for (;;) {
573
+ const nextBoundaryIndex = findLinePrefixIndex(contents, newlinePrefix, startIndex + 1);
574
+ if (nextBoundaryIndex === -1)
575
+ break;
576
+ parts.push(contents.slice(startIndex, nextBoundaryIndex));
577
+ startIndex = nextBoundaryIndex;
578
+ }
579
+ parts.push(contents.slice(startIndex));
580
+ return parts;
581
+ }
582
+ function findLinePrefixIndex(contents, newlinePrefix, fromIndex) {
583
+ const index = contents.indexOf(newlinePrefix, fromIndex);
584
+ return index === -1 ? -1 : index + 1;
585
+ }
586
+ function maybeDetachOptionalString(value) {
587
+ return value == null ? value : detachString(value);
588
+ }
589
+ function parseRawLineType(firstChar) {
590
+ return firstChar === " " ? "context" : firstChar === "\\" ? "metadata" : firstChar === "+" ? "addition" : "deletion";
591
+ }
592
+ function getParsedLineContent(rawLine) {
593
+ const processedLine = rawLine.slice(1);
594
+ return detachString(processedLine === "" ? "\n" : processedLine);
595
+ }
596
+ function createContentGroup(type, deletionLineIndex, additionLineIndex) {
597
+ if (type === "change")
598
+ return {
599
+ type: "change",
600
+ additions: 0,
601
+ deletions: 0,
602
+ additionLineIndex,
603
+ deletionLineIndex,
604
+ };
605
+ return {
606
+ type: "context",
607
+ lines: 0,
608
+ additionLineIndex,
609
+ deletionLineIndex,
610
+ };
611
+ }
612
+ export function parsePatchFiles(data, cacheKeyPrefix, throwOnError = false) {
613
+ return parsePatchFilesImpl(data, cacheKeyPrefix, throwOnError);
614
+ }
615
+ export function processFile(fileDiffString, options) {
616
+ return processFileImpl(fileDiffString, options);
617
+ }
618
+ export function processPatch(data, cacheKeyPrefix, throwOnError = false) {
619
+ return processPatchImpl(data, cacheKeyPrefix, throwOnError);
620
+ }
621
+ //# sourceMappingURL=parsePatchFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsePatchFiles.js","sourceRoot":"","sources":["../../../../src/widgets/internals/pierre-parse/parsePatchFiles.ts"],"names":[],"mappings":"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"}