@thunderkiller/video-clipper 1.8.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/dist/app/cli/args.d.ts.map +1 -1
  2. package/dist/app/cli/args.js +13 -13
  3. package/dist/app/cli/args.js.map +1 -1
  4. package/dist/app/cli/index.js +10 -9
  5. package/dist/app/cli/index.js.map +1 -1
  6. package/dist/app/cli/pipeline/dumper.d.ts.map +1 -1
  7. package/dist/app/cli/pipeline/dumper.js +4 -4
  8. package/dist/app/cli/pipeline/dumper.js.map +1 -1
  9. package/dist/app/cli/pipeline/runner.d.ts +1 -1
  10. package/dist/app/cli/pipeline/runner.d.ts.map +1 -1
  11. package/dist/app/cli/pipeline/runner.js +16 -15
  12. package/dist/app/cli/pipeline/runner.js.map +1 -1
  13. package/dist/app/cli/pipeline/stages/audioProcessor.d.ts +2 -15
  14. package/dist/app/cli/pipeline/stages/audioProcessor.d.ts.map +1 -1
  15. package/dist/app/cli/pipeline/stages/audioProcessor.js +7 -7
  16. package/dist/app/cli/pipeline/stages/audioProcessor.js.map +1 -1
  17. package/dist/app/cli/pipeline/stages/videoResolver.d.ts.map +1 -1
  18. package/dist/app/cli/pipeline/stages/videoResolver.js +2 -2
  19. package/dist/app/cli/pipeline/stages/videoResolver.js.map +1 -1
  20. package/dist/app/web/lib/activity/analysisActivity.d.ts +3 -5
  21. package/dist/app/web/lib/activity/analysisActivity.d.ts.map +1 -1
  22. package/dist/app/web/lib/activity/analysisActivity.js.map +1 -1
  23. package/dist/app/web/lib/analysisStream.d.ts +3 -11
  24. package/dist/app/web/lib/analysisStream.d.ts.map +1 -1
  25. package/dist/app/web/lib/analysisStream.js +26 -3
  26. package/dist/app/web/lib/analysisStream.js.map +1 -1
  27. package/dist/app/web/lib/captionTemplates.d.ts +3 -0
  28. package/dist/app/web/lib/captionTemplates.d.ts.map +1 -0
  29. package/dist/app/web/lib/captionTemplates.js +98 -0
  30. package/dist/app/web/lib/captionTemplates.js.map +1 -0
  31. package/dist/app/web/lib/format.d.ts +2 -0
  32. package/dist/app/web/lib/format.d.ts.map +1 -1
  33. package/dist/app/web/lib/format.js +20 -0
  34. package/dist/app/web/lib/format.js.map +1 -1
  35. package/dist/app/web/lib/services/analysis/analysisService.d.ts +1 -1
  36. package/dist/app/web/lib/services/analysis/analysisService.d.ts.map +1 -1
  37. package/dist/app/web/lib/services/analysis/analysisService.js +5 -4
  38. package/dist/app/web/lib/services/analysis/analysisService.js.map +1 -1
  39. package/dist/app/web/lib/services/analysis/streamEvents.d.ts +2 -1
  40. package/dist/app/web/lib/services/analysis/streamEvents.d.ts.map +1 -1
  41. package/dist/app/web/lib/services/analysis/streamEvents.js +1 -1
  42. package/dist/app/web/lib/services/analysis/streamEvents.js.map +1 -1
  43. package/dist/app/web/lib/services/analysis/transcriptService.d.ts.map +1 -1
  44. package/dist/app/web/lib/services/analysis/transcriptService.js +1 -2
  45. package/dist/app/web/lib/services/analysis/transcriptService.js.map +1 -1
  46. package/dist/app/web/lib/services/artifacts/artifactStore.d.ts +9 -0
  47. package/dist/app/web/lib/services/artifacts/artifactStore.d.ts.map +1 -1
  48. package/dist/app/web/lib/services/artifacts/artifactStore.js +45 -0
  49. package/dist/app/web/lib/services/artifacts/artifactStore.js.map +1 -1
  50. package/dist/app/web/lib/services/clipping/clipEditService.d.ts +12 -0
  51. package/dist/app/web/lib/services/clipping/clipEditService.d.ts.map +1 -0
  52. package/dist/app/web/lib/services/clipping/clipEditService.js +73 -0
  53. package/dist/app/web/lib/services/clipping/clipEditService.js.map +1 -0
  54. package/dist/app/web/lib/services/clipping/clipService.d.ts.map +1 -1
  55. package/dist/app/web/lib/services/clipping/clipService.js +27 -5
  56. package/dist/app/web/lib/services/clipping/clipService.js.map +1 -1
  57. package/dist/app/web/lib/services/config/webConfig.d.ts +2 -8
  58. package/dist/app/web/lib/services/config/webConfig.d.ts.map +1 -1
  59. package/dist/app/web/lib/services/config/webConfig.js.map +1 -1
  60. package/dist/app/web/lib/services/publishing/draftService.d.ts +1 -0
  61. package/dist/app/web/lib/services/publishing/draftService.d.ts.map +1 -1
  62. package/dist/app/web/lib/services/publishing/draftService.js +60 -9
  63. package/dist/app/web/lib/services/publishing/draftService.js.map +1 -1
  64. package/dist/app/web/lib/services/publishing/metadataCache.d.ts +1 -9
  65. package/dist/app/web/lib/services/publishing/metadataCache.d.ts.map +1 -1
  66. package/dist/app/web/lib/services/publishing/metadataCache.js +3 -9
  67. package/dist/app/web/lib/services/publishing/metadataCache.js.map +1 -1
  68. package/dist/app/web/lib/services/publishing/metadataService.d.ts.map +1 -1
  69. package/dist/app/web/lib/services/publishing/metadataService.js +10 -16
  70. package/dist/app/web/lib/services/publishing/metadataService.js.map +1 -1
  71. package/dist/app/web/lib/services/publishing/uploadService.d.ts +3 -6
  72. package/dist/app/web/lib/services/publishing/uploadService.d.ts.map +1 -1
  73. package/dist/app/web/lib/services/publishing/uploadService.js +107 -27
  74. package/dist/app/web/lib/services/publishing/uploadService.js.map +1 -1
  75. package/dist/app/web/lib/services/publishing/uploadStreamEvents.d.ts +2 -1
  76. package/dist/app/web/lib/services/publishing/uploadStreamEvents.d.ts.map +1 -1
  77. package/dist/app/web/lib/services/publishing/uploadStreamEvents.js +1 -1
  78. package/dist/app/web/lib/services/publishing/uploadStreamEvents.js.map +1 -1
  79. package/dist/app/web/lib/services/subtitles/subtitlePlanService.d.ts +5 -0
  80. package/dist/app/web/lib/services/subtitles/subtitlePlanService.d.ts.map +1 -0
  81. package/dist/app/web/lib/services/subtitles/subtitlePlanService.js +113 -0
  82. package/dist/app/web/lib/services/subtitles/subtitlePlanService.js.map +1 -0
  83. package/dist/app/web/lib/services/youtube/catalogFactory.d.ts +1 -1
  84. package/dist/app/web/lib/services/youtube/catalogFactory.d.ts.map +1 -1
  85. package/dist/app/web/lib/services/youtube/uploadAuth.d.ts +1 -6
  86. package/dist/app/web/lib/services/youtube/uploadAuth.d.ts.map +1 -1
  87. package/dist/app/web/lib/services/youtube/uploadAuth.js +34 -7
  88. package/dist/app/web/lib/services/youtube/uploadAuth.js.map +1 -1
  89. package/dist/app/web/lib/{configStore.d.ts → stores/config.d.ts} +2 -2
  90. package/dist/app/web/lib/stores/config.d.ts.map +1 -0
  91. package/dist/app/web/lib/{configStore.js → stores/config.js} +3 -3
  92. package/dist/app/web/lib/stores/config.js.map +1 -0
  93. package/dist/app/web/lib/stores/theme.d.ts +2 -0
  94. package/dist/app/web/lib/stores/theme.d.ts.map +1 -0
  95. package/dist/app/web/lib/stores/theme.js +12 -0
  96. package/dist/app/web/lib/stores/theme.js.map +1 -0
  97. package/dist/app/web/lib/{toastStore.d.ts → stores/toast.d.ts} +3 -6
  98. package/dist/app/web/lib/stores/toast.d.ts.map +1 -0
  99. package/dist/app/web/lib/{toastStore.js → stores/toast.js} +1 -1
  100. package/dist/app/web/lib/{toastStore.js.map → stores/toast.js.map} +1 -1
  101. package/dist/app/web/lib/stores/video.d.ts +12 -0
  102. package/dist/app/web/lib/stores/video.d.ts.map +1 -0
  103. package/dist/app/web/lib/stores/video.js +65 -0
  104. package/dist/app/web/lib/stores/video.js.map +1 -0
  105. package/dist/app/web/lib/subtitleTiming.d.ts +5 -0
  106. package/dist/app/web/lib/subtitleTiming.d.ts.map +1 -0
  107. package/dist/app/web/lib/subtitleTiming.js +45 -0
  108. package/dist/app/web/lib/subtitleTiming.js.map +1 -0
  109. package/dist/app/web/lib/uploadStream.d.ts +4 -17
  110. package/dist/app/web/lib/uploadStream.d.ts.map +1 -1
  111. package/dist/app/web/lib/uploadStream.js.map +1 -1
  112. package/dist/app/web/lib/videoWorkflow.d.ts +2 -8
  113. package/dist/app/web/lib/videoWorkflow.d.ts.map +1 -1
  114. package/dist/app/web/lib/videoWorkflow.js.map +1 -1
  115. package/dist/app/web/routes/api/analysis/transcript/+server.d.ts.map +1 -1
  116. package/dist/app/web/routes/api/analysis/transcript/+server.js +32 -6
  117. package/dist/app/web/routes/api/analysis/transcript/+server.js.map +1 -1
  118. package/dist/app/web/routes/api/cache/videos/[videoId]/analysis/+server.d.ts +3 -0
  119. package/dist/app/web/routes/api/cache/videos/[videoId]/analysis/+server.d.ts.map +1 -0
  120. package/dist/app/web/routes/api/cache/videos/[videoId]/analysis/+server.js +21 -0
  121. package/dist/app/web/routes/api/cache/videos/[videoId]/analysis/+server.js.map +1 -0
  122. package/dist/app/web/routes/api/cache/videos/[videoId]/transcript/+server.d.ts +3 -0
  123. package/dist/app/web/routes/api/cache/videos/[videoId]/transcript/+server.d.ts.map +1 -0
  124. package/dist/app/web/routes/api/cache/videos/[videoId]/transcript/+server.js +21 -0
  125. package/dist/app/web/routes/api/cache/videos/[videoId]/transcript/+server.js.map +1 -0
  126. package/dist/app/web/routes/api/clips/+server.d.ts.map +1 -1
  127. package/dist/app/web/routes/api/clips/+server.js +9 -2
  128. package/dist/app/web/routes/api/clips/+server.js.map +1 -1
  129. package/dist/app/web/routes/api/clips/[clipId]/edits/+server.d.ts +4 -0
  130. package/dist/app/web/routes/api/clips/[clipId]/edits/+server.d.ts.map +1 -0
  131. package/dist/app/web/routes/api/clips/[clipId]/edits/+server.js +61 -0
  132. package/dist/app/web/routes/api/clips/[clipId]/edits/+server.js.map +1 -0
  133. package/dist/app/web/routes/api/clips/[clipId]/file/+server.d.ts +3 -0
  134. package/dist/app/web/routes/api/clips/[clipId]/file/+server.d.ts.map +1 -0
  135. package/dist/app/web/routes/api/clips/[clipId]/file/+server.js +99 -0
  136. package/dist/app/web/routes/api/clips/[clipId]/file/+server.js.map +1 -0
  137. package/dist/app/web/routes/api/clips/[clipId]/render/+server.d.ts +3 -0
  138. package/dist/app/web/routes/api/clips/[clipId]/render/+server.d.ts.map +1 -0
  139. package/dist/app/web/routes/api/clips/[clipId]/render/+server.js +31 -0
  140. package/dist/app/web/routes/api/clips/[clipId]/render/+server.js.map +1 -0
  141. package/dist/app/web/routes/api/clips/[clipId]/subtitles/plan/+server.d.ts +3 -0
  142. package/dist/app/web/routes/api/clips/[clipId]/subtitles/plan/+server.d.ts.map +1 -0
  143. package/dist/app/web/routes/api/clips/[clipId]/subtitles/plan/+server.js +25 -0
  144. package/dist/app/web/routes/api/clips/[clipId]/subtitles/plan/+server.js.map +1 -0
  145. package/dist/app/web/routes/api/config/+server.d.ts.map +1 -1
  146. package/dist/app/web/routes/api/config/+server.js +1 -1
  147. package/dist/app/web/routes/api/config/+server.js.map +1 -1
  148. package/dist/app/web/routes/api/library/analyses/[analysisId]/+server.d.ts.map +1 -1
  149. package/dist/app/web/routes/api/library/analyses/[analysisId]/+server.js +1 -4
  150. package/dist/app/web/routes/api/library/analyses/[analysisId]/+server.js.map +1 -1
  151. package/dist/app/web/routes/api/library/clips/+server.d.ts.map +1 -1
  152. package/dist/app/web/routes/api/library/clips/+server.js +1 -4
  153. package/dist/app/web/routes/api/library/clips/+server.js.map +1 -1
  154. package/dist/app/web/routes/api/publish/drafts/[analysisId]/+server.d.ts.map +1 -1
  155. package/dist/app/web/routes/api/publish/drafts/[analysisId]/+server.js +3 -9
  156. package/dist/app/web/routes/api/publish/drafts/[analysisId]/+server.js.map +1 -1
  157. package/dist/app/web/routes/api/publish/drafts/generate/+server.d.ts.map +1 -1
  158. package/dist/app/web/routes/api/publish/drafts/generate/+server.js +6 -2
  159. package/dist/app/web/routes/api/publish/drafts/generate/+server.js.map +1 -1
  160. package/dist/app/web/routes/api/publish/thumbnails/+server.d.ts.map +1 -1
  161. package/dist/app/web/routes/api/publish/thumbnails/+server.js +5 -1
  162. package/dist/app/web/routes/api/publish/thumbnails/+server.js.map +1 -1
  163. package/dist/app/web/routes/api/youtube/channels/[channelId]/videos/+server.d.ts.map +1 -1
  164. package/dist/app/web/routes/api/youtube/channels/[channelId]/videos/+server.js +1 -5
  165. package/dist/app/web/routes/api/youtube/channels/[channelId]/videos/+server.js.map +1 -1
  166. package/dist/app/web/routes/api/youtube/channels/resolve/+server.d.ts.map +1 -1
  167. package/dist/app/web/routes/api/youtube/channels/resolve/+server.js +1 -4
  168. package/dist/app/web/routes/api/youtube/channels/resolve/+server.js.map +1 -1
  169. package/dist/app/web/routes/api/youtube/uploads/+server.d.ts.map +1 -1
  170. package/dist/app/web/routes/api/youtube/uploads/+server.js +12 -6
  171. package/dist/app/web/routes/api/youtube/uploads/+server.js.map +1 -1
  172. package/dist/app/web/routes/api/youtube/videos/[videoId]/+server.d.ts.map +1 -1
  173. package/dist/app/web/routes/api/youtube/videos/[videoId]/+server.js +1 -4
  174. package/dist/app/web/routes/api/youtube/videos/[videoId]/+server.js.map +1 -1
  175. package/dist/app/web/routes/api/youtube/videos/[videoId]/transcript/+server.d.ts.map +1 -1
  176. package/dist/app/web/routes/api/youtube/videos/[videoId]/transcript/+server.js +1 -4
  177. package/dist/app/web/routes/api/youtube/videos/[videoId]/transcript/+server.js.map +1 -1
  178. package/dist/app/web/types/activity.d.ts +4 -0
  179. package/dist/app/web/types/activity.d.ts.map +1 -1
  180. package/dist/app/web/types/analysis.d.ts +36 -0
  181. package/dist/app/web/types/analysis.d.ts.map +1 -1
  182. package/dist/app/web/types/analysis.js +17 -0
  183. package/dist/app/web/types/analysis.js.map +1 -1
  184. package/dist/app/web/types/componentProps.d.ts +383 -0
  185. package/dist/app/web/types/componentProps.d.ts.map +1 -0
  186. package/dist/app/web/types/componentProps.js +2 -0
  187. package/dist/app/web/types/componentProps.js.map +1 -0
  188. package/dist/app/web/types/publish.d.ts +40 -3
  189. package/dist/app/web/types/publish.d.ts.map +1 -1
  190. package/dist/app/web/types/publish.js +21 -0
  191. package/dist/app/web/types/publish.js.map +1 -1
  192. package/dist/app/web/types/subtitlePlan.d.ts +46 -0
  193. package/dist/app/web/types/subtitlePlan.d.ts.map +1 -0
  194. package/dist/app/web/types/subtitlePlan.js +20 -0
  195. package/dist/app/web/types/subtitlePlan.js.map +1 -0
  196. package/dist/app/web/types/upload.d.ts +23 -0
  197. package/dist/app/web/types/upload.d.ts.map +1 -0
  198. package/dist/app/web/types/upload.js +2 -0
  199. package/dist/app/web/types/upload.js.map +1 -0
  200. package/dist/app/web/types/videoStore.d.ts +13 -0
  201. package/dist/app/web/types/videoStore.d.ts.map +1 -0
  202. package/dist/app/web/types/videoStore.js +2 -0
  203. package/dist/app/web/types/videoStore.js.map +1 -0
  204. package/dist/app/web/types/web.d.ts +38 -0
  205. package/dist/app/web/types/web.d.ts.map +1 -1
  206. package/dist/app/web/types/web.js +1 -0
  207. package/dist/app/web/types/web.js.map +1 -1
  208. package/dist/app/web/types/workflow.d.ts +9 -0
  209. package/dist/app/web/types/workflow.d.ts.map +1 -0
  210. package/dist/app/web/types/workflow.js +2 -0
  211. package/dist/app/web/types/workflow.js.map +1 -0
  212. package/dist/app/web/types/youtube.d.ts +15 -0
  213. package/dist/app/web/types/youtube.d.ts.map +1 -0
  214. package/dist/app/web/types/youtube.js +12 -0
  215. package/dist/app/web/types/youtube.js.map +1 -0
  216. package/dist/app/web/widgets/settings/groupConfig.d.ts +4 -0
  217. package/dist/app/web/widgets/settings/groupConfig.d.ts.map +1 -0
  218. package/dist/app/web/widgets/settings/groupConfig.js +219 -0
  219. package/dist/app/web/widgets/settings/groupConfig.js.map +1 -0
  220. package/dist/hooks.server.js +1 -1
  221. package/dist/hooks.server.js.map +1 -1
  222. package/dist/lib/config/env.d.ts +1 -5
  223. package/dist/lib/config/env.d.ts.map +1 -1
  224. package/dist/lib/config/env.js +1 -1
  225. package/dist/lib/config/env.js.map +1 -1
  226. package/dist/lib/config/index.d.ts +1 -1
  227. package/dist/lib/config/index.d.ts.map +1 -1
  228. package/dist/lib/config/registry.d.ts +2 -23
  229. package/dist/lib/config/registry.d.ts.map +1 -1
  230. package/dist/lib/config/registry.js +1 -1
  231. package/dist/lib/config/registry.js.map +1 -1
  232. package/dist/lib/index.d.ts +3 -4
  233. package/dist/lib/index.d.ts.map +1 -1
  234. package/dist/lib/index.js +1 -2
  235. package/dist/lib/index.js.map +1 -1
  236. package/dist/lib/pipeline/stages/clipExporter.d.ts +2 -7
  237. package/dist/lib/pipeline/stages/clipExporter.d.ts.map +1 -1
  238. package/dist/lib/pipeline/stages/clipExporter.js +4 -4
  239. package/dist/lib/pipeline/stages/clipExporter.js.map +1 -1
  240. package/dist/lib/pipeline/stages/segmentAnalyzer.d.ts +2 -2
  241. package/dist/lib/pipeline/stages/segmentAnalyzer.d.ts.map +1 -1
  242. package/dist/lib/pipeline/stages/segmentAnalyzer.js +6 -2
  243. package/dist/lib/pipeline/stages/segmentAnalyzer.js.map +1 -1
  244. package/dist/lib/pipeline/stages/segmentSelector.d.ts.map +1 -1
  245. package/dist/lib/pipeline/stages/segmentSelector.js +2 -2
  246. package/dist/lib/pipeline/stages/segmentSelector.js.map +1 -1
  247. package/dist/lib/services/analysis/llm/LLMAnalyzer.d.ts +2 -2
  248. package/dist/lib/services/analysis/llm/LLMAnalyzer.d.ts.map +1 -1
  249. package/dist/lib/services/analysis/llm/LLMAnalyzer.js +5 -3
  250. package/dist/lib/services/analysis/llm/LLMAnalyzer.js.map +1 -1
  251. package/dist/lib/services/analysis/llm/index.d.ts +3 -10
  252. package/dist/lib/services/analysis/llm/index.d.ts.map +1 -1
  253. package/dist/lib/services/analysis/llm/index.js +12 -8
  254. package/dist/lib/services/analysis/llm/index.js.map +1 -1
  255. package/dist/lib/services/analysis/refiner/index.d.ts +3 -11
  256. package/dist/lib/services/analysis/refiner/index.d.ts.map +1 -1
  257. package/dist/lib/services/analysis/refiner/index.js +9 -8
  258. package/dist/lib/services/analysis/refiner/index.js.map +1 -1
  259. package/dist/lib/services/analysis/transcript/detector.d.ts +1 -1
  260. package/dist/lib/services/analysis/transcript/detector.d.ts.map +1 -1
  261. package/dist/lib/services/analysis/transcript/detector.js +4 -4
  262. package/dist/lib/services/analysis/transcript/detector.js.map +1 -1
  263. package/dist/lib/services/audio/analyzer/factory.d.ts +1 -6
  264. package/dist/lib/services/audio/analyzer/factory.d.ts.map +1 -1
  265. package/dist/lib/services/audio/analyzer/factory.js +1 -1
  266. package/dist/lib/services/audio/analyzer/factory.js.map +1 -1
  267. package/dist/lib/services/audio/analyzer/gemini.d.ts +1 -5
  268. package/dist/lib/services/audio/analyzer/gemini.d.ts.map +1 -1
  269. package/dist/lib/services/audio/analyzer/gemini.js +2 -13
  270. package/dist/lib/services/audio/analyzer/gemini.js.map +1 -1
  271. package/dist/lib/services/audio/analyzer/index.d.ts +1 -1
  272. package/dist/lib/services/audio/analyzer/index.d.ts.map +1 -1
  273. package/dist/lib/services/audio/index.d.ts +1 -1
  274. package/dist/lib/services/audio/index.d.ts.map +1 -1
  275. package/dist/lib/services/audio/processor/detector.d.ts.map +1 -1
  276. package/dist/lib/services/audio/processor/detector.js +13 -3
  277. package/dist/lib/services/audio/processor/detector.js.map +1 -1
  278. package/dist/lib/services/audio/processor/slicer.d.ts +2 -4
  279. package/dist/lib/services/audio/processor/slicer.d.ts.map +1 -1
  280. package/dist/lib/services/audio/processor/slicer.js.map +1 -1
  281. package/dist/lib/services/audio/source/index.d.ts +1 -1
  282. package/dist/lib/services/audio/source/index.d.ts.map +1 -1
  283. package/dist/lib/services/audio/source/youtube.d.ts.map +1 -1
  284. package/dist/lib/services/audio/source/youtube.js +6 -7
  285. package/dist/lib/services/audio/source/youtube.js.map +1 -1
  286. package/dist/lib/services/audio/transcriber/factory.js +1 -2
  287. package/dist/lib/services/audio/transcriber/factory.js.map +1 -1
  288. package/dist/lib/services/audio/transcriber/whisper.d.ts.map +1 -1
  289. package/dist/lib/services/audio/transcriber/whisper.js +1 -6
  290. package/dist/lib/services/audio/transcriber/whisper.js.map +1 -1
  291. package/dist/lib/services/cache/backends/disabled.d.ts +20 -0
  292. package/dist/lib/services/cache/backends/disabled.d.ts.map +1 -0
  293. package/dist/lib/{utils/cacheBackend.js → services/cache/backends/disabled.js} +1 -1
  294. package/dist/lib/services/cache/backends/disabled.js.map +1 -0
  295. package/dist/lib/{utils/fileCacheBackend.d.ts → services/cache/backends/file.d.ts} +7 -4
  296. package/dist/lib/services/cache/backends/file.d.ts.map +1 -0
  297. package/dist/lib/{utils/fileCacheBackend.js → services/cache/backends/file.js} +18 -9
  298. package/dist/lib/services/cache/backends/file.js.map +1 -0
  299. package/dist/lib/{utils/mongoCacheBackend.d.ts → services/cache/backends/mongo.d.ts} +3 -3
  300. package/dist/lib/services/cache/backends/mongo.d.ts.map +1 -0
  301. package/dist/lib/{utils/mongoCacheBackend.js → services/cache/backends/mongo.js} +8 -8
  302. package/dist/lib/services/cache/backends/mongo.js.map +1 -0
  303. package/dist/lib/{utils → services/cache}/cache.d.ts +6 -5
  304. package/dist/lib/services/cache/cache.d.ts.map +1 -0
  305. package/dist/lib/{utils → services/cache}/cache.js +25 -4
  306. package/dist/lib/services/cache/cache.js.map +1 -0
  307. package/dist/lib/{utils/cacheFactory.d.ts → services/cache/factory.d.ts} +3 -3
  308. package/dist/lib/services/cache/factory.d.ts.map +1 -0
  309. package/dist/lib/{utils/cacheFactory.js → services/cache/factory.js} +6 -6
  310. package/dist/lib/services/cache/factory.js.map +1 -0
  311. package/dist/lib/services/cache/index.d.ts +4 -0
  312. package/dist/lib/services/cache/index.d.ts.map +1 -0
  313. package/dist/lib/services/cache/index.js +3 -0
  314. package/dist/lib/services/cache/index.js.map +1 -0
  315. package/dist/lib/services/cache/manifest.d.ts +6 -0
  316. package/dist/lib/services/cache/manifest.d.ts.map +1 -0
  317. package/dist/lib/services/cache/manifest.js +101 -0
  318. package/dist/lib/services/cache/manifest.js.map +1 -0
  319. package/dist/lib/services/video/clipper/editor/drawtextBuilder.d.ts +6 -0
  320. package/dist/lib/services/video/clipper/editor/drawtextBuilder.d.ts.map +1 -0
  321. package/dist/lib/services/video/clipper/editor/drawtextBuilder.js +42 -0
  322. package/dist/lib/services/video/clipper/editor/drawtextBuilder.js.map +1 -0
  323. package/dist/lib/services/video/clipper/editor/filterGraphBuilder.d.ts +7 -0
  324. package/dist/lib/services/video/clipper/editor/filterGraphBuilder.d.ts.map +1 -0
  325. package/dist/lib/services/video/clipper/editor/filterGraphBuilder.js +58 -0
  326. package/dist/lib/services/video/clipper/editor/filterGraphBuilder.js.map +1 -0
  327. package/dist/lib/services/video/clipper/editor/renderer.d.ts +4 -0
  328. package/dist/lib/services/video/clipper/editor/renderer.d.ts.map +1 -0
  329. package/dist/lib/services/video/clipper/editor/renderer.js +83 -0
  330. package/dist/lib/services/video/clipper/editor/renderer.js.map +1 -0
  331. package/dist/lib/services/video/clipper/editor/subtitleBuilder.d.ts +6 -0
  332. package/dist/lib/services/video/clipper/editor/subtitleBuilder.d.ts.map +1 -0
  333. package/dist/lib/services/video/clipper/editor/subtitleBuilder.js +155 -0
  334. package/dist/lib/services/video/clipper/editor/subtitleBuilder.js.map +1 -0
  335. package/dist/lib/services/video/clipper/editor/textEscape.d.ts +3 -0
  336. package/dist/lib/services/video/clipper/editor/textEscape.d.ts.map +1 -0
  337. package/dist/lib/services/video/clipper/editor/textEscape.js +11 -0
  338. package/dist/lib/services/video/clipper/editor/textEscape.js.map +1 -0
  339. package/dist/lib/services/video/clipper/index.d.ts +11 -7
  340. package/dist/lib/services/video/clipper/index.d.ts.map +1 -1
  341. package/dist/lib/services/video/clipper/index.js +38 -26
  342. package/dist/lib/services/video/clipper/index.js.map +1 -1
  343. package/dist/lib/services/video/index.d.ts +2 -2
  344. package/dist/lib/services/video/index.d.ts.map +1 -1
  345. package/dist/lib/services/video/source/index.d.ts +2 -2
  346. package/dist/lib/services/video/source/index.d.ts.map +1 -1
  347. package/dist/lib/services/video/source/youtube/catalog.d.ts +1 -17
  348. package/dist/lib/services/video/source/youtube/catalog.d.ts.map +1 -1
  349. package/dist/lib/services/video/source/youtube/catalog.js.map +1 -1
  350. package/dist/lib/services/video/source/youtube/downloader.d.ts.map +1 -1
  351. package/dist/lib/services/video/source/youtube/downloader.js +17 -19
  352. package/dist/lib/services/video/source/youtube/downloader.js.map +1 -1
  353. package/dist/lib/services/video/source/youtube/metadata.d.ts.map +1 -1
  354. package/dist/lib/services/video/source/youtube/metadata.js +3 -3
  355. package/dist/lib/services/video/source/youtube/metadata.js.map +1 -1
  356. package/dist/lib/services/video/source/youtube/subtitles.d.ts +1 -30
  357. package/dist/lib/services/video/source/youtube/subtitles.d.ts.map +1 -1
  358. package/dist/lib/services/video/source/youtube/subtitles.js +4 -4
  359. package/dist/lib/services/video/source/youtube/subtitles.js.map +1 -1
  360. package/dist/lib/types/analyzer.d.ts +23 -0
  361. package/dist/lib/types/analyzer.d.ts.map +1 -1
  362. package/dist/lib/types/analyzer.js +5 -1
  363. package/dist/lib/types/analyzer.js.map +1 -1
  364. package/dist/lib/types/audio.d.ts +28 -0
  365. package/dist/lib/types/audio.d.ts.map +1 -1
  366. package/dist/lib/types/audio.js +10 -0
  367. package/dist/lib/types/audio.js.map +1 -1
  368. package/dist/lib/types/cache.d.ts +34 -0
  369. package/dist/lib/types/cache.d.ts.map +1 -1
  370. package/dist/lib/types/cache.js.map +1 -1
  371. package/dist/lib/types/clipEdit.d.ts +232 -0
  372. package/dist/lib/types/clipEdit.d.ts.map +1 -0
  373. package/dist/lib/types/clipEdit.js +68 -0
  374. package/dist/lib/types/clipEdit.js.map +1 -0
  375. package/dist/lib/types/config.d.ts +39 -3
  376. package/dist/lib/types/config.d.ts.map +1 -1
  377. package/dist/lib/types/config.js +32 -1
  378. package/dist/lib/types/config.js.map +1 -1
  379. package/dist/lib/types/index.d.ts +11 -8
  380. package/dist/lib/types/index.d.ts.map +1 -1
  381. package/dist/lib/types/index.js +3 -1
  382. package/dist/lib/types/index.js.map +1 -1
  383. package/dist/lib/types/pipeline.d.ts +22 -10
  384. package/dist/lib/types/pipeline.d.ts.map +1 -1
  385. package/dist/lib/types/video.d.ts +17 -0
  386. package/dist/lib/types/video.d.ts.map +1 -1
  387. package/dist/lib/types/video.js.map +1 -1
  388. package/dist/lib/types/youtube.d.ts +51 -0
  389. package/dist/lib/types/youtube.d.ts.map +1 -1
  390. package/dist/lib/utils/logger.d.ts +20 -6
  391. package/dist/lib/utils/logger.d.ts.map +1 -1
  392. package/dist/lib/utils/logger.js +59 -30
  393. package/dist/lib/utils/logger.js.map +1 -1
  394. package/dist/lib/utils/modelFactory.d.ts +1 -6
  395. package/dist/lib/utils/modelFactory.d.ts.map +1 -1
  396. package/dist/lib/utils/modelFactory.js.map +1 -1
  397. package/dist/lib/utils/pythonBin.js +1 -1
  398. package/dist/lib/utils/pythonBin.js.map +1 -1
  399. package/dist/lib/utils/retryAsync.d.ts.map +1 -1
  400. package/dist/lib/utils/retryAsync.js +1 -2
  401. package/dist/lib/utils/retryAsync.js.map +1 -1
  402. package/dist/lib/utils/textScale.d.ts +14 -0
  403. package/dist/lib/utils/textScale.d.ts.map +1 -0
  404. package/dist/lib/utils/textScale.js +14 -0
  405. package/dist/lib/utils/textScale.js.map +1 -0
  406. package/package.json +3 -1
  407. package/dist/app/web/lib/configStore.d.ts.map +0 -1
  408. package/dist/app/web/lib/configStore.js.map +0 -1
  409. package/dist/app/web/lib/toastStore.d.ts.map +0 -1
  410. package/dist/lib/services/audio/source/types.d.ts +0 -5
  411. package/dist/lib/services/audio/source/types.d.ts.map +0 -1
  412. package/dist/lib/services/audio/source/types.js +0 -2
  413. package/dist/lib/services/audio/source/types.js.map +0 -1
  414. package/dist/lib/services/video/source/types.d.ts +0 -12
  415. package/dist/lib/services/video/source/types.d.ts.map +0 -1
  416. package/dist/lib/services/video/source/types.js +0 -2
  417. package/dist/lib/services/video/source/types.js.map +0 -1
  418. package/dist/lib/utils/cache.d.ts.map +0 -1
  419. package/dist/lib/utils/cache.js.map +0 -1
  420. package/dist/lib/utils/cacheBackend.d.ts +0 -40
  421. package/dist/lib/utils/cacheBackend.d.ts.map +0 -1
  422. package/dist/lib/utils/cacheBackend.js.map +0 -1
  423. package/dist/lib/utils/cacheFactory.d.ts.map +0 -1
  424. package/dist/lib/utils/cacheFactory.js.map +0 -1
  425. package/dist/lib/utils/fileCacheBackend.d.ts.map +0 -1
  426. package/dist/lib/utils/fileCacheBackend.js.map +0 -1
  427. package/dist/lib/utils/mongoCacheBackend.d.ts.map +0 -1
  428. package/dist/lib/utils/mongoCacheBackend.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import type { VideoMetadata } from './video.js';
