@tscaps/engine 0.2.1 → 0.3.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 (495) hide show
  1. package/README.md +47 -7
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/modules/bidi/BidiAnalyzer.d.ts +23 -0
  7. package/dist/modules/bidi/BidiAnalyzer.d.ts.map +1 -0
  8. package/dist/modules/bidi/BidiAnalyzer.js +2 -0
  9. package/dist/modules/bidi/BidiAnalyzer.js.map +1 -0
  10. package/dist/modules/bidi/BidiCharacterClassifier.d.ts +13 -0
  11. package/dist/modules/bidi/BidiCharacterClassifier.d.ts.map +1 -0
  12. package/dist/modules/bidi/BidiCharacterClassifier.js +2 -0
  13. package/dist/modules/bidi/BidiCharacterClassifier.js.map +1 -0
  14. package/dist/modules/bidi/BidiJsAnalyzer.d.ts +14 -0
  15. package/dist/modules/bidi/BidiJsAnalyzer.d.ts.map +1 -0
  16. package/dist/modules/bidi/BidiJsAnalyzer.js +19 -0
  17. package/dist/modules/bidi/BidiJsAnalyzer.js.map +1 -0
  18. package/dist/modules/bidi/BidiJsCharacterClassifier.d.ts +8 -0
  19. package/dist/modules/bidi/BidiJsCharacterClassifier.d.ts.map +1 -0
  20. package/dist/modules/bidi/BidiJsCharacterClassifier.js +19 -0
  21. package/dist/modules/bidi/BidiJsCharacterClassifier.js.map +1 -0
  22. package/dist/modules/bidi/CursiveScriptDetector.d.ts +12 -0
  23. package/dist/modules/bidi/CursiveScriptDetector.d.ts.map +1 -0
  24. package/dist/modules/bidi/CursiveScriptDetector.js +20 -0
  25. package/dist/modules/bidi/CursiveScriptDetector.js.map +1 -0
  26. package/dist/modules/bidi/HorizontalSide.d.ts +18 -0
  27. package/dist/modules/bidi/HorizontalSide.d.ts.map +1 -0
  28. package/dist/modules/bidi/HorizontalSide.js +3 -0
  29. package/dist/modules/bidi/HorizontalSide.js.map +1 -0
  30. package/dist/modules/bidi/HorizontalSideResolver.d.ts +21 -0
  31. package/dist/modules/bidi/HorizontalSideResolver.d.ts.map +1 -0
  32. package/dist/modules/bidi/HorizontalSideResolver.js +27 -0
  33. package/dist/modules/bidi/HorizontalSideResolver.js.map +1 -0
  34. package/dist/modules/bidi/StrongCharacterMajorityTextDirectionDetector.d.ts +24 -0
  35. package/dist/modules/bidi/StrongCharacterMajorityTextDirectionDetector.d.ts.map +1 -0
  36. package/dist/modules/bidi/StrongCharacterMajorityTextDirectionDetector.js +34 -0
  37. package/dist/modules/bidi/StrongCharacterMajorityTextDirectionDetector.js.map +1 -0
  38. package/dist/modules/bidi/TextDirection.d.ts +9 -0
  39. package/dist/modules/bidi/TextDirection.d.ts.map +1 -0
  40. package/dist/modules/bidi/TextDirection.js +2 -0
  41. package/dist/modules/bidi/TextDirection.js.map +1 -0
  42. package/dist/modules/bidi/TextDirectionDetector.d.ts +12 -0
  43. package/dist/modules/bidi/TextDirectionDetector.d.ts.map +1 -0
  44. package/dist/modules/bidi/TextDirectionDetector.js +2 -0
  45. package/dist/modules/bidi/TextDirectionDetector.js.map +1 -0
  46. package/dist/modules/bidi/WordFragment.d.ts +34 -0
  47. package/dist/modules/bidi/WordFragment.d.ts.map +1 -0
  48. package/dist/modules/bidi/WordFragment.js +2 -0
  49. package/dist/modules/bidi/WordFragment.js.map +1 -0
  50. package/dist/modules/bidi/WordFragmenter.d.ts +43 -0
  51. package/dist/modules/bidi/WordFragmenter.d.ts.map +1 -0
  52. package/dist/modules/bidi/WordFragmenter.js +112 -0
  53. package/dist/modules/bidi/WordFragmenter.js.map +1 -0
  54. package/dist/modules/bidi/index.d.ts +14 -0
  55. package/dist/modules/bidi/index.d.ts.map +1 -0
  56. package/dist/modules/bidi/index.js +8 -0
  57. package/dist/modules/bidi/index.js.map +1 -0
  58. package/dist/modules/css/CssBlockSealer.d.ts +30 -0
  59. package/dist/modules/css/CssBlockSealer.d.ts.map +1 -0
  60. package/dist/modules/css/CssBlockSealer.js +64 -0
  61. package/dist/modules/css/CssBlockSealer.js.map +1 -0
  62. package/dist/modules/css/CssCustomPropertyDefinitionScanner.d.ts +13 -0
  63. package/dist/modules/css/CssCustomPropertyDefinitionScanner.d.ts.map +1 -0
  64. package/dist/modules/css/CssCustomPropertyDefinitionScanner.js +24 -0
  65. package/dist/modules/css/CssCustomPropertyDefinitionScanner.js.map +1 -0
  66. package/dist/modules/css/CssFilterReferenceScanner.d.ts +15 -0
  67. package/dist/modules/css/CssFilterReferenceScanner.d.ts.map +1 -0
  68. package/dist/modules/css/CssFilterReferenceScanner.js +22 -0
  69. package/dist/modules/css/CssFilterReferenceScanner.js.map +1 -0
  70. package/dist/modules/css/CssFragmentParser.d.ts +53 -0
  71. package/dist/modules/css/CssFragmentParser.d.ts.map +1 -0
  72. package/dist/modules/css/CssFragmentParser.js +127 -0
  73. package/dist/modules/css/CssFragmentParser.js.map +1 -0
  74. package/dist/modules/css/CssKeyframeNamespacer.d.ts +21 -0
  75. package/dist/modules/css/CssKeyframeNamespacer.d.ts.map +1 -0
  76. package/dist/modules/css/CssKeyframeNamespacer.js +48 -0
  77. package/dist/modules/css/CssKeyframeNamespacer.js.map +1 -0
  78. package/dist/modules/css/CssKeyframesScanner.d.ts +29 -0
  79. package/dist/modules/css/CssKeyframesScanner.d.ts.map +1 -0
  80. package/dist/modules/css/CssKeyframesScanner.js +102 -0
  81. package/dist/modules/css/CssKeyframesScanner.js.map +1 -0
  82. package/dist/modules/css/CssLayer.d.ts +20 -0
  83. package/dist/modules/css/CssLayer.d.ts.map +1 -0
  84. package/dist/modules/css/CssLayer.js +21 -0
  85. package/dist/modules/css/CssLayer.js.map +1 -0
  86. package/dist/modules/css/CssScoper.d.ts +11 -2
  87. package/dist/modules/css/CssScoper.d.ts.map +1 -1
  88. package/dist/modules/css/CssScoper.js +53 -37
  89. package/dist/modules/css/CssScoper.js.map +1 -1
  90. package/dist/modules/css/CssSelectorClassScanner.d.ts +25 -0
  91. package/dist/modules/css/CssSelectorClassScanner.d.ts.map +1 -0
  92. package/dist/modules/css/CssSelectorClassScanner.js +91 -0
  93. package/dist/modules/css/CssSelectorClassScanner.js.map +1 -0
  94. package/dist/modules/css/CssVarReferenceScanner.d.ts +8 -5
  95. package/dist/modules/css/CssVarReferenceScanner.d.ts.map +1 -1
  96. package/dist/modules/css/CssVarReferenceScanner.js +14 -7
  97. package/dist/modules/css/CssVarReferenceScanner.js.map +1 -1
  98. package/dist/modules/css/index.d.ts +8 -0
  99. package/dist/modules/css/index.d.ts.map +1 -1
  100. package/dist/modules/css/index.js +8 -0
  101. package/dist/modules/css/index.js.map +1 -1
  102. package/dist/modules/document/CssClass.d.ts +20 -0
  103. package/dist/modules/document/CssClass.d.ts.map +1 -0
  104. package/dist/modules/document/CssClass.js +21 -0
  105. package/dist/modules/document/CssClass.js.map +1 -0
  106. package/dist/modules/document/CssVariable.d.ts +0 -6
  107. package/dist/modules/document/CssVariable.d.ts.map +1 -1
  108. package/dist/modules/document/CssVariable.js +0 -6
  109. package/dist/modules/document/CssVariable.js.map +1 -1
  110. package/dist/modules/document/DataAttribute.d.ts +26 -0
  111. package/dist/modules/document/DataAttribute.d.ts.map +1 -0
  112. package/dist/modules/document/DataAttribute.js +27 -0
  113. package/dist/modules/document/DataAttribute.js.map +1 -0
  114. package/dist/modules/document/DocumentEditor.d.ts +40 -9
  115. package/dist/modules/document/DocumentEditor.d.ts.map +1 -1
  116. package/dist/modules/document/DocumentEditor.js +69 -17
  117. package/dist/modules/document/DocumentEditor.js.map +1 -1
  118. package/dist/modules/document/DocumentNodeId.d.ts +23 -0
  119. package/dist/modules/document/DocumentNodeId.d.ts.map +1 -0
  120. package/dist/modules/document/DocumentNodeId.js +31 -0
  121. package/dist/modules/document/DocumentNodeId.js.map +1 -0
  122. package/dist/modules/document/Line.d.ts +1 -1
  123. package/dist/modules/document/Line.d.ts.map +1 -1
  124. package/dist/modules/document/Line.js +2 -1
  125. package/dist/modules/document/Line.js.map +1 -1
  126. package/dist/modules/document/Section.d.ts +1 -4
  127. package/dist/modules/document/Section.d.ts.map +1 -1
  128. package/dist/modules/document/Section.js +2 -17
  129. package/dist/modules/document/Section.js.map +1 -1
  130. package/dist/modules/document/Segment.d.ts +14 -7
  131. package/dist/modules/document/Segment.d.ts.map +1 -1
  132. package/dist/modules/document/Segment.js +26 -1
  133. package/dist/modules/document/Segment.js.map +1 -1
  134. package/dist/modules/document/Word.d.ts +1 -1
  135. package/dist/modules/document/Word.d.ts.map +1 -1
  136. package/dist/modules/document/Word.js +2 -1
  137. package/dist/modules/document/Word.js.map +1 -1
  138. package/dist/modules/document/index.d.ts +4 -2
  139. package/dist/modules/document/index.d.ts.map +1 -1
  140. package/dist/modules/document/index.js +3 -1
  141. package/dist/modules/document/index.js.map +1 -1
  142. package/dist/modules/effect/GapFreeEffect.d.ts +15 -0
  143. package/dist/modules/effect/GapFreeEffect.d.ts.map +1 -1
  144. package/dist/modules/effect/GapFreeEffect.js +29 -4
  145. package/dist/modules/effect/GapFreeEffect.js.map +1 -1
  146. package/dist/modules/pipeline/RenderPipelineBuilder.js +3 -3
  147. package/dist/modules/pipeline/RenderPipelineBuilder.js.map +1 -1
  148. package/dist/modules/rendering/BrowserSubtitleFrameRenderer.d.ts.map +1 -1
  149. package/dist/modules/rendering/BrowserSubtitleFrameRenderer.js +4 -1
  150. package/dist/modules/rendering/BrowserSubtitleFrameRenderer.js.map +1 -1
  151. package/dist/modules/rendering/HorizontalPlacementResolver.d.ts +27 -0
  152. package/dist/modules/rendering/HorizontalPlacementResolver.d.ts.map +1 -0
  153. package/dist/modules/rendering/HorizontalPlacementResolver.js +31 -0
  154. package/dist/modules/rendering/HorizontalPlacementResolver.js.map +1 -0
  155. package/dist/modules/rendering/SubtitleFrameRenderer.d.ts +2 -0
  156. package/dist/modules/rendering/SubtitleFrameRenderer.d.ts.map +1 -1
  157. package/dist/modules/rendering/index.d.ts +7 -4
  158. package/dist/modules/rendering/index.d.ts.map +1 -1
  159. package/dist/modules/rendering/index.js +5 -2
  160. package/dist/modules/rendering/index.js.map +1 -1
  161. package/dist/modules/rendering/styles/BaselineCssComposer.d.ts +19 -1
  162. package/dist/modules/rendering/styles/BaselineCssComposer.d.ts.map +1 -1
  163. package/dist/modules/rendering/styles/BaselineCssComposer.js +32 -8
  164. package/dist/modules/rendering/styles/BaselineCssComposer.js.map +1 -1
  165. package/dist/modules/rendering/styles/DecorationContainerBaselineCss.d.ts.map +1 -1
  166. package/dist/modules/rendering/styles/DecorationContainerBaselineCss.js +5 -4
  167. package/dist/modules/rendering/styles/DecorationContainerBaselineCss.js.map +1 -1
  168. package/dist/modules/rendering/styles/FrozenFrameCss.d.ts +28 -0
  169. package/dist/modules/rendering/styles/FrozenFrameCss.d.ts.map +1 -0
  170. package/dist/modules/rendering/styles/FrozenFrameCss.js +28 -0
  171. package/dist/modules/rendering/styles/FrozenFrameCss.js.map +1 -0
  172. package/dist/modules/rendering/styles/InlineStyleEmitter.d.ts +0 -7
  173. package/dist/modules/rendering/styles/InlineStyleEmitter.d.ts.map +1 -1
  174. package/dist/modules/rendering/styles/InlineStyleEmitter.js +0 -9
  175. package/dist/modules/rendering/styles/InlineStyleEmitter.js.map +1 -1
  176. package/dist/modules/rendering/styles/{VideoFrameLayerClass.d.ts → VideoFrameLayerBaselineCss.d.ts} +3 -10
  177. package/dist/modules/rendering/styles/VideoFrameLayerBaselineCss.d.ts.map +1 -0
  178. package/dist/modules/rendering/styles/VideoFrameLayerBaselineCss.js +15 -0
  179. package/dist/modules/rendering/styles/VideoFrameLayerBaselineCss.js.map +1 -0
  180. package/dist/modules/rendering/subtitle/ActiveRenderSessionFactory.d.ts +3 -1
  181. package/dist/modules/rendering/subtitle/ActiveRenderSessionFactory.d.ts.map +1 -1
  182. package/dist/modules/rendering/subtitle/ActiveRenderSessionFactory.js +9 -4
  183. package/dist/modules/rendering/subtitle/ActiveRenderSessionFactory.js.map +1 -1
  184. package/dist/modules/rendering/subtitle/AnimationProbe.d.ts +23 -9
  185. package/dist/modules/rendering/subtitle/AnimationProbe.d.ts.map +1 -1
  186. package/dist/modules/rendering/subtitle/AnimationProbe.js +86 -81
  187. package/dist/modules/rendering/subtitle/AnimationProbe.js.map +1 -1
  188. package/dist/modules/rendering/subtitle/BatchPlanner.d.ts +1 -0
  189. package/dist/modules/rendering/subtitle/BatchPlanner.d.ts.map +1 -1
  190. package/dist/modules/rendering/subtitle/BatchPlanner.js +16 -14
  191. package/dist/modules/rendering/subtitle/BatchPlanner.js.map +1 -1
  192. package/dist/modules/rendering/subtitle/PreparedStyle.d.ts +1 -0
  193. package/dist/modules/rendering/subtitle/PreparedStyle.d.ts.map +1 -1
  194. package/dist/modules/rendering/subtitle/PreparedStyleFactory.js +1 -1
  195. package/dist/modules/rendering/subtitle/PreparedStyleFactory.js.map +1 -1
  196. package/dist/modules/rendering/subtitle/SegmentPaintRegionResolver.d.ts.map +1 -1
  197. package/dist/modules/rendering/subtitle/SegmentPaintRegionResolver.js +7 -4
  198. package/dist/modules/rendering/subtitle/SegmentPaintRegionResolver.js.map +1 -1
  199. package/dist/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.d.ts +30 -2
  200. package/dist/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.d.ts.map +1 -1
  201. package/dist/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.js +85 -27
  202. package/dist/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.js.map +1 -1
  203. package/dist/modules/rendering/subtitle/SegmentWrapperRenderer.d.ts +3 -8
  204. package/dist/modules/rendering/subtitle/SegmentWrapperRenderer.d.ts.map +1 -1
  205. package/dist/modules/rendering/subtitle/SegmentWrapperRenderer.js +31 -40
  206. package/dist/modules/rendering/subtitle/SegmentWrapperRenderer.js.map +1 -1
  207. package/dist/modules/rendering/subtitle/SpriteSheetCompositor.d.ts +2 -0
  208. package/dist/modules/rendering/subtitle/SpriteSheetCompositor.d.ts.map +1 -1
  209. package/dist/modules/rendering/subtitle/SpriteSheetCompositor.js +18 -9
  210. package/dist/modules/rendering/subtitle/SpriteSheetCompositor.js.map +1 -1
  211. package/dist/modules/rendering/subtitle/SvgFilterMaterializer.d.ts +8 -15
  212. package/dist/modules/rendering/subtitle/SvgFilterMaterializer.d.ts.map +1 -1
  213. package/dist/modules/rendering/subtitle/SvgFilterMaterializer.js +10 -20
  214. package/dist/modules/rendering/subtitle/SvgFilterMaterializer.js.map +1 -1
  215. package/dist/modules/rendering/subtitle/VideoFrameVarsBuilder.d.ts.map +1 -1
  216. package/dist/modules/rendering/subtitle/VideoFrameVarsBuilder.js +12 -3
  217. package/dist/modules/rendering/subtitle/VideoFrameVarsBuilder.js.map +1 -1
  218. package/dist/modules/rendering/types/AlignmentConfig.d.ts +16 -4
  219. package/dist/modules/rendering/types/AlignmentConfig.d.ts.map +1 -1
  220. package/dist/modules/rendering/types/AlignmentConfig.js +2 -1
  221. package/dist/modules/rendering/types/AlignmentConfig.js.map +1 -1
  222. package/dist/modules/rendering/types/ElementRenderOverrides.d.ts +8 -0
  223. package/dist/modules/rendering/types/ElementRenderOverrides.d.ts.map +1 -1
  224. package/dist/modules/rendering/types/ElementRenderOverrides.js +28 -0
  225. package/dist/modules/rendering/types/ElementRenderOverrides.js.map +1 -1
  226. package/dist/modules/rendering/types/RenderingConfig.d.ts +7 -2
  227. package/dist/modules/rendering/types/RenderingConfig.d.ts.map +1 -1
  228. package/dist/modules/rendering/types/ScopedRenderOverride.d.ts +9 -4
  229. package/dist/modules/rendering/types/ScopedRenderOverride.d.ts.map +1 -1
  230. package/dist/modules/subtitle-file/AssSubtitleFileSerializer.d.ts +53 -0
  231. package/dist/modules/subtitle-file/AssSubtitleFileSerializer.d.ts.map +1 -0
  232. package/dist/modules/subtitle-file/AssSubtitleFileSerializer.js +133 -0
  233. package/dist/modules/subtitle-file/AssSubtitleFileSerializer.js.map +1 -0
  234. package/dist/modules/subtitle-file/SbvSubtitleFileSerializer.d.ts +20 -0
  235. package/dist/modules/subtitle-file/SbvSubtitleFileSerializer.d.ts.map +1 -0
  236. package/dist/modules/subtitle-file/SbvSubtitleFileSerializer.js +31 -0
  237. package/dist/modules/subtitle-file/SbvSubtitleFileSerializer.js.map +1 -0
  238. package/dist/modules/subtitle-file/SrtSubtitleFileSerializer.d.ts +21 -0
  239. package/dist/modules/subtitle-file/SrtSubtitleFileSerializer.d.ts.map +1 -0
  240. package/dist/modules/subtitle-file/SrtSubtitleFileSerializer.js +33 -0
  241. package/dist/modules/subtitle-file/SrtSubtitleFileSerializer.js.map +1 -0
  242. package/dist/modules/subtitle-file/SubtitleCue.d.ts +18 -0
  243. package/dist/modules/subtitle-file/SubtitleCue.d.ts.map +1 -0
  244. package/dist/modules/subtitle-file/SubtitleCue.js +20 -0
  245. package/dist/modules/subtitle-file/SubtitleCue.js.map +1 -0
  246. package/dist/modules/subtitle-file/SubtitleCueBuilder.d.ts +38 -0
  247. package/dist/modules/subtitle-file/SubtitleCueBuilder.d.ts.map +1 -0
  248. package/dist/modules/subtitle-file/SubtitleCueBuilder.js +106 -0
  249. package/dist/modules/subtitle-file/SubtitleCueBuilder.js.map +1 -0
  250. package/dist/modules/subtitle-file/SubtitleFileJob.d.ts +17 -0
  251. package/dist/modules/subtitle-file/SubtitleFileJob.d.ts.map +1 -0
  252. package/dist/modules/subtitle-file/SubtitleFileJob.js +2 -0
  253. package/dist/modules/subtitle-file/SubtitleFileJob.js.map +1 -0
  254. package/dist/modules/subtitle-file/SubtitleFileSerializer.d.ts +36 -0
  255. package/dist/modules/subtitle-file/SubtitleFileSerializer.d.ts.map +1 -0
  256. package/dist/modules/subtitle-file/SubtitleFileSerializer.js +44 -0
  257. package/dist/modules/subtitle-file/SubtitleFileSerializer.js.map +1 -0
  258. package/dist/modules/subtitle-file/SubtitleGranularity.d.ts +11 -0
  259. package/dist/modules/subtitle-file/SubtitleGranularity.d.ts.map +1 -0
  260. package/dist/modules/subtitle-file/SubtitleGranularity.js +2 -0
  261. package/dist/modules/subtitle-file/SubtitleGranularity.js.map +1 -0
  262. package/dist/modules/subtitle-file/SubtitleRow.d.ts +11 -0
  263. package/dist/modules/subtitle-file/SubtitleRow.d.ts.map +1 -0
  264. package/dist/modules/subtitle-file/SubtitleRow.js +14 -0
  265. package/dist/modules/subtitle-file/SubtitleRow.js.map +1 -0
  266. package/dist/modules/subtitle-file/SubtitleToken.d.ts +13 -0
  267. package/dist/modules/subtitle-file/SubtitleToken.d.ts.map +1 -0
  268. package/dist/modules/subtitle-file/SubtitleToken.js +15 -0
  269. package/dist/modules/subtitle-file/SubtitleToken.js.map +1 -0
  270. package/dist/modules/subtitle-file/TextSubtitleFileSerializer.d.ts +19 -0
  271. package/dist/modules/subtitle-file/TextSubtitleFileSerializer.d.ts.map +1 -0
  272. package/dist/modules/subtitle-file/TextSubtitleFileSerializer.js +24 -0
  273. package/dist/modules/subtitle-file/TextSubtitleFileSerializer.js.map +1 -0
  274. package/dist/modules/subtitle-file/Timecode.d.ts +20 -0
  275. package/dist/modules/subtitle-file/Timecode.d.ts.map +1 -0
  276. package/dist/modules/subtitle-file/Timecode.js +32 -0
  277. package/dist/modules/subtitle-file/Timecode.js.map +1 -0
  278. package/dist/modules/subtitle-file/TtmlSubtitleFileSerializer.d.ts +22 -0
  279. package/dist/modules/subtitle-file/TtmlSubtitleFileSerializer.d.ts.map +1 -0
  280. package/dist/modules/subtitle-file/TtmlSubtitleFileSerializer.js +57 -0
  281. package/dist/modules/subtitle-file/TtmlSubtitleFileSerializer.js.map +1 -0
  282. package/dist/modules/subtitle-file/VttSubtitleFileSerializer.d.ts +21 -0
  283. package/dist/modules/subtitle-file/VttSubtitleFileSerializer.d.ts.map +1 -0
  284. package/dist/modules/subtitle-file/VttSubtitleFileSerializer.js +39 -0
  285. package/dist/modules/subtitle-file/VttSubtitleFileSerializer.js.map +1 -0
  286. package/dist/modules/subtitle-file/index.d.ts +10 -0
  287. package/dist/modules/subtitle-file/index.d.ts.map +1 -0
  288. package/dist/modules/subtitle-file/index.js +8 -0
  289. package/dist/modules/subtitle-file/index.js.map +1 -0
  290. package/dist/modules/svg-filter/SvgFilter.d.ts +8 -1
  291. package/dist/modules/svg-filter/SvgFilter.d.ts.map +1 -1
  292. package/dist/modules/svg-filter/SvgFilter.js +9 -1
  293. package/dist/modules/svg-filter/SvgFilter.js.map +1 -1
  294. package/dist/modules/svg-filter/SvgFilterDefinitionsParser.d.ts +1 -0
  295. package/dist/modules/svg-filter/SvgFilterDefinitionsParser.d.ts.map +1 -1
  296. package/dist/modules/svg-filter/SvgFilterDefinitionsParser.js +9 -1
  297. package/dist/modules/svg-filter/SvgFilterDefinitionsParser.js.map +1 -1
  298. package/dist/modules/svg-filter/SvgFilterDefsRenderer.d.ts +44 -0
  299. package/dist/modules/svg-filter/SvgFilterDefsRenderer.d.ts.map +1 -0
  300. package/dist/modules/svg-filter/SvgFilterDefsRenderer.js +47 -0
  301. package/dist/modules/svg-filter/SvgFilterDefsRenderer.js.map +1 -0
  302. package/dist/modules/svg-filter/index.d.ts +2 -0
  303. package/dist/modules/svg-filter/index.d.ts.map +1 -1
  304. package/dist/modules/svg-filter/index.js +1 -0
  305. package/dist/modules/svg-filter/index.js.map +1 -1
  306. package/dist/modules/tagging/PauseTagger.d.ts.map +1 -1
  307. package/dist/modules/tagging/PauseTagger.js +2 -1
  308. package/dist/modules/tagging/PauseTagger.js.map +1 -1
  309. package/dist/modules/tagging/RegexTagger.js +1 -1
  310. package/dist/modules/tagging/RegexTagger.js.map +1 -1
  311. package/dist/modules/tagging/SpanTagger.js +1 -1
  312. package/dist/modules/tagging/SpanTagger.js.map +1 -1
  313. package/dist/modules/tagging/StructureTagger.d.ts +0 -1
  314. package/dist/modules/tagging/StructureTagger.d.ts.map +1 -1
  315. package/dist/modules/tagging/StructureTagger.js +3 -8
  316. package/dist/modules/tagging/StructureTagger.js.map +1 -1
  317. package/dist/modules/tagging/WordlistTagger.js +1 -1
  318. package/dist/modules/tagging/WordlistTagger.js.map +1 -1
  319. package/dist/modules/tags/AndTagCondition.d.ts +10 -0
  320. package/dist/modules/tags/AndTagCondition.d.ts.map +1 -0
  321. package/dist/modules/tags/AndTagCondition.js +14 -0
  322. package/dist/modules/tags/AndTagCondition.js.map +1 -0
  323. package/dist/modules/tags/HasTagCondition.d.ts +10 -0
  324. package/dist/modules/tags/HasTagCondition.d.ts.map +1 -0
  325. package/dist/modules/tags/HasTagCondition.js +18 -0
  326. package/dist/modules/tags/HasTagCondition.js.map +1 -0
  327. package/dist/modules/tags/NotTagCondition.d.ts +10 -0
  328. package/dist/modules/tags/NotTagCondition.d.ts.map +1 -0
  329. package/dist/modules/tags/NotTagCondition.js +14 -0
  330. package/dist/modules/tags/NotTagCondition.js.map +1 -0
  331. package/dist/modules/tags/OrTagCondition.d.ts +10 -0
  332. package/dist/modules/tags/OrTagCondition.d.ts.map +1 -0
  333. package/dist/modules/tags/OrTagCondition.js +14 -0
  334. package/dist/modules/tags/OrTagCondition.js.map +1 -0
  335. package/dist/modules/{document/Tag.d.ts → tags/StructureTag.d.ts} +2 -11
  336. package/dist/modules/tags/StructureTag.d.ts.map +1 -0
  337. package/dist/modules/{document/Tag.js → tags/StructureTag.js} +1 -19
  338. package/dist/modules/tags/StructureTag.js.map +1 -0
  339. package/dist/modules/tags/Tag.d.ts +8 -0
  340. package/dist/modules/tags/Tag.d.ts.map +1 -0
  341. package/dist/modules/tags/Tag.js +16 -0
  342. package/dist/modules/tags/Tag.js.map +1 -0
  343. package/dist/modules/tags/TagCondition.d.ts +12 -0
  344. package/dist/modules/tags/TagCondition.d.ts.map +1 -0
  345. package/dist/modules/tags/TagCondition.js +2 -0
  346. package/dist/modules/tags/TagCondition.js.map +1 -0
  347. package/dist/modules/tags/TagConditionParser.d.ts +21 -0
  348. package/dist/modules/tags/TagConditionParser.d.ts.map +1 -0
  349. package/dist/modules/tags/TagConditionParser.js +75 -0
  350. package/dist/modules/tags/TagConditionParser.js.map +1 -0
  351. package/dist/modules/tags/index.d.ts +9 -0
  352. package/dist/modules/tags/index.d.ts.map +1 -0
  353. package/dist/modules/tags/index.js +8 -0
  354. package/dist/modules/tags/index.js.map +1 -0
  355. package/dist/modules/transcription/AudioDecoder.d.ts +9 -4
  356. package/dist/modules/transcription/AudioDecoder.d.ts.map +1 -1
  357. package/dist/modules/transcription/BatchedMonoResampler.d.ts +45 -0
  358. package/dist/modules/transcription/BatchedMonoResampler.d.ts.map +1 -0
  359. package/dist/modules/transcription/BatchedMonoResampler.js +116 -0
  360. package/dist/modules/transcription/BatchedMonoResampler.js.map +1 -0
  361. package/dist/modules/transcription/CacheStorageModelFileCache.d.ts +38 -0
  362. package/dist/modules/transcription/CacheStorageModelFileCache.d.ts.map +1 -0
  363. package/dist/modules/transcription/CacheStorageModelFileCache.js +86 -0
  364. package/dist/modules/transcription/CacheStorageModelFileCache.js.map +1 -0
  365. package/dist/modules/transcription/CueDocumentBuilder.d.ts +40 -0
  366. package/dist/modules/transcription/CueDocumentBuilder.d.ts.map +1 -0
  367. package/dist/modules/transcription/CueDocumentBuilder.js +77 -0
  368. package/dist/modules/transcription/CueDocumentBuilder.js.map +1 -0
  369. package/dist/modules/transcription/CueParseResult.d.ts +16 -0
  370. package/dist/modules/transcription/CueParseResult.d.ts.map +1 -0
  371. package/dist/modules/transcription/CueParseResult.js +2 -0
  372. package/dist/modules/transcription/CueParseResult.js.map +1 -0
  373. package/dist/modules/transcription/CueTextTokenizer.d.ts +10 -0
  374. package/dist/modules/transcription/CueTextTokenizer.d.ts.map +1 -0
  375. package/dist/modules/transcription/CueTextTokenizer.js +21 -0
  376. package/dist/modules/transcription/CueTextTokenizer.js.map +1 -0
  377. package/dist/modules/transcription/CueTimecodeReader.d.ts +19 -0
  378. package/dist/modules/transcription/CueTimecodeReader.d.ts.map +1 -0
  379. package/dist/modules/transcription/CueTimecodeReader.js +45 -0
  380. package/dist/modules/transcription/CueTimecodeReader.js.map +1 -0
  381. package/dist/modules/transcription/CueWordReader.d.ts +12 -0
  382. package/dist/modules/transcription/CueWordReader.d.ts.map +1 -0
  383. package/dist/modules/transcription/CueWordReader.js +2 -0
  384. package/dist/modules/transcription/CueWordReader.js.map +1 -0
  385. package/dist/modules/transcription/EstimatedCueWordReader.d.ts +16 -0
  386. package/dist/modules/transcription/EstimatedCueWordReader.d.ts.map +1 -0
  387. package/dist/modules/transcription/EstimatedCueWordReader.js +17 -0
  388. package/dist/modules/transcription/EstimatedCueWordReader.js.map +1 -0
  389. package/dist/modules/transcription/LogitsProcessorListFactory.d.ts +43 -0
  390. package/dist/modules/transcription/LogitsProcessorListFactory.d.ts.map +1 -0
  391. package/dist/modules/transcription/LogitsProcessorListFactory.js +72 -0
  392. package/dist/modules/transcription/LogitsProcessorListFactory.js.map +1 -0
  393. package/dist/modules/transcription/MediaBunnyAudioDecoder.d.ts +27 -0
  394. package/dist/modules/transcription/MediaBunnyAudioDecoder.d.ts.map +1 -0
  395. package/dist/modules/transcription/MediaBunnyAudioDecoder.js +76 -0
  396. package/dist/modules/transcription/MediaBunnyAudioDecoder.js.map +1 -0
  397. package/dist/modules/transcription/ModelFileCache.d.ts +20 -0
  398. package/dist/modules/transcription/ModelFileCache.d.ts.map +1 -0
  399. package/dist/modules/transcription/ModelFileCache.js +2 -0
  400. package/dist/modules/transcription/ModelFileCache.js.map +1 -0
  401. package/dist/modules/transcription/ModelFileCacheUnavailableError.d.ts +18 -0
  402. package/dist/modules/transcription/ModelFileCacheUnavailableError.d.ts.map +1 -0
  403. package/dist/modules/transcription/ModelFileCacheUnavailableError.js +18 -0
  404. package/dist/modules/transcription/ModelFileCacheUnavailableError.js.map +1 -0
  405. package/dist/modules/transcription/SrtTranscriber.d.ts +24 -15
  406. package/dist/modules/transcription/SrtTranscriber.d.ts.map +1 -1
  407. package/dist/modules/transcription/SrtTranscriber.js +32 -90
  408. package/dist/modules/transcription/SrtTranscriber.js.map +1 -1
  409. package/dist/modules/transcription/SubtitleFileUnreadableError.d.ts +22 -0
  410. package/dist/modules/transcription/SubtitleFileUnreadableError.d.ts.map +1 -0
  411. package/dist/modules/transcription/SubtitleFileUnreadableError.js +22 -0
  412. package/dist/modules/transcription/SubtitleFileUnreadableError.js.map +1 -0
  413. package/dist/modules/transcription/TimestampedCueWordReader.d.ts +27 -0
  414. package/dist/modules/transcription/TimestampedCueWordReader.d.ts.map +1 -0
  415. package/dist/modules/transcription/TimestampedCueWordReader.js +52 -0
  416. package/dist/modules/transcription/TimestampedCueWordReader.js.map +1 -0
  417. package/dist/modules/transcription/Transcriber.d.ts +13 -0
  418. package/dist/modules/transcription/Transcriber.d.ts.map +1 -1
  419. package/dist/modules/transcription/TransformersRuntime.d.ts +50 -0
  420. package/dist/modules/transcription/TransformersRuntime.d.ts.map +1 -0
  421. package/dist/modules/transcription/TransformersRuntime.js +79 -0
  422. package/dist/modules/transcription/TransformersRuntime.js.map +1 -0
  423. package/dist/modules/transcription/VttTranscriber.d.ts +25 -7
  424. package/dist/modules/transcription/VttTranscriber.d.ts.map +1 -1
  425. package/dist/modules/transcription/VttTranscriber.js +36 -15
  426. package/dist/modules/transcription/VttTranscriber.js.map +1 -1
  427. package/dist/modules/transcription/WhisperChunkStitcher.d.ts +51 -0
  428. package/dist/modules/transcription/WhisperChunkStitcher.d.ts.map +1 -0
  429. package/dist/modules/transcription/WhisperChunkStitcher.js +101 -0
  430. package/dist/modules/transcription/WhisperChunkStitcher.js.map +1 -0
  431. package/dist/modules/transcription/WhisperDeviceUnavailableError.d.ts +16 -0
  432. package/dist/modules/transcription/WhisperDeviceUnavailableError.d.ts.map +1 -0
  433. package/dist/modules/transcription/WhisperDeviceUnavailableError.js +16 -0
  434. package/dist/modules/transcription/WhisperDeviceUnavailableError.js.map +1 -0
  435. package/dist/modules/transcription/WhisperInferenceFailedError.d.ts +16 -0
  436. package/dist/modules/transcription/WhisperInferenceFailedError.d.ts.map +1 -0
  437. package/dist/modules/transcription/WhisperInferenceFailedError.js +16 -0
  438. package/dist/modules/transcription/WhisperInferenceFailedError.js.map +1 -0
  439. package/dist/modules/transcription/WhisperInferenceProgressTracker.d.ts +61 -0
  440. package/dist/modules/transcription/WhisperInferenceProgressTracker.d.ts.map +1 -0
  441. package/dist/modules/transcription/WhisperInferenceProgressTracker.js +102 -0
  442. package/dist/modules/transcription/WhisperInferenceProgressTracker.js.map +1 -0
  443. package/dist/modules/transcription/WhisperLoopAbortLogitsProcessor.d.ts +38 -0
  444. package/dist/modules/transcription/WhisperLoopAbortLogitsProcessor.d.ts.map +1 -0
  445. package/dist/modules/transcription/WhisperLoopAbortLogitsProcessor.js +94 -0
  446. package/dist/modules/transcription/WhisperLoopAbortLogitsProcessor.js.map +1 -0
  447. package/dist/modules/transcription/WhisperModelLoadFailedError.d.ts +15 -0
  448. package/dist/modules/transcription/WhisperModelLoadFailedError.d.ts.map +1 -0
  449. package/dist/modules/transcription/WhisperModelLoadFailedError.js +15 -0
  450. package/dist/modules/transcription/WhisperModelLoadFailedError.js.map +1 -0
  451. package/dist/modules/transcription/WhisperTranscriber.d.ts +106 -7
  452. package/dist/modules/transcription/WhisperTranscriber.d.ts.map +1 -1
  453. package/dist/modules/transcription/WhisperTranscriber.js +312 -25
  454. package/dist/modules/transcription/WhisperTranscriber.js.map +1 -1
  455. package/dist/modules/transcription/WhisperWindowCoverage.d.ts +79 -0
  456. package/dist/modules/transcription/WhisperWindowCoverage.d.ts.map +1 -0
  457. package/dist/modules/transcription/WhisperWindowCoverage.js +129 -0
  458. package/dist/modules/transcription/WhisperWindowCoverage.js.map +1 -0
  459. package/dist/modules/transcription/WordTimingEstimator.d.ts +14 -0
  460. package/dist/modules/transcription/WordTimingEstimator.d.ts.map +1 -0
  461. package/dist/modules/transcription/WordTimingEstimator.js +33 -0
  462. package/dist/modules/transcription/WordTimingEstimator.js.map +1 -0
  463. package/dist/modules/transcription/index.d.ts +8 -2
  464. package/dist/modules/transcription/index.d.ts.map +1 -1
  465. package/dist/modules/transcription/index.js +5 -1
  466. package/dist/modules/transcription/index.js.map +1 -1
  467. package/dist/modules/video/mediabunny/MediaBunnyTranscodeCoordinator.d.ts.map +1 -1
  468. package/dist/modules/video/mediabunny/MediaBunnyTranscodeCoordinator.js +8 -0
  469. package/dist/modules/video/mediabunny/MediaBunnyTranscodeCoordinator.js.map +1 -1
  470. package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.d.ts +3 -1
  471. package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.d.ts.map +1 -1
  472. package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.js +33 -23
  473. package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.js.map +1 -1
  474. package/dist/modules/video/mediabunny/painter/CaptionsOverlayFramePainter.js +1 -1
  475. package/dist/modules/video/mediabunny/painter/CaptionsOverlayFramePainter.js.map +1 -1
  476. package/dist/modules/video/mediabunny/painter/TopLayerSource.d.ts +6 -7
  477. package/dist/modules/video/mediabunny/painter/TopLayerSource.d.ts.map +1 -1
  478. package/package.json +16 -10
  479. package/dist/modules/document/Tag.d.ts.map +0 -1
  480. package/dist/modules/document/Tag.js.map +0 -1
  481. package/dist/modules/rendering/styles/BehindActorBaselineCss.d.ts +0 -19
  482. package/dist/modules/rendering/styles/BehindActorBaselineCss.d.ts.map +0 -1
  483. package/dist/modules/rendering/styles/BehindActorBaselineCss.js +0 -19
  484. package/dist/modules/rendering/styles/BehindActorBaselineCss.js.map +0 -1
  485. package/dist/modules/rendering/styles/VideoFrameLayerClass.d.ts.map +0 -1
  486. package/dist/modules/rendering/styles/VideoFrameLayerClass.js +0 -21
  487. package/dist/modules/rendering/styles/VideoFrameLayerClass.js.map +0 -1
  488. package/dist/modules/rendering/types/BehindActorRequirement.d.ts +0 -12
  489. package/dist/modules/rendering/types/BehindActorRequirement.d.ts.map +0 -1
  490. package/dist/modules/rendering/types/BehindActorRequirement.js +0 -2
  491. package/dist/modules/rendering/types/BehindActorRequirement.js.map +0 -1
  492. package/dist/modules/transcription/BrowserAudioDecoder.d.ts +0 -13
  493. package/dist/modules/transcription/BrowserAudioDecoder.d.ts.map +0 -1
  494. package/dist/modules/transcription/BrowserAudioDecoder.js +0 -34
  495. package/dist/modules/transcription/BrowserAudioDecoder.js.map +0 -1
