prismcast 1.10.2 → 1.11.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 (693) hide show
  1. package/dist/app.d.ts +6 -3
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +140 -86
  4. package/dist/app.js.map +1 -1
  5. package/dist/browser/blockedPage.d.ts +80 -0
  6. package/dist/browser/blockedPage.d.ts.map +1 -0
  7. package/dist/browser/blockedPage.js +209 -0
  8. package/dist/browser/blockedPage.js.map +1 -0
  9. package/dist/browser/browserSupervisor.d.ts +80 -0
  10. package/dist/browser/browserSupervisor.d.ts.map +1 -0
  11. package/dist/browser/browserSupervisor.js +186 -0
  12. package/dist/browser/browserSupervisor.js.map +1 -0
  13. package/dist/browser/cdp.d.ts +1 -0
  14. package/dist/browser/cdp.d.ts.map +1 -0
  15. package/dist/browser/cdp.js +6 -5
  16. package/dist/browser/cdp.js.map +1 -1
  17. package/dist/browser/channelSelection.d.ts +45 -14
  18. package/dist/browser/channelSelection.d.ts.map +1 -0
  19. package/dist/browser/channelSelection.js +81 -18
  20. package/dist/browser/channelSelection.js.map +1 -1
  21. package/dist/browser/consent.d.ts +152 -0
  22. package/dist/browser/consent.d.ts.map +1 -0
  23. package/dist/browser/consent.js +418 -0
  24. package/dist/browser/consent.js.map +1 -0
  25. package/dist/browser/display.d.ts +1 -0
  26. package/dist/browser/display.d.ts.map +1 -0
  27. package/dist/browser/hlsPlaylistObserver.d.ts +55 -0
  28. package/dist/browser/hlsPlaylistObserver.d.ts.map +1 -0
  29. package/dist/browser/hlsPlaylistObserver.js +132 -0
  30. package/dist/browser/hlsPlaylistObserver.js.map +1 -0
  31. package/dist/browser/index.d.ts +67 -40
  32. package/dist/browser/index.d.ts.map +1 -0
  33. package/dist/browser/index.js +508 -300
  34. package/dist/browser/index.js.map +1 -1
  35. package/dist/browser/launchGovernor.d.ts +89 -0
  36. package/dist/browser/launchGovernor.d.ts.map +1 -0
  37. package/dist/browser/launchGovernor.js +96 -0
  38. package/dist/browser/launchGovernor.js.map +1 -0
  39. package/dist/browser/login.d.ts +10 -2
  40. package/dist/browser/login.d.ts.map +1 -0
  41. package/dist/browser/login.js +36 -5
  42. package/dist/browser/login.js.map +1 -1
  43. package/dist/browser/manifestInterceptor.d.ts +102 -49
  44. package/dist/browser/manifestInterceptor.d.ts.map +1 -0
  45. package/dist/browser/manifestInterceptor.js +219 -237
  46. package/dist/browser/manifestInterceptor.js.map +1 -1
  47. package/dist/browser/pageStaleness.d.ts +30 -0
  48. package/dist/browser/pageStaleness.d.ts.map +1 -0
  49. package/dist/browser/pageStaleness.js +76 -0
  50. package/dist/browser/pageStaleness.js.map +1 -0
  51. package/dist/browser/precaching.d.ts +95 -3
  52. package/dist/browser/precaching.d.ts.map +1 -0
  53. package/dist/browser/precaching.js +499 -65
  54. package/dist/browser/precaching.js.map +1 -1
  55. package/dist/browser/tabNetworkObserver.d.ts +49 -0
  56. package/dist/browser/tabNetworkObserver.d.ts.map +1 -0
  57. package/dist/browser/tabNetworkObserver.js +144 -0
  58. package/dist/browser/tabNetworkObserver.js.map +1 -0
  59. package/dist/browser/tuning/cache.d.ts +61 -0
  60. package/dist/browser/tuning/cache.d.ts.map +1 -0
  61. package/dist/browser/tuning/cache.js +62 -0
  62. package/dist/browser/tuning/cache.js.map +1 -0
  63. package/dist/browser/tuning/comcastPolymer.d.ts +3 -2
  64. package/dist/browser/tuning/comcastPolymer.d.ts.map +1 -0
  65. package/dist/browser/tuning/comcastPolymer.js +79 -102
  66. package/dist/browser/tuning/comcastPolymer.js.map +1 -1
  67. package/dist/browser/tuning/cox.d.ts +1 -0
  68. package/dist/browser/tuning/cox.d.ts.map +1 -0
  69. package/dist/browser/tuning/directv.d.ts +1 -0
  70. package/dist/browser/tuning/directv.d.ts.map +1 -0
  71. package/dist/browser/tuning/directv.js +52 -46
  72. package/dist/browser/tuning/directv.js.map +1 -1
  73. package/dist/browser/tuning/fox.d.ts +1 -0
  74. package/dist/browser/tuning/fox.d.ts.map +1 -0
  75. package/dist/browser/tuning/fox.js +13 -12
  76. package/dist/browser/tuning/fox.js.map +1 -1
  77. package/dist/browser/tuning/gridSearch.d.ts +68 -0
  78. package/dist/browser/tuning/gridSearch.d.ts.map +1 -0
  79. package/dist/browser/tuning/gridSearch.js +85 -0
  80. package/dist/browser/tuning/gridSearch.js.map +1 -0
  81. package/dist/browser/tuning/hbo.d.ts +1 -0
  82. package/dist/browser/tuning/hbo.d.ts.map +1 -0
  83. package/dist/browser/tuning/hbo.js +73 -45
  84. package/dist/browser/tuning/hbo.js.map +1 -1
  85. package/dist/browser/tuning/hulu.d.ts +1 -0
  86. package/dist/browser/tuning/hulu.d.ts.map +1 -0
  87. package/dist/browser/tuning/hulu.js +128 -173
  88. package/dist/browser/tuning/hulu.js.map +1 -1
  89. package/dist/browser/tuning/shared.d.ts +75 -5
  90. package/dist/browser/tuning/shared.d.ts.map +1 -0
  91. package/dist/browser/tuning/shared.js +216 -6
  92. package/dist/browser/tuning/shared.js.map +1 -1
  93. package/dist/browser/tuning/sling.d.ts +1 -0
  94. package/dist/browser/tuning/sling.d.ts.map +1 -0
  95. package/dist/browser/tuning/sling.js +105 -126
  96. package/dist/browser/tuning/sling.js.map +1 -1
  97. package/dist/browser/tuning/spectrum.d.ts +1 -0
  98. package/dist/browser/tuning/spectrum.d.ts.map +1 -0
  99. package/dist/browser/tuning/spectrum.js +80 -125
  100. package/dist/browser/tuning/spectrum.js.map +1 -1
  101. package/dist/browser/tuning/thumbnailRow.d.ts +1 -0
  102. package/dist/browser/tuning/thumbnailRow.d.ts.map +1 -0
  103. package/dist/browser/tuning/thumbnailRow.js +8 -2
  104. package/dist/browser/tuning/thumbnailRow.js.map +1 -1
  105. package/dist/browser/tuning/tileClick.d.ts +1 -0
  106. package/dist/browser/tuning/tileClick.d.ts.map +1 -0
  107. package/dist/browser/tuning/tileClick.js +3 -2
  108. package/dist/browser/tuning/tileClick.js.map +1 -1
  109. package/dist/browser/tuning/xfinity.d.ts +1 -0
  110. package/dist/browser/tuning/xfinity.d.ts.map +1 -0
  111. package/dist/browser/tuning/youtubeTv.d.ts +1 -0
  112. package/dist/browser/tuning/youtubeTv.d.ts.map +1 -0
  113. package/dist/browser/tuning/youtubeTv.js +74 -127
  114. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  115. package/dist/browser/video.d.ts +54 -14
  116. package/dist/browser/video.d.ts.map +1 -0
  117. package/dist/browser/video.js +296 -138
  118. package/dist/browser/video.js.map +1 -1
  119. package/dist/channels/index.d.ts +1 -0
  120. package/dist/channels/index.d.ts.map +1 -0
  121. package/dist/channels/index.js +12 -9
  122. package/dist/channels/index.js.map +1 -1
  123. package/dist/config/channelForm.d.ts +15 -1
  124. package/dist/config/channelForm.d.ts.map +1 -0
  125. package/dist/config/channelForm.js +28 -12
  126. package/dist/config/channelForm.js.map +1 -1
  127. package/dist/config/consistencyProbe.d.ts +1 -0
  128. package/dist/config/consistencyProbe.d.ts.map +1 -0
  129. package/dist/config/consistencyProbe.js +27 -21
  130. package/dist/config/consistencyProbe.js.map +1 -1
  131. package/dist/config/health.d.ts +41 -8
  132. package/dist/config/health.d.ts.map +1 -0
  133. package/dist/config/health.js +189 -38
  134. package/dist/config/health.js.map +1 -1
  135. package/dist/config/index.d.ts +55 -3
  136. package/dist/config/index.d.ts.map +1 -0
  137. package/dist/config/index.js +320 -69
  138. package/dist/config/index.js.map +1 -1
  139. package/dist/config/paths.d.ts +10 -9
  140. package/dist/config/paths.d.ts.map +1 -0
  141. package/dist/config/paths.js +11 -11
  142. package/dist/config/paths.js.map +1 -1
  143. package/dist/config/persistence.context.d.ts +1 -0
  144. package/dist/config/persistence.context.d.ts.map +1 -0
  145. package/dist/config/persistence.d.ts +13 -10
  146. package/dist/config/persistence.d.ts.map +1 -0
  147. package/dist/config/persistence.js +40 -21
  148. package/dist/config/persistence.js.map +1 -1
  149. package/dist/config/presets.d.ts +1 -0
  150. package/dist/config/presets.d.ts.map +1 -0
  151. package/dist/config/profiles.d.ts +22 -15
  152. package/dist/config/profiles.d.ts.map +1 -0
  153. package/dist/config/profiles.js +81 -47
  154. package/dist/config/profiles.js.map +1 -1
  155. package/dist/config/providerLineups.d.ts +47 -0
  156. package/dist/config/providerLineups.d.ts.map +1 -0
  157. package/dist/config/providerLineups.js +137 -0
  158. package/dist/config/providerLineups.js.map +1 -0
  159. package/dist/config/reactivity.d.ts +84 -0
  160. package/dist/config/reactivity.d.ts.map +1 -0
  161. package/dist/config/reactivity.js +226 -0
  162. package/dist/config/reactivity.js.map +1 -0
  163. package/dist/config/servicePacks.d.ts +18 -2
  164. package/dist/config/servicePacks.d.ts.map +1 -0
  165. package/dist/config/servicePacks.js +53 -11
  166. package/dist/config/servicePacks.js.map +1 -1
  167. package/dist/config/services.d.ts +21 -15
  168. package/dist/config/services.d.ts.map +1 -0
  169. package/dist/config/services.js +35 -24
  170. package/dist/config/services.js.map +1 -1
  171. package/dist/config/sites.d.ts +6 -4
  172. package/dist/config/sites.d.ts.map +1 -0
  173. package/dist/config/sites.js +15 -11
  174. package/dist/config/sites.js.map +1 -1
  175. package/dist/config/userChannels.d.ts +129 -30
  176. package/dist/config/userChannels.d.ts.map +1 -0
  177. package/dist/config/userChannels.js +333 -68
  178. package/dist/config/userChannels.js.map +1 -1
  179. package/dist/config/userConfig.d.ts +14 -9
  180. package/dist/config/userConfig.d.ts.map +1 -0
  181. package/dist/config/userConfig.js +87 -25
  182. package/dist/config/userConfig.js.map +1 -1
  183. package/dist/config/userProfiles.d.ts +10 -6
  184. package/dist/config/userProfiles.d.ts.map +1 -0
  185. package/dist/config/userProfiles.js +64 -39
  186. package/dist/config/userProfiles.js.map +1 -1
  187. package/dist/hdhr/channelMap.d.ts +1 -0
  188. package/dist/hdhr/channelMap.d.ts.map +1 -0
  189. package/dist/hdhr/deviceId.d.ts +1 -0
  190. package/dist/hdhr/deviceId.d.ts.map +1 -0
  191. package/dist/hdhr/discover.d.ts +1 -0
  192. package/dist/hdhr/discover.d.ts.map +1 -0
  193. package/dist/hdhr/discover.js +48 -47
  194. package/dist/hdhr/discover.js.map +1 -1
  195. package/dist/hdhr/getHandlers.d.ts +29 -0
  196. package/dist/hdhr/getHandlers.d.ts.map +1 -0
  197. package/dist/hdhr/getHandlers.js +196 -0
  198. package/dist/hdhr/getHandlers.js.map +1 -0
  199. package/dist/hdhr/identity.d.ts +36 -0
  200. package/dist/hdhr/identity.d.ts.map +1 -0
  201. package/dist/hdhr/identity.js +51 -0
  202. package/dist/hdhr/identity.js.map +1 -0
  203. package/dist/hdhr/index.d.ts +22 -4
  204. package/dist/hdhr/index.d.ts.map +1 -0
  205. package/dist/hdhr/index.js +229 -54
  206. package/dist/hdhr/index.js.map +1 -1
  207. package/dist/hdhr/protocol.d.ts +75 -0
  208. package/dist/hdhr/protocol.d.ts.map +1 -0
  209. package/dist/hdhr/protocol.js +264 -0
  210. package/dist/hdhr/protocol.js.map +1 -0
  211. package/dist/hdhr/tunerState.d.ts +24 -0
  212. package/dist/hdhr/tunerState.d.ts.map +1 -0
  213. package/dist/hdhr/tunerState.js +67 -0
  214. package/dist/hdhr/tunerState.js.map +1 -0
  215. package/dist/hdhr/udp.d.ts +43 -0
  216. package/dist/hdhr/udp.d.ts.map +1 -0
  217. package/dist/hdhr/udp.js +277 -0
  218. package/dist/hdhr/udp.js.map +1 -0
  219. package/dist/identity.d.ts +1 -0
  220. package/dist/identity.d.ts.map +1 -0
  221. package/dist/identity.js +13 -11
  222. package/dist/identity.js.map +1 -1
  223. package/dist/index.d.ts +1 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +11 -12
  226. package/dist/index.js.map +1 -1
  227. package/dist/native/codecInference.d.ts +1 -0
  228. package/dist/native/codecInference.d.ts.map +1 -0
  229. package/dist/native/codecInference.js +50 -5
  230. package/dist/native/codecInference.js.map +1 -1
  231. package/dist/native/decrypt.d.ts +6 -2
  232. package/dist/native/decrypt.d.ts.map +1 -0
  233. package/dist/native/decrypt.js +15 -8
  234. package/dist/native/decrypt.js.map +1 -1
  235. package/dist/native/index.d.ts +40 -17
  236. package/dist/native/index.d.ts.map +1 -0
  237. package/dist/native/index.js +281 -120
  238. package/dist/native/index.js.map +1 -1
  239. package/dist/native/probe.d.ts +114 -18
  240. package/dist/native/probe.d.ts.map +1 -0
  241. package/dist/native/probe.js +452 -115
  242. package/dist/native/probe.js.map +1 -1
  243. package/dist/native/proxy.d.ts +57 -5
  244. package/dist/native/proxy.d.ts.map +1 -0
  245. package/dist/native/proxy.js +604 -170
  246. package/dist/native/proxy.js.map +1 -1
  247. package/dist/native/tokenExpiry.d.ts +1 -0
  248. package/dist/native/tokenExpiry.d.ts.map +1 -0
  249. package/dist/native/tokenExpiry.js +1 -1
  250. package/dist/routes/assets.d.ts +1 -0
  251. package/dist/routes/assets.d.ts.map +1 -0
  252. package/dist/routes/assets.js +4 -2
  253. package/dist/routes/assets.js.map +1 -1
  254. package/dist/routes/auth.d.ts +1 -0
  255. package/dist/routes/auth.d.ts.map +1 -0
  256. package/dist/routes/auth.js +0 -1
  257. package/dist/routes/auth.js.map +1 -1
  258. package/dist/routes/cdp.d.ts +5 -5
  259. package/dist/routes/cdp.d.ts.map +1 -0
  260. package/dist/routes/cdp.js +59 -20
  261. package/dist/routes/cdp.js.map +1 -1
  262. package/dist/routes/channels.d.ts +1 -0
  263. package/dist/routes/channels.d.ts.map +1 -0
  264. package/dist/routes/channels.js +2 -1
  265. package/dist/routes/channels.js.map +1 -1
  266. package/dist/routes/clientActions.d.ts +98 -0
  267. package/dist/routes/clientActions.d.ts.map +1 -0
  268. package/dist/routes/clientActions.js +113 -0
  269. package/dist/routes/clientActions.js.map +1 -0
  270. package/dist/routes/components.d.ts +5 -3
  271. package/dist/routes/components.d.ts.map +1 -0
  272. package/dist/routes/components.js +36 -39
  273. package/dist/routes/components.js.map +1 -1
  274. package/dist/routes/config/channels/endpoints/browse.d.ts +1 -0
  275. package/dist/routes/config/channels/endpoints/browse.d.ts.map +1 -0
  276. package/dist/routes/config/channels/endpoints/browse.js +23 -10
  277. package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
  278. package/dist/routes/config/channels/endpoints/bulk.d.ts +1 -0
  279. package/dist/routes/config/channels/endpoints/bulk.d.ts.map +1 -0
  280. package/dist/routes/config/channels/endpoints/bulk.js +5 -3
  281. package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
  282. package/dist/routes/config/channels/endpoints/crud.d.ts +1 -0
  283. package/dist/routes/config/channels/endpoints/crud.d.ts.map +1 -0
  284. package/dist/routes/config/channels/endpoints/crud.js +85 -93
  285. package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
  286. package/dist/routes/config/channels/endpoints/importExport.d.ts +1 -0
  287. package/dist/routes/config/channels/endpoints/importExport.d.ts.map +1 -0
  288. package/dist/routes/config/channels/endpoints/importExport.js +6 -3
  289. package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
  290. package/dist/routes/config/channels/endpoints/predefined.d.ts +1 -0
  291. package/dist/routes/config/channels/endpoints/predefined.d.ts.map +1 -0
  292. package/dist/routes/config/channels/endpoints/prefs.d.ts +1 -0
  293. package/dist/routes/config/channels/endpoints/prefs.d.ts.map +1 -0
  294. package/dist/routes/config/channels/endpoints/prefs.js +2 -1
  295. package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
  296. package/dist/routes/config/channels/endpoints/service.d.ts +2 -1
  297. package/dist/routes/config/channels/endpoints/service.d.ts.map +1 -0
  298. package/dist/routes/config/channels/endpoints/service.js +3 -1
  299. package/dist/routes/config/channels/endpoints/service.js.map +1 -1
  300. package/dist/routes/config/channels/endpoints/tags.d.ts +1 -0
  301. package/dist/routes/config/channels/endpoints/tags.d.ts.map +1 -0
  302. package/dist/routes/config/channels/endpoints/tags.js +13 -7
  303. package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
  304. package/dist/routes/config/channels/healthBridge.d.ts +24 -0
  305. package/dist/routes/config/channels/healthBridge.d.ts.map +1 -0
  306. package/dist/routes/config/channels/healthBridge.js +71 -0
  307. package/dist/routes/config/channels/healthBridge.js.map +1 -0
  308. package/dist/routes/config/channels/http/handler.d.ts +1 -0
  309. package/dist/routes/config/channels/http/handler.d.ts.map +1 -0
  310. package/dist/routes/config/channels/http/playlistHint.d.ts +2 -1
  311. package/dist/routes/config/channels/http/playlistHint.d.ts.map +1 -0
  312. package/dist/routes/config/channels/http/playlistHint.js +16 -2
  313. package/dist/routes/config/channels/http/playlistHint.js.map +1 -1
  314. package/dist/routes/config/channels/http/serviceWarning.d.ts +4 -2
  315. package/dist/routes/config/channels/http/serviceWarning.d.ts.map +1 -0
  316. package/dist/routes/config/channels/http/serviceWarning.js +3 -2
  317. package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
  318. package/dist/routes/config/channels/index.d.ts +1 -0
  319. package/dist/routes/config/channels/index.d.ts.map +1 -0
  320. package/dist/routes/config/channels/setup.d.ts +1 -0
  321. package/dist/routes/config/channels/setup.d.ts.map +1 -0
  322. package/dist/routes/config/channels/table.d.ts +3 -3
  323. package/dist/routes/config/channels/table.d.ts.map +1 -0
  324. package/dist/routes/config/channels/table.js +148 -107
  325. package/dist/routes/config/channels/table.js.map +1 -1
  326. package/dist/routes/config/http/envelope.d.ts +1 -0
  327. package/dist/routes/config/http/envelope.d.ts.map +1 -0
  328. package/dist/routes/config/index.d.ts +35 -3
  329. package/dist/routes/config/index.d.ts.map +1 -0
  330. package/dist/routes/config/index.js +51 -2
  331. package/dist/routes/config/index.js.map +1 -1
  332. package/dist/routes/config/services.d.ts +5 -4
  333. package/dist/routes/config/services.d.ts.map +1 -0
  334. package/dist/routes/config/services.js +57 -43
  335. package/dist/routes/config/services.js.map +1 -1
  336. package/dist/routes/config/settings.d.ts +1 -0
  337. package/dist/routes/config/settings.d.ts.map +1 -0
  338. package/dist/routes/config/settings.js +98 -49
  339. package/dist/routes/config/settings.js.map +1 -1
  340. package/dist/routes/debug.d.ts +1 -0
  341. package/dist/routes/debug.d.ts.map +1 -0
  342. package/dist/routes/debug.js +277 -139
  343. package/dist/routes/debug.js.map +1 -1
  344. package/dist/routes/health.d.ts +39 -1
  345. package/dist/routes/health.d.ts.map +1 -0
  346. package/dist/routes/health.js +33 -27
  347. package/dist/routes/health.js.map +1 -1
  348. package/dist/routes/hls.d.ts +1 -0
  349. package/dist/routes/hls.d.ts.map +1 -0
  350. package/dist/routes/icons.d.ts +1 -0
  351. package/dist/routes/icons.d.ts.map +1 -0
  352. package/dist/routes/icons.js +1 -1
  353. package/dist/routes/index.d.ts +1 -0
  354. package/dist/routes/index.d.ts.map +1 -0
  355. package/dist/routes/logs.d.ts +1 -0
  356. package/dist/routes/logs.d.ts.map +1 -0
  357. package/dist/routes/logs.js +14 -4
  358. package/dist/routes/logs.js.map +1 -1
  359. package/dist/routes/mpegts.d.ts +1 -0
  360. package/dist/routes/mpegts.d.ts.map +1 -0
  361. package/dist/routes/play.d.ts +1 -0
  362. package/dist/routes/play.d.ts.map +1 -0
  363. package/dist/routes/playlist.d.ts +1 -0
  364. package/dist/routes/playlist.d.ts.map +1 -0
  365. package/dist/routes/playlist.js +7 -2
  366. package/dist/routes/playlist.js.map +1 -1
  367. package/dist/routes/root/content.d.ts +8 -5
  368. package/dist/routes/root/content.d.ts.map +1 -0
  369. package/dist/routes/root/content.js +29 -26
  370. package/dist/routes/root/content.js.map +1 -1
  371. package/dist/routes/root/index.d.ts +2 -1
  372. package/dist/routes/root/index.d.ts.map +1 -0
  373. package/dist/routes/root/index.js +26 -21
  374. package/dist/routes/root/index.js.map +1 -1
  375. package/dist/routes/root/scripts/channels.d.ts +6 -0
  376. package/dist/routes/root/scripts/channels.d.ts.map +1 -0
  377. package/dist/routes/root/scripts/channels.js +197 -118
  378. package/dist/routes/root/scripts/channels.js.map +1 -1
  379. package/dist/routes/root/scripts/clientEscape.d.ts +22 -0
  380. package/dist/routes/root/scripts/clientEscape.d.ts.map +1 -0
  381. package/dist/routes/root/scripts/clientEscape.js +41 -0
  382. package/dist/routes/root/scripts/clientEscape.js.map +1 -0
  383. package/dist/routes/root/scripts/clientUrl.d.ts +23 -0
  384. package/dist/routes/root/scripts/clientUrl.d.ts.map +1 -0
  385. package/dist/routes/root/scripts/clientUrl.js +44 -0
  386. package/dist/routes/root/scripts/clientUrl.js.map +1 -0
  387. package/dist/routes/root/scripts/config.d.ts +6 -0
  388. package/dist/routes/root/scripts/config.d.ts.map +1 -0
  389. package/dist/routes/root/scripts/config.js +110 -24
  390. package/dist/routes/root/scripts/config.js.map +1 -1
  391. package/dist/routes/root/scripts/index.d.ts +1 -0
  392. package/dist/routes/root/scripts/index.d.ts.map +1 -0
  393. package/dist/routes/root/scripts/shared.d.ts +1 -0
  394. package/dist/routes/root/scripts/shared.d.ts.map +1 -0
  395. package/dist/routes/root/scripts/shared.js +112 -26
  396. package/dist/routes/root/scripts/shared.js.map +1 -1
  397. package/dist/routes/root/scripts/status.d.ts +1 -0
  398. package/dist/routes/root/scripts/status.d.ts.map +1 -0
  399. package/dist/routes/root/scripts/status.handlers.d.ts +23 -33
  400. package/dist/routes/root/scripts/status.handlers.d.ts.map +1 -0
  401. package/dist/routes/root/scripts/status.handlers.js +46 -92
  402. package/dist/routes/root/scripts/status.handlers.js.map +1 -1
  403. package/dist/routes/root/scripts/status.js +21 -8
  404. package/dist/routes/root/scripts/status.js.map +1 -1
  405. package/dist/routes/root/styles.d.ts +1 -0
  406. package/dist/routes/root/styles.d.ts.map +1 -0
  407. package/dist/routes/root/styles.js +7 -4
  408. package/dist/routes/root/styles.js.map +1 -1
  409. package/dist/routes/services.d.ts +13 -1
  410. package/dist/routes/services.d.ts.map +1 -0
  411. package/dist/routes/services.js +81 -68
  412. package/dist/routes/services.js.map +1 -1
  413. package/dist/routes/sse.d.ts +1 -0
  414. package/dist/routes/sse.d.ts.map +1 -0
  415. package/dist/routes/sse.js +1 -1
  416. package/dist/routes/sse.js.map +1 -1
  417. package/dist/routes/streams.d.ts +2 -1
  418. package/dist/routes/streams.d.ts.map +1 -0
  419. package/dist/routes/streams.js +6 -4
  420. package/dist/routes/streams.js.map +1 -1
  421. package/dist/routes/theme.d.ts +3 -2
  422. package/dist/routes/theme.d.ts.map +1 -0
  423. package/dist/routes/theme.js +6 -5
  424. package/dist/routes/theme.js.map +1 -1
  425. package/dist/routes/ui.d.ts +3 -1
  426. package/dist/routes/ui.d.ts.map +1 -0
  427. package/dist/routes/ui.js +16 -4
  428. package/dist/routes/ui.js.map +1 -1
  429. package/dist/routes/upgrade.d.ts +1 -0
  430. package/dist/routes/upgrade.d.ts.map +1 -0
  431. package/dist/routes/upgrade.js +6 -2
  432. package/dist/routes/upgrade.js.map +1 -1
  433. package/dist/service/commands.context.d.ts +1 -0
  434. package/dist/service/commands.context.d.ts.map +1 -0
  435. package/dist/service/commands.context.js +4 -3
  436. package/dist/service/commands.context.js.map +1 -1
  437. package/dist/service/commands.d.ts +1 -0
  438. package/dist/service/commands.d.ts.map +1 -0
  439. package/dist/service/commands.js +10 -13
  440. package/dist/service/commands.js.map +1 -1
  441. package/dist/service/generators.context.d.ts +1 -0
  442. package/dist/service/generators.context.d.ts.map +1 -0
  443. package/dist/service/generators.context.js +1 -1
  444. package/dist/service/generators.context.js.map +1 -1
  445. package/dist/service/generators.d.ts +4 -3
  446. package/dist/service/generators.d.ts.map +1 -0
  447. package/dist/service/generators.js +111 -31
  448. package/dist/service/generators.js.map +1 -1
  449. package/dist/service/index.d.ts +1 -0
  450. package/dist/service/index.d.ts.map +1 -0
  451. package/dist/streaming/captureLock.d.ts +44 -0
  452. package/dist/streaming/captureLock.d.ts.map +1 -0
  453. package/dist/streaming/captureLock.js +95 -0
  454. package/dist/streaming/captureLock.js.map +1 -0
  455. package/dist/streaming/captureSession.d.ts +31 -0
  456. package/dist/streaming/captureSession.d.ts.map +1 -0
  457. package/dist/streaming/captureSession.js +54 -0
  458. package/dist/streaming/captureSession.js.map +1 -0
  459. package/dist/streaming/clients.d.ts +1 -0
  460. package/dist/streaming/clients.d.ts.map +1 -0
  461. package/dist/streaming/codec.d.ts +1 -0
  462. package/dist/streaming/codec.d.ts.map +1 -0
  463. package/dist/streaming/fmp4Segmenter.d.ts +29 -2
  464. package/dist/streaming/fmp4Segmenter.d.ts.map +1 -0
  465. package/dist/streaming/fmp4Segmenter.js +79 -26
  466. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  467. package/dist/streaming/hls.d.ts +18 -7
  468. package/dist/streaming/hls.d.ts.map +1 -0
  469. package/dist/streaming/hls.js +220 -120
  470. package/dist/streaming/hls.js.map +1 -1
  471. package/dist/streaming/hlsResume.d.ts +1 -0
  472. package/dist/streaming/hlsResume.d.ts.map +1 -0
  473. package/dist/streaming/hlsResume.js +1 -1
  474. package/dist/streaming/hlsResume.js.map +1 -1
  475. package/dist/streaming/hlsSegments.d.ts +59 -2
  476. package/dist/streaming/hlsSegments.d.ts.map +1 -0
  477. package/dist/streaming/hlsSegments.js +147 -17
  478. package/dist/streaming/hlsSegments.js.map +1 -1
  479. package/dist/streaming/lifecycle.d.ts +4 -1
  480. package/dist/streaming/lifecycle.d.ts.map +1 -0
  481. package/dist/streaming/lifecycle.js +65 -85
  482. package/dist/streaming/lifecycle.js.map +1 -1
  483. package/dist/streaming/monitor.d.ts +6 -4
  484. package/dist/streaming/monitor.d.ts.map +1 -0
  485. package/dist/streaming/monitor.js +343 -145
  486. package/dist/streaming/monitor.js.map +1 -1
  487. package/dist/streaming/mp4Parser.d.ts +5 -4
  488. package/dist/streaming/mp4Parser.d.ts.map +1 -0
  489. package/dist/streaming/mp4Parser.js +36 -13
  490. package/dist/streaming/mp4Parser.js.map +1 -1
  491. package/dist/streaming/mpegts.d.ts +16 -0
  492. package/dist/streaming/mpegts.d.ts.map +1 -0
  493. package/dist/streaming/mpegts.js +61 -17
  494. package/dist/streaming/mpegts.js.map +1 -1
  495. package/dist/streaming/playlistBuilder.d.ts +1 -0
  496. package/dist/streaming/playlistBuilder.d.ts.map +1 -0
  497. package/dist/streaming/preroll.d.ts +32 -5
  498. package/dist/streaming/preroll.d.ts.map +1 -0
  499. package/dist/streaming/preroll.js +70 -32
  500. package/dist/streaming/preroll.js.map +1 -1
  501. package/dist/streaming/pretune.d.ts +26 -1
  502. package/dist/streaming/pretune.d.ts.map +1 -0
  503. package/dist/streaming/pretune.js +22 -24
  504. package/dist/streaming/pretune.js.map +1 -1
  505. package/dist/streaming/pretuneTimers.d.ts +24 -0
  506. package/dist/streaming/pretuneTimers.d.ts.map +1 -0
  507. package/dist/streaming/pretuneTimers.js +56 -0
  508. package/dist/streaming/pretuneTimers.js.map +1 -0
  509. package/dist/streaming/recovery.d.ts +139 -5
  510. package/dist/streaming/recovery.d.ts.map +1 -0
  511. package/dist/streaming/recovery.js +160 -16
  512. package/dist/streaming/recovery.js.map +1 -1
  513. package/dist/streaming/registry.d.ts +27 -9
  514. package/dist/streaming/registry.d.ts.map +1 -0
  515. package/dist/streaming/registry.js +21 -3
  516. package/dist/streaming/registry.js.map +1 -1
  517. package/dist/streaming/setup.d.ts +157 -29
  518. package/dist/streaming/setup.d.ts.map +1 -0
  519. package/dist/streaming/setup.js +1034 -458
  520. package/dist/streaming/setup.js.map +1 -1
  521. package/dist/streaming/showInfo.d.ts +21 -1
  522. package/dist/streaming/showInfo.d.ts.map +1 -0
  523. package/dist/streaming/showInfo.js +31 -16
  524. package/dist/streaming/showInfo.js.map +1 -1
  525. package/dist/streaming/statusEmitter.d.ts +10 -10
  526. package/dist/streaming/statusEmitter.d.ts.map +1 -0
  527. package/dist/streaming/statusEmitter.js +5 -8
  528. package/dist/streaming/statusEmitter.js.map +1 -1
  529. package/dist/types/channels.d.ts +16 -4
  530. package/dist/types/channels.d.ts.map +1 -0
  531. package/dist/types/channels.js +4 -2
  532. package/dist/types/channels.js.map +1 -1
  533. package/dist/types/config.d.ts +16 -5
  534. package/dist/types/config.d.ts.map +1 -0
  535. package/dist/types/index.d.ts +3 -2
  536. package/dist/types/index.d.ts.map +1 -0
  537. package/dist/types/profiles.d.ts +6 -4
  538. package/dist/types/profiles.d.ts.map +1 -0
  539. package/dist/types/selection.d.ts +31 -3
  540. package/dist/types/selection.d.ts.map +1 -0
  541. package/dist/types/selection.js +4 -2
  542. package/dist/types/selection.js.map +1 -1
  543. package/dist/types/shared.d.ts +1 -0
  544. package/dist/types/shared.d.ts.map +1 -0
  545. package/dist/types/streaming.d.ts +8 -0
  546. package/dist/types/streaming.d.ts.map +1 -0
  547. package/dist/upgrade/commands.context.d.ts +1 -0
  548. package/dist/upgrade/commands.context.d.ts.map +1 -0
  549. package/dist/upgrade/commands.context.js +14 -10
  550. package/dist/upgrade/commands.context.js.map +1 -1
  551. package/dist/upgrade/commands.d.ts +8 -15
  552. package/dist/upgrade/commands.d.ts.map +1 -0
  553. package/dist/upgrade/commands.js +27 -28
  554. package/dist/upgrade/commands.js.map +1 -1
  555. package/dist/upgrade/detection.context.d.ts +1 -0
  556. package/dist/upgrade/detection.context.d.ts.map +1 -0
  557. package/dist/upgrade/detection.context.js +4 -1
  558. package/dist/upgrade/detection.context.js.map +1 -1
  559. package/dist/upgrade/detection.d.ts +9 -7
  560. package/dist/upgrade/detection.d.ts.map +1 -0
  561. package/dist/upgrade/detection.js +23 -54
  562. package/dist/upgrade/detection.js.map +1 -1
  563. package/dist/upgrade/index.d.ts +2 -0
  564. package/dist/upgrade/index.d.ts.map +1 -0
  565. package/dist/upgrade/index.js +1 -0
  566. package/dist/upgrade/index.js.map +1 -1
  567. package/dist/upgrade/lifecycle.context.d.ts +20 -0
  568. package/dist/upgrade/lifecycle.context.d.ts.map +1 -0
  569. package/dist/upgrade/lifecycle.context.js +47 -0
  570. package/dist/upgrade/lifecycle.context.js.map +1 -0
  571. package/dist/upgrade/lifecycle.d.ts +72 -0
  572. package/dist/upgrade/lifecycle.d.ts.map +1 -0
  573. package/dist/upgrade/lifecycle.js +175 -0
  574. package/dist/upgrade/lifecycle.js.map +1 -0
  575. package/dist/upgrade/pathHandle.d.ts +30 -0
  576. package/dist/upgrade/pathHandle.d.ts.map +1 -0
  577. package/dist/upgrade/pathHandle.js +102 -0
  578. package/dist/upgrade/pathHandle.js.map +1 -0
  579. package/dist/utils/bootSession.context.d.ts +16 -0
  580. package/dist/utils/bootSession.context.d.ts.map +1 -0
  581. package/dist/utils/bootSession.context.js +60 -0
  582. package/dist/utils/bootSession.context.js.map +1 -0
  583. package/dist/utils/bootSession.d.ts +17 -0
  584. package/dist/utils/bootSession.d.ts.map +1 -0
  585. package/dist/utils/bootSession.js +20 -0
  586. package/dist/utils/bootSession.js.map +1 -0
  587. package/dist/utils/chromeFetch.d.ts +1 -0
  588. package/dist/utils/chromeFetch.d.ts.map +1 -0
  589. package/dist/utils/cliOutput.d.ts +1 -0
  590. package/dist/utils/cliOutput.d.ts.map +1 -0
  591. package/dist/utils/clock.d.ts +5 -4
  592. package/dist/utils/clock.d.ts.map +1 -0
  593. package/dist/utils/clock.js +19 -16
  594. package/dist/utils/clock.js.map +1 -1
  595. package/dist/utils/debugFilter.d.ts +9 -1
  596. package/dist/utils/debugFilter.d.ts.map +1 -0
  597. package/dist/utils/debugFilter.js +60 -33
  598. package/dist/utils/debugFilter.js.map +1 -1
  599. package/dist/utils/delay.d.ts +48 -15
  600. package/dist/utils/delay.d.ts.map +1 -0
  601. package/dist/utils/delay.js +73 -20
  602. package/dist/utils/delay.js.map +1 -1
  603. package/dist/utils/errors.d.ts +32 -0
  604. package/dist/utils/errors.d.ts.map +1 -0
  605. package/dist/utils/errors.js +45 -4
  606. package/dist/utils/errors.js.map +1 -1
  607. package/dist/utils/evaluate.d.ts +1 -0
  608. package/dist/utils/evaluate.d.ts.map +1 -0
  609. package/dist/utils/evaluate.js +29 -23
  610. package/dist/utils/evaluate.js.map +1 -1
  611. package/dist/utils/ffmpeg.context.d.ts +1 -0
  612. package/dist/utils/ffmpeg.context.d.ts.map +1 -0
  613. package/dist/utils/ffmpeg.context.js.map +1 -1
  614. package/dist/utils/ffmpeg.d.ts +29 -7
  615. package/dist/utils/ffmpeg.d.ts.map +1 -0
  616. package/dist/utils/ffmpeg.js +32 -14
  617. package/dist/utils/ffmpeg.js.map +1 -1
  618. package/dist/utils/fileLogger.d.ts +3 -1
  619. package/dist/utils/fileLogger.d.ts.map +1 -0
  620. package/dist/utils/fileLogger.js +64 -29
  621. package/dist/utils/fileLogger.js.map +1 -1
  622. package/dist/utils/format.d.ts +14 -1
  623. package/dist/utils/format.d.ts.map +1 -0
  624. package/dist/utils/format.js +19 -5
  625. package/dist/utils/format.js.map +1 -1
  626. package/dist/utils/index.d.ts +4 -0
  627. package/dist/utils/index.d.ts.map +1 -0
  628. package/dist/utils/index.js +3 -0
  629. package/dist/utils/index.js.map +1 -1
  630. package/dist/utils/logEmitter.d.ts +1 -0
  631. package/dist/utils/logEmitter.d.ts.map +1 -0
  632. package/dist/utils/logger.d.ts +1 -0
  633. package/dist/utils/logger.d.ts.map +1 -0
  634. package/dist/utils/logger.js +10 -6
  635. package/dist/utils/logger.js.map +1 -1
  636. package/dist/utils/m3u.d.ts +3 -2
  637. package/dist/utils/m3u.d.ts.map +1 -0
  638. package/dist/utils/m3u.js +4 -3
  639. package/dist/utils/m3u.js.map +1 -1
  640. package/dist/utils/markup.d.ts +13 -1
  641. package/dist/utils/markup.d.ts.map +1 -0
  642. package/dist/utils/markup.js +28 -4
  643. package/dist/utils/markup.js.map +1 -1
  644. package/dist/utils/memo.d.ts +3 -2
  645. package/dist/utils/memo.d.ts.map +1 -0
  646. package/dist/utils/memo.js +3 -3
  647. package/dist/utils/morganStream.d.ts +1 -0
  648. package/dist/utils/morganStream.d.ts.map +1 -0
  649. package/dist/utils/network.d.ts +1 -0
  650. package/dist/utils/network.d.ts.map +1 -0
  651. package/dist/utils/network.js +2 -2
  652. package/dist/utils/pid.d.ts +3 -25
  653. package/dist/utils/pid.d.ts.map +1 -0
  654. package/dist/utils/pid.js +10 -49
  655. package/dist/utils/pid.js.map +1 -1
  656. package/dist/utils/platform.d.ts +3 -1
  657. package/dist/utils/platform.d.ts.map +1 -0
  658. package/dist/utils/platform.js +2 -1
  659. package/dist/utils/platform.js.map +1 -1
  660. package/dist/utils/processInspector.context.d.ts +8 -0
  661. package/dist/utils/processInspector.context.d.ts.map +1 -0
  662. package/dist/utils/processInspector.context.js +106 -0
  663. package/dist/utils/processInspector.context.js.map +1 -0
  664. package/dist/utils/processInspector.d.ts +55 -0
  665. package/dist/utils/processInspector.d.ts.map +1 -0
  666. package/dist/utils/processInspector.js +127 -0
  667. package/dist/utils/processInspector.js.map +1 -0
  668. package/dist/utils/retry.d.ts +25 -2
  669. package/dist/utils/retry.d.ts.map +1 -0
  670. package/dist/utils/retry.js +33 -6
  671. package/dist/utils/retry.js.map +1 -1
  672. package/dist/utils/runtimeIdentity.context.d.ts +7 -0
  673. package/dist/utils/runtimeIdentity.context.d.ts.map +1 -0
  674. package/dist/utils/runtimeIdentity.context.js +43 -0
  675. package/dist/utils/runtimeIdentity.context.js.map +1 -0
  676. package/dist/utils/runtimeIdentity.d.ts +98 -0
  677. package/dist/utils/runtimeIdentity.d.ts.map +1 -0
  678. package/dist/utils/runtimeIdentity.js +181 -0
  679. package/dist/utils/runtimeIdentity.js.map +1 -0
  680. package/dist/utils/sanitize.d.ts +1 -0
  681. package/dist/utils/sanitize.d.ts.map +1 -0
  682. package/dist/utils/streamContext.d.ts +2 -1
  683. package/dist/utils/streamContext.d.ts.map +1 -0
  684. package/dist/utils/streamContext.js +1 -1
  685. package/dist/utils/timing.d.ts +2 -1
  686. package/dist/utils/timing.d.ts.map +1 -0
  687. package/dist/utils/timing.js +0 -5
  688. package/dist/utils/timing.js.map +1 -1
  689. package/dist/utils/version.d.ts +1 -0
  690. package/dist/utils/version.d.ts.map +1 -0
  691. package/dist/utils/version.js +47 -13
  692. package/dist/utils/version.js.map +1 -1
  693. package/package.json +26 -20