2
- import type { TranscriptLine, MicroBlock, LLMChunk } from './transcript.js';
3
- import type { ChunkEvaluation } from './segment.js';
4
- import type { StreamCallbacks } from './analyzer.js';
2
+ import type { LLMAnalyzerResult, StreamCallbacks } from './analyzer.js';
5
3
  import type { LanguageModel } from 'ai';
6
- import type { TranscriptChainConfig } from './downloader.js';
4
+ import type { TranscriptChainConfig, DownloaderConfig, AudioDownloadConfig } from './downloader.js';
5
+ import type { ClipperConfig } from './video.js';
6
+ import type { AnalyzerChainConfig, SlicerConfig } from './audio.js';
7
7
  /** A half-open time window [start, end) in seconds. Returned by `buildWindows`. */
8
8
  export interface ChunkWindow {
9
9
  /** Start of the window in seconds (inclusive). */
@@ -39,13 +39,10 @@ export interface SegmentAnalyzerOpts {
39
39
  callbacks?: StreamCallbacks;
40
40
  /** Optional video title, threaded to the refiner prompt for boundary context. */
41
41
  videoTitle?: string;
42
+ /** Optional AbortSignal threaded down to the underlying LLM streamText calls. */
43
+ signal?: AbortSignal;
42
44
  }
43
- export interface SegmentAnalyzerResult {
44
- lines: TranscriptLine[];
45
- microBlocks: MicroBlock[];
46
- chunks: LLMChunk[];
47
- chunkEvals: ChunkEvaluation[];
48
- }
45
+ export type SegmentAnalyzerResult = LLMAnalyzerResult;
49
46
  export interface SegmentSelectorOpts {
50
47
  threshold: number;
51
48
  topN: number;
@@ -68,4 +65,19 @@ export interface ClipExporterOpts {
68
65
  videoPath?: string;
69
66
  clipConcurrency: number;
70
67
  }
68
+ export interface ClipExporterConfig {
69
+ downloader: DownloaderConfig;
70
+ clipper: ClipperConfig;
71
+ downloadSectionsMode: 'all' | number | undefined;
72
+ }
73
+ export interface AudioProcessorConfig {
74
+ audioEnabled: boolean;
75
+ audioProvider: string;
76
+ chunkLengthSec: number;
77
+ chunkOverlapSec: number;
78
+ outputDir: string;
79
+ audioDownloadConfig: AudioDownloadConfig;
80
+ slicerConfig: SlicerConfig;
81
+ analyzerChainConfig: AnalyzerChainConfig;
82
+ }
71
83
  //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/lib/types/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,gBAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/lib/types/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpE,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,gBAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,oBAAoB,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;IAC3B,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import type { TranscriptLine } from './transcript.js';
2
3
  export declare const VideoMetadataSchema: z.ZodObject<{
3
4
  videoId: z.ZodString;
4
5
  title: z.ZodString;
@@ -51,4 +52,20 @@ export interface DownloadResultSegments {
51
52
  paths: string[];
52
53
  }
53
54
  export type DownloadResult = DownloadResultAll | DownloadResultSegments;
55
+ export interface VideoSource {
56
+ readonly name: string;
57
+ resolve(input: string): Promise<{
58
+ videoId: string;
59
+ metadata: VideoMetadata;
60
+ }>;
61
+ downloadVideo(videoId: string, mode: 'all' | number, segments?: unknown[], customPath?: string): Promise<DownloadResult>;
62
+ getSubtitles(videoId: string): Promise<TranscriptLine[]>;
63
+ }
64
+ export interface ClipperConfig {
65
+ ffmpegPath?: string;
66
+ ffprobePath?: string;
67
+ timestampOffset: number;
68
+ ffmpegPreset: string;
69
+ outputDir: string;
70
+ }
54
71
  //# sourceMappingURL=video.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../../src/lib/types/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,UAAU,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,sBAAsB,CAAC"}
1
+ {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../../src/lib/types/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,UAAU,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,sBAAsB,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAE9E,aAAa,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,KAAK,GAAG,MAAM,EACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../../../src/lib/types/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU;CACjC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU;IAChC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../../src/lib/types/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAI1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU;CACjC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU;IAChC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACvC,CAAC,CAAC"}
@@ -86,4 +86,55 @@ export declare const VideoPageSchema: z.ZodObject<{
86
86
  prevPageToken: z.ZodOptional<z.ZodString>;
87
87
  }, z.core.$strip>;
88
88
  export type VideoPage = z.infer<typeof VideoPageSchema>;
89
+ export interface YouTubeCatalogService {
90
+ resolveChannel(input: string): Promise<ChannelSummary>;
91
+ listChannelVideos(channelId: string, pageToken?: string): Promise<VideoPage>;
92
+ getVideoDetails(videoId: string): Promise<VideoDetails>;
93
+ }
94
+ export type ChannelLookup = {
95
+ kind: 'id';
96
+ value: string;
97
+ } | {
98
+ kind: 'handle';
99
+ value: string;
100
+ } | {
101
+ kind: 'username';
102
+ value: string;
103
+ };
104
+ export interface YtDlpJson {
105
+ title: string;
106
+ duration: number;
107
+ }
108
+ export interface OEmbedResponse {
109
+ title: string;
110
+ }
111
+ export interface YouTubeCaptionTrack {
112
+ baseUrl: string;
113
+ kind?: string;
114
+ languageCode: string;
115
+ }
116
+ export interface YouTubePlayerResponse {
117
+ playabilityStatus?: {
118
+ status?: string;
119
+ reason?: string;
120
+ errorScreen?: {
121
+ playerErrorMessageRenderer?: {
122
+ reason?: {
123
+ simpleText?: string;
124
+ };
125
+ subreason?: {
126
+ simpleText?: string;
127
+ runs?: Array<{
128
+ text?: string;
129
+ }>;
130
+ };
131
+ };
132
+ };
133
+ };
134
+ captions?: {
135
+ playerCaptionsTracklistRenderer?: {
136
+ captionTracks?: YouTubeCaptionTrack[];
137
+ };
138
+ };
139
+ }
89
140
  //# sourceMappingURL=youtube.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"youtube.d.ts","sourceRoot":"","sources":["../../../src/lib/types/youtube.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;iBAW/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;iBAa7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;iBAG7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;iBAK1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"youtube.d.ts","sourceRoot":"","sources":["../../../src/lib/types/youtube.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;iBAW/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;iBAa7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;iBAG7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;iBAK1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7E,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACzD;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE;YACZ,0BAA0B,CAAC,EAAE;gBAC3B,MAAM,CAAC,EAAE;oBACP,UAAU,CAAC,EAAE,MAAM,CAAC;iBACrB,CAAC;gBACF,SAAS,CAAC,EAAE;oBACV,UAAU,CAAC,EAAE,MAAM,CAAC;oBACpB,IAAI,CAAC,EAAE,KAAK,CAAC;wBACX,IAAI,CAAC,EAAE,MAAM,CAAC;qBACf,CAAC,CAAC;iBACJ,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,+BAA+B,CAAC,EAAE;YAChC,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;SACvC,CAAC;KACH,CAAC;CACH"}
@@ -1,10 +1,24 @@
1
1
  export declare function generateRequestId(): string;
2
2
  export declare const log: {
3
- info: (msg: string) => void;
4
- warn: (msg: string) => void;
5
- error: (msg: string) => void;
6
- progress: (data: Buffer | string) => void;
7
- fnCalled: (name: string, meta?: Record<string, unknown>, requestId?: string) => ((result?: Record<string, unknown>) => void);
8
- request: (method: string, path: string, requestId: string, meta?: Record<string, unknown>) => ((status: number) => void);
3
+ info: (fn: string, msg: string, requestId?: string, meta?: Record<string, unknown>) => void;
4
+ warn: (fn: string, msg: string, requestId?: string, meta?: Record<string, unknown>) => void;
5
+ error: (fn: string, msg: string, requestId?: string, meta?: Record<string, unknown>) => void;
6
+ /**
7
+ * Logs a yt-dlp / ffmpeg progress stream chunk.
8
+ * Splits on \r and \n so yt-dlp in-place progress lines become separate log lines.
9
+ */
10
+ progress: (fn: string, data: Buffer | string, requestId?: string) => void;
11
+ /**
12
+ * Logs function entry (fn→) and returns a done-callback that logs exit (fn←)
13
+ * with elapsed time merged into the result object.
14
+ *
15
+ * Signature change from old logger: requestId is now the 2nd argument (not 3rd).
16
+ */
17
+ fnCalled: (fn: string, requestId?: string, meta?: Record<string, unknown>) => ((result?: Record<string, unknown>) => void);
18
+ /**
19
+ * Logs HTTP request entry (req→) and returns a done-callback that logs
20
+ * exit (req←) with status and elapsed time.
21
+ */
22
+ request: (method: string, path: string, requestId?: string, meta?: Record<string, unknown>) => ((status: number) => void);
9
23
  };
10
24
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":"AAcA,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,eAAO,MAAM,GAAG;gBACF,MAAM,KAAG,IAAI;gBAGb,MAAM,KAAG,IAAI;iBAGZ,MAAM,KAAG,IAAI;qBAGT,MAAM,GAAG,MAAM,KAAG,IAAI;qBAY/B,MAAM,SACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAClB,MAAM,KACjB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;sBAYrC,MAAM,QACR,MAAM,aACD,MAAM,SACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAQ9B,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":"AA0CA,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,eAAO,MAAM,GAAG;eACH,MAAM,OAAO,MAAM,cAAc,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;eAI9E,MAAM,OAAO,MAAM,cAAc,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;gBAI7E,MAAM,OAAO,MAAM,cAAc,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;IAI1F;;;OAGG;mBACY,MAAM,QAAQ,MAAM,GAAG,MAAM,cAAc,MAAM,KAAG,IAAI;IAQvE;;;;;OAKG;mBAEG,MAAM,cACE,MAAM,SACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAU/C;;;OAGG;sBAEO,MAAM,QACR,MAAM,cACA,MAAM,SACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAS9B,CAAC"}
@@ -1,53 +1,82 @@
1
1
  import { nanoid } from 'nanoid';
2
- const LEVELS = {
3
- info: '[info]',
4
- warn: '[warn]',
5
- error: '[error]',
2
+ // Read directly from process.env — avoids circular import with config module.
3
+ const COLOR_ENABLED = process.env['LOG_COLOR'] !== 'false';
4
+ const C = {
5
+ reset: COLOR_ENABLED ? '\x1b[0m' : '',
6
+ dim: COLOR_ENABLED ? '\x1b[2m' : '',
7
+ cyan: COLOR_ENABLED ? '\x1b[36m' : '',
8
+ blue: COLOR_ENABLED ? '\x1b[34m' : '',
9
+ green: COLOR_ENABLED ? '\x1b[32m' : '',
10
+ yellow: COLOR_ENABLED ? '\x1b[33m' : '',
11
+ red: COLOR_ENABLED ? '\x1b[31m' : '',
12
+ magenta: COLOR_ENABLED ? '\x1b[35m' : '',
6
13
  };
7
- function formatMeta(meta) {
8
- const entries = Object.entries(meta);
9
- if (entries.length === 0)
10
- return '';
11
- return ' ' + entries.map(([k, v]) => `${k}=${String(v)}`).join(' ');
14
+ function getTimestamp() {
15
+ const now = new Date();
16
+ const h = String(now.getHours()).padStart(2, '0');
17
+ const m = String(now.getMinutes()).padStart(2, '0');
18
+ const s = String(now.getSeconds()).padStart(2, '0');
19
+ const ms = String(now.getMilliseconds()).padStart(3, '0');
20
+ return `[${h}:${m}:${s}.${ms}]`;
21
+ }
22
+ function buildLine(fn, levelColor, levelLabel, msg, requestId, meta) {
23
+ const ts = `${C.dim}${getTimestamp()}${C.reset}`;
24
+ const rid = `${C.cyan}${requestId ?? '-'}${C.reset}`;
25
+ const fnPart = `${C.blue}${fn}${C.reset}`;
26
+ const label = `${levelColor}${levelLabel}${C.reset}`;
27
+ const metaPart = meta && Object.keys(meta).length > 0 ? ` ${C.dim}${JSON.stringify(meta)}${C.reset}` : '';
28
+ return `${ts} | ${rid} | ${fnPart} | ${label} ${msg}${metaPart}`;
12
29
  }
13
30
  export function generateRequestId() {
14
31
  return nanoid(24);
15
32
  }
16
33
  export const log = {
17
- info: (msg) => {
18
- console.log(`${LEVELS.info} ${msg}`);
34
+ info: (fn, msg, requestId, meta) => {
35
+ console.log(buildLine(fn, C.green, 'info', msg, requestId, meta));
19
36
  },
20
- warn: (msg) => {
21
- console.warn(`${LEVELS.warn} ${msg}`);
37
+ warn: (fn, msg, requestId, meta) => {
38
+ console.warn(buildLine(fn, C.yellow, 'warn', msg, requestId, meta));
22
39
  },
23
- error: (msg) => {
24
- console.error(`${LEVELS.error} ${msg}`);
40
+ error: (fn, msg, requestId, meta) => {
41
+ console.error(buildLine(fn, C.red, 'error', msg, requestId, meta));
25
42
  },
26
- progress: (data) => {
43
+ /**
44
+ * Logs a yt-dlp / ffmpeg progress stream chunk.
45
+ * Splits on \r and \n so yt-dlp in-place progress lines become separate log lines.
46
+ */
47
+ progress: (fn, data, requestId) => {
27
48
  const text = String(data);
28
- const lines = text.split('\n').filter((line) => line.trim());
29
- for (const line of lines) {
30
- const progressMatch = line.match(/\[download\]\s+(\d+\.?\d*%)/);
31
- if (progressMatch) {
32
- process.stdout.write(`\r${progressMatch[0]}`);
33
- }
49
+ const lines = text.split(/[\r\n]+/).filter((l) => l.trim());
50
+ for (const l of lines) {
51
+ console.log(buildLine(fn, C.dim, 'prog', l, requestId));
34
52
  }
35
53
  },
36
- fnCalled: (name, meta, requestId) => {
54
+ /**
55
+ * Logs function entry (fn→) and returns a done-callback that logs exit (fn←)
56
+ * with elapsed time merged into the result object.
57
+ *
58
+ * Signature change from old logger: requestId is now the 2nd argument (not 3rd).
59
+ */
60
+ fnCalled: (fn, requestId, meta) => {
37
61
  const start = Date.now();
38
- const prefix = requestId ? `${requestId} ` : '';
39
- console.log(`${prefix}[fn →] ${name}${meta ? ` |${formatMeta(meta)}` : ''}`);
62
+ console.log(buildLine(fn, C.magenta, 'fn\u2192', '', requestId, meta));
40
63
  return (result) => {
41
- const ms = Date.now() - start;
42
- console.log(`${prefix}[fn ←] ${name} | ${result && Object.keys(result).length ? `${formatMeta(result).trim()} ` : ''}(${ms}ms)`);
64
+ const elapsedMs = Date.now() - start;
65
+ const resultWithElapsed = { ...(result ?? {}), elapsedMs };
66
+ console.log(buildLine(fn, C.magenta, 'fn\u2190', '', requestId, resultWithElapsed));
43
67
  };
44
68
  },
69
+ /**
70
+ * Logs HTTP request entry (req→) and returns a done-callback that logs
71
+ * exit (req←) with status and elapsed time.
72
+ */
45
73
  request: (method, path, requestId, meta) => {
46
74
  const start = Date.now();
47
- console.log(`${requestId} [api] [call] | ${method} ${path}${meta ? formatMeta(meta) : ''}`);
75
+ const fn = `${method} ${path}`;
76
+ console.log(buildLine(fn, C.magenta, 'req\u2192', '', requestId, meta));
48
77
  return (status) => {
49
- const ms = Date.now() - start;
50
- console.log(`${requestId} [api] [res] | ${method} ${path} ${status} (${ms}ms)`);
78
+ const elapsedMs = Date.now() - start;
79
+ console.log(buildLine(fn, C.magenta, 'req\u2190', '', requestId, { status, elapsedMs }));
51
80
  };
52
81
  },
53
82
  };
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,4 @@
1
1
  import type { LanguageModel } from 'ai';
2
- export interface ModelFactoryApiKeys {
3
- ZAI_API_KEY?: string;
4
- OPENROUTER_API_KEY?: string;
5
- CUSTOM_OPENAI_BASE_URL?: string;
6
- CUSTOM_OPENAI_API_KEY?: string;
7
- }
2
+ import type { ModelFactoryApiKeys } from '../types/config.js';
8
3
  export declare function getModel(provider: string, model: string, apiKeys: ModelFactoryApiKeys): LanguageModel;
9
4
  //# sourceMappingURL=modelFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modelFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/modelFactory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxC,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,GAC3B,aAAa,CA6Cf"}
1
+ {"version":3,"file":"modelFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/modelFactory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,GAC3B,aAAa,CA6Cf"}
@@ -1 +1 @@
1
- {"version":3,"file":"modelFactory.js","sourceRoot":"","sources":["../../../src/lib/utils/modelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AASnE,MAAM,UAAU,QAAQ,CACtB,QAAgB,EAChB,KAAa,EACb,OAA4B;IAE5B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,WAAW;YACd,OAAO,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAExC,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAElC,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEtC,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEnC,KAAK,KAAK;YACR,OAAO,sBAAsB,CAAC;gBAC5B,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,qCAAqC;gBAC9C,MAAM,EAAE,OAAO,CAAC,WAAY;gBAC5B,yBAAyB,EAAE,IAAI;aAChC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;gBAClB,OAAO,EAAE,8BAA8B;gBACvC,MAAM,EAAE,OAAO,CAAC,kBAAkB;aACnC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,KAAK,QAAQ;YACX,OAAO,sBAAsB,CAAC;gBAC5B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,OAAO,CAAC,sBAAuB;gBACxC,MAAM,EAAE,OAAO,CAAC,qBAAqB;gBACrC,yBAAyB,EAAE,IAAI;aAChC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"modelFactory.js","sourceRoot":"","sources":["../../../src/lib/utils/modelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,MAAM,UAAU,QAAQ,CACtB,QAAgB,EAChB,KAAa,EACb,OAA4B;IAE5B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,WAAW;YACd,OAAO,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAExC,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAElC,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEtC,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEnC,KAAK,KAAK;YACR,OAAO,sBAAsB,CAAC;gBAC5B,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,qCAAqC;gBAC9C,MAAM,EAAE,OAAO,CAAC,WAAY;gBAC5B,yBAAyB,EAAE,IAAI;aAChC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;gBAClB,OAAO,EAAE,8BAA8B;gBACvC,MAAM,EAAE,OAAO,CAAC,kBAAkB;aACnC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,KAAK,QAAQ;YACX,OAAO,sBAAsB,CAAC;gBAC5B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,OAAO,CAAC,sBAAuB;gBACxC,MAAM,EAAE,OAAO,CAAC,qBAAqB;gBACrC,yBAAyB,EAAE,IAAI;aAChC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
@@ -16,7 +16,7 @@ export async function getPythonBin() {
16
16
  return bin;
17
17
  }
18
18
  catch {
19
- log.warn(`${bin} not found, trying next binary...`);
19
+ log.warn('getPythonBin', `${bin} not found, trying next binary...`);
20
20
  }
21
21
  }
22
22
  throw new Error('No Python interpreter found (tried python3, python). Install Python 3 to use YAMNet or Whisper.');
@@ -1 +1 @@
1
- {"version":3,"file":"pythonBin.js","sourceRoot":"","sources":["../../../src/lib/utils/pythonBin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC;;;;GAIG;AACH,IAAI,UAAU,GAAkB,IAAI,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAChC,UAAU,GAAG,GAAG,CAAC;YACjB,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,mCAAmC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pythonBin.js","sourceRoot":"","sources":["../../../src/lib/utils/pythonBin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC;;;;GAIG;AACH,IAAI,UAAU,GAAkB,IAAI,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAChC,UAAU,GAAG,GAAG,CAAC;YACjB,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,GAAG,mCAAmC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retryAsync.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/retryAsync.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC,CAqBZ"}
1
+ {"version":3,"file":"retryAsync.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/retryAsync.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC,CAuBZ"}
@@ -17,7 +17,6 @@ import { log } from '../utils/logger.js';
17
17
  * @param label - Optional label included in warn logs (e.g. "yt-dlp:videoId")
18
18
  */
19
19
  export async function retryAsync(fn, retries, baseDelayMs, label) {
20
- const tag = label ? `[${label}] ` : '';
21
20
  let lastError;
22
21
  for (let attempt = 0; attempt <= retries; attempt++) {
23
22
  try {
@@ -28,7 +27,7 @@ export async function retryAsync(fn, retries, baseDelayMs, label) {
28
27
  if (attempt < retries) {
29
28
  const delayMs = baseDelayMs * Math.pow(2, attempt);
30
29
  const message = err instanceof Error ? err.message : String(err);
31
- log.warn(`${tag}attempt ${attempt + 1}/${retries + 1} failed: ${message} — retrying in ${delayMs / 1000}s`);
30
+ log.warn('retryAsync', `attempt ${attempt + 1}/${retries + 1} failed: ${message} — retrying in ${delayMs / 1000}s`, undefined, label ? { label } : undefined);
32
31
  await new Promise((resolve) => setTimeout(resolve, delayMs));
33
32
  }
34
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retryAsync.js","sourceRoot":"","sources":["../../../src/lib/utils/retryAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAoB,EACpB,OAAe,EACf,WAAmB,EACnB,KAAc;IAEd,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAC;YAChB,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,GAAG,CAAC,IAAI,CACN,GAAG,GAAG,WAAW,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,YAAY,OAAO,kBAAkB,OAAO,GAAG,IAAI,GAAG,CAClG,CAAC;gBACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"retryAsync.js","sourceRoot":"","sources":["../../../src/lib/utils/retryAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAoB,EACpB,OAAe,EACf,WAAmB,EACnB,KAAc;IAEd,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAC;YAChB,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,GAAG,CAAC,IAAI,CACN,YAAY,EACZ,WAAW,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,YAAY,OAAO,kBAAkB,OAAO,GAAG,IAAI,GAAG,EAC3F,SAAS,EACT,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAC9B,CAAC;gBACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Converts a design-time font size (used in the canvas as `{designSize * 0.045}cqw`)
3
+ * into an absolute pixel size for the FFmpeg output at the given output dimensions.
4
+ *
5
+ * Canvas formula: `font-size: {designSize * 0.045}cqw`
6
+ * where `1cqw = 1% of container width`
7
+ * so rendered px = designSize * 0.045 * containerWidth / 100
8
+ *
9
+ * At render time, containerWidth === outputDims.width.
10
+ */
11
+ export declare function resolveRenderedFontSize(designSize: number, outputDims: {
12
+ width: number;
13
+ }): number;
14
+ //# sourceMappingURL=textScale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textScale.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/textScale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEjG"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Converts a design-time font size (used in the canvas as `{designSize * 0.045}cqw`)
3
+ * into an absolute pixel size for the FFmpeg output at the given output dimensions.
4
+ *
5
+ * Canvas formula: `font-size: {designSize * 0.045}cqw`
6
+ * where `1cqw = 1% of container width`
7
+ * so rendered px = designSize * 0.045 * containerWidth / 100
8
+ *
9
+ * At render time, containerWidth === outputDims.width.
10
+ */
11
+ export function resolveRenderedFontSize(designSize, outputDims) {
12
+ return Math.round((designSize * 0.045 * outputDims.width) / 100);
13
+ }
14
+ //# sourceMappingURL=textScale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textScale.js","sourceRoot":"","sources":["../../../src/lib/utils/textScale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB,EAAE,UAA6B;IACvF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AACnE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thunderkiller/video-clipper",
3
- "version": "1.8.0",
3
+ "version": "1.10.0",
4
4
  "description": "CLI that analyzes YouTube transcripts with an LLM to find interesting moments and cut clips",
5
5
  "license": "ISC",
6
6
  "author": "Amreet Kumar Khuntia",
@@ -66,6 +66,7 @@
66
66
  "web:check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.web.json",
67
67
  "test": "vitest run --passWithNoTests",
68
68
  "test:watch": "vitest",
69
+ "test:e2e": "playwright test",
69
70
  "type-check": "tsc --project tsconfig.test.json",
70
71
  "lint": "tsc --project tsconfig.test.json",
71
72
  "format": "prettier --write \"src/**/*.{ts,svelte}\" \"tests/**/*.ts\"",
@@ -110,6 +111,7 @@
110
111
  "devDependencies": {
111
112
  "@commitlint/cli": "^20.5.0",
112
113
  "@commitlint/config-conventional": "^20.5.0",
114
+ "@playwright/test": "^1.60.0",
113
115
  "@semantic-release/changelog": "^6.0.3",
114
116
  "@semantic-release/git": "^10.0.1",
115
117
  "@semantic-release/github": "^12.0.6",
@@ -1 +0,0 @@
1
- {"version":3,"file":"configStore.d.ts","sourceRoot":"","sources":["../../../../src/app/web/lib/configStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,eAAO,MAAM,YAAY,0DAAwC,CAAC;AAClE,eAAO,MAAM,cAAc,gEAAgD,CAAC;AAC5E,eAAO,MAAM,YAAY,0CAAkB,CAAC;AAmE5C,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAI7D;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"configStore.js","sourceRoot":"","sources":["../../../../src/app/web/lib/configStore.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toastStore.d.ts","sourceRoot":"","sources":["../../../../src/app/web/lib/toastStore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,0CAAwB,CAAC;AAI5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,IAAI,CAOrF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE7C"}
@@ -1,5 +0,0 @@
1
- export interface AudioSource {
2
- readonly name: string;
3
- fetchAudio(videoId: string, outputDir: string): Promise<string>;
4
- }
5
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/audio/source/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjE"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/lib/services/audio/source/types.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- import type { VideoMetadata, DownloadResult } from '../../../types/video.js';
2
- import type { TranscriptLine } from '../../../types/transcript.js';
3
- export interface VideoSource {
4
- readonly name: string;
5
- resolve(input: string): Promise<{
6
- videoId: string;
7
- metadata: VideoMetadata;
8
- }>;
9
- downloadVideo(videoId: string, mode: 'all' | number, segments?: unknown[], customPath?: string): Promise<DownloadResult>;
10
- getSubtitles(videoId: string): Promise<TranscriptLine[]>;
11
- }
12
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/video/source/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAE9E,aAAa,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,KAAK,GAAG,MAAM,EACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAC1D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/lib/services/video/source/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,qBAAa,KAAM,YAAW,YAAY;IAC5B,QAAQ,CAAC,OAAO,EAAE,YAAY;gBAArB,OAAO,EAAE,YAAY;IAIpC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC;IAIjE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE,SAAS,CACb,KAAK,EAAE,QAAQ,EACf,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAC9B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI5B,UAAU,CACd,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,eAAe,EAC3B,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC;IAMV,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAI9B,sBAAsB,CAC1B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAMV,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;IAIzB,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC;IAMV,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;IAIzB,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC;IAaV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/lib/utils/cache.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,KAAK;IACK;IAArB,YAAqB,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAE9C,8EAA8E;IAE9E,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,KAAuB;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,8EAA8E;IAE9E,KAAK,CAAC,SAAS,CACb,KAAe,EACf,gBAA+B;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CACd,KAAe,EACf,UAA2B,EAC3B,gBAA+B;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACtE,CAAC;IAED,8EAA8E;IAE9E,KAAK,CAAC,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,MAAc;QAEd,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,KAAa,EACb,GAAW,EACX,MAAc,EACd,OAA0B;QAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,8EAA8E;IAE9E,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,WAAmB,EACnB,QAAgB;QAEhB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,WAAmB,EACnB,QAAgB,EAChB,MAAoB;QAEpB,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,8EAA8E;IAE9E,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,WAAmB,EACnB,QAAgB,EAChB,WAAmB,EACnB,SAAiB;QAEjB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,WAAmB,EACnB,QAAgB,EAChB,WAAmB,EACnB,SAAiB,EACjB,MAAoB;QAEpB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CACjC,OAAO,EACP,WAAW,EACX,QAAQ,EACR,WAAW,EACX,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED,8EAA8E;IAE9E,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF"}
@@ -1,40 +0,0 @@
1
- import type { TranscriptLine, LLMChunk, ChunkEvaluation, AudioEvent, SegmentRefinement } from '../types/index.js';
2
- /**
3
- * Common interface implemented by every cache backend (file-based, MongoDB, etc.).
4
- *
5
- * All read methods return null on a cache miss or any read error.
6
- * All write methods are fire-and-forget — failures are logged but never thrown.
7
- * `close()` releases any underlying resources (connections, file handles, etc.).
8
- */
9
- export interface CacheBackend {
10
- readTranscript(videoId: string): Promise<TranscriptLine[] | null>;
11
- writeTranscript(videoId: string, lines: TranscriptLine[]): Promise<void>;
12
- readChunk(chunk: LLMChunk, chunkAudioEvents?: AudioEvent[]): Promise<ChunkEvaluation | null>;
13
- writeChunk(chunk: LLMChunk, evaluation: ChunkEvaluation, chunkAudioEvents?: AudioEvent[]): Promise<void>;
14
- readSegmentRefinement(start: number, end: number, reason: string): Promise<SegmentRefinement | null>;
15
- writeSegmentRefinement(start: number, end: number, reason: string, refined: SegmentRefinement): Promise<void>;
16
- readAudioEvents(videoId: string, gameProfile: string, provider: string): Promise<AudioEvent[] | null>;
17
- writeAudioEvents(videoId: string, gameProfile: string, provider: string, events: AudioEvent[]): Promise<void>;
18
- readAudioChunk(videoId: string, gameProfile: string, provider: string, windowStart: number, windowEnd: number): Promise<AudioEvent[] | null>;
19
- writeAudioChunk(videoId: string, gameProfile: string, provider: string, windowStart: number, windowEnd: number, events: AudioEvent[]): Promise<void>;
20
- /** Release any underlying resources (DB connections, file handles, etc.). */
21
- close(): Promise<void>;
22
- }
23
- /**
24
- * No-op backend used when the cache is disabled (--no-cache flag).
25
- * All reads return null; all writes are silent no-ops.
26
- */
27
- export declare class DisabledCacheBackend implements CacheBackend {
28
- readTranscript(_videoId: string): Promise<TranscriptLine[] | null>;
29
- writeTranscript(_videoId: string, _lines: TranscriptLine[]): Promise<void>;
30
- readChunk(_chunk: LLMChunk, _chunkAudioEvents?: AudioEvent[]): Promise<ChunkEvaluation | null>;
31
- writeChunk(_chunk: LLMChunk, _evaluation: ChunkEvaluation, _chunkAudioEvents?: AudioEvent[]): Promise<void>;
32
- readSegmentRefinement(_start: number, _end: number, _reason: string): Promise<SegmentRefinement | null>;
33
- writeSegmentRefinement(_start: number, _end: number, _reason: string, _refined: SegmentRefinement): Promise<void>;
34
- readAudioEvents(_videoId: string, _gameProfile: string, _provider: string): Promise<AudioEvent[] | null>;
35
- writeAudioEvents(_videoId: string, _gameProfile: string, _provider: string, _events: AudioEvent[]): Promise<void>;
36
- readAudioChunk(_videoId: string, _gameProfile: string, _provider: string, _windowStart: number, _windowEnd: number): Promise<AudioEvent[] | null>;
37
- writeAudioChunk(_videoId: string, _gameProfile: string, _provider: string, _windowStart: number, _windowEnd: number, _events: AudioEvent[]): Promise<void>;
38
- close(): Promise<void>;
39
- }
40
- //# sourceMappingURL=cacheBackend.d.ts.map