@norskvideo/norsk-studio 1.0.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 (263) hide show
  1. package/README.md +58 -0
  2. package/bin/info.ts.template +23 -0
  3. package/bin/studio-bundle +23 -0
  4. package/bin/studio-editor +3 -0
  5. package/bin/studio-runner +3 -0
  6. package/bin/studio-wrap-infos +44 -0
  7. package/lib/client/comms.d.ts +26 -0
  8. package/lib/client/comms.js +114 -0
  9. package/lib/client/comms.js.map +1 -0
  10. package/lib/client/componentevents.d.ts +12 -0
  11. package/lib/client/componentevents.js +41 -0
  12. package/lib/client/componentevents.js.map +1 -0
  13. package/lib/client/console.d.ts +19 -0
  14. package/lib/client/console.js +42 -0
  15. package/lib/client/console.js.map +1 -0
  16. package/lib/client/controls.d.ts +23 -0
  17. package/lib/client/controls.js +80 -0
  18. package/lib/client/controls.js.map +1 -0
  19. package/lib/client/creator.d.ts +45 -0
  20. package/lib/client/creator.js +276 -0
  21. package/lib/client/creator.js.map +1 -0
  22. package/lib/client/jsx/connection-editor.d.ts +11 -0
  23. package/lib/client/jsx/connection-editor.js +198 -0
  24. package/lib/client/jsx/connection-editor.js.map +1 -0
  25. package/lib/client/jsx/connection.d.ts +7 -0
  26. package/lib/client/jsx/connection.js +33 -0
  27. package/lib/client/jsx/connection.js.map +1 -0
  28. package/lib/client/jsx/console-log.d.ts +11 -0
  29. package/lib/client/jsx/console-log.js +17 -0
  30. package/lib/client/jsx/console-log.js.map +1 -0
  31. package/lib/client/jsx/console.d.ts +20 -0
  32. package/lib/client/jsx/console.js +30 -0
  33. package/lib/client/jsx/console.js.map +1 -0
  34. package/lib/client/jsx/node-editor.d.ts +23 -0
  35. package/lib/client/jsx/node-editor.js +442 -0
  36. package/lib/client/jsx/node-editor.js.map +1 -0
  37. package/lib/client/jsx/node.d.ts +25 -0
  38. package/lib/client/jsx/node.js +244 -0
  39. package/lib/client/jsx/node.js.map +1 -0
  40. package/lib/client/jsx/selected-connection.d.ts +21 -0
  41. package/lib/client/jsx/selected-connection.js +110 -0
  42. package/lib/client/jsx/selected-connection.js.map +1 -0
  43. package/lib/client/jsx/selected-node.d.ts +24 -0
  44. package/lib/client/jsx/selected-node.js +75 -0
  45. package/lib/client/jsx/selected-node.js.map +1 -0
  46. package/lib/client/jsx/selected.d.ts +24 -0
  47. package/lib/client/jsx/selected.js +15 -0
  48. package/lib/client/jsx/selected.js.map +1 -0
  49. package/lib/client/jsx/selectfilename.d.ts +7 -0
  50. package/lib/client/jsx/selectfilename.js +17 -0
  51. package/lib/client/jsx/selectfilename.js.map +1 -0
  52. package/lib/client/jsx/toolbox.d.ts +14 -0
  53. package/lib/client/jsx/toolbox.js +45 -0
  54. package/lib/client/jsx/toolbox.js.map +1 -0
  55. package/lib/client/library.d.ts +12 -0
  56. package/lib/client/library.js +53 -0
  57. package/lib/client/library.js.map +1 -0
  58. package/lib/client/modal.d.ts +21 -0
  59. package/lib/client/modal.js +34 -0
  60. package/lib/client/modal.js.map +1 -0
  61. package/lib/client/rete/connection.d.ts +20 -0
  62. package/lib/client/rete/connection.js +27 -0
  63. package/lib/client/rete/connection.js.map +1 -0
  64. package/lib/client/rete/node.d.ts +28 -0
  65. package/lib/client/rete/node.js +78 -0
  66. package/lib/client/rete/node.js.map +1 -0
  67. package/lib/client/rete/selector.d.ts +10 -0
  68. package/lib/client/rete/selector.js +22 -0
  69. package/lib/client/rete/selector.js.map +1 -0
  70. package/lib/client/rete.d.ts +81 -0
  71. package/lib/client/rete.js +384 -0
  72. package/lib/client/rete.js.map +1 -0
  73. package/lib/client/session-view.d.ts +7 -0
  74. package/lib/client/session-view.js +132 -0
  75. package/lib/client/session-view.js.map +1 -0
  76. package/lib/client/session.d.ts +70 -0
  77. package/lib/client/session.js +185 -0
  78. package/lib/client/session.js.map +1 -0
  79. package/lib/client/tools.d.ts +22 -0
  80. package/lib/client/tools.js +311 -0
  81. package/lib/client/tools.js.map +1 -0
  82. package/lib/extension/base-nodes.d.ts +55 -0
  83. package/lib/extension/base-nodes.js +120 -0
  84. package/lib/extension/base-nodes.js.map +1 -0
  85. package/lib/extension/built-ins.d.ts +4 -0
  86. package/lib/extension/built-ins.js +52 -0
  87. package/lib/extension/built-ins.js.map +1 -0
  88. package/lib/extension/client-system.d.ts +5 -0
  89. package/lib/extension/client-system.js +3 -0
  90. package/lib/extension/client-system.js.map +1 -0
  91. package/lib/extension/client-types.d.ts +245 -0
  92. package/lib/extension/client-types.js +87 -0
  93. package/lib/extension/client-types.js.map +1 -0
  94. package/lib/extension/common.d.ts +34 -0
  95. package/lib/extension/common.js +45 -0
  96. package/lib/extension/common.js.map +1 -0
  97. package/lib/extension/registration.d.ts +7 -0
  98. package/lib/extension/registration.js +62 -0
  99. package/lib/extension/registration.js.map +1 -0
  100. package/lib/extension/runtime-system.d.ts +9 -0
  101. package/lib/extension/runtime-system.js +3 -0
  102. package/lib/extension/runtime-system.js.map +1 -0
  103. package/lib/extension/runtime-types.d.ts +91 -0
  104. package/lib/extension/runtime-types.js +318 -0
  105. package/lib/extension/runtime-types.js.map +1 -0
  106. package/lib/extension/validation.d.ts +16 -0
  107. package/lib/extension/validation.js +50 -0
  108. package/lib/extension/validation.js.map +1 -0
  109. package/lib/library/test.d.ts +2 -0
  110. package/lib/library/test.js +11 -0
  111. package/lib/library/test.js.map +1 -0
  112. package/lib/runtime/document.d.ts +62 -0
  113. package/lib/runtime/document.js +322 -0
  114. package/lib/runtime/document.js.map +1 -0
  115. package/lib/runtime/execution.d.ts +48 -0
  116. package/lib/runtime/execution.js +327 -0
  117. package/lib/runtime/execution.js.map +1 -0
  118. package/lib/runtime/norsk-comms.d.ts +24 -0
  119. package/lib/runtime/norsk-comms.js +71 -0
  120. package/lib/runtime/norsk-comms.js.map +1 -0
  121. package/lib/runtime/system.d.ts +30 -0
  122. package/lib/runtime/system.js +83 -0
  123. package/lib/runtime/system.js.map +1 -0
  124. package/lib/server/config.d.ts +19 -0
  125. package/lib/server/config.js +26 -0
  126. package/lib/server/config.js.map +1 -0
  127. package/lib/server/index.d.ts +1 -0
  128. package/lib/server/index.js +310 -0
  129. package/lib/server/index.js.map +1 -0
  130. package/lib/server/logging.d.ts +6 -0
  131. package/lib/server/logging.js +96 -0
  132. package/lib/server/logging.js.map +1 -0
  133. package/lib/server/medialive.d.ts +1 -0
  134. package/lib/server/medialive.js +34 -0
  135. package/lib/server/medialive.js.map +1 -0
  136. package/lib/server/runner.d.ts +1 -0
  137. package/lib/server/runner.js +137 -0
  138. package/lib/server/runner.js.map +1 -0
  139. package/lib/server/session-registration.d.ts +5 -0
  140. package/lib/server/session-registration.js +18 -0
  141. package/lib/server/session-registration.js.map +1 -0
  142. package/lib/server/session.d.ts +117 -0
  143. package/lib/server/session.js +364 -0
  144. package/lib/server/session.js.map +1 -0
  145. package/lib/shared/client-msg.d.ts +13 -0
  146. package/lib/shared/client-msg.js +3 -0
  147. package/lib/shared/client-msg.js.map +1 -0
  148. package/lib/shared/config.d.ts +7 -0
  149. package/lib/shared/config.js +60 -0
  150. package/lib/shared/config.js.map +1 -0
  151. package/lib/shared/document.d.ts +164 -0
  152. package/lib/shared/document.js +496 -0
  153. package/lib/shared/document.js.map +1 -0
  154. package/lib/shared/names.d.ts +3 -0
  155. package/lib/shared/names.js +8 -0
  156. package/lib/shared/names.js.map +1 -0
  157. package/lib/shared/norsk.d.ts +21 -0
  158. package/lib/shared/norsk.js +3 -0
  159. package/lib/shared/norsk.js.map +1 -0
  160. package/lib/shared/server-msg.d.ts +69 -0
  161. package/lib/shared/server-msg.js +3 -0
  162. package/lib/shared/server-msg.js.map +1 -0
  163. package/lib/shared/util.d.ts +7 -0
  164. package/lib/shared/util.js +63 -0
  165. package/lib/shared/util.js.map +1 -0
  166. package/lib/test/_util/builder.d.ts +46 -0
  167. package/lib/test/_util/builder.js +200 -0
  168. package/lib/test/_util/builder.js.map +1 -0
  169. package/lib/test/_util/callback_app.d.ts +13 -0
  170. package/lib/test/_util/callback_app.js +25 -0
  171. package/lib/test/_util/callback_app.js.map +1 -0
  172. package/lib/test/_util/driver.d.ts +16 -0
  173. package/lib/test/_util/driver.js +89 -0
  174. package/lib/test/_util/driver.js.map +1 -0
  175. package/lib/test/_util/fake-norsk.d.ts +14 -0
  176. package/lib/test/_util/fake-norsk.js +19 -0
  177. package/lib/test/_util/fake-norsk.js.map +1 -0
  178. package/lib/test/_util/ffmpeg.d.ts +80 -0
  179. package/lib/test/_util/ffmpeg.js +266 -0
  180. package/lib/test/_util/ffmpeg.js.map +1 -0
  181. package/lib/test/_util/manual-driver.d.ts +42 -0
  182. package/lib/test/_util/manual-driver.js +206 -0
  183. package/lib/test/_util/manual-driver.js.map +1 -0
  184. package/lib/test/_util/runtime.d.ts +81 -0
  185. package/lib/test/_util/runtime.js +194 -0
  186. package/lib/test/_util/runtime.js.map +1 -0
  187. package/lib/test/_util/server.d.ts +8 -0
  188. package/lib/test/_util/server.js +33 -0
  189. package/lib/test/_util/server.js.map +1 -0
  190. package/lib/test/_util/sinks.d.ts +35 -0
  191. package/lib/test/_util/sinks.js +200 -0
  192. package/lib/test/_util/sinks.js.map +1 -0
  193. package/lib/test/_util/sources.d.ts +18 -0
  194. package/lib/test/_util/sources.js +113 -0
  195. package/lib/test/_util/sources.js.map +1 -0
  196. package/lib/test/_util/test-infos-views.d.ts +9 -0
  197. package/lib/test/_util/test-infos-views.js +46 -0
  198. package/lib/test/_util/test-infos-views.js.map +1 -0
  199. package/lib/test/_util/test-infos.d.ts +44 -0
  200. package/lib/test/_util/test-infos.js +202 -0
  201. package/lib/test/_util/test-infos.js.map +1 -0
  202. package/lib/test/client-designview.d.ts +1 -0
  203. package/lib/test/client-designview.js +258 -0
  204. package/lib/test/client-designview.js.map +1 -0
  205. package/lib/test/client-liveview.d.ts +1 -0
  206. package/lib/test/client-liveview.js +413 -0
  207. package/lib/test/client-liveview.js.map +1 -0
  208. package/lib/test/client-session.d.ts +1 -0
  209. package/lib/test/client-session.js +205 -0
  210. package/lib/test/client-session.js.map +1 -0
  211. package/lib/test/client-ui.d.ts +1 -0
  212. package/lib/test/client-ui.js +74 -0
  213. package/lib/test/client-ui.js.map +1 -0
  214. package/lib/test/document-execution.d.ts +1 -0
  215. package/lib/test/document-execution.js +162 -0
  216. package/lib/test/document-execution.js.map +1 -0
  217. package/lib/test/document-loading.d.ts +1 -0
  218. package/lib/test/document-loading.js +420 -0
  219. package/lib/test/document-loading.js.map +1 -0
  220. package/lib/test/runtime-comms.d.ts +1 -0
  221. package/lib/test/runtime-comms.js +321 -0
  222. package/lib/test/runtime-comms.js.map +1 -0
  223. package/lib/test/subscriptions.d.ts +1 -0
  224. package/lib/test/subscriptions.js +334 -0
  225. package/lib/test/subscriptions.js.map +1 -0
  226. package/package.json +112 -0
  227. package/static/98_slides.html +61 -0
  228. package/static/Norsk-Favicon-150x150.png +0 -0
  229. package/static/Norsk-Favicon.png +0 -0
  230. package/static/Norsk-Logo-Dark-Background.png +0 -0
  231. package/static/Norsk.png +0 -0
  232. package/static/ShortStack.woff2 +0 -0
  233. package/static/bonnie-green.png +0 -0
  234. package/static/button.svg +67 -0
  235. package/static/doodle.css +174 -0
  236. package/static/flowbite.min.css +1 -0
  237. package/static/flowbite.min.js +2 -0
  238. package/static/font.css +20 -0
  239. package/static/jese-leos.png +0 -0
  240. package/static/joseph-mcfall.png +0 -0
  241. package/static/michael-gough.png +0 -0
  242. package/static/news-embedded.html +106 -0
  243. package/static/overlay-score.html +210 -0
  244. package/static/overlay-ui.html +918 -0
  245. package/static/react-dom.development.js +29869 -0
  246. package/static/react.development.js +3342 -0
  247. package/static/robert-brown.png +0 -0
  248. package/static/roberta-casas.png +0 -0
  249. package/static/style-dark.css +2467 -0
  250. package/static/style.css +7252 -0
  251. package/static/tailwind.css +31 -0
  252. package/static/team1.png +0 -0
  253. package/static/team2.png +0 -0
  254. package/static/videoFrame.html +73 -0
  255. package/static/webrtc.js +430 -0
  256. package/tailwind-theme.js +66 -0
  257. package/tailwind.config.js +11 -0
  258. package/ui/bypass-esbuild.js +24 -0
  259. package/ui/index.html +189 -0
  260. package/ui/index.js +229180 -0
  261. package/ui/studio.css +31 -0
  262. package/ui/test.html +95 -0
  263. package/ui/view.html +23 -0
