@device-portal/react 0.0.1 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +96 -5
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -367
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/dist/consumer/useDevicePortalConsumer.js +1 -1
- package/dist/consumer/useDevicePortalConsumer.js.map +1 -1
- package/dist/provider/DevicePortalProvider.js.map +1 -1
- package/dist/provider/useDevicePortalPeer.js.map +1 -1
- package/dist/provider/useDevicePortalProvider.js +1 -1
- package/dist/provider/useDevicePortalProvider.js.map +1 -1
- package/package.json +5 -2
- package/dist/delay.js +0 -8
- package/dist/delay.js.map +0 -1
- package/dist/settings.js +0 -12
- package/dist/settings.js.map +0 -1
- package/dist/webrtc/Initiator.js +0 -359
- package/dist/webrtc/Initiator.js.map +0 -1
- package/dist/webrtc/Peer.js +0 -367
- package/dist/webrtc/Peer.js.map +0 -1
- package/dist/webrtc/Responder.js +0 -133
- package/dist/webrtc/Responder.js.map +0 -1
package/README.md
CHANGED
|
@@ -14,16 +14,22 @@ npm install @device-portal/react
|
|
|
14
14
|
|
|
15
15
|
It is expected that the package will be used on two different devices. Create for them two separate pages or apps. Let's call them App A and App B. Both apps will be linked by same `room` (e.g. `'my-test-room'`).
|
|
16
16
|
|
|
17
|
-
###
|
|
17
|
+
### One-way Data Flow
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
This is the simplest use case where a `Provider` sends data to one or more `Consumer`s.
|
|
20
|
+
|
|
21
|
+
#### App A (Provider)
|
|
22
|
+
|
|
23
|
+
The provider app sends a value.
|
|
20
24
|
|
|
21
25
|
```jsx
|
|
22
26
|
import { useDevicePortalProvider } from '@device-portal/react'
|
|
27
|
+
import { useState } from 'react'
|
|
23
28
|
|
|
24
29
|
const AppA = () => {
|
|
25
30
|
const [value, setValue] = useState(0)
|
|
26
|
-
useDevicePortalProvider('my-test-room',
|
|
31
|
+
useDevicePortalProvider('my-test-room', {
|
|
32
|
+
value: value.toString(),
|
|
27
33
|
websocketSignalingServer: 'wss://device-portal.filipchalupa.cz',
|
|
28
34
|
})
|
|
29
35
|
|
|
@@ -43,14 +49,23 @@ const AppA = () => {
|
|
|
43
49
|
}
|
|
44
50
|
```
|
|
45
51
|
|
|
46
|
-
|
|
52
|
+
#### App B (Consumer)
|
|
47
53
|
|
|
48
|
-
The
|
|
54
|
+
The consumer app receives the value from the provider. Every time the provider's value changes, the consumer will be automatically updated.
|
|
49
55
|
|
|
50
56
|
```jsx
|
|
51
57
|
import { useDevicePortalConsumer } from '@device-portal/react'
|
|
58
|
+
import { Suspense } from 'react'
|
|
52
59
|
|
|
53
60
|
const AppB = () => {
|
|
61
|
+
return (
|
|
62
|
+
<Suspense fallback={<p>Connecting...</p>}>
|
|
63
|
+
<ConsumerComponent />
|
|
64
|
+
</Suspense>
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const ConsumerComponent = () => {
|
|
54
69
|
const { value } = useDevicePortalConsumer('my-test-room', {
|
|
55
70
|
websocketSignalingServer: 'wss://device-portal.filipchalupa.cz',
|
|
56
71
|
})
|
|
@@ -58,12 +73,88 @@ const AppB = () => {
|
|
|
58
73
|
return (
|
|
59
74
|
<>
|
|
60
75
|
<h1>App B</h1>
|
|
76
|
+
<p>Value from provider: {value}</p>
|
|
77
|
+
</>
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Two-way Communication
|
|
83
|
+
|
|
84
|
+
You can also send messages from the `Consumer` back to the `Provider`.
|
|
85
|
+
|
|
86
|
+
#### App A (Provider with message handling)
|
|
87
|
+
|
|
88
|
+
The provider now also listens for messages from the consumer.
|
|
89
|
+
|
|
90
|
+
```jsx
|
|
91
|
+
import { useDevicePortalProvider } from '@device-portal/react'
|
|
92
|
+
import { useState } from 'react'
|
|
93
|
+
|
|
94
|
+
const AppA = () => {
|
|
95
|
+
const [value, setValue] = useState(0)
|
|
96
|
+
const [messageFromB, setMessageFromB] = useState('')
|
|
97
|
+
|
|
98
|
+
useDevicePortalProvider('my-test-room', {
|
|
99
|
+
value: value.toString(),
|
|
100
|
+
onMessageFromConsumer: (message) => {
|
|
101
|
+
setMessageFromB(message)
|
|
102
|
+
},
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
return (
|
|
106
|
+
<>
|
|
107
|
+
<h1>App A</h1>
|
|
61
108
|
<p>Value: {value}</p>
|
|
109
|
+
<button
|
|
110
|
+
onClick={() => {
|
|
111
|
+
setValue(value + 1)
|
|
112
|
+
}}
|
|
113
|
+
>
|
|
114
|
+
Increment
|
|
115
|
+
</button>
|
|
116
|
+
<p>Last message from App B: {messageFromB}</p>
|
|
62
117
|
</>
|
|
63
118
|
)
|
|
64
119
|
}
|
|
65
120
|
```
|
|
66
121
|
|
|
122
|
+
#### App B (Consumer with message sending)
|
|
123
|
+
|
|
124
|
+
The consumer can now send messages to the provider.
|
|
125
|
+
|
|
126
|
+
```jsx
|
|
127
|
+
import { useDevicePortalConsumer } from '@device-portal/react'
|
|
128
|
+
import { Suspense } from 'react'
|
|
129
|
+
|
|
130
|
+
const AppB = () => {
|
|
131
|
+
return (
|
|
132
|
+
<Suspense fallback={<p>Connecting…</p>}>
|
|
133
|
+
<ConsumerComponent />
|
|
134
|
+
</Suspense>
|
|
135
|
+
)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const ConsumerComponent = () => {
|
|
139
|
+
const { value, sendMessageToProvider } =
|
|
140
|
+
useDevicePortalConsumer('my-test-room')
|
|
141
|
+
|
|
142
|
+
return (
|
|
143
|
+
<>
|
|
144
|
+
<h1>App B</h1>
|
|
145
|
+
<p>Value from provider: {value}</p>
|
|
146
|
+
<button onClick={() => sendMessageToProvider('Hello from B!')}>
|
|
147
|
+
Send Message to A
|
|
148
|
+
</button>
|
|
149
|
+
</>
|
|
150
|
+
)
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Resilience
|
|
155
|
+
|
|
156
|
+
The WebRTC connection is designed to be resilient. If the connection to the signaling server is temporarily lost, any established peer-to-peer connections will remain active. The client will attempt to reconnect to the signaling server in the background to handle any future connection negotiations.
|
|
157
|
+
|
|
67
158
|
## Development
|
|
68
159
|
|
|
69
160
|
Run
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
function _OverloadYield(e, d) {
|
|
2
|
-
this.v = e, this.k = d;
|
|
3
|
-
}
|
|
4
1
|
function _arrayLikeToArray(r, a) {
|
|
5
2
|
(null == a || a > r.length) && (a = r.length);
|
|
6
3
|
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
@@ -9,52 +6,6 @@ function _arrayLikeToArray(r, a) {
|
|
|
9
6
|
function _arrayWithHoles(r) {
|
|
10
7
|
if (Array.isArray(r)) return r;
|
|
11
8
|
}
|
|
12
|
-
function _assertThisInitialized(e) {
|
|
13
|
-
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
14
|
-
return e;
|
|
15
|
-
}
|
|
16
|
-
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
17
|
-
try {
|
|
18
|
-
var i = n[a](c),
|
|
19
|
-
u = i.value;
|
|
20
|
-
} catch (n) {
|
|
21
|
-
return void e(n);
|
|
22
|
-
}
|
|
23
|
-
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
24
|
-
}
|
|
25
|
-
function _asyncToGenerator(n) {
|
|
26
|
-
return function () {
|
|
27
|
-
var t = this,
|
|
28
|
-
e = arguments;
|
|
29
|
-
return new Promise(function (r, o) {
|
|
30
|
-
var a = n.apply(t, e);
|
|
31
|
-
function _next(n) {
|
|
32
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
33
|
-
}
|
|
34
|
-
function _throw(n) {
|
|
35
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
36
|
-
}
|
|
37
|
-
_next(void 0);
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
function _callSuper(t, o, e) {
|
|
42
|
-
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
|
43
|
-
}
|
|
44
|
-
function _classCallCheck(a, n) {
|
|
45
|
-
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
|
|
46
|
-
}
|
|
47
|
-
function _defineProperties(e, r) {
|
|
48
|
-
for (var t = 0; t < r.length; t++) {
|
|
49
|
-
var o = r[t];
|
|
50
|
-
o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
function _createClass(e, r, t) {
|
|
54
|
-
return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
|
|
55
|
-
writable: false
|
|
56
|
-
}), e;
|
|
57
|
-
}
|
|
58
9
|
function _createForOfIteratorHelper(r, e) {
|
|
59
10
|
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
60
11
|
if (!t) {
|
|
@@ -103,48 +54,6 @@ function _createForOfIteratorHelper(r, e) {
|
|
|
103
54
|
}
|
|
104
55
|
};
|
|
105
56
|
}
|
|
106
|
-
function _defineProperty(e, r, t) {
|
|
107
|
-
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
108
|
-
value: t,
|
|
109
|
-
enumerable: true,
|
|
110
|
-
configurable: true,
|
|
111
|
-
writable: true
|
|
112
|
-
}) : e[r] = t, e;
|
|
113
|
-
}
|
|
114
|
-
function _get() {
|
|
115
|
-
return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {
|
|
116
|
-
var p = _superPropBase(e, t);
|
|
117
|
-
if (p) {
|
|
118
|
-
var n = Object.getOwnPropertyDescriptor(p, t);
|
|
119
|
-
return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;
|
|
120
|
-
}
|
|
121
|
-
}, _get.apply(null, arguments);
|
|
122
|
-
}
|
|
123
|
-
function _getPrototypeOf(t) {
|
|
124
|
-
return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
|
|
125
|
-
return t.__proto__ || Object.getPrototypeOf(t);
|
|
126
|
-
}, _getPrototypeOf(t);
|
|
127
|
-
}
|
|
128
|
-
function _inherits(t, e) {
|
|
129
|
-
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
|
|
130
|
-
t.prototype = Object.create(e && e.prototype, {
|
|
131
|
-
constructor: {
|
|
132
|
-
value: t,
|
|
133
|
-
writable: true,
|
|
134
|
-
configurable: true
|
|
135
|
-
}
|
|
136
|
-
}), Object.defineProperty(t, "prototype", {
|
|
137
|
-
writable: false
|
|
138
|
-
}), e && _setPrototypeOf(t, e);
|
|
139
|
-
}
|
|
140
|
-
function _isNativeReflectConstruct() {
|
|
141
|
-
try {
|
|
142
|
-
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
143
|
-
} catch (t) {}
|
|
144
|
-
return (_isNativeReflectConstruct = function () {
|
|
145
|
-
return !!t;
|
|
146
|
-
})();
|
|
147
|
-
}
|
|
148
57
|
function _iterableToArrayLimit(r, l) {
|
|
149
58
|
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
150
59
|
if (null != t) {
|
|
@@ -192,216 +101,9 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
192
101
|
}
|
|
193
102
|
return t;
|
|
194
103
|
}
|
|
195
|
-
function _possibleConstructorReturn(t, e) {
|
|
196
|
-
if (e && ("object" == typeof e || "function" == typeof e)) return e;
|
|
197
|
-
if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
|
|
198
|
-
return _assertThisInitialized(t);
|
|
199
|
-
}
|
|
200
|
-
function _regenerator() {
|
|
201
|
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
202
|
-
var e,
|
|
203
|
-
t,
|
|
204
|
-
r = "function" == typeof Symbol ? Symbol : {},
|
|
205
|
-
n = r.iterator || "@@iterator",
|
|
206
|
-
o = r.toStringTag || "@@toStringTag";
|
|
207
|
-
function i(r, n, o, i) {
|
|
208
|
-
var c = n && n.prototype instanceof Generator ? n : Generator,
|
|
209
|
-
u = Object.create(c.prototype);
|
|
210
|
-
return _regeneratorDefine(u, "_invoke", function (r, n, o) {
|
|
211
|
-
var i,
|
|
212
|
-
c,
|
|
213
|
-
u,
|
|
214
|
-
f = 0,
|
|
215
|
-
p = o || [],
|
|
216
|
-
y = false,
|
|
217
|
-
G = {
|
|
218
|
-
p: 0,
|
|
219
|
-
n: 0,
|
|
220
|
-
v: e,
|
|
221
|
-
a: d,
|
|
222
|
-
f: d.bind(e, 4),
|
|
223
|
-
d: function (t, r) {
|
|
224
|
-
return i = t, c = 0, u = e, G.n = r, a;
|
|
225
|
-
}
|
|
226
|
-
};
|
|
227
|
-
function d(r, n) {
|
|
228
|
-
for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
|
|
229
|
-
var o,
|
|
230
|
-
i = p[t],
|
|
231
|
-
d = G.p,
|
|
232
|
-
l = i[2];
|
|
233
|
-
r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
|
|
234
|
-
}
|
|
235
|
-
if (o || r > 1) return a;
|
|
236
|
-
throw y = true, n;
|
|
237
|
-
}
|
|
238
|
-
return function (o, p, l) {
|
|
239
|
-
if (f > 1) throw TypeError("Generator is already running");
|
|
240
|
-
for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
|
|
241
|
-
i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
|
|
242
|
-
try {
|
|
243
|
-
if (f = 2, i) {
|
|
244
|
-
if (c || (o = "next"), t = i[o]) {
|
|
245
|
-
if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
|
|
246
|
-
if (!t.done) return t;
|
|
247
|
-
u = t.value, c < 2 && (c = 0);
|
|
248
|
-
} else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
|
|
249
|
-
i = e;
|
|
250
|
-
} else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
|
|
251
|
-
} catch (t) {
|
|
252
|
-
i = e, c = 1, u = t;
|
|
253
|
-
} finally {
|
|
254
|
-
f = 1;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return {
|
|
258
|
-
value: t,
|
|
259
|
-
done: y
|
|
260
|
-
};
|
|
261
|
-
};
|
|
262
|
-
}(r, o, i), true), u;
|
|
263
|
-
}
|
|
264
|
-
var a = {};
|
|
265
|
-
function Generator() {}
|
|
266
|
-
function GeneratorFunction() {}
|
|
267
|
-
function GeneratorFunctionPrototype() {}
|
|
268
|
-
t = Object.getPrototypeOf;
|
|
269
|
-
var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
|
|
270
|
-
return this;
|
|
271
|
-
}), t),
|
|
272
|
-
u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
|
|
273
|
-
function f(e) {
|
|
274
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
|
|
275
|
-
}
|
|
276
|
-
return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
|
|
277
|
-
return this;
|
|
278
|
-
}), _regeneratorDefine(u, "toString", function () {
|
|
279
|
-
return "[object Generator]";
|
|
280
|
-
}), (_regenerator = function () {
|
|
281
|
-
return {
|
|
282
|
-
w: i,
|
|
283
|
-
m: f
|
|
284
|
-
};
|
|
285
|
-
})();
|
|
286
|
-
}
|
|
287
|
-
function _regeneratorAsync(n, e, r, t, o) {
|
|
288
|
-
var a = _regeneratorAsyncGen(n, e, r, t, o);
|
|
289
|
-
return a.next().then(function (n) {
|
|
290
|
-
return n.done ? n.value : a.next();
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
function _regeneratorAsyncGen(r, e, t, o, n) {
|
|
294
|
-
return new _regeneratorAsyncIterator(_regenerator().w(r, e, t, o), n || Promise);
|
|
295
|
-
}
|
|
296
|
-
function _regeneratorAsyncIterator(t, e) {
|
|
297
|
-
function n(r, o, i, f) {
|
|
298
|
-
try {
|
|
299
|
-
var c = t[r](o),
|
|
300
|
-
u = c.value;
|
|
301
|
-
return u instanceof _OverloadYield ? e.resolve(u.v).then(function (t) {
|
|
302
|
-
n("next", t, i, f);
|
|
303
|
-
}, function (t) {
|
|
304
|
-
n("throw", t, i, f);
|
|
305
|
-
}) : e.resolve(u).then(function (t) {
|
|
306
|
-
c.value = t, i(c);
|
|
307
|
-
}, function (t) {
|
|
308
|
-
return n("throw", t, i, f);
|
|
309
|
-
});
|
|
310
|
-
} catch (t) {
|
|
311
|
-
f(t);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
var r;
|
|
315
|
-
this.next || (_regeneratorDefine(_regeneratorAsyncIterator.prototype), _regeneratorDefine(_regeneratorAsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
|
|
316
|
-
return this;
|
|
317
|
-
})), _regeneratorDefine(this, "_invoke", function (t, o, i) {
|
|
318
|
-
function f() {
|
|
319
|
-
return new e(function (e, r) {
|
|
320
|
-
n(t, i, e, r);
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
return r = r ? r.then(f, f) : f();
|
|
324
|
-
}, true);
|
|
325
|
-
}
|
|
326
|
-
function _regeneratorDefine(e, r, n, t) {
|
|
327
|
-
var i = Object.defineProperty;
|
|
328
|
-
try {
|
|
329
|
-
i({}, "", {});
|
|
330
|
-
} catch (e) {
|
|
331
|
-
i = 0;
|
|
332
|
-
}
|
|
333
|
-
_regeneratorDefine = function (e, r, n, t) {
|
|
334
|
-
function o(r, n) {
|
|
335
|
-
_regeneratorDefine(e, r, function (e) {
|
|
336
|
-
return this._invoke(r, n, e);
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
r ? i ? i(e, r, {
|
|
340
|
-
value: n,
|
|
341
|
-
enumerable: !t,
|
|
342
|
-
configurable: !t,
|
|
343
|
-
writable: !t
|
|
344
|
-
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
345
|
-
}, _regeneratorDefine(e, r, n, t);
|
|
346
|
-
}
|
|
347
|
-
function _regeneratorKeys(e) {
|
|
348
|
-
var n = Object(e),
|
|
349
|
-
r = [];
|
|
350
|
-
for (var t in n) r.unshift(t);
|
|
351
|
-
return function e() {
|
|
352
|
-
for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = false, e;
|
|
353
|
-
return e.done = true, e;
|
|
354
|
-
};
|
|
355
|
-
}
|
|
356
|
-
function _regeneratorValues(e) {
|
|
357
|
-
if (null != e) {
|
|
358
|
-
var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
|
|
359
|
-
r = 0;
|
|
360
|
-
if (t) return t.call(e);
|
|
361
|
-
if ("function" == typeof e.next) return e;
|
|
362
|
-
if (!isNaN(e.length)) return {
|
|
363
|
-
next: function () {
|
|
364
|
-
return e && r >= e.length && (e = void 0), {
|
|
365
|
-
value: e && e[r++],
|
|
366
|
-
done: !e
|
|
367
|
-
};
|
|
368
|
-
}
|
|
369
|
-
};
|
|
370
|
-
}
|
|
371
|
-
throw new TypeError(typeof e + " is not iterable");
|
|
372
|
-
}
|
|
373
|
-
function _setPrototypeOf(t, e) {
|
|
374
|
-
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
375
|
-
return t.__proto__ = e, t;
|
|
376
|
-
}, _setPrototypeOf(t, e);
|
|
377
|
-
}
|
|
378
104
|
function _slicedToArray(r, e) {
|
|
379
105
|
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
|
|
380
106
|
}
|
|
381
|
-
function _superPropBase(t, o) {
|
|
382
|
-
for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););
|
|
383
|
-
return t;
|
|
384
|
-
}
|
|
385
|
-
function _superPropGet(t, o, e, r) {
|
|
386
|
-
var p = _get(_getPrototypeOf(t.prototype ), o, e);
|
|
387
|
-
return "function" == typeof p ? function (t) {
|
|
388
|
-
return p.apply(e, t);
|
|
389
|
-
} : p;
|
|
390
|
-
}
|
|
391
|
-
function _toPrimitive(t, r) {
|
|
392
|
-
if ("object" != typeof t || !t) return t;
|
|
393
|
-
var e = t[Symbol.toPrimitive];
|
|
394
|
-
if (void 0 !== e) {
|
|
395
|
-
var i = e.call(t, r);
|
|
396
|
-
if ("object" != typeof i) return i;
|
|
397
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
398
|
-
}
|
|
399
|
-
return (String )(t);
|
|
400
|
-
}
|
|
401
|
-
function _toPropertyKey(t) {
|
|
402
|
-
var i = _toPrimitive(t, "string");
|
|
403
|
-
return "symbol" == typeof i ? i : i + "";
|
|
404
|
-
}
|
|
405
107
|
function _unsupportedIterableToArray(r, a) {
|
|
406
108
|
if (r) {
|
|
407
109
|
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
@@ -409,74 +111,6 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
409
111
|
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
410
112
|
}
|
|
411
113
|
}
|
|
412
|
-
function _regeneratorRuntime() {
|
|
413
|
-
|
|
414
|
-
var r = _regenerator(),
|
|
415
|
-
e = r.m(_regeneratorRuntime),
|
|
416
|
-
t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
|
|
417
|
-
function n(r) {
|
|
418
|
-
var e = "function" == typeof r && r.constructor;
|
|
419
|
-
return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
|
|
420
|
-
}
|
|
421
|
-
var o = {
|
|
422
|
-
throw: 1,
|
|
423
|
-
return: 2,
|
|
424
|
-
break: 3,
|
|
425
|
-
continue: 3
|
|
426
|
-
};
|
|
427
|
-
function a(r) {
|
|
428
|
-
var e, t;
|
|
429
|
-
return function (n) {
|
|
430
|
-
e || (e = {
|
|
431
|
-
stop: function () {
|
|
432
|
-
return t(n.a, 2);
|
|
433
|
-
},
|
|
434
|
-
catch: function () {
|
|
435
|
-
return n.v;
|
|
436
|
-
},
|
|
437
|
-
abrupt: function (r, e) {
|
|
438
|
-
return t(n.a, o[r], e);
|
|
439
|
-
},
|
|
440
|
-
delegateYield: function (r, o, a) {
|
|
441
|
-
return e.resultName = o, t(n.d, _regeneratorValues(r), a);
|
|
442
|
-
},
|
|
443
|
-
finish: function (r) {
|
|
444
|
-
return t(n.f, r);
|
|
445
|
-
}
|
|
446
|
-
}, t = function (r, t, o) {
|
|
447
|
-
n.p = e.prev, n.n = e.next;
|
|
448
|
-
try {
|
|
449
|
-
return r(t, o);
|
|
450
|
-
} finally {
|
|
451
|
-
e.next = n.n;
|
|
452
|
-
}
|
|
453
|
-
}), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
|
|
454
|
-
try {
|
|
455
|
-
return r.call(this, e);
|
|
456
|
-
} finally {
|
|
457
|
-
n.p = e.prev, n.n = e.next;
|
|
458
|
-
}
|
|
459
|
-
};
|
|
460
|
-
}
|
|
461
|
-
return (_regeneratorRuntime = function () {
|
|
462
|
-
return {
|
|
463
|
-
wrap: function (e, t, n, o) {
|
|
464
|
-
return r.w(a(e), t, n, o && o.reverse());
|
|
465
|
-
},
|
|
466
|
-
isGeneratorFunction: n,
|
|
467
|
-
mark: r.m,
|
|
468
|
-
awrap: function (r, e) {
|
|
469
|
-
return new _OverloadYield(r, e);
|
|
470
|
-
},
|
|
471
|
-
AsyncIterator: _regeneratorAsyncIterator,
|
|
472
|
-
async: function (r, e, t, o, u) {
|
|
473
|
-
return (n(e) ? _regeneratorAsyncGen : _regeneratorAsync)(a(r), e, t, o, u);
|
|
474
|
-
},
|
|
475
|
-
keys: _regeneratorKeys,
|
|
476
|
-
values: _regeneratorValues
|
|
477
|
-
};
|
|
478
|
-
})();
|
|
479
|
-
}
|
|
480
114
|
|
|
481
|
-
export {
|
|
115
|
+
export { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _createForOfIteratorHelper as createForOfIteratorHelper, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _unsupportedIterableToArray as unsupportedIterableToArray };
|
|
482
116
|
//# sourceMappingURL=_rollupPluginBabelHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { slicedToArray as _slicedToArray, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { useState, useMemo } from 'react';
|
|
3
|
-
import { Responder } from '
|
|
3
|
+
import { Responder } from '@device-portal/client';
|
|
4
4
|
|
|
5
5
|
var responders = {};
|
|
6
6
|
var useDevicePortalConsumer = function useDevicePortalConsumer(room) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDevicePortalConsumer.js","sources":["../../src/consumer/useDevicePortalConsumer.ts"],"sourcesContent":["import { useMemo, useState, type Dispatch, type SetStateAction } from 'react'\nimport { Responder } from '
|
|
1
|
+
{"version":3,"file":"useDevicePortalConsumer.js","sources":["../../src/consumer/useDevicePortalConsumer.ts"],"sourcesContent":["import { useMemo, useState, type Dispatch, type SetStateAction } from 'react'\nimport { Responder } from '@device-portal/client'\n\ntype State = {\n\troom: string\n\tvalue: string\n\tsendMessageToProvider: (value: string) => void\n}\n\nconst responders: {\n\t[room: string]: {\n\t\tresponder: Responder\n\t\tfirstValuePromise: Promise<string>\n\t\tconsumer: null | {\n\t\t\tvalue: string\n\t\t\tsendMessageToProvider: (value: string) => void\n\t\t}\n\t\tsetValueStates: Set<Dispatch<SetStateAction<State | null>>>\n\t}\n} = {}\n\nexport const useDevicePortalConsumer = (\n\troom: string,\n\toptions: {\n\t\twebsocketSignalingServer?: string\n\t} = {},\n): Pick<State, 'value' | 'sendMessageToProvider'> => {\n\tconst [valueState, setValueState] = useState<State | null>(null)\n\n\tconst currentConsumer = useMemo(() => {\n\t\tif (!responders[room]) {\n\t\t\tconsole.log(\n\t\t\t\t`[useDevicePortalConsumer] Creating new Responder for room: ${room}`,\n\t\t\t)\n\t\t\tconst withResolvers = () => {\n\t\t\t\tlet resolve: (value: string) => void\n\t\t\t\tlet reject: (reason?: any) => void\n\t\t\t\tconst promise = new Promise<string>((res, rej) => {\n\t\t\t\t\tresolve = res\n\t\t\t\t\treject = rej\n\t\t\t\t})\n\t\t\t\treturn { promise, resolve: resolve!, reject: reject! }\n\t\t\t}\n\n\t\t\tconst { promise: firstValuePromise, resolve: firstValueResolve } =\n\t\t\t\t(Promise as any).withResolvers?.() ?? withResolvers()\n\n\t\t\tconst sendMessageToProvider = (value: string) => {\n\t\t\t\tresponders[room].responder.send(value)\n\t\t\t}\n\n\t\t\tconst responder = new Responder(room, {\n\t\t\t\tonMessage: (value, peerId) => {\n\t\t\t\t\tconst consumer = { value, sendMessageToProvider }\n\t\t\t\t\tresponders[room].consumer = consumer\n\t\t\t\t\tfor (const setState of responders[room].setValueStates) {\n\t\t\t\t\t\tsetState({ room, value, sendMessageToProvider })\n\t\t\t\t\t}\n\t\t\t\t\tfirstValueResolve(value)\n\t\t\t\t},\n\t\t\t\tsendLastValueOnConnectAndReconnect: false,\n\t\t\t\twebsocketSignalingServer: options.websocketSignalingServer,\n\t\t\t})\n\n\t\t\tresponders[room] = {\n\t\t\t\tresponder,\n\t\t\t\tfirstValuePromise,\n\t\t\t\tconsumer: null,\n\t\t\t\tsetValueStates: new Set(),\n\t\t\t}\n\t\t}\n\n\t\tresponders[room].setValueStates.add(setValueState)\n\n\t\treturn responders[room].consumer\n\t}, [room, options.websocketSignalingServer, setValueState])\n\n\t// Cleanup on unmount (though this hook is currently designed for global persistence)\n\t// useEffect(() => () => { responders[room]?.setValueStates.delete(setValueState) }, [room, setValueState]);\n\n\tif (valueState && valueState.room === room) {\n\t\treturn {\n\t\t\tvalue: valueState.value,\n\t\t\tsendMessageToProvider: valueState.sendMessageToProvider,\n\t\t}\n\t}\n\n\tif (currentConsumer) {\n\t\treturn currentConsumer\n\t}\n\n\tthrow responders[room].firstValuePromise\n}\n"],"names":["responders","useDevicePortalConsumer","room","options","arguments","length","undefined","_useState","useState","_useState2","_slicedToArray","valueState","setValueState","currentConsumer","useMemo","_withResolvers","_withResolvers2","_ref2","console","log","concat","withResolvers","resolve","reject","promise","Promise","res","rej","_ref","call","firstValuePromise","firstValueResolve","sendMessageToProvider","value","responder","send","Responder","onMessage","peerId","consumer","_iterator","_createForOfIteratorHelper","setValueStates","_step","s","n","done","setState","err","e","f","sendLastValueOnConnectAndReconnect","websocketSignalingServer","Set","add"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevicePortalProvider.js","sources":["../../src/provider/DevicePortalProvider.tsx"],"sourcesContent":["import { Fragment, type FunctionComponent, type ReactNode } from 'react'\nimport
|
|
1
|
+
{"version":3,"file":"DevicePortalProvider.js","sources":["../../src/provider/DevicePortalProvider.tsx"],"sourcesContent":["import { Fragment, type FunctionComponent, type ReactNode } from 'react'\nimport { type Initiator, type PeerId } from '@device-portal/client'\nimport { PeerOptions, useDevicePortalPeer } from './useDevicePortalPeer'\nimport {\n\tuseDevicePortalProvider,\n\ttype DevicePortalProviderOptions,\n} from './useDevicePortalProvider'\n\nexport const DevicePortalProvider: FunctionComponent<\n\t{\n\t\troom: string\n\t} & Omit<DevicePortalProviderOptions, 'value'> &\n\t\t(\n\t\t\t| {\n\t\t\t\t\tvalue?: undefined\n\t\t\t\t\tchildren?: (\n\t\t\t\t\t\tPeer: FunctionComponent<PeerOptions>,\n\t\t\t\t\t\tpeerId: PeerId,\n\t\t\t\t\t) => ReactNode\n\t\t\t }\n\t\t\t| {\n\t\t\t\t\tvalue: string\n\t\t\t\t\tchildren?: undefined\n\t\t\t }\n\t\t)\n> = ({ room, children, ...options }) => {\n\tconst { peers, initiator } = useDevicePortalProvider(room, options)\n\n\tif (!initiator || !children) {\n\t\treturn null\n\t}\n\n\treturn peers.map((peerId) => (\n\t\t<Fragment key={peerId}>\n\t\t\t{children(\n\t\t\t\t(options) => (\n\t\t\t\t\t<PeerBase peerId={peerId} initiator={initiator} options={options} />\n\t\t\t\t),\n\t\t\t\tpeerId,\n\t\t\t)}\n\t\t</Fragment>\n\t))\n}\n\nconst PeerBase: FunctionComponent<{\n\tpeerId: PeerId\n\tinitiator: Initiator\n\toptions: PeerOptions\n}> = ({ peerId, initiator, options }) => {\n\tuseDevicePortalPeer(initiator, peerId, options)\n\treturn null\n}\n"],"names":["DevicePortalProvider","t0","$","_c","children","options","room","_t","_objectWithoutProperties","_excluded","_useDevicePortalProvi","useDevicePortalProvider","peers","initiator","t1","t2","peerId","_jsx","Fragment","options_0","PeerBase","map","useDevicePortalPeer"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDevicePortalPeer.js","sources":["../../src/provider/useDevicePortalPeer.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { Initiator
|
|
1
|
+
{"version":3,"file":"useDevicePortalPeer.js","sources":["../../src/provider/useDevicePortalPeer.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { Initiator, type PeerId } from '@device-portal/client'\n\nexport type PeerOptions = {\n\tvalue?: string\n\tonMessageFromConsumer?: (value: string) => void\n}\n\nexport const useDevicePortalPeer = (\n\tinitiator: Initiator,\n\tpeerId: PeerId,\n\toptions: PeerOptions = {},\n) => {\n\tconst onMessageFromConsumerRef = useRef(options.onMessageFromConsumer)\n\tonMessageFromConsumerRef.current = options.onMessageFromConsumer\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = initiator.addPeerListener(peerId, (value) => {\n\t\t\tonMessageFromConsumerRef.current?.(value)\n\t\t})\n\n\t\treturn unsubscribe\n\t}, [initiator, peerId])\n\n\tuseEffect(() => {\n\t\tif (options.value === undefined) {\n\t\t\treturn\n\t\t}\n\t\tinitiator.sendToPeer(peerId, options.value)\n\t}, [initiator, peerId, options.value])\n}\n"],"names":["useDevicePortalPeer","initiator","peerId","options","arguments","length","undefined","onMessageFromConsumerRef","useRef","onMessageFromConsumer","current","useEffect","unsubscribe","addPeerListener","value","_onMessageFromConsume","call","sendToPeer"],"mappings":";;AAQO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAC/BC,SAAoB,EACpBC,MAAc,EAEV;AAAA,EAAA,IADJC,OAAoB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAEzB,EAAA,IAAMG,wBAAwB,GAAGC,MAAM,CAACL,OAAO,CAACM,qBAAqB,CAAC;AACtEF,EAAAA,wBAAwB,CAACG,OAAO,GAAGP,OAAO,CAACM,qBAAqB;AAEhEE,EAAAA,SAAS,CAAC,YAAM;IACf,IAAMC,WAAW,GAAGX,SAAS,CAACY,eAAe,CAACX,MAAM,EAAE,UAACY,KAAK,EAAK;AAAA,MAAA,IAAAC,qBAAA;AAChE,MAAA,CAAAA,qBAAA,GAAAR,wBAAwB,CAACG,OAAO,MAAAK,IAAAA,IAAAA,qBAAA,KAAhCA,MAAAA,IAAAA,qBAAA,CAAAC,IAAA,CAAAT,wBAAwB,EAAWO,KAAK,CAAC;AAC1C,KAAC,CAAC;AAEF,IAAA,OAAOF,WAAW;AACnB,GAAC,EAAE,CAACX,SAAS,EAAEC,MAAM,CAAC,CAAC;AAEvBS,EAAAA,SAAS,CAAC,YAAM;AACf,IAAA,IAAIR,OAAO,CAACW,KAAK,KAAKR,SAAS,EAAE;AAChC,MAAA;AACD;IACAL,SAAS,CAACgB,UAAU,CAACf,MAAM,EAAEC,OAAO,CAACW,KAAK,CAAC;GAC3C,EAAE,CAACb,SAAS,EAAEC,MAAM,EAAEC,OAAO,CAACW,KAAK,CAAC,CAAC;AACvC;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { useState, useRef, useEffect } from 'react';
|
|
3
|
-
import { Initiator } from '
|
|
3
|
+
import { Initiator } from '@device-portal/client';
|
|
4
4
|
|
|
5
5
|
// @TODO: warn if one room is used by multiple useDevicePortalProvider hooks more than once at the same time
|
|
6
6
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDevicePortalProvider.js","sources":["../../src/provider/useDevicePortalProvider.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Initiator
|
|
1
|
+
{"version":3,"file":"useDevicePortalProvider.js","sources":["../../src/provider/useDevicePortalProvider.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Initiator, type PeerId } from '@device-portal/client'\n\n// @TODO: warn if one room is used by multiple useDevicePortalProvider hooks more than once at the same time\n\nexport type DevicePortalProviderOptions = {\n\tvalue?: string\n\twebsocketSignalingServer?: string\n\tonMessageFromConsumer?: (value: string, peerId: PeerId) => void\n\tmaxClients?: number\n}\n\nexport const useDevicePortalProvider = (\n\troom: string,\n\toptions: DevicePortalProviderOptions = {},\n) => {\n\tconst [initiator, setInitiator] = useState<Initiator | null>(null)\n\tconst [peers, setPeers] = useState<PeerId[]>([])\n\tconst onMessageFromConsumerRef = useRef(options.onMessageFromConsumer)\n\tonMessageFromConsumerRef.current = options.onMessageFromConsumer\n\n\tuseEffect(() => {\n\t\tconst initiator = new Initiator(room, {\n\t\t\tonMessage: (value, peerId) => {\n\t\t\t\tonMessageFromConsumerRef.current?.(value, peerId)\n\t\t\t},\n\t\t\tonPeersChange: (peers) => {\n\t\t\t\tsetPeers(peers)\n\t\t\t},\n\t\t\twebsocketSignalingServer: options.websocketSignalingServer,\n\t\t\tmaxClients: options.maxClients,\n\t\t})\n\t\tsetInitiator(initiator)\n\t\tsetPeers(initiator.peers)\n\n\t\treturn () => {\n\t\t\tinitiator.destroy()\n\t\t\tsetInitiator(null)\n\t\t\tsetPeers([])\n\t\t}\n\t}, [room, options.websocketSignalingServer, options.maxClients])\n\n\tuseEffect(() => {\n\t\tif (options.value === undefined) {\n\t\t\treturn\n\t\t}\n\t\tinitiator?.send(options.value)\n\t}, [options.value, initiator])\n\n\treturn { peers, initiator }\n}\n"],"names":["useDevicePortalProvider","room","options","arguments","length","undefined","_useState","useState","_useState2","_slicedToArray","initiator","setInitiator","_useState3","_useState4","peers","setPeers","onMessageFromConsumerRef","useRef","onMessageFromConsumer","current","useEffect","Initiator","onMessage","value","peerId","_onMessageFromConsume","call","onPeersChange","websocketSignalingServer","maxClients","destroy","send"],"mappings":";;;;AAGA;;IASaA,uBAAuB,GAAG,SAA1BA,uBAAuBA,CACnCC,IAAY,EAER;AAAA,EAAA,IADJC,OAAoC,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAEzC,EAAA,IAAAG,SAAA,GAAkCC,QAAQ,CAAmB,IAAI,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA3DI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA;AAC9B,EAAA,IAAAI,UAAA,GAA0BL,QAAQ,CAAW,EAAE,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAzCE,IAAAA,KAAK,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AACtB,EAAA,IAAMG,wBAAwB,GAAGC,MAAM,CAACf,OAAO,CAACgB,qBAAqB,CAAC;AACtEF,EAAAA,wBAAwB,CAACG,OAAO,GAAGjB,OAAO,CAACgB,qBAAqB;AAEhEE,EAAAA,SAAS,CAAC,YAAM;AACf,IAAA,IAAMV,WAAS,GAAG,IAAIW,SAAS,CAACpB,IAAI,EAAE;AACrCqB,MAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGC,KAAK,EAAEC,MAAM,EAAK;AAAA,QAAA,IAAAC,qBAAA;AAC7B,QAAA,CAAAA,qBAAA,GAAAT,wBAAwB,CAACG,OAAO,cAAAM,qBAAA,KAAA,MAAA,IAAhCA,qBAAA,CAAAC,IAAA,CAAAV,wBAAwB,EAAWO,KAAK,EAAEC,MAAM,CAAC;OACjD;AACDG,MAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAGb,OAAK,EAAK;QACzBC,QAAQ,CAACD,OAAK,CAAC;OACf;MACDc,wBAAwB,EAAE1B,OAAO,CAAC0B,wBAAwB;MAC1DC,UAAU,EAAE3B,OAAO,CAAC2B;AACrB,KAAC,CAAC;IACFlB,YAAY,CAACD,WAAS,CAAC;AACvBK,IAAAA,QAAQ,CAACL,WAAS,CAACI,KAAK,CAAC;AAEzB,IAAA,OAAO,YAAM;MACZJ,WAAS,CAACoB,OAAO,EAAE;MACnBnB,YAAY,CAAC,IAAI,CAAC;MAClBI,QAAQ,CAAC,EAAE,CAAC;KACZ;AACF,GAAC,EAAE,CAACd,IAAI,EAAEC,OAAO,CAAC0B,wBAAwB,EAAE1B,OAAO,CAAC2B,UAAU,CAAC,CAAC;AAEhET,EAAAA,SAAS,CAAC,YAAM;AACf,IAAA,IAAIlB,OAAO,CAACqB,KAAK,KAAKlB,SAAS,EAAE;AAChC,MAAA;AACD;IACAK,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,IAATA,SAAS,CAAEqB,IAAI,CAAC7B,OAAO,CAACqB,KAAK,CAAC;GAC9B,EAAE,CAACrB,OAAO,CAACqB,KAAK,EAAEb,SAAS,CAAC,CAAC;EAE9B,OAAO;AAAEI,IAAAA,KAAK,EAALA,KAAK;AAAEJ,IAAAA,SAAS,EAATA;GAAW;AAC5B;;;;"}
|