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,4 +1,4 @@
1
- import { getChannelListing, mutateChannels } from "./userChannels.js";
1
+ import { getChannelListing, mutateChannels, validateChannelUrl } from "./userChannels.js";
2
2
  import { getUserDomains, getUserProfiles, mutateProfiles, normalizeLegacyProfileFlags, validateImportedProfiles } from "./userProfiles.js";
3
3
  import { sanitizeString } from "../utils/index.js";
4
4
  /* Service packs bundle a profile, domain mapping(s), and optionally channels into a single JSON file for distribution. On import, the contents are validated
@@ -7,11 +7,14 @@ import { sanitizeString } from "../utils/index.js";
7
7
  // Current service pack format version.
8
8
  const CURRENT_VERSION = 1;
9
9
  /**
10
- * Parses and validates a raw service pack import. Checks the version field, validates profiles and domains via the userProfiles validation functions.
10
+ * Parses and validates a raw service pack import. Checks the version field, validates profiles and domains via the userProfiles validation functions, validates
11
+ * channel structure (each channel requires 'name' and 'url'), and sanitizes the pack name and channel string fields to strip non-printable characters.
11
12
  * @param data - The raw JSON data to parse.
13
+ * @param options - Parse options. skipChannels leaves the pack's channels out of both the validation and the result, matching the option of the same name on
14
+ * importServicePack so one name means one thing across both stages of an import.
12
15
  * @returns Parse result with validated pack or errors.
13
16
  */
