@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.
Files changed (35) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/classes.typedsocket.d.ts +21 -52
  3. package/dist_ts/classes.typedsocket.js +264 -358
  4. package/dist_ts/classes.typedsockettagpolicymanager.d.ts +1 -0
  5. package/dist_ts/classes.typedsockettagpolicymanager.js +26 -2
  6. package/dist_ts/classes.virtualstreammanager.d.ts +268 -0
  7. package/dist_ts/classes.virtualstreammanager.js +2085 -0
  8. package/dist_ts/constants.virtualstream.d.ts +58 -0
  9. package/dist_ts/constants.virtualstream.js +58 -0
  10. package/dist_ts/helpers.virtualstreamcodec.d.ts +14 -0
  11. package/dist_ts/helpers.virtualstreamcodec.js +349 -0
  12. package/dist_ts/index.d.ts +5 -9
  13. package/dist_ts/index.js +3 -6
  14. package/dist_ts/interfaces.diagnostics.d.ts +6 -18
  15. package/dist_ts/interfaces.virtualstream.d.ts +131 -0
  16. package/dist_ts/interfaces.virtualstream.js +2 -0
  17. package/package.json +5 -5
  18. package/readme.hints.md +11 -59
  19. package/readme.md +295 -840
  20. package/dist_ts/classes.nativebyteerror.d.ts +0 -26
  21. package/dist_ts/classes.nativebyteerror.js +0 -51
  22. package/dist_ts/classes.nativebytemanager.d.ts +0 -505
  23. package/dist_ts/classes.nativebytemanager.js +0 -3691
  24. package/dist_ts/constants.nativebytes.d.ts +0 -59
  25. package/dist_ts/constants.nativebytes.js +0 -58
  26. package/dist_ts/constants.nativemessages.d.ts +0 -45
  27. package/dist_ts/constants.nativemessages.js +0 -44
  28. package/dist_ts/helpers.nativebytecodec.d.ts +0 -8
  29. package/dist_ts/helpers.nativebytecodec.js +0 -328
  30. package/dist_ts/helpers.nativemessagecodec.d.ts +0 -6
  31. package/dist_ts/helpers.nativemessagecodec.js +0 -267
  32. package/dist_ts/interfaces.nativebytes.d.ts +0 -187
  33. package/dist_ts/interfaces.nativebytes.js +0 -2
  34. package/dist_ts/interfaces.nativemessages.d.ts +0 -144
  35. package/dist_ts/interfaces.nativemessages.js +0 -2
