velocious 1.0.338 → 1.0.340

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.
@@ -39,13 +39,23 @@ export default class VelociousWebsocketClientSubscription {
39
39
  _onDisconnect: (() => void) | undefined;
40
40
  _onResume: (() => void) | undefined;
41
41
  _onClose: ((reason: string) => void) | undefined;
42
+ _ready: boolean;
43
+ _resumeReadyOnResume: boolean;
42
44
  _subscribed: boolean;
43
45
  _subscribeSent: boolean;
44
46
  _closed: boolean;
47
+ /** @returns {Promise<void>} */
48
+ _ensureReadyPromise(): Promise<void>;
45
49
  /** @type {Promise<void>} */
46
- ready: Promise<void>;
47
- _resolveReady: (value: void | PromiseLike<void>) => void;
48
- _rejectReady: (reason?: any) => void;
50
+ _readyPromise: Promise<void> | undefined;
51
+ _resolveReady: ((value: void | PromiseLike<void>) => void) | null | undefined;
52
+ _rejectReady: ((reason?: any) => void) | null | undefined;
53
+ /** @returns {Promise<void>} */
54
+ get ready(): Promise<void>;
55
+ /** @returns {void} */
56
+ _resolveReadyState(): void;
57
+ /** @returns {void} */
58
+ _markNotReady(): void;
49
59
  /** @returns {void} */
50
60
  _handleSubscribed(): void;
51
61
  /** @returns {void} */
@@ -66,11 +76,20 @@ export default class VelociousWebsocketClientSubscription {
66
76
  * @returns {void}
67
77
  */
68
78
  _handleClosed(reason: string): void;
79
+ /**
80
+ * @param {{timeoutMs?: number}} [params]
81
+ * @returns {Promise<void>}
82
+ */
83
+ waitForReady({ timeoutMs }?: {
84
+ timeoutMs?: number;
85
+ }): Promise<void>;
69
86
  /** @returns {void} */
70
87
  close(): void;
71
88
  /** @returns {boolean} */
72
89
  isClosed(): boolean;
73
90
  /** @returns {boolean} */
91
+ isReady(): boolean;
92
+ /** @returns {boolean} */
74
93
  isSubscribed(): boolean;
75
94
  }
76
95
  //# sourceMappingURL=websocket-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../../src/http-client/websocket-channel.js"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH;IACE;;;;;;;;;;;OAWG;IACH,sHAVG;QAAsD,MAAM,EAApD,OAAO,uBAAuB,EAAE,OAAO;QAC1B,cAAc,EAA3B,MAAM;QACO,WAAW,EAAxB,MAAM;QACqB,MAAM;QACnB,WAAW;QACE,SAAS,WAA7B,GAAG,KAAK,IAAI;QACD,YAAY,UAAxB,IAAI;QACQ,QAAQ,UAApB,IAAI;QACsB,OAAO,aAA9B,MAAM,KAAK,IAAI;KAAgB,EAqBlD;IAlBC,gDAAoB;IACpB,uBAAoC;IACpC,oBAA8B;IAC9B,4BAA0B;IAC1B,gCAA8B;IAC9B,oBAXgB,GAAG,KAAK,IAAI,cAWD;IAC3B,sBAXe,IAAI,cAWc;IACjC,kBAXe,IAAI,cAWM;IACzB,oBAXkB,MAAM,KAAK,IAAI,cAWV;IACvB,qBAAwB;IACxB,wBAA2B;IAC3B,iBAAoB;IAEpB,4BAA4B;IAC5B,OADW,OAAO,CAAC,IAAI,CAAC,CAItB;IAFA,yDAA4B;IAC5B,qCAA0B;IAI9B,sBAAsB;IACtB,qBADc,IAAI,CAKjB;IAED,sBAAsB;IACtB,sBADc,IAAI,CAGjB;IAED,yBAAyB;IACzB,mBADc,OAAO,CAGpB;IAED;;;OAGG;IACH,qBAHW,GAAG,GACD,IAAI,CAKhB;IAED,sBAAsB;IACtB,uBADc,IAAI,CAIjB;IAED,sBAAsB;IACtB,kBADc,IAAI,CAIjB;IAED;;;OAGG;IACH,sBAHW,MAAM,GACJ,IAAI,CAahB;IAED,sBAAsB;IACtB,SADc,IAAI,CAcjB;IAED,yBAAyB;IACzB,YADc,OAAO,CACa;IAElC,yBAAyB;IACzB,gBADc,OAAO,CACsC;CAC5D"}
1
+ {"version":3,"file":"websocket-channel.d.ts","sourceRoot":"","sources":["../../../src/http-client/websocket-channel.js"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH;IACE;;;;;;;;;;;OAWG;IACH,sHAVG;QAAsD,MAAM,EAApD,OAAO,uBAAuB,EAAE,OAAO;QAC1B,cAAc,EAA3B,MAAM;QACO,WAAW,EAAxB,MAAM;QACqB,MAAM;QACnB,WAAW;QACE,SAAS,WAA7B,GAAG,KAAK,IAAI;QACD,YAAY,UAAxB,IAAI;QACQ,QAAQ,UAApB,IAAI;QACsB,OAAO,aAA9B,MAAM,KAAK,IAAI;KAAgB,EAkBlD;IAfC,gDAAoB;IACpB,uBAAoC;IACpC,oBAA8B;IAC9B,4BAA0B;IAC1B,gCAA8B;IAC9B,oBAXgB,GAAG,KAAK,IAAI,cAWD;IAC3B,sBAXe,IAAI,cAWc;IACjC,kBAXe,IAAI,cAWM;IACzB,oBAXkB,MAAM,KAAK,IAAI,cAWV;IACvB,gBAAmB;IACnB,8BAAiC;IACjC,qBAAwB;IACxB,wBAA2B;IAC3B,iBAAoB;IAItB,+BAA+B;IAC/B,uBADc,OAAO,CAAC,IAAI,CAAC,CAW1B;IARG,4BAA4B;IAC5B,yCAGE;IAFA,8EAA4B;IAC5B,0DAA0B;IAOhC,+BAA+B;IAC/B,aADc,OAAO,CAAC,IAAI,CAAC,CAG1B;IAED,sBAAsB;IACtB,sBADc,IAAI,CAMjB;IAED,sBAAsB;IACtB,iBADc,IAAI,CAGjB;IAED,sBAAsB;IACtB,qBADc,IAAI,CAKjB;IAED,sBAAsB;IACtB,sBADc,IAAI,CAGjB;IAED,yBAAyB;IACzB,mBADc,OAAO,CAGpB;IAED;;;OAGG;IACH,qBAHW,GAAG,GACD,IAAI,CAKhB;IAED,sBAAsB;IACtB,uBADc,IAAI,CAOjB;IAED,sBAAsB;IACtB,kBADc,IAAI,CASjB;IAED;;;OAGG;IACH,sBAHW,MAAM,GACJ,IAAI,CAiBhB;IAED;;;OAGG;IACH,6BAHW;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,GAClB,OAAO,CAAC,IAAI,CAAC,CAWzB;IAED,sBAAsB;IACtB,SADc,IAAI,CAcjB;IAED,yBAAyB;IACzB,YADc,OAAO,CACa;IAElC,yBAAyB;IACzB,WADc,OAAO,CACW;IAEhC,yBAAyB;IACzB,gBADc,OAAO,CACsC;CAC5D"}
@@ -30,21 +30,44 @@ export default class VelociousWebsocketClientSubscription {
30
30
  this._onDisconnect = onDisconnect;
31
31
  this._onResume = onResume;
32
32
  this._onClose = onClose;
33
+ this._ready = false;
34
+ this._resumeReadyOnResume = false;
33
35
  this._subscribed = false;
34
36
  this._subscribeSent = false;
35
37
  this._closed = false;
36
- /** @type {Promise<void>} */
37
- this.ready = new Promise((resolve, reject) => {
38
- this._resolveReady = resolve;
39
- this._rejectReady = reject;
40
- });
38
+ }
39
+ /** @returns {Promise<void>} */
40
+ _ensureReadyPromise() {
41
+ if (!this._readyPromise || !this._resolveReady || !this._rejectReady) {
42
+ /** @type {Promise<void>} */
43
+ this._readyPromise = new Promise((resolve, reject) => {
44
+ this._resolveReady = resolve;
45
+ this._rejectReady = reject;
46
+ });
47
+ }
48
+ return this._readyPromise;
49
+ }
50
+ /** @returns {Promise<void>} */
51
+ get ready() {
52
+ return this._ensureReadyPromise();
53
+ }
54
+ /** @returns {void} */
55
+ _resolveReadyState() {
56
+ this._ready = true;
57
+ this._resolveReady?.();
58
+ this._resolveReady = null;
59
+ this._rejectReady = null;
60
+ }
61
+ /** @returns {void} */
62
+ _markNotReady() {
63
+ this._ready = false;
41
64
  }
42
65
  /** @returns {void} */
43
66
  _handleSubscribed() {
44
67
  if (this._closed || this._subscribed)
45
68
  return;
46
69
  this._subscribed = true;
47
- this._resolveReady?.();
70
+ this._resolveReadyState();
48
71
  }
49
72
  /** @returns {void} */
50
73
  _markSubscribeSent() {
@@ -67,12 +90,20 @@ export default class VelociousWebsocketClientSubscription {
67
90
  _handleDisconnected() {
68
91
  if (this._closed)
69
92
  return;
93
+ this._resumeReadyOnResume ||= this._subscribed;
94
+ this._subscribed = false;
95
+ this._markNotReady();
70
96
  this._onDisconnect?.();
71
97
  }
72
98
  /** @returns {void} */
73
99
  _handleResumed() {
74
100
  if (this._closed)
75
101
  return;
102
+ if (this._resumeReadyOnResume) {
103
+ this._subscribed = true;
104
+ this._resolveReadyState();
105
+ }
106
+ this._resumeReadyOnResume = false;
76
107
  this._onResume?.();
77
108
  }
78
109
  /**
@@ -87,11 +118,27 @@ export default class VelociousWebsocketClientSubscription {
87
118
  this._onClose?.(reason);
88
119
  }
89
120
  finally {
90
- if (!this._subscribed) {
121
+ this._resumeReadyOnResume = false;
122
+ if (!this._ready) {
91
123
  this._rejectReady?.(new Error(`Subscription closed before acknowledgement: ${reason}`));
92
124
  }
125
+ this._resolveReady = null;
126
+ this._rejectReady = null;
93
127
  }
94
128
  }
129
+ /**
130
+ * @param {{timeoutMs?: number}} [params]
131
+ * @returns {Promise<void>}
132
+ */
133
+ async waitForReady({ timeoutMs = 5000 } = {}) {
134
+ if (this._ready)
135
+ return;
136
+ const readyPromise = this._ensureReadyPromise();
137
+ const timeoutPromise = new Promise((_, reject) => {
138
+ setTimeout(() => reject(new Error(`Subscription not ready after ${timeoutMs}ms`)), timeoutMs);
139
+ });
140
+ await Promise.race([readyPromise, timeoutPromise]);
141
+ }
95
142
  /** @returns {void} */
96
143
  close() {
97
144
  if (this._closed)
@@ -110,6 +157,8 @@ export default class VelociousWebsocketClientSubscription {
110
157
  /** @returns {boolean} */
111
158
  isClosed() { return this._closed; }
112
159
  /** @returns {boolean} */
160
+ isReady() { return this._ready; }
161
+ /** @returns {boolean} */
113
162
  isSubscribed() { return this._subscribed && !this._closed; }
114
163
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1jbGllbnQvd2Vic29ja2V0LWNoYW5uZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLG9DQUFvQztJQUN2RDs7Ozs7Ozs7Ozs7T0FXRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQztRQUNoSCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUE7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUE7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUE7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7UUFFcEIsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUE7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUE7UUFDNUIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU07UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUE7SUFDeEIsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUE7SUFDNUIsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixlQUFlO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsSUFBSTtRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTTtRQUN4QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUE7SUFDeEIsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUE7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxNQUFNO1FBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1FBRW5CLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN6QixDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsK0NBQStDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUN6RixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBRXhCLElBQUksQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUE7WUFDOUYsQ0FBQztRQUNILENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxpRUFBaUU7UUFDbkUsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBRWxDLHlCQUF5QjtJQUN6QixZQUFZLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUM7Q0FDNUQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBDbGllbnQtc2lkZSBoYW5kbGUgZm9yIGEgY2hhbm5lbCBzdWJzY3JpcHRpb24gb3BlbmVkIHZpYVxuICogYFZlbG9jaW91c1dlYnNvY2tldENsaWVudC5zdWJzY3JpYmVDaGFubmVsKClgLiBNaXJyb3JzIHRoZSBzZXJ2ZXInc1xuICogc3Vic2NyaXB0aW9uIGxpZmVjeWNsZSDigJQgYHN1YnNjcmliZWRgIChyZXNvbHZlcyBgcmVhZHlgKSAvIGBvbk1lc3NhZ2VgIC9cbiAqIGBvbkNsb3NlYC5cbiAqXG4gKiBTZWUgYGRvY3Mvd2Vic29ja2V0LWNoYW5uZWxzLm1kYCBmb3IgdGhlIHdpcmUgcHJvdG9jb2wuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c1dlYnNvY2tldENsaWVudFN1YnNjcmlwdGlvbiB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJnc1xuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vd2Vic29ja2V0LWNsaWVudC5qc1wiKS5kZWZhdWx0fSBhcmdzLmNsaWVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5zdWJzY3JpcHRpb25JZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jaGFubmVsVHlwZVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFthcmdzLnBhcmFtc11cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmxhc3RFdmVudElkXVxuICAgKiBAcGFyYW0geyhib2R5OiBhbnkpID0+IHZvaWR9IFthcmdzLm9uTWVzc2FnZV1cbiAgICogQHBhcmFtIHsoKSA9PiB2b2lkfSBbYXJncy5vbkRpc2Nvbm5lY3RdXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gW2FyZ3Mub25SZXN1bWVdXG4gICAqIEBwYXJhbSB7KHJlYXNvbjogc3RyaW5nKSA9PiB2b2lkfSBbYXJncy5vbkNsb3NlXVxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NsaWVudCwgc3Vic2NyaXB0aW9uSWQsIGNoYW5uZWxUeXBlLCBwYXJhbXMsIGxhc3RFdmVudElkLCBvbk1lc3NhZ2UsIG9uRGlzY29ubmVjdCwgb25SZXN1bWUsIG9uQ2xvc2V9KSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRcbiAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gc3Vic2NyaXB0aW9uSWRcbiAgICB0aGlzLmNoYW5uZWxUeXBlID0gY2hhbm5lbFR5cGVcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcyB8fCB7fVxuICAgIHRoaXMubGFzdEV2ZW50SWQgPSBsYXN0RXZlbnRJZFxuICAgIHRoaXMuX29uTWVzc2FnZSA9IG9uTWVzc2FnZVxuICAgIHRoaXMuX29uRGlzY29ubmVjdCA9IG9uRGlzY29ubmVjdFxuICAgIHRoaXMuX29uUmVzdW1lID0gb25SZXN1bWVcbiAgICB0aGlzLl9vbkNsb3NlID0gb25DbG9zZVxuICAgIHRoaXMuX3N1YnNjcmliZWQgPSBmYWxzZVxuICAgIHRoaXMuX3N1YnNjcmliZVNlbnQgPSBmYWxzZVxuICAgIHRoaXMuX2Nsb3NlZCA9IGZhbHNlXG5cbiAgICAvKiogQHR5cGUge1Byb21pc2U8dm9pZD59ICovXG4gICAgdGhpcy5yZWFkeSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX3Jlc29sdmVSZWFkeSA9IHJlc29sdmVcbiAgICAgIHRoaXMuX3JlamVjdFJlYWR5ID0gcmVqZWN0XG4gICAgfSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgX2hhbmRsZVN1YnNjcmliZWQoKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCB8fCB0aGlzLl9zdWJzY3JpYmVkKSByZXR1cm5cbiAgICB0aGlzLl9zdWJzY3JpYmVkID0gdHJ1ZVxuICAgIHRoaXMuX3Jlc29sdmVSZWFkeT8uKClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgX21hcmtTdWJzY3JpYmVTZW50KCkge1xuICAgIHRoaXMuX3N1YnNjcmliZVNlbnQgPSB0cnVlXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIF9uZWVkc1N1YnNjcmliZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuX2Nsb3NlZCAmJiAhdGhpcy5fc3Vic2NyaWJlU2VudFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSBib2R5XG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX2hhbmRsZU1lc3NhZ2UoYm9keSkge1xuICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVyblxuICAgIHRoaXMuX29uTWVzc2FnZT8uKGJvZHkpXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIF9oYW5kbGVEaXNjb25uZWN0ZWQoKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkgcmV0dXJuXG4gICAgdGhpcy5fb25EaXNjb25uZWN0Py4oKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBfaGFuZGxlUmVzdW1lZCgpIHtcbiAgICBpZiAodGhpcy5fY2xvc2VkKSByZXR1cm5cbiAgICB0aGlzLl9vblJlc3VtZT8uKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX2hhbmRsZUNsb3NlZChyZWFzb24pIHtcbiAgICBpZiAodGhpcy5fY2xvc2VkKSByZXR1cm5cbiAgICB0aGlzLl9jbG9zZWQgPSB0cnVlXG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5fb25DbG9zZT8uKHJlYXNvbilcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKCF0aGlzLl9zdWJzY3JpYmVkKSB7XG4gICAgICAgIHRoaXMuX3JlamVjdFJlYWR5Py4obmV3IEVycm9yKGBTdWJzY3JpcHRpb24gY2xvc2VkIGJlZm9yZSBhY2tub3dsZWRnZW1lbnQ6ICR7cmVhc29ufWApKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgY2xvc2UoKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkgcmV0dXJuXG5cbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuY2xpZW50LmlzT3BlbigpKSB7XG4gICAgICAgIHRoaXMuY2xpZW50Ll9zZW5kTWVzc2FnZSh7dHlwZTogXCJjaGFubmVsLXVuc3Vic2NyaWJlXCIsIHN1YnNjcmlwdGlvbklkOiB0aGlzLnN1YnNjcmlwdGlvbklkfSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIFNvY2tldCBhbHJlYWR5IGdvbmU7IHNlcnZlciB3aWxsIGNsZWFuIHVwIG9uIHNlc3Npb24gdGVhcmRvd24uXG4gICAgfVxuXG4gICAgdGhpcy5jbGllbnQuX3JlbW92ZUNoYW5uZWxTdWJzY3JpcHRpb24odGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICB0aGlzLl9oYW5kbGVDbG9zZWQoXCJjbGllbnRfdW5zdWJzY3JpYmVcIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gKi9cbiAgaXNDbG9zZWQoKSB7IHJldHVybiB0aGlzLl9jbG9zZWQgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gKi9cbiAgaXNTdWJzY3JpYmVkKCkgeyByZXR1cm4gdGhpcy5fc3Vic2NyaWJlZCAmJiAhdGhpcy5fY2xvc2VkIH1cbn1cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1jbGllbnQvd2Vic29ja2V0LWNoYW5uZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLG9DQUFvQztJQUN2RDs7Ozs7Ozs7Ozs7T0FXRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQztRQUNoSCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUE7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUE7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUE7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQTtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtRQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtJQUV0QixDQUFDO0lBRUQsK0JBQStCO0lBQy9CLG1CQUFtQjtRQUNqQixJQUFJLENBQUMsSUFBSSxD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aUU7UUFDbkUsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBRWxDLHlCQUF5QjtJQUN6QixPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQztJQUVoQyx5QkFBeUI7SUFDekIsWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0NBQzVEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQ2xpZW50LXNpZGUgaGFuZGxlIGZvciBhIGNoYW5uZWwgc3Vic2NyaXB0aW9uIG9wZW5lZCB2aWFcbiAqIGBWZWxvY2lvdXNXZWJzb2NrZXRDbGllbnQuc3Vic2NyaWJlQ2hhbm5lbCgpYC4gTWlycm9ycyB0aGUgc2VydmVyJ3NcbiAqIHN1YnNjcmlwdGlvbiBsaWZlY3ljbGUg4oCUIGBzdWJzY3JpYmVkYCAocmVzb2x2ZXMgYHJlYWR5YCkgLyBgb25NZXNzYWdlYCAvXG4gKiBgb25DbG9zZWAuXG4gKlxuICogU2VlIGBkb2NzL3dlYnNvY2tldC1jaGFubmVscy5tZGAgZm9yIHRoZSB3aXJlIHByb3RvY29sLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNXZWJzb2NrZXRDbGllbnRTdWJzY3JpcHRpb24ge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL3dlYnNvY2tldC1jbGllbnQuanNcIikuZGVmYXVsdH0gYXJncy5jbGllbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muc3Vic2NyaXB0aW9uSWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY2hhbm5lbFR5cGVcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbYXJncy5wYXJhbXNdXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5sYXN0RXZlbnRJZF1cbiAgICogQHBhcmFtIHsoYm9keTogYW55KSA9PiB2b2lkfSBbYXJncy5vbk1lc3NhZ2VdXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gW2FyZ3Mub25EaXNjb25uZWN0XVxuICAgKiBAcGFyYW0geygpID0+IHZvaWR9IFthcmdzLm9uUmVzdW1lXVxuICAgKiBAcGFyYW0geyhyZWFzb246IHN0cmluZykgPT4gdm9pZH0gW2FyZ3Mub25DbG9zZV1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjbGllbnQsIHN1YnNjcmlwdGlvbklkLCBjaGFubmVsVHlwZSwgcGFyYW1zLCBsYXN0RXZlbnRJZCwgb25NZXNzYWdlLCBvbkRpc2Nvbm5lY3QsIG9uUmVzdW1lLCBvbkNsb3NlfSkge1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50XG4gICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IHN1YnNjcmlwdGlvbklkXG4gICAgdGhpcy5jaGFubmVsVHlwZSA9IGNoYW5uZWxUeXBlXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXMgfHwge31cbiAgICB0aGlzLmxhc3RFdmVudElkID0gbGFzdEV2ZW50SWRcbiAgICB0aGlzLl9vbk1lc3NhZ2UgPSBvbk1lc3NhZ2VcbiAgICB0aGlzLl9vbkRpc2Nvbm5lY3QgPSBvbkRpc2Nvbm5lY3RcbiAgICB0aGlzLl9vblJlc3VtZSA9IG9uUmVzdW1lXG4gICAgdGhpcy5fb25DbG9zZSA9IG9uQ2xvc2VcbiAgICB0aGlzLl9yZWFkeSA9IGZhbHNlXG4gICAgdGhpcy5fcmVzdW1lUmVhZHlPblJlc3VtZSA9IGZhbHNlXG4gICAgdGhpcy5fc3Vic2NyaWJlZCA9IGZhbHNlXG4gICAgdGhpcy5fc3Vic2NyaWJlU2VudCA9IGZhbHNlXG4gICAgdGhpcy5fY2xvc2VkID0gZmFsc2VcblxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICBfZW5zdXJlUmVhZHlQcm9taXNlKCkge1xuICAgIGlmICghdGhpcy5fcmVhZHlQcm9taXNlIHx8ICF0aGlzLl9yZXNvbHZlUmVhZHkgfHwgIXRoaXMuX3JlamVjdFJlYWR5KSB7XG4gICAgICAvKiogQHR5cGUge1Byb21pc2U8dm9pZD59ICovXG4gICAgICB0aGlzLl9yZWFkeVByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuX3Jlc29sdmVSZWFkeSA9IHJlc29sdmVcbiAgICAgICAgdGhpcy5fcmVqZWN0UmVhZHkgPSByZWplY3RcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5UHJvbWlzZVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICBnZXQgcmVhZHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Vuc3VyZVJlYWR5UHJvbWlzZSgpXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIF9yZXNvbHZlUmVhZHlTdGF0ZSgpIHtcbiAgICB0aGlzLl9yZWFkeSA9IHRydWVcbiAgICB0aGlzLl9yZXNvbHZlUmVhZHk/LigpXG4gICAgdGhpcy5fcmVzb2x2ZVJlYWR5ID0gbnVsbFxuICAgIHRoaXMuX3JlamVjdFJlYWR5ID0gbnVsbFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBfbWFya05vdFJlYWR5KCkge1xuICAgIHRoaXMuX3JlYWR5ID0gZmFsc2VcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgX2hhbmRsZVN1YnNjcmliZWQoKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCB8fCB0aGlzLl9zdWJzY3JpYmVkKSByZXR1cm5cbiAgICB0aGlzLl9zdWJzY3JpYmVkID0gdHJ1ZVxuICAgIHRoaXMuX3Jlc29sdmVSZWFkeVN0YXRlKClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgX21hcmtTdWJzY3JpYmVTZW50KCkge1xuICAgIHRoaXMuX3N1YnNjcmliZVNlbnQgPSB0cnVlXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIF9uZWVkc1N1YnNjcmliZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuX2Nsb3NlZCAmJiAhdGhpcy5fc3Vic2NyaWJlU2VudFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSBib2R5XG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX2hhbmRsZU1lc3NhZ2UoYm9keSkge1xuICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVyblxuICAgIHRoaXMuX29uTWVzc2FnZT8uKGJvZHkpXG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIF9oYW5kbGVEaXNjb25uZWN0ZWQoKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkgcmV0dXJuXG4gICAgdGhpcy5fcmVzdW1lUmVhZHlPblJlc3VtZSB8fD0gdGhpcy5fc3Vic2NyaWJlZFxuICAgIHRoaXMuX3N1YnNjcmliZWQgPSBmYWxzZVxuICAgIHRoaXMuX21hcmtOb3RSZWFkeSgpXG4gICAgdGhpcy5fb25EaXNjb25uZWN0Py4oKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBfaGFuZGxlUmVzdW1lZCgpIHtcbiAgICBpZiAodGhpcy5fY2xvc2VkKSByZXR1cm5cbiAgICBpZiAodGhpcy5fcmVzdW1lUmVhZHlPblJlc3VtZSkge1xuICAgICAgdGhpcy5fc3Vic2NyaWJlZCA9IHRydWVcbiAgICAgIHRoaXMuX3Jlc29sdmVSZWFkeVN0YXRlKClcbiAgICB9XG4gICAgdGhpcy5fcmVzdW1lUmVhZHlPblJlc3VtZSA9IGZhbHNlXG4gICAgdGhpcy5fb25SZXN1bWU/LigpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9oYW5kbGVDbG9zZWQocmVhc29uKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkgcmV0dXJuXG4gICAgdGhpcy5fY2xvc2VkID0gdHJ1ZVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX29uQ2xvc2U/LihyZWFzb24pXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3Jlc3VtZVJlYWR5T25SZXN1bWUgPSBmYWxzZVxuICAgICAgaWYgKCF0aGlzLl9yZWFkeSkge1xuICAgICAgICB0aGlzLl9yZWplY3RSZWFkeT8uKG5ldyBFcnJvcihgU3Vic2NyaXB0aW9uIGNsb3NlZCBiZWZvcmUgYWNrbm93bGVkZ2VtZW50OiAke3JlYXNvbn1gKSlcbiAgICAgIH1cblxuICAgICAgdGhpcy5fcmVzb2x2ZVJlYWR5ID0gbnVsbFxuICAgICAgdGhpcy5fcmVqZWN0UmVhZHkgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7e3RpbWVvdXRNcz86IG51bWJlcn19IFtwYXJhbXNdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgd2FpdEZvclJlYWR5KHt0aW1lb3V0TXMgPSA1MDAwfSA9IHt9KSB7XG4gICAgaWYgKHRoaXMuX3JlYWR5KSByZXR1cm5cblxuICAgIGNvbnN0IHJlYWR5UHJvbWlzZSA9IHRoaXMuX2Vuc3VyZVJlYWR5UHJvbWlzZSgpXG4gICAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoYFN1YnNjcmlwdGlvbiBub3QgcmVhZHkgYWZ0ZXIgJHt0aW1lb3V0TXN9bXNgKSksIHRpbWVvdXRNcylcbiAgICB9KVxuXG4gICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtyZWFkeVByb21pc2UsIHRpbWVvdXRQcm9taXNlXSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgY2xvc2UoKSB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkgcmV0dXJuXG5cbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuY2xpZW50LmlzT3BlbigpKSB7XG4gICAgICAgIHRoaXMuY2xpZW50Ll9zZW5kTWVzc2FnZSh7dHlwZTogXCJjaGFubmVsLXVuc3Vic2NyaWJlXCIsIHN1YnNjcmlwdGlvbklkOiB0aGlzLnN1YnNjcmlwdGlvbklkfSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIFNvY2tldCBhbHJlYWR5IGdvbmU7IHNlcnZlciB3aWxsIGNsZWFuIHVwIG9uIHNlc3Npb24gdGVhcmRvd24uXG4gICAgfVxuXG4gICAgdGhpcy5jbGllbnQuX3JlbW92ZUNoYW5uZWxTdWJzY3JpcHRpb24odGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICB0aGlzLl9oYW5kbGVDbG9zZWQoXCJjbGllbnRfdW5zdWJzY3JpYmVcIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gKi9cbiAgaXNDbG9zZWQoKSB7IHJldHVybiB0aGlzLl9jbG9zZWQgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gKi9cbiAgaXNSZWFkeSgpIHsgcmV0dXJuIHRoaXMuX3JlYWR5IH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIGlzU3Vic2NyaWJlZCgpIHsgcmV0dXJuIHRoaXMuX3N1YnNjcmliZWQgJiYgIXRoaXMuX2Nsb3NlZCB9XG59XG4iXX0=
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "velocious": "build/bin/velocious.js"
4
4
  },
5
5
  "name": "velocious",
6
- "version": "1.0.338",
6
+ "version": "1.0.340",
7
7
  "main": "build/index.js",
8
8
  "types": "build/index.d.ts",
9
9
  "files": [