@@ -1 +1 @@
1
- {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/bulk.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAClI,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAErF,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAE7C,yJAAyJ;IACzJ,yEAAyE;IACzE,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAE3G,MAAM,IAAI,GAAG,GAAG,CAAC,IAAsE,CAAC;QACxF,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;QAChC,MAAM,SAAS,GAAsB,IAAI,CAAC,SAA0C,IAAI,MAAM,CAAC;QAC/F,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAEjE,IAAG,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YAElD,mBAAmB,CAAC,GAAG,EAAE,8CAA8C,CAAC,CAAC;YAEzE,OAAO;QACT,CAAC;QAED,IAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAErC,mBAAmB,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAEhD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QAErC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAEnG,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,MAAM,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE;YAE5B,wJAAwJ;YACxJ,yJAAyJ;YACzJ,uGAAuG;YACvG,IAAG,SAAS,EAAE,CAAC;gBAEb,qIAAqI;gBACrI,KAAI,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAE3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;gBAED,OAAO;YACT,CAAC;YAED,iHAAiH;YACjH,KAAI,MAAM,CAAE,CAAC,EAAE,KAAK,CAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAE5C,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;gBAEtB,IAAG,GAAG,GAAG,KAAK,EAAE,CAAC;oBAEf,MAAM;gBACR,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/F,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAElD,GAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAE7E,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC;YACzB,CAAC,+BAA+B,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;YAChF,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC;QAE7D,WAAW,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC,CAAC;IAEJ,gGAAgG;IAChG,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAEzG,MAAM,IAAI,GAAG,GAAG,CAAC,IAA4B,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;QAEpC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QAErC,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,oJAAoJ;QACpJ,KAAI,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAE3B,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEvD,IAAG,OAAO,KAAK,MAAM,EAAE,CAAC;gBAEtB,SAAS;YACX,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,IAAG,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAE7B,WAAW,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAEpD,OAAO;QACT,CAAC;QAED,MAAM,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE;YAE5B,kJAAkJ;YAClJ,qHAAqH;YACrH,KAAI,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAE9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;QAExD,GAAG,CAAC,IAAI,CAAC,+CAA+C,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEvF,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,cAAc,GAAG,MAAM,GAAG,wBAAwB,CAAC;QAEjG,WAAW,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC,CAAC;IAEJ,iKAAiK;IACjK,4JAA4J;IAC5J,sDAAsD;IACtD,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAEhG,MAAM,IAAI,GAAG,GAAG,CAAC,IAAyC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhE,IAAG,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YAE/C,mBAAmB,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;YAE9D,OAAO;QACT,CAAC;QAED,IAAG,CAAC,GAAG,EAAE,CAAC;YAER,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YAE7C,OAAO;QACT,CAAC;QAED,IAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAExB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YAEtD,OAAO;QACT,CAAC;QAED,gKAAgK;QAChK,0GAA0G;QAC1G,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CACxD,gBAAgB,EAChB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;YAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,IAAI,EAAE,GAAG,CAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CACzC,CAAC;QAEF,IAAG,KAAK,EAAE,CAAC;YAET,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAE/B,OAAO;QACT,CAAC;QAED,IAAG,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAE7B,WAAW,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAEpD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;QAE9D,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAE9E,MAAM,OAAO,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;QAEjG,4JAA4J;QAC5J,WAAW,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/bulk.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ import type { Express } from "express";
4
4
  * @param app - The Express application.
5
5
  */
6
6
  export declare function registerCrudRoutes(app: Express): void;
7
+ //# sourceMappingURL=crud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/crud.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAmY1D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAiVrD"}
@@ -1,27 +1,13 @@
1
- /* Copyright(C) 2024-2026, HJD (https://github.com/hjdhjd). All rights reserved.
2
- *
3
- * crud.ts: RESTful CRUD endpoints for individual channel records.
4
- *
5
- * Each handler is a thin adapter: parse the typed body, delegate decisions to the channelForm domain helpers, write through mutateChannels, respond with an
6
- * envelope patch.
7
- *
8
- * Endpoints:
9
- * POST /config/channels - Create a new user channel.
10
- * PUT /config/channels/:key - Full replace/edit. Decides between revert, variant revert, or delta override based on submitted values.
11
- * DELETE /config/channels/:key - Delete a user channel.
12
- * POST /config/channels/:key/revert - Revert a predefined channel override to defaults.
13
- * PATCH /config/channels/:key - Partial update (inline cell edits: channelNumber, stationId, hdhrEnabled, tags).
14
- */
15
- import { CHANNEL_BINDING_KEYS, CHANNEL_IDENTITY_KEYS } from "../../../../types/index.js";
16
1
  import { LOG, sanitizeString } from "../../../../utils/index.js";
17
- import { clearChannelOverrides, getPredefinedChannel, isPredefinedChannel, isUserChannel, mutateChannels, parseTagInput, sortTags, validateChannelKey, validateChannelName, validateChannelNumber, validateChannelProfile, validateChannelUrl } from "../../../../config/userChannels.js";
2
+ import { M3U_FIELDS, playlistHintForChange, playlistHintForDelta, playlistHintForStored } from "../http/playlistHint.js";
18
3
  import { channelMatches, computePredefinedDelta, findMatchingVariant } from "../../../../config/channelForm.js";
4
+ import { clearChannelOverrides, getPredefinedChannel, inferTargetVariant, intersectBindingDeltas, isPredefinedChannel, isUserChannel, mutateChannels, parseTagInput, pickBindingFields, pickIdentityFields, replaceVariantBinding, sortTags, validateChannelKey, validateChannelName, validateChannelNumber, validateChannelProfile, validateChannelUrl } from "../../../../config/userChannels.js";
19
5
  import { getResolvedChannel, resolveServiceKey } from "../../../../config/services.js";
20
- import { playlistHintForChange, playlistHintForDelta, playlistHintForStored } from "../http/playlistHint.js";
21
6
  import { sendFormErrors, sendSuccess, sendValidationError } from "../../http/envelope.js";
22
7
  import { PREDEFINED_CHANNELS } from "../../../../channels/index.js";
23
8
  import { buildServiceFilterWarning } from "../http/serviceWarning.js";
24
- import { getProfiles } from "../../../../config/profiles.js";
9
+ import { getBuiltinProfile } from "../../../../config/profiles.js";
10
+ import { getUserProfiles } from "../../../../config/userProfiles.js";
25
11
  import { route } from "../http/handler.js";
26
12
  import { updateChannelLogo } from "../../../../streaming/showInfo.js";
27
13
  /* Single source of truth for fields that PATCH /config/channels/:key accepts. The tuple is the one place an inline-editable field is declared; the InlineEditBody
@@ -47,6 +33,9 @@ function parseFormBody(body) {
47
33
  const formValues = {
48
34
  channelNumber: channelNumberStr ? parseInt(channelNumberStr, 10) : undefined,
49
35
  channelSelector: sanitizeString(body["channelSelector"] ?? ""),
36
+ // The force-capture checkbox carries value="true" and has no hidden-input partner, so an unchecked box posts nothing at all. Testing for the exact "true"
37
+ // the markup emits keeps the parse and the markup a single contract - a value-less checkbox would post "on" and silently read as unchecked here.
38
+ forceCapture: body["forceCapture"] === "true",
50
39
  guideTitle: sanitizeString(body["guideTitle"] ?? ""),
51
40
  hdhrEnabled: body["hdhrEnabled"] !== "false",
52
41
  logoUrl: sanitizeString(body["logoUrl"] ?? ""),
@@ -58,15 +47,24 @@ function parseFormBody(body) {
58
47
  const tags = parseTagInput(sanitizeString(body["tags"] ?? ""));
59
48
  return { formValues, tags };
60
49
  }
50
+ /**
51
+ * Answers whether a profile name exists, consulting the single builtin lookup and the user's own profiles. Profile existence questions go through that lookup
52
+ * rather than the UI profile catalog, which omits the provider profiles a channel may legitimately reference.
53
+ * @param name - The profile name to test.
54
+ * @returns True when the name resolves to a builtin or a user-defined profile.
55
+ */
56
+ function isKnownProfile(name) {
57
+ return Boolean(getBuiltinProfile(name)) || (name in getUserProfiles());
58
+ }
61
59
  /**
62
60
  * Validates submitted form values and returns a map of field errors. An empty map means validation passed.
63
61
  * @param formValues - The normalized form values.
64
62
  * @param key - The channel key being created or edited.
65
63
  * @param isCreate - True for create (validate key), false for edit (key already exists).
66
- * @param validProfiles - List of valid profile names for the profile field check.
64
+ * @param isKnownProfile - Predicate answering whether the submitted profile name exists.
67
65
  * @returns Map of field name to error message. Empty when valid.
68
66
  */
69
- function validateFormValues(formValues, key, isCreate, validProfiles) {
67
+ function validateFormValues(formValues, key, isCreate, isKnownProfile) {
70
68
  const errors = {};
71
69
  // Channel number: re-derive the string representation since validateChannelNumber expects a string (it parses and range-checks internally).
72
70
  const channelNumberStr = (formValues.channelNumber !== undefined) ? String(formValues.channelNumber) : "";
@@ -88,7 +86,7 @@ function validateFormValues(formValues, key, isCreate, validProfiles) {
88
86
  if (urlError) {
89
87
  errors["url"] = urlError;
90
88
  }
91
- const profileError = validateChannelProfile(formValues.profile, validProfiles);
89
+ const profileError = validateChannelProfile(formValues.profile, isKnownProfile);
92
90
  if (profileError) {
93
91
  errors["profile"] = profileError;
94
92
  }
@@ -130,42 +128,12 @@ function buildUserChannelFromForm(formValues, tags) {
130
128
  if (!formValues.hdhrEnabled) {
131
129
  channel.hdhrEnabled = false;
132
130
  }
133
- return channel;
134
- }
135
- /* Field category sets used by handlePredefinedEdit to route per-field saves to the correct stored entry. Identity fields live on the canonical entry; binding
136
- * fields live on the active variant entry (when a non-canonical service is resolved) or the canonical entry (when canonical is active). Built once from the
137
- * type-system source of truth so renaming or adding a field surfaces here at compile time via the as-const tuples in types/channels.ts.
138
- */
139
- const IDENTITY_FIELD_SET = new Set(CHANNEL_IDENTITY_KEYS);
140
- const BINDING_FIELD_SET = new Set(CHANNEL_BINDING_KEYS);
141
- /**
142
- * Filters a delta to only the fields in the allowlist. Used to split a full delta into identity-only and binding-only halves so the routed save can write
143
- * each half to the correct stored entry.
144
- */
145
- function filterDeltaFields(delta, allowlist) {
146
- const filtered = {};
147
- for (const [field, value] of Object.entries(delta)) {
148
- if (allowlist.has(field)) {
149
- filtered[field] = value;
150
- }
151
- }
152
- return filtered;
153
- }
154
- /**
155
- * Applies the new variant-binding delta to an existing variant stored entry while preserving any non-binding fields the entry already carries (notably
156
- * canonicalKey). Removes any prior binding-field overrides that the new delta does not include - the new delta is the complete declaration of binding-field
157
- * customization for this save. Returns null when the resulting entry would be empty (no binding overrides, no preserved non-binding fields), signalling the
158
- * caller to delete the entry entirely.
159
- */
160
- function applyVariantDelta(existing, delta) {
161
- const next = { ...existing };
162
- // Strip prior binding-field overrides; the new delta is authoritative for this category.
163
- for (const field of CHANNEL_BINDING_KEYS) {
164
- Reflect.deleteProperty(next, field);
131
+ // Absent forceCapture means native extraction where eligible - the inverse polarity of hdhrEnabled above. Only persist when explicitly enabled. This builder
132
+ // backs both the create and the standalone-channel replace, and both write the record wholesale, so omitting the field is what clears a prior override.
133
+ if (formValues.forceCapture) {
134
+ channel.forceCapture = true;
165
135
  }
166
- // Apply the new binding-field overrides.
167
- Object.assign(next, delta);
168
- return (Object.keys(next).length > 0) ? next : null;
136
+ return channel;
169
137
  }
170
138
  /**
171
139
  * Handles PUT /config/channels/:key for a channel that has a predefined base. Routes the submitted form values to the correct stored entry per field category:
@@ -194,7 +162,6 @@ async function handlePredefinedEdit(key, predefinedBase, formValues, tags, res)
194
162
  }
195
163
  // Determine the active variant. Undefined when the canonical service is active (no override needed); otherwise the variant key the canonical resolves to.
196
164
  const activeVariantKey = (resolvedKey === key) ? undefined : resolvedKey;
197
- const predefinedVariant = activeVariantKey ? PREDEFINED_CHANNELS[activeVariantKey] : undefined;
198
165
  // Compute the canonical-relative delta. This determines the no-op-vs-canonical case (revert path) and supplies identity-field values for the canonical
199
166
  // entry. With a variant active, binding-field values in this delta are computed against canonical's binding (e.g., Cox URL) - those values are not what we
200
167
  // want to store; the variant-relative delta below has the correct binding-field comparisons.
@@ -217,15 +184,22 @@ async function handlePredefinedEdit(key, predefinedBase, formValues, tags, res)
217
184
  sendSuccess(res, { data: { key }, message: "No changes to save." });
218
185
  return;
219
186
  }
220
- // Sibling variant match: the submitted values match a different variant's predefined definition exactly. That's an implicit revert-to-that-variant -
221
- // delete the canonical override and switch the service selection. Variant-stored overrides on the active variant are also cleared since the user is
222
- // explicitly reverting to a sibling.
223
- const matchedVariantKey = isUserChannel(key) ? findMatchingVariant(key, formValues, tags) : undefined;
187
+ /* Sibling variant match: the submitted values match a different variant's predefined definition exactly. That is an implicit revert to that variant - switch
188
+ * the service selection to it and clear every stored override that could still shadow it, so the resolved channel equals exactly what the user just saved:
189
+ * the canonical override, the matched variant's own override, and (when it differs) the previously-active variant's override.
190
+ *
191
+ * The check runs unconditionally because findMatchingVariant self-guards - it returns undefined when the key has no service group - and because full-value
192
+ * matching is strictly the better answer than the URL-domain inference further below: it compares every submitted field against the variant's pure predefined
193
+ * data, so it picks the right sibling even when several siblings share a domain, which domain inference cannot tell apart.
194
+ */
195
+ const matchedVariantKey = findMatchingVariant(key, formValues, tags);
224
196
  if (matchedVariantKey) {
225
197
  let variantRevertHint = "";
226
198
  await mutateChannels((data) => {
227
199
  variantRevertHint = playlistHintForStored(data.channels[key]);
228
200
  Reflect.deleteProperty(data.channels, key);
201
+ // The matched variant presents its pure predefined data after the revert, so any override stored on it would resurface values the user just cleared.
202
+ Reflect.deleteProperty(data.channels, matchedVariantKey);
229
203
  // Clear any stored override on the previously-active variant since the user is switching away from it.
230
204
  if (activeVariantKey && (activeVariantKey !== matchedVariantKey)) {
231
205
  Reflect.deleteProperty(data.channels, activeVariantKey);
@@ -236,14 +210,27 @@ async function handlePredefinedEdit(key, predefinedBase, formValues, tags, res)
236
210
  sendSuccess(res, { affectedKeys: [key], data: { key }, message: "Channel '" + key + "' reverted to defaults." + variantRevertHint });
237
211
  return;
238
212
  }
239
- // Real edit. Route per-field to the correct stored entry. With a variant active: identity fields go to canonical, binding fields go to variant (computed
240
- // against the predefined variant's binding values, since that's the right baseline for the variant entry). Without a variant: everything goes to canonical
241
- // as before.
242
- if (activeVariantKey && predefinedVariant) {
243
- const { delta: variantRelativeDelta } = computePredefinedDelta(predefinedVariant, formValues, tags);
244
- const canonicalEntryDelta = filterDeltaFields(canonicalRelativeDelta, IDENTITY_FIELD_SET);
245
- const variantEntryDelta = filterDeltaFields(variantRelativeDelta, BINDING_FIELD_SET);
246
- await mutateChannels((data) => {
213
+ // Real edit. Resolve the target service variant for binding-field routing: an explicitly-selected variant takes precedence; otherwise infer from the
214
+ // submitted URL's domain via inferTargetVariant (the SSOT helper used by both the producer here and the storage normalizer). When a target resolves, route
215
+ // per-field - identity to canonical, binding to target variant - so the canonical never carries wholesale duplication of a sibling's binding. When no
216
+ // sibling matches, the URL is genuinely custom and the full delta lands on the canonical (the existing Custom-URL path).
217
+ await mutateChannels((data) => {
218
+ const targetVariantKey = activeVariantKey ?? inferTargetVariant(key, formValues.url, data.channels);
219
+ const targetPredefinedVariant = targetVariantKey ? PREDEFINED_CHANNELS[targetVariantKey] : undefined;
220
+ if (targetVariantKey && targetPredefinedVariant) {
221
+ const { delta: variantRelativeDelta } = computePredefinedDelta(targetPredefinedVariant, formValues, tags);
222
+ const canonicalEntryDelta = pickIdentityFields(canonicalRelativeDelta);
223
+ /* Variant-binding delta semantics depend on how the target variant was resolved:
224
+ * - Explicit (activeVariantKey set): the form was pre-populated with the variant's data, so any binding-field value the user submits is authoritative
225
+ * (including explicit clears). Take all binding fields from variantRelativeDelta directly via pickBindingFields.
226
+ * - URL-inferred (no activeVariantKey): the form was pre-populated with the canonical's data (which has different binding values from the inferred
227
+ * variant). Binding fields the user did NOT explicitly change relative to the canonical must NOT be propagated to the variant - otherwise an unset
228
+ * form field becomes an unintended "clear" against the variant's predefined defaults, silently destroying tuning data. intersectBindingDeltas
229
+ * restricts to binding fields that the user actually changed (present in canonicalRelativeDelta) using the variant-relative values.
230
+ */
231
+ const variantEntryDelta = (targetVariantKey === activeVariantKey) ?
232
+ pickBindingFields(variantRelativeDelta) :
233
+ intersectBindingDeltas(variantRelativeDelta, canonicalRelativeDelta);
247
234
  // Canonical entry: replace with identity-only delta. Empty delta -> remove the entry.
248
235
  if (Object.keys(canonicalEntryDelta).length > 0) {
249
236
  data.channels[key] = canonicalEntryDelta;
@@ -251,24 +238,27 @@ async function handlePredefinedEdit(key, predefinedBase, formValues, tags, res)
251
238
  else {
252
239
  Reflect.deleteProperty(data.channels, key);
253
240
  }
254
- // Variant entry: merge binding-only delta with the entry's preserved non-binding fields (notably canonicalKey). Empty result -> remove the entry.
255
- const next = applyVariantDelta(data.channels[activeVariantKey], variantEntryDelta);
241
+ // Variant entry: replaceVariantBinding (authoritative-replace semantic) wipes any prior binding fields on the variant entry and applies the new delta -
242
+ // the user's submission is authoritative for the variant's binding state. Non-binding fields (notably canonicalKey) on the existing entry are preserved.
243
+ // Returns null when the result would be empty, signalling deletion.
244
+ const next = replaceVariantBinding(data.channels[targetVariantKey], variantEntryDelta);
256
245
  if (next) {
257
- data.channels[activeVariantKey] = next;
246
+ data.channels[targetVariantKey] = next;
258
247
  }
259
248
  else {
260
- Reflect.deleteProperty(data.channels, activeVariantKey);
249
+ Reflect.deleteProperty(data.channels, targetVariantKey);
261
250
  }
262
- });
263
- }
264
- else {
265
- // No variant active - everything routes to canonical. The service selection is cleared so the dropdown reflects the "Custom" state if the user has now
266
- // diverged from any sibling variant.
267
- await mutateChannels((data) => {
251
+ // Record the redirect when the target was inferred from URL. When it was the explicitly-active variant, serviceSelections already points at it.
252
+ if (targetVariantKey !== activeVariantKey) {
253
+ data.serviceSelections[key] = targetVariantKey;
254
+ }
255
+ }
256
+ else {
257
+ // Truly custom URL - no sibling matches. Full delta lands on the canonical and serviceSelections is cleared so the dropdown reflects "Custom".
268
258
  data.channels[key] = canonicalRelativeDelta;
269
259
  Reflect.deleteProperty(data.serviceSelections, key);
270
- });
271
- }
260
+ }
261
+ });
272
262
  LOG.info("User channel '%s' updated.", key);
273
263
  if (formValues.stationId) {
274
264
  updateChannelLogo(formValues.name || key, formValues.stationId);
@@ -293,8 +283,7 @@ export function registerCrudRoutes(app) {
293
283
  return;
294
284
  }
295
285
  const { formValues, tags } = parseFormBody(body);
296
- const profiles = getProfiles();
297
- const errors = validateFormValues(formValues, key, true, profiles.map((p) => p.name));
286
+ const errors = validateFormValues(formValues, key, true, isKnownProfile);
298
287
  if (Object.keys(errors).length > 0) {
299
288
  sendFormErrors(res, errors);
300
289
  return;
@@ -325,8 +314,7 @@ export function registerCrudRoutes(app) {
325
314
  }
326
315
  const body = req.body;
327
316
  const { formValues, tags } = parseFormBody(body);
328
- const profiles = getProfiles();
329
- const errors = validateFormValues(formValues, key, false, profiles.map((p) => p.name));
317
+ const errors = validateFormValues(formValues, key, false, isKnownProfile);
330
318
  if (Object.keys(errors).length > 0) {
331
319
  sendFormErrors(res, errors);
332
320
  return;
@@ -413,8 +401,8 @@ export function registerCrudRoutes(app) {
413
401
  message: "Channel '" + key + "' reverted to defaults." + playlistHintForStored(clearedEntry)
414
402
  });
415
403
  }));
416
- // PATCH /config/channels/:key - Partial update from inline cell edits. Accepts any subset of { channelNumber, hdhrEnabled, stationId, tags }. Each field is typed:
417
- // a typed value to set, null to clear.
404
+ // PATCH /config/channels/:key - Partial update from inline cell edits. Accepts exactly one of { channelNumber, hdhrEnabled, stationId, tags }, since the inline
405
+ // editors update one cell at a time. Each field is typed: a typed value to set, null to clear.
418
406
  app.patch("/config/channels/:key", route("save channel", async (req, res) => {
419
407
  const key = req.params.key?.trim();
420
408
  if (!key) {
@@ -450,10 +438,12 @@ export function registerCrudRoutes(app) {
450
438
  }
451
439
  }
452
440
  await mutateChannels((data) => {
453
- // The inline-edit endpoint writes scalar override fields that all align with ChannelDelta's nullable shape. Reuse the stored entry when present so
454
- // existing fields survive, otherwise start from an empty delta. mutateChannels() persists the resulting record either way.
441
+ // The inline-edit endpoint writes override fields drawn from INLINE_EDIT_FIELDS that all align with ChannelDelta's nullable shape. Reuse the stored entry
442
+ // when present so existing fields survive, otherwise start from an empty delta. mutateChannels() persists the resulting record either way.
455
443
  const stored = data.channels[key] ?? {};
456
444
  const delta = stored;
445
+ // Each case below casts value to the ChannelDelta type of the field it assigns. The cast is safe because the switch discriminates on the same field
446
+ // that determined body[field]'s actual runtime type, mirroring the presentFields narrowing that established field itself above.
457
447
  switch (field) {
458
448
  case "channelNumber": {
459
449
  delta.channelNumber = (value === null) ? null : value;
@@ -470,7 +460,7 @@ export function registerCrudRoutes(app) {
470
460
  }
471
461
  case "tags": {
472
462
  const nextTags = (value === null) ? [] : value;
473
- // Sort before storing so the normalizer's JSON.stringify equality check (used to collapse redundant deltas) sees a canonical order regardless of the
463
+ // Sort before storing so the normalizer's isDeepStrictEqual comparison (used to collapse redundant deltas) sees a canonical order regardless of the
474
464
  // order the client submitted the array in.
475
465
  delta.tags = (nextTags.length > 0) ? sortTags(nextTags) : null;
476
466
  break;
@@ -479,7 +469,8 @@ export function registerCrudRoutes(app) {
479
469
  data.channels[key] = stored;
480
470
  });
481
471
  const fieldLabel = INLINE_EDIT_LABELS[field];
482
- // Display value for the log line. hdhrEnabled is rendered as included/excluded. Other fields show the value or "(cleared)".
472
+ // hdhrEnabled gets its own branch below because its cleared value (null) displays the same as its explicit true ("included"); it never falls into the
473
+ // generic null/empty-string/empty-array "(cleared)" case that the other fields share.
483
474
  let displayValue;
484
475
  if (field === "hdhrEnabled") {
485
476
  displayValue = (value === false) ? "excluded" : "included";
@@ -491,8 +482,9 @@ export function registerCrudRoutes(app) {
491
482
  displayValue = String(value);
492
483
  }
493
484
  LOG.info("Inline edit: %s for '%s' set to '%s'.", fieldLabel, key, displayValue);
494
- // hdhrEnabled changes don't affect the M3U playlist (HDHomeRun is a separate discovery path); every other inline edit may affect it.
495
- const applyPlaylistHint = (field !== "hdhrEnabled");
485
+ // Membership in the playlist field list decides the hint: hdhrEnabled is the one inline-editable field outside it, since HDHomeRun is a separate discovery
486
+ // path. .some() rather than .includes() because the tuple's element union does not admit "hdhrEnabled", which .includes() would reject without a cast.
487
+ const applyPlaylistHint = M3U_FIELDS.some((f) => f === field);
496
488
  sendSuccess(res, {
497
489
  affectedKeys: [key],
498
490
  data: { key },
@@ -1 +1 @@
1
- {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/crud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/crud.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ import type { Express } from "express";
4
4
  * @param app - The Express application.
5
5
  */
6
6
  export declare function registerImportExportRoutes(app: Express): void;
7
+ //# sourceMappingURL=importExport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importExport.d.ts","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/importExport.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAa1D;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA2L7D"}
@@ -1,8 +1,9 @@
1
1
  import { LOG, generateChannelKey, parseM3U, sanitizeString, stringifySorted } from "../../../../utils/index.js";
2
+ import { getBuiltinProfile, getProfiles } from "../../../../config/profiles.js";
2
3
  import { getChannelListing, getUserChannels, mutateChannels, resolveStoredChannel, validateChannelName, validateChannelUrl, validateImportedChannels } from "../../../../config/userChannels.js";
3
4
  import { sendSuccess, sendValidationError } from "../../http/envelope.js";
4
5
  import { buildChannelTablePatch } from "../table.js";
5
- import { getProfiles } from "../../../../config/profiles.js";
6
+ import { getUserProfiles } from "../../../../config/userProfiles.js";
6
7
  import { route } from "../http/handler.js";
7
8
  /**
8
9
  * Registers the import/export endpoints on the Express application.
@@ -24,8 +25,10 @@ export function registerImportExportRoutes(app) {
24
25
  // POST /config/channels/import - Import channels from JSON, replacing all existing user channels.
25
26
  app.post("/config/channels/import", route("import channels", async (req, res) => {
26
27
  const rawData = req.body;
27
- const validProfiles = getProfiles().map((p) => p.name);
28
- const validationResult = validateImportedChannels(rawData, validProfiles);
28
+ // A channel may name any profile that exists: a builtin from any source through the single lookup, or one of the user's own. Profile existence questions go
29
+ // through that lookup rather than the UI profile catalog, which omits the provider profiles a channel may legitimately reference.
30
+ const isKnownProfile = (name) => Boolean(getBuiltinProfile(name)) || (name in getUserProfiles());
31
+ const validationResult = validateImportedChannels(rawData, isKnownProfile);
29
32
  if (!validationResult.valid) {
30
33
  sendValidationError(res, "Validation errors:\n" + validationResult.errors.join("\n"));
31
34
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"importExport.js","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/importExport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"importExport.js","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/importExport.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ import type { Express } from "express";
4
4
  * @param app - The Express application.
5
5
  */
6
6
  export declare function registerPredefinedRoutes(app: Express): void;
7
+ //# sourceMappingURL=predefined.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predefined.d.ts","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/predefined.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAS1D;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA2G3D"}
@@ -4,3 +4,4 @@ import type { Express } from "express";
4
4
  * @param app - The Express application.
5
5
  */
6
6
  export declare function registerPrefsRoutes(app: Express): void;
7
+ //# sourceMappingURL=prefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefs.d.ts","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/prefs.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAQ1D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA6EtD"}
@@ -48,7 +48,8 @@ export function registerPrefsRoutes(app) {
48
48
  sendSuccess(res);
49
49
  }));
50
50
  // POST /config/channels/setup-completed - Mark the Service Setup flow as completed. Called when the wizard finishes or the user explicitly skips. Returns a
51
- // counts-only patch so the client can refresh summary counters after the wizard's browse step may have added channels and changed the service filter.
51
+ // counts-only patch so the client can refresh summary counters after the wizard's service-selection step changed the service filter (selecting new services
52
+ // may reveal previously-filtered channels).
52
53
  app.post("/config/channels/setup-completed", route("save setup state", async (_req, res) => {
53
54
  await markSetupCompleted();
54
55
  const { counts, scopeCounts } = buildChannelTableState();
@@ -1 +1 @@
1
- {"version":3,"file":"prefs.js","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/prefs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefs.js","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/prefs.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAE9C,yJAAyJ;IACzJ,mIAAmI;IACnI,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAEnH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAiF,CAAC;QAEnG,IAAG,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAErC,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBAEvC,mBAAmB,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;gBAE7D,OAAO;YACT,CAAC;YAED,KAAI,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAErC,IAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAEpC,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,GAAG,GAAG,CAAC,CAAC;oBAEnD,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,SAA6B,CAAC,EAAE,CAAC;YAEhG,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAElE,OAAO;QACT,CAAC;QAED,IAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,EAAE,CAAC;YAE3G,mBAAmB,CAAC,GAAG,EAAE,4CAA4C,CAAC,CAAC;YAEvE,OAAO;QACT,CAAC;QAED,0JAA0J;QAC1J,yEAAyE;QACzE,MAAM,MAAM,GAAoD,EAAE,CAAC;QAEnE,IAAG,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAEpC,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC;QAED,IAAG,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAEhC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAA6B,CAAC;QAC/D,CAAC;QAED,IAAG,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAErC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC9C,CAAC;QAED,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAExC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC,CAAC;IAEJ,4JAA4J;IAC5J,4JAA4J;IAC5J,4CAA4C;IAC5C,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAa,EAAE,GAAa,EAAE,EAAE;QAE5G,MAAM,kBAAkB,EAAE,CAAC;QAE3B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,sBAAsB,EAAE,CAAC;QAEzD,WAAW,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { Express } from "express";
2
2
  /**
3
- * Registers the service-selection and service-filter endpoints on the Express application.
3
+ * Registers the service-selection, service-filter, and bulk service-assignment endpoints on the Express application.
4
4
  * @param app - The Express application.
5
5
  */
6
6
  export declare function registerServiceRoutes(app: Express): void;
7
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/routes/config/channels/endpoints/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAU1D;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAyNxD"}
@@ -5,7 +5,7 @@ import { buildChannelTableState } from "../table.js";
5
5
  import { getChannelListing } from "../../../../config/userChannels.js";
6
6
  import { route } from "../http/handler.js";
7
7
  /**
8
- * Registers the service-selection and service-filter endpoints on the Express application.
8
+ * Registers the service-selection, service-filter, and bulk service-assignment endpoints on the Express application.
9
9
  * @param app - The Express application.
10
10
  */
11
11
  export function registerServiceRoutes(app) {
@@ -116,6 +116,8 @@ export function registerServiceRoutes(app) {
116
116
  const updates = {};
117
117
  for (const [key, variantKey] of Object.entries(previousSelections)) {
118
118
  const group = getServiceGroup(key);
119
+ // The channel may have been removed or its service group may have collapsed since the bulk-assign snapshot was taken (e.g., the channel was deleted or
120
+ // its variants were edited down to a single service). Skip it rather than error, since the rest of the restore should still proceed.
119
121
  if (!group) {
120
122
  continue;
121
123
  }