prismcast 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/dist/app.d.ts +1 -1
  2. package/dist/app.js +27 -9
  3. package/dist/app.js.map +1 -1
  4. package/dist/browser/cdp.js +7 -7
  5. package/dist/browser/cdp.js.map +1 -1
  6. package/dist/browser/channelSelection.d.ts +41 -11
  7. package/dist/browser/channelSelection.js +75 -24
  8. package/dist/browser/channelSelection.js.map +1 -1
  9. package/dist/browser/display.d.ts +1 -1
  10. package/dist/browser/index.d.ts +8 -8
  11. package/dist/browser/index.js +42 -43
  12. package/dist/browser/index.js.map +1 -1
  13. package/dist/browser/login.d.ts +2 -2
  14. package/dist/browser/login.js +1 -1
  15. package/dist/browser/manifestInterceptor.d.ts +77 -0
  16. package/dist/browser/manifestInterceptor.js +323 -0
  17. package/dist/browser/manifestInterceptor.js.map +1 -0
  18. package/dist/browser/precaching.js +4 -4
  19. package/dist/browser/tuning/comcastPolymer.d.ts +1 -1
  20. package/dist/browser/tuning/cox.d.ts +1 -1
  21. package/dist/browser/tuning/directv.d.ts +1 -1
  22. package/dist/browser/tuning/directv.js +61 -62
  23. package/dist/browser/tuning/directv.js.map +1 -1
  24. package/dist/browser/tuning/fox.d.ts +1 -1
  25. package/dist/browser/tuning/fox.js +171 -14
  26. package/dist/browser/tuning/fox.js.map +1 -1
  27. package/dist/browser/tuning/hbo.d.ts +1 -1
  28. package/dist/browser/tuning/hbo.js +6 -6
  29. package/dist/browser/tuning/hbo.js.map +1 -1
  30. package/dist/browser/tuning/hulu.d.ts +1 -1
  31. package/dist/browser/tuning/hulu.js +117 -110
  32. package/dist/browser/tuning/hulu.js.map +1 -1
  33. package/dist/browser/tuning/shared.d.ts +3 -3
  34. package/dist/browser/tuning/shared.js +5 -5
  35. package/dist/browser/tuning/sling.d.ts +1 -1
  36. package/dist/browser/tuning/sling.js +28 -28
  37. package/dist/browser/tuning/sling.js.map +1 -1
  38. package/dist/browser/tuning/spectrum.d.ts +1 -1
  39. package/dist/browser/tuning/spectrum.js +21 -22
  40. package/dist/browser/tuning/spectrum.js.map +1 -1
  41. package/dist/browser/tuning/thumbnailRow.d.ts +1 -1
  42. package/dist/browser/tuning/thumbnailRow.js +1 -1
  43. package/dist/browser/tuning/tileClick.d.ts +1 -1
  44. package/dist/browser/tuning/tileClick.js +5 -5
  45. package/dist/browser/tuning/xfinity.d.ts +1 -1
  46. package/dist/browser/tuning/youtubeTv.d.ts +1 -1
  47. package/dist/browser/tuning/youtubeTv.js +17 -18
  48. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  49. package/dist/browser/video.d.ts +20 -6
  50. package/dist/browser/video.js +30 -38
  51. package/dist/browser/video.js.map +1 -1
  52. package/dist/channels/index.d.ts +1 -2
  53. package/dist/channels/index.js +73 -40
  54. package/dist/channels/index.js.map +1 -1
  55. package/dist/config/channelForm.d.ts +58 -0
  56. package/dist/config/channelForm.js +129 -0
  57. package/dist/config/channelForm.js.map +1 -0
  58. package/dist/config/consistencyProbe.d.ts +7 -0
  59. package/dist/config/consistencyProbe.js +143 -0
  60. package/dist/config/consistencyProbe.js.map +1 -0
  61. package/dist/config/health.d.ts +4 -3
  62. package/dist/config/health.js +75 -62
  63. package/dist/config/health.js.map +1 -1
  64. package/dist/config/index.d.ts +1 -1
  65. package/dist/config/index.js +19 -12
  66. package/dist/config/index.js.map +1 -1
  67. package/dist/config/paths.d.ts +9 -3
  68. package/dist/config/paths.js +12 -4
  69. package/dist/config/paths.js.map +1 -1
  70. package/dist/config/persistence.context.d.ts +8 -0
  71. package/dist/config/persistence.context.js +30 -0
  72. package/dist/config/persistence.context.js.map +1 -0
  73. package/dist/config/persistence.d.ts +110 -12
  74. package/dist/config/persistence.js +351 -32
  75. package/dist/config/persistence.js.map +1 -1
  76. package/dist/config/presets.d.ts +14 -4
  77. package/dist/config/presets.js +84 -75
  78. package/dist/config/presets.js.map +1 -1
  79. package/dist/config/profiles.d.ts +2 -2
  80. package/dist/config/profiles.js +7 -9
  81. package/dist/config/profiles.js.map +1 -1
  82. package/dist/config/servicePacks.d.ts +2 -2
  83. package/dist/config/servicePacks.js +28 -28
  84. package/dist/config/servicePacks.js.map +1 -1
  85. package/dist/config/services.d.ts +62 -36
  86. package/dist/config/services.js +150 -136
  87. package/dist/config/services.js.map +1 -1
  88. package/dist/config/sites.d.ts +3 -3
  89. package/dist/config/sites.js +16 -16
  90. package/dist/config/sites.js.map +1 -1
  91. package/dist/config/userChannels.d.ts +500 -41
  92. package/dist/config/userChannels.js +1201 -312
  93. package/dist/config/userChannels.js.map +1 -1
  94. package/dist/config/userConfig.d.ts +103 -10
  95. package/dist/config/userConfig.js +277 -117
  96. package/dist/config/userConfig.js.map +1 -1
  97. package/dist/config/userProfiles.d.ts +4 -2
  98. package/dist/config/userProfiles.js +72 -26
  99. package/dist/config/userProfiles.js.map +1 -1
  100. package/dist/hdhr/channelMap.js +8 -11
  101. package/dist/hdhr/channelMap.js.map +1 -1
  102. package/dist/hdhr/deviceId.js +10 -9
  103. package/dist/hdhr/deviceId.js.map +1 -1
  104. package/dist/hdhr/discover.js +4 -5
  105. package/dist/hdhr/discover.js.map +1 -1
  106. package/dist/hdhr/index.js +6 -10
  107. package/dist/hdhr/index.js.map +1 -1
  108. package/dist/index.js +12 -12
  109. package/dist/index.js.map +1 -1
  110. package/dist/native/codecInference.d.ts +44 -0
  111. package/dist/native/codecInference.js +327 -0
  112. package/dist/native/codecInference.js.map +1 -0
  113. package/dist/native/decrypt.d.ts +1 -1
  114. package/dist/native/index.d.ts +5 -5
  115. package/dist/native/index.js +42 -64
  116. package/dist/native/index.js.map +1 -1
  117. package/dist/native/probe.d.ts +27 -9
  118. package/dist/native/probe.js +158 -67
  119. package/dist/native/probe.js.map +1 -1
  120. package/dist/native/proxy.d.ts +4 -2
  121. package/dist/native/proxy.js +52 -49
  122. package/dist/native/proxy.js.map +1 -1
  123. package/dist/native/tokenExpiry.d.ts +22 -0
  124. package/dist/native/tokenExpiry.js +153 -0
  125. package/dist/native/tokenExpiry.js.map +1 -0
  126. package/dist/routes/auth.js +6 -10
  127. package/dist/routes/auth.js.map +1 -1
  128. package/dist/routes/components.js +2 -2
  129. package/dist/routes/components.js.map +1 -1
  130. package/dist/routes/config/channels/endpoints/browse.d.ts +6 -0
  131. package/dist/routes/config/channels/endpoints/browse.js +195 -0
  132. package/dist/routes/config/channels/endpoints/browse.js.map +1 -0
  133. package/dist/routes/config/channels/endpoints/bulk.d.ts +6 -0
  134. package/dist/routes/config/channels/endpoints/bulk.js +128 -0
  135. package/dist/routes/config/channels/endpoints/bulk.js.map +1 -0
  136. package/dist/routes/config/channels/endpoints/crud.d.ts +6 -0
  137. package/dist/routes/config/channels/endpoints/crud.js +504 -0
  138. package/dist/routes/config/channels/endpoints/crud.js.map +1 -0
  139. package/dist/routes/config/channels/endpoints/importExport.d.ts +6 -0
  140. package/dist/routes/config/channels/endpoints/importExport.js +131 -0
  141. package/dist/routes/config/channels/endpoints/importExport.js.map +1 -0
  142. package/dist/routes/config/channels/endpoints/predefined.d.ts +6 -0
  143. package/dist/routes/config/channels/endpoints/predefined.js +78 -0
  144. package/dist/routes/config/channels/endpoints/predefined.js.map +1 -0
  145. package/dist/routes/config/channels/endpoints/prefs.d.ts +6 -0
  146. package/dist/routes/config/channels/endpoints/prefs.js +58 -0
  147. package/dist/routes/config/channels/endpoints/prefs.js.map +1 -0
  148. package/dist/routes/config/channels/endpoints/service.d.ts +6 -0
  149. package/dist/routes/config/channels/endpoints/service.js +149 -0
  150. package/dist/routes/config/channels/endpoints/service.js.map +1 -0
  151. package/dist/routes/config/channels/endpoints/tags.d.ts +6 -0
  152. package/dist/routes/config/channels/endpoints/tags.js +185 -0
  153. package/dist/routes/config/channels/endpoints/tags.js.map +1 -0
  154. package/dist/routes/config/channels/http/handler.d.ts +10 -0
  155. package/dist/routes/config/channels/http/handler.js +20 -0
  156. package/dist/routes/config/channels/http/handler.js.map +1 -0
  157. package/dist/routes/config/channels/http/playlistHint.d.ts +25 -0
  158. package/dist/routes/config/channels/http/playlistHint.js +40 -0
  159. package/dist/routes/config/channels/http/playlistHint.js.map +1 -0
  160. package/dist/routes/config/channels/http/serviceWarning.d.ts +10 -0
  161. package/dist/routes/config/channels/http/serviceWarning.js +28 -0
  162. package/dist/routes/config/channels/http/serviceWarning.js.map +1 -0
  163. package/dist/routes/config/channels/index.d.ts +3 -3
  164. package/dist/routes/config/channels/index.js +1 -1
  165. package/dist/routes/config/channels/index.js.map +1 -1
  166. package/dist/routes/config/channels/{routes.d.ts → setup.d.ts} +1 -1
  167. package/dist/routes/config/channels/setup.js +23 -0
  168. package/dist/routes/config/channels/setup.js.map +1 -0
  169. package/dist/routes/config/channels/table.d.ts +9 -9
  170. package/dist/routes/config/channels/table.js +124 -76
  171. package/dist/routes/config/channels/table.js.map +1 -1
  172. package/dist/routes/config/http/envelope.d.ts +111 -0
  173. package/dist/routes/config/http/envelope.js +103 -0
  174. package/dist/routes/config/http/envelope.js.map +1 -0
  175. package/dist/routes/config/index.d.ts +9 -9
  176. package/dist/routes/config/index.js +2 -2
  177. package/dist/routes/config/index.js.map +1 -1
  178. package/dist/routes/config/services.js +69 -68
  179. package/dist/routes/config/services.js.map +1 -1
  180. package/dist/routes/config/settings.d.ts +1 -1
  181. package/dist/routes/config/settings.js +45 -38
  182. package/dist/routes/config/settings.js.map +1 -1
  183. package/dist/routes/debug.js +12 -11
  184. package/dist/routes/debug.js.map +1 -1
  185. package/dist/routes/icons.js +2 -2
  186. package/dist/routes/icons.js.map +1 -1
  187. package/dist/routes/logs.js +19 -30
  188. package/dist/routes/logs.js.map +1 -1
  189. package/dist/routes/mpegts.js +1 -1
  190. package/dist/routes/playlist.d.ts +1 -1
  191. package/dist/routes/playlist.js +37 -26
  192. package/dist/routes/playlist.js.map +1 -1
  193. package/dist/routes/root/content.js +27 -6
  194. package/dist/routes/root/content.js.map +1 -1
  195. package/dist/routes/root/index.js +2 -5
  196. package/dist/routes/root/index.js.map +1 -1
  197. package/dist/routes/root/scripts/channels.js +16 -16
  198. package/dist/routes/root/scripts/channels.js.map +1 -1
  199. package/dist/routes/root/scripts/config.js +59 -59
  200. package/dist/routes/root/scripts/config.js.map +1 -1
  201. package/dist/routes/root/scripts/index.d.ts +4 -4
  202. package/dist/routes/root/scripts/shared.js +24 -10
  203. package/dist/routes/root/scripts/shared.js.map +1 -1
  204. package/dist/routes/root/scripts/status.d.ts +4 -0
  205. package/dist/routes/root/scripts/status.handlers.d.ts +182 -0
  206. package/dist/routes/root/scripts/status.handlers.js +713 -0
  207. package/dist/routes/root/scripts/status.handlers.js.map +1 -0
  208. package/dist/routes/root/scripts/status.js +86 -488
  209. package/dist/routes/root/scripts/status.js.map +1 -1
  210. package/dist/routes/root/styles.js +5 -5
  211. package/dist/routes/services.js +18 -15
  212. package/dist/routes/services.js.map +1 -1
  213. package/dist/routes/sse.d.ts +16 -0
  214. package/dist/routes/sse.js +29 -0
  215. package/dist/routes/sse.js.map +1 -0
  216. package/dist/routes/streams.js +10 -23
  217. package/dist/routes/streams.js.map +1 -1
  218. package/dist/routes/ui.d.ts +2 -2
  219. package/dist/routes/upgrade.js +6 -7
  220. package/dist/routes/upgrade.js.map +1 -1
  221. package/dist/service/commands.context.d.ts +6 -0
  222. package/dist/service/commands.context.js +47 -0
  223. package/dist/service/commands.context.js.map +1 -0
  224. package/dist/service/commands.d.ts +53 -8
  225. package/dist/service/commands.js +171 -188
  226. package/dist/service/commands.js.map +1 -1
  227. package/dist/service/generators.context.d.ts +6 -0
  228. package/dist/service/generators.context.js +45 -0
  229. package/dist/service/generators.context.js.map +1 -0
  230. package/dist/service/generators.d.ts +56 -16
  231. package/dist/service/generators.js +499 -383
  232. package/dist/service/generators.js.map +1 -1
  233. package/dist/service/index.d.ts +2 -2
  234. package/dist/streaming/clients.d.ts +2 -2
  235. package/dist/streaming/clients.js +2 -2
  236. package/dist/streaming/codec.d.ts +2 -2
  237. package/dist/streaming/codec.js +0 -1
  238. package/dist/streaming/codec.js.map +1 -1
  239. package/dist/streaming/fmp4Segmenter.d.ts +2 -2
  240. package/dist/streaming/fmp4Segmenter.js +12 -12
  241. package/dist/streaming/hls.d.ts +3 -3
  242. package/dist/streaming/hls.js +81 -70
  243. package/dist/streaming/hls.js.map +1 -1
  244. package/dist/streaming/hlsResume.d.ts +3 -3
  245. package/dist/streaming/hlsResume.js +5 -5
  246. package/dist/streaming/hlsSegments.d.ts +5 -2
  247. package/dist/streaming/hlsSegments.js +14 -9
  248. package/dist/streaming/hlsSegments.js.map +1 -1
  249. package/dist/streaming/monitor.d.ts +12 -12
  250. package/dist/streaming/monitor.js +80 -54
  251. package/dist/streaming/monitor.js.map +1 -1
  252. package/dist/streaming/mp4Parser.d.ts +34 -4
  253. package/dist/streaming/mp4Parser.js +111 -29
  254. package/dist/streaming/mp4Parser.js.map +1 -1
  255. package/dist/streaming/mpegts.d.ts +1 -1
  256. package/dist/streaming/mpegts.js +13 -10
  257. package/dist/streaming/mpegts.js.map +1 -1
  258. package/dist/streaming/playlistBuilder.d.ts +1 -1
  259. package/dist/streaming/playlistBuilder.js +2 -2
  260. package/dist/streaming/preroll.d.ts +9 -9
  261. package/dist/streaming/preroll.js +39 -41
  262. package/dist/streaming/preroll.js.map +1 -1
  263. package/dist/streaming/pretune.js +4 -4
  264. package/dist/streaming/pretune.js.map +1 -1
  265. package/dist/streaming/recovery.d.ts +3 -3
  266. package/dist/streaming/recovery.js +4 -4
  267. package/dist/streaming/registry.d.ts +6 -6
  268. package/dist/streaming/setup.d.ts +9 -8
  269. package/dist/streaming/setup.js +97 -49
  270. package/dist/streaming/setup.js.map +1 -1
  271. package/dist/streaming/showInfo.d.ts +9 -3
  272. package/dist/streaming/showInfo.js +26 -18
  273. package/dist/streaming/showInfo.js.map +1 -1
  274. package/dist/streaming/statusEmitter.d.ts +4 -4
  275. package/dist/streaming/statusEmitter.js +2 -2
  276. package/dist/types/channels.d.ts +133 -34
  277. package/dist/types/channels.js +39 -1
  278. package/dist/types/channels.js.map +1 -1
  279. package/dist/types/config.d.ts +20 -1
  280. package/dist/types/index.d.ts +9 -8
  281. package/dist/types/index.js +1 -0
  282. package/dist/types/index.js.map +1 -1
  283. package/dist/types/profiles.d.ts +5 -4
  284. package/dist/types/selection.d.ts +48 -4
  285. package/dist/types/streaming.d.ts +1 -1
  286. package/dist/upgrade/commands.context.d.ts +6 -0
  287. package/dist/upgrade/commands.context.js +29 -0
  288. package/dist/upgrade/commands.context.js.map +1 -0
  289. package/dist/upgrade/commands.d.ts +29 -2
  290. package/dist/upgrade/commands.js +87 -134
  291. package/dist/upgrade/commands.js.map +1 -1
  292. package/dist/upgrade/detection.context.d.ts +6 -0
  293. package/dist/upgrade/detection.context.js +24 -0
  294. package/dist/upgrade/detection.context.js.map +1 -0
  295. package/dist/upgrade/detection.d.ts +140 -10
  296. package/dist/upgrade/detection.js +153 -66
  297. package/dist/upgrade/detection.js.map +1 -1
  298. package/dist/upgrade/index.d.ts +2 -2
  299. package/dist/utils/chromeFetch.d.ts +1 -1
  300. package/dist/utils/chromeFetch.js +1 -1
  301. package/dist/utils/clock.d.ts +14 -0
  302. package/dist/utils/clock.js +28 -0
  303. package/dist/utils/clock.js.map +1 -0
  304. package/dist/utils/debugFilter.d.ts +1 -1
  305. package/dist/utils/debugFilter.js +6 -4
  306. package/dist/utils/debugFilter.js.map +1 -1
  307. package/dist/utils/delay.d.ts +2 -3
  308. package/dist/utils/delay.js +10 -16
  309. package/dist/utils/delay.js.map +1 -1
  310. package/dist/utils/evaluate.js +12 -14
  311. package/dist/utils/evaluate.js.map +1 -1
  312. package/dist/utils/ffmpeg.context.d.ts +6 -0
  313. package/dist/utils/ffmpeg.context.js +31 -0
  314. package/dist/utils/ffmpeg.context.js.map +1 -0
  315. package/dist/utils/ffmpeg.d.ts +85 -29
  316. package/dist/utils/ffmpeg.js +126 -129
  317. package/dist/utils/ffmpeg.js.map +1 -1
  318. package/dist/utils/fileLogger.d.ts +18 -2
  319. package/dist/utils/fileLogger.js +58 -30
  320. package/dist/utils/fileLogger.js.map +1 -1
  321. package/dist/utils/format.d.ts +1 -1
  322. package/dist/utils/format.js +2 -2
  323. package/dist/utils/format.js.map +1 -1
  324. package/dist/utils/html.js +1 -3
  325. package/dist/utils/html.js.map +1 -1
  326. package/dist/utils/index.d.ts +21 -20
  327. package/dist/utils/index.js +1 -0
  328. package/dist/utils/index.js.map +1 -1
  329. package/dist/utils/logger.js +16 -20
  330. package/dist/utils/logger.js.map +1 -1
  331. package/dist/utils/m3u.d.ts +18 -3
  332. package/dist/utils/m3u.js +28 -14
  333. package/dist/utils/m3u.js.map +1 -1
  334. package/dist/utils/memo.d.ts +19 -0
  335. package/dist/utils/memo.js +53 -0
  336. package/dist/utils/memo.js.map +1 -0
  337. package/dist/utils/morganStream.js +2 -2
  338. package/dist/utils/morganStream.js.map +1 -1
  339. package/dist/utils/pid.d.ts +2 -2
  340. package/dist/utils/pid.js +2 -2
  341. package/dist/utils/platform.d.ts +1 -1
  342. package/dist/utils/platform.js +3 -3
  343. package/dist/utils/platform.js.map +1 -1
  344. package/dist/utils/retry.d.ts +2 -0
  345. package/dist/utils/retry.js +9 -7
  346. package/dist/utils/retry.js.map +1 -1
  347. package/dist/utils/sanitize.d.ts +2 -2
  348. package/dist/utils/sanitize.js +4 -4
  349. package/dist/utils/timing.d.ts +6 -3
  350. package/dist/utils/timing.js +10 -6
  351. package/dist/utils/timing.js.map +1 -1
  352. package/dist/utils/version.d.ts +3 -2
  353. package/dist/utils/version.js +14 -27
  354. package/dist/utils/version.js.map +1 -1
  355. package/package.json +13 -7
  356. package/dist/native/intercept.d.ts +0 -35
  357. package/dist/native/intercept.js +0 -181
  358. package/dist/native/intercept.js.map +0 -1
  359. package/dist/routes/config/channels/routes.js +0 -1505
  360. package/dist/routes/config/channels/routes.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  import { ICON_ADD, ICON_DELETE, ICON_EDIT, ICON_EXPORT, ICON_IMPORT } from "../icons.js";
