@tscaps/engine 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 (483) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +349 -0
  3. package/dist/index.d.ts +12 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +12 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/modules/css/BrowserCssResourceEmbedder.d.ts +5 -0
  8. package/dist/modules/css/BrowserCssResourceEmbedder.d.ts.map +1 -0
  9. package/dist/modules/css/BrowserCssResourceEmbedder.js +41 -0
  10. package/dist/modules/css/BrowserCssResourceEmbedder.js.map +1 -0
  11. package/dist/modules/css/CssMinifier.d.ts +12 -0
  12. package/dist/modules/css/CssMinifier.d.ts.map +1 -0
  13. package/dist/modules/css/CssMinifier.js +47 -0
  14. package/dist/modules/css/CssMinifier.js.map +1 -0
  15. package/dist/modules/css/CssResourceEmbedder.d.ts +4 -0
  16. package/dist/modules/css/CssResourceEmbedder.d.ts.map +1 -0
  17. package/dist/modules/css/CssResourceEmbedder.js +2 -0
  18. package/dist/modules/css/CssResourceEmbedder.js.map +1 -0
  19. package/dist/modules/css/CssScoper.d.ts +16 -0
  20. package/dist/modules/css/CssScoper.d.ts.map +1 -0
  21. package/dist/modules/css/CssScoper.js +109 -0
  22. package/dist/modules/css/CssScoper.js.map +1 -0
  23. package/dist/modules/css/NoopCssResourceEmbedder.d.ts +12 -0
  24. package/dist/modules/css/NoopCssResourceEmbedder.d.ts.map +1 -0
  25. package/dist/modules/css/NoopCssResourceEmbedder.js +13 -0
  26. package/dist/modules/css/NoopCssResourceEmbedder.js.map +1 -0
  27. package/dist/modules/css/index.d.ts +6 -0
  28. package/dist/modules/css/index.d.ts.map +1 -0
  29. package/dist/modules/css/index.js +5 -0
  30. package/dist/modules/css/index.js.map +1 -0
  31. package/dist/modules/document/CssVariable.d.ts +46 -0
  32. package/dist/modules/document/CssVariable.d.ts.map +1 -0
  33. package/dist/modules/document/CssVariable.js +47 -0
  34. package/dist/modules/document/CssVariable.js.map +1 -0
  35. package/dist/modules/document/Document.d.ts +43 -0
  36. package/dist/modules/document/Document.d.ts.map +1 -0
  37. package/dist/modules/document/Document.js +86 -0
  38. package/dist/modules/document/Document.js.map +1 -0
  39. package/dist/modules/document/DocumentEditor.d.ts +111 -0
  40. package/dist/modules/document/DocumentEditor.d.ts.map +1 -0
  41. package/dist/modules/document/DocumentEditor.js +555 -0
  42. package/dist/modules/document/DocumentEditor.js.map +1 -0
  43. package/dist/modules/document/Letter.d.ts +17 -0
  44. package/dist/modules/document/Letter.d.ts.map +1 -0
  45. package/dist/modules/document/Letter.js +17 -0
  46. package/dist/modules/document/Letter.js.map +1 -0
  47. package/dist/modules/document/Line.d.ts +31 -0
  48. package/dist/modules/document/Line.d.ts.map +1 -0
  49. package/dist/modules/document/Line.js +94 -0
  50. package/dist/modules/document/Line.js.map +1 -0
  51. package/dist/modules/document/LineState.d.ts +6 -0
  52. package/dist/modules/document/LineState.d.ts.map +1 -0
  53. package/dist/modules/document/LineState.js +7 -0
  54. package/dist/modules/document/LineState.js.map +1 -0
  55. package/dist/modules/document/NarrationPace.d.ts +20 -0
  56. package/dist/modules/document/NarrationPace.d.ts.map +1 -0
  57. package/dist/modules/document/NarrationPace.js +60 -0
  58. package/dist/modules/document/NarrationPace.js.map +1 -0
  59. package/dist/modules/document/Section.d.ts +45 -0
  60. package/dist/modules/document/Section.d.ts.map +1 -0
  61. package/dist/modules/document/Section.js +94 -0
  62. package/dist/modules/document/Section.js.map +1 -0
  63. package/dist/modules/document/Segment.d.ts +40 -0
  64. package/dist/modules/document/Segment.d.ts.map +1 -0
  65. package/dist/modules/document/Segment.js +85 -0
  66. package/dist/modules/document/Segment.js.map +1 -0
  67. package/dist/modules/document/Tag.d.ts +24 -0
  68. package/dist/modules/document/Tag.d.ts.map +1 -0
  69. package/dist/modules/document/Tag.js +37 -0
  70. package/dist/modules/document/Tag.js.map +1 -0
  71. package/dist/modules/document/TimeFragment.d.ts +11 -0
  72. package/dist/modules/document/TimeFragment.d.ts.map +1 -0
  73. package/dist/modules/document/TimeFragment.js +29 -0
  74. package/dist/modules/document/TimeFragment.js.map +1 -0
  75. package/dist/modules/document/Word.d.ts +40 -0
  76. package/dist/modules/document/Word.d.ts.map +1 -0
  77. package/dist/modules/document/Word.js +114 -0
  78. package/dist/modules/document/Word.js.map +1 -0
  79. package/dist/modules/document/WordState.d.ts +6 -0
  80. package/dist/modules/document/WordState.d.ts.map +1 -0
  81. package/dist/modules/document/WordState.js +7 -0
  82. package/dist/modules/document/WordState.js.map +1 -0
  83. package/dist/modules/document/index.d.ts +14 -0
  84. package/dist/modules/document/index.d.ts.map +1 -0
  85. package/dist/modules/document/index.js +14 -0
  86. package/dist/modules/document/index.js.map +1 -0
  87. package/dist/modules/effect/CarryQuotesEffect.d.ts +47 -0
  88. package/dist/modules/effect/CarryQuotesEffect.d.ts.map +1 -0
  89. package/dist/modules/effect/CarryQuotesEffect.js +181 -0
  90. package/dist/modules/effect/CarryQuotesEffect.js.map +1 -0
  91. package/dist/modules/effect/Effect.d.ts +16 -0
  92. package/dist/modules/effect/Effect.d.ts.map +1 -0
  93. package/dist/modules/effect/Effect.js +2 -0
  94. package/dist/modules/effect/Effect.js.map +1 -0
  95. package/dist/modules/effect/GapFreeEffect.d.ts +24 -0
  96. package/dist/modules/effect/GapFreeEffect.d.ts.map +1 -0
  97. package/dist/modules/effect/GapFreeEffect.js +67 -0
  98. package/dist/modules/effect/GapFreeEffect.js.map +1 -0
  99. package/dist/modules/effect/RemovePunctuationEffect.d.ts +21 -0
  100. package/dist/modules/effect/RemovePunctuationEffect.d.ts.map +1 -0
  101. package/dist/modules/effect/RemovePunctuationEffect.js +52 -0
  102. package/dist/modules/effect/RemovePunctuationEffect.js.map +1 -0
  103. package/dist/modules/effect/SmartLowercaseEffect.d.ts +21 -0
  104. package/dist/modules/effect/SmartLowercaseEffect.d.ts.map +1 -0
  105. package/dist/modules/effect/SmartLowercaseEffect.js +45 -0
  106. package/dist/modules/effect/SmartLowercaseEffect.js.map +1 -0
  107. package/dist/modules/effect/SmartPunctuationEffect.d.ts +25 -0
  108. package/dist/modules/effect/SmartPunctuationEffect.d.ts.map +1 -0
  109. package/dist/modules/effect/SmartPunctuationEffect.js +68 -0
  110. package/dist/modules/effect/SmartPunctuationEffect.js.map +1 -0
  111. package/dist/modules/effect/index.d.ts +7 -0
  112. package/dist/modules/effect/index.d.ts.map +1 -0
  113. package/dist/modules/effect/index.js +6 -0
  114. package/dist/modules/effect/index.js.map +1 -0
  115. package/dist/modules/pipeline/PipelineProgress.d.ts +30 -0
  116. package/dist/modules/pipeline/PipelineProgress.d.ts.map +1 -0
  117. package/dist/modules/pipeline/PipelineProgress.js +2 -0
  118. package/dist/modules/pipeline/PipelineProgress.js.map +1 -0
  119. package/dist/modules/pipeline/RenderPipeline.d.ts +105 -0
  120. package/dist/modules/pipeline/RenderPipeline.d.ts.map +1 -0
  121. package/dist/modules/pipeline/RenderPipeline.js +232 -0
  122. package/dist/modules/pipeline/RenderPipeline.js.map +1 -0
  123. package/dist/modules/pipeline/RenderPipelineBuilder.d.ts +143 -0
  124. package/dist/modules/pipeline/RenderPipelineBuilder.d.ts.map +1 -0
  125. package/dist/modules/pipeline/RenderPipelineBuilder.js +317 -0
  126. package/dist/modules/pipeline/RenderPipelineBuilder.js.map +1 -0
  127. package/dist/modules/pipeline/index.d.ts +6 -0
  128. package/dist/modules/pipeline/index.d.ts.map +1 -0
  129. package/dist/modules/pipeline/index.js +3 -0
  130. package/dist/modules/pipeline/index.js.map +1 -0
  131. package/dist/modules/profiling/Profiler.d.ts +115 -0
  132. package/dist/modules/profiling/Profiler.d.ts.map +1 -0
  133. package/dist/modules/profiling/Profiler.js +316 -0
  134. package/dist/modules/profiling/Profiler.js.map +1 -0
  135. package/dist/modules/profiling/index.d.ts +2 -0
  136. package/dist/modules/profiling/index.d.ts.map +1 -0
  137. package/dist/modules/profiling/index.js +2 -0
  138. package/dist/modules/profiling/index.js.map +1 -0
  139. package/dist/modules/rendering/AlignmentConfig.d.ts +21 -0
  140. package/dist/modules/rendering/AlignmentConfig.d.ts.map +1 -0
  141. package/dist/modules/rendering/AlignmentConfig.js +2 -0
  142. package/dist/modules/rendering/AlignmentConfig.js.map +1 -0
  143. package/dist/modules/rendering/BoxEdges.d.ts +8 -0
  144. package/dist/modules/rendering/BoxEdges.d.ts.map +1 -0
  145. package/dist/modules/rendering/BoxEdges.js +2 -0
  146. package/dist/modules/rendering/BoxEdges.js.map +1 -0
  147. package/dist/modules/rendering/BrowserOverlayFrameRenderer.d.ts +12 -0
  148. package/dist/modules/rendering/BrowserOverlayFrameRenderer.d.ts.map +1 -0
  149. package/dist/modules/rendering/BrowserOverlayFrameRenderer.js +31 -0
  150. package/dist/modules/rendering/BrowserOverlayFrameRenderer.js.map +1 -0
  151. package/dist/modules/rendering/BrowserSubtitleFrameRenderer.d.ts +57 -0
  152. package/dist/modules/rendering/BrowserSubtitleFrameRenderer.d.ts.map +1 -0
  153. package/dist/modules/rendering/BrowserSubtitleFrameRenderer.js +775 -0
  154. package/dist/modules/rendering/BrowserSubtitleFrameRenderer.js.map +1 -0
  155. package/dist/modules/rendering/ElementRenderOverrides.d.ts +15 -0
  156. package/dist/modules/rendering/ElementRenderOverrides.d.ts.map +1 -0
  157. package/dist/modules/rendering/ElementRenderOverrides.js +24 -0
  158. package/dist/modules/rendering/ElementRenderOverrides.js.map +1 -0
  159. package/dist/modules/rendering/InlineStyleMap.d.ts +9 -0
  160. package/dist/modules/rendering/InlineStyleMap.d.ts.map +1 -0
  161. package/dist/modules/rendering/InlineStyleMap.js +2 -0
  162. package/dist/modules/rendering/InlineStyleMap.js.map +1 -0
  163. package/dist/modules/rendering/LayeredSubtitleFrame.d.ts +20 -0
  164. package/dist/modules/rendering/LayeredSubtitleFrame.d.ts.map +1 -0
  165. package/dist/modules/rendering/LayeredSubtitleFrame.js +36 -0
  166. package/dist/modules/rendering/LayeredSubtitleFrame.js.map +1 -0
  167. package/dist/modules/rendering/OverlayFrameRenderer.d.ts +27 -0
  168. package/dist/modules/rendering/OverlayFrameRenderer.d.ts.map +1 -0
  169. package/dist/modules/rendering/OverlayFrameRenderer.js +2 -0
  170. package/dist/modules/rendering/OverlayFrameRenderer.js.map +1 -0
  171. package/dist/modules/rendering/RenderingConfig.d.ts +22 -0
  172. package/dist/modules/rendering/RenderingConfig.d.ts.map +1 -0
  173. package/dist/modules/rendering/RenderingConfig.js +2 -0
  174. package/dist/modules/rendering/RenderingConfig.js.map +1 -0
  175. package/dist/modules/rendering/ScopedRenderOverride.d.ts +19 -0
  176. package/dist/modules/rendering/ScopedRenderOverride.d.ts.map +1 -0
  177. package/dist/modules/rendering/ScopedRenderOverride.js +2 -0
  178. package/dist/modules/rendering/ScopedRenderOverride.js.map +1 -0
  179. package/dist/modules/rendering/SegmentPaintRegionResolver.d.ts +41 -0
  180. package/dist/modules/rendering/SegmentPaintRegionResolver.d.ts.map +1 -0
  181. package/dist/modules/rendering/SegmentPaintRegionResolver.js +47 -0
  182. package/dist/modules/rendering/SegmentPaintRegionResolver.js.map +1 -0
  183. package/dist/modules/rendering/SegmentSubtreeHtmlBuilder.d.ts +58 -0
  184. package/dist/modules/rendering/SegmentSubtreeHtmlBuilder.d.ts.map +1 -0
  185. package/dist/modules/rendering/SegmentSubtreeHtmlBuilder.js +132 -0
  186. package/dist/modules/rendering/SegmentSubtreeHtmlBuilder.js.map +1 -0
  187. package/dist/modules/rendering/SubtitleFrameRenderer.d.ts +111 -0
  188. package/dist/modules/rendering/SubtitleFrameRenderer.d.ts.map +1 -0
  189. package/dist/modules/rendering/SubtitleFrameRenderer.js +2 -0
  190. package/dist/modules/rendering/SubtitleFrameRenderer.js.map +1 -0
  191. package/dist/modules/rendering/VideoFrameLayerClass.d.ts +21 -0
  192. package/dist/modules/rendering/VideoFrameLayerClass.d.ts.map +1 -0
  193. package/dist/modules/rendering/VideoFrameLayerClass.js +21 -0
  194. package/dist/modules/rendering/VideoFrameLayerClass.js.map +1 -0
  195. package/dist/modules/rendering/VideoFrameSource.d.ts +29 -0
  196. package/dist/modules/rendering/VideoFrameSource.d.ts.map +1 -0
  197. package/dist/modules/rendering/VideoFrameSource.js +2 -0
  198. package/dist/modules/rendering/VideoFrameSource.js.map +1 -0
  199. package/dist/modules/rendering/index.d.ts +14 -0
  200. package/dist/modules/rendering/index.d.ts.map +1 -0
  201. package/dist/modules/rendering/index.js +6 -0
  202. package/dist/modules/rendering/index.js.map +1 -0
  203. package/dist/modules/splitting/BalancedLineSplitter.d.ts +24 -0
  204. package/dist/modules/splitting/BalancedLineSplitter.d.ts.map +1 -0
  205. package/dist/modules/splitting/BalancedLineSplitter.js +81 -0
  206. package/dist/modules/splitting/BalancedLineSplitter.js.map +1 -0
  207. package/dist/modules/splitting/BalancedPixelWidthLineSplitter.d.ts +31 -0
  208. package/dist/modules/splitting/BalancedPixelWidthLineSplitter.d.ts.map +1 -0
  209. package/dist/modules/splitting/BalancedPixelWidthLineSplitter.js +99 -0
  210. package/dist/modules/splitting/BalancedPixelWidthLineSplitter.js.map +1 -0
  211. package/dist/modules/splitting/BoundarySegmentSplitter.d.ts +19 -0
  212. package/dist/modules/splitting/BoundarySegmentSplitter.d.ts.map +1 -0
  213. package/dist/modules/splitting/BoundarySegmentSplitter.js +38 -0
  214. package/dist/modules/splitting/BoundarySegmentSplitter.js.map +1 -0
  215. package/dist/modules/splitting/CompositeSegmentSplitter.d.ts +8 -0
  216. package/dist/modules/splitting/CompositeSegmentSplitter.d.ts.map +1 -0
  217. package/dist/modules/splitting/CompositeSegmentSplitter.js +12 -0
  218. package/dist/modules/splitting/CompositeSegmentSplitter.js.map +1 -0
  219. package/dist/modules/splitting/DomProbeCanvasTextMeasurer.d.ts +56 -0
  220. package/dist/modules/splitting/DomProbeCanvasTextMeasurer.d.ts.map +1 -0
  221. package/dist/modules/splitting/DomProbeCanvasTextMeasurer.js +197 -0
  222. package/dist/modules/splitting/DomProbeCanvasTextMeasurer.js.map +1 -0
  223. package/dist/modules/splitting/GraphemeWordSplitter.d.ts +11 -0
  224. package/dist/modules/splitting/GraphemeWordSplitter.d.ts.map +1 -0
  225. package/dist/modules/splitting/GraphemeWordSplitter.js +12 -0
  226. package/dist/modules/splitting/GraphemeWordSplitter.js.map +1 -0
  227. package/dist/modules/splitting/LimitByCharsSegmentSplitter.d.ts +15 -0
  228. package/dist/modules/splitting/LimitByCharsSegmentSplitter.d.ts.map +1 -0
  229. package/dist/modules/splitting/LimitByCharsSegmentSplitter.js +64 -0
  230. package/dist/modules/splitting/LimitByCharsSegmentSplitter.js.map +1 -0
  231. package/dist/modules/splitting/LimitByScaledCharsSegmentSplitter.d.ts +30 -0
  232. package/dist/modules/splitting/LimitByScaledCharsSegmentSplitter.d.ts.map +1 -0
  233. package/dist/modules/splitting/LimitByScaledCharsSegmentSplitter.js +66 -0
  234. package/dist/modules/splitting/LimitByScaledCharsSegmentSplitter.js.map +1 -0
  235. package/dist/modules/splitting/LimitByWordsSegmentSplitter.d.ts +12 -0
  236. package/dist/modules/splitting/LimitByWordsSegmentSplitter.d.ts.map +1 -0
  237. package/dist/modules/splitting/LimitByWordsSegmentSplitter.js +25 -0
  238. package/dist/modules/splitting/LimitByWordsSegmentSplitter.js.map +1 -0
  239. package/dist/modules/splitting/LineSplitter.d.ts +10 -0
  240. package/dist/modules/splitting/LineSplitter.d.ts.map +1 -0
  241. package/dist/modules/splitting/LineSplitter.js +2 -0
  242. package/dist/modules/splitting/LineSplitter.js.map +1 -0
  243. package/dist/modules/splitting/PauseBasedSegmentSplitter.d.ts +24 -0
  244. package/dist/modules/splitting/PauseBasedSegmentSplitter.d.ts.map +1 -0
  245. package/dist/modules/splitting/PauseBasedSegmentSplitter.js +43 -0
  246. package/dist/modules/splitting/PauseBasedSegmentSplitter.js.map +1 -0
  247. package/dist/modules/splitting/SegmentSplitter.d.ts +10 -0
  248. package/dist/modules/splitting/SegmentSplitter.d.ts.map +1 -0
  249. package/dist/modules/splitting/SegmentSplitter.js +2 -0
  250. package/dist/modules/splitting/SegmentSplitter.js.map +1 -0
  251. package/dist/modules/splitting/SpeakerChangeSegmentSplitter.d.ts +17 -0
  252. package/dist/modules/splitting/SpeakerChangeSegmentSplitter.d.ts.map +1 -0
  253. package/dist/modules/splitting/SpeakerChangeSegmentSplitter.js +46 -0
  254. package/dist/modules/splitting/SpeakerChangeSegmentSplitter.js.map +1 -0
  255. package/dist/modules/splitting/TextMeasurer.d.ts +15 -0
  256. package/dist/modules/splitting/TextMeasurer.d.ts.map +1 -0
  257. package/dist/modules/splitting/TextMeasurer.js +2 -0
  258. package/dist/modules/splitting/TextMeasurer.js.map +1 -0
  259. package/dist/modules/splitting/WordSplitter.d.ts +8 -0
  260. package/dist/modules/splitting/WordSplitter.d.ts.map +1 -0
  261. package/dist/modules/splitting/WordSplitter.js +2 -0
  262. package/dist/modules/splitting/WordSplitter.js.map +1 -0
  263. package/dist/modules/splitting/index.d.ts +24 -0
  264. package/dist/modules/splitting/index.d.ts.map +1 -0
  265. package/dist/modules/splitting/index.js +12 -0
  266. package/dist/modules/splitting/index.js.map +1 -0
  267. package/dist/modules/svg-filter/SvgFilter.d.ts +16 -0
  268. package/dist/modules/svg-filter/SvgFilter.d.ts.map +1 -0
  269. package/dist/modules/svg-filter/SvgFilter.js +28 -0
  270. package/dist/modules/svg-filter/SvgFilter.js.map +1 -0
  271. package/dist/modules/svg-filter/SvgFilterBundle.d.ts +16 -0
  272. package/dist/modules/svg-filter/SvgFilterBundle.d.ts.map +1 -0
  273. package/dist/modules/svg-filter/SvgFilterBundle.js +20 -0
  274. package/dist/modules/svg-filter/SvgFilterBundle.js.map +1 -0
  275. package/dist/modules/svg-filter/SvgFilterDefinitions.d.ts +16 -0
  276. package/dist/modules/svg-filter/SvgFilterDefinitions.d.ts.map +1 -0
  277. package/dist/modules/svg-filter/SvgFilterDefinitions.js +25 -0
  278. package/dist/modules/svg-filter/SvgFilterDefinitions.js.map +1 -0
  279. package/dist/modules/svg-filter/SvgFilterDefinitionsParser.d.ts +21 -0
  280. package/dist/modules/svg-filter/SvgFilterDefinitionsParser.d.ts.map +1 -0
  281. package/dist/modules/svg-filter/SvgFilterDefinitionsParser.js +50 -0
  282. package/dist/modules/svg-filter/SvgFilterDefinitionsParser.js.map +1 -0
  283. package/dist/modules/svg-filter/SvgFilterLengthResolver.d.ts +17 -0
  284. package/dist/modules/svg-filter/SvgFilterLengthResolver.d.ts.map +1 -0
  285. package/dist/modules/svg-filter/SvgFilterLengthResolver.js +27 -0
  286. package/dist/modules/svg-filter/SvgFilterLengthResolver.js.map +1 -0
  287. package/dist/modules/svg-filter/SvgFilterScope.d.ts +18 -0
  288. package/dist/modules/svg-filter/SvgFilterScope.d.ts.map +1 -0
  289. package/dist/modules/svg-filter/SvgFilterScope.js +28 -0
  290. package/dist/modules/svg-filter/SvgFilterScope.js.map +1 -0
  291. package/dist/modules/svg-filter/SvgFilterScopeProvider.d.ts +52 -0
  292. package/dist/modules/svg-filter/SvgFilterScopeProvider.d.ts.map +1 -0
  293. package/dist/modules/svg-filter/SvgFilterScopeProvider.js +2 -0
  294. package/dist/modules/svg-filter/SvgFilterScopeProvider.js.map +1 -0
  295. package/dist/modules/svg-filter/SvgFilterScoper.d.ts +60 -0
  296. package/dist/modules/svg-filter/SvgFilterScoper.d.ts.map +1 -0
  297. package/dist/modules/svg-filter/SvgFilterScoper.js +58 -0
  298. package/dist/modules/svg-filter/SvgFilterScoper.js.map +1 -0
  299. package/dist/modules/svg-filter/index.d.ts +10 -0
  300. package/dist/modules/svg-filter/index.d.ts.map +1 -0
  301. package/dist/modules/svg-filter/index.js +8 -0
  302. package/dist/modules/svg-filter/index.js.map +1 -0
  303. package/dist/modules/tagging/RegexTagger.d.ts +11 -0
  304. package/dist/modules/tagging/RegexTagger.d.ts.map +1 -0
  305. package/dist/modules/tagging/RegexTagger.js +32 -0
  306. package/dist/modules/tagging/RegexTagger.js.map +1 -0
  307. package/dist/modules/tagging/SpanTagger.d.ts +25 -0
  308. package/dist/modules/tagging/SpanTagger.d.ts.map +1 -0
  309. package/dist/modules/tagging/SpanTagger.js +73 -0
  310. package/dist/modules/tagging/SpanTagger.js.map +1 -0
  311. package/dist/modules/tagging/StructureTagger.d.ts +20 -0
  312. package/dist/modules/tagging/StructureTagger.d.ts.map +1 -0
  313. package/dist/modules/tagging/StructureTagger.js +74 -0
  314. package/dist/modules/tagging/StructureTagger.js.map +1 -0
  315. package/dist/modules/tagging/Tagger.d.ts +5 -0
  316. package/dist/modules/tagging/Tagger.d.ts.map +1 -0
  317. package/dist/modules/tagging/Tagger.js +5 -0
  318. package/dist/modules/tagging/Tagger.js.map +1 -0
  319. package/dist/modules/tagging/WordlistTagger.d.ts +11 -0
  320. package/dist/modules/tagging/WordlistTagger.d.ts.map +1 -0
  321. package/dist/modules/tagging/WordlistTagger.js +31 -0
  322. package/dist/modules/tagging/WordlistTagger.js.map +1 -0
  323. package/dist/modules/tagging/index.d.ts +6 -0
  324. package/dist/modules/tagging/index.d.ts.map +1 -0
  325. package/dist/modules/tagging/index.js +6 -0
  326. package/dist/modules/tagging/index.js.map +1 -0
  327. package/dist/modules/transcription/AudioDecoder.d.ts +11 -0
  328. package/dist/modules/transcription/AudioDecoder.d.ts.map +1 -0
  329. package/dist/modules/transcription/AudioDecoder.js +2 -0
  330. package/dist/modules/transcription/AudioDecoder.js.map +1 -0
  331. package/dist/modules/transcription/BrowserAudioDecoder.d.ts +13 -0
  332. package/dist/modules/transcription/BrowserAudioDecoder.d.ts.map +1 -0
  333. package/dist/modules/transcription/BrowserAudioDecoder.js +34 -0
  334. package/dist/modules/transcription/BrowserAudioDecoder.js.map +1 -0
  335. package/dist/modules/transcription/PassthroughTranscriber.d.ts +20 -0
  336. package/dist/modules/transcription/PassthroughTranscriber.d.ts.map +1 -0
  337. package/dist/modules/transcription/PassthroughTranscriber.js +23 -0
  338. package/dist/modules/transcription/PassthroughTranscriber.js.map +1 -0
  339. package/dist/modules/transcription/PreDecodedAudioDecoder.d.ts +12 -0
  340. package/dist/modules/transcription/PreDecodedAudioDecoder.d.ts.map +1 -0
  341. package/dist/modules/transcription/PreDecodedAudioDecoder.js +14 -0
  342. package/dist/modules/transcription/PreDecodedAudioDecoder.js.map +1 -0
  343. package/dist/modules/transcription/SrtTranscriber.d.ts +33 -0
  344. package/dist/modules/transcription/SrtTranscriber.d.ts.map +1 -0
  345. package/dist/modules/transcription/SrtTranscriber.js +111 -0
  346. package/dist/modules/transcription/SrtTranscriber.js.map +1 -0
  347. package/dist/modules/transcription/Transcriber.d.ts +23 -0
  348. package/dist/modules/transcription/Transcriber.d.ts.map +1 -0
  349. package/dist/modules/transcription/Transcriber.js +2 -0
  350. package/dist/modules/transcription/Transcriber.js.map +1 -0
  351. package/dist/modules/transcription/WhisperTranscriber.d.ts +44 -0
  352. package/dist/modules/transcription/WhisperTranscriber.d.ts.map +1 -0
  353. package/dist/modules/transcription/WhisperTranscriber.js +162 -0
  354. package/dist/modules/transcription/WhisperTranscriber.js.map +1 -0
  355. package/dist/modules/transcription/index.d.ts +8 -0
  356. package/dist/modules/transcription/index.d.ts.map +1 -0
  357. package/dist/modules/transcription/index.js +6 -0
  358. package/dist/modules/transcription/index.js.map +1 -0
  359. package/dist/modules/video/RenderJob.d.ts +95 -0
  360. package/dist/modules/video/RenderJob.d.ts.map +1 -0
  361. package/dist/modules/video/RenderJob.js +2 -0
  362. package/dist/modules/video/RenderJob.js.map +1 -0
  363. package/dist/modules/video/VideoRenderer.d.ts +5 -0
  364. package/dist/modules/video/VideoRenderer.d.ts.map +1 -0
  365. package/dist/modules/video/VideoRenderer.js +2 -0
  366. package/dist/modules/video/VideoRenderer.js.map +1 -0
  367. package/dist/modules/video/index.d.ts +33 -0
  368. package/dist/modules/video/index.d.ts.map +1 -0
  369. package/dist/modules/video/index.js +17 -0
  370. package/dist/modules/video/index.js.map +1 -0
  371. package/dist/modules/video/mediabunny/MediaBunnyVideoRenderer.d.ts +69 -0
  372. package/dist/modules/video/mediabunny/MediaBunnyVideoRenderer.d.ts.map +1 -0
  373. package/dist/modules/video/mediabunny/MediaBunnyVideoRenderer.js +206 -0
  374. package/dist/modules/video/mediabunny/MediaBunnyVideoRenderer.js.map +1 -0
  375. package/dist/modules/video/mediabunny/audio/AudioTrackBridge.d.ts +24 -0
  376. package/dist/modules/video/mediabunny/audio/AudioTrackBridge.d.ts.map +1 -0
  377. package/dist/modules/video/mediabunny/audio/AudioTrackBridge.js +2 -0
  378. package/dist/modules/video/mediabunny/audio/AudioTrackBridge.js.map +1 -0
  379. package/dist/modules/video/mediabunny/audio/AudioTrackBridgeFactory.d.ts +20 -0
  380. package/dist/modules/video/mediabunny/audio/AudioTrackBridgeFactory.d.ts.map +1 -0
  381. package/dist/modules/video/mediabunny/audio/AudioTrackBridgeFactory.js +2 -0
  382. package/dist/modules/video/mediabunny/audio/AudioTrackBridgeFactory.js.map +1 -0
  383. package/dist/modules/video/mediabunny/audio/DefaultAudioTrackBridgeFactory.d.ts +11 -0
  384. package/dist/modules/video/mediabunny/audio/DefaultAudioTrackBridgeFactory.d.ts.map +1 -0
  385. package/dist/modules/video/mediabunny/audio/DefaultAudioTrackBridgeFactory.js +32 -0
  386. package/dist/modules/video/mediabunny/audio/DefaultAudioTrackBridgeFactory.js.map +1 -0
  387. package/dist/modules/video/mediabunny/audio/DiscardAudioTrackBridge.d.ts +12 -0
  388. package/dist/modules/video/mediabunny/audio/DiscardAudioTrackBridge.d.ts.map +1 -0
  389. package/dist/modules/video/mediabunny/audio/DiscardAudioTrackBridge.js +14 -0
  390. package/dist/modules/video/mediabunny/audio/DiscardAudioTrackBridge.js.map +1 -0
  391. package/dist/modules/video/mediabunny/audio/PassthroughAudioTrackBridge.d.ts +28 -0
  392. package/dist/modules/video/mediabunny/audio/PassthroughAudioTrackBridge.d.ts.map +1 -0
  393. package/dist/modules/video/mediabunny/audio/PassthroughAudioTrackBridge.js +52 -0
  394. package/dist/modules/video/mediabunny/audio/PassthroughAudioTrackBridge.js.map +1 -0
  395. package/dist/modules/video/mediabunny/audio/TranscodeAudioTrackBridge.d.ts +25 -0
  396. package/dist/modules/video/mediabunny/audio/TranscodeAudioTrackBridge.d.ts.map +1 -0
  397. package/dist/modules/video/mediabunny/audio/TranscodeAudioTrackBridge.js +52 -0
  398. package/dist/modules/video/mediabunny/audio/TranscodeAudioTrackBridge.js.map +1 -0
  399. package/dist/modules/video/mediabunny/caption/BatchedSubtitleLayerSource.d.ts +32 -0
  400. package/dist/modules/video/mediabunny/caption/BatchedSubtitleLayerSource.d.ts.map +1 -0
  401. package/dist/modules/video/mediabunny/caption/BatchedSubtitleLayerSource.js +60 -0
  402. package/dist/modules/video/mediabunny/caption/BatchedSubtitleLayerSource.js.map +1 -0
  403. package/dist/modules/video/mediabunny/caption/ComposedSubtitleLayerSource.d.ts +27 -0
  404. package/dist/modules/video/mediabunny/caption/ComposedSubtitleLayerSource.d.ts.map +1 -0
  405. package/dist/modules/video/mediabunny/caption/ComposedSubtitleLayerSource.js +72 -0
  406. package/dist/modules/video/mediabunny/caption/ComposedSubtitleLayerSource.js.map +1 -0
  407. package/dist/modules/video/mediabunny/caption/SubtitleLayerSource.d.ts +32 -0
  408. package/dist/modules/video/mediabunny/caption/SubtitleLayerSource.d.ts.map +1 -0
  409. package/dist/modules/video/mediabunny/caption/SubtitleLayerSource.js +2 -0
  410. package/dist/modules/video/mediabunny/caption/SubtitleLayerSource.js.map +1 -0
  411. package/dist/modules/video/mediabunny/caption/VideoBoundSubtitleLayerSource.d.ts +25 -0
  412. package/dist/modules/video/mediabunny/caption/VideoBoundSubtitleLayerSource.d.ts.map +1 -0
  413. package/dist/modules/video/mediabunny/caption/VideoBoundSubtitleLayerSource.js +37 -0
  414. package/dist/modules/video/mediabunny/caption/VideoBoundSubtitleLayerSource.js.map +1 -0
  415. package/dist/modules/video/mediabunny/codec/CodecPolicy.d.ts +32 -0
  416. package/dist/modules/video/mediabunny/codec/CodecPolicy.d.ts.map +1 -0
  417. package/dist/modules/video/mediabunny/codec/CodecPolicy.js +2 -0
  418. package/dist/modules/video/mediabunny/codec/CodecPolicy.js.map +1 -0
  419. package/dist/modules/video/mediabunny/codec/DefaultCodecPolicy.d.ts +59 -0
  420. package/dist/modules/video/mediabunny/codec/DefaultCodecPolicy.d.ts.map +1 -0
  421. package/dist/modules/video/mediabunny/codec/DefaultCodecPolicy.js +110 -0
  422. package/dist/modules/video/mediabunny/codec/DefaultCodecPolicy.js.map +1 -0
  423. package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoder.d.ts +27 -0
  424. package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoder.d.ts.map +1 -0
  425. package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoder.js +44 -0
  426. package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoder.js.map +1 -0
  427. package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoderFactory.d.ts +10 -0
  428. package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoderFactory.d.ts.map +1 -0
  429. package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoderFactory.js +15 -0
  430. package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoderFactory.js.map +1 -0
  431. package/dist/modules/video/mediabunny/encoder/VideoTrackEncoder.d.ts +29 -0
  432. package/dist/modules/video/mediabunny/encoder/VideoTrackEncoder.d.ts.map +1 -0
  433. package/dist/modules/video/mediabunny/encoder/VideoTrackEncoder.js +2 -0
  434. package/dist/modules/video/mediabunny/encoder/VideoTrackEncoder.js.map +1 -0
  435. package/dist/modules/video/mediabunny/encoder/VideoTrackEncoderFactory.d.ts +16 -0
  436. package/dist/modules/video/mediabunny/encoder/VideoTrackEncoderFactory.d.ts.map +1 -0
  437. package/dist/modules/video/mediabunny/encoder/VideoTrackEncoderFactory.js +2 -0
  438. package/dist/modules/video/mediabunny/encoder/VideoTrackEncoderFactory.js.map +1 -0
  439. package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.d.ts +25 -0
  440. package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.d.ts.map +1 -0
  441. package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.js +74 -0
  442. package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.js.map +1 -0
  443. package/dist/modules/video/mediabunny/frame/CustomWebCodecsVideoFrameDecoder.d.ts +26 -0
  444. package/dist/modules/video/mediabunny/frame/CustomWebCodecsVideoFrameDecoder.d.ts.map +1 -0
  445. package/dist/modules/video/mediabunny/frame/CustomWebCodecsVideoFrameDecoder.js +147 -0
  446. package/dist/modules/video/mediabunny/frame/CustomWebCodecsVideoFrameDecoder.js.map +1 -0
  447. package/dist/modules/video/mediabunny/frame/DefaultVideoFrameDecoderFactory.d.ts +12 -0
  448. package/dist/modules/video/mediabunny/frame/DefaultVideoFrameDecoderFactory.d.ts.map +1 -0
  449. package/dist/modules/video/mediabunny/frame/DefaultVideoFrameDecoderFactory.js +25 -0
  450. package/dist/modules/video/mediabunny/frame/DefaultVideoFrameDecoderFactory.js.map +1 -0
  451. package/dist/modules/video/mediabunny/frame/FrameCompositor.d.ts +30 -0
  452. package/dist/modules/video/mediabunny/frame/FrameCompositor.d.ts.map +1 -0
  453. package/dist/modules/video/mediabunny/frame/FrameCompositor.js +2 -0
  454. package/dist/modules/video/mediabunny/frame/FrameCompositor.js.map +1 -0
  455. package/dist/modules/video/mediabunny/frame/HtmlVideoElementVideoFrameDecoder.d.ts +44 -0
  456. package/dist/modules/video/mediabunny/frame/HtmlVideoElementVideoFrameDecoder.d.ts.map +1 -0
  457. package/dist/modules/video/mediabunny/frame/HtmlVideoElementVideoFrameDecoder.js +334 -0
  458. package/dist/modules/video/mediabunny/frame/HtmlVideoElementVideoFrameDecoder.js.map +1 -0
  459. package/dist/modules/video/mediabunny/frame/LayeredFrameCompositor.d.ts +10 -0
  460. package/dist/modules/video/mediabunny/frame/LayeredFrameCompositor.d.ts.map +1 -0
  461. package/dist/modules/video/mediabunny/frame/LayeredFrameCompositor.js +17 -0
  462. package/dist/modules/video/mediabunny/frame/LayeredFrameCompositor.js.map +1 -0
  463. package/dist/modules/video/mediabunny/frame/VideoFrameDecoder.d.ts +30 -0
  464. package/dist/modules/video/mediabunny/frame/VideoFrameDecoder.d.ts.map +1 -0
  465. package/dist/modules/video/mediabunny/frame/VideoFrameDecoder.js +2 -0
  466. package/dist/modules/video/mediabunny/frame/VideoFrameDecoder.js.map +1 -0
  467. package/dist/modules/video/mediabunny/frame/VideoFrameDecoderFactory.d.ts +22 -0
  468. package/dist/modules/video/mediabunny/frame/VideoFrameDecoderFactory.d.ts.map +1 -0
  469. package/dist/modules/video/mediabunny/frame/VideoFrameDecoderFactory.js +2 -0
  470. package/dist/modules/video/mediabunny/frame/VideoFrameDecoderFactory.js.map +1 -0
  471. package/dist/modules/video/mediabunny/frame/WebCodecsVideoFrameDecoder.d.ts +17 -0
  472. package/dist/modules/video/mediabunny/frame/WebCodecsVideoFrameDecoder.d.ts.map +1 -0
  473. package/dist/modules/video/mediabunny/frame/WebCodecsVideoFrameDecoder.js +48 -0
  474. package/dist/modules/video/mediabunny/frame/WebCodecsVideoFrameDecoder.js.map +1 -0
  475. package/dist/modules/video/mediabunny/output/MediaBunnyOutputTargetBuilder.d.ts +11 -0
  476. package/dist/modules/video/mediabunny/output/MediaBunnyOutputTargetBuilder.d.ts.map +1 -0
  477. package/dist/modules/video/mediabunny/output/MediaBunnyOutputTargetBuilder.js +22 -0
  478. package/dist/modules/video/mediabunny/output/MediaBunnyOutputTargetBuilder.js.map +1 -0
  479. package/dist/modules/video/mediabunny/output/OutputTargetBuilder.d.ts +27 -0
  480. package/dist/modules/video/mediabunny/output/OutputTargetBuilder.d.ts.map +1 -0
  481. package/dist/modules/video/mediabunny/output/OutputTargetBuilder.js +2 -0
  482. package/dist/modules/video/mediabunny/output/OutputTargetBuilder.js.map +1 -0
  483. package/package.json +67 -0
