@norskvideo/norsk-studio-built-ins 1.18.0 → 1.26.0-2025-02-19-33cde15d

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 (247) hide show
  1. package/client/info.js +5979 -695
  2. package/client/output.preview/styles.css +69 -69
  3. package/client/output.whep/styles.css +9 -0
  4. package/client/style.css +283 -856
  5. package/lib/info.js +14 -14
  6. package/lib/info.js.map +1 -1
  7. package/lib/input.rtmp/info.js +19 -5
  8. package/lib/input.rtmp/info.js.map +1 -1
  9. package/lib/input.rtmp/inline-view.js +3 -3
  10. package/lib/input.rtmp/runtime.d.ts +46 -7
  11. package/lib/input.rtmp/runtime.js +245 -59
  12. package/lib/input.rtmp/runtime.js.map +1 -1
  13. package/lib/input.rtmp/summary-view.d.ts +3 -5
  14. package/lib/input.rtmp/summary-view.js +51 -6
  15. package/lib/input.rtmp/summary-view.js.map +1 -1
  16. package/lib/input.rtmp/types.d.ts +193 -0
  17. package/lib/{processor.browserOverlay/openApi.js → input.rtmp/types.js} +1 -1
  18. package/lib/input.rtmp/types.js.map +1 -0
  19. package/lib/input.rtmp/types.yaml +147 -0
  20. package/lib/input.silence/info.js +9 -2
  21. package/lib/input.silence/info.js.map +1 -1
  22. package/lib/input.silence/runtime.d.ts +1 -0
  23. package/lib/input.silence/runtime.js.map +1 -1
  24. package/lib/input.srt-caller/info.js +8 -1
  25. package/lib/input.srt-caller/info.js.map +1 -1
  26. package/lib/input.srt-caller/runtime.d.ts +1 -0
  27. package/lib/input.srt-caller/runtime.js.map +1 -1
  28. package/lib/input.srt-listener/info.js +15 -2
  29. package/lib/input.srt-listener/info.js.map +1 -1
  30. package/lib/input.srt-listener/runtime.d.ts +41 -5
  31. package/lib/input.srt-listener/runtime.js +236 -57
  32. package/lib/input.srt-listener/runtime.js.map +1 -1
  33. package/lib/input.srt-listener/summary-view.d.ts +3 -5
  34. package/lib/input.srt-listener/summary-view.js +45 -6
  35. package/lib/input.srt-listener/summary-view.js.map +1 -1
  36. package/lib/input.srt-listener/types.d.ts +193 -0
  37. package/lib/input.srt-listener/types.js +3 -0
  38. package/lib/input.srt-listener/types.js.map +1 -0
  39. package/lib/input.srt-listener/types.yaml +145 -0
  40. package/lib/input.udp-ts/info.js +2 -1
  41. package/lib/input.udp-ts/info.js.map +1 -1
  42. package/lib/input.udp-ts/runtime.d.ts +1 -0
  43. package/lib/input.udp-ts/runtime.js.map +1 -1
  44. package/lib/input.videoTestCard/info.d.ts +1 -1
  45. package/lib/input.videoTestCard/info.js +17 -4
  46. package/lib/input.videoTestCard/info.js.map +1 -1
  47. package/lib/input.videoTestCard/runtime.d.ts +1 -0
  48. package/lib/output.autoCmaf/form-views.d.ts +2 -2
  49. package/lib/output.autoCmaf/form-views.js +13 -3
  50. package/lib/output.autoCmaf/form-views.js.map +1 -1
  51. package/lib/output.autoCmaf/info.d.ts +21 -2
  52. package/lib/output.autoCmaf/info.js +106 -32
  53. package/lib/output.autoCmaf/info.js.map +1 -1
  54. package/lib/output.autoCmaf/inline-view.d.ts +6 -0
  55. package/lib/output.autoCmaf/inline-view.js +8 -0
  56. package/lib/output.autoCmaf/inline-view.js.map +1 -0
  57. package/lib/output.autoCmaf/runtime.d.ts +31 -46
  58. package/lib/output.autoCmaf/runtime.js +334 -108
  59. package/lib/output.autoCmaf/runtime.js.map +1 -1
  60. package/lib/output.autoCmaf/summary-view.d.ts +4 -0
  61. package/lib/output.autoCmaf/summary-view.js +24 -0
  62. package/lib/output.autoCmaf/summary-view.js.map +1 -0
  63. package/lib/output.autoCmaf/summary.js +3 -0
  64. package/lib/output.autoCmaf/summary.js.map +1 -1
  65. package/lib/output.autoCmaf/types.d.ts +158 -0
  66. package/lib/output.autoCmaf/types.js +3 -0
  67. package/lib/output.autoCmaf/types.js.map +1 -0
  68. package/lib/output.autoCmaf/types.yaml +182 -0
  69. package/lib/output.autoHls/info.d.ts +3 -0
  70. package/lib/output.autoHls/info.js +22 -0
  71. package/lib/output.autoHls/info.js.map +1 -0
  72. package/lib/output.autoHls/runtime.d.ts +6 -0
  73. package/lib/output.autoHls/runtime.js +13 -0
  74. package/lib/output.autoHls/runtime.js.map +1 -0
  75. package/lib/output.preview/info.d.ts +5 -2
  76. package/lib/output.preview/info.js +23 -3
  77. package/lib/output.preview/info.js.map +1 -1
  78. package/lib/output.preview/inline-view.d.ts +2 -4
  79. package/lib/output.preview/inline-view.js +65 -7
  80. package/lib/output.preview/inline-view.js.map +1 -1
  81. package/lib/output.preview/runtime.d.ts +18 -12
  82. package/lib/output.preview/runtime.js +122 -33
  83. package/lib/output.preview/runtime.js.map +1 -1
  84. package/lib/output.preview/types.d.ts +56 -0
  85. package/lib/output.preview/types.js +3 -0
  86. package/lib/output.preview/types.js.map +1 -0
  87. package/lib/output.preview/types.yaml +37 -0
  88. package/lib/output.rtmp/info.js +14 -2
  89. package/lib/output.rtmp/info.js.map +1 -1
  90. package/lib/output.rtmp/inline-view.js +5 -2
  91. package/lib/output.rtmp/inline-view.js.map +1 -1
  92. package/lib/output.rtmp/runtime.d.ts +31 -5
  93. package/lib/output.rtmp/runtime.js +169 -34
  94. package/lib/output.rtmp/runtime.js.map +1 -1
  95. package/lib/output.rtmp/summary-view.d.ts +4 -0
  96. package/lib/output.rtmp/summary-view.js +24 -0
  97. package/lib/output.rtmp/summary-view.js.map +1 -0
  98. package/lib/output.rtmp/types.d.ts +101 -0
  99. package/lib/output.rtmp/types.js +3 -0
  100. package/lib/output.rtmp/types.js.map +1 -0
  101. package/lib/output.rtmp/types.yaml +30 -0
  102. package/lib/output.srt/info.d.ts +2 -2
  103. package/lib/output.srt/info.js +29 -1
  104. package/lib/output.srt/info.js.map +1 -1
  105. package/lib/output.srt/inline-view.d.ts +6 -0
  106. package/lib/output.srt/inline-view.js +8 -0
  107. package/lib/output.srt/inline-view.js.map +1 -0
  108. package/lib/output.srt/runtime.d.ts +35 -5
  109. package/lib/output.srt/runtime.js +174 -6
  110. package/lib/output.srt/runtime.js.map +1 -1
  111. package/lib/output.srt/summary-view.d.ts +4 -0
  112. package/lib/output.srt/summary-view.js +24 -0
  113. package/lib/output.srt/summary-view.js.map +1 -0
  114. package/lib/output.srt/types.d.ts +101 -0
  115. package/lib/output.srt/types.js +3 -0
  116. package/lib/output.srt/types.js.map +1 -0
  117. package/lib/output.srt/types.yaml +31 -0
  118. package/lib/output.statistics/info.js +3 -1
  119. package/lib/output.statistics/info.js.map +1 -1
  120. package/lib/output.statistics/inline-view.js +3 -2
  121. package/lib/output.statistics/inline-view.js.map +1 -1
  122. package/lib/output.statistics/runtime.d.ts +1 -0
  123. package/lib/output.statistics/runtime.js.map +1 -1
  124. package/lib/output.udpTs/info.js +4 -0
  125. package/lib/output.udpTs/info.js.map +1 -1
  126. package/lib/output.udpTs/runtime.d.ts +1 -0
  127. package/lib/output.udpTs/runtime.js.map +1 -1
  128. package/lib/output.whep/info.d.ts +2 -2
  129. package/lib/output.whep/info.js +61 -1
  130. package/lib/output.whep/info.js.map +1 -1
  131. package/lib/output.whep/inline-view.d.ts +4 -0
  132. package/lib/output.whep/inline-view.js +57 -0
  133. package/lib/output.whep/inline-view.js.map +1 -0
  134. package/lib/output.whep/runtime.d.ts +39 -5
  135. package/lib/output.whep/runtime.js +175 -13
  136. package/lib/output.whep/runtime.js.map +1 -1
  137. package/lib/output.whep/summary-view.d.ts +4 -0
  138. package/lib/output.whep/summary-view.js +24 -0
  139. package/lib/output.whep/summary-view.js.map +1 -0
  140. package/lib/output.whep/types.d.ts +101 -0
  141. package/lib/output.whep/types.js +3 -0
  142. package/lib/output.whep/types.js.map +1 -0
  143. package/lib/output.whep/types.yaml +30 -0
  144. package/lib/processor.audioEncoder/form-views.d.ts +8 -0
  145. package/lib/processor.audioEncoder/form-views.js +8 -0
  146. package/lib/processor.audioEncoder/form-views.js.map +1 -0
  147. package/lib/processor.audioEncoder/info.d.ts +3 -0
  148. package/lib/processor.audioEncoder/info.js +160 -0
  149. package/lib/processor.audioEncoder/info.js.map +1 -0
  150. package/lib/processor.audioEncoder/runtime.d.ts +21 -0
  151. package/lib/processor.audioEncoder/runtime.js +20 -0
  152. package/lib/processor.audioEncoder/runtime.js.map +1 -0
  153. package/lib/processor.browserOverlay/info.js +1 -0
  154. package/lib/processor.browserOverlay/info.js.map +1 -1
  155. package/lib/processor.browserOverlay/runtime.d.ts +1 -0
  156. package/lib/processor.browserOverlay/runtime.js +6 -26
  157. package/lib/processor.browserOverlay/runtime.js.map +1 -1
  158. package/lib/processor.browserOverlay/types.js +3 -0
  159. package/lib/processor.browserOverlay/types.js.map +1 -0
  160. package/lib/processor.cascadingSwitch/info.js +3 -2
  161. package/lib/processor.cascadingSwitch/info.js.map +1 -1
  162. package/lib/processor.cascadingSwitch/inline-view.js +3 -3
  163. package/lib/processor.cascadingSwitch/runtime.d.ts +1 -0
  164. package/lib/processor.cascadingSwitch/runtime.js +2 -2
  165. package/lib/processor.cascadingSwitch/runtime.js.map +1 -1
  166. package/lib/processor.fixedLadder/codec-editor.js +1 -1
  167. package/lib/processor.fixedLadder/codec-editor.js.map +1 -1
  168. package/lib/processor.fixedLadder/codec-view.d.ts +1 -1
  169. package/lib/processor.fixedLadder/codec-view.js +1 -1
  170. package/lib/processor.fixedLadder/codec-view.js.map +1 -1
  171. package/lib/processor.fixedLadder/info.d.ts +33 -7
  172. package/lib/processor.fixedLadder/info.js +19 -6
  173. package/lib/processor.fixedLadder/info.js.map +1 -1
  174. package/lib/processor.fixedLadder/runtime.d.ts +16 -29
  175. package/lib/processor.fixedLadder/runtime.js +16 -1
  176. package/lib/processor.fixedLadder/runtime.js.map +1 -1
  177. package/lib/processor.fixedLadder/types.d.ts +240 -0
  178. package/lib/processor.fixedLadder/types.js +3 -0
  179. package/lib/processor.fixedLadder/types.js.map +1 -0
  180. package/lib/processor.fixedLadder/types.yaml +541 -0
  181. package/lib/processor.onscreenGraphic/info.js +11 -5
  182. package/lib/processor.onscreenGraphic/info.js.map +1 -1
  183. package/lib/processor.onscreenGraphic/runtime.d.ts +27 -2
  184. package/lib/processor.onscreenGraphic/runtime.js +116 -52
  185. package/lib/processor.onscreenGraphic/runtime.js.map +1 -1
  186. package/lib/processor.onscreenGraphic/summary-view.d.ts +1 -1
  187. package/lib/processor.onscreenGraphic/summary-view.js +235 -11
  188. package/lib/processor.onscreenGraphic/summary-view.js.map +1 -1
  189. package/lib/processor.onscreenGraphic/types.d.ts +15 -1
  190. package/lib/processor.onscreenGraphic/types.yaml +63 -14
  191. package/lib/processor.streamKeyOverride/info.d.ts +3 -0
  192. package/lib/processor.streamKeyOverride/info.js +151 -0
  193. package/lib/processor.streamKeyOverride/info.js.map +1 -0
  194. package/lib/processor.streamKeyOverride/runtime.d.ts +55 -0
  195. package/lib/processor.streamKeyOverride/runtime.js +226 -0
  196. package/lib/processor.streamKeyOverride/runtime.js.map +1 -0
  197. package/lib/shared/api.d.ts +35 -0
  198. package/lib/shared/api.js +34 -0
  199. package/lib/shared/api.js.map +1 -0
  200. package/lib/test/auto-cmaf.js +219 -43
  201. package/lib/test/auto-cmaf.js.map +1 -1
  202. package/lib/test/onscreen-graphic.js +79 -42
  203. package/lib/test/onscreen-graphic.js.map +1 -1
  204. package/lib/test/preview.js +69 -64
  205. package/lib/test/preview.js.map +1 -1
  206. package/lib/test/rtmp-input.js +6 -3
  207. package/lib/test/rtmp-input.js.map +1 -1
  208. package/lib/test/rtmp-output.js +105 -1
  209. package/lib/test/rtmp-output.js.map +1 -1
  210. package/lib/test/srt-input-listener.js +331 -0
  211. package/lib/test/srt-input-listener.js.map +1 -1
  212. package/lib/test/srt-output.js +93 -4
  213. package/lib/test/srt-output.js.map +1 -1
  214. package/lib/test/whep-output.js +192 -5
  215. package/lib/test/whep-output.js.map +1 -1
  216. package/lib/util.stats.latency/info.js +1 -0
  217. package/lib/util.stats.latency/info.js.map +1 -1
  218. package/lib/util.stats.latency/runtime.d.ts +1 -0
  219. package/lib/util.stats.latency/runtime.js +2 -2
  220. package/lib/util.stats.latency/runtime.js.map +1 -1
  221. package/package.json +4 -4
  222. package/lib/processor.browserOverlay/openApi.js.map +0 -1
  223. package/lib/processor.whisper-transcribe/info.d.ts +0 -3
  224. package/lib/processor.whisper-transcribe/info.js +0 -44
  225. package/lib/processor.whisper-transcribe/info.js.map +0 -1
  226. package/lib/processor.whisper-transcribe/runtime.d.ts +0 -29
  227. package/lib/processor.whisper-transcribe/runtime.js +0 -83
  228. package/lib/processor.whisper-transcribe/runtime.js.map +0 -1
  229. package/lib/util.stats.ma35d/info.d.ts +0 -3
  230. package/lib/util.stats.ma35d/info.js +0 -79
  231. package/lib/util.stats.ma35d/info.js.map +0 -1
  232. package/lib/util.stats.ma35d/inline-view.d.ts +0 -6
  233. package/lib/util.stats.ma35d/inline-view.js +0 -76
  234. package/lib/util.stats.ma35d/inline-view.js.map +0 -1
  235. package/lib/util.stats.ma35d/runtime.d.ts +0 -21
  236. package/lib/util.stats.ma35d/runtime.js +0 -49
  237. package/lib/util.stats.ma35d/runtime.js.map +0 -1
  238. package/lib/util.timestamps/info.d.ts +0 -5
  239. package/lib/util.timestamps/info.js +0 -87
  240. package/lib/util.timestamps/info.js.map +0 -1
  241. package/lib/util.timestamps/inline-view.d.ts +0 -6
  242. package/lib/util.timestamps/inline-view.js +0 -94
  243. package/lib/util.timestamps/inline-view.js.map +0 -1
  244. package/lib/util.timestamps/runtime.d.ts +0 -29
  245. package/lib/util.timestamps/runtime.js +0 -40
  246. package/lib/util.timestamps/runtime.js.map +0 -1
  247. /package/lib/processor.browserOverlay/{openApi.d.ts → types.d.ts} +0 -0