2
- import { LOG, escapeHtml, formatError, sanitizeString, stringifySorted } from "../../utils/index.js";
2
+ import { LOG, escapeHtml, sanitizeString, stringifySorted } from "../../utils/index.js";
3
3
  import { deleteUserProfile, getUserDomains, getUserProfiles, mutateProfiles, validateDomain, validateProfile, validateProfileKey } from "../../config/userProfiles.js";
4
4
  import { endLoginMode, getLoginPage, startLoginMode } from "../../browser/index.js";
5
5
  import { exportServicePack, importServicePack, parseServicePack } from "../../config/servicePacks.js";
6
6
  import { getChannelListing, validateChannelUrl } from "../../config/userChannels.js";
7
+ import { sendErrorResponse, sendNotFoundError, sendSuccess, sendValidationError } from "./http/envelope.js";
7
8
  import { categorizeProfiles } from "./index.js";
8
9
  import { generateWizardModal } from "../components.js";
9
10
  import { getProfiles } from "../../config/profiles.js";
@@ -76,15 +77,14 @@ export function generateCustomProfilesPanel() {
76
77
  lines.push("</div>");
77
78
  return lines.join("\n");
78
79
  }
79
- // Build a reverse lookup: profile key → list of domains mapped to it.
80
+ // Build a reverse lookup: profile key -> list of domains mapped to it.
80
81
  const profileDomains = {};