14
- export function parseServicePack(data) {
17
+ export function parseServicePack(data, options = {}) {
15
18
  const errors = [];
16
19
  if ((typeof data !== "object") || (data === null) || Array.isArray(data)) {
17
20
  return { errors: ["Invalid format: expected a JSON object."] };
@@ -48,9 +51,14 @@ export function parseServicePack(data) {
48
51
  if (!validationResult.valid) {
49
52
  return { errors: validationResult.errors };
50
53
  }
51
- // Validate channels if present using basic checks (full channel validation happens on import).
54
+ /* Validate channels if present using basic checks (full channel validation happens on import).
55
+ *
56
+ * A caller that asks to skip channels gets the whole block skipped, not merely the validation: channels nobody is importing are not judged, so a pack someone
57
+ * wants only the profiles from is never held back by a channel they never asked for. The result carries no channels either, which keeps "parsed with channels
58
+ * skipped" from producing a pack whose channels were never checked - a later import without the flag would otherwise take unvalidated data.
59
+ */
52
60
  const channels = {};
53
- if (raw["channels"]) {
61
+ if (!options.skipChannels && raw["channels"]) {
54
62
  if ((typeof raw["channels"] !== "object") || Array.isArray(raw["channels"])) {
55
63
  errors.push("Invalid 'channels' field: expected an object.");
56
64
  }
@@ -60,9 +68,23 @@ export function parseServicePack(data) {
60
68
  if ((typeof value === "object") && (value !== null) && !Array.isArray(value)) {
61
69
  const ch = value;
62
70
  if ((typeof ch["url"] === "string") && (typeof ch["name"] === "string")) {
63
- // Sanitize channel string fields to strip non-printable characters before storing.
71
+ // Sanitize channel string fields to strip non-printable characters before storing. The URL's cleaned value is held in a local so the check below
72
+ // judges exactly the text that gets stored.
73
+ const sanitizedUrl = sanitizeString(ch["url"]);
64
74
  ch["name"] = sanitizeString(ch["name"]);
65
- ch["url"] = sanitizeString(ch["url"]);
75
+ ch["url"] = sanitizedUrl;
76
+ /* Judge the sanitized value, matching the order every other channel ingress uses, so a padded or non-printable-bearing URL is cleaned before it is
77
+ * measured against the rule. The rule itself is the shared channel-URL check rather than a copy of it.
78
+ *
79
+ * Note the failure granularity here, which differs from the sibling ingresses on purpose. errors is function-scoped and parseServicePack returns
80
+ * only the errors once any are present, so a single bad channel URL rejects the whole pack - profiles, domains, and every valid channel included.
81
+ * importExport.ts and userChannels.ts skip a bad channel and keep going. This file already rejects the whole pack for a missing name or url, and a
82
+ * service pack is a curated artifact imported as a unit, so all-or-nothing is the behavior that fits it.
83
+ */
84
+ const urlError = validateChannelUrl(sanitizedUrl);
85
+ if (urlError) {
86
+ errors.push("Channel '" + key + "': " + urlError);
87
+ }
66
88
  if (typeof ch["channelSelector"] === "string") {
67
89
  ch["channelSelector"] = sanitizeString(ch["channelSelector"]);
68
90
  }
@@ -97,6 +119,21 @@ export function parseServicePack(data) {
97
119
  }
98
120
  return { errors: [], pack };
99
121
  }
122
+ /**
123
+ * Counts how many keys in the incoming record are net-new relative to the existing record - that is, keys present in incoming but absent from existing. Overwrites of
124
+ * already-present keys are not counted. This is the pure kernel of the import summary's net-new accounting: importServicePack invokes it inside each store mutation
125
+ * against the live pre-mutation state, which is the single source of truth for what already existed and avoids a separate read round-trip with its attendant
126
+ * time-of-check-to-time-of-use window.
127
+ * @param incoming - The record being merged in (e.g., the pack's profiles, domains, or channels).
128
+ * @param existing - The record being merged into (e.g., the store's current profiles, domains, or channels).
129
+ * @returns The number of keys in incoming that do not already exist in existing.
130
+ */
131
+ export function countNewKeys(incoming, existing) {
132
+ // We test own-property membership with Object.hasOwn rather than the `in` operator. Service-pack keys are user-controllable strings parsed from JSON, so a key like
133
+ // "constructor" or "toString" arriving in a pack would be falsely reported as pre-existing by `in` (which walks the prototype chain). Object.hasOwn counts only keys
134
+ // that are genuine entries in the existing record, which is exactly the net-new semantic we want.
135
+ return Object.keys(incoming).filter((key) => !Object.hasOwn(existing, key)).length;
136
+ }
100
137
  /**
101
138
  * Imports a validated service pack by writing its contents to profiles.json and optionally channels.json. Returns a summary of what was added.
102
139
  * @param pack - The validated service pack to import.
@@ -105,10 +142,14 @@ export function parseServicePack(data) {
105
142
  */
106
143
  export async function importServicePack(pack, options = {}) {
107
144
  const errors = [];
108
- const profilesAdded = Object.keys(pack.profiles).length;
109
- const domainsAdded = Object.keys(pack.domains ?? {}).length;
145
+ // We report net-new counts, not the raw pack size, so that re-importing a pack that overwrites existing keys reports zero additions rather than over-counting. The
146
+ // diff is computed inside each mutate callback against the live store state via countNewKeys, before Object.assign overwrites the matching keys.
147
+ let profilesAdded = 0;
148
+ let domainsAdded = 0;
110
149
  try {
111
150
  await mutateProfiles((data) => {
151
+ profilesAdded = countNewKeys(pack.profiles, data.profiles);
152
+ domainsAdded = countNewKeys(pack.domains ?? {}, data.domains);
112
153
  Object.assign(data.profiles, pack.profiles);
113
154
  Object.assign(data.domains, pack.domains ?? {});
114
155
  });
@@ -124,9 +165,9 @@ export async function importServicePack(pack, options = {}) {
124
165
  const packChannels = pack.channels;
125
166
  try {
126
167
  await mutateChannels((data) => {
168
+ channelsAdded = countNewKeys(packChannels, data.channels);
127
169
  Object.assign(data.channels, packChannels);
128
170
  });
129
- channelsAdded = Object.keys(packChannels).length;
130
171
  }
131
172
  catch (error) {
132
173
  errors.push("Failed to save channels: " + ((error instanceof Error) ? error.message : String(error)));
@@ -185,8 +226,9 @@ export function exportServicePack(profileKeys, options = {}) {
185
226
  const channels = {};
186
227
  for (const entry of listing) {
187
228
  if (entry.channel.profile && keySet.has(entry.channel.profile)) {
188
- // Strip hdhrEnabled from exported channels - it's a local deployment preference, not a service configuration property.
229
+ // Strip forceCapture and hdhrEnabled from exported channels - both are local deployment preferences, not service configuration properties.
189
230
  const exportChannel = { ...entry.channel };
231
+ Reflect.deleteProperty(exportChannel, "forceCapture");
190
232
  Reflect.deleteProperty(exportChannel, "hdhrEnabled");
191
233
  channels[entry.key] = exportChannel;
192
234
  }
@@ -1 +1 @@
1
- {"version":3,"file":"servicePacks.js","sourceRoot":"","sources":["../../src/config/servicePacks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"servicePacks.js","sourceRoot":"","sources":["../../src/config/servicePacks.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import type { ChannelSortField, ResolvedChannel, ServiceGroup, SortDirection } f
2
2
  export declare const PREDEFINED_SUFFIX = ":predefined";
3
3
  /**
4
4
  * Gets the service tag for a channel key. For channels in a service group, reads the pre-computed tag from the group variant entry (computed at group-building
5
- * time by buildServiceGroups). For standalone channels not in any group, derives the tag from the channel's URL domain. This function should not be called with
6
- * :predefined synthetic keys - those only exist inside service groups and their tags are available via the group's variant entries.
5
+ * time by buildServiceGroups). For standalone channels not in any group, derives the tag from the channel's URL domain. Callers normally pass canonical or plain
6
+ * variant keys, but :predefined synthetic keys are also resolved: the suffix is stripped to locate the group and the matching variant is found by either the
7
+ * original :predefined key or the stripped key.
7
8
  * @param key - The channel key.
8
9
  * @returns The service tag string.
9
10
  */
@@ -38,8 +39,8 @@ export declare function getAllServiceTags(): {
38
39
  */
39
40
  export declare function getEnabledServices(): string[];
40
41
  /**
41
- * Hydrates the in-memory enabled-services cache from a serialized list. Called by initializeUserChannels at startup with the validated tags list and by the
42
- * consistency probe's auto-fix after stripping unknown tags. Never called by route code directly - mutations go through mutateEnabledServices, which is the
42
+ * Hydrates the in-memory enabled-services cache from a serialized list. Called by initializeUserChannels at startup with the validated tags list. Never called
43
+ * by route code directly - mutations go through mutateEnabledServices, which is the
43
44
  * single async path that updates both the cache and the persisted file in one atomic operation.
44
45
  * @param tags - The service tags to load into the cache. Empty array means "no filter" (all services shown).
45
46
  */
@@ -95,17 +96,17 @@ export declare function findPredefinedByDomain(url: string): PredefinedChannelSu
95
96
  */
96
97
  export declare function getPredefinedDomainMap(): Record<string, PredefinedChannelSummary[]>;
97
98
  /**
98
- * Resolves a URL to a friendly service display name. Checks built-in DOMAIN_CONFIG first for a stable, well-known service name, then falls back to
99
+ * Resolves a URL to a friendly service display name. Checks builtin DOMAIN_CONFIG first for a stable, well-known service name, then falls back to
99
100
  * getDomainConfig() which includes user domain mappings. This ordering prevents user domain overrides from corrupting display labels for predefined channel
100
- * variants - a user mapping a built-in domain to a custom profile should not rename every service dropdown entry that uses that domain.
101
+ * variants - a user mapping a builtin domain to a custom profile should not rename every service dropdown entry that uses that domain.
101
102
  * @param url - The URL to resolve a service display name for.
102
103
  * @returns The service display name, or the concise domain if no service name is configured.
103
104
  */
104
105
  export declare function getServiceDisplayName(url: string): string;
105
106
  /**
106
107
  * Resolves the service display label for a channel. Checks in order: explicit `service` field on the channel, the channel's explicit profile resolved via
107
- * user domain mappings, then URL-based built-in display name. This ensures channels assigned to user-defined profiles show the profile's service name rather
108
- * than the built-in name for the URL domain.
108
+ * user domain mappings, then URL-based builtin display name. This ensures channels assigned to user-defined profiles show the profile's service name rather
109
+ * than the builtin name for the URL domain.
109
110
  * @param channel - The channel to resolve a label for.
110
111
  * @returns The service display label.
111
112
  */
@@ -122,7 +123,7 @@ export declare const VALID_SORT_FIELDS: Set<ChannelSortField>;
122
123
  */
123
124
  export declare function getChannelSortKey(channel: ResolvedChannel, key: string, field: ChannelSortField): string;
124
125
  /**
125
- * Compares two channels for sorting by the specified field and direction with a built-in channel name tiebreaker. The tiebreaker is always ascending so that rows
126
+ * Compares two channels for sorting by the specified field and direction with a builtin channel name tiebreaker. The tiebreaker is always ascending so that rows
126
127
  * within each group maintain a consistent alphabetical order regardless of the primary sort direction. This is the single comparator for all sort sites - server HTML
127
128
  * render, client re-sort, and M3U playlist - to prevent ordering divergence.
128
129
  * @param channelA - First channel definition.
@@ -198,16 +199,20 @@ export declare function setServiceSelection(canonicalKey: string, serviceKey: st
198
199
  */
199
200
  export declare function mutateServiceSelections(updates: Record<string, string>): Promise<void>;
200
201
  /**
201
- * Resolves a canonical channel key to the actual channel key based on user selection. If the user has selected a specific service for this channel, returns that
202
- * service's key. Otherwise returns the canonical key (default service). When the service filter is active, falls back to the first enabled variant if the stored
203
- * selection's service is filtered out.
202
+ * Resolves a canonical channel key to the actual channel key based on the current service selection. If a specific service is selected for this channel, returns
203
+ * that service's key; otherwise the canonical key (default service). When the service filter is active, falls back to the first enabled variant if the selected
204
+ * service is filtered out.
204
205
  *
205
- * Pure resolver with no side effects. Stale selection cleanup belongs to buildServiceGroups(), which validates all stored selections against the rebuilt variant
206
- * structure on startup and after runtime channel mutations. Reads are safe to call from any context, including inside other mutations.
206
+ * The selection source is injected via getSelection, defaulting to the committed module cache. Stale-selection cleanup belongs to buildServiceGroups(), which
207
+ * validates stored selections against the rebuilt variant structure on startup and after runtime mutations. A caller resolving inside a mutation that has already
208
+ * changed the selection must pass a lookup over its draft (for example (key) => data.serviceSelections[key]); otherwise the resolution reflects the stale committed
209
+ * cache and, for instance, clearing a selection mid-transaction would resolve back to the just-removed variant.
207
210
  * @param canonicalKey - The canonical channel key.
211
+ * @param getSelection - Looks up the stored selection for a canonical key. Defaults to the committed module cache; pass a draft lookup when resolving inside a
212
+ * mutation that has changed the selection.
208
213
  * @returns The resolved service key to use for streaming.
209
214
  */
210
- export declare function resolveServiceKey(canonicalKey: string): string;
215
+ export declare function resolveServiceKey(canonicalKey: string, getSelection?: (canonicalKey: string) => string | undefined): string;
211
216
  /**
212
217
  * Gets a channel with inheritance applied. Variant inheritance is resolved at load time by resolveStoredChannel in userChannels.ts - entries in channelsRef
213
218
  * are already fully merged with their canonical (variant values win when set, canonical fills in the rest). This function is a thin accessor that also
@@ -226,3 +231,4 @@ export declare function getResolvedChannel(key: string): ResolvedChannel | undef
226
231
  */
227
232
  export declare function resolvePredefinedVariant(key: string): ResolvedChannel | undefined;
228
233
  export {};
234
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/config/services.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ let enabledServices = [];
50
50
  */
51
51
  function resolveServiceTag(channel) {
52
52
  // If the channel specifies a user-defined profile, use that profile's serviceTag rather than deriving from the URL. This ensures channels with explicit profile
53
- // assignments are grouped under the correct service filter even when their URL domain has a different built-in serviceTag.
53
+ // assignments are grouped under the correct service filter even when their URL domain has a different builtin serviceTag.
54
54
  if (channel.profile) {
55
55
  const profileService = resolveUserProfileService(channel.profile);
56
56
  if (profileService?.serviceTag) {
@@ -62,8 +62,9 @@ function resolveServiceTag(channel) {
62
62
  }
63
63
  /**
64
64
  * Gets the service tag for a channel key. For channels in a service group, reads the pre-computed tag from the group variant entry (computed at group-building
65
- * time by buildServiceGroups). For standalone channels not in any group, derives the tag from the channel's URL domain. This function should not be called with
66
- * :predefined synthetic keys - those only exist inside service groups and their tags are available via the group's variant entries.
65
+ * time by buildServiceGroups). For standalone channels not in any group, derives the tag from the channel's URL domain. Callers normally pass canonical or plain
66
+ * variant keys, but :predefined synthetic keys are also resolved: the suffix is stripped to locate the group and the matching variant is found by either the
67
+ * original :predefined key or the stripped key.
67
68
  * @param key - The channel key.
68
69
  * @returns The service tag string.
69
70
  */
@@ -109,7 +110,8 @@ export function getChannelServiceTags(canonicalKey) {
109
110
  if (group) {
110
111
  const tags = new Set();
111
112
  for (const variant of group.variants) {
112
- // Skip predefined suffix variants - they share the canonical's tag (but derived from the predefined URL, which may differ from the user override).
113
+ // Skip predefined suffix variants - the :predefined variant represents the original service being reverted to, not an independently offered
114
+ // service, so its tag is excluded even when it differs from the canonical's current tag.
113
115
  if (variant.key.endsWith(PREDEFINED_SUFFIX)) {
114
116
  continue;
115
117
  }
@@ -128,7 +130,7 @@ export function getChannelServiceTags(canonicalKey) {
128
130
  export function getAllServiceTags() {
129
131
  const tags = new Set();
130
132
  // Scan all channels (not just grouped ones) to find all service tags.
131
- const allKeys = new Set([...Object.keys(channelsRef), ...Object.keys(PREDEFINED_CHANNELS)]);
133
+ const allKeys = new Set(Object.keys(channelsRef)).union(new Set(Object.keys(PREDEFINED_CHANNELS)));
132
134
  for (const key of allKeys) {
133
135
  // Skip variant keys - they are covered by getChannelServiceTags() on the canonical.
134
136
  const group = serviceGroups.get(key);
@@ -155,7 +157,7 @@ export function getAllServiceTags() {
155
157
  tagMeta.set(config.serviceTag, { displayName: config.service, domain, iconUrl: config.iconUrl });
156
158
  }
157
159
  }
158
- // Scan user domain mappings for metadata not covered by built-in DOMAIN_CONFIG.
160
+ // Scan user domain mappings for metadata not covered by builtin DOMAIN_CONFIG.
159
161
  for (const [domain, config] of Object.entries(userDomains)) {
160
162
  if (config.serviceTag && config.service && !tagMeta.has(config.serviceTag)) {
161
163
  tagMeta.set(config.serviceTag, { displayName: config.service, domain, iconUrl: config.iconUrl });
@@ -187,8 +189,8 @@ export function getEnabledServices() {
187
189
  return [...enabledServices];
188
190
  }
189
191
  /**
190
- * Hydrates the in-memory enabled-services cache from a serialized list. Called by initializeUserChannels at startup with the validated tags list and by the
191
- * consistency probe's auto-fix after stripping unknown tags. Never called by route code directly - mutations go through mutateEnabledServices, which is the
192
+ * Hydrates the in-memory enabled-services cache from a serialized list. Called by initializeUserChannels at startup with the validated tags list. Never called
193
+ * by route code directly - mutations go through mutateEnabledServices, which is the
192
194
  * single async path that updates both the cache and the persisted file in one atomic operation.
193
195
  * @param tags - The service tags to load into the cache. Empty array means "no filter" (all services shown).
194
196
  */
@@ -368,7 +370,8 @@ export function buildServiceGroups(channels) {
368
370
  LOG.debug("config:general", "Service group '%s' (override): variants=%s.", key, variants.map((v) => v.key).join(", "));
369
371
  }
370
372
  // Build the domain-to-predefined-channel reverse index. This enables the manual add form to show an inline hint when the entered URL matches a predefined
371
- // channel. Scans only canonical entries in PREDEFINED_CHANNELS (variants share the canonical's URL domain and would produce duplicate results).
373
+ // channel. Scans only canonical entries in PREDEFINED_CHANNELS: each service variant maps the same channel onto a different service's domain, so including
374
+ // them would flood a shared-service domain (e.g., hulu.com) with many unrelated channels instead of the single, meaningful hint the index is meant to give.
372
375
  predefinedByDomain.clear();
373
376
  for (const [key, channel] of Object.entries(PREDEFINED_CHANNELS)) {
374
377
  if (channel.canonicalKey !== undefined) {
@@ -425,14 +428,14 @@ export function getPredefinedDomainMap() {
425
428
  return Object.fromEntries(predefinedByDomain);
426
429
  }
427
430
  /**
428
- * Resolves a URL to a friendly service display name. Checks built-in DOMAIN_CONFIG first for a stable, well-known service name, then falls back to
431
+ * Resolves a URL to a friendly service display name. Checks builtin DOMAIN_CONFIG first for a stable, well-known service name, then falls back to
429
432
  * getDomainConfig() which includes user domain mappings. This ordering prevents user domain overrides from corrupting display labels for predefined channel
430
- * variants - a user mapping a built-in domain to a custom profile should not rename every service dropdown entry that uses that domain.
433
+ * variants - a user mapping a builtin domain to a custom profile should not rename every service dropdown entry that uses that domain.
431
434
  * @param url - The URL to resolve a service display name for.
432
435
  * @returns The service display name, or the concise domain if no service name is configured.
433
436
  */
434
437
  export function getServiceDisplayName(url) {
435
- // Prefer built-in DOMAIN_CONFIG service names for stable display. Check by full hostname first (for subdomain-specific entries like tv.youtube.com), then by
438
+ // Prefer builtin DOMAIN_CONFIG service names for stable display. Check by full hostname first (for subdomain-specific entries like tv.youtube.com), then by
436
439
  // concise domain (e.g., disneyplus.com).
437
440
  try {
438
441
  const hostname = new URL(url).hostname;
@@ -471,8 +474,8 @@ function resolveUserProfileService(profileKey) {
471
474
  }
472
475
  /**
473
476
  * Resolves the service display label for a channel. Checks in order: explicit `service` field on the channel, the channel's explicit profile resolved via
474
- * user domain mappings, then URL-based built-in display name. This ensures channels assigned to user-defined profiles show the profile's service name rather
475
- * than the built-in name for the URL domain.
477
+ * user domain mappings, then URL-based builtin display name. This ensures channels assigned to user-defined profiles show the profile's service name rather
478
+ * than the builtin name for the URL domain.
476
479
  * @param channel - The channel to resolve a label for.
477
480
  * @returns The service display label.
478
481
  */
@@ -556,7 +559,7 @@ export function getChannelSortKey(channel, key, field) {
556
559
  }
557
560
  }
558
561
  /**
559
- * Compares two channels for sorting by the specified field and direction with a built-in channel name tiebreaker. The tiebreaker is always ascending so that rows
562
+ * Compares two channels for sorting by the specified field and direction with a builtin channel name tiebreaker. The tiebreaker is always ascending so that rows
560
563
  * within each group maintain a consistent alphabetical order regardless of the primary sort direction. This is the single comparator for all sort sites - server HTML
561
564
  * render, client re-sort, and M3U playlist - to prevent ordering divergence.
562
565
  * @param channelA - First channel definition.
@@ -681,18 +684,27 @@ export async function mutateServiceSelections(updates) {
681
684
  }
682
685
  });
683
686
  }
687
+ /* The default selection lookup consults the module-level serviceSelections cache, which mirrors the last committed configuration. Injecting it as a default
688
+ * parameter of resolveServiceKey keeps every read-only caller (the tuning, playlist, and table-rendering hot paths) unchanged, while letting a caller that is
689
+ * mid-mutation supply its own draft instead. It is a stable module const so the default carries no per-call allocation on the hot path.
690
+ */
691
+ const readModuleServiceSelection = (canonicalKey) => serviceSelections.get(canonicalKey);
684
692
  /**
685
- * Resolves a canonical channel key to the actual channel key based on user selection. If the user has selected a specific service for this channel, returns that
686
- * service's key. Otherwise returns the canonical key (default service). When the service filter is active, falls back to the first enabled variant if the stored
687
- * selection's service is filtered out.
693
+ * Resolves a canonical channel key to the actual channel key based on the current service selection. If a specific service is selected for this channel, returns
694
+ * that service's key; otherwise the canonical key (default service). When the service filter is active, falls back to the first enabled variant if the selected
695
+ * service is filtered out.
688
696
  *
689
- * Pure resolver with no side effects. Stale selection cleanup belongs to buildServiceGroups(), which validates all stored selections against the rebuilt variant
690
- * structure on startup and after runtime channel mutations. Reads are safe to call from any context, including inside other mutations.
697
+ * The selection source is injected via getSelection, defaulting to the committed module cache. Stale-selection cleanup belongs to buildServiceGroups(), which
698
+ * validates stored selections against the rebuilt variant structure on startup and after runtime mutations. A caller resolving inside a mutation that has already
699
+ * changed the selection must pass a lookup over its draft (for example (key) => data.serviceSelections[key]); otherwise the resolution reflects the stale committed
700
+ * cache and, for instance, clearing a selection mid-transaction would resolve back to the just-removed variant.
691
701
  * @param canonicalKey - The canonical channel key.
702
+ * @param getSelection - Looks up the stored selection for a canonical key. Defaults to the committed module cache; pass a draft lookup when resolving inside a
703
+ * mutation that has changed the selection.
692
704
  * @returns The resolved service key to use for streaming.
693
705
  */
694
- export function resolveServiceKey(canonicalKey) {
695
- const selection = serviceSelections.get(canonicalKey);
706
+ export function resolveServiceKey(canonicalKey, getSelection = readModuleServiceSelection) {
707
+ const selection = getSelection(canonicalKey);
696
708
  // No selection stored - use the canonical key (default service). If the canonical's service tag is filtered out, fall back to the first enabled variant.
697
709
  if (!selection) {
698
710
  if ((enabledServices.length > 0) && !isServiceTagEnabled(getServiceTagForChannel(canonicalKey))) {
@@ -756,8 +768,7 @@ export function resolvePredefinedVariant(key) {
756
768
  if (!entry) {
757
769
  return undefined;
758
770
  }
759
- // Canonical entries (and standalones, but those are not in PREDEFINED_CHANNELS) carry full identity already. Narrow on the canonicalKey discriminator to
760
- // confirm: undefined canonicalKey means CanonicalChannel.
771
+ // Canonical entries carry full identity already. Narrow on the canonicalKey field to confirm: undefined canonicalKey means CanonicalChannel.
761
772
  if (entry.canonicalKey === undefined) {
762
773
  return entry;
763
774
  }
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/config/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/config/services.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ export declare const SITE_PROFILES: Record<string, SiteProfile>;
3
3
  export declare const PROVIDER_PROFILES: Record<string, SiteProfile>;
4
4
  export declare const DOMAIN_CONFIG: Record<string, DomainConfig>;
5
5
  /**
6
- * Resolves a URL to its DOMAIN_CONFIG entry by trying the full hostname first for subdomain-specific overrides, then falling back to the concise domain (last two
7
- * hostname parts). This allows entries like "tv.youtube.com" to override the base "youtube.com" entry when the URL matches the more-specific subdomain.
6
+ * Resolves a URL to its domain configuration entry by precedence: user full hostname, then builtin full hostname (for subdomain-specific overrides), then user
7
+ * concise domain, then builtin concise domain (last two hostname parts). User mappings override builtins, and full-hostname entries like "tv.youtube.com" override
8
+ * the base "youtube.com" entry.
8
9
  * @param url - The URL to resolve a domain configuration for.
9
10
  * @returns The matching DomainConfig entry, or undefined if no match is found.
10
11
  */
@@ -17,8 +18,8 @@ export declare function getDomainConfig(url: string): DomainConfig | undefined;
17
18
  */
18
19
  export declare function registerProviderModuleProfile(name: string, profile: SiteProfile): void;
19
20
  /**
20
- * Looks up a built-in profile by name, checking the general SITE_PROFILES table, the static PROVIDER_PROFILES table, and dynamically registered provider module
21
- * profiles. This is the single lookup function for all built-in profile resolution - callers should use this instead of accessing any table directly.
21
+ * Looks up a builtin profile by name, checking the general SITE_PROFILES table, the static PROVIDER_PROFILES table, and dynamically registered provider module
22
+ * profiles. This is the single lookup function for all builtin profile resolution - callers should use this instead of accessing any table directly.
22
23
  * @param name - The profile name to look up.
23
24
  * @returns The matching SiteProfile, or undefined if not found in any source.
24
25
  */
@@ -37,3 +38,4 @@ export declare function isProviderProfile(name: string): boolean;
37
38
  */
38
39
  export declare function getRegisteredProviderModuleProfiles(): IterableIterator<[string, SiteProfile]>;
39
40
  export declare const DEFAULT_SITE_PROFILE: ResolvedSiteProfile;
41
+ //# sourceMappingURL=sites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/config/sites.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA+DxF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAkKrD,CAAC;AAOF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAgCzD,CAAC;AAaF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAwDtD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAyCrE;AAMD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAQtF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGvE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAG7F;AAkBD,eAAO,MAAM,oBAAoB,EAAE,mBAiDlC,CAAC"}