@norskvideo/norsk-studio-built-ins 1.9.0 → 1.10.1

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 (110) hide show
  1. package/client/info.js +4 -4
  2. package/lib/storage.s3/info.d.ts +2 -0
  3. package/lib/storage.s3/info.js +11 -0
  4. package/lib/storage.s3/info.js.map +1 -0
  5. package/lib/storage.s3/storage.d.ts +13 -0
  6. package/lib/storage.s3/storage.js +173 -0
  7. package/lib/storage.s3/storage.js.map +1 -0
  8. package/package.json +8 -3
  9. package/lib/input.mediaconnect/flow-selection.d.ts +0 -9
  10. package/lib/input.mediaconnect/flow-selection.js +0 -40
  11. package/lib/input.mediaconnect/flow-selection.js.map +0 -1
  12. package/lib/input.mediaconnect/info.d.ts +0 -3
  13. package/lib/input.mediaconnect/info.js +0 -70
  14. package/lib/input.mediaconnect/info.js.map +0 -1
  15. package/lib/input.mediaconnect/node-view.d.ts +0 -6
  16. package/lib/input.mediaconnect/node-view.js +0 -38
  17. package/lib/input.mediaconnect/node-view.js.map +0 -1
  18. package/lib/input.mediaconnect/output-selection.d.ts +0 -9
  19. package/lib/input.mediaconnect/output-selection.js +0 -55
  20. package/lib/input.mediaconnect/output-selection.js.map +0 -1
  21. package/lib/input.mediaconnect/runtime.d.ts +0 -23
  22. package/lib/input.mediaconnect/runtime.js +0 -133
  23. package/lib/input.mediaconnect/runtime.js.map +0 -1
  24. package/lib/output.medialive/channel-selection.d.ts +0 -9
  25. package/lib/output.medialive/channel-selection.js +0 -40
  26. package/lib/output.medialive/channel-selection.js.map +0 -1
  27. package/lib/output.medialive/fullscreen.d.ts +0 -6
  28. package/lib/output.medialive/fullscreen.js +0 -31
  29. package/lib/output.medialive/fullscreen.js.map +0 -1
  30. package/lib/output.medialive/info.d.ts +0 -3
  31. package/lib/output.medialive/info.js +0 -111
  32. package/lib/output.medialive/info.js.map +0 -1
  33. package/lib/output.medialive/inline.d.ts +0 -6
  34. package/lib/output.medialive/inline.js +0 -30
  35. package/lib/output.medialive/inline.js.map +0 -1
  36. package/lib/output.medialive/input-selection.d.ts +0 -9
  37. package/lib/output.medialive/input-selection.js +0 -58
  38. package/lib/output.medialive/input-selection.js.map +0 -1
  39. package/lib/output.medialive/node-view.d.ts +0 -6
  40. package/lib/output.medialive/node-view.js +0 -36
  41. package/lib/output.medialive/node-view.js.map +0 -1
  42. package/lib/output.medialive/runtime.d.ts +0 -34
  43. package/lib/output.medialive/runtime.js +0 -142
  44. package/lib/output.medialive/runtime.js.map +0 -1
  45. package/lib/output.medialive/url-selection.d.ts +0 -9
  46. package/lib/output.medialive/url-selection.js +0 -45
  47. package/lib/output.medialive/url-selection.js.map +0 -1
  48. package/lib/processor.actionReplay/info.d.ts +0 -5
  49. package/lib/processor.actionReplay/info.js +0 -100
  50. package/lib/processor.actionReplay/info.js.map +0 -1
  51. package/lib/processor.actionReplay/runtime.d.ts +0 -59
  52. package/lib/processor.actionReplay/runtime.js +0 -224
  53. package/lib/processor.actionReplay/runtime.js.map +0 -1
  54. package/lib/processor.actionReplay/summary.d.ts +0 -7
  55. package/lib/processor.actionReplay/summary.js +0 -76
  56. package/lib/processor.actionReplay/summary.js.map +0 -1
  57. package/lib/processor.audioLevel/info.d.ts +0 -3
  58. package/lib/processor.audioLevel/info.js +0 -83
  59. package/lib/processor.audioLevel/info.js.map +0 -1
  60. package/lib/processor.audioLevel/inline-view.d.ts +0 -6
  61. package/lib/processor.audioLevel/inline-view.js +0 -23
  62. package/lib/processor.audioLevel/inline-view.js.map +0 -1
  63. package/lib/processor.audioLevel/runtime.d.ts +0 -49
  64. package/lib/processor.audioLevel/runtime.js +0 -82
  65. package/lib/processor.audioLevel/runtime.js.map +0 -1
  66. package/lib/processor.audioLevel/summary-view.d.ts +0 -7
  67. package/lib/processor.audioLevel/summary-view.js +0 -36
  68. package/lib/processor.audioLevel/summary-view.js.map +0 -1
  69. package/lib/processor.audioMixer/fullscreen-view.d.ts +0 -8
  70. package/lib/processor.audioMixer/fullscreen-view.js +0 -121
  71. package/lib/processor.audioMixer/fullscreen-view.js.map +0 -1
  72. package/lib/processor.audioMixer/info.d.ts +0 -4
  73. package/lib/processor.audioMixer/info.js +0 -148
  74. package/lib/processor.audioMixer/info.js.map +0 -1
  75. package/lib/processor.audioMixer/inline-view.d.ts +0 -7
  76. package/lib/processor.audioMixer/inline-view.js +0 -43
  77. package/lib/processor.audioMixer/inline-view.js.map +0 -1
  78. package/lib/processor.audioMixer/runtime.d.ts +0 -119
  79. package/lib/processor.audioMixer/runtime.js +0 -142
  80. package/lib/processor.audioMixer/runtime.js.map +0 -1
  81. package/lib/processor.audioMixer/summary-view.d.ts +0 -7
  82. package/lib/processor.audioMixer/summary-view.js +0 -11
  83. package/lib/processor.audioMixer/summary-view.js.map +0 -1
  84. package/lib/processor.aws-transcribe/info.d.ts +0 -3
  85. package/lib/processor.aws-transcribe/info.js +0 -81
  86. package/lib/processor.aws-transcribe/info.js.map +0 -1
  87. package/lib/processor.aws-transcribe/runtime.d.ts +0 -39
  88. package/lib/processor.aws-transcribe/runtime.js +0 -164
  89. package/lib/processor.aws-transcribe/runtime.js.map +0 -1
  90. package/lib/processor.aws-transcribe/transcribe-language-selection.d.ts +0 -9
  91. package/lib/processor.aws-transcribe/transcribe-language-selection.js +0 -40
  92. package/lib/processor.aws-transcribe/transcribe-language-selection.js.map +0 -1
  93. package/lib/processor.aws-transcribe/translate-language-selection.d.ts +0 -9
  94. package/lib/processor.aws-transcribe/translate-language-selection.js +0 -40
  95. package/lib/processor.aws-transcribe/translate-language-selection.js.map +0 -1
  96. package/lib/processor.fixedLadder/newFile.d.ts +0 -3
  97. package/lib/processor.fixedLadder/newFile.js +0 -145
  98. package/lib/processor.fixedLadder/newFile.js.map +0 -1
  99. package/lib/processor.monetise/info.d.ts +0 -3
  100. package/lib/processor.monetise/info.js +0 -90
  101. package/lib/processor.monetise/info.js.map +0 -1
  102. package/lib/processor.monetise/runtime.d.ts +0 -57
  103. package/lib/processor.monetise/runtime.js +0 -141
  104. package/lib/processor.monetise/runtime.js.map +0 -1
  105. package/lib/processor.monetise/summary.d.ts +0 -7
  106. package/lib/processor.monetise/summary.js +0 -39
  107. package/lib/processor.monetise/summary.js.map +0 -1
  108. package/lib/test/audio-mixer.d.ts +0 -0
  109. package/lib/test/audio-mixer.js +0 -2
  110. package/lib/test/audio-mixer.js.map +0 -1
