tabby-rdp 0.3.2 → 0.3.3
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/CHANGELOG.md +14 -0
- package/README.md +6 -3
- package/package.json +1 -1
- package/vendor/iron-remote-desktop-rdp.js +231 -230
- package/vendor/ironrdp_web_bg.wasm +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.3
|
|
4
|
+
|
|
5
|
+
**Fixed**
|
|
6
|
+
- **H.264 video from a hostile remote desktop:** the server picks which parts of a video frame the plugin reads back
|
|
7
|
+
from the browser's decoder, and nothing limited how much. One region larger than the picture, or many overlapping
|
|
8
|
+
copies of the whole screen, could make it allocate enough memory to crash Tabby along with every tab in it. What a
|
|
9
|
+
frame reads back is now bounded by the screen it draws on (overlapping regions are read once, as the box around
|
|
10
|
+
them), and a frame that would still need more than 256 MiB is decoded without reading anything back (IronRDP
|
|
11
|
+
patch 8). H.264 is on by default, so this applies wherever the browser decodes the video.
|
|
12
|
+
|
|
13
|
+
**Docs**
|
|
14
|
+
- The README's table of upstream IronRDP changes lists the keyboard API (#2026), says the Progressive decoding fix is
|
|
15
|
+
covered by IronRDP #2010 and #1977, and says what each patch not submitted yet waits for.
|
|
16
|
+
|
|
3
17
|
## 0.3.2
|
|
4
18
|
|
|
5
19
|
**New**
|
package/README.md
CHANGED
|
@@ -328,9 +328,12 @@ tabby-rdp ships IronRDP with a short series of patches ([ironrdp/](ironrdp)). Th
|
|
|
328
328
|
| Echo the correct size in the sound channel's Training Confirm | [Devolutions/IronRDP#2019](https://github.com/Devolutions/IronRDP/pull/2019) |
|
|
329
329
|
| The graphics pipeline in the web client, following its resets | Covered by [Devolutions/IronRDP#1977](https://github.com/Devolutions/IronRDP/pull/1977) (not ours; [tested with GNOME](https://github.com/Devolutions/IronRDP/pull/1977#issuecomment-5851624036)) |
|
|
330
330
|
| Sound in the web client | [Devolutions/IronRDP#2020](https://github.com/Devolutions/IronRDP/pull/2020) |
|
|
331
|
-
|
|
|
332
|
-
| Decode Windows' RemoteFX Progressive refinements |
|
|
333
|
-
|
|
|
331
|
+
| Let the host send key events to a session | [Devolutions/IronRDP#2026](https://github.com/Devolutions/IronRDP/pull/2026) (design under discussion) |
|
|
332
|
+
| Decode Windows' RemoteFX Progressive refinements | Covered by [Devolutions/IronRDP#2010](https://github.com/Devolutions/IronRDP/pull/2010) and [#1977](https://github.com/Devolutions/IronRDP/pull/1977) (not ours) |
|
|
333
|
+
| H.264 in the web client, decoded by the browser (WebCodecs) | Not submitted yet: waits for #1977 |
|
|
334
|
+
| Microphone in the web client | Not submitted yet: waits for #2020 |
|
|
335
|
+
| Keep clipboard sync working for the other desktops when one closes | Not submitted yet |
|
|
336
|
+
| Sync the clipboard only for the desktop that has the focus | Not submitted yet |
|
|
334
337
|
|
|
335
338
|
The aim is to make IronRDP's browser client work well with both Linux and Windows desktops, for everyone who embeds
|
|
336
339
|
it, not just this plugin.
|
package/package.json
CHANGED
|
@@ -4,11 +4,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
4
4
|
class Z {
|
|
5
5
|
static __wrap(A) {
|
|
6
6
|
const I = Object.create(Z.prototype);
|
|
7
|
-
return I.__wbg_ptr = A,
|
|
7
|
+
return I.__wbg_ptr = A, e.register(I, I.__wbg_ptr, I), I;
|
|
8
8
|
}
|
|
9
9
|
__destroy_into_raw() {
|
|
10
10
|
const A = this.__wbg_ptr;
|
|
11
|
-
return this.__wbg_ptr = 0,
|
|
11
|
+
return this.__wbg_ptr = 0, e.unregister(this), A;
|
|
12
12
|
}
|
|
13
13
|
free() {
|
|
14
14
|
const A = this.__destroy_into_raw();
|
|
@@ -19,7 +19,7 @@ class Z {
|
|
|
19
19
|
* @param {Uint8Array} binary
|
|
20
20
|
*/
|
|
21
21
|
addBinary(A, I) {
|
|
22
|
-
const g =
|
|
22
|
+
const g = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), B = k, E = lA(I, C.__wbindgen_malloc), D = k;
|
|
23
23
|
C.clipboarddata_addBinary(this.__wbg_ptr, g, B, E, D);
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
@@ -27,12 +27,12 @@ class Z {
|
|
|
27
27
|
* @param {string} text
|
|
28
28
|
*/
|
|
29
29
|
addText(A, I) {
|
|
30
|
-
const g =
|
|
30
|
+
const g = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), B = k, E = F(I, C.__wbindgen_malloc, C.__wbindgen_realloc), D = k;
|
|
31
31
|
C.clipboarddata_addText(this.__wbg_ptr, g, B, E, D);
|
|
32
32
|
}
|
|
33
33
|
constructor() {
|
|
34
34
|
const A = C.clipboarddata_create();
|
|
35
|
-
return this.__wbg_ptr = A,
|
|
35
|
+
return this.__wbg_ptr = A, e.register(this, this.__wbg_ptr, this), this;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* @returns {boolean}
|
|
@@ -190,7 +190,7 @@ class K {
|
|
|
190
190
|
*/
|
|
191
191
|
static unicodePressed(A) {
|
|
192
192
|
const I = A.codePointAt(0);
|
|
193
|
-
|
|
193
|
+
RA(I);
|
|
194
194
|
const g = C.deviceevent_unicodePressed(I);
|
|
195
195
|
return K.__wrap(g);
|
|
196
196
|
}
|
|
@@ -200,7 +200,7 @@ class K {
|
|
|
200
200
|
*/
|
|
201
201
|
static unicodeReleased(A) {
|
|
202
202
|
const I = A.codePointAt(0);
|
|
203
|
-
|
|
203
|
+
RA(I);
|
|
204
204
|
const g = C.deviceevent_unicodeReleased(I);
|
|
205
205
|
return K.__wrap(g);
|
|
206
206
|
}
|
|
@@ -230,7 +230,7 @@ class o {
|
|
|
230
230
|
* @param {any} value
|
|
231
231
|
*/
|
|
232
232
|
constructor(A, I) {
|
|
233
|
-
const g =
|
|
233
|
+
const g = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), B = k, E = C.extension_create(g, B, I);
|
|
234
234
|
return this.__wbg_ptr = E, iA.register(this, this.__wbg_ptr, this), this;
|
|
235
235
|
}
|
|
236
236
|
}
|
|
@@ -376,7 +376,7 @@ class CA {
|
|
|
376
376
|
* @returns {number | undefined}
|
|
377
377
|
*/
|
|
378
378
|
getInt(A) {
|
|
379
|
-
const I =
|
|
379
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k, B = C.rdpfile_getInt(this.__wbg_ptr, I, g);
|
|
380
380
|
return B === Number.MAX_SAFE_INTEGER ? void 0 : B;
|
|
381
381
|
}
|
|
382
382
|
/**
|
|
@@ -384,7 +384,7 @@ class CA {
|
|
|
384
384
|
* @returns {string | undefined}
|
|
385
385
|
*/
|
|
386
386
|
getStr(A) {
|
|
387
|
-
const I =
|
|
387
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k, B = C.rdpfile_getStr(this.__wbg_ptr, I, g);
|
|
388
388
|
let E;
|
|
389
389
|
return B[0] !== 0 && (E = M(B[0], B[1]).slice(), C.__wbindgen_free(B[0], B[1] * 1, 1)), E;
|
|
390
390
|
}
|
|
@@ -393,7 +393,7 @@ class CA {
|
|
|
393
393
|
* @param {number} value
|
|
394
394
|
*/
|
|
395
395
|
insertInt(A, I) {
|
|
396
|
-
const g =
|
|
396
|
+
const g = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), B = k;
|
|
397
397
|
C.rdpfile_insertInt(this.__wbg_ptr, g, B, I);
|
|
398
398
|
}
|
|
399
399
|
/**
|
|
@@ -401,14 +401,14 @@ class CA {
|
|
|
401
401
|
* @param {string} value
|
|
402
402
|
*/
|
|
403
403
|
insertStr(A, I) {
|
|
404
|
-
const g =
|
|
404
|
+
const g = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), B = k, E = F(I, C.__wbindgen_malloc, C.__wbindgen_realloc), D = k;
|
|
405
405
|
C.rdpfile_insertStr(this.__wbg_ptr, g, B, E, D);
|
|
406
406
|
}
|
|
407
407
|
/**
|
|
408
408
|
* @param {string} config
|
|
409
409
|
*/
|
|
410
410
|
parse(A) {
|
|
411
|
-
const I =
|
|
411
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k;
|
|
412
412
|
C.rdpfile_parse(this.__wbg_ptr, I, g);
|
|
413
413
|
}
|
|
414
414
|
/**
|
|
@@ -519,9 +519,9 @@ class n {
|
|
|
519
519
|
}
|
|
520
520
|
}
|
|
521
521
|
Symbol.dispose && (n.prototype[Symbol.dispose] = n.prototype.free);
|
|
522
|
-
class
|
|
522
|
+
class Y {
|
|
523
523
|
static __wrap(A) {
|
|
524
|
-
const I = Object.create(
|
|
524
|
+
const I = Object.create(Y.prototype);
|
|
525
525
|
return I.__wbg_ptr = A, $.register(I, I.__wbg_ptr, I), I;
|
|
526
526
|
}
|
|
527
527
|
__destroy_into_raw() {
|
|
@@ -537,8 +537,8 @@ class U {
|
|
|
537
537
|
* @returns {SessionBuilder}
|
|
538
538
|
*/
|
|
539
539
|
authToken(A) {
|
|
540
|
-
const I =
|
|
541
|
-
return
|
|
540
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k, B = C.sessionbuilder_authToken(this.__wbg_ptr, I, g);
|
|
541
|
+
return Y.__wrap(B);
|
|
542
542
|
}
|
|
543
543
|
/**
|
|
544
544
|
* @param {Function} callback
|
|
@@ -546,7 +546,7 @@ class U {
|
|
|
546
546
|
*/
|
|
547
547
|
canvasResizedCallback(A) {
|
|
548
548
|
const I = C.sessionbuilder_canvasResizedCallback(this.__wbg_ptr, A);
|
|
549
|
-
return
|
|
549
|
+
return Y.__wrap(I);
|
|
550
550
|
}
|
|
551
551
|
/**
|
|
552
552
|
* @returns {Promise<Session>}
|
|
@@ -566,15 +566,15 @@ class U {
|
|
|
566
566
|
d(A, p);
|
|
567
567
|
var I = A.__destroy_into_raw();
|
|
568
568
|
const g = C.sessionbuilder_desktopSize(this.__wbg_ptr, I);
|
|
569
|
-
return
|
|
569
|
+
return Y.__wrap(g);
|
|
570
570
|
}
|
|
571
571
|
/**
|
|
572
572
|
* @param {string} destination
|
|
573
573
|
* @returns {SessionBuilder}
|
|
574
574
|
*/
|
|
575
575
|
destination(A) {
|
|
576
|
-
const I =
|
|
577
|
-
return
|
|
576
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k, B = C.sessionbuilder_destination(this.__wbg_ptr, I, g);
|
|
577
|
+
return Y.__wrap(B);
|
|
578
578
|
}
|
|
579
579
|
/**
|
|
580
580
|
* @param {Extension} ext
|
|
@@ -584,7 +584,7 @@ class U {
|
|
|
584
584
|
d(A, o);
|
|
585
585
|
var I = A.__destroy_into_raw();
|
|
586
586
|
const g = C.sessionbuilder_extension(this.__wbg_ptr, I);
|
|
587
|
-
return
|
|
587
|
+
return Y.__wrap(g);
|
|
588
588
|
}
|
|
589
589
|
/**
|
|
590
590
|
* @param {Function} callback
|
|
@@ -592,23 +592,23 @@ class U {
|
|
|
592
592
|
*/
|
|
593
593
|
forceClipboardUpdateCallback(A) {
|
|
594
594
|
const I = C.sessionbuilder_forceClipboardUpdateCallback(this.__wbg_ptr, A);
|
|
595
|
-
return
|
|
595
|
+
return Y.__wrap(I);
|
|
596
596
|
}
|
|
597
597
|
/**
|
|
598
598
|
* @param {string} password
|
|
599
599
|
* @returns {SessionBuilder}
|
|
600
600
|
*/
|
|
601
601
|
password(A) {
|
|
602
|
-
const I =
|
|
603
|
-
return
|
|
602
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k, B = C.sessionbuilder_password(this.__wbg_ptr, I, g);
|
|
603
|
+
return Y.__wrap(B);
|
|
604
604
|
}
|
|
605
605
|
/**
|
|
606
606
|
* @param {string} address
|
|
607
607
|
* @returns {SessionBuilder}
|
|
608
608
|
*/
|
|
609
609
|
proxyAddress(A) {
|
|
610
|
-
const I =
|
|
611
|
-
return
|
|
610
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k, B = C.sessionbuilder_proxyAddress(this.__wbg_ptr, I, g);
|
|
611
|
+
return Y.__wrap(B);
|
|
612
612
|
}
|
|
613
613
|
/**
|
|
614
614
|
* @param {Function} callback
|
|
@@ -616,7 +616,7 @@ class U {
|
|
|
616
616
|
*/
|
|
617
617
|
remoteClipboardChangedCallback(A) {
|
|
618
618
|
const I = C.sessionbuilder_remoteClipboardChangedCallback(this.__wbg_ptr, A);
|
|
619
|
-
return
|
|
619
|
+
return Y.__wrap(I);
|
|
620
620
|
}
|
|
621
621
|
/**
|
|
622
622
|
* @param {HTMLCanvasElement} canvas
|
|
@@ -624,15 +624,15 @@ class U {
|
|
|
624
624
|
*/
|
|
625
625
|
renderCanvas(A) {
|
|
626
626
|
const I = C.sessionbuilder_renderCanvas(this.__wbg_ptr, A);
|
|
627
|
-
return
|
|
627
|
+
return Y.__wrap(I);
|
|
628
628
|
}
|
|
629
629
|
/**
|
|
630
630
|
* @param {string} server_domain
|
|
631
631
|
* @returns {SessionBuilder}
|
|
632
632
|
*/
|
|
633
633
|
serverDomain(A) {
|
|
634
|
-
const I =
|
|
635
|
-
return
|
|
634
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k, B = C.sessionbuilder_serverDomain(this.__wbg_ptr, I, g);
|
|
635
|
+
return Y.__wrap(B);
|
|
636
636
|
}
|
|
637
637
|
/**
|
|
638
638
|
* @param {Function} callback
|
|
@@ -640,7 +640,7 @@ class U {
|
|
|
640
640
|
*/
|
|
641
641
|
setCursorStyleCallback(A) {
|
|
642
642
|
const I = C.sessionbuilder_setCursorStyleCallback(this.__wbg_ptr, A);
|
|
643
|
-
return
|
|
643
|
+
return Y.__wrap(I);
|
|
644
644
|
}
|
|
645
645
|
/**
|
|
646
646
|
* @param {any} context
|
|
@@ -648,26 +648,26 @@ class U {
|
|
|
648
648
|
*/
|
|
649
649
|
setCursorStyleCallbackContext(A) {
|
|
650
650
|
const I = C.sessionbuilder_setCursorStyleCallbackContext(this.__wbg_ptr, A);
|
|
651
|
-
return
|
|
651
|
+
return Y.__wrap(I);
|
|
652
652
|
}
|
|
653
653
|
/**
|
|
654
654
|
* @param {string} username
|
|
655
655
|
* @returns {SessionBuilder}
|
|
656
656
|
*/
|
|
657
657
|
username(A) {
|
|
658
|
-
const I =
|
|
659
|
-
return
|
|
658
|
+
const I = F(A, C.__wbindgen_malloc, C.__wbindgen_realloc), g = k, B = C.sessionbuilder_username(this.__wbg_ptr, I, g);
|
|
659
|
+
return Y.__wrap(B);
|
|
660
660
|
}
|
|
661
661
|
}
|
|
662
|
-
Symbol.dispose && (
|
|
663
|
-
class
|
|
662
|
+
Symbol.dispose && (Y.prototype[Symbol.dispose] = Y.prototype.free);
|
|
663
|
+
class P {
|
|
664
664
|
static __wrap(A) {
|
|
665
|
-
const I = Object.create(
|
|
666
|
-
return I.__wbg_ptr = A,
|
|
665
|
+
const I = Object.create(P.prototype);
|
|
666
|
+
return I.__wbg_ptr = A, FA.register(I, I.__wbg_ptr, I), I;
|
|
667
667
|
}
|
|
668
668
|
__destroy_into_raw() {
|
|
669
669
|
const A = this.__wbg_ptr;
|
|
670
|
-
return this.__wbg_ptr = 0,
|
|
670
|
+
return this.__wbg_ptr = 0, FA.unregister(this), A;
|
|
671
671
|
}
|
|
672
672
|
free() {
|
|
673
673
|
const A = this.__destroy_into_raw();
|
|
@@ -686,12 +686,12 @@ class r {
|
|
|
686
686
|
}
|
|
687
687
|
}
|
|
688
688
|
}
|
|
689
|
-
Symbol.dispose && (
|
|
690
|
-
function
|
|
691
|
-
const A =
|
|
689
|
+
Symbol.dispose && (P.prototype[Symbol.dispose] = P.prototype.free);
|
|
690
|
+
function JA(Q) {
|
|
691
|
+
const A = F(Q, C.__wbindgen_malloc, C.__wbindgen_realloc), I = k;
|
|
692
692
|
C.setup(A, I);
|
|
693
693
|
}
|
|
694
|
-
function
|
|
694
|
+
function cA() {
|
|
695
695
|
return {
|
|
696
696
|
__proto__: null,
|
|
697
697
|
"./ironrdp_web_bg.js": {
|
|
@@ -701,7 +701,7 @@ function JA() {
|
|
|
701
701
|
return h(g) ? 16777215 : g ? 1 : 0;
|
|
702
702
|
},
|
|
703
703
|
__wbg___wbindgen_debug_string_c25d447a39f5578f: function(A, I) {
|
|
704
|
-
const g = gA(I), B =
|
|
704
|
+
const g = gA(I), B = F(g, C.__wbindgen_malloc, C.__wbindgen_realloc), E = k;
|
|
705
705
|
y().setInt32(A + 4, E, true), y().setInt32(A + 0, B, true);
|
|
706
706
|
},
|
|
707
707
|
__wbg___wbindgen_is_function_1ff95bcc5517c252: function(A) {
|
|
@@ -726,7 +726,7 @@ function JA() {
|
|
|
726
726
|
},
|
|
727
727
|
__wbg___wbindgen_string_get_b0ca35b86a603356: function(A, I) {
|
|
728
728
|
const g = I, B = typeof g == "string" ? g : void 0;
|
|
729
|
-
var E = h(B) ? 0 :
|
|
729
|
+
var E = h(B) ? 0 : F(B, C.__wbindgen_malloc, C.__wbindgen_realloc), D = k;
|
|
730
730
|
y().setInt32(A + 4, D, true), y().setInt32(A + 0, E, true);
|
|
731
731
|
},
|
|
732
732
|
__wbg___wbindgen_throw_344f42d3211c4765: function(A, I) {
|
|
@@ -821,22 +821,22 @@ function JA() {
|
|
|
821
821
|
__wbg_getContext_e79ddf6a9cb3cc76: function() {
|
|
822
822
|
return G(function(A, I, g) {
|
|
823
823
|
const B = A.getContext(M(I, g));
|
|
824
|
-
return h(B) ? 0 :
|
|
824
|
+
return h(B) ? 0 : L(B);
|
|
825
825
|
}, arguments);
|
|
826
826
|
},
|
|
827
827
|
__wbg_getRandomValues_3f44b700395062e5: function() {
|
|
828
828
|
return G(function(A, I) {
|
|
829
|
-
globalThis.crypto.getRandomValues(
|
|
829
|
+
globalThis.crypto.getRandomValues(l(A, I));
|
|
830
830
|
}, arguments);
|
|
831
831
|
},
|
|
832
832
|
__wbg_getRandomValues_bf16787eede473f5: function() {
|
|
833
833
|
return G(function(A, I) {
|
|
834
|
-
globalThis.crypto.getRandomValues(
|
|
834
|
+
globalThis.crypto.getRandomValues(l(A, I));
|
|
835
835
|
}, arguments);
|
|
836
836
|
},
|
|
837
837
|
__wbg_getRandomValues_cc7f052a444bb2ce: function() {
|
|
838
838
|
return G(function(A, I) {
|
|
839
|
-
globalThis.crypto.getRandomValues(
|
|
839
|
+
globalThis.crypto.getRandomValues(l(A, I));
|
|
840
840
|
}, arguments);
|
|
841
841
|
},
|
|
842
842
|
__wbg_getTime_d6f070c088c9b5ed: function(A) {
|
|
@@ -976,7 +976,7 @@ function JA() {
|
|
|
976
976
|
return new Uint32Array(dA(A, I));
|
|
977
977
|
},
|
|
978
978
|
__wbg_new_from_slice_77cdfb7977362f3c: function(A, I) {
|
|
979
|
-
return new Uint8Array(
|
|
979
|
+
return new Uint8Array(l(A, I));
|
|
980
980
|
},
|
|
981
981
|
__wbg_new_typed_1824d93f294193e5: function(A, I) {
|
|
982
982
|
try {
|
|
@@ -984,7 +984,7 @@ function JA() {
|
|
|
984
984
|
const w = g.a;
|
|
985
985
|
g.a = 0;
|
|
986
986
|
try {
|
|
987
|
-
return
|
|
987
|
+
return sA(w, g.b, D, i);
|
|
988
988
|
} finally {
|
|
989
989
|
g.a = w;
|
|
990
990
|
}
|
|
@@ -1016,7 +1016,7 @@ function JA() {
|
|
|
1016
1016
|
},
|
|
1017
1017
|
__wbg_new_with_u8_clamped_array_and_sh_2767e4741c267d25: function() {
|
|
1018
1018
|
return G(function(A, I, g, B) {
|
|
1019
|
-
return new ImageData(
|
|
1019
|
+
return new ImageData(VA(A, I), g >>> 0, B >>> 0);
|
|
1020
1020
|
}, arguments);
|
|
1021
1021
|
},
|
|
1022
1022
|
__wbg_now_390768da5ee9e776: function(A) {
|
|
@@ -1036,13 +1036,13 @@ function JA() {
|
|
|
1036
1036
|
},
|
|
1037
1037
|
__wbg_performance_3ef602e13d6c3b56: function(A) {
|
|
1038
1038
|
const I = A.performance;
|
|
1039
|
-
return h(I) ? 0 :
|
|
1039
|
+
return h(I) ? 0 : L(I);
|
|
1040
1040
|
},
|
|
1041
1041
|
__wbg_performance_3fcf6e32a7e1ed0a: function(A) {
|
|
1042
1042
|
return A.performance;
|
|
1043
1043
|
},
|
|
1044
1044
|
__wbg_prototypesetcall_4770620bbe4688a0: function(A, I, g) {
|
|
1045
|
-
Uint8Array.prototype.set.call(
|
|
1045
|
+
Uint8Array.prototype.set.call(l(A, I), g);
|
|
1046
1046
|
},
|
|
1047
1047
|
__wbg_push_d2ae3af0c1217ae6: function(A, I) {
|
|
1048
1048
|
return A.push(I);
|
|
@@ -1062,7 +1062,7 @@ function JA() {
|
|
|
1062
1062
|
return A.readyState;
|
|
1063
1063
|
},
|
|
1064
1064
|
__wbg_reason_5dc8e429d537d6a9: function(A, I) {
|
|
1065
|
-
const g = I.reason, B =
|
|
1065
|
+
const g = I.reason, B = F(g, C.__wbindgen_malloc, C.__wbindgen_realloc), E = k;
|
|
1066
1066
|
y().setInt32(A + 4, E, true), y().setInt32(A + 0, B, true);
|
|
1067
1067
|
},
|
|
1068
1068
|
__wbg_removeEventListener_a3f23c70077bdcc1: function() {
|
|
@@ -1074,7 +1074,7 @@ function JA() {
|
|
|
1074
1074
|
return Promise.resolve(A);
|
|
1075
1075
|
},
|
|
1076
1076
|
__wbg_search_c905fb82fd20bc6b: function(A, I) {
|
|
1077
|
-
const g = I.search, B =
|
|
1077
|
+
const g = I.search, B = F(g, C.__wbindgen_malloc, C.__wbindgen_realloc), E = k;
|
|
1078
1078
|
y().setInt32(A + 4, E, true), y().setInt32(A + 0, B, true);
|
|
1079
1079
|
},
|
|
1080
1080
|
__wbg_send_1733c45567a373ff: function() {
|
|
@@ -1091,7 +1091,7 @@ function JA() {
|
|
|
1091
1091
|
return n.__wrap(A);
|
|
1092
1092
|
},
|
|
1093
1093
|
__wbg_sessionterminationinfo_new: function(A) {
|
|
1094
|
-
return
|
|
1094
|
+
return P.__wrap(A);
|
|
1095
1095
|
},
|
|
1096
1096
|
__wbg_setInterval_cbf1c35c6a692d37: function() {
|
|
1097
1097
|
return G(function(A, I) {
|
|
@@ -1144,27 +1144,27 @@ function JA() {
|
|
|
1144
1144
|
A.width = I >>> 0;
|
|
1145
1145
|
},
|
|
1146
1146
|
__wbg_stack_3b0d974bbf31e44f: function(A, I) {
|
|
1147
|
-
const g = I.stack, B =
|
|
1147
|
+
const g = I.stack, B = F(g, C.__wbindgen_malloc, C.__wbindgen_realloc), E = k;
|
|
1148
1148
|
y().setInt32(A + 4, E, true), y().setInt32(A + 0, B, true);
|
|
1149
1149
|
},
|
|
1150
1150
|
__wbg_static_accessor_GLOBAL_4ef717fb391d88b7: function() {
|
|
1151
1151
|
const A = typeof global > "u" ? null : global;
|
|
1152
|
-
return h(A) ? 0 :
|
|
1152
|
+
return h(A) ? 0 : L(A);
|
|
1153
1153
|
},
|
|
1154
1154
|
__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4: function() {
|
|
1155
1155
|
const A = typeof globalThis > "u" ? null : globalThis;
|
|
1156
|
-
return h(A) ? 0 :
|
|
1156
|
+
return h(A) ? 0 : L(A);
|
|
1157
1157
|
},
|
|
1158
1158
|
__wbg_static_accessor_SELF_146583524fe1469b: function() {
|
|
1159
1159
|
const A = typeof self > "u" ? null : self;
|
|
1160
|
-
return h(A) ? 0 :
|
|
1160
|
+
return h(A) ? 0 : L(A);
|
|
1161
1161
|
},
|
|
1162
1162
|
__wbg_static_accessor_WINDOW_f2829a2234d7819e: function() {
|
|
1163
1163
|
const A = typeof window > "u" ? null : window;
|
|
1164
|
-
return h(A) ? 0 :
|
|
1164
|
+
return h(A) ? 0 : L(A);
|
|
1165
1165
|
},
|
|
1166
1166
|
__wbg_statusText_9f08c32741a99815: function(A, I) {
|
|
1167
|
-
const g = I.statusText, B =
|
|
1167
|
+
const g = I.statusText, B = F(g, C.__wbindgen_malloc, C.__wbindgen_realloc), E = k;
|
|
1168
1168
|
y().setInt32(A + 4, E, true), y().setInt32(A + 0, B, true);
|
|
1169
1169
|
},
|
|
1170
1170
|
__wbg_status_c45b3b9b3033184a: function(A) {
|
|
@@ -1183,12 +1183,12 @@ function JA() {
|
|
|
1183
1183
|
return A.toString();
|
|
1184
1184
|
},
|
|
1185
1185
|
__wbg_url_f6cd241d61f89b82: function(A, I) {
|
|
1186
|
-
const g = I.url, B =
|
|
1186
|
+
const g = I.url, B = F(g, C.__wbindgen_malloc, C.__wbindgen_realloc), E = k;
|
|
1187
1187
|
y().setInt32(A + 4, E, true), y().setInt32(A + 0, B, true);
|
|
1188
1188
|
},
|
|
1189
1189
|
__wbg_userAgent_0558f0ac642f7771: function() {
|
|
1190
1190
|
return G(function(A, I) {
|
|
1191
|
-
const g = I.userAgent, B =
|
|
1191
|
+
const g = I.userAgent, B = F(g, C.__wbindgen_malloc, C.__wbindgen_realloc), E = k;
|
|
1192
1192
|
y().setInt32(A + 4, E, true), y().setInt32(A + 0, B, true);
|
|
1193
1193
|
}, arguments);
|
|
1194
1194
|
},
|
|
@@ -1202,13 +1202,13 @@ function JA() {
|
|
|
1202
1202
|
return A.width;
|
|
1203
1203
|
},
|
|
1204
1204
|
__wbindgen_cast_0000000000000001: function(A, I) {
|
|
1205
|
-
return H(A, I,
|
|
1205
|
+
return H(A, I, LA);
|
|
1206
1206
|
},
|
|
1207
1207
|
__wbindgen_cast_0000000000000002: function(A, I) {
|
|
1208
|
-
return H(A, I,
|
|
1208
|
+
return H(A, I, aA);
|
|
1209
1209
|
},
|
|
1210
1210
|
__wbindgen_cast_0000000000000003: function(A, I) {
|
|
1211
|
-
return H(A, I,
|
|
1211
|
+
return H(A, I, SA);
|
|
1212
1212
|
},
|
|
1213
1213
|
__wbindgen_cast_0000000000000004: function(A, I) {
|
|
1214
1214
|
return H(A, I, HA);
|
|
@@ -1241,27 +1241,27 @@ function KA(Q, A) {
|
|
|
1241
1241
|
function hA(Q, A) {
|
|
1242
1242
|
C.wasm_bindgen__convert__closures_____invoke__h59fff34e32ed8cec(Q, A);
|
|
1243
1243
|
}
|
|
1244
|
-
function
|
|
1244
|
+
function aA(Q, A, I) {
|
|
1245
1245
|
C.wasm_bindgen__convert__closures_____invoke__h64a57be2ca3e0d69(Q, A, I);
|
|
1246
1246
|
}
|
|
1247
|
-
function
|
|
1247
|
+
function SA(Q, A, I) {
|
|
1248
1248
|
C.wasm_bindgen__convert__closures_____invoke__h64a57be2ca3e0d69_2(Q, A, I);
|
|
1249
1249
|
}
|
|
1250
1250
|
function HA(Q, A, I) {
|
|
1251
1251
|
C.wasm_bindgen__convert__closures_____invoke__h64a57be2ca3e0d69_3(Q, A, I);
|
|
1252
1252
|
}
|
|
1253
|
-
function
|
|
1253
|
+
function LA(Q, A, I) {
|
|
1254
1254
|
const g = C.wasm_bindgen__convert__closures_____invoke__hfbb046a5343bcac9(Q, A, I);
|
|
1255
1255
|
if (g[1])
|
|
1256
1256
|
throw q(g[0]);
|
|
1257
1257
|
}
|
|
1258
|
-
function
|
|
1258
|
+
function sA(Q, A, I, g) {
|
|
1259
1259
|
C.wasm_bindgen__convert__closures_____invoke__h4cc111f3c9bb2945(Q, A, I, g);
|
|
1260
1260
|
}
|
|
1261
1261
|
function qA(Q, A, I, g, B) {
|
|
1262
1262
|
C.wasm_bindgen__convert__closures_____invoke__h777de2c1fe9da8ab(Q, A, I, g, B);
|
|
1263
1263
|
}
|
|
1264
|
-
const ZA = ["blob", "arraybuffer"],
|
|
1264
|
+
const ZA = ["blob", "arraybuffer"], e = typeof FinalizationRegistry > "u" ? { register: () => {
|
|
1265
1265
|
}, unregister: () => {
|
|
1266
1266
|
} } : new FinalizationRegistry((Q) => C.__wbg_clipboarddata_free(Q, 1)), EA = typeof FinalizationRegistry > "u" ? { register: () => {
|
|
1267
1267
|
}, unregister: () => {
|
|
@@ -1283,14 +1283,14 @@ const ZA = ["blob", "arraybuffer"], u = typeof FinalizationRegistry > "u" ? { re
|
|
|
1283
1283
|
}, unregister: () => {
|
|
1284
1284
|
} } : new FinalizationRegistry((Q) => C.__wbg_session_free(Q, 1)), $ = typeof FinalizationRegistry > "u" ? { register: () => {
|
|
1285
1285
|
}, unregister: () => {
|
|
1286
|
-
} } : new FinalizationRegistry((Q) => C.__wbg_sessionbuilder_free(Q, 1)),
|
|
1286
|
+
} } : new FinalizationRegistry((Q) => C.__wbg_sessionbuilder_free(Q, 1)), FA = typeof FinalizationRegistry > "u" ? { register: () => {
|
|
1287
1287
|
}, unregister: () => {
|
|
1288
1288
|
} } : new FinalizationRegistry((Q) => C.__wbg_sessionterminationinfo_free(Q, 1));
|
|
1289
|
-
function
|
|
1289
|
+
function L(Q) {
|
|
1290
1290
|
const A = C.__externref_table_alloc();
|
|
1291
1291
|
return C.__wbindgen_externrefs.set(A, Q), A;
|
|
1292
1292
|
}
|
|
1293
|
-
function
|
|
1293
|
+
function RA(Q) {
|
|
1294
1294
|
if (typeof Q == "number" && (Q >= 1114112 || Q >= 55296 && Q < 57344)) throw new Error(`expected a valid Unicode scalar value, found ${Q}`);
|
|
1295
1295
|
}
|
|
1296
1296
|
function d(Q, A) {
|
|
@@ -1345,38 +1345,38 @@ function pA(Q, A) {
|
|
|
1345
1345
|
return C.__externref_drop_slice(Q, A), g;
|
|
1346
1346
|
}
|
|
1347
1347
|
function dA(Q, A) {
|
|
1348
|
-
return Q = Q >>> 0,
|
|
1348
|
+
return Q = Q >>> 0, OA().subarray(Q / 4, Q / 4 + A);
|
|
1349
1349
|
}
|
|
1350
|
-
function
|
|
1351
|
-
return Q = Q >>> 0,
|
|
1350
|
+
function l(Q, A) {
|
|
1351
|
+
return Q = Q >>> 0, V().subarray(Q / 1, Q / 1 + A);
|
|
1352
1352
|
}
|
|
1353
|
-
function
|
|
1354
|
-
return Q = Q >>> 0,
|
|
1353
|
+
function VA(Q, A) {
|
|
1354
|
+
return Q = Q >>> 0, WA().subarray(Q / 1, Q / 1 + A);
|
|
1355
1355
|
}
|
|
1356
|
-
let
|
|
1356
|
+
let s = null;
|
|
1357
1357
|
function y() {
|
|
1358
|
-
return (
|
|
1358
|
+
return (s === null || s.buffer.detached === true || s.buffer.detached === void 0 && s.buffer !== C.memory.buffer) && (s = new DataView(C.memory.buffer)), s;
|
|
1359
1359
|
}
|
|
1360
1360
|
function M(Q, A) {
|
|
1361
|
-
return
|
|
1361
|
+
return xA(Q >>> 0, A);
|
|
1362
1362
|
}
|
|
1363
|
-
let
|
|
1364
|
-
function
|
|
1365
|
-
return (
|
|
1363
|
+
let x = null;
|
|
1364
|
+
function OA() {
|
|
1365
|
+
return (x === null || x.byteLength === 0) && (x = new Uint32Array(C.memory.buffer)), x;
|
|
1366
1366
|
}
|
|
1367
|
-
let
|
|
1368
|
-
function
|
|
1369
|
-
return (
|
|
1367
|
+
let t = null;
|
|
1368
|
+
function V() {
|
|
1369
|
+
return (t === null || t.byteLength === 0) && (t = new Uint8Array(C.memory.buffer)), t;
|
|
1370
1370
|
}
|
|
1371
1371
|
let b = null;
|
|
1372
|
-
function
|
|
1372
|
+
function WA() {
|
|
1373
1373
|
return (b === null || b.byteLength === 0) && (b = new Uint8ClampedArray(C.memory.buffer)), b;
|
|
1374
1374
|
}
|
|
1375
1375
|
function G(Q, A) {
|
|
1376
1376
|
try {
|
|
1377
1377
|
return Q.apply(this, A);
|
|
1378
1378
|
} catch (I) {
|
|
1379
|
-
const g =
|
|
1379
|
+
const g = L(I);
|
|
1380
1380
|
C.__wbindgen_exn_store(g);
|
|
1381
1381
|
}
|
|
1382
1382
|
}
|
|
@@ -1398,17 +1398,17 @@ function H(Q, A, I) {
|
|
|
1398
1398
|
--g.cnt === 0 && (C.__wbindgen_destroy_closure(g.a, g.b), g.a = 0, MA.unregister(g));
|
|
1399
1399
|
}, MA.register(B, g, g), B;
|
|
1400
1400
|
}
|
|
1401
|
-
function
|
|
1401
|
+
function lA(Q, A) {
|
|
1402
1402
|
const I = A(Q.length * 1, 1) >>> 0;
|
|
1403
|
-
return
|
|
1403
|
+
return V().set(Q, I / 1), k = Q.length, I;
|
|
1404
1404
|
}
|
|
1405
|
-
function
|
|
1405
|
+
function F(Q, A, I) {
|
|
1406
1406
|
if (I === void 0) {
|
|
1407
1407
|
const i = m.encode(Q), w = A(i.length, 1) >>> 0;
|
|
1408
|
-
return
|
|
1408
|
+
return V().subarray(w, w + i.length).set(i), k = i.length, w;
|
|
1409
1409
|
}
|
|
1410
1410
|
let g = Q.length, B = A(g, 1) >>> 0;
|
|
1411
|
-
const E =
|
|
1411
|
+
const E = V();
|
|
1412
1412
|
let D = 0;
|
|
1413
1413
|
for (; D < g; D++) {
|
|
1414
1414
|
const i = Q.charCodeAt(D);
|
|
@@ -1417,7 +1417,7 @@ function R(Q, A, I) {
|
|
|
1417
1417
|
}
|
|
1418
1418
|
if (D !== g) {
|
|
1419
1419
|
D !== 0 && (Q = Q.slice(D)), B = I(B, g, g = D + Q.length * 3, 1) >>> 0;
|
|
1420
|
-
const i =
|
|
1420
|
+
const i = V().subarray(B + D, B + g), w = m.encodeInto(Q, i);
|
|
1421
1421
|
D += w.written, B = I(B, g, D, 1) >>> 0;
|
|
1422
1422
|
}
|
|
1423
1423
|
return k = D, B;
|
|
@@ -1426,12 +1426,12 @@ function q(Q) {
|
|
|
1426
1426
|
const A = C.__wbindgen_externrefs.get(Q);
|
|
1427
1427
|
return C.__externref_table_dealloc(Q), A;
|
|
1428
1428
|
}
|
|
1429
|
-
let
|
|
1430
|
-
|
|
1429
|
+
let r = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });
|
|
1430
|
+
r.decode();
|
|
1431
1431
|
const jA = 2146435072;
|
|
1432
1432
|
let AA = 0;
|
|
1433
|
-
function
|
|
1434
|
-
return AA += A, AA >= jA && (
|
|
1433
|
+
function xA(Q, A) {
|
|
1434
|
+
return AA += A, AA >= jA && (r = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }), r.decode(), AA = A), r.decode(V().subarray(Q, Q + A));
|
|
1435
1435
|
}
|
|
1436
1436
|
const m = new TextEncoder();
|
|
1437
1437
|
"encodeInto" in m || (m.encodeInto = function(Q, A) {
|
|
@@ -1442,8 +1442,8 @@ const m = new TextEncoder();
|
|
|
1442
1442
|
};
|
|
1443
1443
|
});
|
|
1444
1444
|
let k = 0, C;
|
|
1445
|
-
function
|
|
1446
|
-
return C = Q.exports,
|
|
1445
|
+
function tA(Q, A) {
|
|
1446
|
+
return C = Q.exports, s = null, x = null, t = null, b = null, C.__wbindgen_start(), C;
|
|
1447
1447
|
}
|
|
1448
1448
|
async function bA(Q, A) {
|
|
1449
1449
|
if (typeof Response == "function" && Q instanceof Response) {
|
|
@@ -1475,13 +1475,13 @@ async function bA(Q, A) {
|
|
|
1475
1475
|
async function mA(Q) {
|
|
1476
1476
|
if (C !== void 0) return C;
|
|
1477
1477
|
Q !== void 0 && (Object.getPrototypeOf(Q) === Object.prototype ? { module_or_path: Q } = Q : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), Q === void 0 && (Q = new URL("ironrdp_web_bg.wasm", import.meta.url));
|
|
1478
|
-
const A =
|
|
1478
|
+
const A = cA();
|
|
1479
1479
|
(typeof Q == "string" || typeof Request == "function" && Q instanceof Request || typeof URL == "function" && Q instanceof URL) && (Q = fetch(Q));
|
|
1480
1480
|
const { instance: I, module: g } = await bA(await Q, A);
|
|
1481
|
-
return
|
|
1481
|
+
return tA(I);
|
|
1482
1482
|
}
|
|
1483
1483
|
const XA = "avc1.640033";
|
|
1484
|
-
function
|
|
1484
|
+
function UA() {
|
|
1485
1485
|
return {
|
|
1486
1486
|
codec: XA,
|
|
1487
1487
|
optimizeForLatency: true,
|
|
@@ -1493,7 +1493,7 @@ async function BI() {
|
|
|
1493
1493
|
if (typeof VideoDecoder > "u" || typeof EncodedVideoChunk > "u")
|
|
1494
1494
|
return false;
|
|
1495
1495
|
try {
|
|
1496
|
-
return (await VideoDecoder.isConfigSupported(
|
|
1496
|
+
return (await VideoDecoder.isConfigSupported(UA())).supported === true;
|
|
1497
1497
|
} catch {
|
|
1498
1498
|
return false;
|
|
1499
1499
|
}
|
|
@@ -1568,7 +1568,7 @@ class QI {
|
|
|
1568
1568
|
waitingSince: null,
|
|
1569
1569
|
pending: /* @__PURE__ */ new Map()
|
|
1570
1570
|
};
|
|
1571
|
-
return I.decoder.configure(
|
|
1571
|
+
return I.decoder.configure(UA()), this.surfaces.set(A, I), I;
|
|
1572
1572
|
}
|
|
1573
1573
|
output(A, I) {
|
|
1574
1574
|
const g = I.timestamp, B = A.pending.get(g);
|
|
@@ -1600,31 +1600,32 @@ class QI {
|
|
|
1600
1600
|
y: N.top - D,
|
|
1601
1601
|
width: N.right - N.left,
|
|
1602
1602
|
height: N.bottom - N.top
|
|
1603
|
-
}))
|
|
1604
|
-
if (i.length === 0)
|
|
1605
|
-
return F;
|
|
1603
|
+
}));
|
|
1606
1604
|
for (const N of i)
|
|
1607
1605
|
if (N.x < 0 || N.y < 0 || N.x + N.width > g.width || N.y + N.height > g.height)
|
|
1608
1606
|
throw new Error(
|
|
1609
1607
|
`region ${JSON.stringify(N)} is outside the ${g.width}x${g.height} picture`
|
|
1610
1608
|
);
|
|
1611
|
-
const
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1609
|
+
const w = i.reduce((N, S) => N + S.width * S.height * 4, 0), R = new Uint8Array(w);
|
|
1610
|
+
if (i.length === 0)
|
|
1611
|
+
return R;
|
|
1612
|
+
const a = Math.min(...i.map((N) => N.x)), J = Math.min(...i.map((N) => N.y)), U = {
|
|
1613
|
+
x: a,
|
|
1614
|
+
y: J,
|
|
1615
|
+
width: Math.max(...i.map((N) => N.x + N.width)) - a,
|
|
1616
|
+
height: Math.max(...i.map((N) => N.y + N.height)) - J
|
|
1617
|
+
}, W = i.length === 1, z = W ? R : new Uint8Array(U.width * U.height * 4);
|
|
1618
|
+
if (await this.readBox(A, g, U, z), !W) {
|
|
1618
1619
|
let N = 0;
|
|
1619
|
-
for (const
|
|
1620
|
-
const BA =
|
|
1621
|
-
for (let
|
|
1622
|
-
const QA = ((
|
|
1623
|
-
|
|
1620
|
+
for (const S of i) {
|
|
1621
|
+
const BA = S.width * 4;
|
|
1622
|
+
for (let u = 0; u < S.height; u++) {
|
|
1623
|
+
const QA = ((S.y - U.y + u) * U.width + (S.x - U.x)) * 4;
|
|
1624
|
+
R.set(z.subarray(QA, QA + BA), N), N += BA;
|
|
1624
1625
|
}
|
|
1625
1626
|
}
|
|
1626
1627
|
}
|
|
1627
|
-
return
|
|
1628
|
+
return R;
|
|
1628
1629
|
}
|
|
1629
1630
|
async readBox(A, I, g, B) {
|
|
1630
1631
|
var _a, _b;
|
|
@@ -1715,13 +1716,13 @@ function fA(Q) {
|
|
|
1715
1716
|
function nA(Q) {
|
|
1716
1717
|
return new o("file_contents_response_callback", Q);
|
|
1717
1718
|
}
|
|
1718
|
-
function
|
|
1719
|
+
function PA(Q) {
|
|
1719
1720
|
return new o("lock_callback", Q);
|
|
1720
1721
|
}
|
|
1721
1722
|
function zA(Q) {
|
|
1722
1723
|
return new o("unlock_callback", Q);
|
|
1723
1724
|
}
|
|
1724
|
-
function
|
|
1725
|
+
function rA(Q) {
|
|
1725
1726
|
return new o("locks_expired_callback", Q);
|
|
1726
1727
|
}
|
|
1727
1728
|
function vA(Q) {
|
|
@@ -1743,10 +1744,10 @@ function iI(Q) {
|
|
|
1743
1744
|
function wI(Q) {
|
|
1744
1745
|
return new o("printer_driver_name", Q);
|
|
1745
1746
|
}
|
|
1746
|
-
function
|
|
1747
|
+
function uA(Q) {
|
|
1747
1748
|
return new o("request_file_contents", Q);
|
|
1748
1749
|
}
|
|
1749
|
-
function
|
|
1750
|
+
function eA(Q) {
|
|
1750
1751
|
return new o("submit_file_contents", Q);
|
|
1751
1752
|
}
|
|
1752
1753
|
function _A(Q) {
|
|
@@ -1777,7 +1778,7 @@ class $A {
|
|
|
1777
1778
|
this.finalized || (this.finalized = true, this.chunks = []);
|
|
1778
1779
|
}
|
|
1779
1780
|
}
|
|
1780
|
-
class
|
|
1781
|
+
class YA {
|
|
1781
1782
|
constructor() {
|
|
1782
1783
|
__publicField(this, "name", "blob");
|
|
1783
1784
|
}
|
|
@@ -1823,7 +1824,7 @@ class AI {
|
|
|
1823
1824
|
}
|
|
1824
1825
|
}
|
|
1825
1826
|
}
|
|
1826
|
-
const
|
|
1827
|
+
const _O = class _O {
|
|
1827
1828
|
constructor(A, I, g) {
|
|
1828
1829
|
__publicField(this, "name", "opfs");
|
|
1829
1830
|
/** Sequence counter for generating unique temp file names. */
|
|
@@ -1838,7 +1839,7 @@ const _V = class _V {
|
|
|
1838
1839
|
*/
|
|
1839
1840
|
static async create(A, I) {
|
|
1840
1841
|
const g = I ?? `s-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`, B = await A.getDirectoryHandle("ironrdp-transfers", { create: true }), E = await B.getDirectoryHandle(g, { create: true });
|
|
1841
|
-
return
|
|
1842
|
+
return _O.cleanupStale(B, g), new _O(A, E, g);
|
|
1842
1843
|
}
|
|
1843
1844
|
// 24 hours
|
|
1844
1845
|
/**
|
|
@@ -1859,7 +1860,7 @@ const _V = class _V {
|
|
|
1859
1860
|
if (!E)
|
|
1860
1861
|
continue;
|
|
1861
1862
|
const D = Number(E[1]);
|
|
1862
|
-
if (g - D >
|
|
1863
|
+
if (g - D > _O.STALE_SESSION_THRESHOLD_MS)
|
|
1863
1864
|
try {
|
|
1864
1865
|
await A.removeEntry(B, { recursive: true });
|
|
1865
1866
|
} catch {
|
|
@@ -1916,8 +1917,8 @@ const _V = class _V {
|
|
|
1916
1917
|
}
|
|
1917
1918
|
};
|
|
1918
1919
|
/** Maximum age (in milliseconds) before a session directory is considered stale. */
|
|
1919
|
-
__publicField(
|
|
1920
|
-
let
|
|
1920
|
+
__publicField(_O, "STALE_SESSION_THRESHOLD_MS", 1440 * 60 * 1e3);
|
|
1921
|
+
let O = _O;
|
|
1921
1922
|
function II(Q) {
|
|
1922
1923
|
let A = Q.replace(/[\u0000-\u001f]/g, "");
|
|
1923
1924
|
A = A.replace(/[/\\]/g, "_"), A = A.replace(/^\.+/, ""), A.length === 0 && (A = "unnamed");
|
|
@@ -1932,19 +1933,19 @@ function II(Q) {
|
|
|
1932
1933
|
async function gI(Q = "auto", A) {
|
|
1933
1934
|
var _a, _b;
|
|
1934
1935
|
if (Q === "blob")
|
|
1935
|
-
return new
|
|
1936
|
+
return new YA();
|
|
1936
1937
|
if (typeof ((_b = (_a = globalThis.navigator) == null ? void 0 : _a.storage) == null ? void 0 : _b.getDirectory) == "function")
|
|
1937
1938
|
try {
|
|
1938
1939
|
const I = await navigator.storage.getDirectory();
|
|
1939
|
-
if (await
|
|
1940
|
-
return
|
|
1940
|
+
if (await O.probe(I))
|
|
1941
|
+
return O.create(I, A);
|
|
1941
1942
|
console.debug("OPFS probe failed (createWritable not functional), falling back to blob storage");
|
|
1942
1943
|
} catch (I) {
|
|
1943
1944
|
console.debug("OPFS unavailable, falling back to blob storage:", I);
|
|
1944
1945
|
}
|
|
1945
|
-
return new
|
|
1946
|
+
return new YA();
|
|
1946
1947
|
}
|
|
1947
|
-
const
|
|
1948
|
+
const _c = class _c {
|
|
1948
1949
|
constructor(A) {
|
|
1949
1950
|
__publicField(this, "session");
|
|
1950
1951
|
__publicField(this, "chunkSize");
|
|
@@ -2032,7 +2033,7 @@ const _J = class _J {
|
|
|
2032
2033
|
// with invokeExtension() to keep the Session interface protocol-agnostic.
|
|
2033
2034
|
sendRequestFileContents(A, I, g, B, E, D) {
|
|
2034
2035
|
this.ensureSession().invokeExtension(
|
|
2035
|
-
|
|
2036
|
+
uA({
|
|
2036
2037
|
stream_id: A,
|
|
2037
2038
|
file_index: I,
|
|
2038
2039
|
flags: g,
|
|
@@ -2044,7 +2045,7 @@ const _J = class _J {
|
|
|
2044
2045
|
}
|
|
2045
2046
|
sendSubmitFileContents(A, I, g) {
|
|
2046
2047
|
var _a;
|
|
2047
|
-
(_a = this.session) == null ? void 0 : _a.invokeExtension(
|
|
2048
|
+
(_a = this.session) == null ? void 0 : _a.invokeExtension(eA({ stream_id: A, is_error: I, data: g }));
|
|
2048
2049
|
}
|
|
2049
2050
|
sendInitiateFileCopy(A) {
|
|
2050
2051
|
this.ensureSession().invokeExtension(_A(A));
|
|
@@ -2060,9 +2061,9 @@ const _J = class _J {
|
|
|
2060
2061
|
),
|
|
2061
2062
|
fA((A) => this.handleFileContentsRequest(A)),
|
|
2062
2063
|
nA((A) => this.handleFileContentsResponse(A)),
|
|
2063
|
-
|
|
2064
|
+
PA((A) => this.handleLock(A)),
|
|
2064
2065
|
zA((A) => this.handleUnlock(A)),
|
|
2065
|
-
|
|
2066
|
+
rA((A) => this.handleLocksExpired(A)),
|
|
2066
2067
|
vA((A) => this.handleFormatListResponse(A))
|
|
2067
2068
|
];
|
|
2068
2069
|
}
|
|
@@ -2198,19 +2199,19 @@ const _J = class _J {
|
|
|
2198
2199
|
* ```
|
|
2199
2200
|
*/
|
|
2200
2201
|
async downloadFilesConcurrent(A, I = {}) {
|
|
2201
|
-
const g = I.maxConcurrent ?? 3, B = /* @__PURE__ */ new Map(), E = [], D = A.map((w,
|
|
2202
|
+
const g = I.maxConcurrent ?? 3, B = /* @__PURE__ */ new Map(), E = [], D = A.map((w, R) => async () => {
|
|
2202
2203
|
try {
|
|
2203
|
-
const { completion:
|
|
2204
|
-
B.set(
|
|
2205
|
-
} catch (
|
|
2206
|
-
E.push({ index:
|
|
2204
|
+
const { completion: a } = this.downloadFile(w, R), J = await a;
|
|
2205
|
+
B.set(R, J);
|
|
2206
|
+
} catch (a) {
|
|
2207
|
+
E.push({ index: R, error: a });
|
|
2207
2208
|
}
|
|
2208
2209
|
}), i = [];
|
|
2209
2210
|
for (const w of D) {
|
|
2210
|
-
const
|
|
2211
|
-
i.splice(i.indexOf(
|
|
2211
|
+
const R = w().finally(() => {
|
|
2212
|
+
i.splice(i.indexOf(R), 1);
|
|
2212
2213
|
});
|
|
2213
|
-
i.push(
|
|
2214
|
+
i.push(R), i.length >= g && await Promise.race(i);
|
|
2214
2215
|
}
|
|
2215
2216
|
if (await Promise.all(i), E.length > 0)
|
|
2216
2217
|
throw new Error(
|
|
@@ -2238,7 +2239,7 @@ const _J = class _J {
|
|
|
2238
2239
|
*/
|
|
2239
2240
|
uploadFiles(A) {
|
|
2240
2241
|
this.uploadState !== void 0 && this.supersedeUpload(), this.retainedFiles = void 0;
|
|
2241
|
-
const I =
|
|
2242
|
+
const I = _c.normalizeToDroppedFiles(A), g = /* @__PURE__ */ new Map();
|
|
2242
2243
|
for (let w = 0; w < I.length; w++)
|
|
2243
2244
|
g.set(w, this.generateStreamId());
|
|
2244
2245
|
const B = I.map((w) => ({
|
|
@@ -2247,7 +2248,7 @@ const _J = class _J {
|
|
|
2247
2248
|
lastModified: w.lastModified,
|
|
2248
2249
|
path: w.path,
|
|
2249
2250
|
isDirectory: w.isDirectory
|
|
2250
|
-
})), E = I.filter((w) => w.isDirectory !== true).length, D = I.map((w) => w.file), i = new Promise((w,
|
|
2251
|
+
})), E = I.filter((w) => w.isDirectory !== true).length, D = I.map((w) => w.file), i = new Promise((w, R) => {
|
|
2251
2252
|
this.uploadState = {
|
|
2252
2253
|
files: D,
|
|
2253
2254
|
droppedFiles: I,
|
|
@@ -2259,18 +2260,18 @@ const _J = class _J {
|
|
|
2259
2260
|
readerTimeouts: /* @__PURE__ */ new Map(),
|
|
2260
2261
|
transferIds: g,
|
|
2261
2262
|
resolve: w,
|
|
2262
|
-
reject:
|
|
2263
|
+
reject: R
|
|
2263
2264
|
}, this.suppressUploadMonitoring();
|
|
2264
2265
|
try {
|
|
2265
2266
|
this.sendInitiateFileCopy(B), this.emit("upload-batch-started", g, I);
|
|
2266
|
-
} catch (
|
|
2267
|
+
} catch (a) {
|
|
2267
2268
|
this.uploadState = void 0, this.resumeUploadMonitoring();
|
|
2268
|
-
const
|
|
2269
|
+
const J = {
|
|
2269
2270
|
message: "Failed to initiate file upload",
|
|
2270
2271
|
direction: "upload",
|
|
2271
|
-
cause:
|
|
2272
|
+
cause: a
|
|
2272
2273
|
};
|
|
2273
|
-
this.emit("error",
|
|
2274
|
+
this.emit("error", J), R(new Error(J.message, { cause: a }));
|
|
2274
2275
|
return;
|
|
2275
2276
|
}
|
|
2276
2277
|
this.armPasteAckWatchdog();
|
|
@@ -2314,7 +2315,7 @@ const _J = class _J {
|
|
|
2314
2315
|
this.pasteAckTimeout = void 0;
|
|
2315
2316
|
const A = this.uploadState;
|
|
2316
2317
|
A !== void 0 && A.isRePaste !== true ? this.failPendingUpload("The remote did not request the files in time, so the paste was not completed") : this.resumeUploadMonitoring();
|
|
2317
|
-
},
|
|
2318
|
+
}, _c.PASTE_ACK_TIMEOUT_MS);
|
|
2318
2319
|
}
|
|
2319
2320
|
/** Disarm the paste-acknowledgment watchdog, if armed. */
|
|
2320
2321
|
clearPasteAckWatchdog() {
|
|
@@ -2332,7 +2333,7 @@ const _J = class _J {
|
|
|
2332
2333
|
this.uploadInactivityTimeout = void 0;
|
|
2333
2334
|
const A = this.uploadState;
|
|
2334
2335
|
A !== void 0 && A.isRePaste !== true && this.failPendingUpload("The remote stopped requesting the files, so the paste did not complete");
|
|
2335
|
-
},
|
|
2336
|
+
}, _c.UPLOAD_INACTIVITY_TIMEOUT_MS);
|
|
2336
2337
|
}
|
|
2337
2338
|
/** Disarm the upload inactivity watchdog, if armed. */
|
|
2338
2339
|
clearUploadInactivityWatchdog() {
|
|
@@ -2469,7 +2470,7 @@ const _J = class _J {
|
|
|
2469
2470
|
* ```
|
|
2470
2471
|
*/
|
|
2471
2472
|
async handleDrop(A) {
|
|
2472
|
-
var _a, _b,
|
|
2473
|
+
var _a, _b, _c2;
|
|
2473
2474
|
A.preventDefault();
|
|
2474
2475
|
const I = [];
|
|
2475
2476
|
if ((_a = A.dataTransfer) == null ? void 0 : _a.items) {
|
|
@@ -2493,7 +2494,7 @@ const _J = class _J {
|
|
|
2493
2494
|
size: E.size,
|
|
2494
2495
|
lastModified: E.lastModified
|
|
2495
2496
|
});
|
|
2496
|
-
} else if ((
|
|
2497
|
+
} else if ((_c2 = A.dataTransfer) == null ? void 0 : _c2.files)
|
|
2497
2498
|
for (const g of Array.from(A.dataTransfer.files))
|
|
2498
2499
|
I.push({
|
|
2499
2500
|
file: g,
|
|
@@ -2520,10 +2521,10 @@ const _J = class _J {
|
|
|
2520
2521
|
* entries into `results`.
|
|
2521
2522
|
*/
|
|
2522
2523
|
async traverseEntry(A, I, g, B) {
|
|
2523
|
-
if (!(g.length >=
|
|
2524
|
-
if (B >
|
|
2524
|
+
if (!(g.length >= _c.MAX_DIRECTORY_ENTRIES)) {
|
|
2525
|
+
if (B > _c.MAX_DIRECTORY_DEPTH) {
|
|
2525
2526
|
console.warn(
|
|
2526
|
-
`Skipping "${A.name}": directory depth exceeds ${
|
|
2527
|
+
`Skipping "${A.name}": directory depth exceeds ${_c.MAX_DIRECTORY_DEPTH}`
|
|
2527
2528
|
);
|
|
2528
2529
|
return;
|
|
2529
2530
|
}
|
|
@@ -2548,7 +2549,7 @@ const _J = class _J {
|
|
|
2548
2549
|
path: I,
|
|
2549
2550
|
isDirectory: true
|
|
2550
2551
|
});
|
|
2551
|
-
const D = A.createReader(), i = await
|
|
2552
|
+
const D = A.createReader(), i = await _c.readAllDirectoryEntries(D);
|
|
2552
2553
|
for (const w of i)
|
|
2553
2554
|
await this.traverseEntry(w, E, g, B + 1);
|
|
2554
2555
|
}
|
|
@@ -2600,8 +2601,8 @@ const _J = class _J {
|
|
|
2600
2601
|
this.failPendingUpload("Upload interrupted: the remote clipboard changed");
|
|
2601
2602
|
const g = A.map((B) => ({
|
|
2602
2603
|
...B,
|
|
2603
|
-
name:
|
|
2604
|
-
path: B.path !== void 0 ?
|
|
2604
|
+
name: _c.sanitizeFileName(B.name),
|
|
2605
|
+
path: B.path !== void 0 ? _c.sanitizePath(B.path) : void 0
|
|
2605
2606
|
}));
|
|
2606
2607
|
this.availableFiles = g, this.clipDataId = I, this.emit("files-available", g);
|
|
2607
2608
|
}
|
|
@@ -2664,60 +2665,60 @@ const _J = class _J {
|
|
|
2664
2665
|
const w = new Uint8Array(8);
|
|
2665
2666
|
new DataView(w.buffer).setBigUint64(0, BigInt(i.size), true), this.sendSubmitFileContents(A.streamId, false, w), i.size === 0 && this.markUploadFileComplete(A.index, i, I.transferIds.get(A.index) ?? -1);
|
|
2666
2667
|
} else if ((A.flags & j.RANGE) !== 0) {
|
|
2667
|
-
const w = i.slice(A.position, A.position + A.size),
|
|
2668
|
-
I.activeReaders.set(A.streamId,
|
|
2669
|
-
const
|
|
2668
|
+
const w = i.slice(A.position, A.position + A.size), R = new FileReader();
|
|
2669
|
+
I.activeReaders.set(A.streamId, R);
|
|
2670
|
+
const a = setTimeout(() => {
|
|
2670
2671
|
var _a;
|
|
2671
|
-
|
|
2672
|
-
const
|
|
2673
|
-
message: `File read timeout after ${
|
|
2672
|
+
R.abort(), this.uploadState !== void 0 && (this.uploadState.activeReaders.delete(A.streamId), this.uploadState.readerTimeouts.delete(A.streamId)), this.sendSubmitFileContents(A.streamId, true, new Uint8Array());
|
|
2673
|
+
const J = {
|
|
2674
|
+
message: `File read timeout after ${_c.FILE_READER_TIMEOUT_MS / 1e3}s`,
|
|
2674
2675
|
transferId: (_a = this.uploadState) == null ? void 0 : _a.transferIds.get(A.index),
|
|
2675
2676
|
fileIndex: A.index,
|
|
2676
2677
|
fileName: D.name,
|
|
2677
2678
|
direction: "upload"
|
|
2678
2679
|
};
|
|
2679
|
-
this.emit("error",
|
|
2680
|
-
},
|
|
2681
|
-
I.readerTimeouts.set(A.streamId,
|
|
2680
|
+
this.emit("error", J), this.uploadState !== void 0 && (this.uploadState.failedFiles.add(A.index), this.uploadState.completedFiles.add(A.index), this.uploadState.completedFiles.size >= this.uploadState.expectedFileCount && this.finishUploadBatch(this.uploadState));
|
|
2681
|
+
}, _c.FILE_READER_TIMEOUT_MS);
|
|
2682
|
+
I.readerTimeouts.set(A.streamId, a), R.onload = () => {
|
|
2682
2683
|
if (this.uploadState !== void 0) {
|
|
2683
2684
|
this.uploadState.activeReaders.delete(A.streamId);
|
|
2684
|
-
const
|
|
2685
|
-
|
|
2685
|
+
const U = this.uploadState.readerTimeouts.get(A.streamId);
|
|
2686
|
+
U !== void 0 && (clearTimeout(U), this.uploadState.readerTimeouts.delete(A.streamId));
|
|
2686
2687
|
}
|
|
2687
|
-
const
|
|
2688
|
-
if (this.sendSubmitFileContents(A.streamId, false,
|
|
2689
|
-
const
|
|
2690
|
-
this.uploadState.bytesServed.set(A.index,
|
|
2691
|
-
const
|
|
2692
|
-
transferId:
|
|
2688
|
+
const J = new Uint8Array(R.result);
|
|
2689
|
+
if (this.sendSubmitFileContents(A.streamId, false, J), this.uploadState !== void 0) {
|
|
2690
|
+
const U = (this.uploadState.bytesServed.get(A.index) ?? 0) + J.length;
|
|
2691
|
+
this.uploadState.bytesServed.set(A.index, U);
|
|
2692
|
+
const W = this.uploadState.transferIds.get(A.index) ?? -1, z = {
|
|
2693
|
+
transferId: W,
|
|
2693
2694
|
fileIndex: A.index,
|
|
2694
2695
|
fileName: D.name,
|
|
2695
|
-
bytesTransferred:
|
|
2696
|
+
bytesTransferred: U,
|
|
2696
2697
|
totalBytes: i.size,
|
|
2697
|
-
percentage: i.size === 0 ? 100 : Math.min(
|
|
2698
|
+
percentage: i.size === 0 ? 100 : Math.min(U / i.size * 100, 100)
|
|
2698
2699
|
};
|
|
2699
|
-
this.emit("upload-progress", z),
|
|
2700
|
+
this.emit("upload-progress", z), U >= i.size && this.markUploadFileComplete(A.index, i, W);
|
|
2700
2701
|
}
|
|
2701
|
-
},
|
|
2702
|
+
}, R.onerror = () => {
|
|
2702
2703
|
var _a, _b;
|
|
2703
2704
|
if (this.uploadState !== void 0) {
|
|
2704
2705
|
this.uploadState.activeReaders.delete(A.streamId);
|
|
2705
|
-
const
|
|
2706
|
-
|
|
2706
|
+
const U = this.uploadState.readerTimeouts.get(A.streamId);
|
|
2707
|
+
U !== void 0 && (clearTimeout(U), this.uploadState.readerTimeouts.delete(A.streamId));
|
|
2707
2708
|
}
|
|
2708
2709
|
if (((_a = this.uploadState) == null ? void 0 : _a.failedFiles.has(A.index)) === true)
|
|
2709
2710
|
return;
|
|
2710
2711
|
this.sendSubmitFileContents(A.streamId, true, new Uint8Array());
|
|
2711
|
-
const
|
|
2712
|
+
const J = {
|
|
2712
2713
|
message: "Failed to read file chunk",
|
|
2713
2714
|
transferId: (_b = this.uploadState) == null ? void 0 : _b.transferIds.get(A.index),
|
|
2714
2715
|
fileIndex: A.index,
|
|
2715
2716
|
fileName: D.name,
|
|
2716
2717
|
direction: "upload",
|
|
2717
|
-
cause:
|
|
2718
|
+
cause: R.error
|
|
2718
2719
|
};
|
|
2719
|
-
this.emit("error",
|
|
2720
|
-
},
|
|
2720
|
+
this.emit("error", J), this.uploadState !== void 0 && (this.uploadState.failedFiles.add(A.index), this.uploadState.completedFiles.add(A.index), this.uploadState.completedFiles.size >= this.uploadState.expectedFileCount && this.finishUploadBatch(this.uploadState));
|
|
2721
|
+
}, R.readAsArrayBuffer(w);
|
|
2721
2722
|
}
|
|
2722
2723
|
}
|
|
2723
2724
|
/**
|
|
@@ -2789,7 +2790,7 @@ const _J = class _J {
|
|
|
2789
2790
|
return;
|
|
2790
2791
|
}
|
|
2791
2792
|
const g = new DataView(A.data.buffer, A.data.byteOffset, A.data.byteLength), B = Number(g.getBigUint64(0, true));
|
|
2792
|
-
if (B >
|
|
2793
|
+
if (B > _c.MAX_FILE_SIZE) {
|
|
2793
2794
|
this.activeDownloads.delete(A.streamId), this.abortWriteHandle(I);
|
|
2794
2795
|
const E = {
|
|
2795
2796
|
message: `File size ${(B / (1024 * 1024 * 1024)).toFixed(2)}GB exceeds maximum download limit of 2GB`,
|
|
@@ -2822,7 +2823,7 @@ const _J = class _J {
|
|
|
2822
2823
|
initWriteHandleAndRequestFirstChunk(A) {
|
|
2823
2824
|
A.writeHandleReady = (async () => {
|
|
2824
2825
|
try {
|
|
2825
|
-
const I = (async () => (await this.ensureStorageBackend()).createWriteHandle(A.fileInfo.name, A.expectedSize ?? 0))(), g =
|
|
2826
|
+
const I = (async () => (await this.ensureStorageBackend()).createWriteHandle(A.fileInfo.name, A.expectedSize ?? 0))(), g = _c.WRITE_HANDLE_INIT_TIMEOUT_MS, B = await Promise.race([
|
|
2826
2827
|
I,
|
|
2827
2828
|
new Promise(
|
|
2828
2829
|
(E, D) => setTimeout(() => D(new Error(`Storage init timed out after ${g / 1e3}s`)), g)
|
|
@@ -3008,9 +3009,9 @@ const _J = class _J {
|
|
|
3008
3009
|
}
|
|
3009
3010
|
};
|
|
3010
3011
|
/** Maximum file size for downloads (2GB) to prevent browser out-of-memory errors */
|
|
3011
|
-
__publicField(
|
|
3012
|
+
__publicField(_c, "MAX_FILE_SIZE", 2 * 1024 * 1024 * 1024);
|
|
3012
3013
|
/** Timeout for FileReader operations (60 seconds) to prevent stalled uploads */
|
|
3013
|
-
__publicField(
|
|
3014
|
+
__publicField(_c, "FILE_READER_TIMEOUT_MS", 60 * 1e3);
|
|
3014
3015
|
/**
|
|
3015
3016
|
* How long to keep clipboard monitoring suppressed after advertising an upload
|
|
3016
3017
|
* while waiting for the remote to pull the files (first FileContentsRequest),
|
|
@@ -3020,7 +3021,7 @@ __publicField(_J, "FILE_READER_TIMEOUT_MS", 60 * 1e3);
|
|
|
3020
3021
|
* clobbered), the watchdog resumes monitoring and fails the upload so its state
|
|
3021
3022
|
* cannot wedge later uploads.
|
|
3022
3023
|
*/
|
|
3023
|
-
__publicField(
|
|
3024
|
+
__publicField(_c, "PASTE_ACK_TIMEOUT_MS", 60 * 1e3);
|
|
3024
3025
|
/**
|
|
3025
3026
|
* Upload inactivity window. After the remote starts pulling, each FileContentsRequest
|
|
3026
3027
|
* resets this; if pulls then stop for this long -- e.g. the remote grabbed the
|
|
@@ -3028,21 +3029,21 @@ __publicField(_J, "PASTE_ACK_TIMEOUT_MS", 60 * 1e3);
|
|
|
3028
3029
|
* upload is failed so `uploadState` is released and later uploads aren't wedged. A
|
|
3029
3030
|
* slow-but-progressing transfer keeps resetting it, so it is never killed.
|
|
3030
3031
|
*/
|
|
3031
|
-
__publicField(
|
|
3032
|
+
__publicField(_c, "UPLOAD_INACTIVITY_TIMEOUT_MS", 60 * 1e3);
|
|
3032
3033
|
/** Timeout for storage backend write handle initialization (30 seconds). */
|
|
3033
|
-
__publicField(
|
|
3034
|
+
__publicField(_c, "WRITE_HANDLE_INIT_TIMEOUT_MS", 30 * 1e3);
|
|
3034
3035
|
/** Maximum recursion depth when traversing dropped directories. */
|
|
3035
|
-
__publicField(
|
|
3036
|
+
__publicField(_c, "MAX_DIRECTORY_DEPTH", 32);
|
|
3036
3037
|
/** Maximum total entries (files + directories) collected from a single drop. */
|
|
3037
|
-
__publicField(
|
|
3038
|
-
let
|
|
3038
|
+
__publicField(_c, "MAX_DIRECTORY_ENTRIES", 1e3);
|
|
3039
|
+
let c = _c;
|
|
3039
3040
|
async function GI(Q, A) {
|
|
3040
|
-
await mA(A === void 0 ? void 0 : { module_or_path: A }),
|
|
3041
|
+
await mA(A === void 0 ? void 0 : { module_or_path: A }), JA(Q);
|
|
3041
3042
|
}
|
|
3042
3043
|
const oI = {
|
|
3043
3044
|
DesktopSize: p,
|
|
3044
3045
|
InputTransaction: v,
|
|
3045
|
-
SessionBuilder:
|
|
3046
|
+
SessionBuilder: Y,
|
|
3046
3047
|
ClipboardData: Z,
|
|
3047
3048
|
DeviceEvent: K
|
|
3048
3049
|
};
|
|
@@ -3055,10 +3056,10 @@ function kI(Q, A = "enhanced") {
|
|
|
3055
3056
|
const I = A === "enhanced" ? `${Q};EnhancedMode=1` : Q;
|
|
3056
3057
|
return new o("vmconnect", I);
|
|
3057
3058
|
}
|
|
3058
|
-
function
|
|
3059
|
+
function FI(Q) {
|
|
3059
3060
|
return new o("display_control", Q);
|
|
3060
3061
|
}
|
|
3061
|
-
function
|
|
3062
|
+
function RI(Q) {
|
|
3062
3063
|
return new o("graphics_pipeline", Q);
|
|
3063
3064
|
}
|
|
3064
3065
|
function MI(Q) {
|
|
@@ -3067,17 +3068,17 @@ function MI(Q) {
|
|
|
3067
3068
|
function yI(Q) {
|
|
3068
3069
|
return new o("audio_playback", Q);
|
|
3069
3070
|
}
|
|
3070
|
-
function
|
|
3071
|
+
function YI(Q) {
|
|
3071
3072
|
return new o("audio_input", Q);
|
|
3072
3073
|
}
|
|
3073
|
-
function
|
|
3074
|
+
function UI(Q) {
|
|
3074
3075
|
const A = Q instanceof Uint8Array ? Q : new Uint8Array(Q.buffer, Q.byteOffset, Q.byteLength);
|
|
3075
3076
|
return new o("audio_input_data", A);
|
|
3076
3077
|
}
|
|
3077
|
-
function
|
|
3078
|
+
function JI(Q) {
|
|
3078
3079
|
return new o("kdc_proxy_url", Q);
|
|
3079
3080
|
}
|
|
3080
|
-
function
|
|
3081
|
+
function cI(Q) {
|
|
3081
3082
|
return new o("outbound_message_size_limit", Q);
|
|
3082
3083
|
}
|
|
3083
3084
|
function KI(Q) {
|
|
@@ -3086,45 +3087,45 @@ function KI(Q) {
|
|
|
3086
3087
|
function hI(Q) {
|
|
3087
3088
|
return new o("enable_server_pointer", Q);
|
|
3088
3089
|
}
|
|
3089
|
-
function
|
|
3090
|
+
function aI(Q) {
|
|
3090
3091
|
return new o("legacy_graphics", Q);
|
|
3091
3092
|
}
|
|
3092
3093
|
export {
|
|
3093
3094
|
oI as Backend,
|
|
3094
|
-
|
|
3095
|
+
YA as BlobStorageBackend,
|
|
3095
3096
|
j as FileContentsFlags,
|
|
3096
|
-
|
|
3097
|
+
O as OpfsStorageBackend,
|
|
3097
3098
|
CI as PrinterDriverName,
|
|
3098
3099
|
CA as RdpFile,
|
|
3099
|
-
|
|
3100
|
+
c as RdpFileTransferProvider,
|
|
3100
3101
|
QI as WebCodecsH264Decoder,
|
|
3101
|
-
|
|
3102
|
-
|
|
3102
|
+
YI as audioInput,
|
|
3103
|
+
UI as audioInputData,
|
|
3103
3104
|
yI as audioPlayback,
|
|
3104
3105
|
gI as detectStorageBackend,
|
|
3105
|
-
|
|
3106
|
+
FI as displayControl,
|
|
3106
3107
|
KI as enableCredssp,
|
|
3107
3108
|
hI as enableServerPointer,
|
|
3108
3109
|
fA as fileContentsRequestCallback,
|
|
3109
3110
|
nA as fileContentsResponseCallback,
|
|
3110
3111
|
TA as filesAvailableCallback,
|
|
3111
|
-
|
|
3112
|
+
RI as graphicsPipeline,
|
|
3112
3113
|
MI as h264Decoder,
|
|
3113
3114
|
BI as h264Supported,
|
|
3114
3115
|
GI as init,
|
|
3115
3116
|
_A as initiateFileCopy,
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3117
|
+
JI as kdcProxyUrl,
|
|
3118
|
+
aI as legacyGraphics,
|
|
3119
|
+
PA as lockCallback,
|
|
3120
|
+
rA as locksExpiredCallback,
|
|
3121
|
+
cI as outboundMessageSizeLimit,
|
|
3121
3122
|
NI as preConnectionBlob,
|
|
3122
3123
|
EI as printJobStreamCallbacks,
|
|
3123
3124
|
iI as printerDeviceId,
|
|
3124
3125
|
wI as printerDriverName,
|
|
3125
3126
|
DI as printerName,
|
|
3126
|
-
|
|
3127
|
-
|
|
3127
|
+
uA as requestFileContents,
|
|
3128
|
+
eA as submitFileContents,
|
|
3128
3129
|
zA as unlockCallback,
|
|
3129
3130
|
kI as vmConnect
|
|
3130
3131
|
};
|
|
Binary file
|