@@ -1,74 +1,253 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const base_nodes_1 = require("@norskvideo/norsk-studio/lib/extension/base-nodes");
6
+ exports.SrtInput = void 0;
7
+ const runtime_types_1 = require("@norskvideo/norsk-studio/lib/extension/runtime-types");
4
8
  const logging_1 = require("@norskvideo/norsk-studio/lib/server/logging");
5
9
  const util_1 = require("@norskvideo/norsk-studio/lib/shared/util");
6
- class SrtInputDefinition {
7
- async create(norsk, cfg, cb, { updates }) {
8
- const wrapper = new base_nodes_1.SimpleInputWrapper(cfg.id, async () => {
9
- const activeStreams = new Map();
10
- return await norsk.input.srt({
11
- mode: 'listener',
12
- sourceName: 'unused',
13
- onConnectionStatusChange(status, sourceName) {
14
- switch (status) {
15
- case 'disconnected':
16
- if (sourceName) {
17
- (0, logging_1.debuglog)("Stream with source name has disconnected, clearing it ", { sourceName });
18
- activeStreams.delete(sourceName);
19
- updates.raiseEvent({ type: "source-disconnected", streamId: sourceName });
20
- }
21
- break;
22
- default:
23
- (0, util_1.assertUnreachable)(status);
24
- }
25
- },
26
- onConnection: (streamId, index, remoteHost) => {
27
- if (cfg.sourceNames == 'permissive') {
28
- if (cfg.streamIds.includes(streamId) && !activeStreams.has(streamId)) {
29
- (0, logging_1.debuglog)("Accepting SRT connection", { streamId, remoteHost });
30
- activeStreams.set(streamId, index);
31
- updates.raiseEvent({ type: "source-connected", streamId });
32
- return {
33
- accept: true,
34
- sourceName: streamId
35
- };
36
- }
37
- const streamName = cfg.streamIds.find((s) => !activeStreams.has(s));
38
- if (!streamName) {
39
- (0, logging_1.debuglog)("Rejecting connection as no stream ids left to assign", { count: index, remoteHost });
40
- return {
41
- accept: false
42
- };
10
+ const promises_1 = __importDefault(require("fs/promises"));
11
+ const json_refs_1 = require("json-refs");
12
+ const path_1 = __importDefault(require("path"));
13
+ const yaml_1 = __importDefault(require("yaml"));
14
+ class SrtInput {
15
+ id;
16
+ relatedMediaNodes = new runtime_types_1.RelatedMediaNodes();
17
+ norsk;
18
+ cfg;
19
+ activeStreams = new Map();
20
+ disabledStreams = new Set();
21
+ initialised;
22
+ srtServer = null;
23
+ updates;
24
+ static async create(norsk, cfg, updates) {
25
+ const node = new SrtInput(norsk, cfg, updates);
26
+ await node.initialised;
27
+ return node;
28
+ }
29
+ constructor(norsk, cfg, updates) {
30
+ this.cfg = cfg;
31
+ this.id = cfg.id;
32
+ this.norsk = norsk;
33
+ this.updates = updates;
34
+ this.initialised = this.initialise();
35
+ }
36
+ async initialise() {
37
+ this.srtServer = await this.norsk.input.srt({
38
+ mode: 'listener',
39
+ sourceName: 'unused',
40
+ id: `${this.cfg.id}-srt-listener`,
41
+ port: this.cfg.port,
42
+ host: this.cfg.host,
43
+ passphrase: this.cfg.passphrase,
44
+ onConnectionStatusChange: (status, sourceName) => {
45
+ switch (status) {
46
+ case 'disconnected':
47
+ if (sourceName) {
48
+ (0, logging_1.debuglog)("Stream with source name has disconnected, clearing it ", { sourceName });
49
+ this.activeStreams.delete(sourceName);
50
+ this.updates.raiseEvent({ type: "source-disconnected", streamId: sourceName });
43
51
  }
44
- (0, logging_1.debuglog)("Accepting SRT connection", { streamName, remoteHost });
45
- updates.raiseEvent({ type: "source-connected", streamId: streamName });
46
- activeStreams.set(streamName, index);
52
+ break;
53
+ default:
54
+ (0, util_1.assertUnreachable)(status);
55
+ }
56
+ },
57
+ onConnection: (streamId, index, remoteHost) => {
58
+ if (this.disabledStreams.has(streamId)) {
59
+ (0, logging_1.debuglog)("Rejecting connection as stream is presently disabled", { count: index, remoteHost });
60
+ return {
61
+ accept: false
62
+ };
63
+ }
64
+ if (this.cfg.sourceNames == 'permissive') {
65
+ if (this.cfg.streamIds.includes(streamId) && !this.activeStreams.has(streamId)) {
66
+ (0, logging_1.debuglog)("Accepting SRT connection", { streamId, remoteHost });
67
+ this.activeStreams.set(streamId, index);
68
+ this.updates.raiseEvent({ type: "source-connected", streamId });
47
69
  return {
48
70
  accept: true,
49
- sourceName: streamName
71
+ sourceName: streamId
50
72
  };
51
73
  }
52
- else {
53
- if (cfg.streamIds.includes(streamId)) {
54
- (0, logging_1.debuglog)("Accepting SRT connection", { streamId, remoteHost });
55
- activeStreams.set(streamId, index);
56
- return {
57
- accept: true,
58
- sourceName: streamId
59
- };
60
- }
61
- (0, logging_1.debuglog)("Rejecting connection with unknown streamId", { streamId, remoteHost });
74
+ const streamName = this.cfg.streamIds.find((s) => !this.activeStreams.has(s));
75
+ if (!streamName) {
76
+ (0, logging_1.debuglog)("Rejecting connection as no stream ids left to assign", { count: index, remoteHost });
62
77
  return {
63
78
  accept: false
64
79
  };
65
80
  }
66
- },
67
- ...cfg
68
- });
81
+ (0, logging_1.debuglog)("Accepting SRT connection", { streamName, remoteHost });
82
+ this.updates.raiseEvent({ type: "source-connected", streamId: streamName });
83
+ this.activeStreams.set(streamName, index);
84
+ return {
85
+ accept: true,
86
+ sourceName: streamName
87
+ };
88
+ }
89
+ else {
90
+ if (this.activeStreams.has(streamId)) {
91
+ (0, logging_1.debuglog)("Rejecting SRT connection because streamId already is connected", { streamId, remoteHost });
92
+ return {
93
+ accept: false,
94
+ };
95
+ }
96
+ if (this.cfg.streamIds.includes(streamId)) {
97
+ (0, logging_1.debuglog)("Accepting SRT connection", { streamId, remoteHost });
98
+ this.updates.raiseEvent({ type: "source-connected", streamId });
99
+ this.activeStreams.set(streamId, index);
100
+ return {
101
+ accept: true,
102
+ sourceName: streamId
103
+ };
104
+ }
105
+ (0, logging_1.debuglog)("Rejecting connection with unknown streamId", { streamId, remoteHost });
106
+ return {
107
+ accept: false
108
+ };
109
+ }
110
+ },
111
+ onClose: () => {
112
+ },
113
+ onCreate: (node) => {
114
+ this.relatedMediaNodes.addOutput(node);
115
+ }
69
116
  });
70
- await wrapper.initialised;
71
- cb(wrapper);
117
+ }
118
+ async enableSource(streamId) {
119
+ this.disabledStreams.delete(streamId);
120
+ this.updates.raiseEvent({
121
+ type: 'source-enabled',
122
+ streamId
123
+ });
124
+ }
125
+ async disableSource(streamId) {
126
+ this.disabledStreams.add(streamId);
127
+ await this.resetSource(streamId);
128
+ this.updates.raiseEvent({
129
+ type: 'source-disabled',
130
+ streamId
131
+ });
132
+ }
133
+ async resetSource(streamId) {
134
+ if (this.srtServer) {
135
+ const index = this.activeStreams.get(streamId);
136
+ if (index !== undefined) {
137
+ this.srtServer.closeStream(index);
138
+ }
139
+ }
140
+ }
141
+ }
142
+ exports.SrtInput = SrtInput;
143
+ function coreInfo(path, op) {
144
+ return {
145
+ url: path,
146
+ summary: op.summary,
147
+ description: op.description,
148
+ requestBody: op.requestBody,
149
+ responses: op.responses,
150
+ };
151
+ }
152
+ function post(path, paths) {
153
+ return {
154
+ ...coreInfo(path, paths[path]['post']),
155
+ method: 'POST',
156
+ };
157
+ }
158
+ class SrtInputDefinition {
159
+ async create(norsk, cfg, cb, runtime) {
160
+ const node = await SrtInput.create(norsk, cfg, runtime.updates);
161
+ cb(node);
162
+ }
163
+ async handleCommand(node, command) {
164
+ const commandType = command.type;
165
+ switch (commandType) {
166
+ case 'disable-source':
167
+ await node.disableSource(command.streamId);
168
+ break;
169
+ case 'enable-source':
170
+ await node.enableSource(command.streamId);
171
+ break;
172
+ case 'reset-source':
173
+ await node.resetSource(command.streamId);
174
+ break;
175
+ default:
176
+ (0, util_1.assertUnreachable)(commandType);
177
+ }
178
+ }
179
+ async instanceRoutes() {
180
+ const types = await promises_1.default.readFile(path_1.default.join(__dirname, 'types.yaml'));
181
+ const root = yaml_1.default.parse(types.toString());
182
+ const resolved = await (0, json_refs_1.resolveRefs)(root, {}).then((r) => r.resolved);
183
+ const paths = resolved.paths;
184
+ return [
185
+ {
186
+ ...post('/disconnect', paths),
187
+ handler: ({ runtime }) => async (req, res) => {
188
+ try {
189
+ const { streamId } = req.body;
190
+ if (!streamId) {
191
+ return res.status(400).json({ error: 'Stream name is required' });
192
+ }
193
+ const state = runtime.updates.latest();
194
+ (0, logging_1.infolog)("Current state during disconnect:", state);
195
+ if (!state.connectedStreams.includes(streamId)) {
196
+ return res.status(404).json({ error: 'Stream not found or not connected' });
197
+ }
198
+ runtime.updates.sendCommand({
199
+ type: 'reset-source',
200
+ streamId
201
+ });
202
+ res.status(204).send();
203
+ }
204
+ catch (error) {
205
+ (0, logging_1.errorlog)('Error in disconnect handler:', error);
206
+ res.status(500).json({ error: 'Failed to disconnect stream' });
207
+ }
208
+ }
209
+ },
210
+ {
211
+ ...post('/enable', paths),
212
+ handler: ({ runtime }) => async (req, res) => {
213
+ try {
214
+ const { streamId } = req.body;
215
+ if (!streamId) {
216
+ return res.status(400).json({ error: 'Stream name is required' });
217
+ }
218
+ runtime.updates.sendCommand({
219
+ type: 'enable-source',
220
+ streamId
221
+ });
222
+ res.status(204).send();
223
+ }
224
+ catch (error) {
225
+ console.error('Error in disconnect handler:', error);
226
+ res.status(500).json({ error: 'Failed to disconnect stream' });
227
+ }
228
+ }
229
+ },
230
+ {
231
+ ...post('/disable', paths),
232
+ handler: ({ runtime }) => async (req, res) => {
233
+ try {
234
+ const { streamId } = req.body;
235
+ if (!streamId) {
236
+ return res.status(400).json({ error: 'Stream name is required' });
237
+ }
238
+ runtime.updates.sendCommand({
239
+ type: 'disable-source',
240
+ streamId
241
+ });
242
+ res.status(204).send();
243
+ }
244
+ catch (error) {
245
+ console.error('Error in disconnect handler:', error);
246
+ res.status(500).json({ error: 'Failed to disconnect stream' });
247
+ }
248
+ }
249
+ }
250
+ ];
72
251
  }
73
252
  }
74
253
  exports.default = SrtInputDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/input.srt-listener/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/input.srt-listener/runtime.ts"],"names":[],"mappings":";;;;;;AAEA,wFAAmM;AACnM,yEAA0F;AAC1F,mEAA6E;AAE7E,2DAA6B;AAC7B,yCAAwC;AACxC,gDAAwB;AACxB,gDAAwB;AAyCxB,MAAa,QAAQ;IACnB,EAAE,CAAS;IACX,iBAAiB,GAAsB,IAAI,iCAAiB,EAAE,CAAC;IAE/D,KAAK,CAAQ;IACb,GAAG,CAAmB;IAEtB,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,WAAW,CAAgB;IAC3B,SAAS,GAAwB,IAAI,CAAC;IAEtC,OAAO,CAAgE;IAEvE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,GAAqB,EAAE,OAAsE;QAC7H,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,KAAY,EAAE,GAAqB,EAAE,OAAsE;QACrH,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1C,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,QAAQ;YACpB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,eAAe;YACjC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;YAE/B,wBAAwB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;gBAC/C,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,cAAc;wBACjB,IAAI,UAAU,EAAE,CAAC;4BACf,IAAA,kBAAQ,EAAC,wDAAwD,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;4BACnF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;4BACtC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;wBACjF,CAAC;wBACD,MAAM;oBACR;wBACE,IAAA,wBAAiB,EAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YACD,YAAY,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC5C,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvC,IAAA,kBAAQ,EAAC,sDAAsD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;oBAC/F,OAAO;wBACL,MAAM,EAAE,KAAK;qBACd,CAAC;gBACJ,CAAC;gBACD,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,YAAY,EAAE,CAAC;oBACzC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC/E,IAAA,kBAAQ,EAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;wBAC/D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;wBACxC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAChE,OAAO;4BACL,MAAM,EAAE,IAAI;4BACZ,UAAU,EAAE,QAAQ;yBACrB,CAAC;oBACJ,CAAC;oBACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9E,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,IAAA,kBAAQ,EAAC,sDAAsD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;wBAC/F,OAAO;4BACL,MAAM,EAAE,KAAK;yBACd,CAAC;oBACJ,CAAC;oBACD,IAAA,kBAAQ,EAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;oBACjE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;oBAC5E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC1C,OAAO;wBACL,MAAM,EAAE,IAAI;wBACZ,UAAU,EAAE,UAAU;qBACvB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrC,IAAA,kBAAQ,EAAC,gEAAgE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;wBACrG,OAAO;4BACL,MAAM,EAAE,KAAK;yBACd,CAAC;oBACJ,CAAC;oBACD,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1C,IAAA,kBAAQ,EAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;wBAC/D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAChE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;wBACxC,OAAO;4BACL,MAAM,EAAE,IAAI;4BACZ,UAAU,EAAE,QAAQ;yBACrB,CAAC;oBACJ,CAAC;oBACD,IAAA,kBAAQ,EAAC,4CAA4C,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;oBACjF,OAAO;wBACL,MAAM,EAAE,KAAK;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,EAAE,GAAG,EAAE;YACd,CAAC;YAED,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,gBAAgB;YACtB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,iBAAiB;YACvB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA3ID,4BA2IC;AAKD,SAAS,QAAQ,CAAI,IAAa,EAAE,EAA6B;IAC/D,OAAO;QACL,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,SAAS,EAAE,EAAE,CAAC,SAAS;KACxB,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAI,IAAa,EAAE,KAAoB;IAClD,OAAO;QACL,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAE,CAAC;QACvC,MAAM,EAAE,MAAe;KACxB,CAAA;AACH,CAAC;AAED,MAAqB,kBAAkB;IACrC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,GAAqB,EAAE,EAAuB,EAAE,OAAqE;QAC9I,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,EAAE,CAAC,IAAI,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAc,EAAE,OAAwB;QAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,gBAAgB;gBACnB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACzC,MAAM;YACR;gBACE,IAAA,wBAAiB,EAAC,WAAW,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAW,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAA8B,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA0B,CAAC;QAElD,OAAO;YACL;gBACE,GAAG,IAAI,CAAQ,aAAa,EAAE,KAAK,CAAC;gBACpC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC3C,IAAI,CAAC;wBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;wBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;wBACpE,CAAC;wBAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;wBACvC,IAAA,iBAAO,EAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;wBAEnD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;wBAC9E,CAAC;wBACD,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;4BAC1B,IAAI,EAAE,cAAc;4BACpB,QAAQ;yBACT,CAAC,CAAA;wBACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAA,kBAAQ,EAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;wBAChD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;aACF;YACD;gBACE,GAAG,IAAI,CAAQ,SAAS,EAAE,KAAK,CAAC;gBAChC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC3C,IAAI,CAAC;wBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;wBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;wBACpE,CAAC;wBAED,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;4BAC1B,IAAI,EAAE,eAAe;4BACrB,QAAQ;yBACT,CAAC,CAAA;wBACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;wBACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;aACF;YACD;gBACE,GAAG,IAAI,CAAQ,UAAU,EAAE,KAAK,CAAC;gBACjC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC3C,IAAI,CAAC;wBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;wBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;wBACpE,CAAC;wBACD,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;4BAC1B,IAAI,EAAE,gBAAgB;4BACtB,QAAQ;yBACT,CAAC,CAAA;wBACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;wBACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAjGD,qCAiGC"}
@@ -1,6 +1,4 @@
1
- import { SrtInputSettings, SrtInputState } from "./runtime";
2
- declare function SummaryView({ state, config }: {
3
- state: SrtInputState;
4
- config: SrtInputSettings;
5
- }): import("react/jsx-runtime").JSX.Element;
1
+ import { ViewProps } from "@norskvideo/norsk-studio/lib/extension/client-types";
2
+ import { SrtInputCommand, SrtInputSettings, SrtInputState } from "./runtime";
3
+ declare function SummaryView({ state, config, sendCommand }: ViewProps<SrtInputSettings, SrtInputState, SrtInputCommand>): import("react/jsx-runtime").JSX.Element;
6
4
  export default SummaryView;
@@ -1,10 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
- function SummaryView({ state, config }) {
4
+ function SummaryView({ state, config, sendCommand }) {
5
5
  const connectedSources = [];
6
6
  const disconnectedSources = [];
7
+ const resetStream = async (streamId) => {
8
+ try {
9
+ sendCommand({
10
+ type: "reset-source",
11
+ streamId
12
+ });
13
+ }
14
+ catch (error) {
15
+ console.error("Failed to disconnect stream:", error);
16
+ }
17
+ };
18
+ const disableStream = async (streamId) => {
19
+ try {
20
+ sendCommand({
21
+ type: "disable-source",
22
+ streamId
23
+ });
24
+ }
25
+ catch (error) {
26
+ console.error("Failed to disable stream:", error);
27
+ }
28
+ };
29
+ const enableStream = async (streamId) => {
30
+ try {
31
+ sendCommand({
32
+ type: "enable-source",
33
+ streamId
34
+ });
35
+ }
36
+ catch (error) {
37
+ console.error("Failed to enable stream:", error);
38
+ }
39
+ };
40
+ const handleResetStream = (streamId) => {
41
+ void resetStream(streamId);
42
+ };
43
+ const handleDisableStream = (streamId) => {
44
+ void disableStream(streamId);
45
+ };
46
+ const handleEnableStream = (streamId) => {
47
+ void enableStream(streamId);
48
+ };
7
49
  config.streamIds.forEach((streamId) => {
50
+ console.log(config.streamIds, state);
8
51
  if (state.connectedStreams.includes(streamId)) {
9
52
  connectedSources.push(streamId);
10
53
  }
@@ -12,11 +55,7 @@ function SummaryView({ state, config }) {
12
55
  disconnectedSources.push(streamId);
13
56
  }
14
57
  });
15
- return (0, jsx_runtime_1.jsxs)("div", { className: "dark:text-white text-black mb-3 w-60", children: [(0, jsx_runtime_1.jsxs)("div", { id: "srt-sources-connected", children: [(0, jsx_runtime_1.jsx)("span", { children: "Sources connected" }), (0, jsx_runtime_1.jsx)("ul", { children: connectedSources.map((streamId) => {
16
- return (0, jsx_runtime_1.jsx)("li", { className: "text-green-300", children: streamId }, streamId);
17
- }) })] }), (0, jsx_runtime_1.jsxs)("div", { id: "srt-sources-disconnected", className: "mt-3", children: [(0, jsx_runtime_1.jsx)("span", { children: "Sources disconnected" }), (0, jsx_runtime_1.jsx)("ul", { children: disconnectedSources.map((streamId) => {
18
- return (0, jsx_runtime_1.jsx)("li", { className: "text-orange-300", children: streamId }, streamId);
19
- }) })] })] });
58
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "dark:text-white text-black w-60", children: [(0, jsx_runtime_1.jsxs)("div", { className: "mb-6", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-semibold mb-2 dark:text-gray-300", children: "Connected Sources" }), (0, jsx_runtime_1.jsxs)("ul", { className: "space-y-2", children: [connectedSources.map((streamId) => ((0, jsx_runtime_1.jsxs)("li", { className: "flex items-center justify-between group", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-green-400 font-medium", children: streamId }), (0, jsx_runtime_1.jsxs)("div", { className: "flex space-x-2", children: [(0, jsx_runtime_1.jsx)("button", { onClick: () => handleResetStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Reset" }), (0, jsx_runtime_1.jsx)("button", { onClick: () => handleDisableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Disable" })] })] }, streamId))), connectedSources.length === 0 && ((0, jsx_runtime_1.jsx)("li", { className: "text-sm text-gray-500 dark:text-gray-400 italic", children: "No connected sources" }))] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-semibold mb-2 dark:text-gray-300", children: "Disconnected Sources" }), (0, jsx_runtime_1.jsxs)("ul", { className: "space-y-2", children: [disconnectedSources.map((streamId) => ((0, jsx_runtime_1.jsxs)("li", { className: "flex items-center justify-between group", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-orange-300 font-medium", children: streamId }), state.disabledStreams.includes(streamId) ? ((0, jsx_runtime_1.jsx)("button", { onClick: () => handleEnableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded transition-colors", children: "Enable" })) : ((0, jsx_runtime_1.jsx)("button", { onClick: () => handleDisableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Disable" }))] }, streamId))), disconnectedSources.length === 0 && ((0, jsx_runtime_1.jsx)("li", { className: "text-sm text-gray-500 dark:text-gray-400 italic", children: "No disconnected sources" }))] })] })] }));
20
59
  }
