@norskvideo/norsk-studio-built-ins 1.11.6 → 1.13.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 (77) hide show
  1. package/Readme.adoc +16 -0
  2. package/client/info.js +125 -59
  3. package/client/style.css +124 -0
  4. package/lib/info.js +2 -2
  5. package/lib/info.js.map +1 -1
  6. package/lib/input.rtmp/info.js +1 -0
  7. package/lib/input.rtmp/info.js.map +1 -1
  8. package/lib/input.rtmp/runtime.d.ts +1 -1
  9. package/lib/input.rtmp/runtime.js.map +1 -1
  10. package/lib/input.srt-listener/runtime.d.ts +1 -1
  11. package/lib/input.srt-listener/runtime.js.map +1 -1
  12. package/lib/output.autoCmaf/runtime.d.ts +1 -1
  13. package/lib/output.autoCmaf/runtime.js.map +1 -1
  14. package/lib/output.preview/runtime.d.ts +3 -3
  15. package/lib/output.preview/runtime.js.map +1 -1
  16. package/lib/output.rtmp/runtime.d.ts +2 -2
  17. package/lib/output.rtmp/runtime.js.map +1 -1
  18. package/lib/output.statistics/runtime.d.ts +1 -1
  19. package/lib/output.statistics/runtime.js.map +1 -1
  20. package/lib/processor.browserOverlay/info.js +1 -1
  21. package/lib/processor.browserOverlay/info.js.map +1 -1
  22. package/lib/processor.browserOverlay/runtime.js +6 -7
  23. package/lib/processor.browserOverlay/runtime.js.map +1 -1
  24. package/lib/processor.cascadingSwitch/info.js +1 -1
  25. package/lib/processor.cascadingSwitch/info.js.map +1 -1
  26. package/lib/processor.cascadingSwitch/runtime.d.ts +1 -1
  27. package/lib/processor.cascadingSwitch/runtime.js.map +1 -1
  28. package/lib/processor.dynamicBug/info.js +7 -5
  29. package/lib/processor.dynamicBug/info.js.map +1 -1
  30. package/lib/processor.dynamicBug/runtime.d.ts +18 -15
  31. package/lib/processor.dynamicBug/runtime.js +243 -75
  32. package/lib/processor.dynamicBug/runtime.js.map +1 -1
  33. package/lib/processor.dynamicBug/summary-view.d.ts +1 -1
  34. package/lib/processor.dynamicBug/summary-view.js +114 -46
  35. package/lib/processor.dynamicBug/summary-view.js.map +1 -1
  36. package/lib/processor.dynamicBug/types.d.ts +19 -0
  37. package/lib/processor.dynamicBug/types.js +3 -0
  38. package/lib/processor.dynamicBug/types.js.map +1 -0
  39. package/lib/processor.fixedLadder/info.js +1 -1
  40. package/lib/processor.fixedLadder/info.js.map +1 -1
  41. package/lib/test/browser-overlay.js +1 -0
  42. package/lib/test/browser-overlay.js.map +1 -1
  43. package/lib/test/dynamic-bug.js +11 -15
  44. package/lib/test/dynamic-bug.js.map +1 -1
  45. package/lib/test/preview.js +3 -3
  46. package/lib/test/preview.js.map +1 -1
  47. package/lib/{util.latency → util.stats.latency}/info.js +1 -1
  48. package/lib/util.stats.latency/info.js.map +1 -0
  49. package/lib/util.stats.latency/inline-view.js.map +1 -0
  50. package/lib/{util.latency → util.stats.latency}/runtime.d.ts +1 -1
  51. package/lib/util.stats.latency/runtime.js.map +1 -0
  52. package/lib/util.stats.latency/source-node-selection.js.map +1 -0
  53. package/lib/{util.ma35d → util.stats.ma35d}/info.js +1 -1
  54. package/lib/util.stats.ma35d/info.js.map +1 -0
  55. package/lib/util.stats.ma35d/inline-view.js.map +1 -0
  56. package/lib/{util.ma35d → util.stats.ma35d}/runtime.d.ts +1 -1
  57. package/lib/util.stats.ma35d/runtime.js.map +1 -0
  58. package/lib/util.timestamps/runtime.d.ts +1 -1
  59. package/lib/util.timestamps/runtime.js.map +1 -1
  60. package/package.json +8 -4
  61. package/lib/util.latency/info.js.map +0 -1
  62. package/lib/util.latency/inline-view.js.map +0 -1
  63. package/lib/util.latency/runtime.js.map +0 -1
  64. package/lib/util.latency/source-node-selection.js.map +0 -1
  65. package/lib/util.ma35d/info.js.map +0 -1
  66. package/lib/util.ma35d/inline-view.js.map +0 -1
  67. package/lib/util.ma35d/runtime.js.map +0 -1
  68. /package/lib/{util.latency → util.stats.latency}/info.d.ts +0 -0
  69. /package/lib/{util.latency → util.stats.latency}/inline-view.d.ts +0 -0
  70. /package/lib/{util.latency → util.stats.latency}/inline-view.js +0 -0
  71. /package/lib/{util.latency → util.stats.latency}/runtime.js +0 -0
  72. /package/lib/{util.latency → util.stats.latency}/source-node-selection.d.ts +0 -0
  73. /package/lib/{util.latency → util.stats.latency}/source-node-selection.js +0 -0
  74. /package/lib/{util.ma35d → util.stats.ma35d}/info.d.ts +0 -0
  75. /package/lib/{util.ma35d → util.stats.ma35d}/inline-view.d.ts +0 -0
  76. /package/lib/{util.ma35d → util.stats.ma35d}/inline-view.js +0 -0
  77. /package/lib/{util.ma35d → util.stats.ma35d}/runtime.js +0 -0
