@api.global/typedsocket 6.3.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.typedsocket.d.ts +21 -52
- package/dist_ts/classes.typedsocket.js +264 -358
- package/dist_ts/classes.typedsockettagpolicymanager.d.ts +1 -0
- package/dist_ts/classes.typedsockettagpolicymanager.js +26 -2
- package/dist_ts/classes.virtualstreammanager.d.ts +268 -0
- package/dist_ts/classes.virtualstreammanager.js +2085 -0
- package/dist_ts/constants.virtualstream.d.ts +58 -0
- package/dist_ts/constants.virtualstream.js +58 -0
- package/dist_ts/helpers.virtualstreamcodec.d.ts +14 -0
- package/dist_ts/helpers.virtualstreamcodec.js +349 -0
- package/dist_ts/index.d.ts +5 -9
- package/dist_ts/index.js +3 -6
- package/dist_ts/interfaces.diagnostics.d.ts +6 -18
- package/dist_ts/interfaces.virtualstream.d.ts +131 -0
- package/dist_ts/interfaces.virtualstream.js +2 -0
- package/package.json +5 -5
- package/readme.hints.md +11 -59
- package/readme.md +295 -840
- package/dist_ts/classes.nativebyteerror.d.ts +0 -26
- package/dist_ts/classes.nativebyteerror.js +0 -51
- package/dist_ts/classes.nativebytemanager.d.ts +0 -505
- package/dist_ts/classes.nativebytemanager.js +0 -3691
- package/dist_ts/constants.nativebytes.d.ts +0 -59
- package/dist_ts/constants.nativebytes.js +0 -58
- package/dist_ts/constants.nativemessages.d.ts +0 -45
- package/dist_ts/constants.nativemessages.js +0 -44
- package/dist_ts/helpers.nativebytecodec.d.ts +0 -8
- package/dist_ts/helpers.nativebytecodec.js +0 -328
- package/dist_ts/helpers.nativemessagecodec.d.ts +0 -6
- package/dist_ts/helpers.nativemessagecodec.js +0 -267
- package/dist_ts/interfaces.nativebytes.d.ts +0 -187
- package/dist_ts/interfaces.nativebytes.js +0 -2
- package/dist_ts/interfaces.nativemessages.d.ts +0 -144
- package/dist_ts/interfaces.nativemessages.js +0 -2
|
@@ -183,8 +183,10 @@ export class TypedSocketTagPolicyManager {
|
|
|
183
183
|
}
|
|
184
184
|
stop(peersArg) {
|
|
185
185
|
this.stopping = true;
|
|
186
|
-
for (const peer of peersArg)
|
|
186
|
+
for (const peer of peersArg) {
|
|
187
187
|
this.handlePeerClose(peer);
|
|
188
|
+
this.detachPeerState(peer);
|
|
189
|
+
}
|
|
188
190
|
this.attachedPeersProvider = undefined;
|
|
189
191
|
}
|
|
190
192
|
getRetainedMutationWork() {
|
|
@@ -470,6 +472,28 @@ export class TypedSocketTagPolicyManager {
|
|
|
470
472
|
stateArg.admissions.delete(nameArg);
|
|
471
473
|
stateArg.admittedBytes -= existing.retainedBytes;
|
|
472
474
|
}
|
|
475
|
+
detachPeerState(peerArg) {
|
|
476
|
+
const state = this.peerStates.get(peerArg);
|
|
477
|
+
if (!state)
|
|
478
|
+
return;
|
|
479
|
+
const ownedNames = new Set([
|
|
480
|
+
...state.admissions.keys(),
|
|
481
|
+
...state.serverRetainedBytesByName.keys(),
|
|
482
|
+
]);
|
|
483
|
+
for (const name of ownedNames) {
|
|
484
|
+
peerArg.tags.delete(name);
|
|
485
|
+
peerArg.data.delete(`${TAG_PREFIX}${name}`);
|
|
486
|
+
}
|
|
487
|
+
state.admissions.clear();
|
|
488
|
+
state.admittedBytes = 0;
|
|
489
|
+
state.serverRetainedBytesByName.clear();
|
|
490
|
+
state.serverRetainedBytes = 0;
|
|
491
|
+
state.protectedServerNames.clear();
|
|
492
|
+
state.successfulRevisionByName.clear();
|
|
493
|
+
state.mutationTails.clear();
|
|
494
|
+
this.peerStates.delete(peerArg);
|
|
495
|
+
this.connectionAuthorityIds.delete(peerArg);
|
|
496
|
+
}
|
|
473
497
|
createFingerprint(admissionArg) {
|
|
474
498
|
return admissionArg ? `${admissionArg.owner}:${admissionArg.encoded}` : 'absent';
|
|
475
499
|
}
|
|
@@ -546,4 +570,4 @@ export class TypedSocketTagPolicyManager {
|
|
|
546
570
|
stateArg.serverRetainedBytes = nextTotal;
|
|
547
571
|
}
|
|
548
572
|
}
|
|
549
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50eXBlZHNvY2tldHRhZ3BvbGljeW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnR5cGVkc29ja2V0dGFncG9saWN5bWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxFQUFFLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sa0RBQWtELEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSwrQ0FBK0MsR0FBRyxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sK0NBQStDLEdBQUcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGlEQUFpRCxHQUFHLEdBQUcsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRyxLQUFLLENBQUM7QUFDbEUsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsRUFBRSxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGtEQUFrRCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFNUUsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUM7QUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUt0Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN4RCxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lB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
|
|
573
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50eXBlZHNvY2tldHRhZ3BvbGljeW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnR5cGVkc29ja2V0dGFncG9saWN5bWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxFQUFFLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sa0RBQWtELEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSwrQ0FBK0MsR0FBRyxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sK0NBQStDLEdBQUcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGlEQUFpRCxHQUFHLEdBQUcsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRyxLQUFLLENBQUM7QUFDbEUsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsRUFBRSxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGtEQUFrRCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFNUUsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUM7QUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUt0Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN4RCxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lB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
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import type { ITypedSocketVirtualStreamDescriptor, IVirtualStreamCreateRegistrationOptions, IVirtualStreamRuntime, IVirtualStreamServerCreateRegistrationOptions, IVirtualStreamStats, TVirtualStreamConnectionBinding, TVirtualStreamDirection, TVirtualStreamRevalidate } from './interfaces.virtualstream.js';
|
|
3
|
+
import type { TVirtualStreamDiagnosticEvent } from './interfaces.diagnostics.js';
|
|
4
|
+
type TVirtualStreamTransport = plugins.typedrequestInterfaces.IVirtualStreamTransport;
|
|
5
|
+
type TVirtualStreamEndpoint = plugins.typedrequestInterfaces.TVirtualStreamTransportEndpoint<TVirtualStreamDirection>;
|
|
6
|
+
type TVirtualStreamReceipt = plugins.typedrequestInterfaces.IVirtualStreamReceipt;
|
|
7
|
+
type TSha256Hasher = ReturnType<typeof plugins.smarthash.createSha256Hasher>;
|
|
8
|
+
declare const createAuthorizedServerRegistrationSymbol: unique symbol;
|
|
9
|
+
interface IDeferred<T> {
|
|
10
|
+
readonly promise: Promise<T>;
|
|
11
|
+
readonly settled: boolean;
|
|
12
|
+
resolve(valueArg: T): void;
|
|
13
|
+
reject(reasonArg: unknown): void;
|
|
14
|
+
}
|
|
15
|
+
interface IChunkAdmission {
|
|
16
|
+
readonly sequence: number;
|
|
17
|
+
readonly payload: Uint8Array<ArrayBuffer>;
|
|
18
|
+
accountingOwned: boolean;
|
|
19
|
+
}
|
|
20
|
+
interface ICompletedChunk {
|
|
21
|
+
readonly sequence: number;
|
|
22
|
+
readonly payload: Uint8Array<ArrayBuffer>;
|
|
23
|
+
accountingOwned: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface IChunkReassembly {
|
|
26
|
+
readonly sequence: number;
|
|
27
|
+
readonly payload: Uint8Array<ArrayBuffer>;
|
|
28
|
+
nextOffset: number;
|
|
29
|
+
accountingOwned: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface ITextArrivalStamp {
|
|
32
|
+
readonly sequence: number;
|
|
33
|
+
readonly byteLength: number;
|
|
34
|
+
readonly readyAtArrival: boolean;
|
|
35
|
+
readonly method?: string;
|
|
36
|
+
readonly correlationId?: string;
|
|
37
|
+
readonly phase?: 'request' | 'response';
|
|
38
|
+
readonly handshake: boolean;
|
|
39
|
+
}
|
|
40
|
+
interface IHandshakeAuthority {
|
|
41
|
+
readonly correlationId: string;
|
|
42
|
+
readonly sequence: number;
|
|
43
|
+
}
|
|
44
|
+
interface IOutboundFrame {
|
|
45
|
+
readonly connection: IConnectionState;
|
|
46
|
+
readonly frame: {
|
|
47
|
+
readonly type: 'binary';
|
|
48
|
+
readonly data: Uint8Array<ArrayBuffer>;
|
|
49
|
+
};
|
|
50
|
+
readonly streamId: string;
|
|
51
|
+
readonly settlement: IDeferred<void>;
|
|
52
|
+
accountingOwned: boolean;
|
|
53
|
+
timer?: unknown;
|
|
54
|
+
}
|
|
55
|
+
interface ITombstone {
|
|
56
|
+
readonly streamId: string;
|
|
57
|
+
readonly expiresAt: number;
|
|
58
|
+
readonly retainedBytes: number;
|
|
59
|
+
}
|
|
60
|
+
type TEndpointStatus = 'registered' | 'staged' | 'opening' | 'open' | 'fin-received' | 'accepting' | 'closing' | 'closed';
|
|
61
|
+
interface IEndpointState {
|
|
62
|
+
readonly connection: IConnectionState;
|
|
63
|
+
readonly descriptor: ITypedSocketVirtualStreamDescriptor;
|
|
64
|
+
readonly creator: boolean;
|
|
65
|
+
readonly direction: TVirtualStreamDirection;
|
|
66
|
+
readonly revalidate?: TVirtualStreamRevalidate;
|
|
67
|
+
readonly openedDeferred: IDeferred<void>;
|
|
68
|
+
readonly completionDeferred: IDeferred<TVirtualStreamReceipt>;
|
|
69
|
+
readonly closedDeferred: IDeferred<void>;
|
|
70
|
+
readonly revalidationControllers: Set<AbortController>;
|
|
71
|
+
readonly admissions: Set<IChunkAdmission>;
|
|
72
|
+
endpoint: VirtualStreamSender | VirtualStreamReceiver;
|
|
73
|
+
status: TEndpointStatus;
|
|
74
|
+
activationPromise?: Promise<void>;
|
|
75
|
+
terminalPromise?: Promise<unknown>;
|
|
76
|
+
timer?: unknown;
|
|
77
|
+
hasher?: TSha256Hasher;
|
|
78
|
+
operationTail: Promise<void>;
|
|
79
|
+
terminalRequested: boolean;
|
|
80
|
+
admittedChunkCount: number;
|
|
81
|
+
admittedByteLength: number;
|
|
82
|
+
processedChunkCount: number;
|
|
83
|
+
processedByteLength: number;
|
|
84
|
+
pendingAdmissions: number;
|
|
85
|
+
pendingAdmissionBytes: number;
|
|
86
|
+
awaitingChunkAck?: {
|
|
87
|
+
readonly sequence: number;
|
|
88
|
+
readonly deferred: IDeferred<void>;
|
|
89
|
+
};
|
|
90
|
+
receiveMode?: 'direct' | 'readable';
|
|
91
|
+
receiveActive: boolean;
|
|
92
|
+
completedChunks: ICompletedChunk[];
|
|
93
|
+
deliveringChunk?: ICompletedChunk;
|
|
94
|
+
reassembly?: IChunkReassembly;
|
|
95
|
+
receiveWaiters: Set<IDeferred<void>>;
|
|
96
|
+
finReceived: boolean;
|
|
97
|
+
closeError?: Error;
|
|
98
|
+
retainedMetadataBytes: number;
|
|
99
|
+
metadataAccountingOwned: boolean;
|
|
100
|
+
}
|
|
101
|
+
interface IConnectionState {
|
|
102
|
+
readonly binding: TVirtualStreamConnectionBinding;
|
|
103
|
+
readonly transport: VirtualStreamConnectionTransport;
|
|
104
|
+
readonly registrations: Map<string, IEndpointState>;
|
|
105
|
+
readonly streams: Map<string, IEndpointState>;
|
|
106
|
+
readonly tombstones: Map<string, ITombstone>;
|
|
107
|
+
readonly rawQueue: Uint8Array<ArrayBuffer>[];
|
|
108
|
+
readonly controlQueue: IOutboundFrame[];
|
|
109
|
+
readonly dataQueue: IOutboundFrame[];
|
|
110
|
+
readonly revalidationControllers: Set<AbortController>;
|
|
111
|
+
readonly arrivalStamps: ITextArrivalStamp[];
|
|
112
|
+
serverInflight?: IOutboundFrame;
|
|
113
|
+
closed: boolean;
|
|
114
|
+
handshakePending: boolean;
|
|
115
|
+
handshakeReady: boolean;
|
|
116
|
+
processingRaw: boolean;
|
|
117
|
+
rawQueueBytes: number;
|
|
118
|
+
processingRawBytes: number;
|
|
119
|
+
arrivalStampBytes: number;
|
|
120
|
+
nextArrivalSequence: number;
|
|
121
|
+
queuedChunks: number;
|
|
122
|
+
queuedBytes: number;
|
|
123
|
+
retainedRevalidations: number;
|
|
124
|
+
clientTurnScheduled: boolean;
|
|
125
|
+
handshakeTimer?: unknown;
|
|
126
|
+
authorizedHandshake?: IHandshakeAuthority;
|
|
127
|
+
pendingHandshake?: IHandshakeAuthority;
|
|
128
|
+
}
|
|
129
|
+
export interface IVirtualStreamManagerOptions {
|
|
130
|
+
readonly side: 'client' | 'server';
|
|
131
|
+
readonly runtime?: IVirtualStreamRuntime;
|
|
132
|
+
readonly onDiagnostic?: (eventArg: TVirtualStreamDiagnosticEvent) => void;
|
|
133
|
+
}
|
|
134
|
+
export declare class TypedSocketVirtualStreamError extends Error {
|
|
135
|
+
constructor(messageArg: string, optionsArg?: ErrorOptions);
|
|
136
|
+
}
|
|
137
|
+
declare abstract class VirtualStreamEndpointBase {
|
|
138
|
+
protected readonly manager: VirtualStreamManager;
|
|
139
|
+
protected readonly state: IEndpointState;
|
|
140
|
+
readonly protocol: "virtual-stream-v1";
|
|
141
|
+
constructor(manager: VirtualStreamManager, state: IEndpointState);
|
|
142
|
+
get streamId(): string;
|
|
143
|
+
get contentType(): string | undefined;
|
|
144
|
+
get integrity(): plugins.typedrequestInterfaces.IVirtualStreamIntegrity | undefined;
|
|
145
|
+
get opened(): Promise<void>;
|
|
146
|
+
get completion(): Promise<TVirtualStreamReceipt>;
|
|
147
|
+
get closed(): Promise<void>;
|
|
148
|
+
abort(reasonArg?: unknown): Promise<void>;
|
|
149
|
+
}
|
|
150
|
+
export declare class VirtualStreamSender extends VirtualStreamEndpointBase implements plugins.typedrequestInterfaces.IVirtualStreamSender {
|
|
151
|
+
private writableInternal?;
|
|
152
|
+
readonly direction: "send";
|
|
153
|
+
get writable(): WritableStream<Uint8Array>;
|
|
154
|
+
send(chunkArg: Uint8Array): Promise<void>;
|
|
155
|
+
close(): Promise<TVirtualStreamReceipt>;
|
|
156
|
+
}
|
|
157
|
+
export declare class VirtualStreamReceiver extends VirtualStreamEndpointBase implements plugins.typedrequestInterfaces.IVirtualStreamReceiver {
|
|
158
|
+
private readableInternal?;
|
|
159
|
+
readonly direction: "receive";
|
|
160
|
+
get readable(): ReadableStream<Uint8Array>;
|
|
161
|
+
receive(): Promise<Uint8Array | undefined>;
|
|
162
|
+
accept(): Promise<TVirtualStreamReceipt>;
|
|
163
|
+
reject(reasonArg?: unknown): Promise<void>;
|
|
164
|
+
}
|
|
165
|
+
declare class VirtualStreamConnectionTransport implements TVirtualStreamTransport {
|
|
166
|
+
private readonly manager;
|
|
167
|
+
private readonly connection;
|
|
168
|
+
constructor(manager: VirtualStreamManager, connection: IConnectionState);
|
|
169
|
+
openVirtualStream<TCreatorDirection extends TVirtualStreamDirection>(descriptorArg: plugins.typedrequestInterfaces.IVirtualStreamDescriptor<TCreatorDirection>, optionsArg: plugins.typedrequestInterfaces.IVirtualStreamOpenOptions): Promise<plugins.typedrequestInterfaces.TVirtualStreamTransportEndpoint<plugins.typedrequestInterfaces.TOppositeVirtualStreamDirection<TCreatorDirection>>>;
|
|
170
|
+
}
|
|
171
|
+
export declare class VirtualStreamManager {
|
|
172
|
+
readonly webSocketTransportOwner: plugins.IWebSocketTransportOwner;
|
|
173
|
+
private readonly side;
|
|
174
|
+
private readonly runtime;
|
|
175
|
+
private readonly onDiagnostic?;
|
|
176
|
+
private readonly serverConnections;
|
|
177
|
+
private readonly serverSettlementConnections;
|
|
178
|
+
private currentClientConnection?;
|
|
179
|
+
private serverAttached;
|
|
180
|
+
private retainedRevalidations;
|
|
181
|
+
private serverRetainedBytes;
|
|
182
|
+
constructor(optionsArg: IVirtualStreamManagerOptions);
|
|
183
|
+
attachServer(): void;
|
|
184
|
+
detachServer(): void;
|
|
185
|
+
bindClientConnection(webSocketArg: WebSocket, generationArg: number): void;
|
|
186
|
+
setClientHandshakeReady(webSocketArg: WebSocket, generationArg: number): void;
|
|
187
|
+
unbindClientConnection(webSocketArg: WebSocket, generationArg: number, reasonArg?: unknown): void;
|
|
188
|
+
enqueueClientRawFrame(webSocketArg: WebSocket, generationArg: number, dataArg: ArrayBuffer | ArrayBufferView): void;
|
|
189
|
+
prepareServerHandshake(peerArg: plugins.IWebSocketPeer, packageMajorArg: unknown): void;
|
|
190
|
+
isServerPeerReady(peerArg: plugins.IWebSocketPeer): boolean;
|
|
191
|
+
authorizeServerIncomingEnvelope(peerArg: plugins.IWebSocketPeer, envelopeArg: Readonly<plugins.typedrequestInterfaces.ITypedRequest>): boolean;
|
|
192
|
+
getClientTransport(): TVirtualStreamTransport | undefined;
|
|
193
|
+
getServerTransport(peerArg: plugins.IWebSocketPeer): TVirtualStreamTransport | undefined;
|
|
194
|
+
createRegistration<TDirection extends TVirtualStreamDirection>(optionsArg: IVirtualStreamCreateRegistrationOptions<TDirection>): plugins.typedrequestInterfaces.IVirtualStreamTransportRegistration<TDirection>;
|
|
195
|
+
[createAuthorizedServerRegistrationSymbol]<TDirection extends TVirtualStreamDirection>(peerArg: plugins.IWebSocketPeer, optionsArg: IVirtualStreamServerCreateRegistrationOptions<TDirection>): plugins.typedrequestInterfaces.IVirtualStreamTransportRegistration<TDirection>;
|
|
196
|
+
private createRegistrationForConnection;
|
|
197
|
+
getStats(targetArg?: {
|
|
198
|
+
readonly peer: plugins.IWebSocketPeer;
|
|
199
|
+
} | plugins.IWebSocketPeer): IVirtualStreamStats;
|
|
200
|
+
stageDescriptor<TCreatorDirection extends TVirtualStreamDirection>(connectionArg: IConnectionState, descriptorArg: plugins.typedrequestInterfaces.IVirtualStreamDescriptor<TCreatorDirection>, optionsArg: plugins.typedrequestInterfaces.IVirtualStreamOpenOptions): Promise<TVirtualStreamEndpoint>;
|
|
201
|
+
ensureOpened(stateArg: IEndpointState): Promise<void>;
|
|
202
|
+
private activateStagedEndpoint;
|
|
203
|
+
send(stateArg: IEndpointState, chunkArg: Uint8Array): Promise<void>;
|
|
204
|
+
private admitChunk;
|
|
205
|
+
private releaseAdmission;
|
|
206
|
+
private sendAdmission;
|
|
207
|
+
closeSender(stateArg: IEndpointState): Promise<TVirtualStreamReceipt>;
|
|
208
|
+
receive(stateArg: IEndpointState, modeArg: 'direct' | 'readable'): Promise<Uint8Array | undefined>;
|
|
209
|
+
acceptReceiver(stateArg: IEndpointState): Promise<TVirtualStreamReceipt>;
|
|
210
|
+
rejectReceiver(stateArg: IEndpointState, reasonArg?: unknown): Promise<void>;
|
|
211
|
+
abortEndpoint(stateArg: IEndpointState, reasonArg?: unknown): Promise<void>;
|
|
212
|
+
private createConnection;
|
|
213
|
+
private createEndpointState;
|
|
214
|
+
private bindServerPeer;
|
|
215
|
+
private unbindServerPeer;
|
|
216
|
+
private settleServerHandshake;
|
|
217
|
+
private stampServerTextFrame;
|
|
218
|
+
private enqueueServerRawFrame;
|
|
219
|
+
private enqueueRawFrame;
|
|
220
|
+
private processRawQueue;
|
|
221
|
+
private handleFrame;
|
|
222
|
+
private handleOpen;
|
|
223
|
+
private handleOpenAck;
|
|
224
|
+
private handleChunk;
|
|
225
|
+
private handleChunkAck;
|
|
226
|
+
private handleFin;
|
|
227
|
+
private handleAccept;
|
|
228
|
+
private handleReset;
|
|
229
|
+
private revalidate;
|
|
230
|
+
private revalidationResetCode;
|
|
231
|
+
private reserveServerRetainedBytes;
|
|
232
|
+
private releaseServerRetainedBytes;
|
|
233
|
+
private releaseEndpointMetadataAccounting;
|
|
234
|
+
private releaseCompletedChunkAccounting;
|
|
235
|
+
private releaseOutboundAccounting;
|
|
236
|
+
private reserveStreamSlot;
|
|
237
|
+
private resolveConnection;
|
|
238
|
+
private resolveConnectionForInspection;
|
|
239
|
+
private requireReadyConnection;
|
|
240
|
+
private assertEndpointOwned;
|
|
241
|
+
private assertEndpointOpen;
|
|
242
|
+
private validateDescriptor;
|
|
243
|
+
private refreshProgressTimer;
|
|
244
|
+
private clearEndpointTimer;
|
|
245
|
+
private clearConnectionTimer;
|
|
246
|
+
private wakeReceivers;
|
|
247
|
+
private failEndpoint;
|
|
248
|
+
private cleanupEndpoint;
|
|
249
|
+
private addTombstone;
|
|
250
|
+
private pruneTombstones;
|
|
251
|
+
private deleteTombstone;
|
|
252
|
+
private sendReset;
|
|
253
|
+
private enqueueFrame;
|
|
254
|
+
private wakeOutbound;
|
|
255
|
+
private runClientOutboundTurn;
|
|
256
|
+
private pullServerBinaryFrame;
|
|
257
|
+
private settleServerOutboundFrame;
|
|
258
|
+
private settleOutbound;
|
|
259
|
+
private rejectInflightOutbound;
|
|
260
|
+
private removeQueuedFramesForStream;
|
|
261
|
+
private failConnection;
|
|
262
|
+
private closeConnection;
|
|
263
|
+
private closeConnectionTransport;
|
|
264
|
+
private emitDiagnostic;
|
|
265
|
+
}
|
|
266
|
+
/** Internal bridge used only by the TypedSocket server authorization facade. */
|
|
267
|
+
export declare function createAuthorizedServerVirtualStreamRegistration<TDirection extends TVirtualStreamDirection>(managerArg: VirtualStreamManager, peerArg: plugins.IWebSocketPeer, optionsArg: IVirtualStreamServerCreateRegistrationOptions<TDirection>): plugins.typedrequestInterfaces.IVirtualStreamTransportRegistration<TDirection>;
|
|
268
|
+
export {};
|