@@ -0,0 +1,48 @@
1
+ const KEYFRAME_NAME_RE = /@(?:-webkit-|-moz-)?keyframes\s+([a-zA-Z_-][a-zA-Z0-9_-]*)/g;
2
+ const SELECTOR_SPECIAL_CHARS_RE = /[.*+?^${}()|[\]\\]/g;
3
+ /**
4
+ * Renames every `@keyframes` in a stylesheet to a form unique to
5
+ * `key`, and rewrites the `animation-name` / `animation` references
6
+ * that point at them in step.
7
+ *
8
+ * Keyframe names are global to the document, so two stylesheets that
9
+ * both define `fade-in` silently share whichever one loaded last.
10
+ * Anything emitting more than one stylesheet into the same document —
11
+ * or more than one independently-authored block into the same
12
+ * stylesheet — has to pass its blocks through here first.
13
+ *
14
+ * `key` becomes part of a CSS identifier, so it must be spellable as
15
+ * one: letters, digits, `_` and `-`. A key carrying anything else turns
16
+ * every `@keyframes` it names into a syntax error, which costs the
17
+ * animations that referenced them and says nothing about why.
18
+ */
19
+ export class CssKeyframeNamespacer {
20
+ namespace(css, key) {
21
+ const names = new Set();
22
+ for (const match of css.matchAll(KEYFRAME_NAME_RE))
23
+ names.add(match[1]);
24
+ if (names.size === 0)
25
+ return css;
26
+ let result = css;
27
+ for (const name of names) {
28
+ result = this.renameOne(result, name, `${name}-${key}`);
29
+ }
30
+ return result;
31
+ }
32
+ renameOne(css, name, renamed) {
33
+ const escaped = name.replace(SELECTOR_SPECIAL_CHARS_RE, '\\$&');
34
+ let result = css.replace(new RegExp(`(@(?:-webkit-|-moz-)?keyframes\\s+)${escaped}(?![\\w-])`, 'g'), `$1${renamed}`);
35
+ // Both `animation-name:` and the `animation:` shorthand can carry a
36
+ // comma-separated list of names. The rewrite scans the whole value
37
+ // range (between `:` and the next `;` or rule boundary) and replaces
38
+ // every whole-word occurrence, so the second entry in
39
+ // `animation-name: foo, bar` is reached. The value-bounded scope
40
+ // avoids touching a class or property elsewhere that happens to
41
+ // share the spelling.
42
+ const replaceInValue = (_m, prefix, value) => prefix + value.replace(new RegExp(`(?<![\\w-])${escaped}(?![\\w-])`, 'g'), renamed);
43
+ result = result.replace(/(animation-name\s*:\s*)([^;{}]*)/g, replaceInValue);
44
+ result = result.replace(/(animation\s*:\s*)([^;{}]*)/g, replaceInValue);
45
+ return result;
46
+ }
47
+ }
48
+ //# sourceMappingURL=CssKeyframeNamespacer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CssKeyframeNamespacer.js","sourceRoot":"","sources":["../../../src/modules/css/CssKeyframeNamespacer.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,6DAA6D,CAAC;AACvF,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,qBAAqB;IAChC,SAAS,CAAC,GAAW,EAAE,GAAW;QAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAEjC,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,SAAS,CAAC,GAAW,EAAE,IAAY,EAAE,OAAe;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CACtB,IAAI,MAAM,CAAC,sCAAsC,OAAO,YAAY,EAAE,GAAG,CAAC,EAC1E,KAAK,OAAO,EAAE,CACf,CAAC;QACF,oEAAoE;QACpE,mEAAmE;QACnE,qEAAqE;QACrE,sDAAsD;QACtD,iEAAiE;QACjE,gEAAgE;QAChE,sBAAsB;QACtB,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,MAAc,EAAE,KAAa,EAAU,EAAE,CAC3E,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,cAAc,OAAO,YAAY,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACtF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mCAAmC,EAAE,cAAc,CAAC,CAAC;QAC7E,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Extracts `@keyframes` names from a stylesheet: the names it defines
3
+ * and the names its `animation` / `animation-name` declarations
4
+ * reference. Comparing the two sets finds animations that can never
5
+ * run because their keyframes are missing.
6
+ *
7
+ * Cheap regex scan rather than a CSS parse; pass the source through
8
+ * {@link CssMinifier} first so commented-out rules don't count.
9
+ * Function tokens (`cubic-bezier(…)`, `var(…)`, `steps(…)`) and
10
+ * shorthand keywords are excluded from references, so what remains is
11
+ * the author-chosen names.
12
+ */
13
+ export declare class CssKeyframesScanner {
14
+ definedNames(css: string): Set<string>;
15
+ referencedNames(css: string): Set<string>;
16
+ /**
17
+ * Clears what sits between a function's parentheses while keeping the
18
+ * parentheses themselves, so `steps(2, end)` becomes `steps()`.
19
+ * Arguments can hold bare identifiers — `end` and `start` in
20
+ * `steps()`, `jump-none` and friends — that are indistinguishable
21
+ * from a keyframes name once the enclosing call is gone. Keeping the
22
+ * `(` lets the function's own name still be recognised as a function
23
+ * rather than collected as a reference.
24
+ */
25
+ private emptyFunctionArguments;
26
+ private collectNameTokens;
27
+ private isFunctionToken;
28
+ }
29
+ //# sourceMappingURL=CssKeyframesScanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CssKeyframesScanner.d.ts","sourceRoot":"","sources":["../../../src/modules/css/CssKeyframesScanner.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAE9B,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAQtC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAQzC;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;CAGxB"}
@@ -0,0 +1,102 @@
1
+ const DEFINITION_PATTERN = /@(?:-webkit-|-moz-)?keyframes\s+([a-zA-Z_-][a-zA-Z0-9_-]*)/g;
2
+ const ANIMATION_VALUE_PATTERN = /(?:animation-name|animation)\s*:\s*([^;{}]*)/g;
3
+ const IDENT_PATTERN = /(?<![\w.#-])-?[a-zA-Z_][a-zA-Z0-9_-]*/g;
4
+ /** Value tokens that are animation shorthand keywords, never a keyframes name. */
5
+ const ANIMATION_VALUE_KEYWORDS = new Set([
6
+ 'none',
7
+ 'linear',
8
+ 'ease',
9
+ 'ease-in',
10
+ 'ease-out',
11
+ 'ease-in-out',
12
+ 'step-start',
13
+ 'step-end',
14
+ 'infinite',
15
+ 'normal',
16
+ 'reverse',
17
+ 'alternate',
18
+ 'alternate-reverse',
19
+ 'forwards',
20
+ 'backwards',
21
+ 'both',
22
+ 'running',
23
+ 'paused',
24
+ 'inherit',
25
+ 'initial',
26
+ 'unset',
27
+ 'revert',
28
+ 'revert-layer',
29
+ 'important',
30
+ ]);
31
+ /**
32
+ * Extracts `@keyframes` names from a stylesheet: the names it defines
33
+ * and the names its `animation` / `animation-name` declarations
34
+ * reference. Comparing the two sets finds animations that can never
35
+ * run because their keyframes are missing.
36
+ *
37
+ * Cheap regex scan rather than a CSS parse; pass the source through
38
+ * {@link CssMinifier} first so commented-out rules don't count.
39
+ * Function tokens (`cubic-bezier(…)`, `var(…)`, `steps(…)`) and
40
+ * shorthand keywords are excluded from references, so what remains is
41
+ * the author-chosen names.
42
+ */
43
+ export class CssKeyframesScanner {
44
+ definedNames(css) {
45
+ const found = new Set();
46
+ for (const match of css.matchAll(DEFINITION_PATTERN)) {
47
+ found.add(match[1]);
48
+ }
49
+ return found;
50
+ }
51
+ referencedNames(css) {
52
+ const found = new Set();
53
+ for (const declaration of css.matchAll(ANIMATION_VALUE_PATTERN)) {
54
+ this.collectNameTokens(this.emptyFunctionArguments(declaration[1]), found);
55
+ }
56
+ return found;
57
+ }
58
+ /**
59
+ * Clears what sits between a function's parentheses while keeping the
60
+ * parentheses themselves, so `steps(2, end)` becomes `steps()`.
61
+ * Arguments can hold bare identifiers — `end` and `start` in
62
+ * `steps()`, `jump-none` and friends — that are indistinguishable
63
+ * from a keyframes name once the enclosing call is gone. Keeping the
64
+ * `(` lets the function's own name still be recognised as a function
65
+ * rather than collected as a reference.
66
+ */
67
+ emptyFunctionArguments(value) {
68
+ let depth = 0;
69
+ let out = '';
70
+ for (const char of value) {
71
+ if (char === '(') {
72
+ depth++;
73
+ if (depth === 1)
74
+ out += char;
75
+ }
76
+ else if (char === ')') {
77
+ if (depth === 1)
78
+ out += char;
79
+ if (depth > 0)
80
+ depth--;
81
+ }
82
+ else if (depth === 0) {
83
+ out += char;
84
+ }
85
+ }
86
+ return out;
87
+ }
88
+ collectNameTokens(value, found) {
89
+ for (const match of value.matchAll(IDENT_PATTERN)) {
90
+ const token = match[0];
91
+ if (ANIMATION_VALUE_KEYWORDS.has(token))
92
+ continue;
93
+ if (this.isFunctionToken(value, match.index + token.length))
94
+ continue;
95
+ found.add(token);
96
+ }
97
+ }
98
+ isFunctionToken(value, indexAfterToken) {
99
+ return value[indexAfterToken] === '(';
100
+ }
101
+ }
102
+ //# sourceMappingURL=CssKeyframesScanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CssKeyframesScanner.js","sourceRoot":"","sources":["../../../src/modules/css/CssKeyframesScanner.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,6DAA6D,CAAC;AACzF,MAAM,uBAAuB,GAAG,+CAA+C,CAAC;AAChF,MAAM,aAAa,GAAG,wCAAwC,CAAC;AAE/D,kFAAkF;AAClF,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IAC5D,MAAM;IACN,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,aAAa;IACb,YAAY;IACZ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,SAAS;IACT,WAAW;IACX,mBAAmB;IACnB,UAAU;IACV,WAAW;IACX,MAAM;IACN,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,cAAc;IACd,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAmB;IAE9B,YAAY,CAAC,GAAW;QACtB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,WAAW,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACK,sBAAsB,CAAC,KAAa;QAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC;oBAAE,GAAG,IAAI,IAAI,CAAC;YAC/B,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,IAAI,KAAK,KAAK,CAAC;oBAAE,GAAG,IAAI,IAAI,CAAC;gBAC7B,IAAI,KAAK,GAAG,CAAC;oBAAE,KAAK,EAAE,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACvB,GAAG,IAAI,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,iBAAiB,CAAC,KAAa,EAAE,KAAkB;QACzD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAClD,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;gBAAE,SAAS;YACtE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAa,EAAE,eAAuB;QAC5D,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC;IACxC,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Cascade layers the framework publishes as part of its stylesheet
3
+ * contract, mirroring how `CssClass` names the published classes.
4
+ *
5
+ * Only the framework's own layer is named here. A consumer that wants
6
+ * its stylesheets to lose to the framework's `!important` rules and win
7
+ * over its normal ones puts them in layers of its own, declared after
8
+ * this one — layers are ordered by first appearance, and the framework
9
+ * baseline is emitted first.
10
+ *
11
+ * The layer is load-bearing rather than cosmetic. Cascade order puts
12
+ * unlayered `!important` declarations *below* layered ones, so a
13
+ * framework rule left outside a layer would lose to any `!important` a
14
+ * consumer writes — including the frozen-frame rule that makes a
15
+ * rendered frame a function of the playhead.
16
+ */
17
+ export declare enum CssLayer {
18
+ FRAMEWORK = "tscaps-framework"
19
+ }
20
+ //# sourceMappingURL=CssLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CssLayer.d.ts","sourceRoot":"","sources":["../../../src/modules/css/CssLayer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,QAAQ;IAClB,SAAS,qBAAqB;CAC/B"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Cascade layers the framework publishes as part of its stylesheet
3
+ * contract, mirroring how `CssClass` names the published classes.
4
+ *
5
+ * Only the framework's own layer is named here. A consumer that wants
6
+ * its stylesheets to lose to the framework's `!important` rules and win
7
+ * over its normal ones puts them in layers of its own, declared after
8
+ * this one — layers are ordered by first appearance, and the framework
9
+ * baseline is emitted first.
10
+ *
11
+ * The layer is load-bearing rather than cosmetic. Cascade order puts
12
+ * unlayered `!important` declarations *below* layered ones, so a
13
+ * framework rule left outside a layer would lose to any `!important` a
14
+ * consumer writes — including the frozen-frame rule that makes a
15
+ * rendered frame a function of the playhead.
16
+ */
17
+ export var CssLayer;
18
+ (function (CssLayer) {
19
+ CssLayer["FRAMEWORK"] = "tscaps-framework";
20
+ })(CssLayer || (CssLayer = {}));
21
+ //# sourceMappingURL=CssLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CssLayer.js","sourceRoot":"","sources":["../../../src/modules/css/CssLayer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,0CAA8B,CAAA;AAChC,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB"}
@@ -14,15 +14,24 @@
14
14
  * (e.g. `.my-scope`); its identifier portion seeds the keyframe rename.
15
15
  */
16
16
  export declare class CssScoper {
17
+ private readonly keyframeNamespacer;
17
18
  scope(css: string, scopeSelector: string): string;
18
- private scopeKeyframes;
19
19
  private scopeSelectorsInRange;
20
20
  private scopeAtRuleBody;
21
21
  private scopeCompoundSelector;
22
22
  private isWhitespace;
23
23
  private isCommentStart;
24
24
  private findCommentEnd;
25
- private findBraceOrEnd;
25
+ /**
26
+ * Locates the boundary that ends the current top-level construct:
27
+ * `{` opens a rule block, `;` terminates a statement-form at-rule
28
+ * (`@charset`, `@import`, `@namespace`, `@layer name;`), and `end`
29
+ * means the range was consumed without either.
30
+ *
31
+ * Skips over string literals and CSS comments so a `;` inside a
32
+ * `url("…")` or a commented-out block doesn't fool the caller.
33
+ */
34
+ private findRuleTerminator;
26
35
  private isAtRuleHeader;
27
36
  private extractAtRuleName;
28
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CssScoper.d.ts","sourceRoot":"","sources":["../../../src/modules/css/CssScoper.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,SAAS;IACpB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAKjD,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,qBAAqB;IAuC7B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;IAKzB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAyB1B"}
1
+ {"version":3,"file":"CssScoper.d.ts","sourceRoot":"","sources":["../../../src/modules/css/CssScoper.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA+B;IAElE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAKjD,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;IAKtB;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;IAKzB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAyB1B"}
@@ -1,6 +1,5 @@
1
- const KEYFRAME_NAME_RE = /@(?:-webkit-|-moz-)?keyframes\s+([a-zA-Z_-][a-zA-Z0-9_-]*)/g;
1
+ import { CssKeyframeNamespacer } from '../css/CssKeyframeNamespacer';
2
2
  const AT_RULE_NAME_RE = /^@([a-zA-Z][a-zA-Z0-9-]*)/;
3
- const SELECTOR_SPECIAL_CHARS_RE = /[.*+?^${}()|[\]\\]/g;
4
3
  /** At-rules whose body holds regular style rules — selectors inside must be scoped. */
5
4
  const SCOPEABLE_AT_RULES = new Set([
6
5
  'container',
@@ -9,7 +8,6 @@ const SCOPEABLE_AT_RULES = new Set([
9
8
  'layer',
10
9
  'scope',
11
10
  ]);
12
- const escapeRegex = (s) => s.replace(SELECTOR_SPECIAL_CHARS_RE, '\\$&');
13
11
  /**
14
12
  * Scopes a CSS string so it can coexist with sibling stylesheets in
15
13
  * the same document. Top-level selectors get prefixed with
@@ -26,33 +24,10 @@ const escapeRegex = (s) => s.replace(SELECTOR_SPECIAL_CHARS_RE, '\\$&');
26
24
  * (e.g. `.my-scope`); its identifier portion seeds the keyframe rename.
27
25
  */
28
26
  export class CssScoper {
27
+ keyframeNamespacer = new CssKeyframeNamespacer();
29
28
  scope(css, scopeSelector) {
30
29
  const scopeKey = scopeSelector.replace(/^\.+/, '');
31
- return this.scopeSelectorsInRange(this.scopeKeyframes(css, scopeKey), 0, undefined, scopeSelector);
32
- }
33
- scopeKeyframes(css, scopeKey) {
34
- const names = new Set();
35
- for (const m of css.matchAll(KEYFRAME_NAME_RE))
36
- names.add(m[1]);
37
- if (names.size === 0)
38
- return css;
39
- let result = css;
40
- for (const name of names) {
41
- const scopedName = `${name}-${scopeKey}`;
42
- const esc = escapeRegex(name);
43
- result = result.replace(new RegExp(`(@(?:-webkit-|-moz-)?keyframes\\s+)${esc}(?![\\w-])`, 'g'), `$1${scopedName}`);
44
- // Both `animation-name:` and the `animation:` shorthand can carry a
45
- // comma-separated list of names. The rewrite scans the whole value
46
- // range (between `:` and the next `;` or rule boundary) and replaces
47
- // every whole-word occurrence, so the second entry in
48
- // `animation-name: foo, bar` is reached. The value-bounded scope
49
- // avoids touching a class or property elsewhere that happens to
50
- // share the spelling.
51
- const replaceInValue = (_m, prefix, value) => prefix + value.replace(new RegExp(`(?<![\\w-])${esc}(?![\\w-])`, 'g'), scopedName);
52
- result = result.replace(/(animation-name\s*:\s*)([^;{}]*)/g, replaceInValue);
53
- result = result.replace(/(animation\s*:\s*)([^;{}]*)/g, replaceInValue);
54
- }
55
- return result;
30
+ return this.scopeSelectorsInRange(this.keyframeNamespacer.namespace(css, scopeKey), 0, undefined, scopeSelector);
56
31
  }
57
32
  scopeSelectorsInRange(css, start, end, scopeSelector) {
58
33
  const stopAt = end ?? css.length;
@@ -71,13 +46,20 @@ export class CssScoper {
71
46
  i = commentEnd;
72
47
  continue;
73
48
  }
74
- const braceIndex = this.findBraceOrEnd(css, i, stopAt);
75
- if (braceIndex === stopAt) {
49
+ const { index: ruleEnd, kind } = this.findRuleTerminator(css, i, stopAt);
50
+ if (kind === 'end') {
76
51
  result += css.slice(i, stopAt);
77
52
  return result;
78
53
  }
79
- const header = css.slice(i, braceIndex);
80
- const bodyStart = braceIndex + 1;
54
+ if (kind === 'semi') {
55
+ // Statement-form at-rule (`@charset`, `@import`, `@namespace`,
56
+ // `@layer name;`): no block to scope, emit as-is and advance.
57
+ result += css.slice(i, ruleEnd + 1);
58
+ i = ruleEnd + 1;
59
+ continue;
60
+ }
61
+ const header = css.slice(i, ruleEnd);
62
+ const bodyStart = ruleEnd + 1;
81
63
  const bodyEnd = this.findMatchingClose(css, bodyStart, stopAt);
82
64
  if (this.isAtRuleHeader(header)) {
83
65
  result += `${header}{`;
@@ -117,12 +99,46 @@ export class CssScoper {
117
99
  const closeIndex = css.indexOf('*/', commentStart + 2);
118
100
  return closeIndex === -1 || closeIndex >= stopAt ? stopAt : closeIndex + 2;
119
101
  }
120
- findBraceOrEnd(css, start, stopAt) {
121
- for (let i = start; i < stopAt; i++) {
122
- if (css[i] === '{')
123
- return i;
102
+ /**
103
+ * Locates the boundary that ends the current top-level construct:
104
+ * `{` opens a rule block, `;` terminates a statement-form at-rule
105
+ * (`@charset`, `@import`, `@namespace`, `@layer name;`), and `end`
106
+ * means the range was consumed without either.
107
+ *
108
+ * Skips over string literals and CSS comments so a `;` inside a
109
+ * `url("…")` or a commented-out block doesn't fool the caller.
110
+ */
111
+ findRuleTerminator(css, start, stopAt) {
112
+ let i = start;
113
+ let stringDelim = null;
114
+ while (i < stopAt) {
115
+ const ch = css[i];
116
+ if (stringDelim) {
117
+ if (ch === '\\' && i + 1 < stopAt) {
118
+ i += 2;
119
+ continue;
120
+ }
121
+ if (ch === stringDelim)
122
+ stringDelim = null;
123
+ i++;
124
+ continue;
125
+ }
126
+ if (ch === '"' || ch === '\'') {
127
+ stringDelim = ch;
128
+ i++;
129
+ continue;
130
+ }
131
+ if (this.isCommentStart(css, i)) {
132
+ i = this.findCommentEnd(css, i, stopAt);
133
+ continue;
134
+ }
135
+ if (ch === '{')
136
+ return { index: i, kind: 'brace' };
137
+ if (ch === ';')
138
+ return { index: i, kind: 'semi' };
139
+ i++;
124
140
  }
125
- return stopAt;
141
+ return { index: stopAt, kind: 'end' };
126
142
  }
127
143
  isAtRuleHeader(header) {
128
144
  return header.trimStart().startsWith('@');
@@ -1 +1 @@
1
- {"version":3,"file":"CssScoper.js","sourceRoot":"","sources":["../../../src/modules/css/CssScoper.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,6DAA6D,CAAC;AACvF,MAAM,eAAe,GAAG,2BAA2B,CAAC;AACpD,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAExD,uFAAuF;AACvF,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IACtD,WAAW;IACX,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;AAExF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,SAAS;IACpB,KAAK,CAAC,GAAW,EAAE,aAAqB;QACtC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACrG,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,QAAgB;QAClD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QACjE,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QACjC,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,IAAI,MAAM,CAAC,sCAAsC,GAAG,YAAY,EAAE,GAAG,CAAC,EACtE,KAAK,UAAU,EAAE,CAClB,CAAC;YACF,oEAAoE;YACpE,mEAAmE;YACnE,qEAAqE;YACrE,sDAAsD;YACtD,iEAAiE;YACjE,gEAAgE;YAChE,sBAAsB;YACtB,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,MAAc,EAAE,KAAa,EAAU,EAAE,CAC3E,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,cAAc,GAAG,YAAY,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;YACrF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mCAAmC,EAAE,cAAc,CAAC,CAAC;YAC7E,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB,CAC3B,GAAW,EACX,KAAa,EACb,GAAuB,EACvB,aAAqB;QAErB,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;QACjC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YACnB,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,IAAI,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACnC,CAAC,GAAG,UAAU,CAAC;gBACf,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAAC,OAAO,MAAM,CAAC;YAAC,CAAC;YAE7E,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAE/D,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC;gBACvB,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC/E,MAAM,IAAI,GAAG,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;gBACnE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACxC,MAAM,IAAI,GAAG,CAAC;YAChB,CAAC;YACD,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CACrB,GAAW,EACX,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,aAAqB;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAEO,qBAAqB,CAAC,QAAgB,EAAE,aAAqB;QACnE,OAAO,QAAQ;aACZ,IAAI,EAAE;aACN,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,EAAU;QAC7B,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC;IAChF,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,CAAS;QAC3C,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;IAC9C,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,YAAoB,EAAE,MAAc;QACtE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;QACvD,OAAO,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,KAAa,EAAE,MAAc;QAC/D,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,cAAc,CAAC,MAAc;QACnC,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,GAAW,EAAE,KAAa,EAAE,MAAc;QAClE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,IAAI,WAAW,GAAqB,IAAI,CAAC;QACzC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YACnB,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;oBAAC,CAAC,IAAI,CAAC,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACxD,IAAI,EAAE,KAAK,WAAW;oBAAE,WAAW,GAAG,IAAI,CAAC;gBAC3C,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAAC,WAAW,GAAG,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YACnE,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACvF,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAAC,KAAK,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC3C,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC;gBAC1B,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YACD,CAAC,EAAE,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"CssScoper.js","sourceRoot":"","sources":["../../../src/modules/css/CssScoper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Returns every class name used in rule selectors across the given
3
+ * source. `@keyframes` bodies are skipped entirely (their selectors
4
+ * are offsets, not element selectors); every other at-rule body is
5
+ * scanned recursively so selectors inside `@container` / `@media` /
6
+ * `@supports` blocks are covered.
7
+ *
8
+ * Only selector headers are scanned — declaration bodies are not, so
9
+ * a dot inside a value (`url(image.png)`) never registers. Pass the
10
+ * source through {@link CssMinifier} first so commented-out rules
11
+ * don't count. Selectors nested inside style-rule bodies (native CSS
12
+ * nesting) are not scanned.
13
+ */
14
+ export declare class CssSelectorClassScanner {
15
+ scan(css: string): Set<string>;
16
+ private scanRange;
17
+ private collectClasses;
18
+ /**
19
+ * Index of the `}` closing the block opened just before `start`.
20
+ * String literals are respected so braces inside them don't shift
21
+ * the depth. Falls back to `end` when the block is unterminated.
22
+ */
23
+ private findMatchingClose;
24
+ }
25
+ //# sourceMappingURL=CssSelectorClassScanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CssSelectorClassScanner.d.ts","sourceRoot":"","sources":["../../../src/modules/css/CssSelectorClassScanner.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,qBAAa,uBAAuB;IAElC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAM9B,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,cAAc;IAMtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAwB1B"}
@@ -0,0 +1,91 @@
1
+ const CLASS_IN_SELECTOR_PATTERN = /\.(-?[a-zA-Z_][a-zA-Z0-9_-]*)/g;
2
+ const KEYFRAMES_HEADER_PATTERN = /^\s*@(?:-webkit-|-moz-)?keyframes\b/;
3
+ /**
4
+ * Returns every class name used in rule selectors across the given
5
+ * source. `@keyframes` bodies are skipped entirely (their selectors
6
+ * are offsets, not element selectors); every other at-rule body is
7
+ * scanned recursively so selectors inside `@container` / `@media` /
8
+ * `@supports` blocks are covered.
9
+ *
10
+ * Only selector headers are scanned — declaration bodies are not, so
11
+ * a dot inside a value (`url(image.png)`) never registers. Pass the
12
+ * source through {@link CssMinifier} first so commented-out rules
13
+ * don't count. Selectors nested inside style-rule bodies (native CSS
14
+ * nesting) are not scanned.
15
+ */
16
+ export class CssSelectorClassScanner {
17
+ scan(css) {
18
+ const found = new Set();
19
+ this.scanRange(css, 0, css.length, found);
20
+ return found;
21
+ }
22
+ scanRange(css, start, end, found) {
23
+ let i = start;
24
+ while (i < end) {
25
+ const brace = css.indexOf('{', i);
26
+ if (brace === -1 || brace >= end)
27
+ return;
28
+ const header = css.slice(i, brace);
29
+ const bodyStart = brace + 1;
30
+ const bodyEnd = this.findMatchingClose(css, bodyStart, end);
31
+ if (KEYFRAMES_HEADER_PATTERN.test(header.trimStart())) {
32
+ // skip: keyframe step selectors are percentages, not elements
33
+ }
34
+ else if (header.trimStart().startsWith('@')) {
35
+ this.scanRange(css, bodyStart, bodyEnd, found);
36
+ }
37
+ else {
38
+ this.collectClasses(header, found);
39
+ }
40
+ i = bodyEnd + 1;
41
+ }
42
+ }
43
+ collectClasses(header, found) {
44
+ for (const match of header.matchAll(CLASS_IN_SELECTOR_PATTERN)) {
45
+ found.add(match[1]);
46
+ }
47
+ }
48
+ /**
49
+ * Index of the `}` closing the block opened just before `start`.
50
+ * String literals are respected so braces inside them don't shift
51
+ * the depth. Falls back to `end` when the block is unterminated.
52
+ */
53
+ findMatchingClose(css, start, end) {
54
+ let depth = 1;
55
+ let i = start;
56
+ let stringDelim = null;
57
+ while (i < end) {
58
+ const ch = css[i];
59
+ if (stringDelim) {
60
+ if (ch === '\\' && i + 1 < end) {
61
+ i += 2;
62
+ continue;
63
+ }
64
+ if (ch === stringDelim)
65
+ stringDelim = null;
66
+ i++;
67
+ continue;
68
+ }
69
+ if (ch === '"' || ch === "'") {
70
+ stringDelim = ch;
71
+ i++;
72
+ continue;
73
+ }
74
+ if (ch === '{') {
75
+ depth++;
76
+ i++;
77
+ continue;
78
+ }
79
+ if (ch === '}') {
80
+ depth--;
81
+ if (depth === 0)
82
+ return i;
83
+ i++;
84
+ continue;
85
+ }
86
+ i++;
87
+ }
88
+ return end;
89
+ }
90
+ }
91
+ //# sourceMappingURL=CssSelectorClassScanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CssSelectorClassScanner.js","sourceRoot":"","sources":["../../../src/modules/css/CssSelectorClassScanner.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
1
  /**
2
- * Returns every CSS custom property name referenced via `var(--name)`
3
- * anywhere in the given source.
2
+ * Returns every CSS custom property name the given source reads, whether
3
+ * it substitutes the value with `var(--name)` or tests it in a style
4
+ * query such as `@container style(--name: rtl)`.
4
5
  *
5
6
  * Cheap regex scan rather than a CSS parse. False positives are
6
- * limited to literal `var(--…)` substrings inside string values; pass
7
- * the source through {@link CssMinifier} first to drop comments that
8
- * would otherwise contribute to the result.
7
+ * limited to literal `var(--…)` / `style(--…)` substrings inside string
8
+ * values; pass the source through {@link CssMinifier} first to drop
9
+ * comments that would otherwise contribute to the result. Over-inclusion
10
+ * is harmless — it only keeps a property that would have been dropped.
9
11
  */
10
12
  export declare class CssVarReferenceScanner {
11
13
  scan(css: string): Set<string>;
14
+ private collectMatches;
12
15
  }
13
16
  //# sourceMappingURL=CssVarReferenceScanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CssVarReferenceScanner.d.ts","sourceRoot":"","sources":["../../../src/modules/css/CssVarReferenceScanner.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IAEjC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;CAO/B"}
1
+ {"version":3,"file":"CssVarReferenceScanner.d.ts","sourceRoot":"","sources":["../../../src/modules/css/CssVarReferenceScanner.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB;IAEjC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAO9B,OAAO,CAAC,cAAc;CAKvB"}
@@ -1,20 +1,27 @@
1
1
  const VAR_REFERENCE_PATTERN = /var\(\s*(--[a-zA-Z0-9_-]+)/g;
2
+ const STYLE_QUERY_PATTERN = /style\(\s*(--[a-zA-Z0-9_-]+)/g;
2
3
  /**
3
- * Returns every CSS custom property name referenced via `var(--name)`
4
- * anywhere in the given source.
4
+ * Returns every CSS custom property name the given source reads, whether
5
+ * it substitutes the value with `var(--name)` or tests it in a style
6
+ * query such as `@container style(--name: rtl)`.
5
7
  *
6
8
  * Cheap regex scan rather than a CSS parse. False positives are
7
- * limited to literal `var(--…)` substrings inside string values; pass
8
- * the source through {@link CssMinifier} first to drop comments that
9
- * would otherwise contribute to the result.
9
+ * limited to literal `var(--…)` / `style(--…)` substrings inside string
10
+ * values; pass the source through {@link CssMinifier} first to drop
11
+ * comments that would otherwise contribute to the result. Over-inclusion
12
+ * is harmless — it only keeps a property that would have been dropped.
10
13
  */
11
14
  export class CssVarReferenceScanner {
12
15
  scan(css) {
13
16
  const found = new Set();
14
- for (const match of css.matchAll(VAR_REFERENCE_PATTERN)) {
17
+ this.collectMatches(css, VAR_REFERENCE_PATTERN, found);
18
+ this.collectMatches(css, STYLE_QUERY_PATTERN, found);
19
+ return found;
20
+ }
21
+ collectMatches(css, pattern, found) {
22
+ for (const match of css.matchAll(pattern)) {
15
23
  found.add(match[1]);
16
24
  }
17
- return found;
18
25
  }
19
26
  }
20
27
  //# sourceMappingURL=CssVarReferenceScanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CssVarReferenceScanner.js","sourceRoot":"","sources":["../../../src/modules/css/CssVarReferenceScanner.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAsB;IAEjC,IAAI,CAAC,GAAW;QACd,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"CssVarReferenceScanner.js","sourceRoot":"","sources":["../../../src/modules/css/CssVarReferenceScanner.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AAC5D,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,MAAM,OAAO,sBAAsB;IAEjC,IAAI,CAAC,GAAW;QACd,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,OAAe,EAAE,KAAkB;QACrE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}