package/Readme.adoc ADDED
@@ -0,0 +1,16 @@
1
+ == workspaces/built-ins
2
+
3
+ This built-ins directory contains a collection of the default components available for use within Studio.
4
+ Its package.json builds a manifest for everything found in 'src' in src/index.ts, as well as building a client-side bundle for all of them.
5
+
6
+ === Structure
7
+
8
+ Inside the 'src' folder, we have several subdirectories each containing components in a particular class:
9
+
10
+ - Inputs: Modules that define how media streams are ingested.
11
+ - Outputs: Modules that define how media streams are delivered to their destinations.
12
+ - Processors: Modules that handle the transformation or analysis of media streams.
13
+
14
+ Using Norsk Studio, we can combine these components to easily build even complex live media workflows.
15
+
16
+ The documentation for each of the components can be found within the component's folder Readme.
package/client/info.js CHANGED
@@ -273,9 +273,9 @@ var init_form_views = __esm({
273
273
  }
274
274
  });
275
275
 
276
- // ../../node_modules/@norskvideo/norsk-studio/lib/shared/shared-views.js
276
+ // node_modules/@norskvideo/norsk-studio/lib/shared/shared-views.js
277
277
  var require_shared_views = __commonJS({
278
- "../../node_modules/@norskvideo/norsk-studio/lib/shared/shared-views.js"(exports) {
278
+ "node_modules/@norskvideo/norsk-studio/lib/shared/shared-views.js"(exports) {
279
279
  "use strict";
280
280
  Object.defineProperty(exports, "__esModule", { value: true });
281
281
  exports.GlobalIceServerView = GlobalIceServerView;
@@ -286,9 +286,9 @@ var require_shared_views = __commonJS({
286
286
  }
287
287
  });
288
288
 
289
- // ../../node_modules/@norskvideo/norsk-studio/lib/shared/config.js
289
+ // node_modules/@norskvideo/norsk-studio/lib/shared/config.js
290
290
  var require_config = __commonJS({
291
- "../../node_modules/@norskvideo/norsk-studio/lib/shared/config.js"(exports) {
291
+ "node_modules/@norskvideo/norsk-studio/lib/shared/config.js"(exports) {
292
292
  "use strict";
293
293
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
294
294
  if (k2 === void 0)
@@ -695,56 +695,119 @@ var summary_view_exports3 = {};
695
695
  __export(summary_view_exports3, {
696
696
  default: () => summary_view_default3
697
697
  });
698
- function SummaryView5({ state, sendCommand, httpApi }) {
698
+ function SummaryView5({ state, sendCommand, urls }) {
699
699
  const [bug, setBug] = (0, import_react14.useState)(state.activeBug?.file);
700
700
  const [position, setPosition] = (0, import_react14.useState)(state.activeBug?.position);
701
701
  const [bugs, setBugs] = (0, import_react14.useState)([]);
702
702
  const [fileToUpload, setFileToUpload] = (0, import_react14.useState)(void 0);
703
- async function updateBugs() {
704
- const result2 = await fetch("components/processor.dynamicBug/bugs");
705
- if (result2.ok && result2.body) {
706
- const bugs2 = await result2.json();
707
- setBugs(bugs2);
708
- } else {
709
- const text = await result2.text();
710
- throw new Error(text);
703
+ const [showFileInput, setShowFileInput] = (0, import_react14.useState)(false);
704
+ const [showUploadButton, setShowUploadButton] = (0, import_react14.useState)(false);
705
+ const [uploadStatus, setUploadStatus] = (0, import_react14.useState)({ success: false, message: null });
706
+ const [showDeleteDropdown, setShowDeleteDropdown] = (0, import_react14.useState)(false);
707
+ const [bugToDelete, setBugToDelete] = (0, import_react14.useState)("");
708
+ const updateBugs = (0, import_react14.useCallback)(async () => {
709
+ try {
710
+ const result2 = await fetch(`${urls.componentUrl}/bugs`);
711
+ if (result2.ok) {
712
+ const newBugs = await result2.json();
713
+ setBugs(newBugs);
714
+ } else {
715
+ throw new Error(await result2.text());
716
+ }
717
+ } catch (error) {
718
+ console.error("Failed to update bugs:", error);
719
+ setUploadStatus({
720
+ success: false,
721
+ message: "Failed to update bug list."
722
+ });
711
723
  }
712
- }
724
+ }, [urls.componentUrl]);
713
725
  (0, import_react14.useEffect)(() => {
714
- const fn = async () => {
715
- await updateBugs();
716
- };
717
- fn().catch(console.error);
718
- }, []);
719
- function onFileChange(e) {
720
- if (e.target.files?.[0])
721
- setFileToUpload(e.target.files[0]);
722
- }
723
- return (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [(0, import_jsx_runtime15.jsx)("h2", { children: "Controls" }), (0, import_jsx_runtime15.jsx)("label", { htmlFor: "select-preview", className: "mt-2", children: "Source" }), (0, import_jsx_runtime15.jsxs)("select", { id: "select-bug", className: "mt-2 node-editor-select-input", onChange: (e) => {
724
- setBug(e.currentTarget.value === "" ? void 0 : e.currentTarget.value);
725
- }, children: [(0, import_jsx_runtime15.jsx)("option", { value: "", selected: bug === void 0, children: "---" }), (0, import_jsx_runtime15.jsx)("option", { value: "new", selected: bug === "new", children: "New" }), bugs.map((s, i) => (0, import_jsx_runtime15.jsx)("option", { selected: bug == s, value: s, children: s }, i))] }), (0, import_jsx_runtime15.jsx)("form", { style: { display: bug === "new" ? "block" : "none" }, onSubmit: (e) => e.preventDefault(), children: (0, import_jsx_runtime15.jsx)("input", { type: "file", id: "file", name: "filename", onChange: onFileChange }) }), (0, import_jsx_runtime15.jsxs)("select", { style: { display: bug ? "block" : "none" }, id: "select-position", className: "mt-2 node-editor-select-input", onChange: (e) => {
726
- setPosition(e.currentTarget.value);
727
- }, children: [(0, import_jsx_runtime15.jsx)("option", { value: "topleft", selected: position === "topleft", children: "Top Left" }), (0, import_jsx_runtime15.jsx)("option", { value: "topright", selected: position === "topright", children: "Top Right" }), (0, import_jsx_runtime15.jsx)("option", { value: "bottomleft", selected: position === "bottomleft", children: "Bottom Left" }), (0, import_jsx_runtime15.jsx)("option", { value: "bottomright", selected: position === "bottomright", children: "Bottom Right" })] }), bug != state.activeBug?.file || position != state.activeBug?.position || fileToUpload ? (0, import_jsx_runtime15.jsx)("button", { type: "button", className: "mt-2 mb-2 text-white w-full justify-center bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800", onClick: async (e) => {
728
- e.preventDefault();
729
- if (fileToUpload && bug === "new") {
726
+ updateBugs().catch(console.error);
727
+ }, [updateBugs]);
728
+ const onFileChange = (e) => {
729
+ const file = e.target.files?.[0];
730
+ setFileToUpload(file);
731
+ setShowUploadButton(!!file);
732
+ setUploadStatus({ success: false, message: null });
733
+ };
734
+ const uploadFile = async () => {
735
+ if (!fileToUpload)
736
+ return;
737
+ try {
730
738
  const form = new FormData();
731
- const url = httpApi.toString() + "/bugs";
732
739
  form.append("file", fileToUpload);
733
- await fetch(url, {
740
+ const response = await fetch(`${urls.componentUrl}/bugs`, {
734
741
  method: "POST",
735
742
  body: form
736
743
  });
737
- setTimeout(async () => {
738
- await updateBugs();
739
- sendCommand({ type: "change-bug", file: fileToUpload.name, position });
740
- setBug(fileToUpload.name);
744
+ if (response.status === 409) {
745
+ const errorData = await response.json();
746
+ setUploadStatus({
747
+ success: false,
748
+ message: `${errorData.error}. Delete the existing bug first if you want to replace it.`
749
+ });
750
+ } else if (!response.ok) {
751
+ throw new Error("Upload failed");
752
+ } else {
741
753
  setFileToUpload(void 0);
742
- return;
743
- }, 500);
744
- } else {
745
- sendCommand({ type: "change-bug", file: bug, position });
754
+ setShowFileInput(false);
755
+ setUploadStatus({
756
+ success: true,
757
+ message: "Bug uploaded successfully!"
758
+ });
759
+ await updateBugs();
760
+ }
761
+ } catch (error) {
762
+ console.error("Failed to upload file:", error);
763
+ setUploadStatus({ success: false, message: "Failed to upload bug." });
764
+ }
765
+ setTimeout(() => setUploadStatus({ success: false, message: null }), 5e3);
766
+ };
767
+ const deleteBug = async () => {
768
+ if (!bugToDelete)
769
+ return;
770
+ try {
771
+ const response = await fetch(`${urls.componentUrl}/bug`, {
772
+ method: "DELETE",
773
+ headers: {
774
+ "Content-Type": "application/json"
775
+ },
776
+ body: JSON.stringify({ filename: bugToDelete })
777
+ });
778
+ if (response.ok) {
779
+ setUploadStatus({
780
+ success: true,
781
+ message: "Bug deleted successfully!"
782
+ });
783
+ await updateBugs();
784
+ if (bug === bugToDelete) {
785
+ setBug(void 0);
786
+ sendCommand({
787
+ type: "change-bug",
788
+ file: void 0,
789
+ position: void 0
790
+ });
791
+ }
792
+ setBugToDelete("");
793
+ setShowDeleteDropdown(false);
794
+ } else {
795
+ const errorData = await response.json();
796
+ setUploadStatus({
797
+ success: false,
798
+ message: errorData.error || "Failed to delete bug"
799
+ });
800
+ }
801
+ } catch (error) {
802
+ console.error("Failed to delete bug:", error);
803
+ setUploadStatus({ success: false, message: "Failed to delete bug" });
746
804
  }
747
- }, children: "Commit" }) : (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, {})] });
805
+ setTimeout(() => setUploadStatus({ success: false, message: null }), 3e3);
806
+ };
807
+ const buttonClass = "mt-2 mb-5 text-white w-full justify-center bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800";
808
+ const deleteButtonClass = "mt-2 text-white w-full justify-center bg-red-600 hover:bg-red-700 focus:ring-4 focus:outline-none focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-red-700 dark:hover:bg-red-800 dark:focus:ring-red-900";
809
+ const fileInputClass = "block w-full text-gray-900 border border-gray-300 rounded-lg cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-none dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400";
810
+ return (0, import_jsx_runtime15.jsxs)("div", { className: "space-y-3", children: [(0, import_jsx_runtime15.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime15.jsxs)("div", { children: [(0, import_jsx_runtime15.jsx)("label", { htmlFor: "select-bug", className: "block text-gray-900 dark:text-white mb-1", children: "Source" }), (0, import_jsx_runtime15.jsxs)("select", { id: "select-bug", className: "w-full node-editor-select-input", value: bug || "", onChange: (e) => setBug(e.target.value || void 0), children: [(0, import_jsx_runtime15.jsx)("option", { value: "", children: "---" }), bugs.map((s) => (0, import_jsx_runtime15.jsx)("option", { value: s, children: s }, s))] })] }), bug && (0, import_jsx_runtime15.jsxs)("div", { children: [(0, import_jsx_runtime15.jsx)("label", { htmlFor: "select-position", className: "block text-gray-900 dark:text-white mb-1", children: "Position" }), (0, import_jsx_runtime15.jsxs)("select", { id: "select-position", className: "w-full node-editor-select-input", value: position, onChange: (e) => setPosition(e.target.value), children: [(0, import_jsx_runtime15.jsx)("option", { value: "topleft", children: "Top Left" }), (0, import_jsx_runtime15.jsx)("option", { value: "topright", children: "Top Right" }), (0, import_jsx_runtime15.jsx)("option", { value: "bottomleft", children: "Bottom Left" }), (0, import_jsx_runtime15.jsx)("option", { value: "bottomright", children: "Bottom Right" })] })] }), (bug !== state.activeBug?.file || position !== state.activeBug?.position) && (0, import_jsx_runtime15.jsx)("button", { type: "button", className: buttonClass, onClick: () => sendCommand({ type: "change-bug", file: bug, position }), children: "Commit" }), !showFileInput && !uploadStatus.success && (0, import_jsx_runtime15.jsx)("button", { type: "button", className: buttonClass, onClick: () => setShowFileInput(true), style: { marginBottom: "1rem" }, children: "Upload Bug" }), showFileInput && (0, import_jsx_runtime15.jsxs)("form", { style: { display: "block", marginBottom: "1rem" }, children: [(0, import_jsx_runtime15.jsx)("input", { type: "file", id: "file", name: "filename", onChange: onFileChange, className: fileInputClass }), showUploadButton && (0, import_jsx_runtime15.jsx)("button", { type: "button", className: buttonClass, onClick: uploadFile, children: "Upload" })] }), (0, import_jsx_runtime15.jsx)("button", { type: "button", className: deleteButtonClass, onClick: () => setShowDeleteDropdown(!showDeleteDropdown), style: { marginBottom: "1rem" }, children: showDeleteDropdown ? "Hide Delete Options" : "Delete Bugs" }), showDeleteDropdown && (0, import_jsx_runtime15.jsxs)("div", { className: "mt-2 p-2 bg-gray-100 dark:bg-gray-800 rounded-lg", children: [(0, import_jsx_runtime15.jsx)("h3", { className: "text-lg font-semibold mb-2 text-gray-900 dark:text-white", children: "Select Bug to Delete" }), (0, import_jsx_runtime15.jsxs)("select", { className: "w-full mb-2 node-editor-select-input", value: bugToDelete, onChange: (e) => setBugToDelete(e.target.value), children: [(0, import_jsx_runtime15.jsx)("option", { value: "", children: " Select a bug" }), bugs.map((bugName) => (0, import_jsx_runtime15.jsx)("option", { value: bugName, children: bugName }, bugName))] }), (0, import_jsx_runtime15.jsx)("button", { onClick: deleteBug, disabled: !bugToDelete, className: `${deleteButtonClass} ${!bugToDelete ? "opacity-50 cursor-not-allowed" : ""}`, children: "Delete Selected Bug" })] }), uploadStatus.message && (0, import_jsx_runtime15.jsx)("div", { className: `mt-2 text-center ${uploadStatus.success ? "text-green-600" : "text-red-600"}`, children: uploadStatus.message })] });
748
811
  }
749
812
  var import_jsx_runtime15, import_react14, summary_view_default3;
750
813
  var init_summary_view3 = __esm({
@@ -15144,7 +15207,7 @@ var init_auto = __esm({
15144
15207
  }
15145
15208
  });
15146
15209
 
15147
- // build/util.latency/inline-view.js
15210
+ // build/util.stats.latency/inline-view.js
15148
15211
  var inline_view_exports7 = {};
15149
15212
  __export(inline_view_exports7, {
15150
15213
  default: () => inline_view_default7
@@ -15215,7 +15278,7 @@ function InlineView10({ state, config: _2 }) {
15215
15278
  }
15216
15279
  var import_jsx_runtime19, import_react18, inline_view_default7;
15217
15280
  var init_inline_view7 = __esm({
15218
- "build/util.latency/inline-view.js"() {
15281
+ "build/util.stats.latency/inline-view.js"() {
15219
15282
  "use strict";
15220
15283
  import_jsx_runtime19 = __toESM(require_jsx_runtime());
15221
15284
  import_react18 = __toESM(require_react());
@@ -15224,7 +15287,7 @@ var init_inline_view7 = __esm({
15224
15287
  }
15225
15288
  });
15226
15289
 
15227
- // build/util.latency/source-node-selection.js
15290
+ // build/util.stats.latency/source-node-selection.js
15228
15291
  var source_node_selection_exports = {};
15229
15292
  __export(source_node_selection_exports, {
15230
15293
  default: () => source_node_selection_default
@@ -15243,14 +15306,14 @@ function SourceNodeSelection(props) {
15243
15306
  }
15244
15307
  var import_jsx_runtime20, source_node_selection_default;
15245
15308
  var init_source_node_selection = __esm({
15246
- "build/util.latency/source-node-selection.js"() {
15309
+ "build/util.stats.latency/source-node-selection.js"() {
15247
15310
  "use strict";
15248
15311
  import_jsx_runtime20 = __toESM(require_jsx_runtime());
15249
15312
  source_node_selection_default = SourceNodeSelection;
15250
15313
  }
15251
15314
  });
15252
15315
 
15253
- // build/util.ma35d/inline-view.js
15316
+ // build/util.stats.ma35d/inline-view.js
15254
15317
  var inline_view_exports8 = {};
15255
15318
  __export(inline_view_exports8, {
15256
15319
  default: () => inline_view_default8
@@ -15325,7 +15388,7 @@ function InlineView11({ state, config: _2 }) {
15325
15388
  }
15326
15389
  var import_jsx_runtime21, import_react20, inline_view_default8;
15327
15390
  var init_inline_view8 = __esm({
15328
- "build/util.ma35d/inline-view.js"() {
15391
+ "build/util.stats.ma35d/inline-view.js"() {
15329
15392
  "use strict";
15330
15393
  import_jsx_runtime21 = __toESM(require_jsx_runtime());
15331
15394
  import_react20 = __toESM(require_react());
@@ -15450,6 +15513,7 @@ function info_default({ defineComponent, Av, validation: { Z, Port, SourceName,
15450
15513
  identifier: "input.rtmp",
15451
15514
  category: "input",
15452
15515
  name: "RTMP Ingest",
15516
+ description: "A component that listens for RTMP input on the address specified.",
15453
15517
  subscription: {
15454
15518
  accepts: void 0,
15455
15519
  produces: {
@@ -16295,7 +16359,7 @@ function info_default13(R) {
16295
16359
  var import_config3 = __toESM(require_config());
16296
16360
  function info_default14({ defineComponent, Video, validation: { Z } }) {
16297
16361
  return defineComponent({
16298
- identifier: "processor.transform.browserOverlay",
16362
+ identifier: "processor.browserOverlay",
16299
16363
  category: "processor",
16300
16364
  name: "Browser Overlay",
16301
16365
  subscription: {
@@ -16333,7 +16397,7 @@ function info_default15({ defineComponent, Av, React: React14, common: { Resolut
16333
16397
  const SourceSelection = React14.lazy(async () => Promise.resolve().then(() => (init_source_selection(), source_selection_exports)));
16334
16398
  const InlineView13 = React14.lazy(async () => Promise.resolve().then(() => (init_inline_view6(), inline_view_exports6)));
16335
16399
  return defineComponent({
16336
- identifier: "processor.control.cascadingSwitch",
16400
+ identifier: "processor.cascadingSwitch",
16337
16401
  category: "processor",
16338
16402
  name: "Cascading Switch",
16339
16403
  subscription: {
@@ -16474,6 +16538,7 @@ function info_default16({ defineComponent, Video }) {
16474
16538
  identifier: "processor.dynamicBug",
16475
16539
  category: "processor",
16476
16540
  name: "Dynamic Bug",
16541
+ description: "",
16477
16542
  subscription: {
16478
16543
  // Only accept a single video stream
16479
16544
  accepts: {
@@ -16490,7 +16555,7 @@ function info_default16({ defineComponent, Video }) {
16490
16555
  },
16491
16556
  display: (desc) => {
16492
16557
  return {
16493
- default: desc.config.defaultBug ?? "none"
16558
+ default: desc.config.initialBug ?? "none"
16494
16559
  };
16495
16560
  },
16496
16561
  runtime: {
@@ -16511,15 +16576,16 @@ function info_default16({ defineComponent, Video }) {
16511
16576
  hardware: (0, import_config4.HardwareSelection)()
16512
16577
  },
16513
16578
  form: {
16514
- defaultBug: {
16515
- help: "The default bug to render on the video (if any)",
16579
+ initialBug: {
16580
+ help: "The initial bug to render on the video (if any)",
16516
16581
  hint: {
16517
16582
  type: "custom",
16583
+ optional: true,
16518
16584
  component: BugSelection2
16519
16585
  }
16520
16586
  },
16521
- defaultPosition: {
16522
- help: "The default location to render the bug in",
16587
+ initialPosition: {
16588
+ help: "The initial location at which to render the bug",
16523
16589
  hint: {
16524
16590
  type: "select",
16525
16591
  optional: true,
@@ -16547,7 +16613,7 @@ function info_default17({ defineComponent, Video }) {
16547
16613
  const CodecEditor3 = import_react17.default.lazy(async () => Promise.resolve().then(() => (init_codec_editor(), codec_editor_exports)));
16548
16614
  const CodecView = import_react17.default.lazy(async () => Promise.resolve().then(() => (init_codec_view(), codec_view_exports)));
16549
16615
  return defineComponent({
16550
- identifier: "processor.transform.fixedLadder",
16616
+ identifier: "processor.fixedLadder",
16551
16617
  category: "processor",
16552
16618
  name: "Encode Ladder",
16553
16619
  subscription: {
@@ -16907,14 +16973,14 @@ function info_default18({ defineComponent, Av, Subtitle, validation: { Z } }) {
16907
16973
  });
16908
16974
  }
16909
16975
 
16910
- // build/util.latency/info.js
16976
+ // build/util.stats.latency/info.js
16911
16977
  var import_react19 = __toESM(require_react());
16912
16978
  function info_default19(R) {
16913
16979
  const { defineComponent } = R;
16914
16980
  const InlineView13 = import_react19.default.lazy(async () => Promise.resolve().then(() => (init_inline_view7(), inline_view_exports7)));
16915
16981
  const SourceNodeSelection2 = import_react19.default.lazy(async () => Promise.resolve().then(() => (init_source_node_selection(), source_node_selection_exports)));
16916
16982
  return defineComponent({
16917
- identifier: "util.latency-stats",
16983
+ identifier: "util.stats.latency",
16918
16984
  category: "output",
16919
16985
  name: "Latency Probe",
16920
16986
  subscription: {
@@ -16997,13 +17063,13 @@ function assertUnreachable10(_) {
16997
17063
  throw new Error("Didn't expect to get here");
16998
17064
  }
16999
17065
 
17000
- // build/util.ma35d/info.js
17066
+ // build/util.stats.ma35d/info.js
17001
17067
  var import_react21 = __toESM(require_react());
17002
17068
  function info_default20(R) {
17003
17069
  const { defineComponent } = R;
17004
17070
  const InlineView13 = import_react21.default.lazy(async () => Promise.resolve().then(() => (init_inline_view8(), inline_view_exports8)));
17005
17071
  return defineComponent({
17006
- identifier: "util.ma35d-stats",
17072
+ identifier: "util.stats.ma35d",
17007
17073
  category: "output",
17008
17074
  name: "MA35D Stats",
17009
17075
  subscription: {
package/client/style.css CHANGED
@@ -941,6 +941,10 @@ input[type="range"]::-ms-fill-lower {
941
941
  grid-column: span 2 / span 2;
942
942
  }
943
943
 
944
+ .mb-1 {
945
+ margin-bottom: 0.25rem;
946
+ }
947
+
944
948
  .mb-2 {
945
949
  margin-bottom: 0.5rem;
946
950
  }
@@ -1022,6 +1026,10 @@ input[type="range"]::-ms-fill-lower {
1022
1026
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1023
1027
  }
1024
1028
 
1029
+ .cursor-not-allowed {
1030
+ cursor: not-allowed;
1031
+ }
1032
+
1025
1033
  .cursor-pointer {
1026
1034
  cursor: pointer;
1027
1035
  }
@@ -1046,6 +1054,12 @@ input[type="range"]::-ms-fill-lower {
1046
1054
  justify-content: center;
1047
1055
  }
1048
1056
 
1057
+ .space-y-3 > :not([hidden]) ~ :not([hidden]) {
1058
+ --tw-space-y-reverse: 0;
1059
+ margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
1060
+ margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
1061
+ }
1062
+
1049
1063
  .rounded {
1050
1064
  border-radius: 0.25rem;
1051
1065
  }
@@ -1074,6 +1088,20 @@ input[type="range"]::-ms-fill-lower {
1074
1088
  border-end-start-radius: 0.5rem;
1075
1089
  }
1076
1090
 
1091
+ .border {
1092
+ border-width: 1px;
1093
+ }
1094
+
1095
+ .border-gray-300 {
1096
+ --tw-border-opacity: 1;
1097
+ border-color: rgb(209 213 219 / var(--tw-border-opacity));
1098
+ }
1099
+
1100
+ .bg-gray-100 {
1101
+ --tw-bg-opacity: 1;
1102
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity));
1103
+ }
1104
+
1077
1105
  .bg-gray-200 {
1078
1106
  --tw-bg-opacity: 1;
1079
1107
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
@@ -1089,10 +1117,19 @@ input[type="range"]::-ms-fill-lower {
1089
1117
  background-color: rgb(29 78 216 / var(--tw-bg-opacity));
1090
1118
  }
1091
1119
 
1120
+ .bg-red-600 {
1121
+ --tw-bg-opacity: 1;
1122
+ background-color: rgb(224 36 36 / var(--tw-bg-opacity));
1123
+ }
1124
+
1092
1125
  .stroke-gray-700 {
1093
1126
  stroke: #374151;
1094
1127
  }
1095
1128
 
1129
+ .p-2 {
1130
+ padding: 0.5rem;
1131
+ }
1132
+
1096
1133
  .px-5 {
1097
1134
  padding-left: 1.25rem;
1098
1135
  padding-right: 1.25rem;
@@ -1107,15 +1144,33 @@ input[type="range"]::-ms-fill-lower {
1107
1144
  text-align: center;
1108
1145
  }
1109
1146
 
1147
+ .text-lg {
1148
+ font-size: 1.125rem;
1149
+ line-height: 1.75rem;
1150
+ }
1151
+
1110
1152
  .text-sm {
1111
1153
  font-size: 0.875rem;
1112
1154
  line-height: 1.25rem;
1113
1155
  }
1114
1156
 
1157
+ .text-xl {
1158
+ font-size: 1.25rem;
1159
+ line-height: 1.75rem;
1160
+ }
1161
+
1162
+ .font-bold {
1163
+ font-weight: 700;
1164
+ }
1165
+
1115
1166
  .font-medium {
1116
1167
  font-weight: 500;
1117
1168
  }
1118
1169
 
1170
+ .font-semibold {
1171
+ font-weight: 600;
1172
+ }
1173
+
1119
1174
  .leading-6 {
1120
1175
  line-height: 1.5rem;
1121
1176
  }
@@ -1129,21 +1184,40 @@ input[type="range"]::-ms-fill-lower {
1129
1184
  color: rgb(0 0 0 / var(--tw-text-opacity));
1130
1185
  }
1131
1186
 
1187
+ .text-gray-900 {
1188
+ --tw-text-opacity: 1;
1189
+ color: rgb(17 24 39 / var(--tw-text-opacity));
1190
+ }
1191
+
1132
1192
  .text-green-300 {
1133
1193
  --tw-text-opacity: 1;
1134
1194
  color: rgb(132 225 188 / var(--tw-text-opacity));
1135
1195
  }
1136
1196
 
1197
+ .text-green-600 {
1198
+ --tw-text-opacity: 1;
1199
+ color: rgb(5 122 85 / var(--tw-text-opacity));
1200
+ }
1201
+
1137
1202
  .text-orange-300 {
1138
1203
  --tw-text-opacity: 1;
1139
1204
  color: rgb(253 186 140 / var(--tw-text-opacity));
1140
1205
  }
1141
1206
 
1207
+ .text-red-600 {
1208
+ --tw-text-opacity: 1;
1209
+ color: rgb(224 36 36 / var(--tw-text-opacity));
1210
+ }
1211
+
1142
1212
  .text-white {
1143
1213
  --tw-text-opacity: 1;
1144
1214
  color: rgb(255 255 255 / var(--tw-text-opacity));
1145
1215
  }
1146
1216
 
1217
+ .opacity-50 {
1218
+ opacity: 0.5;
1219
+ }
1220
+
1147
1221
  .shadow-lg {
1148
1222
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1149
1223
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -1345,6 +1419,11 @@ input[type="range"]::-ms-fill-lower {
1345
1419
  background-color: rgb(30 64 175 / var(--tw-bg-opacity));
1346
1420
  }
1347
1421
 
1422
+ .hover\:bg-red-700:hover {
1423
+ --tw-bg-opacity: 1;
1424
+ background-color: rgb(200 30 30 / var(--tw-bg-opacity));
1425
+ }
1426
+
1348
1427
  .focus\:outline-none:focus {
1349
1428
  outline: 2px solid transparent;
1350
1429
  outline-offset: 2px;
@@ -1361,6 +1440,16 @@ input[type="range"]::-ms-fill-lower {
1361
1440
  --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity));
1362
1441
  }
1363
1442
 
1443
+ .focus\:ring-red-300:focus {
1444
+ --tw-ring-opacity: 1;
1445
+ --tw-ring-color: rgb(248 180 180 / var(--tw-ring-opacity));
1446
+ }
1447
+
1448
+ .dark\:border-gray-600:is(.dark *) {
1449
+ --tw-border-opacity: 1;
1450
+ border-color: rgb(75 85 99 / var(--tw-border-opacity));
1451
+ }
1452
+
1364
1453
  .dark\:bg-black:is(.dark *) {
1365
1454
  --tw-bg-opacity: 1;
1366
1455
  background-color: rgb(0 0 0 / var(--tw-bg-opacity));
@@ -1371,15 +1460,30 @@ input[type="range"]::-ms-fill-lower {
1371
1460
  background-color: rgb(55 65 81 / var(--tw-bg-opacity));
1372
1461
  }
1373
1462
 
1463
+ .dark\:bg-gray-800:is(.dark *) {
1464
+ --tw-bg-opacity: 1;
1465
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity));
1466
+ }
1467
+
1374
1468
  .dark\:bg-primary-600:is(.dark *) {
1375
1469
  --tw-bg-opacity: 1;
1376
1470
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
1377
1471
  }
1378
1472
 
1473
+ .dark\:bg-red-700:is(.dark *) {
1474
+ --tw-bg-opacity: 1;
1475
+ background-color: rgb(200 30 30 / var(--tw-bg-opacity));
1476
+ }
1477
+
1379
1478
  .dark\:stroke-gray-50:is(.dark *) {
1380
1479
  stroke: #F9FAFB;
1381
1480
  }
1382
1481
 
1482
+ .dark\:text-gray-400:is(.dark *) {
1483
+ --tw-text-opacity: 1;
1484
+ color: rgb(156 163 175 / var(--tw-text-opacity));
1485
+ }
1486
+
1383
1487
  .dark\:text-green-300:is(.dark *) {
1384
1488
  --tw-text-opacity: 1;
1385
1489
  color: rgb(132 225 188 / var(--tw-text-opacity));
@@ -1395,12 +1499,32 @@ input[type="range"]::-ms-fill-lower {
1395
1499
  color: rgb(255 255 255 / var(--tw-text-opacity));
1396
1500
  }
1397
1501
 
1502
+ .dark\:placeholder-gray-400:is(.dark *)::-moz-placeholder {
1503
+ --tw-placeholder-opacity: 1;
1504
+ color: rgb(156 163 175 / var(--tw-placeholder-opacity));
1505
+ }
1506
+
1507
+ .dark\:placeholder-gray-400:is(.dark *)::placeholder {
1508
+ --tw-placeholder-opacity: 1;
1509
+ color: rgb(156 163 175 / var(--tw-placeholder-opacity));
1510
+ }
1511
+
1398
1512
  .dark\:hover\:bg-primary-700:hover:is(.dark *) {
1399
1513
  --tw-bg-opacity: 1;
1400
1514
  background-color: rgb(29 78 216 / var(--tw-bg-opacity));
1401
1515
  }
1402
1516
 
1517
+ .dark\:hover\:bg-red-800:hover:is(.dark *) {
1518
+ --tw-bg-opacity: 1;
1519
+ background-color: rgb(155 28 28 / var(--tw-bg-opacity));
1520
+ }
1521
+
1403
1522
  .dark\:focus\:ring-primary-800:focus:is(.dark *) {
1404
1523
  --tw-ring-opacity: 1;
1405
1524
  --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity));
1406
1525
  }
1526
+
1527
+ .dark\:focus\:ring-red-900:focus:is(.dark *) {
1528
+ --tw-ring-opacity: 1;
1529
+ --tw-ring-color: rgb(119 29 29 / var(--tw-ring-opacity));
1530
+ }
package/lib/info.js CHANGED
@@ -53,9 +53,9 @@ const info_17 = __importDefault(require("./processor.fixedLadder/info"));
53
53
  AllComponents.push((r) => (0, info_17.default)(r));
54
54
  const info_18 = __importDefault(require("./processor.whisper-transcribe/info"));
55
55
  AllComponents.push((r) => (0, info_18.default)(r));
56
- const info_19 = __importDefault(require("./util.latency/info"));
56
+ const info_19 = __importDefault(require("./util.stats.latency/info"));
57
57
  AllComponents.push((r) => (0, info_19.default)(r));
58
- const info_20 = __importDefault(require("./util.ma35d/info"));
58
+ const info_20 = __importDefault(require("./util.stats.ma35d/info"));
59
59
  AllComponents.push((r) => (0, info_20.default)(r));
60
60
  const info_21 = __importDefault(require("./util.timestamps/info"));
61
61
  AllComponents.push((r) => (0, info_21.default)(r));
package/lib/info.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ function default_1({ defineComponent, Av, validation: { Z, Port, SourceName, uni
36
36
  identifier: 'input.rtmp',
37
37
  category: 'input',
38
38
  name: "RTMP Ingest",
39
+ description: "A component that listens for RTMP input on the address specified.",
39
40
  subscription: {
40
41
  accepts: undefined,
41
42
  produces: {
@@ -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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"}
@@ -15,5 +15,5 @@ export type RtmpInputEvent = {
15
15
  streamName: string;
16
16
  };
17
17
  export default class RtmpInputDefinition implements ServerComponentDefinition<RtmpInputSettings, SimpleInputWrapper, RtmpInputState> {
18
- create(norsk: Norsk, cfg: RtmpInputSettings, cb: OnCreated<SimpleInputWrapper>, { updates }: StudioRuntime<RtmpInputState, RtmpInputEvent>): Promise<void>;
18
+ create(norsk: Norsk, cfg: RtmpInputSettings, cb: OnCreated<SimpleInputWrapper>, { updates }: StudioRuntime<RtmpInputState, object, RtmpInputEvent>): Promise<void>;
19
19
  }