81
82
  for (const key of profileKeys) {
82
83
  profileDomains[key] = [];
83
84
  }
84
85
  for (const [domain, config] of Object.entries(userDomains)) {
85
86
  if (config.profile && (config.profile in userProfiles)) {
86
- profileDomains[config.profile] ??= [];
87
- profileDomains[config.profile].push({ domain, service: config.service, serviceTag: config.serviceTag });
87
+ (profileDomains[config.profile] ??= []).push({ domain, service: config.service, serviceTag: config.serviceTag });
88
88
  }
89
89
  }
90
90
  // Compute channel counts per profile key.
@@ -103,6 +103,9 @@ export function generateCustomProfilesPanel() {
103
103
  lines.push("<tbody>");
104
104
  for (const key of profileKeys) {
105
105
  const profile = userProfiles[key];
106
+ if (!profile) {
107
+ continue;
108
+ }
106
109
  const domains = profileDomains[key] ?? [];
107
110
  const strategy = profile.channelSelection?.strategy ?? "inherited";
108
111
  const count = channelCounts[key] ?? 0;
@@ -256,7 +259,7 @@ export function setupProfileRoutes(app) {
256
259
  // Compute channel counts per profile key.
257
260
  const profileChannelCounts = countChannelsByProfile(new Set(Object.keys(profiles)));
258
261
  // Build a summary for each profile including its domain mappings and channel count.
259
- const profileList = Object.entries(profiles).sort(([a], [b]) => a.localeCompare(b)).map(([key, profile]) => {
262
+ const profileList = Object.entries(profiles).toSorted(([a], [b]) => a.localeCompare(b)).map(([key, profile]) => {
260
263
  // Find domains that reference this profile.
261
264
  const profileDomains = Object.entries(domains).filter(([, config]) => (config.profile === key)).map(([domain, config]) => ({
262
265
  domain,
@@ -272,11 +275,10 @@ export function setupProfileRoutes(app) {
272
275
  strategy: profile.channelSelection?.strategy ?? "inherited"
273
276
  };
274
277
  });
275
- res.json({ domains, profiles: profileList, success: true });
278
+ sendSuccess(res, { data: { domains, profiles: profileList } });
276
279
  }
277
280
  catch (error) {
278
- LOG.error("Failed to list profiles: %s.", formatError(error));
279
- res.status(500).json({ error: "Failed to list profiles: " + formatError(error), success: false });
281
+ sendErrorResponse(res, error, "list profiles");
280
282
  }
281
283
  });
282
284
  // POST /config/profiles - Create or update a user-defined profile with domain mappings.
@@ -288,12 +290,12 @@ export function setupProfileRoutes(app) {
288
290
  const domainMappings = body.domains;
289
291
  // Validate key.
290
292
  if (!key) {
291
- res.status(400).json({ error: "Profile key is required.", success: false });
293
+ sendValidationError(res, "Profile key is required.");
292
294
  return;
293
295
  }
294
296
  // Validate profile object.
295
297
  if (!profile || (typeof profile !== "object")) {
296
- res.status(400).json({ error: "Profile definition is required.", success: false });
298
+ sendValidationError(res, "Profile definition is required.");
297
299
  return;
298
300
  }
299
301
  // Sanitize string fields in the profile object, including nested channelSelection strings.
@@ -327,13 +329,13 @@ export function setupProfileRoutes(app) {
327
329
  // Validate the key format and built-in conflict.
328
330
  const keyError = validateProfileKey(key, isNew);
329
331
  if (keyError) {
330
- res.status(400).json({ error: keyError, success: false });
332
+ sendValidationError(res, keyError);
331
333
  return;
332
334
  }
333
335
  // Validate the profile content: extends must reference a built-in profile, strategy must be recognized and generic, all flags must be valid SiteProfile fields.
334
336
  const profileErrors = validateProfile(key, profile);
335
337
  if (profileErrors.length > 0) {
336
- res.status(400).json({ error: profileErrors.join(" "), success: false });
338
+ sendValidationError(res, profileErrors.join(" "));
337
339
  return;
338
340
  }
339
341
  // Validate domain mappings if provided. Build the available profiles set from built-in + existing user profiles + the profile being saved.
@@ -345,72 +347,74 @@ export function setupProfileRoutes(app) {
345
347
  domainErrors.push(...validateDomain(domain, config, availableProfiles));
346
348
  }
347
349
  if (domainErrors.length > 0) {
348
- res.status(400).json({ error: domainErrors.join(" "), success: false });
350
+ sendValidationError(res, domainErrors.join(" "));
349
351
  return;
350
352
  }
351
353
  }
352
- // Save the profile and domain mappings. When updating an existing profile, remove stale domain mappings that pointed to this profile before applying the new
353
- // ones. This handles the case where a user changes domain mappings on edit — without this cleanup, old domain entries would persist alongside the new ones.
354
- const existingDomains = getUserDomains();
355
- const mergedProfiles = { ...existingProfiles, [key]: profile };
356
- const cleanedDomains = {};
357
- for (const [domain, config] of Object.entries(existingDomains)) {
358
- if (config.profile !== key) {
359
- cleanedDomains[domain] = config;
360
- }
361
- }
362
- const mergedDomains = { ...cleanedDomains, ...(domainMappings ?? {}) };
354
+ // Save the profile and domain mappings. The read-modify-write happens inside the mutator callback so the merge applies against the latest serialized
355
+ // state under the per-store queue's lock - concurrent POSTs to different keys each see the other's writes and both land on disk. When updating an existing
356
+ // profile, stale domain mappings that pointed to it are stripped first so the new mappings replace them cleanly rather than coexisting.
363
357
  await mutateProfiles((data) => {
364
- data.profiles = mergedProfiles;
365
- data.domains = mergedDomains;
358
+ for (const [domain, config] of Object.entries(data.domains)) {
359
+ if (config.profile === key) {
360
+ Reflect.deleteProperty(data.domains, domain);
361
+ }
362
+ }
363
+ data.profiles[key] = profile;
364
+ if (domainMappings) {
365
+ Object.assign(data.domains, domainMappings);
366
+ }
366
367
  });
367
368
  const actionLabel = isNew ? "created" : "updated";
368
369
  LOG.info("User profile '%s' %s.", key, actionLabel);
369
- res.json({ key, message: "Profile '" + key + "' " + actionLabel + " successfully.", panelHtml: generateCustomProfilesPanel(),
370
- success: true });
370
+ sendSuccess(res, {
371
+ data: { key, panelHtml: generateCustomProfilesPanel() },
372
+ message: "Profile '" + key + "' " + actionLabel + " successfully."
373
+ });
371
374
  }
372
375
  catch (error) {
373
- LOG.error("Failed to save profile: %s.", formatError(error));
374
- res.status(500).json({ error: "Failed to save profile: " + formatError(error), success: false });
376
+ sendErrorResponse(res, error, "save profile");
375
377
  }
376
378
  });
377
379
  // DELETE /config/profiles/:key - Delete a user-defined profile and its domain mappings.
378
380
  app.delete("/config/profiles/:key", async (req, res) => {
379
381
  try {
380
- const key = req.params.key;
382
+ const key = req.params["key"];
381
383
  if (!key) {
382
- res.status(400).json({ error: "Profile key is required.", success: false });
384
+ sendValidationError(res, "Profile key is required.");
383
385
  return;
384
386
  }
385
387
  // Verify the profile exists as a user profile.
386
388
  const userProfiles = getUserProfiles();
387
389
  if (!(key in userProfiles)) {
388
- res.status(404).json({ error: "Profile '" + key + "' not found.", success: false });
390
+ sendNotFoundError(res, "Profile '" + key + "' not found.");
389
391
  return;
390
392
  }
391
393
  await deleteUserProfile(key);
392
- res.json({ key, message: "Profile '" + key + "' deleted successfully.", panelHtml: generateCustomProfilesPanel(), success: true });
394
+ sendSuccess(res, {
395
+ data: { key, panelHtml: generateCustomProfilesPanel() },
396
+ message: "Profile '" + key + "' deleted successfully."
397
+ });
393
398
  }
394
399
  catch (error) {
395
- LOG.error("Failed to delete profile: %s.", formatError(error));
396
- res.status(500).json({ error: "Failed to delete profile: " + formatError(error), success: false });
400
+ sendErrorResponse(res, error, "delete profile");
397
401
  }
398
402
  });
399
403
  // POST /config/profiles/import - Import a service pack. Accepts optional skipChannels flag in the request body.
400
404
  app.post("/config/profiles/import", async (req, res) => {
401
405
  try {
402
406
  const rawData = req.body;
403
- const skipChannels = rawData.skipChannels === true;
407
+ const skipChannels = rawData["skipChannels"] === true;
404
408
  // Parse and validate the service pack. The parseServicePack function ignores unknown keys like skipChannels.
405
409
  const parseResult = parseServicePack(rawData);
406
410
  if (!parseResult.pack) {
407
- res.status(400).json({ error: "Validation errors:\n" + parseResult.errors.join("\n"), success: false });
411
+ sendValidationError(res, "Validation errors:\n" + parseResult.errors.join("\n"));
408
412
  return;
409
413
  }
410
414
  // Import the validated pack. Profile/domain save failures are fatal; channel import failures are non-fatal warnings included in the response.
411
415
  const importResult = await importServicePack(parseResult.pack, { skipChannels });
412
416
  if (!importResult.success) {
413
- res.status(400).json({ error: "Import failed:\n" + importResult.errors.join("\n"), success: false });
417
+ sendValidationError(res, "Import failed:\n" + importResult.errors.join("\n"));
414
418
  return;
415
419
  }
416
420
  const parts = [];
@@ -431,45 +435,45 @@ export function setupProfileRoutes(app) {
431
435
  LOG.warn("Import warning: %s", warning);
432
436
  }
433
437
  }
434
- res.json({ message: summary, panelHtml: generateCustomProfilesPanel(), success: true, summary: importResult,
435
- warnings: importResult.errors });
438
+ sendSuccess(res, {
439
+ data: { panelHtml: generateCustomProfilesPanel(), summary: importResult, warnings: importResult.errors },
440
+ message: summary
441
+ });
436
442
  }
437
443
  catch (error) {
438
- LOG.error("Failed to import service pack: %s.", formatError(error));
439
- res.status(500).json({ error: "Failed to import service pack: " + formatError(error), success: false });
444
+ sendErrorResponse(res, error, "import service pack");
440
445
  }
441
446
  });
442
447
  // GET /config/profiles/export - Export one or more user profiles as a service pack. Accepts comma-separated profile keys.
443
448
  app.get("/config/profiles/export", (req, res) => {
444
449
  try {
445
- const profileParam = req.query.profile;
446
- const includeDomains = req.query.domains !== "0";
447
- const includeChannels = req.query.channels === "1";
448
- const name = req.query.name;
450
+ const profileParam = req.query["profile"];
451
+ const includeDomains = req.query["domains"] !== "0";
452
+ const includeChannels = req.query["channels"] === "1";
453
+ const name = req.query["name"];
449
454
  if (!profileParam) {
450
- res.status(400).json({ error: "Profile key is required (use ?profile=key).", success: false });
455
+ sendValidationError(res, "Profile key is required (use ?profile=key).");
451
456
  return;
452
457
  }
453
458
  // Split comma-separated keys and trim whitespace.
454
459
  const profileKeys = profileParam.split(",").map((k) => k.trim()).filter(Boolean);
455
460
  if (profileKeys.length === 0) {
456
- res.status(400).json({ error: "No valid profile keys provided.", success: false });
461
+ sendValidationError(res, "No valid profile keys provided.");
457
462
  return;
458
463
  }
459
464
  const pack = exportServicePack(profileKeys, { includeChannels, includeDomains, name: name ?? profileKeys.join(", ") });
460
465
  if (!pack) {
461
- res.status(404).json({ error: "None of the requested profiles were found.", success: false });
466
+ sendNotFoundError(res, "None of the requested profiles were found.");
462
467
  return;
463
468
  }
464
- // Use the first profile key for the filename when exporting multiple profiles.
465
- const filename = (profileKeys.length === 1) ? profileKeys[0] : "prismcast";
469
+ // Use the first profile key for the filename when exporting a single profile; fall back to a generic name for multi-profile packs or empty lists.
470
+ const filename = ((profileKeys.length === 1) ? profileKeys[0] : undefined) ?? "prismcast";
466
471
  res.setHeader("Content-Type", "application/json");
467
472
  res.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "-service-pack.json\"");
468
473
  res.send(stringifySorted(pack) + "\n");
469
474
  }
470
475
  catch (error) {
471
- LOG.error("Failed to export service pack: %s.", formatError(error));
472
- res.status(500).json({ error: "Failed to export service pack: " + formatError(error), success: false });
476
+ sendErrorResponse(res, error, "export service pack");
473
477
  }
474
478
  });
475
479
  // POST /config/profiles/test - Start a test flow by opening a URL with the user's profile applied.
@@ -478,25 +482,24 @@ export function setupProfileRoutes(app) {
478
482
  const body = req.body;
479
483
  const url = body.url?.trim();
480
484
  if (!url) {
481
- res.status(400).json({ error: "URL is required.", success: false });
485
+ sendValidationError(res, "URL is required.");
482
486
  return;
483
487
  }
484
488
  // Validate URL format before opening the browser.
485
489
  const urlError = validateChannelUrl(url);
486
490
  if (urlError) {
487
- res.status(400).json({ error: urlError, success: false });
491
+ sendValidationError(res, urlError);
488
492
  return;
489
493
  }
490
494
  const result = await startLoginMode(url);
491
495
  if (!result.success) {
492
- res.status(400).json({ error: result.error ?? "Failed to start test.", success: false });
496
+ sendValidationError(res, result.error ?? "Failed to start test.");
493
497
  return;
494
498
  }
495
- res.json({ message: "Test page opened. The browser window should be visible.", success: true });
499
+ sendSuccess(res, { message: "Test page opened. The browser window should be visible." });
496
500
  }
497
501
  catch (error) {
498
- LOG.error("Failed to start test flow: %s.", formatError(error));
499
- res.status(500).json({ error: "Failed to start test: " + formatError(error), success: false });
502
+ sendErrorResponse(res, error, "start test");
500
503
  }
501
504
  });