21
60
  exports.default = SummaryView;
22
61
  //# sourceMappingURL=summary-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/input.srt-listener/summary-view.tsx"],"names":[],"mappings":";;;AAEA,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAsD;IACxF,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACpC,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,iCAAK,SAAS,EAAC,sCAAsC,aAC1D,iCAAK,EAAE,EAAC,uBAAuB,aAC7B,iEAA8B,EAC9B,yCACG,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;4BACjC,OAAO,+BAAmB,SAAS,EAAC,gBAAgB,YAAE,QAAQ,IAA9C,QAAQ,CAA4C,CAAA;wBACtE,CAAC,CAAC,GACC,IACD,EACN,iCAAK,EAAE,EAAC,0BAA0B,EAAC,SAAS,EAAC,MAAM,aACjD,oEAAiC,EACjC,yCACG,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;4BACpC,OAAO,+BAAmB,SAAS,EAAC,iBAAiB,YAAE,QAAQ,IAA/C,QAAQ,CAA6C,CAAA;wBACvE,CAAC,CAAC,GACC,IACD,IACF,CAAA;AACR,CAAC;AAED,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/input.srt-listener/summary-view.tsx"],"names":[],"mappings":";;;AAGA,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAgE;IAC/G,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,mBAAmB,GAAa,EAAE,CAAC;IAEzC,MAAM,WAAW,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,WAAW,CAAC;gBACV,IAAI,EAAE,cAAc;gBACpB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,WAAW,CAAC;gBACV,IAAI,EAAE,gBAAgB;gBACtB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;QAC9C,IAAI,CAAC;YAEH,WAAW,CAAC;gBACV,IAAI,EAAE,eAAe;gBACrB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACnD,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACrD,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACpD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,CACL,iCAAK,SAAS,EAAC,iCAAiC,aAC9C,iCAAK,SAAS,EAAC,MAAM,aACnB,+BAAI,SAAS,EAAC,+CAA+C,kCAAuB,EACpF,gCAAI,SAAS,EAAC,WAAW,aACtB,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAClC,gCAAmB,SAAS,EAAC,yCAAyC,aACpE,iCAAM,SAAS,EAAC,4BAA4B,YAAE,QAAQ,GAAQ,EAC9D,iCAAK,SAAS,EAAC,gBAAgB,aAC7B,mCACE,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAC1C,SAAS,EAAC,uHAAuH,sBAG1H,EACT,mCACE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAC5C,SAAS,EAAC,uHAAuH,wBAG1H,IACL,KAfC,QAAQ,CAgBZ,CACN,CAAC,EACD,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAChC,+BAAI,SAAS,EAAC,iDAAiD,qCAA0B,CAC1F,IACE,IACD,EACN,4CACE,+BAAI,SAAS,EAAC,+CAA+C,qCAA0B,EACvF,gCAAI,SAAS,EAAC,WAAW,aACtB,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACrC,gCAAmB,SAAS,EAAC,yCAAyC,aACpE,iCAAM,SAAS,EAAC,6BAA6B,YAAE,QAAQ,GAAQ,EAC9D,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC1C,mCACE,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAC3C,SAAS,EAAC,yHAAyH,uBAG5H,CACV,CAAC,CAAC,CAAC,CACF,mCACE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAC5C,SAAS,EAAC,uHAAuH,wBAG1H,CACV,KAhBM,QAAQ,CAiBZ,CACN,CAAC,EACD,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,CACnC,+BAAI,SAAS,EAAC,iDAAiD,wCAA6B,CAC7F,IACE,IACD,IACF,CACP,CAAC;AACJ,CAAC;AAED,kBAAe,WAAW,CAAC"}