@@ -0,0 +1,334 @@
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 norsk_sdk_1 = require("@norskvideo/norsk-sdk");
30
+ const builder_1 = require("./_util/builder");
31
+ const yaml_1 = __importDefault(require("yaml"));
32
+ const document = __importStar(require("../runtime/document"));
33
+ const execution_1 = __importDefault(require("../runtime/execution"));
34
+ const runtime_1 = require("../test/_util/runtime");
35
+ const sinks_1 = require("./_util/sinks");
36
+ const runtime_types_1 = require("../extension/runtime-types");
37
+ const chai_1 = require("chai");
38
+ const client_types_1 = require("../extension/client-types");
39
+ const document_1 = require("../shared/document");
40
+ const sharedKeys = [
41
+ {
42
+ key: 'one',
43
+ media: [],
44
+ display: 'one'
45
+ },
46
+ {
47
+ key: 'two',
48
+ media: [],
49
+ display: 'two'
50
+ },
51
+ {
52
+ key: 'three',
53
+ media: [],
54
+ display: 'three'
55
+ },
56
+ ];
57
+ const DefaultBaseConfig = {
58
+ id: "",
59
+ displayName: ""
60
+ };
61
+ describe("Subscriptions", () => {
62
+ describe("Design", () => {
63
+ describe("Adding a subscription", () => {
64
+ describe("single-stream A/V -> single-stream A/V", () => {
65
+ it("selects take-first-stream A/V", async () => {
66
+ const result = (0, document_1.buildSubscription)({ type: "single-stream", media: client_types_1.Av }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Av });
67
+ const expected = {
68
+ type: "take-first-stream",
69
+ select: client_types_1.Av
70
+ };
71
+ (0, chai_1.expect)(result).deep.equal(expected);
72
+ });
73
+ });
74
+ describe("single-stream A/V -> single-stream A", () => {
75
+ it("selects take-first-stream A", async () => {
76
+ const result = (0, document_1.buildSubscription)({ type: "single-stream", media: client_types_1.Av }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Audio });
77
+ const expected = {
78
+ type: "take-first-stream",
79
+ select: client_types_1.Audio
80
+ };
81
+ (0, chai_1.expect)(result).deep.equal(expected);
82
+ });
83
+ });
84
+ describe("single-stream A -> single-stream A/V", () => {
85
+ it("selects take-first-stream A", async () => {
86
+ const result = (0, document_1.buildSubscription)({ type: "single-stream", media: client_types_1.Audio }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Av });
87
+ const expected = {
88
+ type: "take-first-stream",
89
+ select: client_types_1.Audio
90
+ };
91
+ (0, chai_1.expect)(result).deep.equal(expected);
92
+ });
93
+ });
94
+ describe("multi-stream a/v -> single-stream a/v", () => {
95
+ it("selects take-first-stream a/v", async () => {
96
+ const result = (0, document_1.buildSubscription)({ type: "multi-stream", media: client_types_1.Av }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Av });
97
+ const expected = {
98
+ type: "take-first-stream",
99
+ select: client_types_1.Av
100
+ };
101
+ (0, chai_1.expect)(result).deep.equal(expected);
102
+ });
103
+ });
104
+ describe("multi-stream A -> single-stream A/V", () => {
105
+ it("selects take-first-stream A", async () => {
106
+ const result = (0, document_1.buildSubscription)({ type: "multi-stream", media: client_types_1.Audio }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Av });
107
+ const expected = {
108
+ type: "take-first-stream",
109
+ select: client_types_1.Audio
110
+ };
111
+ (0, chai_1.expect)(result).deep.equal(expected);
112
+ });
113
+ });
114
+ describe("multi-stream A/V -> single-stream A", () => {
115
+ it("selects take-first-stream A", async () => {
116
+ const result = (0, document_1.buildSubscription)({ type: "multi-stream", media: client_types_1.Av }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Audio });
117
+ const expected = {
118
+ type: "take-first-stream",
119
+ select: client_types_1.Audio
120
+ };
121
+ (0, chai_1.expect)(result).deep.equal(expected);
122
+ });
123
+ });
124
+ describe("multi-stream A/V -> multi-stream A/V", () => {
125
+ it("selects take-all-streams A/V", async () => {
126
+ const result = (0, document_1.buildSubscription)({ type: "multi-stream", media: client_types_1.Av }, [], DefaultBaseConfig, { type: "multi-stream", media: client_types_1.Av });
127
+ const expected = {
128
+ type: "take-all-streams",
129
+ select: client_types_1.Av
130
+ };
131
+ (0, chai_1.expect)(result).deep.equal(expected);
132
+ });
133
+ });
134
+ describe("multi-stream A/V -> multi-stream A", () => {
135
+ it("selects take-all-streams A", async () => {
136
+ const result = (0, document_1.buildSubscription)({ type: "multi-stream", media: client_types_1.Av }, [], DefaultBaseConfig, { type: "multi-stream", media: client_types_1.Audio });
137
+ const expected = {
138
+ type: "take-all-streams",
139
+ select: client_types_1.Audio
140
+ };
141
+ (0, chai_1.expect)(result).deep.equal(expected);
142
+ });
143
+ });
144
+ describe("multi-stream A -> multi-stream A/V", () => {
145
+ it("selects take-all-streams A", async () => {
146
+ const result = (0, document_1.buildSubscription)({ type: "multi-stream", media: client_types_1.Audio }, [], DefaultBaseConfig, { type: "multi-stream", media: client_types_1.Av });
147
+ const expected = {
148
+ type: "take-all-streams",
149
+ select: client_types_1.Audio
150
+ };
151
+ (0, chai_1.expect)(result).deep.equal(expected);
152
+ });
153
+ });
154
+ describe("fixed-list A/V -> multi-stream A/V", () => {
155
+ it("selects all streams and A/V", async () => {
156
+ const result = (0, document_1.buildSubscription)({
157
+ type: "fixed-list", possibleMedia: client_types_1.Av, keys: () => sharedKeys,
158
+ selector: (_c, _m) => []
159
+ }, [], DefaultBaseConfig, { type: "multi-stream", media: client_types_1.Av });
160
+ const expected = {
161
+ type: "take-specific-streams",
162
+ select: client_types_1.Av,
163
+ filter: ["one", "two", "three"]
164
+ };
165
+ (0, chai_1.expect)(result).deep.equal(expected);
166
+ });
167
+ });
168
+ describe("fixed-list A -> multi-stream A/V", () => {
169
+ it("selects all streams and A", async () => {
170
+ const result = (0, document_1.buildSubscription)({
171
+ type: "fixed-list", possibleMedia: client_types_1.Audio, keys: () => sharedKeys,
172
+ selector: (_c, _m) => []
173
+ }, [], DefaultBaseConfig, { type: "multi-stream", media: client_types_1.Av });
174
+ const expected = {
175
+ type: "take-specific-streams",
176
+ select: client_types_1.Audio,
177
+ filter: ["one", "two", "three"]
178
+ };
179
+ (0, chai_1.expect)(result).deep.equal(expected);
180
+ });
181
+ });
182
+ describe("fixed-list A/V -> multi-stream A", () => {
183
+ it("selects all streams and A", async () => {
184
+ const result = (0, document_1.buildSubscription)({
185
+ type: "fixed-list", possibleMedia: client_types_1.Av, keys: () => sharedKeys,
186
+ selector: (_c, _m) => []
187
+ }, [], DefaultBaseConfig, { type: "multi-stream", media: client_types_1.Audio });
188
+ const expected = {
189
+ type: "take-specific-streams",
190
+ select: client_types_1.Audio,
191
+ filter: ["one", "two", "three"]
192
+ };
193
+ (0, chai_1.expect)(result).deep.equal(expected);
194
+ });
195
+ });
196
+ describe("fixed-list A/V -> single-stream A/V", () => {
197
+ it("selects first stream and A/V", async () => {
198
+ const result = (0, document_1.buildSubscription)({
199
+ type: "fixed-list", possibleMedia: client_types_1.Av, keys: () => sharedKeys,
200
+ selector: (_c, _m) => []
201
+ }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Av });
202
+ const expected = {
203
+ type: "take-specific-stream",
204
+ select: client_types_1.Av,
205
+ filter: "one"
206
+ };
207
+ (0, chai_1.expect)(result).deep.equal(expected);
208
+ });
209
+ });
210
+ describe("fixed-list A -> single-stream A/V", () => {
211
+ it("select first stream and A", async () => {
212
+ const result = (0, document_1.buildSubscription)({
213
+ type: "fixed-list", possibleMedia: client_types_1.Audio, keys: () => sharedKeys,
214
+ selector: (_c, _m) => []
215
+ }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Av });
216
+ const expected = {
217
+ type: "take-specific-stream",
218
+ select: client_types_1.Audio,
219
+ filter: "one"
220
+ };
221
+ (0, chai_1.expect)(result).deep.equal(expected);
222
+ });
223
+ });
224
+ describe("fixed-list A/V -> single-stream A", () => {
225
+ it("selects the first stream and A", async () => {
226
+ const result = (0, document_1.buildSubscription)({
227
+ type: "fixed-list", possibleMedia: client_types_1.Av, keys: () => sharedKeys,
228
+ selector: (_c, _m) => []
229
+ }, [], DefaultBaseConfig, { type: "single-stream", media: client_types_1.Audio });
230
+ const expected = {
231
+ type: "take-specific-stream",
232
+ select: client_types_1.Audio,
233
+ filter: "one"
234
+ };
235
+ (0, chai_1.expect)(result).deep.equal(expected);
236
+ });
237
+ });
238
+ });
239
+ });
240
+ describe("Execution", () => {
241
+ let compiled = undefined;
242
+ async function testDocument() {
243
+ const runtime = await (0, runtime_1.testRuntime)();
244
+ const yaml = new builder_1.YamlBuilder()
245
+ .addNode(new builder_1.YamlNodeBuilder('source', runtime_1.AvMultiInput.info, {
246
+ inputs: ["one", "two", "three"]
247
+ }).reify()).reify();
248
+ const compiled = document.load(__filename, runtime, yaml_1.default.stringify(yaml));
249
+ return compiled;
250
+ }
251
+ let norsk = undefined;
252
+ let result = undefined;
253
+ afterEach(async () => {
254
+ await norsk?.close();
255
+ await new Promise((r) => {
256
+ setTimeout(() => {
257
+ r();
258
+ }, 10.0);
259
+ });
260
+ norsk = undefined;
261
+ result = undefined;
262
+ });
263
+ beforeEach(async () => {
264
+ norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
265
+ compiled = await testDocument();
266
+ result = await (0, execution_1.default)(norsk, compiled);
267
+ });
268
+ function subscribeTest(n, t) {
269
+ return it(n, async () => {
270
+ const source = result?.nodes['source'];
271
+ const sink = new sinks_1.TraceSink(norsk, "sink");
272
+ await sink.initialised;
273
+ await t(norsk, source, sink);
274
+ });
275
+ }
276
+ subscribeTest("take-all-streams with A/V", async (_, source, sink) => {
277
+ const node = compiled?.nodes['source'].yaml;
278
+ sink.subscribe([
279
+ new runtime_types_1.StudioNodeSubscriptionSource(source, node, { type: 'take-all-streams', select: ["audio", "video"] }, runtime_1.AvMultiInput.info)
280
+ ]);
281
+ await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 6 && sink.totalMessages() > 25, () => (0, chai_1.expect)(sink.streamCount()).equals(6), 10000.0, 10.0);
282
+ });
283
+ subscribeTest("take-all-streams with A only", async (_, source, sink) => {
284
+ const node = compiled?.nodes['source'].yaml;
285
+ sink.subscribe([
286
+ new runtime_types_1.StudioNodeSubscriptionSource(source, node, { type: 'take-all-streams', select: ["audio"] }, runtime_1.AvMultiInput.info)
287
+ ]);
288
+ await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 3 && sink.totalMessages() > 25, () => (0, chai_1.expect)(sink.streamCount()).equals(3), 10000.0, 10.0);
289
+ });
290
+ subscribeTest("take-first-stream with A/V", async (_, source, sink) => {
291
+ const node = compiled?.nodes['source'].yaml;
292
+ sink.subscribe([
293
+ new runtime_types_1.StudioNodeSubscriptionSource(source, node, { type: 'take-first-stream', select: ["video", "audio"] }, runtime_1.AvMultiInput.info)
294
+ ]);
295
+ await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 2 && sink.totalMessages() > 25, () => (0, chai_1.expect)(sink.streamCount()).equals(2), 10000.0, 10.0);
296
+ });
297
+ subscribeTest("take-first-stream with A only", async (_, source, sink) => {
298
+ const node = compiled?.nodes['source'].yaml;
299
+ sink.subscribe([
300
+ new runtime_types_1.StudioNodeSubscriptionSource(source, node, { type: 'take-first-stream', select: ["audio"] }, runtime_1.AvMultiInput.info)
301
+ ]);
302
+ await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 1 && sink.totalMessages() > 25, () => (0, chai_1.expect)(sink.streamCount()).equals(1), 10000.0, 10.0);
303
+ });
304
+ subscribeTest("take-specific-stream with A/V", async (_, source, sink) => {
305
+ const node = compiled?.nodes['source'].yaml;
306
+ sink.subscribe([
307
+ new runtime_types_1.StudioNodeSubscriptionSource(source, node, { type: 'take-specific-stream', filter: 'one', select: ["video", "audio"] }, runtime_1.AvMultiInput.info)
308
+ ]);
309
+ await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 2 && sink.totalMessages() > 25, () => (0, chai_1.expect)(sink.streamCount()).equals(2), 10000.0, 10.0);
310
+ });
311
+ subscribeTest("take-specific-stream with A only", async (_, source, sink) => {
312
+ const node = compiled?.nodes['source'].yaml;
313
+ sink.subscribe([
314
+ new runtime_types_1.StudioNodeSubscriptionSource(source, node, { type: 'take-specific-stream', filter: 'one', select: ["audio"] }, runtime_1.AvMultiInput.info)
315
+ ]);
316
+ await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 1 && sink.totalMessages() > 25, () => (0, chai_1.expect)(sink.streamCount()).equals(1), 10000.0, 10.0);
317
+ });
318
+ subscribeTest("take-specific-streams with A/V", async (_, source, sink) => {
319
+ const node = compiled?.nodes['source'].yaml;
320
+ sink.subscribe([
321
+ new runtime_types_1.StudioNodeSubscriptionSource(source, node, { type: 'take-specific-streams', filter: ['one', 'two'], select: ["video", "audio"] }, runtime_1.AvMultiInput.info)
322
+ ]);
323
+ await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 4 && sink.totalMessages() > 25, () => (0, chai_1.expect)(sink.streamCount()).equals(4), 10000.0, 10.0);
324
+ });
325
+ subscribeTest("take-specific-streams with A only", async (_, source, sink) => {
326
+ const node = compiled?.nodes['source'].yaml;
327
+ sink.subscribe([
328
+ new runtime_types_1.StudioNodeSubscriptionSource(source, node, { type: 'take-specific-streams', filter: ['one', 'two'], select: ["audio"] }, runtime_1.AvMultiInput.info)
329
+ ]);
330
+ await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 2 && sink.totalMessages() > 25, () => (0, chai_1.expect)(sink.streamCount()).equals(2), 10000.0, 10.0);
331
+ });
332
+ });
333
+ });
334
+ //# sourceMappingURL=subscriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/test/subscriptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAA8C;AAC9C,6CAA+D;AAC/D,gDAAwB;AACxB,8DAAgD;AAChD,qEAAqD;AACrD,mDAA6E;AAC7E,yCAAyD;AACzD,8DAA0E;AAC1E,+BAA8B;AAC9B,4DAAwG;AAExG,iDAAmG;AAGnG,MAAM,UAAU,GAAiC;IAC/C;QACE,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,KAAK;KACf;IACD;QACE,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,KAAK;KACf;IACD;QACE,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,OAAO;KACjB;CACF,CAAC;AAEF,MAAM,iBAAiB,GAAe;IACpC,EAAE,EAAE,EAAE;IACN,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBACtD,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;oBAC7C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBACpI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,iBAAE;qBACX,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBACpD,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;oBAC3C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAK,EAAE,CAAC,CAAC;oBACvI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,oBAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBACpD,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;oBAC3C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBACvI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,oBAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBACrD,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;oBAC7C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBACnI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,iBAAE;qBACX,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBACnD,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;oBAC3C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBACtI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,oBAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBACnD,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;oBAC3C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAK,EAAE,CAAC,CAAC;oBACtI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,oBAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBACpD,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;oBAC5C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBAClI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,kBAAkB;wBACxB,MAAM,EAAE,iBAAE;qBACX,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAClD,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;oBAC1C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAK,EAAE,CAAC,CAAC;oBACrI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,kBAAkB;wBACxB,MAAM,EAAE,oBAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAClD,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;oBAC1C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBACrI,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,kBAAkB;wBACxB,MAAM,EAAE,oBAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAClD,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;oBAC3C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B;wBACE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;wBAC7D,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;qBACzB,EACD,EAAE,EACF,iBAAiB,EACjB,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBACvC,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,iBAAE;wBACV,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;qBAChC,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAChD,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;oBACzC,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B;wBACE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;wBAChE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;qBACzB,EAAE,EAAE,EAAE,iBAAiB,EACxB,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBACvC,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,oBAAK;wBACb,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;qBAChC,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAChD,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;oBACzC,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B;wBACE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;wBAC7D,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;qBACzB,EACD,EAAE,EACF,iBAAiB,EACjB,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAK,EAAE,CAAC,CAAC;oBAC1C,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,oBAAK;wBACb,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;qBAChC,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBACnD,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;oBAC5C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B;wBACE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;wBAC7D,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;qBACzB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBAClE,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,sBAAsB;wBAC5B,MAAM,EAAE,iBAAE;wBACV,MAAM,EAAE,KAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBACjD,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;oBACzC,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B;wBACE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;wBAChE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;qBACzB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAE,EAAE,CAAC,CAAC;oBAClE,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,sBAAsB;wBAC5B,MAAM,EAAE,oBAAK;wBACb,MAAM,EAAE,KAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBACjD,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;oBAC9C,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B;wBACE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;wBAC7D,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;qBACzB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAK,EAAE,CAAC,CAAC;oBACrE,MAAM,QAAQ,GAA8B;wBAC1C,IAAI,EAAE,sBAAsB;wBAC5B,MAAM,EAAE,oBAAK;wBACb,MAAM,EAAE,KAAK;qBACd,CAAA;oBACD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QAEJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,IAAI,QAAQ,GAA0C,SAAS,CAAC;QAEhE,KAAK,UAAU,YAAY;YACzB,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAW,GAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,qBAAW,EAAE;iBAC3B,OAAO,CAAC,IAAI,yBAAe,CAAC,QAAQ,EACnC,sBAAY,CAAC,IAAI,EAAE;gBACnB,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;aAChC,CAAC,CAAC,KAAK,EAAE,CACT,CAAC,KAAK,EAAE,CAAC;YAEZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,cAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1E,OAAO,QAAQ,CAAC;QAClB,CAAC;QAGD,IAAI,KAAK,GAAsB,SAAS,CAAC;QACzC,IAAI,MAAM,GAA0B,SAAS,CAAC;QAE9C,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,KAAK,EAAE,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;gBAC5B,UAAU,CAAC,GAAG,EAAE;oBACd,CAAC,EAAE,CAAC;gBACN,CAAC,EAAE,IAAI,CAAC,CAAA;YACV,CAAC,CAAC,CAAA;YACF,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC,CAAC,CAAA;QAEF,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,KAAK,GAAG,MAAM,iBAAK,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACvD,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;YAChC,MAAM,GAAG,MAAM,IAAA,mBAAE,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAA;QAGF,SAAS,aAAa,CAAC,CAAS,EAAE,CAAsE;YACtG,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;gBACtB,MAAM,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAc,CAAC;gBACpD,MAAM,IAAI,GAAG,IAAI,iBAAS,CAAC,KAAc,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM,IAAI,CAAC,WAAW,CAAC;gBACvB,MAAM,CAAC,CAAC,KAAc,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC,CAAA;QAEJ,CAAC;QAED,aAAa,CAAC,2BAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACnE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAmC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,4CAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,sBAAY,CAAC,IAAuC,CAAC;aAC/J,CAAC,CAAA;YAEF,MAAM,IAAA,qBAAa,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAC1D,GAAG,EAAE,CAAC,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C,OAAO,EACP,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,8BAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACtE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAmC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,4CAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,sBAAY,CAAC,IAAuC,CAAC;aACtJ,CAAC,CAAA;YAEF,MAAM,IAAA,qBAAa,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAC1D,GAAG,EAAE,CAAC,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C,OAAO,EACP,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACpE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAmC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,4CAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,sBAAY,CAAC,IAAuC,CAAC;aAChK,CAAC,CAAA;YAEF,MAAM,IAAA,qBAAa,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAC1D,GAAG,EAAE,CAAC,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C,OAAO,EACP,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,+BAA+B,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACvE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAmC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,4CAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,sBAAY,CAAC,IAAuC,CAAC;aACvJ,CAAC,CAAA;YAEF,MAAM,IAAA,qBAAa,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAC1D,GAAG,EAAE,CAAC,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C,OAAO,EACP,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,+BAA+B,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACvE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAmC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,4CAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,sBAAY,CAAC,IAAuC,CAAC;aAClL,CAAC,CAAA;YAEF,MAAM,IAAA,qBAAa,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAC1D,GAAG,EAAE,CAAC,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C,OAAO,EACP,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,kCAAkC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC1E,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAmC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,4CAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,sBAAY,CAAC,IAAuC,CAAC;aACzK,CAAC,CAAA;YAEF,MAAM,IAAA,qBAAa,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAC1D,GAAG,EAAE,CAAC,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C,OAAO,EACP,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,gCAAgC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAmC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,4CAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,sBAAY,CAAC,IAAuC,CAAC;aAC5L,CAAC,CAAA;YAEF,MAAM,IAAA,qBAAa,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAC1D,GAAG,EAAE,CAAC,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C,OAAO,EACP,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,mCAAmC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC3E,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAmC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,4CAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,sBAAY,CAAC,IAAuC,CAAC;aACnL,CAAC,CAAA;YAEF,MAAM,IAAA,qBAAa,EACjB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAC1D,GAAG,EAAE,CAAC,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C,OAAO,EACP,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,112 @@
1
+ {
2
+ "name": "@norskvideo/norsk-studio",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "scripts": {
6
+ "postinstall": "rm -f node_modules/hls-parser/*.ts",
7
+ "clean": "rm -rf lib",
8
+ "prepare": "npm run build",
9
+ "build": "npx npm-run-all --parallel build:*",
10
+ "build:eslint": "npx eslint src",
11
+ "build:server": "npx tsc -p src/server/tsconfig.json && npm run build-tailwind",
12
+ "build:client": "npx tsc -p src/client/tsconfig.json && npx npm-run-all bundle:*",
13
+ "bundle:main": "esbuild --bundle build/client/client/index.js --outfile=ui/index.js --format=esm --loader:.woff2=file --loader:.woff=file --loader:.svg=file --loader:.eot=file --loader:.ttf=file",
14
+ "bundle:test": "bin/studio-bundle build/client/test/_util/test-infos.js build/test-infos.js",
15
+ "build-tailwind": "npx tailwindcss -i static/tailwind.css -o static/style.css",
16
+ "document": "node lib/server/runner.js",
17
+ "server": "PUBLIC_URL_PREFIX=${PUBLIC_URL_PREFIX:-https://localhost:8443} node lib/server/index.js",
18
+ "test": "mocha --no-parallel --jobs=0 --timeout 120000 --recursive lib/test"
19
+ },
20
+ "bin": {
21
+ "studio-editor": "./bin/studio-editor",
22
+ "studio-runner": "./bin/studio-runner",
23
+ "studio-wrap-infos": "./bin/studio-wrap-infos",
24
+ "studio-bundle": "./bin/studio-bundle"
25
+ },
26
+ "files": [
27
+ "lib/**",
28
+ "ui/**",
29
+ "static/**",
30
+ "bin/**",
31
+ "tailwind-theme.js",
32
+ "tailwind.config.js"
33
+ ],
34
+ "license": "See EULA at https://norsk.video/eula",
35
+ "dependencies": {
36
+ "@norskvideo/norsk-sdk": "^1.0.360",
37
+ "@norskvideo/webrtc-client": "^0.1.2",
38
+ "compression": "^1.7.4",
39
+ "config": "^3.3.9",
40
+ "cors": "^2.8.5",
41
+ "deep-equal": "^2.2.3",
42
+ "deepmerge": "^4.3.1",
43
+ "eventhandler": "^2.1.0",
44
+ "express": "^4.18.2",
45
+ "express-ws": "^5.0.2",
46
+ "filewatcher": "^3.0.1",
47
+ "flowbite": "github:id3as/flowbite",
48
+ "flowbite-react": "^0.7.0",
49
+ "intersect": "^1.0.1",
50
+ "isomorphic-ws": "^5.0.0",
51
+ "mustache": "^4.2.0",
52
+ "react-hook-form": "^7.47.0",
53
+ "tmp": "^0.2.1",
54
+ "winston": "^3.11.0",
55
+ "yaml": "^2.3.3",
56
+ "zod": "^3.22.4"
57
+ },
58
+ "devDependencies": {
59
+ "@hookform/resolvers": "^3.3.2",
60
+ "@types/chai": "^4.3.11",
61
+ "@types/compression": "^1.7.5",
62
+ "@types/config": "^3.3.2",
63
+ "@types/deep-equal": "^1.0.4",
64
+ "@types/express": "^4.17.20",
65
+ "@types/express-ws": "^3.0.3",
66
+ "@types/hls-parser": "^0.8.7",
67
+ "@types/intersect": "^1.0.3",
68
+ "@types/jsdom": "^21.1.6",
69
+ "@types/mocha": "^10.0.6",
70
+ "@types/mustache": "^4.2.5",
71
+ "@types/node-fetch": "^2.6.9",
72
+ "@types/react": "^18.2.33",
73
+ "@types/react-dom": "^18.2.14",
74
+ "@types/sinon": "^17.0.2",
75
+ "@types/styled-components": "^5.1.26",
76
+ "@types/tmp": "^0.2.5",
77
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
78
+ "@typescript-eslint/parser": "^6.9.1",
79
+ "chai": "^4.3.10",
80
+ "chart.js": "^4.4.2",
81
+ "ejs": "^3.1.9",
82
+ "esbuild": "^0.21.4",
83
+ "esbuild-plugin-external-global": "^1.0.1",
84
+ "eslint": "^8.53.0",
85
+ "highlight.js": "^11.9.0",
86
+ "hls-parser": "^0.10.8",
87
+ "hls.js": "^1.5.8",
88
+ "jsdom": "^23.0.1",
89
+ "JSX": "^1.1.0",
90
+ "mocha": "^10.2.0",
91
+ "node-fetch": "^2.7.0",
92
+ "npm": "^10.2.3",
93
+ "npm-run-all": "^4.1.5",
94
+ "puppeteer": "^21.5.2",
95
+ "react-dom": "^18.2.0",
96
+ "react-jsx": "^1.0.0",
97
+ "rete-area-plugin": "^2.0.1",
98
+ "rete-auto-arrange-plugin": "^2.0.0",
99
+ "rete-connection-plugin": "^2.0.0",
100
+ "rete-react-plugin": "^2.0.4",
101
+ "rete-render-utils": "^2.0.1",
102
+ "styled-components": "^5.1.26",
103
+ "tailwind-merge": "^2.0.0",
104
+ "tailwindcss": "^3.4.1",
105
+ "tsconfig-paths": "^4.2.0",
106
+ "typescript": "^5.2.2",
107
+ "typescript-nullable": "^0.6.0",
108
+ "watch": "^0.13.0",
109
+ "web-worker": "^1.2.0",
110
+ "why-is-node-running": "^2.2.2"
111
+ }
112
+ }
@@ -0,0 +1,61 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <link rel="icon" href="Norsk-Favicon-150x150.png" sizes="32x32" />
8
+ <link rel="icon" href="Norsk-Favicon.png" sizes="192x192" />
9
+ <link rel="apple-touch-icon" href="Norsk-Favicon.png" />
10
+ <link href="style-dark.css" rel="stylesheet" />
11
+ <title>Norsk</title>
12
+ </head>
13
+
14
+ <body class="dark bg-gray-50 dark:bg-gray-900 antialiased">
15
+ <section class="bg-white dark:bg-gray-900 h-screen">
16
+ <div class="flex flex-row px-4 sm:py-16 lg:px-6">
17
+ <div class="basis-1/4 pr-6">
18
+ <div
19
+ class="relative mx-auto border-gray-800 dark:border-gray-800 bg-gray-800 border-[14px] rounded-[2.5rem] h-[600px] w-[300px]"
20
+ >
21
+ <div
22
+ class="h-[32px] w-[3px] bg-gray-800 dark:bg-gray-800 absolute -left-[17px] top-[72px] rounded-l-lg"
23
+ ></div>
24
+ <div
25
+ class="h-[46px] w-[3px] bg-gray-800 dark:bg-gray-800 absolute -left-[17px] top-[124px] rounded-l-lg"
26
+ ></div>
27
+ <div
28
+ class="h-[46px] w-[3px] bg-gray-800 dark:bg-gray-800 absolute -left-[17px] top-[178px] rounded-l-lg"
29
+ ></div>
30
+ <div
31
+ class="h-[64px] w-[3px] bg-gray-800 dark:bg-gray-800 absolute -right-[17px] top-[142px] rounded-r-lg"
32
+ ></div>
33
+ <div
34
+ class="rounded-[2rem] overflow-hidden w-[272px] h-[572px] bg-white dark:bg-gray-800"
35
+ ></div>
36
+ </div>
37
+ </div>
38
+ <div class="mt-4 md:mt-0 basis-3/4">
39
+ <h2
40
+ class="mb-4 text-4xl tracking-tight font-extrabold text-gray-900 dark:text-white"
41
+ >
42
+ Make Live Easy
43
+ </h2>
44
+ <p
45
+ class="mb-6 font-light text-gray-500 md:text-lg dark:text-gray-400"
46
+ >
47
+ Norsk is an SDK that enables developers to easily create amazing,
48
+ dynamic live video workflows and deploy them at any scale.
49
+ </p>
50
+
51
+ <iframe
52
+ class="w-full"
53
+ style="height: 28rem"
54
+ src="http://127.0.0.1:6791/visualiser/#"
55
+ frameborder="0"
56
+ ></iframe>
57
+ </div>
58
+ </div>
59
+ </section>
60
+ </body>
61
+ </html>
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,67 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="31.774345mm"
13
+ height="16.231627mm"
14
+ viewBox="0 0 112.58626 57.513637"
15
+ id="svg6626"
16
+ version="1.1"
17
+ inkscape:version="0.91 r13725"
18
+ sodipodi:docname="button.svg">
19
+ <defs
20
+ id="defs6628" />
21
+ <sodipodi:namedview
22
+ id="base"
23
+ pagecolor="#ffffff"
24
+ bordercolor="#666666"
25
+ borderopacity="1.0"
26
+ inkscape:pageopacity="0.0"
27
+ inkscape:pageshadow="2"
28
+ inkscape:zoom="5.6"
29
+ inkscape:cx="67.240825"
30
+ inkscape:cy="25.93048"
31
+ inkscape:document-units="px"
32
+ inkscape:current-layer="layer1"
33
+ showgrid="false"
34
+ fit-margin-top="0"
35
+ fit-margin-left="0"
36
+ fit-margin-right="0"
37
+ fit-margin-bottom="0"
38
+ inkscape:window-width="1920"
39
+ inkscape:window-height="1080"
40
+ inkscape:window-x="0"
41
+ inkscape:window-y="0"
42
+ inkscape:window-maximized="1" />
43
+ <metadata
44
+ id="metadata6631">
45
+ <rdf:RDF>
46
+ <cc:Work
47
+ rdf:about="">
48
+ <dc:format>image/svg+xml</dc:format>
49
+ <dc:type
50
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
51
+ <dc:title></dc:title>
52
+ </cc:Work>
53
+ </rdf:RDF>
54
+ </metadata>
55
+ <g
56
+ inkscape:label="Layer 1"
57
+ inkscape:groupmode="layer"
58
+ id="layer1"
59
+ transform="translate(-7.6331e-7,-994.84816)">
60
+ <path
61
+ style="fill:none;stroke:#3c3c3c;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
62
+ d="m 15.473887,996.80148 c 5.572695,-0.10841 11.15435,-0.0543 16.714039,0.0906 5.00588,0.097 12.756552,0.87502 19.148382,0.62208 4.280136,0.48559 8.602875,-0.3113 12.911003,0.28777 6.163273,-0.0723 12.310277,-1.00298 18.496194,-0.66376 5.809548,0.33404 10.05299,0.46817 17.518635,0.33084 7.40211,-0.5156 10.78398,0.10152 10.26306,7.29349 -0.30215,6.1264 -0.16697,11.363 -0.17477,16.0423 0.0347,8.6483 1.36124,24.9985 -0.56672,27.6141 -2.95146,3.7906 -9.953646,1.0759 -14.305775,1.16 -3.987162,-0.1435 -9.602158,1.1027 -13.522882,0.042 -4.88004,-0.6726 -8.213389,0.6597 -13.114383,0.3055 -4.963838,0 -9.786599,-0.8446 -14.568998,0.3116 -5.884763,0.7772 -13.383599,0.6445 -19.199969,-0.5102 -5.841812,-0.9029 -9.964291,-0.064 -15.840154,-0.1277 -4.77834,-0.049 -15.0361127,1.7577 -16.6046758,-0.035 -1.74810147,-1.8496 -0.3843824,-11.7811 -0.4378816,-15.6446 -0.3742554,-9.2274 -0.5360118,-15.6032 0.1290928,-24.8231 0.086012,-1.6135 -1.1338399,-8.4214 0.014457,-10.2105 2.4145353,-3.57088 9.2572886,-1.58703 13.1413456,-2.08502 z"
63
+ id="path242"
64
+ inkscape:connector-curvature="0"
65
+ sodipodi:nodetypes="ccccccccccccccccccccc" />
66
+ </g>
67
+ </svg>