502
505
  // POST /config/profiles/test/check - Check CSS selectors against the live test page.
@@ -505,12 +508,12 @@ export function setupProfileRoutes(app) {
505
508
  const body = req.body;
506
509
  const selectors = body.selectors;
507
510
  if (!selectors || (typeof selectors !== "object")) {
508
- res.status(400).json({ error: "Selectors object is required.", success: false });
511
+ sendValidationError(res, "Selectors object is required.");
509
512
  return;
510
513
  }
511
514
  const page = getLoginPage();
512
515
  if (!page) {
513
- res.status(400).json({ error: "No active test page. Start a test first.", success: false });
516
+ sendValidationError(res, "No active test page. Start a test first.");
514
517
  return;
515
518
  }
516
519
  // Evaluate all selectors in a single page.evaluate call to avoid await-in-loop.
@@ -530,22 +533,20 @@ export function setupProfileRoutes(app) {
530
533
  for (const [name, count] of Object.entries(counts)) {
531
534
  results[name] = { count: Math.max(count, 0), valid: count >= 0 };
532
535
  }
533
- res.json({ results, success: true });
536
+ sendSuccess(res, { data: { results } });
534
537
  }
535
538
  catch (error) {
536
- LOG.error("Failed to check selectors: %s.", formatError(error));
537
- res.status(500).json({ error: "Failed to check selectors: " + formatError(error), success: false });
539
+ sendErrorResponse(res, error, "check selectors");
538
540
  }
539
541
  });
540
542
  // POST /config/profiles/test/done - End an active test flow.
541
543
  app.post("/config/profiles/test/done", async (_req, res) => {
542
544
  try {
543
545
  await endLoginMode();
544
- res.json({ message: "Test flow ended.", panelHtml: generateCustomProfilesPanel(), success: true });
546
+ sendSuccess(res, { data: { panelHtml: generateCustomProfilesPanel() }, message: "Test flow ended." });
545
547
  }
546
548
  catch (error) {
547
- LOG.error("Failed to end test flow: %s.", formatError(error));
548
- res.status(500).json({ error: "Failed to end test: " + formatError(error), success: false });
549
+ sendErrorResponse(res, error, "end test");
549
550
  }
550
551
  });
551
552
  }
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/routes/config/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/routes/config/services.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AdvancedSection } from "../../config/userConfig.js";
1
+ import type { AdvancedSection } from "../../config/userConfig.ts";
2
2
  import type { Express } from "express";
3
3
  /**
4
4
  * Generates the content for the Settings tab with non-collapsible section headers.