@norskvideo/norsk-studio-built-ins 1.12.0-2025-01-28-9ee30e1e → 1.12.0-2025-02-02-6cada821

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.
package/client/info.js CHANGED
@@ -52,11 +52,11 @@ __export(inline_view_exports, {
52
52
  });
53
53
  function InlineView({ state, config }) {
54
54
  const maxSourceNum = 4;
55
- const sourcesToRender = state.connectedSources.slice(0, maxSourceNum);
56
- if (state.connectedSources.length > maxSourceNum) {
55
+ const sourcesToRender = state.connectedStreams.slice(0, maxSourceNum);
56
+ if (state.connectedStreams.length > maxSourceNum) {
57
57
  sourcesToRender.push("...");
58
58
  }
59
- const connectedSources = (0, import_jsx_runtime.jsxs)("div", { className: "mt-2", children: [state.connectedSources.length > 0 ? (0, import_jsx_runtime.jsx)("span", { children: "Connected sources" }) : (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}), (0, import_jsx_runtime.jsx)("ul", { className: "rtmp-input-connected-sources", children: sourcesToRender.map((sourceName) => {
59
+ const connectedSources = (0, import_jsx_runtime.jsxs)("div", { className: "mt-2", children: [state.connectedStreams.length > 0 ? (0, import_jsx_runtime.jsx)("span", { children: "Connected sources" }) : (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}), (0, import_jsx_runtime.jsx)("ul", { className: "rtmp-input-connected-sources", children: sourcesToRender.map((sourceName) => {
60
60
  return (0, import_jsx_runtime.jsx)("li", { className: "text-green-300", children: sourceName }, sourceName);
61
61
  }) })] });
62
62
  return (0, import_jsx_runtime.jsx)("div", { className: "rtmp-input", id: `rtmp-input-${config.id}`, children: connectedSources });
@@ -75,40 +75,60 @@ var summary_view_exports = {};
75
75
  __export(summary_view_exports, {
76
76
  default: () => summary_view_default
77
77
  });
78
- function SummaryView({ state, config, urls, sendCommand }) {
78
+ function SummaryView({ state, config, sendCommand }) {
79
79
  const connectedSources = [];
80
80
  const disconnectedSources = [];
81
- config.streamNames.forEach((streamName) => {
82
- if (state.connectedSources.includes(streamName)) {
83
- connectedSources.push(streamName);
84
- } else {
85
- disconnectedSources.push(streamName);
81
+ const resetStream = async (streamName) => {
82
+ try {
83
+ sendCommand({
84
+ type: "reset-source",
85
+ streamName
86
+ });
87
+ } catch (error) {
88
+ console.error("Failed to disconnect stream:", error);
86
89
  }
87
- });
88
- const handleDisconnectStream = (streamName) => {
89
- void disconnectStream(streamName);
90
90
  };
91
- const disconnectStream = async (streamName) => {
91
+ const disableStream = async (streamName) => {
92
92
  try {
93
- const response = await fetch(`${urls.staticUrl}/disconnect`, {
94
- method: "POST",
95
- headers: {
96
- "Content-Type": "application/json"
97
- },
98
- body: JSON.stringify({ streamName })
93
+ sendCommand({
94
+ type: "disable-source",
95
+ streamName
99
96
  });
100
- if (!response.ok) {
101
- console.error("Stream failed to disconnect");
102
- }
97
+ } catch (error) {
98
+ console.error("Failed to disable stream:", error);
99
+ }
100
+ };
101
+ const enableStream = async (streamName) => {
102
+ try {
103
103
  sendCommand({
104
- type: "disconnect-source",
104
+ type: "enable-source",
105
105
  streamName
106
106
  });
107
107
  } catch (error) {
108
- console.error("Failed to disconnect stream:", error);
108
+ console.error("Failed to enable stream:", error);
109
109
  }
110
110
  };
111
- return (0, import_jsx_runtime2.jsxs)("div", { className: "dark:text-white text-black mb-3 w-60", children: [(0, import_jsx_runtime2.jsxs)("div", { id: "rtmp-sources-connected", children: [(0, import_jsx_runtime2.jsx)("span", { children: "Sources connected" }), (0, import_jsx_runtime2.jsx)("ul", { children: connectedSources.map((streamName) => (0, import_jsx_runtime2.jsxs)("li", { className: "flex items-center justify-between", children: [(0, import_jsx_runtime2.jsx)("span", { className: "text-green-300", children: streamName }), (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleDisconnectStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disconnect" })] }, streamName)) })] }), (0, import_jsx_runtime2.jsxs)("div", { id: "rtmp-sources-disconnected", className: "mt-3", children: [(0, import_jsx_runtime2.jsx)("span", { children: "Sources disconnected" }), (0, import_jsx_runtime2.jsx)("ul", { children: disconnectedSources.map((streamName) => (0, import_jsx_runtime2.jsx)("li", { className: "flex items-center justify-between", children: (0, import_jsx_runtime2.jsx)("span", { className: "text-orange-300", children: streamName }) }, streamName)) })] })] });
111
+ const handleResetStream = (streamName) => {
112
+ void resetStream(streamName);
113
+ };
114
+ const handleDisableStream = (streamName) => {
115
+ void disableStream(streamName);
116
+ };
117
+ const handleEnableStream = (streamName) => {
118
+ void enableStream(streamName);
119
+ };
120
+ config.streamNames.forEach((streamName) => {
121
+ if (state.connectedStreams.includes(streamName)) {
122
+ connectedSources.push(streamName);
123
+ } else {
124
+ disconnectedSources.push(streamName);
125
+ }
126
+ });
127
+ return (0, import_jsx_runtime2.jsxs)("div", { className: "dark:text-white text-black mb-3 w-60", children: [(0, import_jsx_runtime2.jsxs)("div", { id: "rtmp-sources-connected", children: [(0, import_jsx_runtime2.jsx)("span", { children: "Connected Sources" }), (0, import_jsx_runtime2.jsx)("ul", { children: connectedSources.map((streamName) => {
128
+ return (0, import_jsx_runtime2.jsxs)("li", { className: "text-green-300", children: [streamName, (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleResetStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Reset" }), (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleDisableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable" })] }, streamName);
129
+ }) })] }), (0, import_jsx_runtime2.jsxs)("div", { id: "rtmp-sources-disconnected", className: "mt-3", children: [(0, import_jsx_runtime2.jsx)("span", { children: "Disconnected Sources" }), (0, import_jsx_runtime2.jsx)("ul", { children: disconnectedSources.map((streamName) => {
130
+ return (0, import_jsx_runtime2.jsxs)("li", { className: "text-orange-300", children: [streamName, state.disabledStreams.includes(streamName) ? (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleEnableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable" }) : (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleDisableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable" })] }, streamName);
131
+ }) })] })] });
112
132
  }
113
133
  var import_jsx_runtime2, summary_view_default;
114
134
  var init_summary_view = __esm({
@@ -166,21 +186,11 @@ var summary_view_exports2 = {};
166
186
  __export(summary_view_exports2, {
167
187
  default: () => summary_view_default2
168
188
  });
169
- function SummaryView3({ state, config, urls, sendCommand }) {
189
+ function SummaryView3({ state, config, sendCommand }) {
170
190
  const connectedSources = [];
171
191
  const disconnectedSources = [];
172
192
  const resetStream = async (streamId) => {
173
193
  try {
174
- const response = await fetch(`${urls.instanceUrl}/disconnect`, {
175
- method: "POST",
176
- headers: {
177
- "Content-Type": "application/json"
178
- },
179
- body: JSON.stringify({ streamId })
180
- });
181
- if (!response.ok) {
182
- console.error("Stream failed to disconnect");
183
- }
184
194
  sendCommand({
185
195
  type: "reset-source",
186
196
  streamId
@@ -191,18 +201,8 @@ function SummaryView3({ state, config, urls, sendCommand }) {
191
201
  };
192
202
  const disableStream = async (streamId) => {
193
203
  try {
194
- const response = await fetch(`${urls.instanceUrl}/disable`, {
195
- method: "POST",
196
- headers: {
197
- "Content-Type": "application/json"
198
- },
199
- body: JSON.stringify({ streamId })
200
- });
201
- if (!response.ok) {
202
- console.error("Failed to disable stream");
203
- }
204
204
  sendCommand({
205
- type: "reset-source",
205
+ type: "disable-source",
206
206
  streamId
207
207
  });
208
208
  } catch (error) {
@@ -211,18 +211,8 @@ function SummaryView3({ state, config, urls, sendCommand }) {
211
211
  };
212
212
  const enableStream = async (streamId) => {
213
213
  try {
214
- const response = await fetch(`${urls.instanceUrl}/enable`, {
215
- method: "POST",
216
- headers: {
217
- "Content-Type": "application/json"
218
- },
219
- body: JSON.stringify({ streamId })
220
- });
221
- if (!response.ok) {
222
- console.error("Failed to enable stream");
223
- }
224
214
  sendCommand({
225
- type: "reset-source",
215
+ type: "enable-source",
226
216
  streamId
227
217
  });
228
218
  } catch (error) {
@@ -15925,15 +15915,21 @@ function info_default({ defineComponent, Av, validation: { Z, Port, SourceName,
15925
15915
  };
15926
15916
  },
15927
15917
  runtime: {
15928
- initialState: () => ({ connectedSources: [] }),
15918
+ initialState: () => ({ connectedStreams: [], disabledStreams: [] }),
15929
15919
  handleEvent(ev, state) {
15930
15920
  const evType = ev.type;
15931
15921
  switch (evType) {
15932
15922
  case "source-connected":
15933
- state.connectedSources.push(ev.streamName);
15923
+ state.connectedStreams.push(ev.streamName);
15934
15924
  break;
15935
15925
  case "source-disconnected":
15936
- state.connectedSources = state.connectedSources.filter((s) => s !== ev.streamName);
15926
+ state.connectedStreams = state.connectedStreams.filter((s) => s !== ev.streamName);
15927
+ break;
15928
+ case "source-enabled":
15929
+ state.disabledStreams = state.disabledStreams.filter((streamName) => streamName !== ev.streamName);
15930
+ break;
15931
+ case "source-disabled":
15932
+ state.disabledStreams.push(ev.streamName);
15937
15933
  break;
15938
15934
  default:
15939
15935
  assertUnreachable(evType);
package/client/style.css CHANGED
@@ -318,10 +318,6 @@
318
318
  justify-content: center;
319
319
  }
320
320
 
321
- .justify-between {
322
- justify-content: space-between;
323
- }
324
-
325
321
  .gap-2 {
326
322
  gap: 0.5rem;
327
323
  }
@@ -60,15 +60,21 @@ function default_1({ defineComponent, Av, validation: { Z, Port, SourceName, uni
60
60
  };
61
61
  },
62
62
  runtime: {
63
- initialState: () => ({ connectedSources: [] }),
63
+ initialState: () => ({ connectedStreams: [], disabledStreams: [] }),
64
64
  handleEvent(ev, state) {
65
65
  const evType = ev.type;
66
66
  switch (evType) {
67
67
  case "source-connected":
68
- state.connectedSources.push(ev.streamName);
68
+ state.connectedStreams.push(ev.streamName);
69
69
  break;
70
70
  case "source-disconnected":
71
- state.connectedSources = state.connectedSources.filter((s) => s !== ev.streamName);
71
+ state.connectedStreams = state.connectedStreams.filter((s) => s !== ev.streamName);
72
+ break;
73
+ case "source-enabled":
74
+ state.disabledStreams = state.disabledStreams.filter((streamName) => streamName !== ev.streamName);
75
+ break;
76
+ case "source-disabled":
77
+ state.disabledStreams.push(ev.streamName);
72
78
  break;
73
79
  default:
74
80
  assertUnreachable(evType);
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/input.rtmp/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/input.rtmp/info.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
4
  function InlineView({ state, config }) {
5
5
  const maxSourceNum = 4;
6
- const sourcesToRender = state.connectedSources.slice(0, maxSourceNum);
7
- if (state.connectedSources.length > maxSourceNum) {
6
+ const sourcesToRender = state.connectedStreams.slice(0, maxSourceNum);
7
+ if (state.connectedStreams.length > maxSourceNum) {
8
8
  sourcesToRender.push("...");
9
9
  }
10
- const connectedSources = (0, jsx_runtime_1.jsxs)("div", { className: "mt-2", children: [state.connectedSources.length > 0 ? (0, jsx_runtime_1.jsx)("span", { children: "Connected sources" }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}), (0, jsx_runtime_1.jsx)("ul", { className: "rtmp-input-connected-sources", children: sourcesToRender.map((sourceName) => {
10
+ const connectedSources = (0, jsx_runtime_1.jsxs)("div", { className: "mt-2", children: [state.connectedStreams.length > 0 ? (0, jsx_runtime_1.jsx)("span", { children: "Connected sources" }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}), (0, jsx_runtime_1.jsx)("ul", { className: "rtmp-input-connected-sources", children: sourcesToRender.map((sourceName) => {
11
11
  return (0, jsx_runtime_1.jsx)("li", { className: "text-green-300", children: sourceName }, sourceName);
12
12
  }) })] });
13
13
  return (0, jsx_runtime_1.jsx)("div", { className: "rtmp-input", id: `rtmp-input-${config.id}`, children: connectedSources });
@@ -7,14 +7,30 @@ export type RtmpInputSettings = Pick<SdkSettings, 'port' | 'ssl'> & {
7
7
  streamNames: string[];
8
8
  };
9
9
  export type RtmpInputState = {
10
- connectedSources: string[];
10
+ connectedStreams: string[];
11
+ disabledStreams: string[];
11
12
  };
12
13
  export type RtmpInputEvent = {
13
- type: "source-connected" | "source-disconnected";
14
+ type: "source-connected";
15
+ streamName: string;
16
+ } | {
17
+ type: "source-disconnected";
18
+ streamName: string;
19
+ } | {
20
+ type: "source-enabled";
21
+ streamName: string;
22
+ } | {
23
+ type: "source-disabled";
14
24
  streamName: string;
15
25
  };
16
26
  export type RtmpInputCommand = {
17
- type: "disconnect-source";
27
+ type: "disable-source";
28
+ streamName: string;
29
+ } | {
30
+ type: "enable-source";
31
+ streamName: string;
32
+ } | {
33
+ type: "reset-source";
18
34
  streamName: string;
19
35
  };
20
36
  export declare class RtmpInput implements CreatedMediaNode {
@@ -22,14 +38,17 @@ export declare class RtmpInput implements CreatedMediaNode {
22
38
  relatedMediaNodes: RelatedMediaNodes;
23
39
  norsk: Norsk;
24
40
  cfg: RtmpInputSettings;
25
- activeStreams: string[];
41
+ activeStreams: Map<string, number>;
42
+ disabledStreams: Set<string>;
26
43
  initialised: Promise<void>;
27
44
  rtmpServer: RtmpServerInputNode | null;
28
45
  updates: RuntimeUpdates<RtmpInputState, RtmpInputCommand, RtmpInputEvent>;
29
46
  static create(norsk: Norsk, cfg: RtmpInputSettings, updates: RuntimeUpdates<RtmpInputState, RtmpInputCommand, RtmpInputEvent>): Promise<RtmpInput>;
30
47
  constructor(norsk: Norsk, cfg: RtmpInputSettings, updates: RuntimeUpdates<RtmpInputState, RtmpInputCommand, RtmpInputEvent>);
31
48
  initialise(): Promise<void>;
32
- disconnectStream(streamName: string): Promise<void>;
49
+ enableSource(streamName: string): Promise<void>;
50
+ disableSource(streamName: string): Promise<void>;
51
+ resetSource(streamName: string): Promise<void>;
33
52
  }
34
53
  export default class RtmpInputDefinition implements ServerComponentDefinition<RtmpInputSettings, RtmpInput, RtmpInputState, RtmpInputCommand> {
35
54
  create(norsk: Norsk, cfg: RtmpInputSettings, cb: OnCreated<RtmpInput>, runtime: StudioRuntime<RtmpInputState, RtmpInputCommand, RtmpInputEvent>): Promise<void>;
@@ -16,7 +16,8 @@ class RtmpInput {
16
16
  relatedMediaNodes = new runtime_types_1.RelatedMediaNodes();
17
17
  norsk;
18
18
  cfg;
19
- activeStreams = [];
19
+ activeStreams = new Map();
20
+ disabledStreams = new Set();
20
21
  initialised;
21
22
  rtmpServer = null;
22
23
  updates;
@@ -41,18 +42,46 @@ class RtmpInput {
41
42
  certFile: process.env.SSL_CERT_FILE,
42
43
  keyFile: process.env.SSL_KEY_FILE,
43
44
  },
44
- onConnection: (connectionId, app, url) => {
45
+ onConnectionStatusChange: (_cid, status, streamKeys) => {
46
+ switch (status) {
47
+ case 'disconnected':
48
+ for (const key of streamKeys) {
49
+ if (key.videoStreamKey.sourceName) {
50
+ const streamName = key.videoStreamKey.sourceName.sourceName;
51
+ if (streamName) {
52
+ this.activeStreams.delete(streamName);
53
+ this.updates.raiseEvent({ type: "source-disconnected", streamName });
54
+ (0, logging_1.debuglog)("Stream disconnected", { streamName, activeStreams: this.activeStreams });
55
+ }
56
+ }
57
+ }
58
+ }
59
+ },
60
+ onConnection: (connnectionId, app, url) => {
61
+ if (this.disabledStreams.has(connnectionId)) {
62
+ (0, logging_1.debuglog)("Rejecting connection as stream is presently disabled", { url });
63
+ return {
64
+ accept: false
65
+ };
66
+ }
45
67
  if (app === this.cfg.appName) {
46
- (0, logging_1.debuglog)("Accepted connection with app name", { app, connectionId, url });
68
+ (0, logging_1.debuglog)("Accepted connection with app name", { app, connnectionId, url });
47
69
  return { accept: true };
48
70
  }
49
71
  else {
50
- (0, logging_1.debuglog)("Rejecting connection with unknown app name", { app, connectionId, url });
72
+ (0, logging_1.debuglog)("Rejecting connection with unknown app name", { app, connnectionId, url });
51
73
  return { accept: false };
52
74
  }
53
75
  },
54
76
  onStream: (cid, app, url, streamId, publishingName) => {
55
77
  (0, logging_1.debuglog)("Stream request received", { publishingName, activeStreams: this.activeStreams });
78
+ if (this.disabledStreams.has(publishingName)) {
79
+ (0, logging_1.debuglog)("Rejecting connection as stream is presently disabled", { publishingName });
80
+ return {
81
+ accept: false,
82
+ reason: "Stream is disabled"
83
+ };
84
+ }
56
85
  if (!this.cfg.streamNames.includes(publishingName)) {
57
86
  (0, logging_1.debuglog)("Rejecting unknown stream name", { publishingName });
58
87
  return {
@@ -60,18 +89,18 @@ class RtmpInput {
60
89
  reason: "Unknown stream name"
61
90
  };
62
91
  }
63
- if (this.activeStreams.includes(publishingName)) {
92
+ if (this.activeStreams.has(publishingName)) {
64
93
  (0, logging_1.debuglog)("Rejecting duplicate stream connection", { publishingName });
65
94
  return {
66
95
  accept: false,
67
96
  reason: "Stream already connected"
68
97
  };
69
98
  }
70
- (0, logging_1.debuglog)("Accepting stream", { publishingName });
71
- this.activeStreams = [...this.activeStreams, publishingName];
72
- this.updates.update({
73
- connectedSources: [...this.activeStreams]
74
- });
99
+ if (this.cfg.streamNames.includes(publishingName)) {
100
+ (0, logging_1.debuglog)("Accepting stream", { publishingName });
101
+ this.activeStreams.set(publishingName, streamId);
102
+ this.updates.raiseEvent({ type: "source-connected", streamName: publishingName });
103
+ }
75
104
  return {
76
105
  accept: true,
77
106
  videoStreamKey: {
@@ -84,32 +113,37 @@ class RtmpInput {
84
113
  },
85
114
  };
86
115
  },
87
- onConnectionStatusChange: (_cid, status, streamKeys) => {
88
- if (status !== "disconnected") {
89
- return;
90
- }
91
- for (const key of streamKeys) {
92
- if (key.videoStreamKey.sourceName) {
93
- const streamName = key.videoStreamKey.sourceName.sourceName;
94
- this.activeStreams = this.activeStreams.filter((s) => s !== streamName);
95
- this.updates.update({
96
- connectedSources: [...this.activeStreams]
97
- });
98
- this.updates.raiseEvent({ type: "source-disconnected", streamName });
99
- (0, logging_1.debuglog)("Stream disconnected", { streamName, activeStreams: this.activeStreams });
100
- }
101
- }
102
- },
116
+ onClose: () => { },
103
117
  onCreate: (node) => {
104
118
  this.relatedMediaNodes.addOutput(node);
105
119
  }
106
120
  });
107
121
  }
108
- async disconnectStream(streamName) {
109
- (0, logging_1.debuglog)("Unsubscribing stream", { streamName, beforeState: this.activeStreams });
122
+ async enableSource(streamName) {
123
+ this.disabledStreams.delete(streamName);
124
+ this.updates.raiseEvent({
125
+ type: 'source-enabled',
126
+ streamName
127
+ });
128
+ (0, logging_1.debuglog)("Stream enabled", { streamName, activeStreams: this.activeStreams });
129
+ }
130
+ async disableSource(streamName) {
131
+ this.disabledStreams.add(streamName);
132
+ await this.resetSource(streamName);
133
+ this.updates.raiseEvent({
134
+ type: 'source-disabled',
135
+ streamName
136
+ });
137
+ }
138
+ async resetSource(streamName) {
110
139
  if (this.rtmpServer) {
140
+ this.rtmpServer.closeConnection(streamName);
141
+ this.updates.raiseEvent({
142
+ type: 'source-disconnected',
143
+ streamName
144
+ });
111
145
  }
112
- (0, logging_1.debuglog)("Stream unsubscribed", { streamName, afterState: this.activeStreams });
146
+ (0, logging_1.debuglog)("Stream reset", { streamName, afterState: this.activeStreams });
113
147
  }
114
148
  }
115
149
  exports.RtmpInput = RtmpInput;
@@ -136,8 +170,14 @@ class RtmpInputDefinition {
136
170
  async handleCommand(node, command) {
137
171
  const commandType = command.type;
138
172
  switch (commandType) {
139
- case 'disconnect-source':
140
- await node.disconnectStream(command.streamName);
173
+ case 'disable-source':
174
+ await node.disableSource(command.streamName);
175
+ break;
176
+ case 'enable-source':
177
+ await node.enableSource(command.streamName);
178
+ break;
179
+ case 'reset-source':
180
+ await node.resetSource(command.streamName);
141
181
  break;
142
182
  default:
143
183
  (0, util_1.assertUnreachable)(commandType);
@@ -158,12 +198,32 @@ class RtmpInputDefinition {
158
198
  return res.status(400).json({ error: 'Stream name is required' });
159
199
  }
160
200
  const state = runtime.updates.latest();
161
- console.log("Current state during disconnect:", state);
162
- if (!state.connectedSources.includes(streamName)) {
201
+ (0, logging_1.debuglog)("Current state during disconnect:", state);
202
+ if (!state.connectedStreams.includes(streamName)) {
163
203
  return res.status(404).json({ error: 'Stream not found or not connected' });
164
204
  }
165
205
  runtime.updates.sendCommand({
166
- type: 'disconnect-source',
206
+ type: 'reset-source',
207
+ streamName
208
+ });
209
+ res.status(204).send();
210
+ }
211
+ catch (error) {
212
+ console.error('Error in disconnect handler:', error);
213
+ res.status(500).json({ error: 'Failed to disconnect stream' });
214
+ }
215
+ }
216
+ },
217
+ {
218
+ ...post('/enable', paths),
219
+ handler: ({ runtime }) => async (req, res) => {
220
+ try {
221
+ const { streamName } = req.body;
222
+ if (!streamName) {
223
+ return res.status(400).json({ error: 'Stream name is required' });
224
+ }
225
+ runtime.updates.sendCommand({
226
+ type: 'enable-source',
167
227
  streamName
168
228
  });
169
229
  res.status(204).send();
@@ -174,6 +234,26 @@ class RtmpInputDefinition {
174
234
  }
175
235
  }
176
236
  },
237
+ {
238
+ ...post('/disable', paths),
239
+ handler: ({ runtime }) => async (req, res) => {
240
+ try {
241
+ const { streamName } = req.body;
242
+ if (!streamName) {
243
+ return res.status(400).json({ error: 'Stream name is required' });
244
+ }
245
+ runtime.updates.sendCommand({
246
+ type: 'disable-source',
247
+ streamName
248
+ });
249
+ res.status(204).send();
250
+ }
251
+ catch (error) {
252
+ console.error('Error in disconnect handler:', error);
253
+ res.status(500).json({ error: 'Failed to disconnect stream' });
254
+ }
255
+ }
256
+ }
177
257
  ];
178
258
  }
179
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/input.rtmp/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/input.rtmp/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { ViewProps } from "@norskvideo/norsk-studio/lib/extension/client-types";
2
2
  import { RtmpInputCommand, RtmpInputSettings, RtmpInputState } from "./runtime";
3
- declare function SummaryView({ state, config, urls, sendCommand }: ViewProps<RtmpInputSettings, RtmpInputState, RtmpInputCommand>): import("react/jsx-runtime").JSX.Element;
3
+ declare function SummaryView({ state, config, sendCommand }: ViewProps<RtmpInputSettings, RtmpInputState, RtmpInputCommand>): import("react/jsx-runtime").JSX.Element;
4
4
  export default SummaryView;
@@ -1,42 +1,67 @@
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, urls, sendCommand }) {
4
+ function SummaryView({ state, config, sendCommand }) {
5
5
  const connectedSources = [];
6
6
  const disconnectedSources = [];
7
- config.streamNames.forEach((streamName) => {
8
- if (state.connectedSources.includes(streamName)) {
9
- connectedSources.push(streamName);
7
+ const resetStream = async (streamName) => {
8
+ try {
9
+ sendCommand({
10
+ type: "reset-source",
11
+ streamName
12
+ });
10
13
  }
11
- else {
12
- disconnectedSources.push(streamName);
14
+ catch (error) {
15
+ console.error("Failed to disconnect stream:", error);
13
16
  }
14
- });
15
- const handleDisconnectStream = (streamName) => {
16
- void disconnectStream(streamName);
17
17
  };
18
- const disconnectStream = async (streamName) => {
18
+ const disableStream = async (streamName) => {
19
19
  try {
20
- const response = await fetch(`${urls.staticUrl}/disconnect`, {
21
- method: "POST",
22
- headers: {
23
- "Content-Type": "application/json",
24
- },
25
- body: JSON.stringify({ streamName }),
20
+ sendCommand({
21
+ type: "disable-source",
22
+ streamName
26
23
  });
27
- if (!response.ok) {
28
- console.error("Stream failed to disconnect");
29
- }
24
+ }
25
+ catch (error) {
26
+ console.error("Failed to disable stream:", error);
27
+ }
28
+ };
29
+ const enableStream = async (streamName) => {
30
+ try {
30
31
  sendCommand({
31
- type: "disconnect-source",
32
+ type: "enable-source",
32
33
  streamName
33
34
  });
34
35
  }
35
36
  catch (error) {
36
- console.error("Failed to disconnect stream:", error);
37
+ console.error("Failed to enable stream:", error);
37
38
  }
38
39
  };
39
- 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: "rtmp-sources-connected", children: [(0, jsx_runtime_1.jsx)("span", { children: "Sources connected" }), (0, jsx_runtime_1.jsx)("ul", { children: connectedSources.map((streamName) => ((0, jsx_runtime_1.jsxs)("li", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-green-300", children: streamName }), (0, jsx_runtime_1.jsx)("button", { onClick: () => handleDisconnectStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disconnect" })] }, streamName))) })] }), (0, jsx_runtime_1.jsxs)("div", { id: "rtmp-sources-disconnected", className: "mt-3", children: [(0, jsx_runtime_1.jsx)("span", { children: "Sources disconnected" }), (0, jsx_runtime_1.jsx)("ul", { children: disconnectedSources.map((streamName) => ((0, jsx_runtime_1.jsx)("li", { className: "flex items-center justify-between", children: (0, jsx_runtime_1.jsx)("span", { className: "text-orange-300", children: streamName }) }, streamName))) })] })] }));
40
+ const handleResetStream = (streamName) => {
41
+ void resetStream(streamName);
42
+ };
43
+ const handleDisableStream = (streamName) => {
44
+ void disableStream(streamName);
45
+ };
46
+ const handleEnableStream = (streamName) => {
47
+ void enableStream(streamName);
48
+ };
49
+ config.streamNames.forEach((streamName) => {
50
+ if (state.connectedStreams.includes(streamName)) {
51
+ connectedSources.push(streamName);
52
+ }
53
+ else {
54
+ disconnectedSources.push(streamName);
55
+ }
56
+ });
57
+ 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: "rtmp-sources-connected", children: [(0, jsx_runtime_1.jsx)("span", { children: "Connected Sources" }), (0, jsx_runtime_1.jsx)("ul", { children: connectedSources.map((streamName) => {
58
+ return (0, jsx_runtime_1.jsxs)("li", { className: "text-green-300", children: [streamName, (0, jsx_runtime_1.jsx)("button", { onClick: () => handleResetStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Reset" }), (0, jsx_runtime_1.jsx)("button", { onClick: () => handleDisableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable" })] }, streamName);
59
+ }) })] }), (0, jsx_runtime_1.jsxs)("div", { id: "rtmp-sources-disconnected", className: "mt-3", children: [(0, jsx_runtime_1.jsx)("span", { children: "Disconnected Sources" }), (0, jsx_runtime_1.jsx)("ul", { children: disconnectedSources.map((streamName) => {
60
+ return (0, jsx_runtime_1.jsxs)("li", { className: "text-orange-300", children: [streamName, state.disabledStreams.includes(streamName) ?
61
+ (0, jsx_runtime_1.jsx)("button", { onClick: () => handleEnableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable" })
62
+ :
63
+ (0, jsx_runtime_1.jsx)("button", { onClick: () => handleDisableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable" })] }, streamName);
64
+ }) })] })] });
40
65
  }
41
66
  exports.default = SummaryView;
42
67
  //# sourceMappingURL=summary-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/input.rtmp/summary-view.tsx"],"names":[],"mappings":";;;AAGA,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAmE;IACxH,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,mBAAmB,GAAa,EAAE,CAAC;IAEzC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACxC,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAChD,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAQ,EAAE;QAC1D,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,UAAkB,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,aAAa,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;aACrC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC/C,CAAC;YAED,WAAW,CAAC;gBACV,IAAI,EAAE,mBAAmB;gBACzB,UAAU;aACX,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,OAAO,CACL,iCAAK,SAAS,EAAC,sCAAsC,aACnD,iCAAK,EAAE,EAAC,wBAAwB,aAC9B,iEAA8B,EAC9B,yCACG,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACpC,gCAAqB,SAAS,EAAC,mCAAmC,aAChE,iCAAM,SAAS,EAAC,gBAAgB,YAAE,UAAU,GAAQ,EACpD,mCACE,OAAO,EAAG,GAAG,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAClD,SAAS,EAAC,uEAAuE,2BAG1E,KAPF,UAAU,CAQd,CACN,CAAC,GACC,IACD,EAEN,iCAAK,EAAE,EAAC,2BAA2B,EAAC,SAAS,EAAC,MAAM,aAClD,oEAAiC,EACjC,yCACG,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACvC,+BAAqB,SAAS,EAAC,mCAAmC,YAChE,iCAAM,SAAS,EAAC,iBAAiB,YAAE,UAAU,GAAQ,IAD9C,UAAU,CAEd,CACN,CAAC,GACC,IACD,IACF,CACP,CAAC;AACJ,CAAC;AAED,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/input.rtmp/summary-view.tsx"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ export interface paths {
59
59
  patch?: never;
60
60
  trace?: never;
61
61
  };
62
- "/reconnect": {
62
+ "/enable": {
63
63
  parameters: {
64
64
  query?: never;
65
65
  header?: never;
@@ -119,6 +119,66 @@ export interface paths {
119
119
  patch?: never;
120
120
  trace?: never;
121
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
+ };
122
182
  }
123
183
  export type webhooks = Record<string, never>;
124
184
  export interface components {
@@ -51,13 +51,13 @@ paths:
51
51
  type: string
52
52
  description: Additional error details
53
53
 
54
- /reconnect:
54
+ /enable:
55
55
  post:
56
- summary: Reconnect to an RTMP stream
57
- description: Reconnects a previously disconnected RTMP stream
56
+ summary: Re-enables a disabled RTMP stream
57
+ description: Re-enables a previously disconnected RTMP stream
58
58
  x-route-type: instance
59
59
  requestBody:
60
- description: The stream to reconnect
60
+ description: The stream to re-enable
61
61
  content:
62
62
  application/json:
63
63
  schema:
@@ -66,11 +66,11 @@ paths:
66
66
  properties:
67
67
  streamName:
68
68
  type: string
69
- description: The name of the stream to reconnect
69
+ description: The name of the stream to re-enable
70
70
  example: camera1
71
71
  responses:
72
72
  204:
73
- description: The stream was successfully reconnected
73
+ description: The stream was successfully re-enabled
74
74
  400:
75
75
  description: Stream is already connected or invalid request
76
76
  content:
@@ -85,7 +85,7 @@ paths:
85
85
  type: string
86
86
  description: Additional error details
87
87
  500:
88
- description: Failed to reconnect stream
88
+ description: Failed to re-enable stream
89
89
  content:
90
90
  application/json:
91
91
  schema:
@@ -97,3 +97,51 @@ paths:
97
97
  details:
98
98
  type: string
99
99
  description: Additional error details
100
+
101
+ /disable:
102
+ post:
103
+ summary: Disables an RTMP stream by id
104
+ description:
105
+ x-route-type: instance
106
+ requestBody:
107
+ description: The stream to disable
108
+ content:
109
+ application/json:
110
+ schema:
111
+ type: object
112
+ required: ['streamId']
113
+ properties:
114
+ streamId:
115
+ type: string
116
+ description: The Id of the stream to disable
117
+ example: camera1
118
+ responses:
119
+ 204:
120
+ description: The stream was successfully disabled
121
+ 400:
122
+ description: The stream isn't known about, or invalid request
123
+ content:
124
+ application/json:
125
+ schema:
126
+ type: object
127
+ properties:
128
+ error:
129
+ type: string
130
+ description: A description of the error
131
+ details:
132
+ type: string
133
+ description: Additional error details
134
+ 500:
135
+ description: Failed to disable stream
136
+ content:
137
+ application/json:
138
+ schema:
139
+ type: object
140
+ properties:
141
+ error:
142
+ type: string
143
+ description: A description of the error
144
+ details:
145
+ type: string
146
+ description: Additional error details
147
+
@@ -1,4 +1,4 @@
1
1
  import { ViewProps } from "@norskvideo/norsk-studio/lib/extension/client-types";
2
2
  import { SrtInputCommand, SrtInputSettings, SrtInputState } from "./runtime";
3
- declare function SummaryView({ state, config, urls, sendCommand }: ViewProps<SrtInputSettings, SrtInputState, SrtInputCommand>): import("react/jsx-runtime").JSX.Element;
3
+ declare function SummaryView({ state, config, sendCommand }: ViewProps<SrtInputSettings, SrtInputState, SrtInputCommand>): import("react/jsx-runtime").JSX.Element;
4
4
  export default SummaryView;
@@ -1,21 +1,11 @@
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, urls, sendCommand }) {
4
+ function SummaryView({ state, config, sendCommand }) {
5
5
  const connectedSources = [];
6
6
  const disconnectedSources = [];
7
7
  const resetStream = async (streamId) => {
8
8
  try {
9
- const response = await fetch(`${urls.instanceUrl}/disconnect`, {
10
- method: "POST",
11
- headers: {
12
- "Content-Type": "application/json",
13
- },
14
- body: JSON.stringify({ streamId }),
15
- });
16
- if (!response.ok) {
17
- console.error("Stream failed to disconnect");
18
- }
19
9
  sendCommand({
20
10
  type: "reset-source",
21
11
  streamId
@@ -27,18 +17,8 @@ function SummaryView({ state, config, urls, sendCommand }) {
27
17
  };
28
18
  const disableStream = async (streamId) => {
29
19
  try {
30
- const response = await fetch(`${urls.instanceUrl}/disable`, {
31
- method: "POST",
32
- headers: {
33
- "Content-Type": "application/json",
34
- },
35
- body: JSON.stringify({ streamId }),
36
- });
37
- if (!response.ok) {
38
- console.error("Failed to disable stream");
39
- }
40
20
  sendCommand({
41
- type: "reset-source",
21
+ type: "disable-source",
42
22
  streamId
43
23
  });
44
24
  }
@@ -48,18 +28,8 @@ function SummaryView({ state, config, urls, sendCommand }) {
48
28
  };
49
29
  const enableStream = async (streamId) => {
50
30
  try {
51
- const response = await fetch(`${urls.instanceUrl}/enable`, {
52
- method: "POST",
53
- headers: {
54
- "Content-Type": "application/json",
55
- },
56
- body: JSON.stringify({ streamId }),
57
- });
58
- if (!response.ok) {
59
- console.error("Failed to enable stream");
60
- }
61
31
  sendCommand({
62
- type: "reset-source",
32
+ type: "enable-source",
63
33
  streamId
64
34
  });
65
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/input.srt-listener/summary-view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/input.srt-listener/summary-view.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/norsk-studio-built-ins",
3
- "version": "1.12.0-2025-01-28-9ee30e1e",
3
+ "version": "1.12.0-2025-02-02-6cada821",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "clean": "rm -rf lib",
@@ -21,8 +21,8 @@
21
21
  ],
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@norskvideo/norsk-sdk": "^1.0.399-2025-01-28-5e0317fa",
25
- "@norskvideo/norsk-studio": "^1.20.1-2025-01-28-ee2c4c50",
24
+ "@norskvideo/norsk-sdk": "^1.0.400-2025-02-02-774a309c",
25
+ "@norskvideo/norsk-studio": "^1.20.1-2025-02-02-1726552b",
26
26
  "@norskvideo/webrtc-client": "^0.1.2",
27
27
  "body-parser": "^1.20.2",
28
28
  "cors": "^2.8.5",