insite-ws-transfers 2.0.16 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/IncomingTransfer.d.ts +11 -11
- package/dist/IncomingTransfer.d.ts.map +1 -1
- package/dist/IncomingTransport.d.ts +8 -7
- package/dist/IncomingTransport.d.ts.map +1 -1
- package/dist/OutgoingTransfer.d.ts +11 -11
- package/dist/OutgoingTransfer.d.ts.map +1 -1
- package/dist/OutgoingTransport.d.ts +5 -5
- package/dist/OutgoingTransport.d.ts.map +1 -1
- package/dist/browser/incoming.d.ts +5 -5
- package/dist/browser/incoming.d.ts.map +1 -1
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +3 -3
- package/dist/browser/outgoing.d.ts +5 -5
- package/dist/browser/outgoing.d.ts.map +1 -1
- package/dist/browser/types.d.ts +16 -1
- package/dist/browser/types.d.ts.map +1 -1
- package/dist/node/incoming.d.ts +5 -5
- package/dist/node/incoming.d.ts.map +1 -1
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +3 -3
- package/dist/node/outgoing.d.ts +6 -6
- package/dist/node/outgoing.d.ts.map +1 -1
- package/dist/node/types.d.ts +16 -1
- package/dist/node/types.d.ts.map +1 -1
- package/dist/types.d.ts +52 -41
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type { IncomingChunk, IncomingData, IncomingTransferListener, IncomingTransferProps, IncomingTransferTypes,
|
|
4
|
-
export declare class IncomingTransfer<WSORWSSC extends
|
|
1
|
+
import type { WS } from "insite-ws/client";
|
|
2
|
+
import type { WSServerClient } from "insite-ws/server";
|
|
3
|
+
import type { IncomingChunk, IncomingData, IncomingTransferHandles, IncomingTransferListener, IncomingTransferProps, IncomingTransferTypes, TransferTypes } from "./types";
|
|
4
|
+
export declare class IncomingTransfer<WSORWSSC extends WS | WSServerClient> {
|
|
5
5
|
#private;
|
|
6
|
-
constructor(ws: Exclude<WSORWSSC,
|
|
7
|
-
ws:
|
|
6
|
+
constructor(ws: Exclude<WSORWSSC, WS> | WS, kind: string, id: string, { type, collect, encoding, size, metadata }: IncomingTransferProps<TransferTypes>, handles: IncomingTransferHandles, listeners: Set<IncomingTransferListener<WSORWSSC, any>>);
|
|
7
|
+
ws: WS | Exclude<WSORWSSC, WS>;
|
|
8
8
|
kind: string;
|
|
9
9
|
id: string;
|
|
10
10
|
type: TransferTypes;
|
|
@@ -18,13 +18,13 @@ export declare class IncomingTransfer<WSORWSSC extends InSiteWebSocket | InSiteW
|
|
|
18
18
|
isAbortedByReceiver: boolean;
|
|
19
19
|
isTransfered: boolean;
|
|
20
20
|
confirmResponse?: string;
|
|
21
|
-
beginAt:
|
|
22
|
-
duration:
|
|
21
|
+
beginAt: number | null;
|
|
22
|
+
duration: number | null;
|
|
23
23
|
transferedSize: number;
|
|
24
24
|
processedSize: number;
|
|
25
|
-
bytesPerMs:
|
|
25
|
+
bytesPerMs: number | null;
|
|
26
26
|
progress: number;
|
|
27
|
-
endAt:
|
|
27
|
+
endAt: number | null;
|
|
28
28
|
error: Error | null;
|
|
29
29
|
[key: number | string | symbol]: unknown;
|
|
30
30
|
whenSetUp(): Promise<void>;
|
|
@@ -55,6 +55,6 @@ export declare class IncomingTransfer<WSORWSSC extends InSiteWebSocket | InSiteW
|
|
|
55
55
|
endAt: number | null;
|
|
56
56
|
error: Error | null;
|
|
57
57
|
};
|
|
58
|
-
static types: IncomingTransferTypes<IncomingTransfer<
|
|
58
|
+
static types: IncomingTransferTypes<IncomingTransfer<WS | WSServerClient>, TransferTypes>;
|
|
59
59
|
}
|
|
60
60
|
//# sourceMappingURL=IncomingTransfer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncomingTransfer.d.ts","sourceRoot":"","sources":["../src/IncomingTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"IncomingTransfer.d.ts","sourceRoot":"","sources":["../src/IncomingTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EAExB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,MAAM,SAAS,CAAC;AAMjB,qBAAa,gBAAgB,CAAC,QAAQ,SAAS,EAAE,GAAG,cAAc;;gBAEhE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,EACC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,EAAE,qBAAqB,CAAC,aAAa,CAAC,EACvC,OAAO,EAAE,uBAAuB,EAChC,SAAS,EAAE,GAAG,CAAC,wBAAwB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAoBxD,EAAE,6BAAC;IAEH,IAAI,SAAC;IACL,EAAE,SAAC;IACH,IAAI,gBAAC;IACL,OAAO,UAAC;IACR,QAAQ,+BAAC;IACT,IAAI,SAAC;IACL,QAAQ,0BAAC;IAOT,IAAI,CAAC,EAAE,YAAY,CAAC;IAEpB,SAAS,UAAS;IAClB,iBAAiB,UAAS;IAC1B,mBAAmB,UAAS;IAC5B,YAAY,UAAS;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAI9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,cAAc,SAAK;IACnB,aAAa,SAAK;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,QAAQ,SAAK;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAQ;IAE3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAkBzC,SAAS;IAIH,OAAO;IAwBb,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,SAAe;IA4CvD,UAAU;IAqCV,KAAK,CAAC,QAAQ,UAAQ;IAStB,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,UAAO;IAoB/C,SAAS;;;;;;;;;;;;;;;;;;;;;;IA0BT,MAAM,CAAC,KAAK,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,aAAa,CAAC,CAuDvF;CAEF"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { WS } from "insite-ws/client";
|
|
2
|
+
import type { WSServer, WSServerClient } from "insite-ws/server";
|
|
3
3
|
import { IncomingTransfer } from "./IncomingTransfer";
|
|
4
|
-
import type { IncomingTransferListener, IncomingTransportOptions, TransferTypes } from "./types";
|
|
5
|
-
export declare class IncomingTransport<WSORWSSC extends
|
|
4
|
+
import type { IncomingTransferListener, IncomingTransferListenerOptions, IncomingTransportOptions, TransferTypes } from "./types";
|
|
5
|
+
export declare class IncomingTransport<WSORWSSC extends WS | WSServerClient, T extends IncomingTransfer<WSORWSSC>, Types extends TransferTypes = TransferTypes> {
|
|
6
6
|
#private;
|
|
7
|
-
constructor(ws:
|
|
7
|
+
constructor(ws: WS | WSServer<Exclude<WSORWSSC, WS>>, options?: IncomingTransportOptions);
|
|
8
8
|
sizeLimit: number;
|
|
9
|
-
addTransferListener(kind: string, listener: IncomingTransferListener<WSORWSSC, T
|
|
10
|
-
on: (kind: string, listener: IncomingTransferListener<WSORWSSC, T
|
|
9
|
+
addTransferListener(kind: string, listener: IncomingTransferListener<WSORWSSC, T>, options?: IncomingTransferListenerOptions): this;
|
|
10
|
+
on: (kind: string, listener: IncomingTransferListener<WSORWSSC, T>, options?: IncomingTransferListenerOptions) => this;
|
|
11
|
+
once(kind: string, listener: IncomingTransferListener<WSORWSSC, T>, options?: Omit<IncomingTransferListenerOptions, "once">): this;
|
|
11
12
|
removeTransferListener(kind: string, listener?: IncomingTransferListener<WSORWSSC, T>): this;
|
|
12
13
|
off: (kind: string, listener?: IncomingTransferListener<WSORWSSC, T>) => this;
|
|
13
14
|
private handleRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncomingTransport.d.ts","sourceRoot":"","sources":["../src/IncomingTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"IncomingTransport.d.ts","sourceRoot":"","sources":["../src/IncomingTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAGX,wBAAwB,EACxB,+BAA+B,EAE/B,wBAAwB,EAExB,aAAa,EACb,MAAM,SAAS,CAAC;AAGjB,qBAAa,iBAAiB,CAC7B,QAAQ,SAAS,EAAE,GAAG,cAAc,EACpC,CAAC,SAAS,gBAAgB,CAAC,QAAQ,CAAC,EACpC,KAAK,SAAS,aAAa,GAAG,aAAa;;gBAE/B,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,GAAE,wBAA6B;IA2B5F,SAAS,SAAC;IAIV,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,+BAA+B;IAU5H,EAAE,SAVwB,MAAM,YAAY,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,+BAA+B,UAU9F;IAE9B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC;IAI3H,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAgBrF,GAAG,SAhB0B,MAAM,aAAa,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,UAgBnD;IAYlC,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;IAMnB,MAAM,CAAC,QAAQ,0BAAoB;CAEnC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { WS } from "insite-ws/client";
|
|
2
|
+
import type { WSServerClient } from "insite-ws/server";
|
|
3
3
|
import { StringStreamer } from "./StringStreamer";
|
|
4
4
|
import type { FileStreamer } from "./browser/FileStreamer";
|
|
5
|
-
import type { OutgoingChunk, OutgoingTransferProps, OutgoingTransferTypes,
|
|
6
|
-
export declare class OutgoingTransfer<WSORWSSC extends
|
|
5
|
+
import type { OutgoingChunk, OutgoingTransferHandles, OutgoingTransferProps, OutgoingTransferTypes, TransferTypes } from "./types";
|
|
6
|
+
export declare class OutgoingTransfer<WSORWSSC extends WS | WSServerClient> {
|
|
7
7
|
#private;
|
|
8
|
-
constructor(ws: Exclude<WSORWSSC,
|
|
9
|
-
ws:
|
|
8
|
+
constructor(ws: Exclude<WSORWSSC, WS> | WS, kind: string, { data, type, incomingType, collect, metadata, size, chunkSize, encoding, incomingEncoding, onBegin, onSenderProgress, onProgress, onEnd, onError }: OutgoingTransferProps<WSORWSSC, any, any>, handles: OutgoingTransferHandles);
|
|
9
|
+
ws: WS | Exclude<WSORWSSC, WS>;
|
|
10
10
|
kind: string;
|
|
11
11
|
data?: import("./types").OutgoingData | undefined;
|
|
12
12
|
type?: string;
|
|
@@ -19,13 +19,13 @@ export declare class OutgoingTransfer<WSORWSSC extends InSiteWebSocket | InSiteW
|
|
|
19
19
|
isAborted: boolean;
|
|
20
20
|
isTransfered: boolean;
|
|
21
21
|
confirmResponse?: string;
|
|
22
|
-
beginAt:
|
|
23
|
-
duration:
|
|
22
|
+
beginAt: number | null;
|
|
23
|
+
duration: number | null;
|
|
24
24
|
transferedSize: number;
|
|
25
|
-
bytesPerMs:
|
|
25
|
+
bytesPerMs: number | null;
|
|
26
26
|
senderProgress: number;
|
|
27
27
|
progress: number;
|
|
28
|
-
endAt:
|
|
28
|
+
endAt: number | null;
|
|
29
29
|
error: Error | null;
|
|
30
30
|
stringStreamer?: StringStreamer;
|
|
31
31
|
fileStreamer?: FileStreamer;
|
|
@@ -58,7 +58,7 @@ export declare class OutgoingTransfer<WSORWSSC extends InSiteWebSocket | InSiteW
|
|
|
58
58
|
endAt: number | null;
|
|
59
59
|
error: Error | null;
|
|
60
60
|
};
|
|
61
|
-
static types: OutgoingTransferTypes<OutgoingTransfer<
|
|
61
|
+
static types: OutgoingTransferTypes<OutgoingTransfer<WS | WSServerClient>, TransferTypes>;
|
|
62
62
|
static chunkSize: number;
|
|
63
63
|
}
|
|
64
64
|
//# sourceMappingURL=OutgoingTransfer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutgoingTransfer.d.ts","sourceRoot":"","sources":["../src/OutgoingTransfer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OutgoingTransfer.d.ts","sourceRoot":"","sources":["../src/OutgoingTransfer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EACX,aAAa,EACb,uBAAuB,EAEvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,MAAM,SAAS,CAAC;AASjB,qBAAa,gBAAgB,CAAC,QAAQ,SAAS,EAAE,GAAG,cAAc;;gBAEhE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,EAC9B,IAAI,EAAE,MAAM,EACZ,EACC,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,OAAO,EACP,EAAE,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,OAAO,EAAE,uBAAuB;IA+BjC,EAAE,6BAAC;IAEH,IAAI,SAAC;IACL,IAAI,CAAC,6CAAC;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,UAAC;IACR,QAAQ,sCAAC;IACT,IAAI,gBAAC;IACL,QAAQ,2CAAC;IACT,SAAS,SAAC;IAYV,EAAE,SAAS;IAEX,SAAS,UAAS;IAClB,YAAY,UAAS;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAI9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,cAAc,SAAK;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,cAAc,SAAK;IACnB,QAAQ,EAAE,MAAM,CAAK;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IA2BzC,SAAS;IAIH,aAAa,CAAC,eAAe,EAAE,MAAM;IAa3C,WAAW,UAAW,aAAa,UAQjC;IAkCF,IAAI,aAAoD;IAExD,cAAc,CAAC,QAAQ,EAAE,MAAM;IAOzB,eAAe;IAwBrB,KAAK,CAAC,YAAY,EAAE,MAAM;IAU1B,KAAK;IASL,SAAS;;;;;;;;;;;;;;;;;;;;IAwBT,MAAM,CAAC,KAAK,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,aAAa,CAAC,CA0DvF;IAEF,MAAM,CAAC,SAAS,SAAoB;CAEpC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { WS } from "insite-ws/client";
|
|
2
|
+
import type { WSServer, WSServerClient } from "insite-ws/server";
|
|
3
3
|
import { OutgoingTransfer } from "./OutgoingTransfer";
|
|
4
4
|
import type { OutgoingTransferProps, TransferTypes } from "./types";
|
|
5
|
-
export declare class OutgoingTransport<WSORWSSC extends
|
|
5
|
+
export declare class OutgoingTransport<WSORWSSC extends WS | WSServerClient, T extends OutgoingTransfer<WSORWSSC>, Types extends TransferTypes = TransferTypes> {
|
|
6
6
|
#private;
|
|
7
|
-
constructor(ws:
|
|
8
|
-
transfer(ws: Exclude<WSORWSSC,
|
|
7
|
+
constructor(ws: WS | WSServer<Exclude<WSORWSSC, WS>>);
|
|
8
|
+
transfer(ws: Exclude<WSORWSSC, WS> | WS, kind: string, props: OutgoingTransferProps<WSORWSSC, T, Types>): OutgoingTransfer<WSORWSSC>;
|
|
9
9
|
private handleConfirm;
|
|
10
10
|
private handleProgress;
|
|
11
11
|
private handleCompleted;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutgoingTransport.d.ts","sourceRoot":"","sources":["../src/OutgoingTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"OutgoingTransport.d.ts","sourceRoot":"","sources":["../src/OutgoingTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAEX,qBAAqB,EAErB,aAAa,EACb,MAAM,SAAS,CAAC;AAGjB,qBAAa,iBAAiB,CAC7B,QAAQ,SAAS,EAAE,GAAG,cAAc,EACpC,CAAC,SAAS,gBAAgB,CAAC,QAAQ,CAAC,EACpC,KAAK,SAAS,aAAa,GAAG,aAAa;;gBAE/B,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAgCpD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC;IAWvG,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;IAMnB,MAAM,CAAC,QAAQ,0BAAoB;CAEnC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { WS } from "insite-ws/client";
|
|
2
|
+
import type { WSServerClient } from "insite-ws/server";
|
|
3
3
|
import { IncomingTransfer } from "../IncomingTransfer";
|
|
4
4
|
import { IncomingTransport } from "../IncomingTransport";
|
|
5
5
|
import type { IncomingTransferTypes } from "../types";
|
|
6
6
|
import type { BrowserTransferTypes } from "./types";
|
|
7
7
|
export type { IncomingTransportOptions } from "../types";
|
|
8
|
-
declare class BrowserIncomingTransfer<WSORWSSC extends
|
|
9
|
-
static types: IncomingTransferTypes<BrowserIncomingTransfer<
|
|
8
|
+
declare class BrowserIncomingTransfer<WSORWSSC extends WS | WSServerClient = WS> extends IncomingTransfer<WSORWSSC> {
|
|
9
|
+
static types: IncomingTransferTypes<BrowserIncomingTransfer<WS>, BrowserTransferTypes>;
|
|
10
10
|
}
|
|
11
|
-
declare class BrowserIncomingTransport<WSORWSSC extends
|
|
11
|
+
declare class BrowserIncomingTransport<WSORWSSC extends WS = WS> extends IncomingTransport<WSORWSSC, BrowserIncomingTransfer<WSORWSSC>, BrowserTransferTypes> {
|
|
12
12
|
static Transfer: typeof BrowserIncomingTransfer;
|
|
13
13
|
}
|
|
14
14
|
export { BrowserIncomingTransfer as IncomingTransfer, BrowserIncomingTransport as IncomingTransport };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incoming.d.ts","sourceRoot":"","sources":["../../src/browser/incoming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"incoming.d.ts","sourceRoot":"","sources":["../../src/browser/incoming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpD,YAAY,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAGzD,cAAM,uBAAuB,CAC5B,QAAQ,SAAS,EAAE,GAAG,cAAc,GAAG,EAAE,CACxC,SAAQ,gBAAgB,CAAC,QAAQ,CAAC;IAEnC,MAAM,CAAC,KAAK,EAAE,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAyBpF;CAEF;AAED,cAAM,wBAAwB,CAC7B,QAAQ,SAAS,EAAE,GAAG,EAAE,CACvB,SAAQ,iBAAiB,CAAC,QAAQ,EAAE,uBAAuB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAE7F,MAAM,CAAC,QAAQ,iCAA2B;CAE1C;AAGD,OAAO,EACN,uBAAuB,IAAI,gBAAgB,EAC3C,wBAAwB,IAAI,iBAAiB,EAC7C,CAAC"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/browser/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Me=Object.defineProperty;var Ie=n=>{throw TypeError(n)};var Ee=(n,e,t)=>e in n?Me(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var r=(n,e,t)=>Ee(n,typeof e!="symbol"?e+"":e,t),me=(n,e,t)=>e.has(n)||Ie("Cannot "+t);var s=(n,e,t)=>(me(n,e,"read from private field"),t?t.call(n):e.get(n)),a=(n,e,t)=>e.has(n)?Ie("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),h=(n,e,t,i)=>(me(n,e,"write to private field"),i?i.call(n,t):e.set(n,t),t),f=(n,e,t)=>(me(n,e,"access private method"),t);var c={request:"~t-request",confirm:"~t-confirm",chunk:"~t-c",progress:"~t-p",sent:"~t-sent",completed:"~t-completed",abort:"~t-abort",error:"~t-error"},Ce=10*1024*1024*1024,Oe=1024*256,ve=250;var C,F,O,Z,y,q,D,R,H,ee,x,ze,ge,ye,v=class{constructor(e,t,i,{type:o,collect:l,encoding:u,size:m,metadata:p},M,E){a(this,x);r(this,"ws");a(this,C);r(this,"kind");r(this,"id");r(this,"type");r(this,"collect");r(this,"encoding");r(this,"size");r(this,"metadata");a(this,F);a(this,O);a(this,Z);r(this,"data");a(this,y);r(this,"isAborted",!1);r(this,"isAbortedBySender",!1);r(this,"isAbortedByReceiver",!1);r(this,"isTransfered",!1);r(this,"confirmResponse");r(this,"beginAt",null);a(this,q,null);a(this,D,[]);a(this,R,!1);r(this,"duration",null);r(this,"transferedSize",0);r(this,"processedSize",0);r(this,"bytesPerMs",null);r(this,"progress",0);r(this,"endAt",null);r(this,"error",null);a(this,H);a(this,ee,0);this.ws=e,h(this,C,e.isWebSocket?[e]:[e.wss,e]),this.kind=t,this.id=i,this.type=o,this.collect=!!l,this.encoding=u,this.size=m,this.metadata=p,h(this,F,M),h(this,O,E),h(this,Z,f(this,x,ze).call(this))}whenSetUp(){return s(this,Z)}async confirm(){for(let{begin:e}of s(this,O))if(await e?.call(...s(this,C),this)===!1)return this.throw("Transfer was rejected by receiver");return this.beginAt=h(this,q,Date.now()),this.ws.sendMessage(c.confirm,this.id,this.confirmResponse),h(this,H,setInterval(()=>{s(this,ee)!==this.progress&&(h(this,ee,this.progress),this.ws.sendMessage(c.progress,this.id,this.progress))},ve)),null}handleChunk(e,t=e.length){let i=Date.now();this.bytesPerMs=t/(i-s(this,q)),h(this,q,i),this.transferedSize+=t,s(this,D).push([e,t]),s(this,R)||(h(this,R,!0),f(this,x,ge).call(this))}handleSent(){this.isTransfered=!0,this.size||(this.size=this.transferedSize),this.endAt=Date.now(),this.duration=this.endAt-this.beginAt,this.bytesPerMs=this.size/this.duration,s(this,R)||f(this,x,ye).call(this)}abort(e=!1){return this.isAborted=!0,this.isAbortedBySender=e,this.isAbortedByReceiver=!e,this.throw(`Transfer is aborted by ${e?"sender":"receiver"}`,!e)}throw(e,t=!0){s(this,F).delete(this.id),clearInterval(s(this,H)),this.error=new Error(e);for(let{error:i}of s(this,O))i?.call(...s(this,C),this,this.error);t&&this.ws.sendMessage(c.error,this.id,e)}serialize(){return{id:this.id,kind:this.kind,type:this.type,collect:this.collect,encoding:this.encoding,size:this.size,metadata:this.metadata,isAborted:this.isAborted,isAbortedBySender:this.isAbortedBySender,isAbortedByReceiver:this.isAbortedByReceiver,isTransfered:this.isTransfered,confirmResponse:this.confirmResponse,beginAt:this.beginAt,duration:this.duration,transferedSize:this.transferedSize,processedSize:this.processedSize,bytesPerMs:this.bytesPerMs,progress:this.progress,endAt:this.endAt,error:this.error}}};C=new WeakMap,F=new WeakMap,O=new WeakMap,Z=new WeakMap,y=new WeakMap,q=new WeakMap,D=new WeakMap,R=new WeakMap,H=new WeakMap,ee=new WeakMap,x=new WeakSet,ze=async function(){if(h(this,y,this.constructor.types[this.type]),s(this,y))await s(this,y).setup.call(this);else throw new Error(`Unknown type of transfer "${String(this.type)}"`);this.confirm()},ge=async function(){let[e,t]=s(this,D).shift();s(this,y).transformChunk&&(e=await s(this,y).transformChunk.call(this,e)),this.collect&&await s(this,y).collect.call(this,e);for(let{chunk:i,progress:o}of s(this,O))await(i??o)?.call(...s(this,C),this,e);this.processedSize+=t,this.size&&(this.progress=this.processedSize/this.size),s(this,D).length?f(this,x,ge).call(this):(h(this,R,!1),this.isTransfered&&f(this,x,ye).call(this))},ye=async function(){this.progress=1,await s(this,y).done?.call(this);for(let{end:e}of s(this,O))await e?.call(...s(this,C),this);clearInterval(s(this,H)),s(this,F).delete(this.id),this.ws.sendMessage(c.completed,this.id)},r(v,"types",{object:{setup(){this.data=""},collect(e){this.data+=e},done(){this.data=JSON.parse(this.data)}},datauri:{setup(){this.collect&&(this.data="")},collect(e){this.data+=e},done(){this.collect&&(this.data=`data:${this.metadata.type};base64,${this.data}`)}},string:{setup(){this.collect&&(this.data="")},collect(e){this.data+=e}}});var b,k,le,te=class{constructor(e,t={}){r(this,"sizeLimit");a(this,b,new Map);r(this,"on",this.addTransferListener);r(this,"off",this.removeTransferListener);a(this,k,new Map);a(this,le,{delete:e=>s(this,k).delete(e)});let{sizeLimit:i=Ce}=t;this.sizeLimit=i,e.isWebSocketServer?(e.on(`client-message:${c.request}`,(o,...l)=>this.handleRequest(o,...l)),e.on(`client-message:${c.chunk}`,(o,...l)=>this.handleChunk(o,...l)),e.on(`client-message:${c.sent}`,(o,...l)=>this.handleSent(o,...l)),e.on(`client-message:${c.abort}`,(o,...l)=>this.handleAbort(o,...l))):(e.on(`message:${c.request}`,(...o)=>this.handleRequest(e,...o)),e.on(`message:${c.chunk}`,(...o)=>this.handleChunk(e,...o)),e.on(`message:${c.sent}`,(...o)=>this.handleSent(e,...o)),e.on(`message:${c.abort}`,(...o)=>this.handleAbort(e,...o)))}addTransferListener(e,t){return s(this,b).get(e)?.add(t)??s(this,b).set(e,new Set([t])),this}removeTransferListener(e,t){return t?s(this,b).get(e)?.delete(t):s(this,b).delete(e),this}handleRequest(e,t,i,{type:o,size:l,metadata:u,...m}){let{Transfer:p}=this.constructor;s(this,b).has(t)?s(this,k).has(i)?e.sendMessage(c.error,i,"Transfer already exists"):o in p.types?l>this.sizeLimit?e.sendMessage(c.error,i,`Transfer size (${l} bytes) exeeds limit of ${this.sizeLimit} bytes`):s(this,k).set(i,new p(e,t,i,{type:o,size:l,metadata:u,...m},s(this,le),s(this,b).get(t))):e.sendMessage(c.error,i,"Unknown type of transfer"):e.sendMessage(c.error,i,`Unknown kind of file "${t}"`)}handleChunk(e,t,i,o=i.length){s(this,k).get(t)?.handleChunk(i,o)}handleSent(e,t){s(this,k).get(t)?.handleSent()}handleAbort(e,t){s(this,k).get(t)?.abort(!0)}};b=new WeakMap,k=new WeakMap,le=new WeakMap,r(te,"Transfer",v);var fe=class extends v{};r(fe,"types",{file:{setup(){this.collect&&(this.data="")},collect(e){this.data+=e},done(){this.collect&&this.encoding==="utf8"&&(this.data=atob(this.data))}},...v.types});var xe=class extends te{};r(xe,"Transfer",fe);function N(){}function Le(n,e=0,t={}){let{leading:i=!1,trailing:o=!0}=t,{maxWait:l=1/0}=t,u,m,p,M,E,w,d,L,Y=async()=>{let B=Date.now();B>=p?(u=void 0,p=void 0,clearTimeout(m),typeof d=="function"&&await d(),S.resolve(L),S.promise.isResolved=!0,w=i):(clearTimeout(u),u=setTimeout(Y,p-B))},j=Number.isFinite(l)?()=>{d===g&&(d=!1),g(),m=setTimeout(j,l)}:null;async function g(){return L=await n.apply(M,E)}i&&typeof i=="boolean"&&(i=g),w=i,o&&typeof o=="boolean"&&(o=g),d=o;let S=Object.assign(function(...B){return E=B,M=this,p=Date.now()+e,d=o,S.promise.isResolved&&(S.promise=Object.assign(new Promise($e=>{S.resolve=$e,typeof w=="function"&&(w(),w=!1,d===g&&(d=!1)),u||(u=setTimeout(Y,e),j&&(m=setTimeout(j,l)))}),{isResolved:!1})),S.promise},{callback:n,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:N,run:g,clear:async B=>{clearTimeout(u),u=void 0,clearTimeout(m),S.promise.isResolved=!0,S.resolve(B?await g():L)}});return S}Le.noop=Object.assign(()=>{},{callback:N,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:N,run:N,clear:N});function we(n,e,t,i,o=!0){return Array.isArray(n)&&(n=n.length),typeof i!="string"&&(o=i??!0,i=t),(o?`${n}\xA0`:"")+we.raw(n,e,t,i)}we.raw=(n,e,t,i=t)=>{n=Math.abs(n);let o=n%10,l=n%100;return o===1&&l!==11?e:o>=2&&o<=4&&!(l>=12&&l<=15)?t:i};function Re(n="",e=""){return`${n}${Date.now().toString(36)}${Math.round(Math.random()*Number.MAX_SAFE_INTEGER).toString(36)}${e}`}var U,A,se,We,_=class{constructor(e,t={}){a(this,se);r(this,"string");r(this,"size");r(this,"chunkSize");r(this,"listener");a(this,U,0);a(this,A,0);r(this,"isAborted",!1);this.string=e,this.size=this.string.length;let{chunkSize:i=1024*256}=t;this.chunkSize=i}start(e){this.listener=e,f(this,se,We).call(this)}abort(){this.isAborted=!0}};U=new WeakMap,A=new WeakMap,se=new WeakSet,We=async function(){if(!this.isAborted){h(this,A,Math.min(s(this,U)+this.chunkSize,this.size));let e=await new Promise(t=>{t(this.string.slice(s(this,U),s(this,A)))});this.isAborted||(await this.listener(e),s(this,A)<this.size&&(h(this,U,s(this,A)),f(this,se,We).call(this)))}};var W,J,re,ie,Q,ne,oe,ae,z,G,K,X,P,Ae,be,T=class{constructor(e,t,{data:i,type:o,incomingType:l,collect:u,metadata:m,size:p,chunkSize:M,encoding:E,incomingEncoding:w,onBegin:d,onSenderProgress:L,onProgress:Y,onEnd:j,onError:g},S){a(this,P);r(this,"ws");a(this,W);r(this,"kind");r(this,"data");r(this,"type");r(this,"collect");r(this,"metadata");r(this,"size");r(this,"encoding");r(this,"chunkSize");a(this,J);a(this,re);a(this,ie);a(this,Q);a(this,ne);a(this,oe);a(this,ae);r(this,"id",Re());a(this,z);r(this,"isAborted",!1);r(this,"isTransfered",!1);r(this,"confirmResponse");r(this,"beginAt",null);a(this,G,null);a(this,K,[]);a(this,X,!1);r(this,"duration",null);r(this,"transferedSize",0);r(this,"bytesPerMs",null);r(this,"senderProgress",0);r(this,"progress",0);r(this,"endAt",null);r(this,"error",null);r(this,"stringStreamer");r(this,"fileStreamer");r(this,"handleChunk",e=>{s(this,K).push(e),s(this,X)||(h(this,X,!0),f(this,P,be).call(this))});r(this,"sent",()=>this.ws.sendMessage(c.sent,this.id));this.ws=e,h(this,W,e.isWebSocket?[e]:[e.wss,e]),this.kind=t,this.data=i,this.type=o,this.collect=u??!1,this.metadata=m,this.size=p??null,this.encoding=E,this.chunkSize=M??this.constructor.chunkSize,h(this,J,S),d&&h(this,re,d),L&&h(this,ie,L),Y&&h(this,Q,Y),j&&h(this,ne,j),g&&h(this,oe,g),h(this,ae,f(this,P,Ae).call(this,l,w))}whenSetUp(){return s(this,ae)}async handleConfirm(e){this.confirmResponse=e,this.beginAt=h(this,G,Date.now()),await s(this,re)?.call(...s(this,W),this),s(this,z).confirm.call(this)}handleProgress(e){this.progress=e,s(this,Q)?.call(...s(this,W),this)}async handleCompleted(){this.isTransfered=!0,this.size||(this.size=this.transferedSize,this.senderProgress=1),this.endAt=Date.now(),this.duration=this.endAt-this.beginAt,this.bytesPerMs=this.size/this.duration,s(this,J).delete(this.id),this.progress!==1&&(this.progress=1,await s(this,Q)?.call(...s(this,W),this)),s(this,ne)?.call(...s(this,W),this)}throw(e){s(this,J).delete(this.id),this.error=new Error(e),s(this,oe)?.call(...s(this,W),this,this.error)}abort(){return this.isAborted=!0,this.ws.sendMessage(c.abort,this.id),this.throw("Transfer is aborted by sender")}serialize(){return{id:this.id,kind:this.kind,type:this.type,collect:this.collect,encoding:this.encoding,size:this.size,metadata:this.metadata,isAborted:this.isAborted,isTransfered:this.isTransfered,confirmResponse:this.confirmResponse,beginAt:this.beginAt,duration:this.duration,transferedSize:this.transferedSize,bytesPerMs:this.bytesPerMs,senderProgress:this.senderProgress,progress:this.progress,endAt:this.endAt,error:this.error}}};W=new WeakMap,J=new WeakMap,re=new WeakMap,ie=new WeakMap,Q=new WeakMap,ne=new WeakMap,oe=new WeakMap,ae=new WeakMap,z=new WeakMap,G=new WeakMap,K=new WeakMap,X=new WeakMap,P=new WeakSet,Ae=async function(e,t){for(let[i,o,l]of this.constructor.types)if(this.type===i||o(this.data)){this.type=i,h(this,z,l);break}if(this.type)await s(this,z).setup.call(this),delete this.data;else throw new Error("Unknown type of transfer");this.ws.sendMessage(c.request,this.kind,this.id,{type:e??this.type,collect:this.collect,encoding:t??this.encoding,size:this.size,metadata:this.metadata})},be=async function(){let e=s(this,K).shift(),t=e.length;s(this,z).transformChunk&&(e=await s(this,z).transformChunk.call(this,e)),this.ws.sendMessage(c.chunk,this.id,e,t);let i=Date.now();this.bytesPerMs=t/(i-s(this,G)),h(this,G,i),this.transferedSize+=t,this.size&&(this.senderProgress=this.transferedSize/this.size),await s(this,ie)?.call(...s(this,W),this),s(this,K).length?f(this,P,be).call(this):(h(this,X,!1),this.senderProgress===1&&this.sent())},r(T,"types",[["object",e=>typeof e=="object",{setup(){this.stringStreamer=new _(JSON.stringify(this.data),{chunkSize:this.chunkSize}),this.collect=!0,this.size=this.stringStreamer.size,this.encoding="utf8"},confirm(){this.stringStreamer.start(this.handleChunk)}}],["datauri",e=>typeof e=="string"&&/^data:[\w-.]+\/[\w-.+,]+(?:;base64)?,/.test(e),{setup(){let[e,t]=this.data.split(/^data:|;base64,|,/).slice(1);this.stringStreamer=new _(t,{chunkSize:this.chunkSize}),this.size=this.stringStreamer.size,this.encoding="base64",this.metadata={...this.metadata,type:e}},confirm(){this.stringStreamer.start(this.handleChunk)}}],["string",e=>typeof e=="string",{setup(){this.stringStreamer=new _(this.data,{chunkSize:this.chunkSize}),this.size=this.stringStreamer.size,this.encoding||(this.encoding="utf8")},confirm(){this.stringStreamer.start(this.handleChunk)}}]]),r(T,"chunkSize",Oe);var I,ue,he=class{constructor(e){a(this,I,new Map);a(this,ue,{delete:e=>s(this,I).delete(e)});e.isWebSocketServer?(e.on(`client-message:${c.confirm}`,(t,...i)=>this.handleConfirm(t,...i)),e.on(`client-message:${c.progress}`,(t,...i)=>this.handleProgress(t,...i)),e.on(`client-message:${c.completed}`,(t,...i)=>this.handleCompleted(t,...i)),e.on(`client-message:${c.error}`,(t,...i)=>this.handleError(t,...i))):(e.on(`message:${c.confirm}`,(...t)=>this.handleConfirm(e,...t)),e.on(`message:${c.progress}`,(...t)=>this.handleProgress(e,...t)),e.on(`message:${c.completed}`,(...t)=>this.handleCompleted(e,...t)),e.on(`message:${c.error}`,(...t)=>this.handleError(e,...t)))}transfer(e,t,i){let{Transfer:o}=this.constructor,l=new o(e,t,i,s(this,ue));return s(this,I).set(l.id,l),l}handleConfirm(e,t,i){s(this,I).get(t)?.handleConfirm(i)}handleProgress(e,t,i){s(this,I).get(t)?.handleProgress(i)}handleCompleted(e,t){s(this,I).get(t)?.handleCompleted()}handleError(e,t,i){s(this,I).get(t)?.throw(i)}};I=new WeakMap,ue=new WeakMap,r(he,"Transfer",T);function Pe(n){return new Promise(e=>{let t=new FileReader;t.onload=()=>e(typeof t?.result=="string"?t.result.slice(Math.max(0,t.result.indexOf(",")+1)):""),t.readAsDataURL(new Blob([n]))})}var V,$,ce,ke,de,pe=class{constructor(e,t={}){a(this,ce);r(this,"file");r(this,"size");r(this,"chunkSize");r(this,"fileReader");r(this,"listener");a(this,V,0);a(this,$,0);r(this,"isAborted",!1);a(this,de,async()=>{if(!this.isAborted){let e=this.fileReader.result;e.length=e.byteLength,await this.listener(e),s(this,$)<this.size&&(h(this,V,s(this,$)),f(this,ce,ke).call(this))}});this.file=e,this.size=this.file.size;let{chunkSize:i=1024*256}=t;this.chunkSize=i,this.fileReader=new FileReader,this.fileReader.onload=s(this,de)}start(e){this.listener=e,f(this,ce,ke).call(this)}abort(){this.isAborted=!0}};V=new WeakMap,$=new WeakMap,ce=new WeakSet,ke=function(){this.isAborted||(h(this,$,Math.min(s(this,V)+this.chunkSize,this.size)),this.fileReader.readAsArrayBuffer(this.file.slice(s(this,V),s(this,$))))},de=new WeakMap;var Se=class extends T{};r(Se,"types",[["file",e=>typeof e=="object"&&e instanceof File,{setup(){let e=this.data;this.fileStreamer=new pe(e,{chunkSize:this.chunkSize});let t={name:e.name,type:e.type,size:e.size,modifiedAt:e.lastModified};this.metadata?Object.assign(this.metadata,t):this.metadata=t,this.size=this.fileStreamer.size,this.encoding="buffer"},confirm(){this.fileStreamer.start(this.handleChunk)},transformChunk(e){return Pe(e)}}],...T.types]);var Te=class extends he{};r(Te,"Transfer",Se);export{fe as IncomingTransfer,xe as IncomingTransport,Se as OutgoingTransfer,Te as OutgoingTransport};
|
|
1
|
+
var Me=Object.defineProperty;var Ce=n=>{throw TypeError(n)};var Le=(n,e,t)=>e in n?Me(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var r=(n,e,t)=>Le(n,typeof e!="symbol"?e+"":e,t),Se=(n,e,t)=>e.has(n)||Ce("Cannot "+t);var s=(n,e,t)=>(Se(n,e,"read from private field"),t?t.call(n):e.get(n)),a=(n,e,t)=>e.has(n)?Ce("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),f=(n,e,t,i)=>(Se(n,e,"write to private field"),i?i.call(n,t):e.set(n,t),t),u=(n,e,t)=>(Se(n,e,"access private method"),t);var l={request:"~t-request",confirm:"~t-confirm",chunk:"~t-c",progress:"~t-p",sent:"~t-sent",completed:"~t-completed",abort:"~t-abort",error:"~t-error"},ve=10*1024*1024*1024,ke=1024*256,Re=250;var v,k,R,Z,y,q,D,A,H,ee,W,ze,ge,ye,z=class{constructor(e,t,i,{type:o,collect:h,encoding:c,size:S,metadata:p},L,E){a(this,W);r(this,"ws");a(this,v);r(this,"kind");r(this,"id");r(this,"type");r(this,"collect");r(this,"encoding");r(this,"size");r(this,"metadata");a(this,k);a(this,R);a(this,Z);r(this,"data");a(this,y);r(this,"isAborted",!1);r(this,"isAbortedBySender",!1);r(this,"isAbortedByReceiver",!1);r(this,"isTransfered",!1);r(this,"confirmResponse");r(this,"beginAt",null);a(this,q,null);a(this,D,[]);a(this,A,!1);r(this,"duration",null);r(this,"transferedSize",0);r(this,"processedSize",0);r(this,"bytesPerMs",null);r(this,"progress",0);r(this,"endAt",null);r(this,"error",null);a(this,H);a(this,ee,0);this.ws=e,f(this,v,e.isWebSocket?[e]:[e.wss,e]),this.kind=t,this.id=i,this.type=o,this.collect=!!h,this.encoding=c,this.size=S,this.metadata=p,f(this,k,L),f(this,R,E),f(this,Z,u(this,W,ze).call(this))}whenSetUp(){return s(this,Z)}async confirm(){for(let{begin:e}of s(this,R))if(await e?.call(...s(this,v),this)===!1)return this.throw("Transfer was rejected by receiver");return this.beginAt=f(this,q,Date.now()),this.ws.sendMessage(l.confirm,this.id,this.confirmResponse),f(this,H,setInterval(()=>{s(this,ee)!==this.progress&&(f(this,ee,this.progress),this.ws.sendMessage(l.progress,this.id,this.progress))},Re)),null}handleChunk(e,t=e.length){let i=Date.now();this.bytesPerMs=t/(i-s(this,q)),f(this,q,i),this.transferedSize+=t,s(this,D).push([e,t]),s(this,A)||(f(this,A,!0),u(this,W,ge).call(this))}handleSent(){this.isTransfered=!0,this.size||(this.size=this.transferedSize),this.endAt=Date.now(),this.duration=this.endAt-this.beginAt,this.bytesPerMs=this.size/this.duration,s(this,A)||u(this,W,ye).call(this)}abort(e=!1){return this.isAborted=!0,this.isAbortedBySender=e,this.isAbortedByReceiver=!e,this.throw(`Transfer is aborted by ${e?"sender":"receiver"}`,!e)}throw(e,t=!0){s(this,k).delete(this.id),clearInterval(s(this,H)),this.error=new Error(e);for(let i of s(this,R))i.once&&s(this,k).removeListener(this.kind,i),i.error?.call(...s(this,v),this,this.error);t&&this.ws.sendMessage(l.error,this.id,e)}serialize(){return{id:this.id,kind:this.kind,type:this.type,collect:this.collect,encoding:this.encoding,size:this.size,metadata:this.metadata,isAborted:this.isAborted,isAbortedBySender:this.isAbortedBySender,isAbortedByReceiver:this.isAbortedByReceiver,isTransfered:this.isTransfered,confirmResponse:this.confirmResponse,beginAt:this.beginAt,duration:this.duration,transferedSize:this.transferedSize,processedSize:this.processedSize,bytesPerMs:this.bytesPerMs,progress:this.progress,endAt:this.endAt,error:this.error}}};v=new WeakMap,k=new WeakMap,R=new WeakMap,Z=new WeakMap,y=new WeakMap,q=new WeakMap,D=new WeakMap,A=new WeakMap,H=new WeakMap,ee=new WeakMap,W=new WeakSet,ze=async function(){if(f(this,y,this.constructor.types[this.type]),s(this,y))await s(this,y).setup.call(this);else throw new Error(`Unknown type of transfer "${String(this.type)}"`);this.confirm()},ge=async function(){let[e,t]=s(this,D).shift();s(this,y).transformChunk&&(e=await s(this,y).transformChunk.call(this,e)),this.collect&&await s(this,y).collect.call(this,e);for(let{chunk:i,progress:o}of s(this,R))await(i??o)?.call(...s(this,v),this,e);this.processedSize+=t,this.size&&(this.progress=this.processedSize/this.size),s(this,D).length?u(this,W,ge).call(this):(f(this,A,!1),this.isTransfered&&u(this,W,ye).call(this))},ye=async function(){this.progress=1,await s(this,y).done?.call(this);for(let e of s(this,R))e.once&&s(this,k).removeListener(this.kind,e),await e.end?.call(...s(this,v),this);clearInterval(s(this,H)),s(this,k).delete(this.id),this.ws.sendMessage(l.completed,this.id)},r(z,"types",{object:{setup(){this.data=""},collect(e){this.data+=e},done(){this.data=JSON.parse(this.data)}},datauri:{setup(){this.collect&&(this.data="")},collect(e){this.data+=e},done(){this.collect&&(this.data=`data:${this.metadata.type};base64,${this.data}`)}},string:{setup(){this.collect&&(this.data="")},collect(e){this.data+=e}}});var x,O,le,te=class{constructor(e,t={}){r(this,"sizeLimit");a(this,x,new Map);r(this,"on",this.addTransferListener);r(this,"off",this.removeTransferListener);a(this,O,new Map);a(this,le,{delete:e=>s(this,O).delete(e),removeListener:(e,t)=>this.removeTransferListener(e,t)});let{sizeLimit:i=ve}=t;this.sizeLimit=i,e.isWebSocketServer?(e.on(`client-message:${l.request}`,(o,...h)=>this.handleRequest(o,...h)),e.on(`client-message:${l.chunk}`,(o,...h)=>this.handleChunk(o,...h)),e.on(`client-message:${l.sent}`,(o,...h)=>this.handleSent(o,...h)),e.on(`client-message:${l.abort}`,(o,...h)=>this.handleAbort(o,...h))):(e.on(`message:${l.request}`,(...o)=>this.handleRequest(e,...o)),e.on(`message:${l.chunk}`,(...o)=>this.handleChunk(e,...o)),e.on(`message:${l.sent}`,(...o)=>this.handleSent(e,...o)),e.on(`message:${l.abort}`,(...o)=>this.handleAbort(e,...o))),Object.assign(e,{onTransfer:(o,h,c)=>this.on(o,h,c),onceTransfer:(o,h,c)=>this.once(o,h,c)})}addTransferListener(e,t,i){return i?.once&&(t.once=!0),s(this,x).get(e)?.add(t)??s(this,x).set(e,new Set([t])),this}once(e,t,i){return this.addTransferListener(e,t,{...i,once:!0})}removeTransferListener(e,t){if(t){let i=s(this,x).get(e);i&&(i.delete(t),i.size||s(this,x).delete(e))}else s(this,x).delete(e);return this}handleRequest(e,t,i,{type:o,size:h,metadata:c,...S}){let{Transfer:p}=this.constructor;s(this,x).has(t)?s(this,O).has(i)?e.sendMessage(l.error,i,"Transfer already exists"):o in p.types?h>this.sizeLimit?e.sendMessage(l.error,i,`Transfer size (${h} bytes) exeeds limit of ${this.sizeLimit} bytes`):s(this,O).set(i,new p(e,t,i,{type:o,size:h,metadata:c,...S},s(this,le),s(this,x).get(t))):e.sendMessage(l.error,i,"Unknown type of transfer"):e.sendMessage(l.error,i,`Unknown kind of file "${t}"`)}handleChunk(e,t,i,o=i.length){s(this,O).get(t)?.handleChunk(i,o)}handleSent(e,t){s(this,O).get(t)?.handleSent()}handleAbort(e,t){s(this,O).get(t)?.abort(!0)}};x=new WeakMap,O=new WeakMap,le=new WeakMap,r(te,"Transfer",z);var ce=class extends z{};r(ce,"types",{file:{setup(){this.collect&&(this.data="")},collect(e){this.data+=e},done(){this.collect&&this.encoding==="utf8"&&(this.data=atob(this.data))}},...z.types});var We=class extends te{};r(We,"Transfer",ce);function N(){}function Ee(n,e=0,t={}){let{leading:i=!1,trailing:o=!0}=t,{maxWait:h=1/0}=t,c,S,p,L,E,P,d,B,Y=async()=>{let F=Date.now();F>=p?(c=void 0,p=void 0,clearTimeout(S),typeof d=="function"&&await d(),m.resolve(B),m.promise.isResolved=!0,P=i):(clearTimeout(c),c=setTimeout(Y,p-F))},j=Number.isFinite(h)?()=>{d===g&&(d=!1),g(),S=setTimeout(j,h)}:null;async function g(){return B=await n.apply(L,E)}i&&typeof i=="boolean"&&(i=g),P=i,o&&typeof o=="boolean"&&(o=g),d=o;let m=Object.assign(function(...F){return E=F,L=this,p=Date.now()+e,d=o,m.promise.isResolved&&(m.promise=Object.assign(new Promise($e=>{m.resolve=$e,typeof P=="function"&&(P(),P=!1,d===g&&(d=!1)),c||(c=setTimeout(Y,e),j&&(S=setTimeout(j,h)))}),{isResolved:!1})),m.promise},{callback:n,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:N,run:g,clear:async F=>{clearTimeout(c),c=void 0,clearTimeout(S),m.promise.isResolved=!0,m.resolve(F?await g():B)}});return m}Ee.noop=Object.assign(()=>{},{callback:N,promise:Object.assign(Promise.resolve(),{isResolved:!0}),resolve:N,run:N,clear:N});function we(n,e,t,i,o=!0){return Array.isArray(n)&&(n=n.length),typeof i!="string"&&(o=i??!0,i=t),(o?`${n}\xA0`:"")+we.raw(n,e,t,i)}we.raw=(n,e,t,i=t)=>{n=Math.abs(n);let o=n%10,h=n%100;return o===1&&h!==11?e:o>=2&&o<=4&&!(h>=12&&h<=15)?t:i};function Pe(n="",e=""){return`${n}${Date.now().toString(36)}${Math.round(Math.random()*Number.MAX_SAFE_INTEGER).toString(36)}${e}`}var U,I,se,xe,_=class{constructor(e,t={}){a(this,se);r(this,"string");r(this,"size");r(this,"chunkSize");r(this,"listener");a(this,U,0);a(this,I,0);r(this,"isAborted",!1);this.string=e,this.size=this.string.length;let{chunkSize:i=1024*256}=t;this.chunkSize=i}start(e){this.listener=e,u(this,se,xe).call(this)}abort(){this.isAborted=!0}};U=new WeakMap,I=new WeakMap,se=new WeakSet,xe=async function(){if(!this.isAborted){f(this,I,Math.min(s(this,U)+this.chunkSize,this.size));let e=await new Promise(t=>{t(this.string.slice(s(this,U),s(this,I)))});this.isAborted||(await this.listener(e),s(this,I)<this.size&&(f(this,U,s(this,I)),u(this,se,xe).call(this)))}};var T,J,re,ie,K,ne,oe,ae,w,Q,V,G,$,Ae,Te,b=class{constructor(e,t,{data:i,type:o,incomingType:h,collect:c,metadata:S,size:p,chunkSize:L,encoding:E,incomingEncoding:P,onBegin:d,onSenderProgress:B,onProgress:Y,onEnd:j,onError:g},m){a(this,$);r(this,"ws");a(this,T);r(this,"kind");r(this,"data");r(this,"type");r(this,"collect");r(this,"metadata");r(this,"size");r(this,"encoding");r(this,"chunkSize");a(this,J);a(this,re);a(this,ie);a(this,K);a(this,ne);a(this,oe);a(this,ae);r(this,"id",Pe());a(this,w);r(this,"isAborted",!1);r(this,"isTransfered",!1);r(this,"confirmResponse");r(this,"beginAt",null);a(this,Q,null);a(this,V,[]);a(this,G,!1);r(this,"duration",null);r(this,"transferedSize",0);r(this,"bytesPerMs",null);r(this,"senderProgress",0);r(this,"progress",0);r(this,"endAt",null);r(this,"error",null);r(this,"stringStreamer");r(this,"fileStreamer");r(this,"handleChunk",e=>{s(this,V).push(e),s(this,G)||(f(this,G,!0),u(this,$,Te).call(this))});r(this,"sent",()=>this.ws.sendMessage(l.sent,this.id));this.ws=e,f(this,T,e.isWebSocket?[e]:[e.wss,e]),this.kind=t,this.data=i,this.type=o,this.collect=c??!1,this.metadata=S,this.size=p??null,this.encoding=E,this.chunkSize=L??this.constructor.chunkSize,f(this,J,m),d&&f(this,re,d),B&&f(this,ie,B),Y&&f(this,K,Y),j&&f(this,ne,j),g&&f(this,oe,g),f(this,ae,u(this,$,Ae).call(this,h,P))}whenSetUp(){return s(this,ae)}async handleConfirm(e){this.confirmResponse=e,this.beginAt=f(this,Q,Date.now()),await s(this,re)?.call(...s(this,T),this),s(this,w).confirm.call(this)}handleProgress(e){this.progress=e,s(this,K)?.call(...s(this,T),this)}async handleCompleted(){this.isTransfered=!0,this.size||(this.size=this.transferedSize,this.senderProgress=1),this.endAt=Date.now(),this.duration=this.endAt-this.beginAt,this.bytesPerMs=this.size/this.duration,s(this,J).delete(this.id),this.progress!==1&&(this.progress=1,await s(this,K)?.call(...s(this,T),this)),s(this,ne)?.call(...s(this,T),this)}throw(e){s(this,J).delete(this.id),this.error=new Error(e),s(this,oe)?.call(...s(this,T),this,this.error)}abort(){return this.isAborted=!0,this.ws.sendMessage(l.abort,this.id),this.throw("Transfer is aborted by sender")}serialize(){return{id:this.id,kind:this.kind,type:this.type,collect:this.collect,encoding:this.encoding,size:this.size,metadata:this.metadata,isAborted:this.isAborted,isTransfered:this.isTransfered,confirmResponse:this.confirmResponse,beginAt:this.beginAt,duration:this.duration,transferedSize:this.transferedSize,bytesPerMs:this.bytesPerMs,senderProgress:this.senderProgress,progress:this.progress,endAt:this.endAt,error:this.error}}};T=new WeakMap,J=new WeakMap,re=new WeakMap,ie=new WeakMap,K=new WeakMap,ne=new WeakMap,oe=new WeakMap,ae=new WeakMap,w=new WeakMap,Q=new WeakMap,V=new WeakMap,G=new WeakMap,$=new WeakSet,Ae=async function(e,t){for(let[i,o,h]of this.constructor.types)if(this.type===i||o(this.data)){this.type=i,f(this,w,h);break}if(this.type)await s(this,w).setup.call(this),delete this.data;else throw new Error("Unknown type of transfer");this.ws.sendMessage(l.request,this.kind,this.id,{type:e??this.type,collect:this.collect,encoding:t??this.encoding,size:this.size,metadata:this.metadata})},Te=async function(){let e=s(this,V).shift(),t=e.length;s(this,w).transformChunk&&(e=await s(this,w).transformChunk.call(this,e)),this.ws.sendMessage(l.chunk,this.id,e,t);let i=Date.now();this.bytesPerMs=t/(i-s(this,Q)),f(this,Q,i),this.transferedSize+=t,this.size&&(this.senderProgress=this.transferedSize/this.size),await s(this,ie)?.call(...s(this,T),this),s(this,V).length?u(this,$,Te).call(this):(f(this,G,!1),this.senderProgress===1&&this.sent())},r(b,"types",[["object",e=>typeof e=="object",{setup(){this.stringStreamer=new _(JSON.stringify(this.data),{chunkSize:this.chunkSize}),this.collect=!0,this.size=this.stringStreamer.size,this.encoding="utf8"},confirm(){this.stringStreamer.start(this.handleChunk)}}],["datauri",e=>typeof e=="string"&&/^data:[\w-.]+\/[\w-.+,]+(?:;base64)?,/.test(e),{setup(){let[e,t]=this.data.split(/^data:|;base64,|,/).slice(1);this.stringStreamer=new _(t,{chunkSize:this.chunkSize}),this.size=this.stringStreamer.size,this.encoding="base64",this.metadata={...this.metadata,type:e}},confirm(){this.stringStreamer.start(this.handleChunk)}}],["string",e=>typeof e=="string",{setup(){this.stringStreamer=new _(this.data,{chunkSize:this.chunkSize}),this.size=this.stringStreamer.size,this.encoding||(this.encoding="utf8")},confirm(){this.stringStreamer.start(this.handleChunk)}}]]),r(b,"chunkSize",ke);var C,ue,he=class{constructor(e){a(this,C,new Map);a(this,ue,{delete:e=>s(this,C).delete(e)});e.isWebSocketServer?(e.on(`client-message:${l.confirm}`,(t,...i)=>this.handleConfirm(t,...i)),e.on(`client-message:${l.progress}`,(t,...i)=>this.handleProgress(t,...i)),e.on(`client-message:${l.completed}`,(t,...i)=>this.handleCompleted(t,...i)),e.on(`client-message:${l.error}`,(t,...i)=>this.handleError(t,...i)),Object.assign(e,{transfer:(t,i,o)=>this.transfer(t,i,o)})):(e.on(`message:${l.confirm}`,(...t)=>this.handleConfirm(e,...t)),e.on(`message:${l.progress}`,(...t)=>this.handleProgress(e,...t)),e.on(`message:${l.completed}`,(...t)=>this.handleCompleted(e,...t)),e.on(`message:${l.error}`,(...t)=>this.handleError(e,...t)),Object.assign(e,{transfer:(t,i)=>this.transfer(e,t,i)}))}transfer(e,t,i){let{Transfer:o}=this.constructor,h=new o(e,t,i,s(this,ue));return s(this,C).set(h.id,h),h}handleConfirm(e,t,i){s(this,C).get(t)?.handleConfirm(i)}handleProgress(e,t,i){s(this,C).get(t)?.handleProgress(i)}handleCompleted(e,t){s(this,C).get(t)?.handleCompleted()}handleError(e,t,i){s(this,C).get(t)?.throw(i)}};C=new WeakMap,ue=new WeakMap,r(he,"Transfer",b);function Ie(n){return new Promise(e=>{let t=new FileReader;t.onload=()=>e(typeof t?.result=="string"?t.result.slice(Math.max(0,t.result.indexOf(",")+1)):""),t.readAsDataURL(new Blob([n]))})}var X,M,fe,Oe,de,pe=class{constructor(e,t={}){a(this,fe);r(this,"file");r(this,"size");r(this,"chunkSize");r(this,"fileReader");r(this,"listener");a(this,X,0);a(this,M,0);r(this,"isAborted",!1);a(this,de,async()=>{if(!this.isAborted){let e=this.fileReader.result;e.length=e.byteLength,await this.listener(e),s(this,M)<this.size&&(f(this,X,s(this,M)),u(this,fe,Oe).call(this))}});this.file=e,this.size=this.file.size;let{chunkSize:i=1024*256}=t;this.chunkSize=i,this.fileReader=new FileReader,this.fileReader.onload=s(this,de)}start(e){this.listener=e,u(this,fe,Oe).call(this)}abort(){this.isAborted=!0}};X=new WeakMap,M=new WeakMap,fe=new WeakSet,Oe=function(){this.isAborted||(f(this,M,Math.min(s(this,X)+this.chunkSize,this.size)),this.fileReader.readAsArrayBuffer(this.file.slice(s(this,X),s(this,M))))},de=new WeakMap;var me=class extends b{};r(me,"types",[["file",e=>typeof e=="object"&&e instanceof File,{setup(){let e=this.data;this.fileStreamer=new pe(e,{chunkSize:this.chunkSize});let t={name:e.name,type:e.type,size:e.size,modifiedAt:e.lastModified};this.metadata?Object.assign(this.metadata,t):this.metadata=t,this.size=this.fileStreamer.size,this.encoding="buffer"},confirm(){this.fileStreamer.start(this.handleChunk)},transformChunk(e){return Ie(e)}}],...b.types]);var be=class extends he{};r(be,"Transfer",me);export{ce as IncomingTransfer,We as IncomingTransport,me as OutgoingTransfer,be as OutgoingTransport};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|