@@ -0,0 +1,193 @@
1
+ export interface paths {
2
+ "/disconnect": {
3
+ parameters: {
4
+ query?: never;
5
+ header?: never;
6
+ path?: never;
7
+ cookie?: never;
8
+ };
9
+ get?: never;
10
+ put?: never;
11
+ post: {
12
+ parameters: {
13
+ query?: never;
14
+ header?: never;
15
+ path?: never;
16
+ cookie?: never;
17
+ };
18
+ requestBody?: {
19
+ content: {
20
+ "application/json": {
21
+ streamId: string;
22
+ };
23
+ };
24
+ };
25
+ responses: {
26
+ 204: {
27
+ headers: {
28
+ [name: string]: unknown;
29
+ };
30
+ content?: never;
31
+ };
32
+ 404: {
33
+ headers: {
34
+ [name: string]: unknown;
35
+ };
36
+ content: {
37
+ "application/json": {
38
+ error?: string;
39
+ details?: string;
40
+ };
41
+ };
42
+ };
43
+ 500: {
44
+ headers: {
45
+ [name: string]: unknown;
46
+ };
47
+ content: {
48
+ "application/json": {
49
+ error?: string;
50
+ details?: string;
51
+ };
52
+ };
53
+ };
54
+ };
55
+ };
56
+ delete?: never;
57
+ options?: never;
58
+ head?: never;
59
+ patch?: never;
60
+ trace?: never;
61
+ };
62
+ "/enable": {
63
+ parameters: {
64
+ query?: never;
65
+ header?: never;
66
+ path?: never;
67
+ cookie?: never;
68
+ };
69
+ get?: never;
70
+ put?: never;
71
+ post: {
72
+ parameters: {
73
+ query?: never;
74
+ header?: never;
75
+ path?: never;
76
+ cookie?: never;
77
+ };
78
+ requestBody?: {
79
+ content: {
80
+ "application/json": {
81
+ streamId: string;
82
+ };
83
+ };
84
+ };
85
+ responses: {
86
+ 204: {
87
+ headers: {
88
+ [name: string]: unknown;
89
+ };
90
+ content?: never;
91
+ };
92
+ 400: {
93
+ headers: {
94
+ [name: string]: unknown;
95
+ };
96
+ content: {
97
+ "application/json": {
98
+ error?: string;
99
+ details?: string;
100
+ };
101
+ };
102
+ };
103
+ 500: {
104
+ headers: {
105
+ [name: string]: unknown;
106
+ };
107
+ content: {
108
+ "application/json": {
109
+ error?: string;
110
+ details?: string;
111
+ };
112
+ };
113
+ };
114
+ };
115
+ };
116
+ delete?: never;
117
+ options?: never;
118
+ head?: never;
119
+ patch?: never;
120
+ trace?: never;
121
+ };
122
+ "/disable": {
123
+ parameters: {
124
+ query?: never;
125
+ header?: never;
126
+ path?: never;
127
+ cookie?: never;
128
+ };
129
+ get?: never;
130
+ put?: never;
131
+ post: {
132
+ parameters: {
133
+ query?: never;
134
+ header?: never;
135
+ path?: never;
136
+ cookie?: never;
137
+ };
138
+ requestBody?: {
139
+ content: {
140
+ "application/json": {
141
+ streamId: string;
142
+ };
143
+ };
144
+ };
145
+ responses: {
146
+ 204: {
147
+ headers: {
148
+ [name: string]: unknown;
149
+ };
150
+ content?: never;
151
+ };
152
+ 400: {
153
+ headers: {
154
+ [name: string]: unknown;
155
+ };
156
+ content: {
157
+ "application/json": {
158
+ error?: string;
159
+ details?: string;
160
+ };
161
+ };
162
+ };
163
+ 500: {
164
+ headers: {
165
+ [name: string]: unknown;
166
+ };
167
+ content: {
168
+ "application/json": {
169
+ error?: string;
170
+ details?: string;
171
+ };
172
+ };
173
+ };
174
+ };
175
+ };
176
+ delete?: never;
177
+ options?: never;
178
+ head?: never;
179
+ patch?: never;
180
+ trace?: never;
181
+ };
182
+ }
183
+ export type webhooks = Record<string, never>;
184
+ export interface components {
185
+ schemas: never;
186
+ responses: never;
187
+ parameters: never;
188
+ requestBodies: never;
189
+ headers: never;
190
+ pathItems: never;
191
+ }
192
+ export type $defs = Record<string, never>;
193
+ export type operations = Record<string, never>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/input.srt-listener/types.ts"],"names":[],"mappings":""}