package/client/info.js CHANGED
@@ -273,9 +273,9 @@ var init_form_views = __esm({
273
273
  }
274
274
  });
275
275
 
276
- // ../../../studio-core/lib/shared/shared-views.js
276
+ // ../../node_modules/@norskvideo/norsk-studio/lib/shared/shared-views.js
277
277
  var require_shared_views = __commonJS({
278
- "../../../studio-core/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 = void 0;
@@ -287,9 +287,9 @@ var require_shared_views = __commonJS({
287
287
  }
288
288
  });
289
289
 
290
- // ../../../studio-core/lib/shared/config.js
290
+ // ../../node_modules/@norskvideo/norsk-studio/lib/shared/config.js
291
291
  var require_config = __commonJS({
292
- "../../../studio-core/lib/shared/config.js"(exports) {
292
+ "../../node_modules/@norskvideo/norsk-studio/lib/shared/config.js"(exports) {
293
293
  "use strict";
294
294
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
295
295
  if (k2 === void 0)
@@ -0,0 +1,2 @@
1
+ import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
+ export default function (R: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").StorageNode;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function default_1(R) {
4
+ const { defineStorage, } = R;
5
+ return defineStorage({
6
+ identifier: "s3",
7
+ name: "s3",
8
+ });
9
+ }
10
+ exports.default = default_1;
11
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/storage.s3/info.ts"],"names":[],"mappings":";;AAGA,mBAAyB,CAAe;IACtC,MAAM,EACJ,aAAa,GACd,GAAG,CAAC,CAAC;IAEN,OAAO,aAAa,CAAC;QACnB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AATD,4BASC"}
@@ -0,0 +1,13 @@
1
+ import { BaseConfig } from "@norskvideo/norsk-studio/lib/extension/client-types";
2
+ import { StorageComponentDefinition } from "@norskvideo/norsk-studio/lib/extension/runtime-types";
3
+ export type S3Config = {
4
+ id: string;
5
+ displayName: string;
6
+ bucket: string;
7
+ prefix: string;
8
+ };
9
+ export default class S3Storage implements StorageComponentDefinition<S3Config> {
10
+ preScanDirectory(configs: BaseConfig, localDir: string): Promise<boolean>;
11
+ preLoadDocument(configs: BaseConfig, doc: string): Promise<boolean>;
12
+ postSaveDocument(configs: BaseConfig, doc: string): Promise<boolean>;
13
+ }
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const client_s3_1 = require("@aws-sdk/client-s3");
27
+ const logging_1 = require("@norskvideo/norsk-studio/lib/server/logging");
28
+ const fs_1 = require("fs");
29
+ const path = __importStar(require("path"));
30
+ function findConfig(configs) {
31
+ const config = configs.find((c) => c.id == "s3");
32
+ return (config == undefined) ? undefined : config;
33
+ }
34
+ class S3Storage {
35
+ async preScanDirectory(configs, localDir) {
36
+ (0, logging_1.debuglog)("s3:preScanDirectory", { configs });
37
+ const config = findConfig(configs);
38
+ if (config == undefined) {
39
+ return true;
40
+ }
41
+ const files = await fs_1.promises.readdir(localDir);
42
+ if (files.length == 0) {
43
+ try {
44
+ const bucketLocationCommand = new client_s3_1.GetBucketLocationCommand({ "Bucket": config.bucket });
45
+ const bucketLocationClient = new client_s3_1.S3Client({ "region": "us-east-1" });
46
+ const result = await bucketLocationClient.send(bucketLocationCommand);
47
+ const bucketLocation = result.LocationConstraint ?? undefined;
48
+ if (bucketLocation != undefined) {
49
+ const client = new client_s3_1.S3Client({ "region": bucketLocation });
50
+ const command = new client_s3_1.ListObjectsCommand({
51
+ "Bucket": config.bucket,
52
+ "Prefix": config.prefix
53
+ });
54
+ const response = await client.send(command);
55
+ const files = response.Contents?.map((e) => (e.Key ?? "").replace(response.Prefix ?? "", "").substring(1)) ?? [];
56
+ for (const filename of files) {
57
+ const localpath = `${localDir}/${filename}`;
58
+ const documentKey = `${config.prefix}/${filename}`;
59
+ (0, logging_1.debuglog)("Downloading file", { localpath, documentKey, filename });
60
+ const getObject = new client_s3_1.GetObjectCommand({
61
+ "Bucket": config.bucket,
62
+ "Key": documentKey
63
+ });
64
+ const getResult = await client.send(getObject);
65
+ const fileData = await getResult?.Body?.transformToString("utf8");
66
+ if (fileData != undefined) {
67
+ await fs_1.promises.writeFile(localpath, fileData, "utf8");
68
+ }
69
+ }
70
+ (0, logging_1.debuglog)("Finished downloading files");
71
+ return true;
72
+ }
73
+ else {
74
+ (0, logging_1.errorlog)("Couldn't get region for bucket", { bucket: config.bucket });
75
+ return false;
76
+ }
77
+ }
78
+ catch (err) {
79
+ (0, logging_1.errorlog)("Exception when copying directory", { bucket: config.bucket, prefix: config.prefix, err });
80
+ return Promise.resolve(false);
81
+ }
82
+ }
83
+ else {
84
+ (0, logging_1.warninglog)("Directory not empty, skipping sync", { localDir });
85
+ return true;
86
+ }
87
+ }
88
+ async preLoadDocument(configs, doc) {
89
+ const filename = path.basename(doc);
90
+ (0, logging_1.debuglog)("s3:preLoadDocument", { configs });
91
+ const config = findConfig(configs);
92
+ if (config == undefined) {
93
+ return true;
94
+ }
95
+ try {
96
+ const bucketLocationCommand = new client_s3_1.GetBucketLocationCommand({ "Bucket": config.bucket });
97
+ const bucketLocationClient = new client_s3_1.S3Client({ "region": "us-east-1" });
98
+ const result = await bucketLocationClient.send(bucketLocationCommand);
99
+ const bucketLocation = result.LocationConstraint ?? undefined;
100
+ if (bucketLocation != undefined) {
101
+ const client = new client_s3_1.S3Client({ "region": bucketLocation });
102
+ const documentKey = `${config.prefix}/${filename}`;
103
+ const command = new client_s3_1.GetObjectCommand({
104
+ "Bucket": config.bucket,
105
+ "Key": documentKey
106
+ });
107
+ const data = await client.send(command);
108
+ if (data != undefined && data.Body != undefined) {
109
+ const fileData = await data?.Body?.transformToString("utf8");
110
+ if (fileData != undefined) {
111
+ const _ = await fs_1.promises.writeFile(doc, fileData, "utf8");
112
+ return true;
113
+ }
114
+ else {
115
+ (0, logging_1.errorlog)("Failed to get string from stream", { data });
116
+ return false;
117
+ }
118
+ }
119
+ else {
120
+ (0, logging_1.errorlog)("Failed to get object from s3", { data });
121
+ return false;
122
+ }
123
+ }
124
+ else {
125
+ (0, logging_1.errorlog)("Couldn't get region for bucket", { bucket: config.bucket });
126
+ return false;
127
+ }
128
+ }
129
+ catch (err) {
130
+ (0, logging_1.errorlog)("Exception when reading requested file", { bucket: config.bucket, doc, filename, err });
131
+ throw err;
132
+ }
133
+ }
134
+ async postSaveDocument(configs, doc) {
135
+ const filename = path.basename(doc);
136
+ (0, logging_1.debuglog)("s3:postSaveDocument", { configs });
137
+ const config = findConfig(configs);
138
+ if (config == undefined) {
139
+ return true;
140
+ }
141
+ (0, logging_1.debuglog)("s3:postSaveDocument");
142
+ try {
143
+ const bucketLocationCommand = new client_s3_1.GetBucketLocationCommand({ "Bucket": config.bucket });
144
+ const bucketLocationClient = new client_s3_1.S3Client({ "region": "us-east-1" });
145
+ const result = await bucketLocationClient.send(bucketLocationCommand);
146
+ const bucketLocation = result.LocationConstraint ?? undefined;
147
+ (0, logging_1.debuglog)("s3:postSaveDocument", bucketLocation);
148
+ if (bucketLocation != undefined) {
149
+ const client = new client_s3_1.S3Client({ "region": bucketLocation });
150
+ const documentKey = `${config.prefix}/${filename}`;
151
+ const yaml = await fs_1.promises.readFile(doc, "utf8");
152
+ const command = new client_s3_1.PutObjectCommand({
153
+ "Bucket": config.bucket,
154
+ "Key": documentKey,
155
+ "Body": yaml
156
+ });
157
+ (0, logging_1.debuglog)("Save command", command);
158
+ const _data = await client.send(command);
159
+ return true;
160
+ }
161
+ else {
162
+ (0, logging_1.errorlog)("Couldn't get region for bucket", { bucket: config.bucket });
163
+ return false;
164
+ }
165
+ }
166
+ catch (err) {
167
+ (0, logging_1.errorlog)("Exception when updating requested file", { bucket: config.bucket, doc, filename, err });
168
+ return Promise.resolve(false);
169
+ }
170
+ }
171
+ }
172
+ exports.default = S3Storage;
173
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.s3/storage.ts"],"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.9.0",
3
+ "version": "1.10.1",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "clean": "rm -rf lib",
@@ -19,8 +19,13 @@
19
19
  ],
20
20
  "license": "MIT",
21
21
  "dependencies": {
22
- "@norskvideo/norsk-sdk": "^1.0.360",
23
- "@norskvideo/norsk-studio": "^1.15.0",
22
+ "@aws-sdk/client-mediaconnect": "^3.499.0",
23
+ "@aws-sdk/client-medialive": "^3.499.0",
24
+ "@aws-sdk/client-mediapackage": "^3.499.0",
25
+ "@aws-sdk/client-s3": "^3.609.0",
26
+ "@aws-sdk/client-translate": "^3.535.0",
27
+ "@norskvideo/norsk-sdk": "^1.0.365",
28
+ "@norskvideo/norsk-studio": "^1.16.0",
24
29
  "@norskvideo/webrtc-client": "^0.1.2",
25
30
  "body-parser": "^1.20.2",
26
31
  "cors": "^2.8.5",
@@ -1,9 +0,0 @@
1
- import type { MediaConnectConfig } from "./runtime";
2
- type FlowSelectionProps = {
3
- defaultValue?: string;
4
- id: string;
5
- onChanged: (value: string) => void;
6
- latest: Partial<MediaConnectConfig>;
7
- };
8
- declare function FlowSelection(props: FlowSelectionProps): import("react/jsx-runtime").JSX.Element;
9
- export default FlowSelection;
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const react_1 = require("react");
5
- function FlowSelection(props) {
6
- const [loading, setLoading] = (0, react_1.useState)(true);
7
- (0, react_1.useEffect)(() => {
8
- const fn = async () => {
9
- const result = await fetch('components/input.mediaconnect/flows');
10
- if (result.ok && result.body) {
11
- const flows = await result.json();
12
- setFlows(flows);
13
- setLoading(false);
14
- if (props.defaultValue)
15
- props.onChanged(props.defaultValue);
16
- }
17
- else {
18
- const text = await result.text();
19
- throw new Error(text);
20
- }
21
- };
22
- fn().catch(console.error);
23
- }, []);
24
- const [flows, setFlows] = (0, react_1.useState)([]);
25
- if (loading) {
26
- return (0, jsx_runtime_1.jsx)("div", { children: "Loading.." });
27
- }
28
- if (flows.length == 0) {
29
- return (0, jsx_runtime_1.jsx)("div", { children: "No flows loaded" });
30
- }
31
- return (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, jsx_runtime_1.jsx)("option", { value: '', children: "---" }, "empty"), flows.map((o, i) => {
32
- const val = o.FlowArn;
33
- return (0, jsx_runtime_1.jsxs)("option", { value: val, children: ["-", o.Description] }, i);
34
- })] }) });
35
- function myOnChange(e) {
36
- props.onChanged(e.target.value);
37
- }
38
- }
39
- exports.default = FlowSelection;
40
- //# sourceMappingURL=flow-selection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-selection.js","sourceRoot":"","sources":["../../src/input.mediaconnect/flow-selection.tsx"],"names":[],"mappings":";;;AAAA,iCAAyD;AAYzD,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAE7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,KAAK,IAAI,EAAE;YACpB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAA;YACjE,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAkB,CAAC;gBAClD,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,IAAI,KAAK,CAAC,YAAY;oBACpB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAA;QACD,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAe,EAAE,CAAC,CAAC;IAErD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,wDAAoB,CAAA;IAC7B,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,8DAA0B,CAAA;IACnC,CAAC;IAED,OAAO,0CACL,oCAAQ,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,0BAA0B,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,aACrI,mCAAoB,KAAK,EAAC,EAAE,qBAAhB,OAAO,CAAsB,EACxC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAClB,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;oBACtB,OAAO,oCAAgB,KAAK,EAAE,GAAG,kBAAgB,CAAC,CAAC,WAAW,KAA1C,CAAC,CAAmD,CAAA;gBAC1E,CAAC,CAAC,IACK,GACL,CAAA;IAGN,SAAS,UAAU,CAAC,CAAiC;QACnD,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,kBAAe,aAAa,CAAC"}
@@ -1,3 +0,0 @@
1
- import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
- import type { MediaConnectConfig } from "./runtime";
3
- export default function ({ defineComponent, Av, validation: { Z } }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<MediaConnectConfig, object, object, object>;
@@ -1,70 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importDefault(require("react"));
30
- function default_1({ defineComponent, Av, validation: { Z } }) {
31
- const FlowSelection = react_1.default.lazy(async () => Promise.resolve().then(() => __importStar(require('./flow-selection'))));
32
- const OutputSelection = react_1.default.lazy(async () => Promise.resolve().then(() => __importStar(require('./output-selection'))));
33
- const NodeView = react_1.default.lazy(async () => Promise.resolve().then(() => __importStar(require('./node-view'))));
34
- return defineComponent({
35
- identifier: 'input.mediaconnect',
36
- category: 'input',
37
- name: "Media Connect Input",
38
- subscription: {
39
- produces: {
40
- type: "single-stream",
41
- media: Av
42
- }
43
- },
44
- designtime: {
45
- node: NodeView
46
- },
47
- configForm: {
48
- form: {
49
- flowArn: {
50
- help: "The flow to connect to",
51
- hint: {
52
- type: "custom",
53
- component: FlowSelection,
54
- validation: Z.string().min(1, "Choosing a flow is mandatory")
55
- }
56
- },
57
- outputArn: {
58
- help: "Output of the flow to be used",
59
- hint: {
60
- type: "custom",
61
- component: OutputSelection,
62
- validation: Z.string().min(1, "Choosing an output is mandatory")
63
- }
64
- }
65
- }
66
- }
67
- });
68
- }
69
- exports.default = default_1;
70
- //# sourceMappingURL=info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/input.mediaconnect/info.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kDAA0B;AAE1B,mBAAwB,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAgB;IAC9E,MAAM,aAAa,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,mDAAQ,kBAAkB,GAAC,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,mDAAQ,oBAAoB,GAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,mDAAQ,aAAa,GAAC,CAAC,CAAC;IAE/D,OAAO,eAAe,CAAqB;QACzC,UAAU,EAAE,oBAAoB;QAChC,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,qBAAqB;QAC3B,YAAY,EAAE;YACZ,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,EAAE;aACV;SACF;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;SACf;QACD,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,OAAO,EAAE;oBACP,IAAI,EAAE,wBAAwB;oBAC9B,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,aAAa;wBACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;qBAC9D;iBACF;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,+BAA+B;oBACrC,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,eAAe;wBAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;qBACjE;iBACF;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAvCD,4BAuCC"}
@@ -1,6 +0,0 @@
1
- import type { MediaConnectConfig } from "./runtime";
2
- import type { NodeDescription } from "@norskvideo/norsk-studio/lib/shared/document";
3
- declare function NodeView(props: {
4
- node: NodeDescription<MediaConnectConfig>;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- export default NodeView;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const react_1 = require("react");
5
- function NodeView(props) {
6
- const [loading, setLoading] = (0, react_1.useState)(true);
7
- const [flow, setFlow] = (0, react_1.useState)(undefined);
8
- (0, react_1.useEffect)(() => {
9
- if (!props.node.config.flowArn)
10
- return;
11
- const fn = async () => {
12
- const result = await fetch('components/input.mediaconnect/flows/' + props.node.config.flowArn);
13
- if (result.ok && result.body) {
14
- const flow = await result.json();
15
- setFlow(flow);
16
- setLoading(false);
17
- }
18
- else {
19
- const text = await result.text();
20
- throw new Error(text);
21
- }
22
- };
23
- fn().catch(console.error);
24
- }, [props.node.config.flowArn]);
25
- const output = flow?.Outputs?.find((o) => o.OutputArn == props.node.config.outputArn);
26
- if (loading) {
27
- return (0, jsx_runtime_1.jsx)("div", { children: "..." });
28
- }
29
- if (!flow) {
30
- return (0, jsx_runtime_1.jsx)("div", { children: "[Error: Failed to load flow]" });
31
- }
32
- if (!output) {
33
- return (0, jsx_runtime_1.jsx)("div", { children: "[Error: Missing output on flow]" });
34
- }
35
- return (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { children: ["Name: ", flow.Name] }), (0, jsx_runtime_1.jsxs)("div", { children: ["Description: ", flow.Description] }), (0, jsx_runtime_1.jsxs)("div", { children: ["Protocol: ", output.Transport?.Protocol] }), (0, jsx_runtime_1.jsxs)("div", { children: ["Address: ", output.ListenerAddress] }), (0, jsx_runtime_1.jsxs)("div", { children: ["Port: ", output.Port] })] });
36
- }
37
- exports.default = NodeView;
38
- //# sourceMappingURL=node-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-view.js","sourceRoot":"","sources":["../../src/input.mediaconnect/node-view.tsx"],"names":[],"mappings":";;;AAAA,iCAA4C;AAM5C,SAAS,QAAQ,CAAC,KAAoD;IACpE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAmB,SAAS,CAAC,CAAC;IAE9D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QACvC,MAAM,EAAE,GAAG,KAAK,IAAI,EAAE;YACpB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,sCAAsC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC9F,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAU,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAA;QACD,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAE/B,MAAM,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEtF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,kDAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,2EAAuC,CAAA;IAChD,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,8EAA0C,CAAA;IACnD,CAAC;IAED,OAAO,4CACL,sDAAY,IAAI,CAAC,IAAI,IAAO,EAC5B,6DAAmB,IAAI,CAAC,WAAW,IAAO,EAC1C,0DAAgB,MAAM,CAAC,SAAS,EAAE,QAAQ,IAAO,EACjD,yDAAe,MAAM,CAAC,eAAe,IAAO,EAC5C,sDAAY,MAAM,CAAC,IAAI,IAAO,IAC1B,CAAA;AACR,CAAC;AAED,kBAAe,QAAQ,CAAC"}
@@ -1,9 +0,0 @@
1
- import type { MediaConnectConfig } from "./runtime";
2
- type OutputSelectionProps = {
3
- defaultValue?: string;
4
- id: string;
5
- onChanged: (value: string) => void;
6
- latest: Partial<MediaConnectConfig>;
7
- };
8
- declare function OutputSelection(props: OutputSelectionProps): import("react/jsx-runtime").JSX.Element;
9
- export default OutputSelection;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const react_1 = require("react");
5
- function OutputSelection(props) {
6
- const [loading, setLoading] = (0, react_1.useState)(true);
7
- const [flow, setFlow] = (0, react_1.useState)(undefined);
8
- (0, react_1.useEffect)(() => {
9
- const fn = async () => {
10
- setLoading(true);
11
- if (props.latest.flowArn) {
12
- const result = await fetch('components/input.mediaconnect/flows/' + props.latest.flowArn);
13
- if (result.ok && result.body) {
14
- const flow = await result.json();
15
- setFlow(flow);
16
- setLoading(false);
17
- const firstOutput = flow.Outputs?.[0]?.OutputArn;
18
- if (firstOutput && flow.Outputs?.length == 1 && firstOutput !== props.defaultValue) {
19
- props.onChanged(firstOutput);
20
- }
21
- else if (props.defaultValue) {
22
- props.onChanged(props.defaultValue);
23
- }
24
- }
25
- else {
26
- const text = await result.text();
27
- throw new Error(text);
28
- }
29
- }
30
- };
31
- fn().catch(console.error);
32
- }, [props.latest.flowArn]);
33
- if (loading) {
34
- return (0, jsx_runtime_1.jsx)("div", { children: "..." });
35
- }
36
- if (flow == undefined) {
37
- return (0, jsx_runtime_1.jsx)("div", { children: "..." });
38
- }
39
- if (!flow.Outputs) {
40
- return (0, jsx_runtime_1.jsx)("div", { children: "Flow has no outputs" });
41
- }
42
- const firstOutput = flow.Outputs?.[0]?.OutputArn;
43
- if (firstOutput && flow.Outputs.length == 1) {
44
- return (0, jsx_runtime_1.jsxs)("div", { children: [flow.Outputs[0].ListenerAddress ?? '', ":", flow.Outputs[0].Port ?? 0] });
45
- }
46
- return (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, jsx_runtime_1.jsx)("option", { value: "", children: "---" }, "empty"), flow.Outputs.map((o, i) => {
47
- const val = o.OutputArn;
48
- return (0, jsx_runtime_1.jsxs)("option", { value: val, children: [o.Name, "-", o.Description] }, i);
49
- })] }) });
50
- function myOnChange(e) {
51
- props.onChanged(e.target.value);
52
- }
53
- }
54
- exports.default = OutputSelection;
55
- //# sourceMappingURL=output-selection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output-selection.js","sourceRoot":"","sources":["../../src/input.mediaconnect/output-selection.tsx"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /// <reference types="express-ws" />
2
- import { Norsk } from '@norskvideo/norsk-sdk';
3
- import { OnCreated, ServerComponentDefinition } from '@norskvideo/norsk-studio/lib/extension/runtime-types';
4
- import { CustomSourceNode } from '@norskvideo/norsk-studio/lib/extension/base-nodes';
5
- export type MediaConnectConfig = {
6
- id: string;
7
- displayName: string;
8
- flowArn: string;
9
- outputArn: string;
10
- };
11
- export default class MediaConnectSourceDefinition implements ServerComponentDefinition<MediaConnectConfig, MediaConnectSource> {
12
- create(norsk: Norsk, cfg: MediaConnectConfig, cb: OnCreated<MediaConnectSource>): Promise<void>;
13
- routes(): import("express-ws").Router;
14
- }
15
- export declare class MediaConnectSource extends CustomSourceNode {
16
- norsk: Norsk;
17
- cfg: MediaConnectConfig;
18
- initialised: Promise<void>;
19
- static create(norsk: Norsk, cfg: MediaConnectConfig): Promise<MediaConnectSource>;
20
- constructor(cfg: MediaConnectConfig, norsk: Norsk);
21
- initialise(): Promise<void>;
22
- close(): Promise<void>;
23
- }