@@ -0,0 +1,43 @@
1
+ import { Segment } from '../document/Segment';
2
+ import { Line } from '../document/Line';
3
+ /**
4
+ * Splits segments at audible pauses between consecutive words. The cut is
5
+ * placed wherever the gap between the previous word's `end` and the next
6
+ * word's `start` exceeds `minGap`. This is the coarsest segmentation step:
7
+ * it lets downstream splitters (boundary, char/word limits) refine the
8
+ * pause-bounded chunks without ever merging across a real pause.
9
+ */
10
+ export class PauseBasedSegmentSplitter {
11
+ _config;
12
+ constructor(_config) {
13
+ this._config = _config;
14
+ }
15
+ split(segments) {
16
+ return segments.flatMap((segment) => this.splitSegment(segment));
17
+ }
18
+ splitSegment(segment) {
19
+ const words = segment.getWords();
20
+ if (words.length <= 1)
21
+ return [segment];
22
+ const { minGap } = this._config;
23
+ const result = [];
24
+ let currentChunk = [words[0]];
25
+ for (let i = 1; i < words.length; i++) {
26
+ const prev = words[i - 1];
27
+ const word = words[i];
28
+ const gap = word.time.start - prev.time.end;
29
+ if (gap >= minGap) {
30
+ result.push(new Segment({ lines: [new Line({ words: currentChunk })] }));
31
+ currentChunk = [word];
32
+ }
33
+ else {
34
+ currentChunk.push(word);
35
+ }
36
+ }
37
+ if (currentChunk.length > 0) {
38
+ result.push(new Segment({ lines: [new Line({ words: currentChunk })] }));
39
+ }
40
+ return result.length > 0 ? result : [segment];
41
+ }
42
+ }
43
+ //# sourceMappingURL=PauseBasedSegmentSplitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PauseBasedSegmentSplitter.js","sourceRoot":"","sources":["../../../src/modules/splitting/PauseBasedSegmentSplitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAW9C;;;;;;GAMG;AACH,MAAM,OAAO,yBAAyB;IACP;IAA7B,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAE1D,KAAK,CAAC,QAAgC;QACpC,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,YAAY,CAAC,OAAgB;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAExC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,YAAY,GAAiB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5C,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzE,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { Segment } from '../document/index';
2
+ /**
3
+ * Splits the segments of a single Section into more granular Segments based
4
+ * on layout constraints. Receives only the segments contained in one Section
5
+ * and returns the new partition for that Section.
6
+ */
7
+ export interface SegmentSplitter {
8
+ split(segments: ReadonlyArray<Segment>): Segment[];
9
+ }
10
+ //# sourceMappingURL=SegmentSplitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentSplitter.d.ts","sourceRoot":"","sources":["../../../src/modules/splitting/SegmentSplitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;CACpD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SegmentSplitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentSplitter.js","sourceRoot":"","sources":["../../../src/modules/splitting/SegmentSplitter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import type { SegmentSplitter } from '../splitting/SegmentSplitter';
2
+ import { Segment } from '../document/Segment';
3
+ /**
4
+ * Splits each segment wherever consecutive words carry a different
5
+ * `speakerId`. Words with `speakerId === null` form their own group, so
6
+ * mixed documents still produce clean mono-speaker boundaries.
7
+ *
8
+ * When `enabled` is false the splitter is a no-op — useful for callers
9
+ * that intentionally keep multi-speaker words in a single segment.
10
+ */
11
+ export declare class SpeakerChangeSegmentSplitter implements SegmentSplitter {
12
+ private readonly enabled;
13
+ constructor(enabled: boolean);
14
+ split(segments: ReadonlyArray<Segment>): Segment[];
15
+ private _splitOne;
16
+ }
17
+ //# sourceMappingURL=SpeakerChangeSegmentSplitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeakerChangeSegmentSplitter.d.ts","sourceRoot":"","sources":["../../../src/modules/splitting/SpeakerChangeSegmentSplitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIpD;;;;;;;GAOG;AACH,qBAAa,4BAA6B,YAAW,eAAe;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE;IAKlD,OAAO,CAAC,SAAS;CAuBlB"}
@@ -0,0 +1,46 @@
1
+ import { Segment } from '../document/Segment';
2
+ import { Line } from '../document/Line';
3
+ /**
4
+ * Splits each segment wherever consecutive words carry a different
5
+ * `speakerId`. Words with `speakerId === null` form their own group, so
6
+ * mixed documents still produce clean mono-speaker boundaries.
7
+ *
8
+ * When `enabled` is false the splitter is a no-op — useful for callers
9
+ * that intentionally keep multi-speaker words in a single segment.
10
+ */
11
+ export class SpeakerChangeSegmentSplitter {
12
+ enabled;
13
+ constructor(enabled) {
14
+ this.enabled = enabled;
15
+ }
16
+ split(segments) {
17
+ if (!this.enabled)
18
+ return [...segments];
19
+ return segments.flatMap((segment) => this._splitOne(segment));
20
+ }
21
+ _splitOne(segment) {
22
+ const words = segment.getWords();
23
+ if (words.length <= 1)
24
+ return [segment];
25
+ const chunks = [];
26
+ let current = [words[0]];
27
+ let currentSpeaker = words[0].speakerId;
28
+ for (let i = 1; i < words.length; i++) {
29
+ const word = words[i];
30
+ if (word.speakerId !== currentSpeaker) {
31
+ chunks.push(current);
32
+ current = [word];
33
+ currentSpeaker = word.speakerId;
34
+ }
35
+ else {
36
+ current.push(word);
37
+ }
38
+ }
39
+ if (current.length > 0)
40
+ chunks.push(current);
41
+ if (chunks.length <= 1)
42
+ return [segment];
43
+ return chunks.map((chunk) => new Segment({ lines: [new Line({ words: chunk })] }));
44
+ }
45
+ }
46
+ //# sourceMappingURL=SpeakerChangeSegmentSplitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeakerChangeSegmentSplitter.js","sourceRoot":"","sources":["../../../src/modules/splitting/SpeakerChangeSegmentSplitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAG9C;;;;;;;GAOG;AACH,MAAM,OAAO,4BAA4B;IACV;IAA7B,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,KAAK,CAAC,QAAgC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,SAAS,CAAC,OAAgB;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAExC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,OAAO,GAAW,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAClC,IAAI,cAAc,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,IAAI,IAAI,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjB,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Resolves the rendered pixel width of a span of text. Implementations
3
+ * decide how (DOM probe, Canvas 2D, lookup table, WASM, etc.); pixel-width
4
+ * line splitters consume only this contract and stay agnostic to the
5
+ * measurement strategy. Consumers can plug in their own implementation
6
+ * when they have richer typography information than the default probe
7
+ * can recover from CSS alone.
8
+ */
9
+ export interface TextMeasurer {
10
+ /** Width of `text` rendered as a single inline run, in px. */
11
+ measure(text: string): number;
12
+ /** Width of an inter-word space, in px. */
13
+ spaceWidth(): number;
14
+ }
15
+ //# sourceMappingURL=TextMeasurer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextMeasurer.d.ts","sourceRoot":"","sources":["../../../src/modules/splitting/TextMeasurer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,2CAA2C;IAC3C,UAAU,IAAI,MAAM,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TextMeasurer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextMeasurer.js","sourceRoot":"","sources":["../../../src/modules/splitting/TextMeasurer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Splits a word's text into the visual units a renderer should paint as
3
+ * separate elements (typically per-letter spans).
4
+ */
5
+ export interface WordSplitter {
6
+ split(text: string): string[];
7
+ }
8
+ //# sourceMappingURL=WordSplitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WordSplitter.d.ts","sourceRoot":"","sources":["../../../src/modules/splitting/WordSplitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WordSplitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WordSplitter.js","sourceRoot":"","sources":["../../../src/modules/splitting/WordSplitter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ export type { SegmentSplitter } from '../splitting/SegmentSplitter';
2
+ export { CompositeSegmentSplitter } from '../splitting/CompositeSegmentSplitter';
3
+ export { LimitByWordsSegmentSplitter } from '../splitting/LimitByWordsSegmentSplitter';
4
+ export type { LimitByWordsConfig } from '../splitting/LimitByWordsSegmentSplitter';
5
+ export { LimitByCharsSegmentSplitter } from '../splitting/LimitByCharsSegmentSplitter';
6
+ export type { LimitByCharsConfig } from '../splitting/LimitByCharsSegmentSplitter';
7
+ export { LimitByScaledCharsSegmentSplitter } from '../splitting/LimitByScaledCharsSegmentSplitter';
8
+ export type { LimitByScaledCharsConfig } from '../splitting/LimitByScaledCharsSegmentSplitter';
9
+ export { BoundarySegmentSplitter } from '../splitting/BoundarySegmentSplitter';
10
+ export type { BoundaryConfig } from '../splitting/BoundarySegmentSplitter';
11
+ export { PauseBasedSegmentSplitter } from '../splitting/PauseBasedSegmentSplitter';
12
+ export type { PauseBasedConfig } from '../splitting/PauseBasedSegmentSplitter';
13
+ export { SpeakerChangeSegmentSplitter } from '../splitting/SpeakerChangeSegmentSplitter';
14
+ export type { LineSplitter } from '../splitting/LineSplitter';
15
+ export { BalancedLineSplitter } from '../splitting/BalancedLineSplitter';
16
+ export type { BalancedLineSplitterConfig } from '../splitting/BalancedLineSplitter';
17
+ export { BalancedPixelWidthLineSplitter } from '../splitting/BalancedPixelWidthLineSplitter';
18
+ export type { BalancedPixelWidthLineSplitterConfig } from '../splitting/BalancedPixelWidthLineSplitter';
19
+ export type { TextMeasurer } from '../splitting/TextMeasurer';
20
+ export { DomProbeCanvasTextMeasurer } from '../splitting/DomProbeCanvasTextMeasurer';
21
+ export type { DomProbeCanvasTextMeasurerParams } from '../splitting/DomProbeCanvasTextMeasurer';
22
+ export type { WordSplitter } from '../splitting/WordSplitter';
23
+ export { GraphemeWordSplitter } from '../splitting/GraphemeWordSplitter';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/splitting/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,YAAY,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,YAAY,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,iCAAiC,EAAE,MAAM,sDAAsD,CAAC;AACzG,YAAY,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,YAAY,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,YAAY,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AACnG,YAAY,EAAE,oCAAoC,EAAE,MAAM,mDAAmD,CAAC;AAC9G,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,YAAY,EAAE,gCAAgC,EAAE,MAAM,+CAA+C,CAAC;AACtG,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export { CompositeSegmentSplitter } from '../splitting/CompositeSegmentSplitter';
2
+ export { LimitByWordsSegmentSplitter } from '../splitting/LimitByWordsSegmentSplitter';
3
+ export { LimitByCharsSegmentSplitter } from '../splitting/LimitByCharsSegmentSplitter';
4
+ export { LimitByScaledCharsSegmentSplitter } from '../splitting/LimitByScaledCharsSegmentSplitter';
5
+ export { BoundarySegmentSplitter } from '../splitting/BoundarySegmentSplitter';
6
+ export { PauseBasedSegmentSplitter } from '../splitting/PauseBasedSegmentSplitter';
7
+ export { SpeakerChangeSegmentSplitter } from '../splitting/SpeakerChangeSegmentSplitter';
8
+ export { BalancedLineSplitter } from '../splitting/BalancedLineSplitter';
9
+ export { BalancedPixelWidthLineSplitter } from '../splitting/BalancedPixelWidthLineSplitter';
10
+ export { DomProbeCanvasTextMeasurer } from '../splitting/DomProbeCanvasTextMeasurer';
11
+ export { GraphemeWordSplitter } from '../splitting/GraphemeWordSplitter';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/splitting/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F,OAAO,EAAE,iCAAiC,EAAE,MAAM,sDAAsD,CAAC;AAEzG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAEzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAE/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AAGnG,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAG3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { SvgFilterScope } from '../svg-filter/SvgFilterScope';
2
+ /**
3
+ * One `<filter>` declaration that a stylesheet references via
4
+ * `filter: url(#id)`. The body XML carries `var(--name, fallback)`
5
+ * placeholders that `materialize` resolves against a render-time
6
+ * scope; unresolved references are left in place so attributes that
7
+ * are CSS properties (e.g. `flood-color`) can still resolve via the
8
+ * host document's CSS variable inheritance after the filter mounts.
9
+ */
10
+ export declare class SvgFilter {
11
+ readonly id: string;
12
+ private readonly source;
13
+ constructor(id: string, source: string);
14
+ materialize(scope: SvgFilterScope): string;
15
+ }
16
+ //# sourceMappingURL=SvgFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilter.d.ts","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE;;;;;;;GAOG;AACH,qBAAa,SAAS;IAElB,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADd,EAAE,EAAE,MAAM,EACF,MAAM,EAAE,MAAM;IAGjC,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;CAQ3C"}
@@ -0,0 +1,28 @@
1
+ const VAR_REF_RE = /var\(\s*(--[a-zA-Z_][a-zA-Z0-9_-]*)\s*(?:,\s*([^)]*?))?\s*\)/g;
2
+ /**
3
+ * One `<filter>` declaration that a stylesheet references via
4
+ * `filter: url(#id)`. The body XML carries `var(--name, fallback)`
5
+ * placeholders that `materialize` resolves against a render-time
6
+ * scope; unresolved references are left in place so attributes that
7
+ * are CSS properties (e.g. `flood-color`) can still resolve via the
8
+ * host document's CSS variable inheritance after the filter mounts.
9
+ */
10
+ export class SvgFilter {
11
+ id;
12
+ source;
13
+ constructor(id, source) {
14
+ this.id = id;
15
+ this.source = source;
16
+ }
17
+ materialize(scope) {
18
+ return this.source.replace(VAR_REF_RE, (match, name, fallback) => {
19
+ const value = scope.resolve(name);
20
+ if (value !== undefined)
21
+ return value;
22
+ if (fallback !== undefined)
23
+ return fallback;
24
+ return match;
25
+ });
26
+ }
27
+ }
28
+ //# sourceMappingURL=SvgFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilter.js","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilter.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,+DAA+D,CAAC;AAEnF;;;;;;;GAOG;AACH,MAAM,OAAO,SAAS;IAET;IACQ;IAFnB,YACW,EAAU,EACF,MAAc;QADtB,OAAE,GAAF,EAAE,CAAQ;QACF,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,WAAW,CAAC,KAAqB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACtC,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { SvgFilterDefinitions } from '../svg-filter/SvgFilterDefinitions';
2
+ import type { SvgFilterScopeProvider } from '../svg-filter/SvgFilterScopeProvider';
3
+ /**
4
+ * Pairs an `SvgFilterDefinitions` (the parsed filter bodies) with
5
+ * the `SvgFilterScopeProvider` (the strategy that resolves their
6
+ * `var(--…)` placeholders at render time). Definitions and scope
7
+ * are meaningless apart: a definition without a scope can't render,
8
+ * a scope without definitions has nothing to bind.
9
+ */
10
+ export declare class SvgFilterBundle {
11
+ readonly definitions: SvgFilterDefinitions;
12
+ readonly scopeProvider: SvgFilterScopeProvider;
13
+ static empty(scopeProvider: SvgFilterScopeProvider): SvgFilterBundle;
14
+ constructor(definitions: SvgFilterDefinitions, scopeProvider: SvgFilterScopeProvider);
15
+ }
16
+ //# sourceMappingURL=SvgFilterBundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterBundle.d.ts","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterBundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEzF;;;;;;GAMG;AACH,qBAAa,eAAe;IAMxB,QAAQ,CAAC,WAAW,EAAE,oBAAoB;IAC1C,QAAQ,CAAC,aAAa,EAAE,sBAAsB;IANhD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,sBAAsB,GAAG,eAAe;gBAKzD,WAAW,EAAE,oBAAoB,EACjC,aAAa,EAAE,sBAAsB;CAEjD"}
@@ -0,0 +1,20 @@
1
+ import { SvgFilterDefinitions } from '../svg-filter/SvgFilterDefinitions';
2
+ /**
3
+ * Pairs an `SvgFilterDefinitions` (the parsed filter bodies) with
4
+ * the `SvgFilterScopeProvider` (the strategy that resolves their
5
+ * `var(--…)` placeholders at render time). Definitions and scope
6
+ * are meaningless apart: a definition without a scope can't render,
7
+ * a scope without definitions has nothing to bind.
8
+ */
9
+ export class SvgFilterBundle {
10
+ definitions;
11
+ scopeProvider;
12
+ static empty(scopeProvider) {
13
+ return new SvgFilterBundle(SvgFilterDefinitions.empty(), scopeProvider);
14
+ }
15
+ constructor(definitions, scopeProvider) {
16
+ this.definitions = definitions;
17
+ this.scopeProvider = scopeProvider;
18
+ }
19
+ }
20
+ //# sourceMappingURL=SvgFilterBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterBundle.js","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterBundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAGhF;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IAMf;IACA;IANX,MAAM,CAAC,KAAK,CAAC,aAAqC;QAChD,OAAO,IAAI,eAAe,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC;IAED,YACW,WAAiC,EACjC,aAAqC;QADrC,gBAAW,GAAX,WAAW,CAAsB;QACjC,kBAAa,GAAb,aAAa,CAAwB;IAC7C,CAAC;CACL"}
@@ -0,0 +1,16 @@
1
+ import type { SvgFilter } from '../svg-filter/SvgFilter';
2
+ /**
3
+ * Immutable list of `<filter>` declarations that a stylesheet may
4
+ * reference via `filter: url(#id)`. Each entry carries the filter's
5
+ * local id (the value inside `url(#…)`) and an XML body whose
6
+ * `var(--name)` placeholders get resolved at render time.
7
+ */
8
+ export declare class SvgFilterDefinitions {
9
+ private readonly _filters;
10
+ static empty(): SvgFilterDefinitions;
11
+ constructor(_filters: ReadonlyArray<SvgFilter>);
12
+ get filters(): ReadonlyArray<SvgFilter>;
13
+ get ids(): ReadonlySet<string>;
14
+ isEmpty(): boolean;
15
+ }
16
+ //# sourceMappingURL=SvgFilterDefinitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterDefinitions.d.ts","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;;;;GAKG;AACH,qBAAa,oBAAoB;IAKnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,MAAM,CAAC,KAAK,IAAI,oBAAoB;gBAIP,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC;IAE/D,IAAI,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAEtC;IAED,IAAI,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAE7B;IAED,OAAO,IAAI,OAAO;CAGnB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Immutable list of `<filter>` declarations that a stylesheet may
3
+ * reference via `filter: url(#id)`. Each entry carries the filter's
4
+ * local id (the value inside `url(#…)`) and an XML body whose
5
+ * `var(--name)` placeholders get resolved at render time.
6
+ */
7
+ export class SvgFilterDefinitions {
8
+ _filters;
9
+ static empty() {
10
+ return new SvgFilterDefinitions([]);
11
+ }
12
+ constructor(_filters) {
13
+ this._filters = _filters;
14
+ }
15
+ get filters() {
16
+ return this._filters;
17
+ }
18
+ get ids() {
19
+ return new Set(this._filters.map((f) => f.id));
20
+ }
21
+ isEmpty() {
22
+ return this._filters.length === 0;
23
+ }
24
+ }
25
+ //# sourceMappingURL=SvgFilterDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterDefinitions.js","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterDefinitions.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAKF;IAJ7B,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,YAA6B,QAAkC;QAAlC,aAAQ,GAAR,QAAQ,CAA0B;IAAG,CAAC;IAEnE,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import { SvgFilterDefinitions } from '../svg-filter/SvgFilterDefinitions';
2
+ /**
3
+ * Reads an SVG source string and produces an `SvgFilterDefinitions`
4
+ * containing one `SvgFilter` per `<filter id="…">` element found.
5
+ *
6
+ * Comments are stripped before parsing so authors may mention `--`
7
+ * sequences (e.g. a `var(--name)` reference) inside `<!-- … -->`
8
+ * without tripping the XML rule against `--` in comment bodies, and
9
+ * so the parsed bodies don't carry comments into the rendered SVG
10
+ * payload.
11
+ *
12
+ * SMIL animation elements (`<animate>`, `<set>`, `<animateTransform>`,
13
+ * `<animateMotion>`) are rejected. They don't tick when the SVG is
14
+ * decoded as an image, which produces a frozen filter instead of a
15
+ * playing one — invariably a bug.
16
+ */
17
+ export declare class SvgFilterDefinitionsParser {
18
+ parse(source: string): SvgFilterDefinitions;
19
+ private assertNoSmil;
20
+ }
21
+ //# sourceMappingURL=SvgFilterDefinitionsParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterDefinitionsParser.d.ts","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterDefinitionsParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAMhF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,0BAA0B;IACrC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IAoB3C,OAAO,CAAC,YAAY;CAWrB"}
@@ -0,0 +1,50 @@
1
+ import { SvgFilter } from '../svg-filter/SvgFilter';
2
+ import { SvgFilterDefinitions } from '../svg-filter/SvgFilterDefinitions';
3
+ const SMIL_TAGS = ['animate', 'animateTransform', 'animateMotion', 'set'];
4
+ const COMMENT_RE = /<!--[\s\S]*?-->/g;
5
+ /**
6
+ * Reads an SVG source string and produces an `SvgFilterDefinitions`
7
+ * containing one `SvgFilter` per `<filter id="…">` element found.
8
+ *
9
+ * Comments are stripped before parsing so authors may mention `--`
10
+ * sequences (e.g. a `var(--name)` reference) inside `<!-- … -->`
11
+ * without tripping the XML rule against `--` in comment bodies, and
12
+ * so the parsed bodies don't carry comments into the rendered SVG
13
+ * payload.
14
+ *
15
+ * SMIL animation elements (`<animate>`, `<set>`, `<animateTransform>`,
16
+ * `<animateMotion>`) are rejected. They don't tick when the SVG is
17
+ * decoded as an image, which produces a frozen filter instead of a
18
+ * playing one — invariably a bug.
19
+ */
20
+ export class SvgFilterDefinitionsParser {
21
+ parse(source) {
22
+ const stripped = source.replace(COMMENT_RE, '');
23
+ const doc = new DOMParser().parseFromString(stripped, 'image/svg+xml');
24
+ const parseError = doc.querySelector('parsererror');
25
+ if (parseError) {
26
+ throw new Error(`SVG filter parse error: ${parseError.textContent ?? 'unknown'}`);
27
+ }
28
+ const serializer = new XMLSerializer();
29
+ const filters = Array.from(doc.querySelectorAll('filter')).map((el) => {
30
+ const id = el.getAttribute('id');
31
+ if (!id) {
32
+ throw new Error('Every <filter> must have an id attribute');
33
+ }
34
+ this.assertNoSmil(el, id);
35
+ const body = Array.from(el.childNodes).map((n) => serializer.serializeToString(n)).join('');
36
+ return new SvgFilter(id, body);
37
+ });
38
+ return new SvgFilterDefinitions(filters);
39
+ }
40
+ assertNoSmil(filterEl, filterId) {
41
+ for (const tag of SMIL_TAGS) {
42
+ if (filterEl.querySelector(tag)) {
43
+ throw new Error(`<${tag}> is not supported inside <filter id="${filterId}">. ` +
44
+ `SMIL animations don't tick in image-decoded SVG. ` +
45
+ `Animate via CSS keyframes that swap between filter variants instead.`);
46
+ }
47
+ }
48
+ }
49
+ }
50
+ //# sourceMappingURL=SvgFilterDefinitionsParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterDefinitionsParser.js","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterDefinitionsParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAEhF,MAAM,SAAS,GAA0B,CAAC,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AAEjG,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEtC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,0BAA0B;IACrC,KAAK,CAAC,MAAc;QAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACpE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5F,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAEO,YAAY,CAAC,QAAiB,EAAE,QAAgB;QACtD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,IAAI,GAAG,yCAAyC,QAAQ,MAAM;oBAC9D,mDAAmD;oBACnD,sEAAsE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { SvgFilterLengthFactors } from '../svg-filter/SvgFilterScopeProvider';
2
+ /**
3
+ * Rewrites font/viewport-relative length tokens (`em`, `cqh`) in a
4
+ * materialized SVG filter body to absolute user-space px.
5
+ *
6
+ * SVG filter primitive attributes (`radius`, `stdDeviation`, `dx`,
7
+ * `dy`, …) accept neither relative units nor `calc()`, so a filter
8
+ * that must track the text size is authored in `em`/`cqh` and resolved
9
+ * here, once per render — the px-per-`em` factor depends on the render
10
+ * target height, which varies between renders. Runs after
11
+ * `SvgFilter.materialize`, so the relative units come either from the
12
+ * author's literals or from substituted style-control values.
13
+ */
14
+ export declare class SvgFilterLengthResolver {
15
+ resolve(body: string, factors: SvgFilterLengthFactors): string;
16
+ }
17
+ //# sourceMappingURL=SvgFilterLengthResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterLengthResolver.d.ts","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterLengthResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAQzF;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,MAAM;CAO/D"}
@@ -0,0 +1,27 @@
1
+ // Matches a numeric magnitude immediately followed by `em` or `cqh`,
2
+ // e.g. `0.25em` or `-3cqh`. The required digit before the unit keeps
3
+ // it from touching identifiers that merely end in those letters
4
+ // (`result="problem"`, `flood-color="lemonchiffon"`).
5
+ const RELATIVE_LENGTH_RE = /(-?\d*\.?\d+)(em|cqh)\b/g;
6
+ /**
7
+ * Rewrites font/viewport-relative length tokens (`em`, `cqh`) in a
8
+ * materialized SVG filter body to absolute user-space px.
9
+ *
10
+ * SVG filter primitive attributes (`radius`, `stdDeviation`, `dx`,
11
+ * `dy`, …) accept neither relative units nor `calc()`, so a filter
12
+ * that must track the text size is authored in `em`/`cqh` and resolved
13
+ * here, once per render — the px-per-`em` factor depends on the render
14
+ * target height, which varies between renders. Runs after
15
+ * `SvgFilter.materialize`, so the relative units come either from the
16
+ * author's literals or from substituted style-control values.
17
+ */
18
+ export class SvgFilterLengthResolver {
19
+ resolve(body, factors) {
20
+ return body.replace(RELATIVE_LENGTH_RE, (_match, magnitude, unit) => {
21
+ const factor = unit === 'em' ? factors.pxPerEm : factors.pxPerCqh;
22
+ const px = parseFloat(magnitude) * factor;
23
+ return String(Math.round(px * 1000) / 1000);
24
+ });
25
+ }
26
+ }
27
+ //# sourceMappingURL=SvgFilterLengthResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterLengthResolver.js","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterLengthResolver.ts"],"names":[],"mappings":"AAEA,qEAAqE;AACrE,qEAAqE;AACrE,gEAAgE;AAChE,sDAAsD;AACtD,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,uBAAuB;IAClC,OAAO,CAAC,IAAY,EAAE,OAA+B;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,SAAiB,EAAE,IAAY,EAAE,EAAE;YAClF,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YAClE,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;YAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Immutable lookup of CSS custom-property names to their resolved
3
+ * values. `SvgFilter.materialize` consults it when substituting
4
+ * `var(--name)` references in a filter body.
5
+ *
6
+ * Built by `fromEntries` and extended by `with` — both produce new
7
+ * instances; the underlying map is never mutated in place.
8
+ */
9
+ export declare class SvgFilterScope {
10
+ private readonly entries;
11
+ static empty(): SvgFilterScope;
12
+ static fromEntries(entries: Iterable<readonly [string, string]>): SvgFilterScope;
13
+ private constructor();
14
+ resolve(name: string): string | undefined;
15
+ /** Returns a new scope whose entries override matching names in this one. */
16
+ with(additions: SvgFilterScope): SvgFilterScope;
17
+ }
18
+ //# sourceMappingURL=SvgFilterScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterScope.d.ts","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterScope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,cAAc;IASL,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR5C,MAAM,CAAC,KAAK,IAAI,cAAc;IAI9B,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,cAAc;IAIhF,OAAO;IAEP,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIzC,6EAA6E;IAC7E,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc;CAGhD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Immutable lookup of CSS custom-property names to their resolved
3
+ * values. `SvgFilter.materialize` consults it when substituting
4
+ * `var(--name)` references in a filter body.
5
+ *
6
+ * Built by `fromEntries` and extended by `with` — both produce new
7
+ * instances; the underlying map is never mutated in place.
8
+ */
9
+ export class SvgFilterScope {
10
+ entries;
11
+ static empty() {
12
+ return new SvgFilterScope(new Map());
13
+ }
14
+ static fromEntries(entries) {
15
+ return new SvgFilterScope(new Map(entries));
16
+ }
17
+ constructor(entries) {
18
+ this.entries = entries;
19
+ }
20
+ resolve(name) {
21
+ return this.entries.get(name);
22
+ }
23
+ /** Returns a new scope whose entries override matching names in this one. */
24
+ with(additions) {
25
+ return new SvgFilterScope(new Map([...this.entries, ...additions.entries]));
26
+ }
27
+ }
28
+ //# sourceMappingURL=SvgFilterScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgFilterScope.js","sourceRoot":"","sources":["../../../src/modules/svg-filter/SvgFilterScope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,OAAO,cAAc;IASY;IARrC,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAA4C;QAC7D,OAAO,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,YAAqC,OAAoC;QAApC,YAAO,GAAP,OAAO,CAA6B;IAAG,CAAC;IAE7E,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,SAAyB;QAC5B,OAAO,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;CACF"}