@@ -100,6 +100,7 @@ export declare class TypedSocketTagPolicyManager {
100
100
  private authorize;
101
101
  private reconcileName;
102
102
  private releaseAdmission;
103
+ private detachPeerState;
103
104
  private createFingerprint;
104
105
  private createSuccess;
105
106
  private getPeerState;
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50eXBlZHNvY2tldHRhZ3BvbGljeW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnR5cGVkc29ja2V0dGFncG9saWN5bWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxFQUFFLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sa0RBQWtELEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSwrQ0FBK0MsR0FBRyxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sK0NBQStDLEdBQUcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGlEQUFpRCxHQUFHLEdBQUcsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRyxLQUFLLENBQUM7QUFDbEUsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsRUFBRSxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGtEQUFrRCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFNUUsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUM7QUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUt0Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN4RCxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLGdDQUFnQztJQUNoQywwQkFBMEI7SUFDMUIsNkJBQTZCO0lBQzdCLGtCQUFrQjtJQUNsQix1QkFBdUI7SUFDdkIsd0JBQXdCO0NBQ2hCLENBQUMsQ0FBQztBQTJEWixNQUFNLE9BQU8sK0JBQWdDLFNBQVEsS0FBSztJQUd4RCxZQUFZLE9BQWtDLEVBQUUsVUFBa0I7UUFDaEUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsaUNBQWlDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBdUNELFNBQVMsSUFBSSxDQUNYLE9BQWtDLEVBQ2xDLFVBQWtCO0lBRWxCLE9BQU87UUFDTCxPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxPQUFPO1FBQ2IsT0FBTyxFQUFFLFVBQVU7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLFFBQWlCLEVBQ2pCLFFBQWdCLEVBQ2hCLGVBQXVCO0lBRXZCLElBQ0UsT0FBTyxRQUFRLEtBQUssUUFBUTtXQUN6QixRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7V0FDckIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEdBQUcsZUFBZSxFQUM1RCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixlQUFlLFFBQVEsMENBQTBDLGVBQWUsZUFBZSxDQUNoRyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxPQUFnQjtJQUN2QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLGtEQUFrRCxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FDVCxvQkFBb0IsRUFDcEIseUNBQXlDLDhCQUE4QixlQUFlLENBQ3ZGLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxtQ0FBbUMsQ0FBQyxVQUFtQjtJQUNyRSxJQUFJLE9BQWUsQ0FBQztJQUNwQixJQUFJLE9BQWdCLENBQUM7SUFDckIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDN0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssSUFBSTtZQUNyRCxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSwrQkFBK0IsQ0FDdkMscUJBQXFCLEVBQ3JCLDBEQUEwRCxDQUMzRCxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQzFELElBQUksVUFBVSxHQUFHLGlDQUFpQyxFQUFFLENBQUM7UUFDbkQsTUFBTSxJQUFJLCtCQUErQixDQUN2Qyx1QkFBdUIsRUFDdkIsNENBQTRDLGlDQUFpQyxvQkFBb0IsQ0FDbEcsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsVUFBbUI7SUFDMUMsT0FBTyxtQ0FBbUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDakUsQ0FBQztBQUVELE1BQU0sT0FBTywyQkFBMkI7SUFZdEMsWUFBWSxTQUF1QztRQVhsQyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7UUFFckQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUF5QyxDQUFDO1FBQ2xFLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUN4RCwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBa0MsQ0FBQztRQUN2RSwrQkFBMEIsR0FBRyxJQUFJLE9BQU8sRUFBNEMsQ0FBQztRQUNyRixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO1FBRTdELHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLE1BQU0sU0FBUyxHQUFHLFNBQVMsRUFBRSxzQkFBc0I7ZUFDOUMsNENBQTRDLENBQUM7UUFDbEQsSUFDRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO2VBQzdCLFNBQVMsR0FBRyxDQUFDO2VBQ2IsU0FBUyxHQUFHLDRDQUE0QyxFQUMzRCxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsNENBQTRDLEdBQUcsQ0FDdkgsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsU0FBUyxDQUFDO1FBRXhDLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMxQyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksVUFBVTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxJQUFJLHlCQUF5QixDQUFDLENBQUM7WUFDdEYsQ0FBQztZQUNELElBQUksT0FBTyxJQUFJLENBQUMsb0JBQW9CLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0NBQWdDLElBQUksQ0FBQyxJQUFJLG9DQUFvQyxDQUM5RSxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUM7WUFDL0UsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakYsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUN2QixPQUEyQyxFQUMzQyxPQUFnQixFQUNoQixVQUFtQjtRQUVuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdELElBQUksU0FBUyxJQUFJLE1BQU07WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUV2QyxJQUFJLGVBQW9DLENBQUM7UUFDekMsSUFBSSxDQUFDO1lBQ0gsZUFBZSxHQUFHLG1DQUFtQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sUUFBUSxZQUFZLCtCQUErQjtnQkFDeEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsNENBQTRDLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEVBQUU7WUFDbEcsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixNQUFNLENBQUMsSUFBSSxFQUNYLFFBQVEsRUFDUixNQUFNLENBQUMsSUFBSSxFQUNYLE1BQU0sQ0FBQyxJQUFJLEVBQ1gsZUFBZSxFQUNmLFlBQVksQ0FDYixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLGVBQWUsQ0FDMUIsT0FBMkMsRUFDM0MsT0FBZ0I7UUFFaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3RCxJQUFJLFNBQVMsSUFBSSxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFFdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEVBQUU7WUFDbEcsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUN2QixNQUFNLENBQUMsSUFBSSxFQUNYLFFBQVEsRUFDUixNQUFNLENBQUMsSUFBSSxFQUNYLE1BQU0sQ0FBQyxJQUFJLEVBQ1gsWUFBWSxDQUNiLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZLENBQ2pCLE9BQStCLEVBQy9CLE9BQWUsRUFDZixVQUFvQjtRQUVwQixJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELE1BQU0sZUFBZSxHQUFHLG1DQUFtQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxFQUFFLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxlQUFlLENBQUMsT0FBK0IsRUFBRSxPQUFlO1FBQ3JFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEVBQThFLENBQUMsQ0FBQztRQUNsRyxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxPQUErQjtRQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDbkIsS0FBSyxNQUFNLFVBQVUsSUFBSSxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUN4RCxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVNLHdCQUF3QixDQUM3QixXQUFrRTtRQUVsRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsV0FBVyxDQUFDO0lBQzNDLENBQUM7SUFFTSxJQUFJLENBQUMsUUFBMkM7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRO1lBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUVNLDhCQUE4QixDQUFDLE9BQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxZQUFZLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxzQkFBc0IsQ0FDNUIsT0FBMkMsRUFDM0MsT0FBZ0I7UUFRaEIsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLElBQUksVUFBVTtZQUFFLE9BQU8sVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLGtEQUFrRCxDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsK0RBQStELENBQUMsQ0FBQztRQUN4RyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLGtEQUFrRCxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLDZDQUE2QyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVPLEtBQUssQ0FBQyxlQUFlLENBQzNCLE9BQStCLEVBQy9CLE9BQWtDLEVBQ2xDLE9BQWUsRUFDZixZQUc2QztRQUU3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxtREFBbUQsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxJQUNFLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUMsc0JBQXNCO2VBQ3hELCtDQUErQztlQUNqRCxTQUFTLENBQUMsWUFBWSxJQUFJLCtDQUErQztlQUN6RSxJQUFJLENBQUMsb0JBQW9CLElBQUksaURBQWlELEVBQ2pGLENBQUM7WUFDRCxPQUFPLElBQUksQ0FDVCxnQ0FBZ0MsRUFDaEMsd0RBQXdELENBQ3pELENBQUM7UUFDSixDQUFDO1FBRUQsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDakMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzRSxNQUFNLFNBQVMsR0FBdUIsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sU0FBUyxDQUFDO1FBQ3pCLENBQUM7Z0JBQVMsQ0FBQztZQUNULEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2pDLElBQUksU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM1QixLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDL0IsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQ25DLEtBQUssU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNyQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDL0IsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7b0JBQ25DLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzlDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVLENBQ3RCLE9BQStCLEVBQy9CLFFBQXVCLEVBQ3ZCLE9BQWtDLEVBQ2xDLE9BQWUsRUFDZixrQkFBdUMsRUFDdkMsWUFBZ0M7UUFFaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEUsSUFBSSxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsRUFBRSxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0UsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsc0RBQXNELENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsSUFBSSxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxzREFBc0QsQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQ3hDLE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQO1lBQ0UsU0FBUyxFQUFFLEtBQUs7WUFDaEIsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsa0JBQWtCLENBQUMsT0FBTztZQUNuQyxRQUFRO1NBQ1QsRUFDRCxZQUFZLENBQ2IsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUFFLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLHlEQUF5RCxDQUFDLENBQUM7UUFDbEcsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxJQUNFLENBQUMsY0FBYztlQUNaLE9BQU8sQ0FBQyxjQUFjLEtBQUssY0FBYztlQUN6QyxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztlQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssV0FBVyxFQUNsRCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUseURBQXlELENBQUMsQ0FBQztRQUM3RixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDO1FBQzdGLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxJQUFJLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUN6RixJQUFJLFNBQVMsR0FBRyxvQ0FBb0MsRUFBRSxDQUFDO1lBQ3JELE9BQU8sSUFBSSxDQUNULDBCQUEwQixFQUMxQiwwQ0FBMEMsb0NBQW9DLHVCQUF1QixDQUN0RyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksU0FBUyxHQUFHLGtEQUFrRCxFQUFFLENBQUM7WUFDbkUsT0FBTyxJQUFJLENBQ1QsNkJBQTZCLEVBQzdCLDhDQUE4QyxrREFBa0Qsd0JBQXdCLENBQ3pILENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxPQUFPO1lBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0RCxNQUFNLFNBQVMsR0FBOEI7WUFDM0MsR0FBRyxrQkFBa0I7WUFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLGFBQWE7U0FDZCxDQUFDO1FBQ0YsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLFFBQVEsQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDO1FBQ3hDLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRO1lBQUUsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsR0FBRyxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWEsQ0FDekIsT0FBK0IsRUFDL0IsUUFBdUIsRUFDdkIsT0FBa0MsRUFDbEMsT0FBZSxFQUNmLFlBQWdDO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsdUNBQXVDLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLElBQUksUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLEVBQUUsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9FLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLGtEQUFrRCxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVFLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxrREFBa0QsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQ3hDLE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQO1lBQ0UsU0FBUyxFQUFFLFFBQVE7WUFDbkIsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87WUFDekIsUUFBUTtTQUNULEVBQ0QsWUFBWSxDQUNiLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU87WUFBRSxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1FBQ2xHLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0QsSUFDRSxDQUFDLGNBQWM7ZUFDWixPQUFPLENBQUMsY0FBYyxLQUFLLGNBQWM7ZUFDekMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7ZUFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLFdBQVcsRUFDbEQsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLHlEQUF5RCxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLEtBQUssQ0FBQyxTQUFTLENBQ3JCLE9BQStCLEVBQy9CLFFBQXVCLEVBQ3ZCLE9BQWtDLEVBQ2xDLFVBS0MsRUFDRCxZQUFnQztRQUVoQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixPQUFPO2dCQUNMLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxJQUFJLENBQ1YsdUJBQXVCLEVBQ3ZCLGtFQUFrRSxDQUNuRTthQUNGLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUN6QyxRQUFRLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDOUIsWUFBWSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUM7WUFDcEQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGNBQWMsQ0FBQztTQUNwRSxDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUTtZQUNsQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDWixLQUFLLEVBQUUsUUFBaUI7Z0JBQ3hCLE9BQU8sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDdEQsQ0FBQztZQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDdEMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQy9CLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixPQUFPLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDNUMsUUFBUTtZQUNSLFNBQVM7WUFDVCxXQUFXLEVBQUUsVUFBVSxDQUFDLE1BQU07U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzVCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUU7YUFDOUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQzNELElBQUksQ0FDSCxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ2IsZUFBZSxHQUFHLElBQUksQ0FBQztZQUN2QixPQUFPLFVBQVUsS0FBSyxJQUFJLENBQUM7UUFDN0IsQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNILGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQ0YsQ0FBQztRQUNKLElBQUksT0FBa0QsQ0FBQztRQUN2RCxJQUFJLGFBQXVDLENBQUM7UUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUMxRCxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDeEIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN0QixVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUMsQ0FBQztZQUMxRSxDQUFDLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBWSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3hELGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBa0IsQ0FBQyxDQUFDLENBQUMsUUFBaUIsQ0FBQztnQkFDakYsYUFBYTtnQkFDYixXQUFXO2FBQ1osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFNLEtBQUssU0FBUztnQkFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxlQUFlO2dCQUFFLFlBQVksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1lBQzNELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN6QixPQUFPO29CQUNMLE9BQU8sRUFBRSxLQUFLO29CQUNkLE1BQU0sRUFBRSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsMENBQTBDLENBQUM7aUJBQ3RGLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU87b0JBQ0wsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSw4Q0FBOEMsQ0FBQztpQkFDdEYsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsMkNBQTJDLENBQUM7YUFDdEYsQ0FBQztRQUNKLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksT0FBTztnQkFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsSUFBSSxhQUFhO2dCQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ2pGLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQ25CLE9BQStCLEVBQy9CLFFBQXVCLEVBQ3ZCLE9BQWU7UUFFZixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxNQUFNLE9BQU8sR0FBRyxHQUFHLFVBQVUsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxPQUFPLEdBQUcsTUFBTSxJQUFJLFVBQVUsQ0FBQztZQUNuQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQztvQkFDSCxPQUFPLEdBQUcsbUNBQW1DLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPOzRCQUMxRSxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUN4QixDQUFDO2dCQUFDLE1BQU0sQ0FBQztvQkFDUCxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNsQixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksT0FBTztnQkFBRSxPQUFPLE9BQU8sQ0FBQztZQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksTUFBTSxJQUFJLFVBQVU7WUFBRSxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUF1QixFQUFFLE9BQWU7UUFDL0QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQ3RCLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQztJQUNuRCxDQUFDO0lBRU8saUJBQWlCLENBQUMsWUFBd0M7UUFDaEUsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNuRixDQUFDO0lBRU8sYUFBYSxDQUNuQixPQUErQixFQUMvQixRQUF1QixFQUN2QixPQUFlLEVBQ2YsaUJBQWlCLEdBQUcsSUFBSTtRQUV4QixNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlFLElBQUksaUJBQWlCO1lBQUUsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7O1lBQzlFLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJO1lBQ2IsWUFBWSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUM7WUFDcEQsV0FBVztTQUNaLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQStCO1FBQ2xELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksS0FBSztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3hCLEtBQUssR0FBRztZQUNOLFVBQVUsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUNyQixvQkFBb0IsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUMvQix3QkFBd0IsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUNuQyxhQUFhLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDeEIsd0JBQXdCLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDbkMseUJBQXlCLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDcEMsd0JBQXdCLEVBQUUsQ0FBQztZQUMzQixzQkFBc0IsRUFBRSxDQUFDO1lBQ3pCLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLG1CQUFtQixFQUFFLENBQUM7U0FDdkIsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxVQUFVLENBQUMsT0FBK0I7UUFDaEQsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRO2VBQ2hCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2VBQzlCLE9BQU8sQ0FBQyxVQUFVLEtBQUssQ0FBQztlQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxPQUErQjtRQUM5RCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLEVBQUUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyw0QkFBNEIsQ0FDbEMsaUJBQW1EO1FBRW5ELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixFQUFFLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxPQUFlO1FBQzlDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sZUFBZSxDQUNyQixRQUF1QixFQUN2QixPQUFlLEVBQ2YsZUFBdUI7UUFFdkIsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0UsSUFDRSxhQUFhLEtBQUssQ0FBQztlQUNoQixRQUFRLENBQUMseUJBQXlCLENBQUMsSUFBSSxJQUFJLHlDQUF5QyxFQUN2RixDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwyQ0FBMkMseUNBQXlDLDRCQUE0QixDQUNqSCxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQztRQUMvRSxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsbUJBQW1CLEdBQUcsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUMvRSxJQUFJLFNBQVMsR0FBRyxrREFBa0QsRUFBRSxDQUFDO1lBQ25FLE1BQU0sSUFBSSxLQUFLLENBQ2IsOENBQThDLGtEQUFrRCx3QkFBd0IsQ0FDekgsQ0FBQztRQUNKLENBQUM7UUFDRCxRQUFRLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMvRCxRQUFRLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQzNDLENBQUM7Q0FDRiJ9
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 {};