@openreplay/tracker 7.0.2 → 7.0.4-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/cjs/app/index.d.ts +1 -0
- package/cjs/app/index.js +8 -2
- package/cjs/common/interaction.d.ts +1 -0
- package/cjs/index.js +1 -1
- package/cjs/modules/network.js +1 -1
- package/jest.config.js +2 -0
- package/lib/app/index.d.ts +1 -0
- package/lib/app/index.js +8 -2
- package/lib/common/interaction.d.ts +1 -0
- package/lib/common/tsconfig.tsbuildinfo +1 -1
- package/lib/index.js +1 -1
- package/lib/modules/network.js +1 -1
- package/package.json +1 -1
- package/cjs/vendors/finder/finder.d.ts +0 -12
- package/cjs/vendors/finder/finder.js +0 -352
- package/lib/vendors/finder/finder.d.ts +0 -12
- package/lib/vendors/finder/finder.js +0 -348
package/CHANGELOG.md
CHANGED
package/cjs/app/index.d.ts
CHANGED
package/cjs/app/index.js
CHANGED
|
@@ -34,7 +34,7 @@ class App {
|
|
|
34
34
|
this.stopCallbacks = [];
|
|
35
35
|
this.commitCallbacks = [];
|
|
36
36
|
this.activityState = ActivityState.NotActive;
|
|
37
|
-
this.version = '7.0.
|
|
37
|
+
this.version = '7.0.4-beta.1'; // TODO: version compatability check inside each plugin.
|
|
38
38
|
this.compressionThreshold = 24 * 1000;
|
|
39
39
|
this.restartAttempts = 0;
|
|
40
40
|
this._usingOldFetchPlugin = false;
|
|
@@ -55,6 +55,7 @@ class App {
|
|
|
55
55
|
__debug_report_edp: null,
|
|
56
56
|
localStorage: null,
|
|
57
57
|
sessionStorage: null,
|
|
58
|
+
disableStringDict: false,
|
|
58
59
|
}, options);
|
|
59
60
|
this.revID = this.options.revID;
|
|
60
61
|
this.localStorage = (_a = this.options.localStorage) !== null && _a !== void 0 ? _a : window.localStorage;
|
|
@@ -81,13 +82,14 @@ class App {
|
|
|
81
82
|
this.session.applySessionHash(sessionToken);
|
|
82
83
|
}
|
|
83
84
|
try {
|
|
84
|
-
this.worker = new Worker(URL.createObjectURL(new Blob(['"use strict";class t{constructor(t,i,s,e=10,n=1e3,h){this.onUnauthorised=i,this.onFailure=s,this.MAX_ATTEMPTS_COUNT=e,this.ATTEMPT_TIMEOUT=n,this.onCompress=h,this.attemptsCount=0,this.busy=!1,this.queue=[],this.token=null,this.isCompressing=!1,this.ingestURL=t+"/v1/web/i",void 0!==h&&(this.isCompressing=!0)}authorise(t){this.token=t,this.busy||this.sendNext()}push(t){this.busy||!this.token?this.queue.push(t):(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t))}sendNext(){const t=this.queue.shift();t?(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t)):this.busy=!1}retry(t,i){this.attemptsCount>=this.MAX_ATTEMPTS_COUNT?this.onFailure(`Failed to send batch after ${this.attemptsCount} attempts.`):(this.attemptsCount++,setTimeout(()=>this.sendBatch(t,i),this.ATTEMPT_TIMEOUT*this.attemptsCount))}sendBatch(t,i){this.busy=!0;const s={Authorization:"Bearer "+this.token};i&&(s["Content-Encoding"]="gzip"),null!==this.token?fetch(this.ingestURL,{body:t,method:"POST",headers:s,keepalive:t.length<65536}).then(s=>{if(401===s.status)return this.busy=!1,void this.onUnauthorised();s.status>=400?this.retry(t,i):(this.attemptsCount=0,this.sendNext())}).catch(s=>{console.warn("OpenReplay:",s),this.retry(t,i)}):setTimeout(()=>{this.sendBatch(t,i)},500)}sendCompressed(t){this.sendBatch(t,!0)}sendUncompressed(t){this.sendBatch(t,!1)}clean(){this.queue.length=0,this.token=null}}const i="function"==typeof TextEncoder?new TextEncoder:{encode(t){const i=t.length,s=new Uint8Array(3*i);let e=-1;for(let n=0,h=0,r=0;r!==i;){if(n=t.charCodeAt(r),r+=1,n>=55296&&n<=56319){if(r===i){s[e+=1]=239,s[e+=1]=191,s[e+=1]=189;break}if(h=t.charCodeAt(r),!(h>=56320&&h<=57343)){s[e+=1]=239,s[e+=1]=191,s[e+=1]=189;continue}if(n=1024*(n-55296)+h-56320+65536,r+=1,n>65535){s[e+=1]=240|n>>>18,s[e+=1]=128|n>>>12&63,s[e+=1]=128|n>>>6&63,s[e+=1]=128|63&n;continue}}n<=127?s[e+=1]=0|n:n<=2047?(s[e+=1]=192|n>>>6,s[e+=1]=128|63&n):(s[e+=1]=224|n>>>12,s[e+=1]=128|n>>>6&63,s[e+=1]=128|63&n)}return s.subarray(0,e+1)}};class s extends class{constructor(t){this.size=t,this.offset=0,this.checkpointOffset=0,this.data=new Uint8Array(t)}getCurrentOffset(){return this.offset}checkpoint(){this.checkpointOffset=this.offset}get isEmpty(){return 0===this.offset}skip(t){return this.offset+=t,this.offset<=this.size}set(t,i){this.data.set(t,i)}boolean(t){return this.data[this.offset++]=+t,this.offset<=this.size}uint(t){for((t<0||t>Number.MAX_SAFE_INTEGER)&&(t=0);t>=128;)this.data[this.offset++]=t%256|128,t=Math.floor(t/128);return this.data[this.offset++]=t,this.offset<=this.size}int(t){return t=Math.round(t),this.uint(t>=0?2*t:-2*t-1)}string(t){const s=i.encode(t),e=s.byteLength;return!(!this.uint(e)||this.offset+e>this.size)&&(this.data.set(s,this.offset),this.offset+=e,!0)}reset(){this.offset=0,this.checkpointOffset=0}flush(){const t=this.data.slice(0,this.checkpointOffset);return this.reset(),t}}{encode(t){switch(t[0]){case 0:return this.uint(t[1]);case 4:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 5:return this.uint(t[1])&&this.uint(t[2]);case 6:return this.int(t[1])&&this.int(t[2]);case 7:return!0;case 8:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.string(t[4])&&this.boolean(t[5]);case 9:case 10:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 11:return this.uint(t[1]);case 12:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 13:case 14:return this.uint(t[1])&&this.string(t[2]);case 16:return this.uint(t[1])&&this.int(t[2])&&this.int(t[3]);case 17:return this.uint(t[1])&&this.string(t[2]);case 18:return this.uint(t[1])&&this.string(t[2])&&this.int(t[3]);case 19:return this.uint(t[1])&&this.boolean(t[2]);case 20:return this.uint(t[1])&&this.uint(t[2]);case 21:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8]);case 22:return this.string(t[1])&&this.string(t[2]);case 23:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 24:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 27:return this.string(t[1])&&this.string(t[2]);case 28:case 29:return this.string(t[1]);case 30:return this.string(t[1])&&this.string(t[2]);case 37:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3]);case 38:return this.uint(t[1])&&this.uint(t[2]);case 39:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7]);case 40:return this.string(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 41:return this.string(t[1])&&this.string(t[2]);case 42:return this.string(t[1]);case 44:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 45:case 46:return this.string(t[1])&&this.string(t[2]);case 47:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 48:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 49:return this.int(t[1])&&this.int(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 50:return this.uint(t[1])&&this.string(t[2]);case 51:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 53:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8]);case 54:return this.uint(t[1])&&this.string(t[2]);case 55:return this.boolean(t[1]);case 57:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 58:return this.int(t[1]);case 59:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6])&&this.string(t[7]);case 60:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 61:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 63:case 64:return this.string(t[1])&&this.string(t[2]);case 67:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 69:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 70:return this.uint(t[1])&&this.uint(t[2]);case 71:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 73:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 75:case 76:case 77:return this.uint(t[1])&&this.uint(t[2]);case 78:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 79:return this.string(t[1])&&this.string(t[2]);case 81:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.int(t[4])&&this.string(t[5]);case 82:return this.uint(t[1])&&this.uint(t[2]);case 112:return this.uint(t[1])&&this.string(t[2])&&this.boolean(t[3])&&this.string(t[4])&&this.int(t[5])&&this.int(t[6]);case 113:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3]);case 114:case 115:return this.uint(t[1]);case 116:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8])&&this.uint(t[9])&&this.boolean(t[10])}}}class e{constructor(){this.idx=1,this.backDict={}}getKey(t){let i=!1;return this.backDict[t]||(i=!0,this.backDict[t]=this.idx++),[this.backDict[t],i]}}class n{constructor(t,i,n,h){this.pageNo=t,this.timestamp=i,this.url=n,this.onBatch=h,this.nextIndex=0,this.beaconSize=2e5,this.encoder=new s(this.beaconSize),this.strDict=new e,this.sizeBuffer=new Uint8Array(3),this.isEmpty=!0,this.beaconSizeLimit=1e6,this.prepare()}writeType(t){return this.encoder.uint(t[0])}writeFields(t){return this.encoder.encode(t)}writeSizeAt(t,i){for(let i=0;i<3;i++)this.sizeBuffer[i]=t>>8*i;this.encoder.set(this.sizeBuffer,i)}prepare(){if(!this.encoder.isEmpty)return;const t=[81,1,this.pageNo,this.nextIndex,this.timestamp,this.url];this.writeType(t),this.writeFields(t),this.isEmpty=!0}writeWithSize(t){const i=this.encoder;if(!this.writeType(t)||!i.skip(3))return!1;const s=i.getCurrentOffset(),e=this.writeFields(t);if(e){const e=i.getCurrentOffset()-s;if(e>16777215)return console.warn("OpenReplay: max message size overflow."),!1;this.writeSizeAt(e,s-3),i.checkpoint(),this.isEmpty=this.isEmpty&&0===t[0],this.nextIndex++}return e}setBeaconSizeLimit(t){this.beaconSizeLimit=t}applyDict(t){const[i,s]=this.strDict.getKey(t);return s&&this.writeMessage([50,i,t]),i}writeMessage(t){0===t[0]&&(this.timestamp=t[1]),4===t[0]&&(this.url=t[1]),12===t[0]&&(t=[51,t[1],this.applyDict(t[2]),this.applyDict(t[3])]),this.writeWithSize(t)||(this.finaliseBatch(),this.writeWithSize(t)||(this.encoder=new s(this.beaconSizeLimit),this.prepare(),this.writeWithSize(t)?this.finaliseBatch():console.warn("OpenReplay: beacon size overflow. Skipping large message.",t,this),this.encoder=new s(this.beaconSize),this.prepare()))}finaliseBatch(){this.isEmpty||(this.onBatch(this.encoder.flush()),this.prepare())}clean(){this.encoder.reset()}}var h;!function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Stopping=2]="Stopping",t[t.Active=3]="Active"}(h||(h={}));let r=null,u=null;function a(){u&&u.finaliseBatch()}function o(){h.Stopping,null!==p&&(clearInterval(p),p=null),u&&(u.clean(),u=null),r&&(r.clean(),r=null),h.NotActive}function c(){postMessage("restart"),o()}h.NotActive;let g,p=null;self.onmessage=({data:i})=>{if(null!=i){if("stop"===i)return a(),void o();if(!Array.isArray(i)){if("compressed"===i.type){if(!r)return console.debug("WebWorker: sender not initialised. Compressed batch."),void c();r.sendCompressed(i.batch)}if("uncompressed"===i.type){if(!r)return console.debug("WebWorker: sender not initialised. Uncompressed batch."),void c();r.sendUncompressed(i.batch)}return"start"===i.type?(h.Starting,r=new t(i.ingestPoint,()=>{c()},t=>{!function(t){postMessage({type:"failure",reason:t}),o()}(t)},i.connAttemptCount,i.connAttemptGap,t=>{postMessage({type:"compress",batch:t},[t.buffer])}),u=new n(i.pageNo,i.timestamp,i.url,t=>r&&r.push(t)),null===p&&(p=setInterval(a,1e4)),h.Active):"auth"===i.type?r?u?(r.authorise(i.token),void(i.beaconSizeLimit&&u.setBeaconSizeLimit(i.beaconSizeLimit))):(console.debug("WebWorker: writer not initialised. Received auth."),void c()):(console.debug("WebWorker: sender not initialised. Received auth."),void c()):void 0}if(null!==u){const t=u;i.forEach(i=>{55===i[0]&&(i[1]?g=setTimeout(()=>c(),18e5):clearTimeout(g)),t.writeMessage(i)})}u||(postMessage("not_init"),c())}else a()};'], { type: 'text/javascript' })));
|
|
85
|
+
this.worker = new Worker(URL.createObjectURL(new Blob(['"use strict";class t{constructor(t,i,s,e=10,n=1e3,h){this.onUnauthorised=i,this.onFailure=s,this.MAX_ATTEMPTS_COUNT=e,this.ATTEMPT_TIMEOUT=n,this.onCompress=h,this.attemptsCount=0,this.busy=!1,this.queue=[],this.token=null,this.ingestURL=t+"/v1/web/i",this.isCompressing=void 0!==h}authorise(t){this.token=t,this.busy||this.sendNext()}push(t){this.busy||!this.token?this.queue.push(t):(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t))}sendNext(){const t=this.queue.shift();t?(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t)):this.busy=!1}retry(t,i){this.attemptsCount>=this.MAX_ATTEMPTS_COUNT?this.onFailure(`Failed to send batch after ${this.attemptsCount} attempts.`):(this.attemptsCount++,setTimeout(()=>this.sendBatch(t,i),this.ATTEMPT_TIMEOUT*this.attemptsCount))}sendBatch(t,i){this.busy=!0;const s={Authorization:"Bearer "+this.token};i&&(s["Content-Encoding"]="gzip"),null!==this.token?fetch(this.ingestURL,{body:t,method:"POST",headers:s,keepalive:t.length<65536}).then(s=>{if(401===s.status)return this.busy=!1,void this.onUnauthorised();s.status>=400?this.retry(t,i):(this.attemptsCount=0,this.sendNext())}).catch(s=>{console.warn("OpenReplay:",s),this.retry(t,i)}):setTimeout(()=>{this.sendBatch(t,i)},500)}sendCompressed(t){this.sendBatch(t,!0)}sendUncompressed(t){this.sendBatch(t,!1)}clean(){this.sendNext(),setTimeout(()=>{this.token=null,this.queue.length=0},100)}}const i="function"==typeof TextEncoder?new TextEncoder:{encode(t){const i=t.length,s=new Uint8Array(3*i);let e=-1;for(let n=0,h=0,r=0;r!==i;){if(n=t.charCodeAt(r),r+=1,n>=55296&&n<=56319){if(r===i){s[e+=1]=239,s[e+=1]=191,s[e+=1]=189;break}if(h=t.charCodeAt(r),!(h>=56320&&h<=57343)){s[e+=1]=239,s[e+=1]=191,s[e+=1]=189;continue}if(n=1024*(n-55296)+h-56320+65536,r+=1,n>65535){s[e+=1]=240|n>>>18,s[e+=1]=128|n>>>12&63,s[e+=1]=128|n>>>6&63,s[e+=1]=128|63&n;continue}}n<=127?s[e+=1]=0|n:n<=2047?(s[e+=1]=192|n>>>6,s[e+=1]=128|63&n):(s[e+=1]=224|n>>>12,s[e+=1]=128|n>>>6&63,s[e+=1]=128|63&n)}return s.subarray(0,e+1)}};class s extends class{constructor(t){this.size=t,this.offset=0,this.checkpointOffset=0,this.data=new Uint8Array(t)}getCurrentOffset(){return this.offset}checkpoint(){this.checkpointOffset=this.offset}get isEmpty(){return 0===this.offset}skip(t){return this.offset+=t,this.offset<=this.size}set(t,i){this.data.set(t,i)}boolean(t){return this.data[this.offset++]=+t,this.offset<=this.size}uint(t){for((t<0||t>Number.MAX_SAFE_INTEGER)&&(t=0);t>=128;)this.data[this.offset++]=t%256|128,t=Math.floor(t/128);return this.data[this.offset++]=t,this.offset<=this.size}int(t){return t=Math.round(t),this.uint(t>=0?2*t:-2*t-1)}string(t){const s=i.encode(t),e=s.byteLength;return!(!this.uint(e)||this.offset+e>this.size)&&(this.data.set(s,this.offset),this.offset+=e,!0)}reset(){this.offset=0,this.checkpointOffset=0}flush(){const t=this.data.slice(0,this.checkpointOffset);return this.reset(),t}}{encode(t){switch(t[0]){case 0:return this.uint(t[1]);case 4:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 5:return this.uint(t[1])&&this.uint(t[2]);case 6:return this.int(t[1])&&this.int(t[2]);case 7:return!0;case 8:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.string(t[4])&&this.boolean(t[5]);case 9:case 10:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 11:return this.uint(t[1]);case 12:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 13:case 14:return this.uint(t[1])&&this.string(t[2]);case 16:return this.uint(t[1])&&this.int(t[2])&&this.int(t[3]);case 17:return this.uint(t[1])&&this.string(t[2]);case 18:return this.uint(t[1])&&this.string(t[2])&&this.int(t[3]);case 19:return this.uint(t[1])&&this.boolean(t[2]);case 20:return this.uint(t[1])&&this.uint(t[2]);case 21:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8]);case 22:return this.string(t[1])&&this.string(t[2]);case 23:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 24:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 27:return this.string(t[1])&&this.string(t[2]);case 28:case 29:return this.string(t[1]);case 30:return this.string(t[1])&&this.string(t[2]);case 37:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3]);case 38:return this.uint(t[1])&&this.uint(t[2]);case 39:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7]);case 40:return this.string(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 41:return this.string(t[1])&&this.string(t[2]);case 42:return this.string(t[1]);case 44:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 45:case 46:return this.string(t[1])&&this.string(t[2]);case 47:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 48:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 49:return this.int(t[1])&&this.int(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 50:return this.uint(t[1])&&this.string(t[2]);case 51:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 53:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8]);case 54:return this.uint(t[1])&&this.string(t[2]);case 55:return this.boolean(t[1]);case 57:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 58:return this.int(t[1]);case 59:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6])&&this.string(t[7]);case 60:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 61:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 63:case 64:return this.string(t[1])&&this.string(t[2]);case 67:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 69:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 70:return this.uint(t[1])&&this.uint(t[2]);case 71:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 73:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 75:case 76:case 77:return this.uint(t[1])&&this.uint(t[2]);case 78:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 79:return this.string(t[1])&&this.string(t[2]);case 81:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.int(t[4])&&this.string(t[5]);case 82:return this.uint(t[1])&&this.uint(t[2]);case 112:return this.uint(t[1])&&this.string(t[2])&&this.boolean(t[3])&&this.string(t[4])&&this.int(t[5])&&this.int(t[6]);case 113:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3]);case 114:case 115:return this.uint(t[1]);case 116:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8])&&this.uint(t[9])&&this.boolean(t[10])}}}class e{constructor(){this.idx=1,this.backDict={}}getKey(t){let i=!1;return this.backDict[t]||(i=!0,this.backDict[t]=this.idx++),[this.backDict[t],i]}}class n{constructor(t,i,n,h,r){this.pageNo=t,this.timestamp=i,this.url=n,this.onBatch=h,this.isDictDisabled=r,this.nextIndex=0,this.beaconSize=2e5,this.encoder=new s(this.beaconSize),this.strDict=new e,this.sizeBuffer=new Uint8Array(3),this.isEmpty=!0,this.beaconSizeLimit=1e6,this.prepare()}writeType(t){return this.encoder.uint(t[0])}writeFields(t){return this.encoder.encode(t)}writeSizeAt(t,i){for(let i=0;i<3;i++)this.sizeBuffer[i]=t>>8*i;this.encoder.set(this.sizeBuffer,i)}prepare(){if(!this.encoder.isEmpty)return;const t=[81,1,this.pageNo,this.nextIndex,this.timestamp,this.url];this.writeType(t),this.writeFields(t),this.isEmpty=!0}writeWithSize(t){const i=this.encoder;if(!this.writeType(t)||!i.skip(3))return!1;const s=i.getCurrentOffset(),e=this.writeFields(t);if(e){const e=i.getCurrentOffset()-s;if(e>16777215)return console.warn("OpenReplay: max message size overflow."),!1;this.writeSizeAt(e,s-3),i.checkpoint(),this.isEmpty=this.isEmpty&&0===t[0],this.nextIndex++}return e}setBeaconSizeLimit(t){this.beaconSizeLimit=t}applyDict(t){const[i,s]=this.strDict.getKey(t);return s&&this.writeMessage([50,i,t]),i}writeMessage(t){0===t[0]&&(this.timestamp=t[1]),4===t[0]&&(this.url=t[1]),12===t[0]&&(this.isDictDisabled||(t=[51,t[1],this.applyDict(t[2]),this.applyDict(t[3])])),this.writeWithSize(t)||(this.finaliseBatch(),this.writeWithSize(t)||(this.encoder=new s(this.beaconSizeLimit),this.prepare(),this.writeWithSize(t)?this.finaliseBatch():console.warn("OpenReplay: beacon size overflow. Skipping large message.",t,this),this.encoder=new s(this.beaconSize),this.prepare()))}finaliseBatch(){if(this.isEmpty)return;const t=this.encoder.flush();this.onBatch(t),this.prepare()}clean(){this.encoder.reset()}}var h;!function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Stopping=2]="Stopping",t[t.Active=3]="Active",t[t.Stopped=4]="Stopped"}(h||(h={}));let r=null,u=null,a=h.NotActive;function o(){u&&u.finaliseBatch()}function c(){a=h.Stopping,null!==l&&(clearInterval(l),l=null),u&&(u.clean(),u=null),r&&(r.clean(),setTimeout(()=>{r=null},500)),a=h.NotActive}function g(){a!==h.Stopped&&(postMessage("restart"),c())}let p,l=null;self.onmessage=({data:i})=>{if(null!=i){if("stop"===i)return o(),c(),a=h.Stopped;if(!Array.isArray(i)){if("compressed"===i.type){if(!r)return console.debug("WebWorker: sender not initialised. Compressed batch."),void g();r.sendCompressed(i.batch)}if("uncompressed"===i.type){if(!r)return console.debug("WebWorker: sender not initialised. Uncompressed batch."),void g();r.sendUncompressed(i.batch)}return"start"===i.type?(a=h.Starting,r=new t(i.ingestPoint,()=>{g()},t=>{!function(t){postMessage({type:"failure",reason:t}),c()}(t)},i.connAttemptCount,i.connAttemptGap,t=>{postMessage({type:"compress",batch:t},[t.buffer])}),u=new n(i.pageNo,i.timestamp,i.url,t=>r&&r.push(t),i.isDictDisabled),null===l&&(l=setInterval(o,1e4)),a=h.Active):"auth"===i.type?r?u?(r.authorise(i.token),void(i.beaconSizeLimit&&u.setBeaconSizeLimit(i.beaconSizeLimit))):(console.debug("WebWorker: writer not initialised. Received auth."),void g()):(console.debug("WebWorker: sender not initialised. Received auth."),void g()):void 0}if(null!==u){const t=u;i.forEach(i=>{55===i[0]&&(i[1]?p=setTimeout(()=>g(),18e5):clearTimeout(p)),t.writeMessage(i)})}u||(postMessage("not_init"),g())}else o()};'], { type: 'text/javascript' })));
|
|
85
86
|
this.worker.onerror = (e) => {
|
|
86
87
|
this._debug('webworker_error', e);
|
|
87
88
|
};
|
|
88
89
|
this.worker.onmessage = ({ data }) => {
|
|
89
90
|
var _a;
|
|
90
91
|
if (data === 'restart') {
|
|
92
|
+
console.log('WebWorker: restarting');
|
|
91
93
|
this.stop(false);
|
|
92
94
|
void this.start({}, true);
|
|
93
95
|
}
|
|
@@ -95,6 +97,7 @@ class App {
|
|
|
95
97
|
console.warn('WebWorker: writer not initialised. Restarting tracker');
|
|
96
98
|
}
|
|
97
99
|
else if (data.type === 'failure') {
|
|
100
|
+
console.log('WebWorker: failure', data);
|
|
98
101
|
this.stop(false);
|
|
99
102
|
this._debug('worker_failed', data.reason);
|
|
100
103
|
}
|
|
@@ -345,6 +348,7 @@ class App {
|
|
|
345
348
|
url: document.URL,
|
|
346
349
|
connAttemptCount: this.options.connAttemptCount,
|
|
347
350
|
connAttemptGap: this.options.connAttemptGap,
|
|
351
|
+
isDictDisabled: Boolean(this.options.disableStringDict),
|
|
348
352
|
});
|
|
349
353
|
const lsReset = this.sessionStorage.getItem(this.options.session_reset_key) !== null;
|
|
350
354
|
this.sessionStorage.removeItem(this.options.session_reset_key);
|
|
@@ -421,6 +425,8 @@ class App {
|
|
|
421
425
|
return SuccessfulStart(onStartInfo);
|
|
422
426
|
})
|
|
423
427
|
.catch((reason) => {
|
|
428
|
+
console.log('OpenReplay: start error', reason);
|
|
429
|
+
console.trace('Tracing tracker restart');
|
|
424
430
|
this.stop();
|
|
425
431
|
this.session.reset();
|
|
426
432
|
if (reason === CANCELED) {
|
package/cjs/index.js
CHANGED
|
@@ -142,7 +142,7 @@ class API {
|
|
|
142
142
|
// no-cors issue only with text/plain or not-set Content-Type
|
|
143
143
|
// req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
|
144
144
|
req.send(JSON.stringify({
|
|
145
|
-
trackerVersion: '7.0.
|
|
145
|
+
trackerVersion: '7.0.4-beta.1',
|
|
146
146
|
projectKey: options.projectKey,
|
|
147
147
|
doNotTrack,
|
|
148
148
|
// TODO: add precise reason (an exact API missing)
|
package/cjs/modules/network.js
CHANGED
|
@@ -160,7 +160,7 @@ function default_1(app, opts = {}) {
|
|
|
160
160
|
xhr.addEventListener('load', app.safe((e) => {
|
|
161
161
|
const { headers: reqHs, body: reqBody } = getXHRRequestDataObject(xhr);
|
|
162
162
|
const duration = startTime > 0 ? e.timeStamp - startTime : 0;
|
|
163
|
-
const hString = xhr.getAllResponseHeaders() || ''; // might be null (
|
|
163
|
+
const hString = xhr.getAllResponseHeaders() || ''; // might be null (only if no response received though)
|
|
164
164
|
const headersArr = hString.trim().split(/[\r\n]+/);
|
|
165
165
|
const headerMap = {};
|
|
166
166
|
headersArr.forEach(function (line) {
|
package/jest.config.js
CHANGED
package/lib/app/index.d.ts
CHANGED
package/lib/app/index.js
CHANGED
|
@@ -31,7 +31,7 @@ export default class App {
|
|
|
31
31
|
this.stopCallbacks = [];
|
|
32
32
|
this.commitCallbacks = [];
|
|
33
33
|
this.activityState = ActivityState.NotActive;
|
|
34
|
-
this.version = '7.0.
|
|
34
|
+
this.version = '7.0.4-beta.1'; // TODO: version compatability check inside each plugin.
|
|
35
35
|
this.compressionThreshold = 24 * 1000;
|
|
36
36
|
this.restartAttempts = 0;
|
|
37
37
|
this._usingOldFetchPlugin = false;
|
|
@@ -52,6 +52,7 @@ export default class App {
|
|
|
52
52
|
__debug_report_edp: null,
|
|
53
53
|
localStorage: null,
|
|
54
54
|
sessionStorage: null,
|
|
55
|
+
disableStringDict: false,
|
|
55
56
|
}, options);
|
|
56
57
|
this.revID = this.options.revID;
|
|
57
58
|
this.localStorage = (_a = this.options.localStorage) !== null && _a !== void 0 ? _a : window.localStorage;
|
|
@@ -78,13 +79,14 @@ export default class App {
|
|
|
78
79
|
this.session.applySessionHash(sessionToken);
|
|
79
80
|
}
|
|
80
81
|
try {
|
|
81
|
-
this.worker = new Worker(URL.createObjectURL(new Blob(['"use strict";class t{constructor(t,i,s,e=10,n=1e3,h){this.onUnauthorised=i,this.onFailure=s,this.MAX_ATTEMPTS_COUNT=e,this.ATTEMPT_TIMEOUT=n,this.onCompress=h,this.attemptsCount=0,this.busy=!1,this.queue=[],this.token=null,this.isCompressing=!1,this.ingestURL=t+"/v1/web/i",void 0!==h&&(this.isCompressing=!0)}authorise(t){this.token=t,this.busy||this.sendNext()}push(t){this.busy||!this.token?this.queue.push(t):(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t))}sendNext(){const t=this.queue.shift();t?(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t)):this.busy=!1}retry(t,i){this.attemptsCount>=this.MAX_ATTEMPTS_COUNT?this.onFailure(`Failed to send batch after ${this.attemptsCount} attempts.`):(this.attemptsCount++,setTimeout(()=>this.sendBatch(t,i),this.ATTEMPT_TIMEOUT*this.attemptsCount))}sendBatch(t,i){this.busy=!0;const s={Authorization:"Bearer "+this.token};i&&(s["Content-Encoding"]="gzip"),null!==this.token?fetch(this.ingestURL,{body:t,method:"POST",headers:s,keepalive:t.length<65536}).then(s=>{if(401===s.status)return this.busy=!1,void this.onUnauthorised();s.status>=400?this.retry(t,i):(this.attemptsCount=0,this.sendNext())}).catch(s=>{console.warn("OpenReplay:",s),this.retry(t,i)}):setTimeout(()=>{this.sendBatch(t,i)},500)}sendCompressed(t){this.sendBatch(t,!0)}sendUncompressed(t){this.sendBatch(t,!1)}clean(){this.queue.length=0,this.token=null}}const i="function"==typeof TextEncoder?new TextEncoder:{encode(t){const i=t.length,s=new Uint8Array(3*i);let e=-1;for(let n=0,h=0,r=0;r!==i;){if(n=t.charCodeAt(r),r+=1,n>=55296&&n<=56319){if(r===i){s[e+=1]=239,s[e+=1]=191,s[e+=1]=189;break}if(h=t.charCodeAt(r),!(h>=56320&&h<=57343)){s[e+=1]=239,s[e+=1]=191,s[e+=1]=189;continue}if(n=1024*(n-55296)+h-56320+65536,r+=1,n>65535){s[e+=1]=240|n>>>18,s[e+=1]=128|n>>>12&63,s[e+=1]=128|n>>>6&63,s[e+=1]=128|63&n;continue}}n<=127?s[e+=1]=0|n:n<=2047?(s[e+=1]=192|n>>>6,s[e+=1]=128|63&n):(s[e+=1]=224|n>>>12,s[e+=1]=128|n>>>6&63,s[e+=1]=128|63&n)}return s.subarray(0,e+1)}};class s extends class{constructor(t){this.size=t,this.offset=0,this.checkpointOffset=0,this.data=new Uint8Array(t)}getCurrentOffset(){return this.offset}checkpoint(){this.checkpointOffset=this.offset}get isEmpty(){return 0===this.offset}skip(t){return this.offset+=t,this.offset<=this.size}set(t,i){this.data.set(t,i)}boolean(t){return this.data[this.offset++]=+t,this.offset<=this.size}uint(t){for((t<0||t>Number.MAX_SAFE_INTEGER)&&(t=0);t>=128;)this.data[this.offset++]=t%256|128,t=Math.floor(t/128);return this.data[this.offset++]=t,this.offset<=this.size}int(t){return t=Math.round(t),this.uint(t>=0?2*t:-2*t-1)}string(t){const s=i.encode(t),e=s.byteLength;return!(!this.uint(e)||this.offset+e>this.size)&&(this.data.set(s,this.offset),this.offset+=e,!0)}reset(){this.offset=0,this.checkpointOffset=0}flush(){const t=this.data.slice(0,this.checkpointOffset);return this.reset(),t}}{encode(t){switch(t[0]){case 0:return this.uint(t[1]);case 4:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 5:return this.uint(t[1])&&this.uint(t[2]);case 6:return this.int(t[1])&&this.int(t[2]);case 7:return!0;case 8:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.string(t[4])&&this.boolean(t[5]);case 9:case 10:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 11:return this.uint(t[1]);case 12:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 13:case 14:return this.uint(t[1])&&this.string(t[2]);case 16:return this.uint(t[1])&&this.int(t[2])&&this.int(t[3]);case 17:return this.uint(t[1])&&this.string(t[2]);case 18:return this.uint(t[1])&&this.string(t[2])&&this.int(t[3]);case 19:return this.uint(t[1])&&this.boolean(t[2]);case 20:return this.uint(t[1])&&this.uint(t[2]);case 21:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8]);case 22:return this.string(t[1])&&this.string(t[2]);case 23:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 24:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 27:return this.string(t[1])&&this.string(t[2]);case 28:case 29:return this.string(t[1]);case 30:return this.string(t[1])&&this.string(t[2]);case 37:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3]);case 38:return this.uint(t[1])&&this.uint(t[2]);case 39:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7]);case 40:return this.string(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 41:return this.string(t[1])&&this.string(t[2]);case 42:return this.string(t[1]);case 44:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 45:case 46:return this.string(t[1])&&this.string(t[2]);case 47:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 48:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 49:return this.int(t[1])&&this.int(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 50:return this.uint(t[1])&&this.string(t[2]);case 51:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 53:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8]);case 54:return this.uint(t[1])&&this.string(t[2]);case 55:return this.boolean(t[1]);case 57:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 58:return this.int(t[1]);case 59:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6])&&this.string(t[7]);case 60:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 61:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 63:case 64:return this.string(t[1])&&this.string(t[2]);case 67:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 69:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 70:return this.uint(t[1])&&this.uint(t[2]);case 71:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 73:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 75:case 76:case 77:return this.uint(t[1])&&this.uint(t[2]);case 78:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 79:return this.string(t[1])&&this.string(t[2]);case 81:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.int(t[4])&&this.string(t[5]);case 82:return this.uint(t[1])&&this.uint(t[2]);case 112:return this.uint(t[1])&&this.string(t[2])&&this.boolean(t[3])&&this.string(t[4])&&this.int(t[5])&&this.int(t[6]);case 113:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3]);case 114:case 115:return this.uint(t[1]);case 116:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8])&&this.uint(t[9])&&this.boolean(t[10])}}}class e{constructor(){this.idx=1,this.backDict={}}getKey(t){let i=!1;return this.backDict[t]||(i=!0,this.backDict[t]=this.idx++),[this.backDict[t],i]}}class n{constructor(t,i,n,h){this.pageNo=t,this.timestamp=i,this.url=n,this.onBatch=h,this.nextIndex=0,this.beaconSize=2e5,this.encoder=new s(this.beaconSize),this.strDict=new e,this.sizeBuffer=new Uint8Array(3),this.isEmpty=!0,this.beaconSizeLimit=1e6,this.prepare()}writeType(t){return this.encoder.uint(t[0])}writeFields(t){return this.encoder.encode(t)}writeSizeAt(t,i){for(let i=0;i<3;i++)this.sizeBuffer[i]=t>>8*i;this.encoder.set(this.sizeBuffer,i)}prepare(){if(!this.encoder.isEmpty)return;const t=[81,1,this.pageNo,this.nextIndex,this.timestamp,this.url];this.writeType(t),this.writeFields(t),this.isEmpty=!0}writeWithSize(t){const i=this.encoder;if(!this.writeType(t)||!i.skip(3))return!1;const s=i.getCurrentOffset(),e=this.writeFields(t);if(e){const e=i.getCurrentOffset()-s;if(e>16777215)return console.warn("OpenReplay: max message size overflow."),!1;this.writeSizeAt(e,s-3),i.checkpoint(),this.isEmpty=this.isEmpty&&0===t[0],this.nextIndex++}return e}setBeaconSizeLimit(t){this.beaconSizeLimit=t}applyDict(t){const[i,s]=this.strDict.getKey(t);return s&&this.writeMessage([50,i,t]),i}writeMessage(t){0===t[0]&&(this.timestamp=t[1]),4===t[0]&&(this.url=t[1]),12===t[0]&&(t=[51,t[1],this.applyDict(t[2]),this.applyDict(t[3])]),this.writeWithSize(t)||(this.finaliseBatch(),this.writeWithSize(t)||(this.encoder=new s(this.beaconSizeLimit),this.prepare(),this.writeWithSize(t)?this.finaliseBatch():console.warn("OpenReplay: beacon size overflow. Skipping large message.",t,this),this.encoder=new s(this.beaconSize),this.prepare()))}finaliseBatch(){this.isEmpty||(this.onBatch(this.encoder.flush()),this.prepare())}clean(){this.encoder.reset()}}var h;!function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Stopping=2]="Stopping",t[t.Active=3]="Active"}(h||(h={}));let r=null,u=null;function a(){u&&u.finaliseBatch()}function o(){h.Stopping,null!==p&&(clearInterval(p),p=null),u&&(u.clean(),u=null),r&&(r.clean(),r=null),h.NotActive}function c(){postMessage("restart"),o()}h.NotActive;let g,p=null;self.onmessage=({data:i})=>{if(null!=i){if("stop"===i)return a(),void o();if(!Array.isArray(i)){if("compressed"===i.type){if(!r)return console.debug("WebWorker: sender not initialised. Compressed batch."),void c();r.sendCompressed(i.batch)}if("uncompressed"===i.type){if(!r)return console.debug("WebWorker: sender not initialised. Uncompressed batch."),void c();r.sendUncompressed(i.batch)}return"start"===i.type?(h.Starting,r=new t(i.ingestPoint,()=>{c()},t=>{!function(t){postMessage({type:"failure",reason:t}),o()}(t)},i.connAttemptCount,i.connAttemptGap,t=>{postMessage({type:"compress",batch:t},[t.buffer])}),u=new n(i.pageNo,i.timestamp,i.url,t=>r&&r.push(t)),null===p&&(p=setInterval(a,1e4)),h.Active):"auth"===i.type?r?u?(r.authorise(i.token),void(i.beaconSizeLimit&&u.setBeaconSizeLimit(i.beaconSizeLimit))):(console.debug("WebWorker: writer not initialised. Received auth."),void c()):(console.debug("WebWorker: sender not initialised. Received auth."),void c()):void 0}if(null!==u){const t=u;i.forEach(i=>{55===i[0]&&(i[1]?g=setTimeout(()=>c(),18e5):clearTimeout(g)),t.writeMessage(i)})}u||(postMessage("not_init"),c())}else a()};'], { type: 'text/javascript' })));
|
|
82
|
+
this.worker = new Worker(URL.createObjectURL(new Blob(['"use strict";class t{constructor(t,i,s,e=10,n=1e3,h){this.onUnauthorised=i,this.onFailure=s,this.MAX_ATTEMPTS_COUNT=e,this.ATTEMPT_TIMEOUT=n,this.onCompress=h,this.attemptsCount=0,this.busy=!1,this.queue=[],this.token=null,this.ingestURL=t+"/v1/web/i",this.isCompressing=void 0!==h}authorise(t){this.token=t,this.busy||this.sendNext()}push(t){this.busy||!this.token?this.queue.push(t):(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t))}sendNext(){const t=this.queue.shift();t?(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t)):this.busy=!1}retry(t,i){this.attemptsCount>=this.MAX_ATTEMPTS_COUNT?this.onFailure(`Failed to send batch after ${this.attemptsCount} attempts.`):(this.attemptsCount++,setTimeout(()=>this.sendBatch(t,i),this.ATTEMPT_TIMEOUT*this.attemptsCount))}sendBatch(t,i){this.busy=!0;const s={Authorization:"Bearer "+this.token};i&&(s["Content-Encoding"]="gzip"),null!==this.token?fetch(this.ingestURL,{body:t,method:"POST",headers:s,keepalive:t.length<65536}).then(s=>{if(401===s.status)return this.busy=!1,void this.onUnauthorised();s.status>=400?this.retry(t,i):(this.attemptsCount=0,this.sendNext())}).catch(s=>{console.warn("OpenReplay:",s),this.retry(t,i)}):setTimeout(()=>{this.sendBatch(t,i)},500)}sendCompressed(t){this.sendBatch(t,!0)}sendUncompressed(t){this.sendBatch(t,!1)}clean(){this.sendNext(),setTimeout(()=>{this.token=null,this.queue.length=0},100)}}const i="function"==typeof TextEncoder?new TextEncoder:{encode(t){const i=t.length,s=new Uint8Array(3*i);let e=-1;for(let n=0,h=0,r=0;r!==i;){if(n=t.charCodeAt(r),r+=1,n>=55296&&n<=56319){if(r===i){s[e+=1]=239,s[e+=1]=191,s[e+=1]=189;break}if(h=t.charCodeAt(r),!(h>=56320&&h<=57343)){s[e+=1]=239,s[e+=1]=191,s[e+=1]=189;continue}if(n=1024*(n-55296)+h-56320+65536,r+=1,n>65535){s[e+=1]=240|n>>>18,s[e+=1]=128|n>>>12&63,s[e+=1]=128|n>>>6&63,s[e+=1]=128|63&n;continue}}n<=127?s[e+=1]=0|n:n<=2047?(s[e+=1]=192|n>>>6,s[e+=1]=128|63&n):(s[e+=1]=224|n>>>12,s[e+=1]=128|n>>>6&63,s[e+=1]=128|63&n)}return s.subarray(0,e+1)}};class s extends class{constructor(t){this.size=t,this.offset=0,this.checkpointOffset=0,this.data=new Uint8Array(t)}getCurrentOffset(){return this.offset}checkpoint(){this.checkpointOffset=this.offset}get isEmpty(){return 0===this.offset}skip(t){return this.offset+=t,this.offset<=this.size}set(t,i){this.data.set(t,i)}boolean(t){return this.data[this.offset++]=+t,this.offset<=this.size}uint(t){for((t<0||t>Number.MAX_SAFE_INTEGER)&&(t=0);t>=128;)this.data[this.offset++]=t%256|128,t=Math.floor(t/128);return this.data[this.offset++]=t,this.offset<=this.size}int(t){return t=Math.round(t),this.uint(t>=0?2*t:-2*t-1)}string(t){const s=i.encode(t),e=s.byteLength;return!(!this.uint(e)||this.offset+e>this.size)&&(this.data.set(s,this.offset),this.offset+=e,!0)}reset(){this.offset=0,this.checkpointOffset=0}flush(){const t=this.data.slice(0,this.checkpointOffset);return this.reset(),t}}{encode(t){switch(t[0]){case 0:return this.uint(t[1]);case 4:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 5:return this.uint(t[1])&&this.uint(t[2]);case 6:return this.int(t[1])&&this.int(t[2]);case 7:return!0;case 8:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.string(t[4])&&this.boolean(t[5]);case 9:case 10:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 11:return this.uint(t[1]);case 12:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 13:case 14:return this.uint(t[1])&&this.string(t[2]);case 16:return this.uint(t[1])&&this.int(t[2])&&this.int(t[3]);case 17:return this.uint(t[1])&&this.string(t[2]);case 18:return this.uint(t[1])&&this.string(t[2])&&this.int(t[3]);case 19:return this.uint(t[1])&&this.boolean(t[2]);case 20:return this.uint(t[1])&&this.uint(t[2]);case 21:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8]);case 22:return this.string(t[1])&&this.string(t[2]);case 23:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 24:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 27:return this.string(t[1])&&this.string(t[2]);case 28:case 29:return this.string(t[1]);case 30:return this.string(t[1])&&this.string(t[2]);case 37:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3]);case 38:return this.uint(t[1])&&this.uint(t[2]);case 39:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7]);case 40:return this.string(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 41:return this.string(t[1])&&this.string(t[2]);case 42:return this.string(t[1]);case 44:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 45:case 46:return this.string(t[1])&&this.string(t[2]);case 47:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 48:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 49:return this.int(t[1])&&this.int(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 50:return this.uint(t[1])&&this.string(t[2]);case 51:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 53:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8]);case 54:return this.uint(t[1])&&this.string(t[2]);case 55:return this.boolean(t[1]);case 57:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 58:return this.int(t[1]);case 59:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6])&&this.string(t[7]);case 60:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 61:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 63:case 64:return this.string(t[1])&&this.string(t[2]);case 67:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 69:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 70:return this.uint(t[1])&&this.uint(t[2]);case 71:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 73:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 75:case 76:case 77:return this.uint(t[1])&&this.uint(t[2]);case 78:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 79:return this.string(t[1])&&this.string(t[2]);case 81:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.int(t[4])&&this.string(t[5]);case 82:return this.uint(t[1])&&this.uint(t[2]);case 112:return this.uint(t[1])&&this.string(t[2])&&this.boolean(t[3])&&this.string(t[4])&&this.int(t[5])&&this.int(t[6]);case 113:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3]);case 114:case 115:return this.uint(t[1]);case 116:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8])&&this.uint(t[9])&&this.boolean(t[10])}}}class e{constructor(){this.idx=1,this.backDict={}}getKey(t){let i=!1;return this.backDict[t]||(i=!0,this.backDict[t]=this.idx++),[this.backDict[t],i]}}class n{constructor(t,i,n,h,r){this.pageNo=t,this.timestamp=i,this.url=n,this.onBatch=h,this.isDictDisabled=r,this.nextIndex=0,this.beaconSize=2e5,this.encoder=new s(this.beaconSize),this.strDict=new e,this.sizeBuffer=new Uint8Array(3),this.isEmpty=!0,this.beaconSizeLimit=1e6,this.prepare()}writeType(t){return this.encoder.uint(t[0])}writeFields(t){return this.encoder.encode(t)}writeSizeAt(t,i){for(let i=0;i<3;i++)this.sizeBuffer[i]=t>>8*i;this.encoder.set(this.sizeBuffer,i)}prepare(){if(!this.encoder.isEmpty)return;const t=[81,1,this.pageNo,this.nextIndex,this.timestamp,this.url];this.writeType(t),this.writeFields(t),this.isEmpty=!0}writeWithSize(t){const i=this.encoder;if(!this.writeType(t)||!i.skip(3))return!1;const s=i.getCurrentOffset(),e=this.writeFields(t);if(e){const e=i.getCurrentOffset()-s;if(e>16777215)return console.warn("OpenReplay: max message size overflow."),!1;this.writeSizeAt(e,s-3),i.checkpoint(),this.isEmpty=this.isEmpty&&0===t[0],this.nextIndex++}return e}setBeaconSizeLimit(t){this.beaconSizeLimit=t}applyDict(t){const[i,s]=this.strDict.getKey(t);return s&&this.writeMessage([50,i,t]),i}writeMessage(t){0===t[0]&&(this.timestamp=t[1]),4===t[0]&&(this.url=t[1]),12===t[0]&&(this.isDictDisabled||(t=[51,t[1],this.applyDict(t[2]),this.applyDict(t[3])])),this.writeWithSize(t)||(this.finaliseBatch(),this.writeWithSize(t)||(this.encoder=new s(this.beaconSizeLimit),this.prepare(),this.writeWithSize(t)?this.finaliseBatch():console.warn("OpenReplay: beacon size overflow. Skipping large message.",t,this),this.encoder=new s(this.beaconSize),this.prepare()))}finaliseBatch(){if(this.isEmpty)return;const t=this.encoder.flush();this.onBatch(t),this.prepare()}clean(){this.encoder.reset()}}var h;!function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Stopping=2]="Stopping",t[t.Active=3]="Active",t[t.Stopped=4]="Stopped"}(h||(h={}));let r=null,u=null,a=h.NotActive;function o(){u&&u.finaliseBatch()}function c(){a=h.Stopping,null!==l&&(clearInterval(l),l=null),u&&(u.clean(),u=null),r&&(r.clean(),setTimeout(()=>{r=null},500)),a=h.NotActive}function g(){a!==h.Stopped&&(postMessage("restart"),c())}let p,l=null;self.onmessage=({data:i})=>{if(null!=i){if("stop"===i)return o(),c(),a=h.Stopped;if(!Array.isArray(i)){if("compressed"===i.type){if(!r)return console.debug("WebWorker: sender not initialised. Compressed batch."),void g();r.sendCompressed(i.batch)}if("uncompressed"===i.type){if(!r)return console.debug("WebWorker: sender not initialised. Uncompressed batch."),void g();r.sendUncompressed(i.batch)}return"start"===i.type?(a=h.Starting,r=new t(i.ingestPoint,()=>{g()},t=>{!function(t){postMessage({type:"failure",reason:t}),c()}(t)},i.connAttemptCount,i.connAttemptGap,t=>{postMessage({type:"compress",batch:t},[t.buffer])}),u=new n(i.pageNo,i.timestamp,i.url,t=>r&&r.push(t),i.isDictDisabled),null===l&&(l=setInterval(o,1e4)),a=h.Active):"auth"===i.type?r?u?(r.authorise(i.token),void(i.beaconSizeLimit&&u.setBeaconSizeLimit(i.beaconSizeLimit))):(console.debug("WebWorker: writer not initialised. Received auth."),void g()):(console.debug("WebWorker: sender not initialised. Received auth."),void g()):void 0}if(null!==u){const t=u;i.forEach(i=>{55===i[0]&&(i[1]?p=setTimeout(()=>g(),18e5):clearTimeout(p)),t.writeMessage(i)})}u||(postMessage("not_init"),g())}else o()};'], { type: 'text/javascript' })));
|
|
82
83
|
this.worker.onerror = (e) => {
|
|
83
84
|
this._debug('webworker_error', e);
|
|
84
85
|
};
|
|
85
86
|
this.worker.onmessage = ({ data }) => {
|
|
86
87
|
var _a;
|
|
87
88
|
if (data === 'restart') {
|
|
89
|
+
console.log('WebWorker: restarting');
|
|
88
90
|
this.stop(false);
|
|
89
91
|
void this.start({}, true);
|
|
90
92
|
}
|
|
@@ -92,6 +94,7 @@ export default class App {
|
|
|
92
94
|
console.warn('WebWorker: writer not initialised. Restarting tracker');
|
|
93
95
|
}
|
|
94
96
|
else if (data.type === 'failure') {
|
|
97
|
+
console.log('WebWorker: failure', data);
|
|
95
98
|
this.stop(false);
|
|
96
99
|
this._debug('worker_failed', data.reason);
|
|
97
100
|
}
|
|
@@ -342,6 +345,7 @@ export default class App {
|
|
|
342
345
|
url: document.URL,
|
|
343
346
|
connAttemptCount: this.options.connAttemptCount,
|
|
344
347
|
connAttemptGap: this.options.connAttemptGap,
|
|
348
|
+
isDictDisabled: Boolean(this.options.disableStringDict),
|
|
345
349
|
});
|
|
346
350
|
const lsReset = this.sessionStorage.getItem(this.options.session_reset_key) !== null;
|
|
347
351
|
this.sessionStorage.removeItem(this.options.session_reset_key);
|
|
@@ -418,6 +422,8 @@ export default class App {
|
|
|
418
422
|
return SuccessfulStart(onStartInfo);
|
|
419
423
|
})
|
|
420
424
|
.catch((reason) => {
|
|
425
|
+
console.log('OpenReplay: start error', reason);
|
|
426
|
+
console.trace('Tracing tracker restart');
|
|
421
427
|
this.stop();
|
|
422
428
|
this.session.reset();
|
|
423
429
|
if (reason === CANCELED) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../src/common/messages.gen.ts","../../src/common/interaction.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/parse5/dist/cjs/common/html.d.ts","../../node_modules/parse5/dist/cjs/common/token.d.ts","../../node_modules/parse5/dist/cjs/common/error-codes.d.ts","../../node_modules/parse5/dist/cjs/tokenizer/preprocessor.d.ts","../../node_modules/parse5/dist/cjs/tokenizer/index.d.ts","../../node_modules/parse5/dist/cjs/tree-adapters/interface.d.ts","../../node_modules/parse5/dist/cjs/parser/open-element-stack.d.ts","../../node_modules/parse5/dist/cjs/parser/formatting-element-list.d.ts","../../node_modules/parse5/dist/cjs/parser/index.d.ts","../../node_modules/parse5/dist/cjs/tree-adapters/default.d.ts","../../node_modules/parse5/dist/cjs/serializer/index.d.ts","../../node_modules/parse5/dist/cjs/common/foreign-content.d.ts","../../node_modules/parse5/dist/cjs/index.d.ts","../../node_modules/@types/tough-cookie/index.d.ts","../../node_modules/@types/jsdom/base.d.ts","../../node_modules/@types/jsdom/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/resolve/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","impliedFormat":1},{"version":"7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","impliedFormat":1},{"version":"8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","impliedFormat":1},{"version":"5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","impliedFormat":1},{"version":"4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","impliedFormat":1},{"version":"1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","impliedFormat":1},{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true,"impliedFormat":1},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true,"impliedFormat":1},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true,"impliedFormat":1},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true,"impliedFormat":1},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true,"impliedFormat":1},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true,"impliedFormat":1},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true,"impliedFormat":1},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true,"impliedFormat":1},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true,"impliedFormat":1},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true,"impliedFormat":1},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true,"impliedFormat":1},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e006479e644c0b532e275bfa27c4a3c898d18a32cfcad0a9d103b45c8464aaf","signature":"d122ccf255c1258d6ae7f54515914a5605a867108483fb5572c86707a2ed73f3","impliedFormat":99},{"version":"557f4368ce3ac79da76c2798548edd24fc33e817526ceb1969298f197815a64f","signature":"48290b53f9ec600dc1e7969c08d1542c977f1d6192366f5424208ea7abc39b9b","impliedFormat":99},{"version":"a20fc1fcd9cd7c2b79d5f00d14802c1d58c3848e09ee4f84b350591af88b7636","impliedFormat":1},{"version":"cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","impliedFormat":1},{"version":"b4f76b34637d79cefad486127115fed843762c69512d7101b7096e1293699679","impliedFormat":1},{"version":"93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","impliedFormat":1},{"version":"dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","impliedFormat":1},{"version":"b6ddf3a46ccfa4441d8be84d2e9bf3087573c48804196faedbd4a25b60631beb","impliedFormat":1},{"version":"89ccbe04e737ce613f5f04990271cfa84901446350b8551b0555ddf19319723b","impliedFormat":1},{"version":"9ee13abb39c50c2f45b5362dbadc55334e82dfc9789cfc070808e10dc5f60000","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"03c04ba2137908b3b6219ecadc3471d4e39bb9030e6404510ee6e87a3b590a2d","impliedFormat":1},{"version":"772ff00e189d93488d1ca6f0f4dfba77bd090a99ed31e19a14bc16fad4078e48","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d2bcfb9c4591832ec479f830c49c291419caeb19953506bdeef1c0e6ad79b03","impliedFormat":1},{"version":"ac0c7cb0a4c1bec60be2c0460b3bda1e674eaf2c98312d7b6f16a0bb58718e2d","impliedFormat":1},{"version":"7e2181a6fc140b4525d5a45c204477c37fa78a635558e88552c68f76a4325403","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"0ea59475772c2a8fdeb1f41ad9b02025aff6423003ec7eaf8129ee846f438aee","impliedFormat":1},{"version":"276b547eeb8eeeee9a446a3bfa6e07d1c0199269bdcf33813abab1281394a9cb","impliedFormat":1},{"version":"c999f7816955f75b447823e3e4085f699600e2a4a3327907df9af65b0a9c0df6","impliedFormat":1},{"version":"64361245fe025cbbad90451dd3698f7e6822d465ef568cbee3a4d8ddb52e7cda","impliedFormat":1},{"version":"8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","impliedFormat":1},{"version":"9b814e0806922056145bedb096f11b73bdce70cc871f3ccfc4ce00b2cba75718","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"2013a2215691096d953ce7cefbc71a6cd31ef14be092cd003792714c5cd23bde","affectsGlobalScope":true,"impliedFormat":1},{"version":"60155c38ec392043962a90006153f7e31187b93411f2d8f9b35f595e98b8d75f","impliedFormat":1},{"version":"2ad6a251b6ef19fd1f8498f83bb7b265033bd52287e1f6569d09544f18806713","impliedFormat":1},{"version":"bfa08f2c30c475aef1c9451855ba6b2acfdc64f61950a38fae75806d66fb85c2","impliedFormat":1},{"version":"159807eb55a9439f9a675bd493788190a6203b5f36c315f8c3acbfcb875c7072","impliedFormat":1},{"version":"fe31b2b31ac5453fc7b8eef32b62017e55b214ceb884f0b177f442af92e84682","impliedFormat":1},{"version":"dd72576c8ea64d55af46a386068503d3cfcecce84ed7e1cbd4ff4081ba67fafc","impliedFormat":1},{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"70a7e8a7880d55396285e4b85ff5bdf3af3083176abe07f944967836f2a43188","impliedFormat":1},{"version":"3570df7c6f3a976109f55b596a2d88c2f87e0574cd1502272594ee5c4e56d0ef","impliedFormat":1},{"version":"850e95721334c2aa7697b08782f443ec4286274e5024169d4443933544f359d7","impliedFormat":1},{"version":"74e6cd21f7b5e29fab05060ea24e2b90aa254f16f3f62ccd7055bdb8fc7b2ff5","affectsGlobalScope":true,"impliedFormat":1},{"version":"5761c90b0cabdd6bd1f5fb1c3bf942088fdd39e18ed35dbe39b0c34bc733bf13","affectsGlobalScope":true,"impliedFormat":1},{"version":"1eb6c5569d41e6021832d0a8a71f45fecbc13d03ad7d306da485999148b64955","impliedFormat":1},{"version":"c05ef0ecf06540ad3039515c10d3b27f9380639ced40f4093fd073e1b5ff21d9","impliedFormat":1},{"version":"fd25a0d3e6448b61d33e1fe4e0667a1a87a77e53570b65a454937cf2dc92f967","impliedFormat":1},{"version":"c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","impliedFormat":1},{"version":"24a68c38b5c66d6a6883624342560d88db670e97824b397e78d9dac121aa8bae","impliedFormat":1},{"version":"9a134dbb29f0af914d90b23f609b39019d66ed53db7d492ab6b04c67114559da","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"7b3781fbdfddbee8dba55ccee5aa74a7c8d6701ade11d49ab7d8cb1fcefe669e","impliedFormat":1},{"version":"c4aab2ec3a249f2a4caa9cbdb099752a80daf999b79d85aa3504cdfd6e559476","impliedFormat":1},{"version":"666d3f264db693828f6edc2eb53ae6013e40f6e39278ca209c7a8a99ac91b62f","affectsGlobalScope":true,"impliedFormat":1},{"version":"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","impliedFormat":1},{"version":"c764a6cf523d13f2304a23216cd1084e28c041eebabd8aa9b2a9d99866c668c0","impliedFormat":1},{"version":"1272a5c2bd05961adc473e905332b7a422b00485c10b41c752f7fcf6835e3436","impliedFormat":1},{"version":"30ef92bf8135ce36ba1231fe41715276f2a40be72a478ddeb862bc16672e8680","impliedFormat":1},{"version":"4ace0a30a70fe5963442d75ea6e69f525671ae76f6e57ab7556c44839b4237e8","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f03dbf03c001fb3ac1c9bea6dde049dfff27ef8886cc4a886374aacf2e997d","affectsGlobalScope":true,"impliedFormat":1},{"version":"66bfb3de947abf4b117ee849c245425dbe494d6903e28f9ded566e91c9d05d77","impliedFormat":1},{"version":"c28d4f58131b93d60e087b86148d4e0c9d9b5c49c23ff1a9d1a9594fdedd5d08","impliedFormat":1},{"version":"c6b5d7f259544c91024ecf2b17138574a3f6ff2476468fafd7f957d2b68d6d98","impliedFormat":1},{"version":"1ec27c4b695590464113276d174f873e260e468ef226b7dc18f9193875fa559d","affectsGlobalScope":true,"impliedFormat":1},{"version":"33da4ee2ab9fdd9ef8b3fc526d871ce02ae8c825283f5695e7cad507c087b97c","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"71709584ed5ed7d236dc225441ec4634ffc6c718853e04b9c27b9ea121459044","impliedFormat":1},{"version":"963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","impliedFormat":1},{"version":"fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","impliedFormat":1},{"version":"bf88ef4208a770ca39a844b182b3695df536326ea566893fdc5b8418702a331e","impliedFormat":1},{"version":"8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","impliedFormat":1},{"version":"7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","impliedFormat":1},{"version":"f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","impliedFormat":1},{"version":"ba600bf38b5c1a5dffa1b99dd7a783549082bbba3b4fe9497eaaf5e4c1764b20","impliedFormat":1},{"version":"ae8cd6af37275eac75f5369cdb5f01063bcf1f48d74cb434303ee50ec446acfe","impliedFormat":1},{"version":"2518830a2fda9c272ba48798d0e7b857037443b06594db8e42c87e86944ee9e4","impliedFormat":1},{"version":"95c1cf650d16b197525b5bfdf8dd7abba0a49d99ddb12a4ba66466a8a6903e49","impliedFormat":1},{"version":"1fe0aabe758d56ad72495d6e6c7b6ae75619faaeaaf03f0ddf1948eea4cfac84","impliedFormat":1},{"version":"bbc57966c8c48ee78fd58aadb893784025be056ae538ae22d1e83c502a987e68","impliedFormat":1},{"version":"5e5d6f6697e378b0660b567866bf67d099d0ea754f8810c0dabe737805f5cf03","impliedFormat":1},{"version":"99ab49d4732fdc98cf5c495925e65e796544cb4086fe42afc235dfc02bcf2351","impliedFormat":1},{"version":"af8339d509c40da075088e544c28ed37b519876e5c4d36a48644ebfb3c6ae6c8","impliedFormat":1},{"version":"d393adc32e520d4274bb4c3dfdcdb342b806a230b66ef0f82b35bffbc4aa2590","impliedFormat":1},{"version":"c26af7eaedb4f710984634e419ab15e54e5bb99a0b3cae71188c2fff572276de","impliedFormat":1},{"version":"38b58ef018d0aeee42ef74c42978bb5805503233fdeeb82cd2aed2199fb0d013","impliedFormat":1},{"version":"3b6040253231d44e6778eb6861cc86c1758562e77783d21b7ecbc73322ded539","impliedFormat":1},{"version":"cc256fd958b33576ed32c7338c64adb0d08fc0c2c6525010202fab83f32745da","impliedFormat":1},{"version":"fd0589ca571ad090b531d8c095e26caa53d4825c64d3ff2b2b1ab95d72294175","impliedFormat":1},{"version":"669843ecafb89ae1e944df06360e8966219e4c1c34c0d28aa2503272cdd444a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","impliedFormat":1},{"version":"bc88e4049153bc4dddb4503ed7e624eb141edfa9064b3659d6c86e900fe9e621","impliedFormat":1},{"version":"8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede","impliedFormat":1},{"version":"2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","impliedFormat":1},{"version":"2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","impliedFormat":1},{"version":"42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","impliedFormat":1},{"version":"d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","impliedFormat":1},{"version":"b9f96255e1048ed2ea33ec553122716f0e57fc1c3ad778e9aa15f5b46547bd23","impliedFormat":1},{"version":"7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","impliedFormat":1},{"version":"906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","impliedFormat":1},{"version":"5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","impliedFormat":1},{"version":"c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","impliedFormat":1},{"version":"e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","impliedFormat":1},{"version":"e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","impliedFormat":1},{"version":"9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","impliedFormat":1},{"version":"0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","impliedFormat":1},{"version":"71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","impliedFormat":1},{"version":"c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","impliedFormat":1},{"version":"2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","impliedFormat":1},{"version":"479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","impliedFormat":1},{"version":"ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","impliedFormat":1},{"version":"f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","impliedFormat":1},{"version":"86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","impliedFormat":1},{"version":"2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","impliedFormat":1},{"version":"a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","impliedFormat":1},{"version":"b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","impliedFormat":1},{"version":"61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","impliedFormat":1},{"version":"6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","impliedFormat":1},{"version":"c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","impliedFormat":1},{"version":"38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","impliedFormat":1},{"version":"d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","impliedFormat":1},{"version":"3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","impliedFormat":1},{"version":"b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","impliedFormat":1},{"version":"f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","impliedFormat":1},{"version":"843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","impliedFormat":1},{"version":"f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","impliedFormat":1},{"version":"6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","impliedFormat":1},{"version":"e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","impliedFormat":1},{"version":"a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","impliedFormat":1},{"version":"a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","impliedFormat":1},{"version":"da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"a1a261624efb3a00ff346b13580f70f3463b8cdcc58b60f5793ff11785d52cab","impliedFormat":1},{"version":"b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","impliedFormat":1},{"version":"70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","impliedFormat":1},{"version":"e9eb1b173aa166892f3eddab182e49cfe59aa2e14d33aedb6b49d175ed6a3750","impliedFormat":1}],"options":{"alwaysStrict":true,"composite":true,"declaration":true,"module":5,"noImplicitAny":true,"noImplicitThis":true,"outDir":"..","rootDir":"../../src","strictNullChecks":true,"target":2},"fileIdsList":[[46,99],[99],[46,47,48,49,50,99],[46,48,99],[69,70,99,106,107],[70,99,106],[99,110],[99,111],[69,99,101,106,125,126,128],[99,127],[53,99],[56,99],[57,62,90,99],[58,69,70,77,87,98,99],[58,59,69,77,99],[60,99],[61,62,70,78,99],[62,87,95,99],[63,65,69,77,99],[64,99],[65,66,99],[69,99],[67,69,99],[69,70,71,87,98,99],[69,70,71,84,87,90,99],[99,103],[65,69,72,77,87,98,99],[69,70,72,73,77,87,95,98,99],[72,74,87,95,98,99],[53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105],[69,75,99],[76,98,99],[65,69,77,87,99],[78,99],[79,99],[56,80,99],[81,97,99,103],[82,99],[83,99],[69,84,85,99],[84,86,99,101],[57,69,87,88,89,90,99],[57,87,89,99],[87,88,99],[90,99],[91,99],[87,99],[69,93,94,99],[93,94,99],[62,77,87,95,99],[96,99],[77,97,99],[57,72,83,98,99],[62,99],[87,99,100],[99,101],[99,102],[57,62,69,71,80,87,98,99,101,103],[87,99,104],[99,106],[99,132,171],[99,132,156,171],[99,171],[99,132],[99,132,157,171],[99,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[99,157,171],[99,173],[99,114],[99,113,114],[99,113],[99,113,114,115,117,118,121,122,123,124],[99,114,118],[99,113,114,115,117,118,119,120],[99,113,118],[99,118,122],[99,114,115,116],[99,115],[99,113,114,118],[44,99],[44]],"referencedMap":[[48,1],[46,2],[51,3],[47,1],[49,4],[50,1],[52,2],[108,5],[109,6],[110,2],[111,7],[112,8],[127,9],[128,10],[129,2],[107,2],[53,11],[54,11],[56,12],[57,13],[58,14],[59,15],[60,16],[61,17],[62,18],[63,19],[64,20],[65,21],[66,21],[68,22],[67,23],[69,22],[70,24],[71,25],[55,26],[105,2],[72,27],[73,28],[74,29],[106,30],[75,31],[76,32],[77,33],[78,34],[79,35],[80,36],[81,37],[82,38],[83,39],[84,40],[85,40],[86,41],[87,42],[89,43],[88,44],[90,45],[91,46],[92,47],[93,48],[94,49],[95,50],[96,51],[97,52],[98,53],[99,54],[100,55],[101,56],[102,57],[103,58],[104,59],[130,2],[131,60],[156,61],[157,62],[132,63],[135,63],[154,61],[155,61],[145,61],[144,64],[142,61],[137,61],[150,61],[148,61],[152,61],[136,61],[149,61],[153,61],[138,61],[139,61],[151,61],[133,61],[140,61],[141,61],[143,61],[147,61],[158,65],[146,61],[134,61],[171,66],[170,2],[165,65],[167,67],[166,65],[159,65],[160,65],[162,65],[164,65],[168,67],[169,67],[161,67],[163,67],[172,2],[126,2],[173,2],[174,68],[115,69],[124,70],[113,2],[114,71],[125,72],[120,73],[121,74],[119,75],[123,76],[117,77],[116,78],[122,79],[118,70],[8,2],[9,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[4,2],[23,2],[20,2],[21,2],[22,2],[24,2],[25,2],[26,2],[5,2],[27,2],[28,2],[29,2],[30,2],[6,2],[34,2],[31,2],[32,2],[33,2],[35,2],[7,2],[36,2],[41,2],[42,2],[37,2],[38,2],[39,2],[40,2],[1,2],[43,2],[45,80],[44,2]],"exportedModulesMap":[[48,1],[46,2],[51,3],[47,1],[49,4],[50,1],[52,2],[108,5],[109,6],[110,2],[111,7],[112,8],[127,9],[128,10],[129,2],[107,2],[53,11],[54,11],[56,12],[57,13],[58,14],[59,15],[60,16],[61,17],[62,18],[63,19],[64,20],[65,21],[66,21],[68,22],[67,23],[69,22],[70,24],[71,25],[55,26],[105,2],[72,27],[73,28],[74,29],[106,30],[75,31],[76,32],[77,33],[78,34],[79,35],[80,36],[81,37],[82,38],[83,39],[84,40],[85,40],[86,41],[87,42],[89,43],[88,44],[90,45],[91,46],[92,47],[93,48],[94,49],[95,50],[96,51],[97,52],[98,53],[99,54],[100,55],[101,56],[102,57],[103,58],[104,59],[130,2],[131,60],[156,61],[157,62],[132,63],[135,63],[154,61],[155,61],[145,61],[144,64],[142,61],[137,61],[150,61],[148,61],[152,61],[136,61],[149,61],[153,61],[138,61],[139,61],[151,61],[133,61],[140,61],[141,61],[143,61],[147,61],[158,65],[146,61],[134,61],[171,66],[170,2],[165,65],[167,67],[166,65],[159,65],[160,65],[162,65],[164,65],[168,67],[169,67],[161,67],[163,67],[172,2],[126,2],[173,2],[174,68],[115,69],[124,70],[113,2],[114,71],[125,72],[120,73],[121,74],[119,75],[123,76],[117,77],[116,78],[122,79],[118,70],[8,2],[9,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[4,2],[23,2],[20,2],[21,2],[22,2],[24,2],[25,2],[26,2],[5,2],[27,2],[28,2],[29,2],[30,2],[6,2],[34,2],[31,2],[32,2],[33,2],[35,2],[7,2],[36,2],[41,2],[42,2],[37,2],[38,2],[39,2],[40,2],[1,2],[43,2],[45,81]],"semanticDiagnosticsPerFile":[48,46,51,47,49,50,52,108,109,110,111,112,127,128,129,107,53,54,56,57,58,59,60,61,62,63,64,65,66,68,67,69,70,71,55,105,72,73,74,106,75,76,77,78,79,80,81,82,83,84,85,86,87,89,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,130,131,156,157,132,135,154,155,145,144,142,137,150,148,152,136,149,153,138,139,151,133,140,141,143,147,158,146,134,171,170,165,167,166,159,160,162,164,168,169,161,163,172,126,173,174,115,124,113,114,125,120,121,119,123,117,116,122,118,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,34,31,32,33,35,7,36,41,42,37,38,39,40,1,43,45,44],"latestChangedDtsFile":"./interaction.d.ts"},"version":"4.9.5"}
|
|
1
|
+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../src/common/messages.gen.ts","../../src/common/interaction.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/parse5/dist/cjs/common/html.d.ts","../../node_modules/parse5/dist/cjs/common/token.d.ts","../../node_modules/parse5/dist/cjs/common/error-codes.d.ts","../../node_modules/parse5/dist/cjs/tokenizer/preprocessor.d.ts","../../node_modules/parse5/dist/cjs/tokenizer/index.d.ts","../../node_modules/parse5/dist/cjs/tree-adapters/interface.d.ts","../../node_modules/parse5/dist/cjs/parser/open-element-stack.d.ts","../../node_modules/parse5/dist/cjs/parser/formatting-element-list.d.ts","../../node_modules/parse5/dist/cjs/parser/index.d.ts","../../node_modules/parse5/dist/cjs/tree-adapters/default.d.ts","../../node_modules/parse5/dist/cjs/serializer/index.d.ts","../../node_modules/parse5/dist/cjs/common/foreign-content.d.ts","../../node_modules/parse5/dist/cjs/index.d.ts","../../node_modules/@types/tough-cookie/index.d.ts","../../node_modules/@types/jsdom/base.d.ts","../../node_modules/@types/jsdom/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/resolve/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","impliedFormat":1},{"version":"7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","impliedFormat":1},{"version":"8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","impliedFormat":1},{"version":"5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","impliedFormat":1},{"version":"4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","impliedFormat":1},{"version":"1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","impliedFormat":1},{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true,"impliedFormat":1},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true,"impliedFormat":1},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true,"impliedFormat":1},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true,"impliedFormat":1},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true,"impliedFormat":1},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true,"impliedFormat":1},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true,"impliedFormat":1},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true,"impliedFormat":1},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true,"impliedFormat":1},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true,"impliedFormat":1},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true,"impliedFormat":1},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e006479e644c0b532e275bfa27c4a3c898d18a32cfcad0a9d103b45c8464aaf","signature":"d122ccf255c1258d6ae7f54515914a5605a867108483fb5572c86707a2ed73f3","impliedFormat":99},{"version":"c0018a88222befc471405632dc999ea5555a20009b4375135fc03cfd95161271","signature":"4103b796186185830ddbf994591f8722c0174be7adaa4b7512a837defb5117ce","impliedFormat":99},{"version":"a20fc1fcd9cd7c2b79d5f00d14802c1d58c3848e09ee4f84b350591af88b7636","impliedFormat":1},{"version":"cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","impliedFormat":1},{"version":"b4f76b34637d79cefad486127115fed843762c69512d7101b7096e1293699679","impliedFormat":1},{"version":"93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","impliedFormat":1},{"version":"dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","impliedFormat":1},{"version":"b6ddf3a46ccfa4441d8be84d2e9bf3087573c48804196faedbd4a25b60631beb","impliedFormat":1},{"version":"89ccbe04e737ce613f5f04990271cfa84901446350b8551b0555ddf19319723b","impliedFormat":1},{"version":"9ee13abb39c50c2f45b5362dbadc55334e82dfc9789cfc070808e10dc5f60000","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"03c04ba2137908b3b6219ecadc3471d4e39bb9030e6404510ee6e87a3b590a2d","impliedFormat":1},{"version":"772ff00e189d93488d1ca6f0f4dfba77bd090a99ed31e19a14bc16fad4078e48","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d2bcfb9c4591832ec479f830c49c291419caeb19953506bdeef1c0e6ad79b03","impliedFormat":1},{"version":"ac0c7cb0a4c1bec60be2c0460b3bda1e674eaf2c98312d7b6f16a0bb58718e2d","impliedFormat":1},{"version":"7e2181a6fc140b4525d5a45c204477c37fa78a635558e88552c68f76a4325403","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"0ea59475772c2a8fdeb1f41ad9b02025aff6423003ec7eaf8129ee846f438aee","impliedFormat":1},{"version":"276b547eeb8eeeee9a446a3bfa6e07d1c0199269bdcf33813abab1281394a9cb","impliedFormat":1},{"version":"c999f7816955f75b447823e3e4085f699600e2a4a3327907df9af65b0a9c0df6","impliedFormat":1},{"version":"64361245fe025cbbad90451dd3698f7e6822d465ef568cbee3a4d8ddb52e7cda","impliedFormat":1},{"version":"8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","impliedFormat":1},{"version":"9b814e0806922056145bedb096f11b73bdce70cc871f3ccfc4ce00b2cba75718","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"2013a2215691096d953ce7cefbc71a6cd31ef14be092cd003792714c5cd23bde","affectsGlobalScope":true,"impliedFormat":1},{"version":"60155c38ec392043962a90006153f7e31187b93411f2d8f9b35f595e98b8d75f","impliedFormat":1},{"version":"2ad6a251b6ef19fd1f8498f83bb7b265033bd52287e1f6569d09544f18806713","impliedFormat":1},{"version":"bfa08f2c30c475aef1c9451855ba6b2acfdc64f61950a38fae75806d66fb85c2","impliedFormat":1},{"version":"159807eb55a9439f9a675bd493788190a6203b5f36c315f8c3acbfcb875c7072","impliedFormat":1},{"version":"fe31b2b31ac5453fc7b8eef32b62017e55b214ceb884f0b177f442af92e84682","impliedFormat":1},{"version":"dd72576c8ea64d55af46a386068503d3cfcecce84ed7e1cbd4ff4081ba67fafc","impliedFormat":1},{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"70a7e8a7880d55396285e4b85ff5bdf3af3083176abe07f944967836f2a43188","impliedFormat":1},{"version":"3570df7c6f3a976109f55b596a2d88c2f87e0574cd1502272594ee5c4e56d0ef","impliedFormat":1},{"version":"850e95721334c2aa7697b08782f443ec4286274e5024169d4443933544f359d7","impliedFormat":1},{"version":"74e6cd21f7b5e29fab05060ea24e2b90aa254f16f3f62ccd7055bdb8fc7b2ff5","affectsGlobalScope":true,"impliedFormat":1},{"version":"5761c90b0cabdd6bd1f5fb1c3bf942088fdd39e18ed35dbe39b0c34bc733bf13","affectsGlobalScope":true,"impliedFormat":1},{"version":"1eb6c5569d41e6021832d0a8a71f45fecbc13d03ad7d306da485999148b64955","impliedFormat":1},{"version":"c05ef0ecf06540ad3039515c10d3b27f9380639ced40f4093fd073e1b5ff21d9","impliedFormat":1},{"version":"fd25a0d3e6448b61d33e1fe4e0667a1a87a77e53570b65a454937cf2dc92f967","impliedFormat":1},{"version":"c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","impliedFormat":1},{"version":"24a68c38b5c66d6a6883624342560d88db670e97824b397e78d9dac121aa8bae","impliedFormat":1},{"version":"9a134dbb29f0af914d90b23f609b39019d66ed53db7d492ab6b04c67114559da","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"7b3781fbdfddbee8dba55ccee5aa74a7c8d6701ade11d49ab7d8cb1fcefe669e","impliedFormat":1},{"version":"c4aab2ec3a249f2a4caa9cbdb099752a80daf999b79d85aa3504cdfd6e559476","impliedFormat":1},{"version":"666d3f264db693828f6edc2eb53ae6013e40f6e39278ca209c7a8a99ac91b62f","affectsGlobalScope":true,"impliedFormat":1},{"version":"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","impliedFormat":1},{"version":"c764a6cf523d13f2304a23216cd1084e28c041eebabd8aa9b2a9d99866c668c0","impliedFormat":1},{"version":"1272a5c2bd05961adc473e905332b7a422b00485c10b41c752f7fcf6835e3436","impliedFormat":1},{"version":"30ef92bf8135ce36ba1231fe41715276f2a40be72a478ddeb862bc16672e8680","impliedFormat":1},{"version":"4ace0a30a70fe5963442d75ea6e69f525671ae76f6e57ab7556c44839b4237e8","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f03dbf03c001fb3ac1c9bea6dde049dfff27ef8886cc4a886374aacf2e997d","affectsGlobalScope":true,"impliedFormat":1},{"version":"66bfb3de947abf4b117ee849c245425dbe494d6903e28f9ded566e91c9d05d77","impliedFormat":1},{"version":"c28d4f58131b93d60e087b86148d4e0c9d9b5c49c23ff1a9d1a9594fdedd5d08","impliedFormat":1},{"version":"c6b5d7f259544c91024ecf2b17138574a3f6ff2476468fafd7f957d2b68d6d98","impliedFormat":1},{"version":"1ec27c4b695590464113276d174f873e260e468ef226b7dc18f9193875fa559d","affectsGlobalScope":true,"impliedFormat":1},{"version":"33da4ee2ab9fdd9ef8b3fc526d871ce02ae8c825283f5695e7cad507c087b97c","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"71709584ed5ed7d236dc225441ec4634ffc6c718853e04b9c27b9ea121459044","impliedFormat":1},{"version":"963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","impliedFormat":1},{"version":"fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","impliedFormat":1},{"version":"bf88ef4208a770ca39a844b182b3695df536326ea566893fdc5b8418702a331e","impliedFormat":1},{"version":"8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","impliedFormat":1},{"version":"7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","impliedFormat":1},{"version":"f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","impliedFormat":1},{"version":"ba600bf38b5c1a5dffa1b99dd7a783549082bbba3b4fe9497eaaf5e4c1764b20","impliedFormat":1},{"version":"ae8cd6af37275eac75f5369cdb5f01063bcf1f48d74cb434303ee50ec446acfe","impliedFormat":1},{"version":"2518830a2fda9c272ba48798d0e7b857037443b06594db8e42c87e86944ee9e4","impliedFormat":1},{"version":"95c1cf650d16b197525b5bfdf8dd7abba0a49d99ddb12a4ba66466a8a6903e49","impliedFormat":1},{"version":"1fe0aabe758d56ad72495d6e6c7b6ae75619faaeaaf03f0ddf1948eea4cfac84","impliedFormat":1},{"version":"bbc57966c8c48ee78fd58aadb893784025be056ae538ae22d1e83c502a987e68","impliedFormat":1},{"version":"5e5d6f6697e378b0660b567866bf67d099d0ea754f8810c0dabe737805f5cf03","impliedFormat":1},{"version":"99ab49d4732fdc98cf5c495925e65e796544cb4086fe42afc235dfc02bcf2351","impliedFormat":1},{"version":"af8339d509c40da075088e544c28ed37b519876e5c4d36a48644ebfb3c6ae6c8","impliedFormat":1},{"version":"d393adc32e520d4274bb4c3dfdcdb342b806a230b66ef0f82b35bffbc4aa2590","impliedFormat":1},{"version":"c26af7eaedb4f710984634e419ab15e54e5bb99a0b3cae71188c2fff572276de","impliedFormat":1},{"version":"38b58ef018d0aeee42ef74c42978bb5805503233fdeeb82cd2aed2199fb0d013","impliedFormat":1},{"version":"3b6040253231d44e6778eb6861cc86c1758562e77783d21b7ecbc73322ded539","impliedFormat":1},{"version":"cc256fd958b33576ed32c7338c64adb0d08fc0c2c6525010202fab83f32745da","impliedFormat":1},{"version":"fd0589ca571ad090b531d8c095e26caa53d4825c64d3ff2b2b1ab95d72294175","impliedFormat":1},{"version":"669843ecafb89ae1e944df06360e8966219e4c1c34c0d28aa2503272cdd444a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","impliedFormat":1},{"version":"bc88e4049153bc4dddb4503ed7e624eb141edfa9064b3659d6c86e900fe9e621","impliedFormat":1},{"version":"8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede","impliedFormat":1},{"version":"2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","impliedFormat":1},{"version":"2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","impliedFormat":1},{"version":"42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","impliedFormat":1},{"version":"d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","impliedFormat":1},{"version":"b9f96255e1048ed2ea33ec553122716f0e57fc1c3ad778e9aa15f5b46547bd23","impliedFormat":1},{"version":"7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","impliedFormat":1},{"version":"906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","impliedFormat":1},{"version":"5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","impliedFormat":1},{"version":"c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","impliedFormat":1},{"version":"e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","impliedFormat":1},{"version":"e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","impliedFormat":1},{"version":"9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","impliedFormat":1},{"version":"0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","impliedFormat":1},{"version":"71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","impliedFormat":1},{"version":"c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","impliedFormat":1},{"version":"2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","impliedFormat":1},{"version":"479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","impliedFormat":1},{"version":"ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","impliedFormat":1},{"version":"f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","impliedFormat":1},{"version":"86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","impliedFormat":1},{"version":"2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","impliedFormat":1},{"version":"a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","impliedFormat":1},{"version":"b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","impliedFormat":1},{"version":"61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","impliedFormat":1},{"version":"6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","impliedFormat":1},{"version":"c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","impliedFormat":1},{"version":"38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","impliedFormat":1},{"version":"d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","impliedFormat":1},{"version":"3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","impliedFormat":1},{"version":"b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","impliedFormat":1},{"version":"f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","impliedFormat":1},{"version":"843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","impliedFormat":1},{"version":"f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","impliedFormat":1},{"version":"6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","impliedFormat":1},{"version":"e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","impliedFormat":1},{"version":"a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","impliedFormat":1},{"version":"a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","impliedFormat":1},{"version":"da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"a1a261624efb3a00ff346b13580f70f3463b8cdcc58b60f5793ff11785d52cab","impliedFormat":1},{"version":"b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","impliedFormat":1},{"version":"70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","impliedFormat":1},{"version":"e9eb1b173aa166892f3eddab182e49cfe59aa2e14d33aedb6b49d175ed6a3750","impliedFormat":1}],"options":{"alwaysStrict":true,"composite":true,"declaration":true,"module":5,"noImplicitAny":true,"noImplicitThis":true,"outDir":"..","rootDir":"../../src","strictNullChecks":true,"target":2},"fileIdsList":[[46,99],[99],[46,47,48,49,50,99],[46,48,99],[69,70,99,106,107],[70,99,106],[99,110],[99,111],[69,99,101,106,125,126,128],[99,127],[53,99],[56,99],[57,62,90,99],[58,69,70,77,87,98,99],[58,59,69,77,99],[60,99],[61,62,70,78,99],[62,87,95,99],[63,65,69,77,99],[64,99],[65,66,99],[69,99],[67,69,99],[69,70,71,87,98,99],[69,70,71,84,87,90,99],[99,103],[65,69,72,77,87,98,99],[69,70,72,73,77,87,95,98,99],[72,74,87,95,98,99],[53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105],[69,75,99],[76,98,99],[65,69,77,87,99],[78,99],[79,99],[56,80,99],[81,97,99,103],[82,99],[83,99],[69,84,85,99],[84,86,99,101],[57,69,87,88,89,90,99],[57,87,89,99],[87,88,99],[90,99],[91,99],[87,99],[69,93,94,99],[93,94,99],[62,77,87,95,99],[96,99],[77,97,99],[57,72,83,98,99],[62,99],[87,99,100],[99,101],[99,102],[57,62,69,71,80,87,98,99,101,103],[87,99,104],[99,106],[99,132,171],[99,132,156,171],[99,171],[99,132],[99,132,157,171],[99,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[99,157,171],[99,173],[99,114],[99,113,114],[99,113],[99,113,114,115,117,118,121,122,123,124],[99,114,118],[99,113,114,115,117,118,119,120],[99,113,118],[99,118,122],[99,114,115,116],[99,115],[99,113,114,118],[44,99],[44]],"referencedMap":[[48,1],[46,2],[51,3],[47,1],[49,4],[50,1],[52,2],[108,5],[109,6],[110,2],[111,7],[112,8],[127,9],[128,10],[129,2],[107,2],[53,11],[54,11],[56,12],[57,13],[58,14],[59,15],[60,16],[61,17],[62,18],[63,19],[64,20],[65,21],[66,21],[68,22],[67,23],[69,22],[70,24],[71,25],[55,26],[105,2],[72,27],[73,28],[74,29],[106,30],[75,31],[76,32],[77,33],[78,34],[79,35],[80,36],[81,37],[82,38],[83,39],[84,40],[85,40],[86,41],[87,42],[89,43],[88,44],[90,45],[91,46],[92,47],[93,48],[94,49],[95,50],[96,51],[97,52],[98,53],[99,54],[100,55],[101,56],[102,57],[103,58],[104,59],[130,2],[131,60],[156,61],[157,62],[132,63],[135,63],[154,61],[155,61],[145,61],[144,64],[142,61],[137,61],[150,61],[148,61],[152,61],[136,61],[149,61],[153,61],[138,61],[139,61],[151,61],[133,61],[140,61],[141,61],[143,61],[147,61],[158,65],[146,61],[134,61],[171,66],[170,2],[165,65],[167,67],[166,65],[159,65],[160,65],[162,65],[164,65],[168,67],[169,67],[161,67],[163,67],[172,2],[126,2],[173,2],[174,68],[115,69],[124,70],[113,2],[114,71],[125,72],[120,73],[121,74],[119,75],[123,76],[117,77],[116,78],[122,79],[118,70],[8,2],[9,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[4,2],[23,2],[20,2],[21,2],[22,2],[24,2],[25,2],[26,2],[5,2],[27,2],[28,2],[29,2],[30,2],[6,2],[34,2],[31,2],[32,2],[33,2],[35,2],[7,2],[36,2],[41,2],[42,2],[37,2],[38,2],[39,2],[40,2],[1,2],[43,2],[45,80],[44,2]],"exportedModulesMap":[[48,1],[46,2],[51,3],[47,1],[49,4],[50,1],[52,2],[108,5],[109,6],[110,2],[111,7],[112,8],[127,9],[128,10],[129,2],[107,2],[53,11],[54,11],[56,12],[57,13],[58,14],[59,15],[60,16],[61,17],[62,18],[63,19],[64,20],[65,21],[66,21],[68,22],[67,23],[69,22],[70,24],[71,25],[55,26],[105,2],[72,27],[73,28],[74,29],[106,30],[75,31],[76,32],[77,33],[78,34],[79,35],[80,36],[81,37],[82,38],[83,39],[84,40],[85,40],[86,41],[87,42],[89,43],[88,44],[90,45],[91,46],[92,47],[93,48],[94,49],[95,50],[96,51],[97,52],[98,53],[99,54],[100,55],[101,56],[102,57],[103,58],[104,59],[130,2],[131,60],[156,61],[157,62],[132,63],[135,63],[154,61],[155,61],[145,61],[144,64],[142,61],[137,61],[150,61],[148,61],[152,61],[136,61],[149,61],[153,61],[138,61],[139,61],[151,61],[133,61],[140,61],[141,61],[143,61],[147,61],[158,65],[146,61],[134,61],[171,66],[170,2],[165,65],[167,67],[166,65],[159,65],[160,65],[162,65],[164,65],[168,67],[169,67],[161,67],[163,67],[172,2],[126,2],[173,2],[174,68],[115,69],[124,70],[113,2],[114,71],[125,72],[120,73],[121,74],[119,75],[123,76],[117,77],[116,78],[122,79],[118,70],[8,2],[9,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[4,2],[23,2],[20,2],[21,2],[22,2],[24,2],[25,2],[26,2],[5,2],[27,2],[28,2],[29,2],[30,2],[6,2],[34,2],[31,2],[32,2],[33,2],[35,2],[7,2],[36,2],[41,2],[42,2],[37,2],[38,2],[39,2],[40,2],[1,2],[43,2],[45,81]],"semanticDiagnosticsPerFile":[48,46,51,47,49,50,52,108,109,110,111,112,127,128,129,107,53,54,56,57,58,59,60,61,62,63,64,65,66,68,67,69,70,71,55,105,72,73,74,106,75,76,77,78,79,80,81,82,83,84,85,86,87,89,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,130,131,156,157,132,135,154,155,145,144,142,137,150,148,152,136,149,153,138,139,151,133,140,141,143,147,158,146,134,171,170,165,167,166,159,160,162,164,168,169,161,163,172,126,173,174,115,124,113,114,125,120,121,119,123,117,116,122,118,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,34,31,32,33,35,7,36,41,42,37,38,39,40,1,43,45,44],"latestChangedDtsFile":"./interaction.d.ts"},"version":"4.9.5"}
|
package/lib/index.js
CHANGED
|
@@ -137,7 +137,7 @@ export default class API {
|
|
|
137
137
|
// no-cors issue only with text/plain or not-set Content-Type
|
|
138
138
|
// req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
|
139
139
|
req.send(JSON.stringify({
|
|
140
|
-
trackerVersion: '7.0.
|
|
140
|
+
trackerVersion: '7.0.4-beta.1',
|
|
141
141
|
projectKey: options.projectKey,
|
|
142
142
|
doNotTrack,
|
|
143
143
|
// TODO: add precise reason (an exact API missing)
|
package/lib/modules/network.js
CHANGED
|
@@ -158,7 +158,7 @@ export default function (app, opts = {}) {
|
|
|
158
158
|
xhr.addEventListener('load', app.safe((e) => {
|
|
159
159
|
const { headers: reqHs, body: reqBody } = getXHRRequestDataObject(xhr);
|
|
160
160
|
const duration = startTime > 0 ? e.timeStamp - startTime : 0;
|
|
161
|
-
const hString = xhr.getAllResponseHeaders() || ''; // might be null (
|
|
161
|
+
const hString = xhr.getAllResponseHeaders() || ''; // might be null (only if no response received though)
|
|
162
162
|
const headersArr = hString.trim().split(/[\r\n]+/);
|
|
163
163
|
const headerMap = {};
|
|
164
164
|
headersArr.forEach(function (line) {
|
package/package.json
CHANGED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type Options = {
|
|
2
|
-
root: Element;
|
|
3
|
-
idName: (name: string) => boolean;
|
|
4
|
-
className: (name: string) => boolean;
|
|
5
|
-
tagName: (name: string) => boolean;
|
|
6
|
-
attr: (name: string, value: string) => boolean;
|
|
7
|
-
seedMinLength: number;
|
|
8
|
-
optimizedMinLength: number;
|
|
9
|
-
threshold: number;
|
|
10
|
-
maxNumberOfTries: number;
|
|
11
|
-
};
|
|
12
|
-
export declare function finder(input: Element, options?: Partial<Options>): string;
|
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.finder = void 0;
|
|
4
|
-
var Limit;
|
|
5
|
-
(function (Limit) {
|
|
6
|
-
Limit[Limit["All"] = 0] = "All";
|
|
7
|
-
Limit[Limit["Two"] = 1] = "Two";
|
|
8
|
-
Limit[Limit["One"] = 2] = "One";
|
|
9
|
-
})(Limit || (Limit = {}));
|
|
10
|
-
let config;
|
|
11
|
-
let rootDocument;
|
|
12
|
-
function finder(input, options) {
|
|
13
|
-
if (input.nodeType !== Node.ELEMENT_NODE) {
|
|
14
|
-
throw new Error("Can't generate CSS selector for non-element node type.");
|
|
15
|
-
}
|
|
16
|
-
if ('html' === input.tagName.toLowerCase()) {
|
|
17
|
-
return 'html';
|
|
18
|
-
}
|
|
19
|
-
const defaults = {
|
|
20
|
-
root: document.body,
|
|
21
|
-
idName: (name) => true,
|
|
22
|
-
className: (name) => true,
|
|
23
|
-
tagName: (name) => true,
|
|
24
|
-
attr: (name, value) => false,
|
|
25
|
-
seedMinLength: 1,
|
|
26
|
-
optimizedMinLength: 2,
|
|
27
|
-
threshold: 1000,
|
|
28
|
-
maxNumberOfTries: 10000,
|
|
29
|
-
};
|
|
30
|
-
config = Object.assign(Object.assign({}, defaults), options);
|
|
31
|
-
rootDocument = findRootDocument(config.root, defaults);
|
|
32
|
-
let path = bottomUpSearch(input, Limit.All, () => bottomUpSearch(input, Limit.Two, () => bottomUpSearch(input, Limit.One)));
|
|
33
|
-
if (path) {
|
|
34
|
-
const optimized = sort(optimize(path, input));
|
|
35
|
-
if (optimized.length > 0) {
|
|
36
|
-
path = optimized[0];
|
|
37
|
-
}
|
|
38
|
-
return selector(path);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
throw new Error('Selector was not found.');
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.finder = finder;
|
|
45
|
-
function findRootDocument(rootNode, defaults) {
|
|
46
|
-
if (rootNode.nodeType === Node.DOCUMENT_NODE) {
|
|
47
|
-
return rootNode;
|
|
48
|
-
}
|
|
49
|
-
if (rootNode === defaults.root) {
|
|
50
|
-
return rootNode.ownerDocument;
|
|
51
|
-
}
|
|
52
|
-
return rootNode;
|
|
53
|
-
}
|
|
54
|
-
function bottomUpSearch(input, limit, fallback) {
|
|
55
|
-
let path = null;
|
|
56
|
-
const stack = [];
|
|
57
|
-
let current = input;
|
|
58
|
-
let i = 0;
|
|
59
|
-
while (current && current !== config.root.parentElement) {
|
|
60
|
-
let level = maybe(id(current)) ||
|
|
61
|
-
maybe(...attr(current)) ||
|
|
62
|
-
maybe(...classNames(current)) ||
|
|
63
|
-
maybe(tagName(current)) || [any()];
|
|
64
|
-
const nth = index(current);
|
|
65
|
-
if (limit === Limit.All) {
|
|
66
|
-
if (nth) {
|
|
67
|
-
level = level.concat(level.filter(dispensableNth).map((node) => nthChild(node, nth)));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else if (limit === Limit.Two) {
|
|
71
|
-
level = level.slice(0, 1);
|
|
72
|
-
if (nth) {
|
|
73
|
-
level = level.concat(level.filter(dispensableNth).map((node) => nthChild(node, nth)));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else if (limit === Limit.One) {
|
|
77
|
-
const [node] = (level = level.slice(0, 1));
|
|
78
|
-
if (nth && dispensableNth(node)) {
|
|
79
|
-
level = [nthChild(node, nth)];
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
for (const node of level) {
|
|
83
|
-
node.level = i;
|
|
84
|
-
}
|
|
85
|
-
stack.push(level);
|
|
86
|
-
if (stack.length >= config.seedMinLength) {
|
|
87
|
-
path = findUniquePath(stack, fallback);
|
|
88
|
-
if (path) {
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
current = current.parentElement;
|
|
93
|
-
i++;
|
|
94
|
-
}
|
|
95
|
-
if (!path) {
|
|
96
|
-
path = findUniquePath(stack, fallback);
|
|
97
|
-
}
|
|
98
|
-
return path;
|
|
99
|
-
}
|
|
100
|
-
function findUniquePath(stack, fallback) {
|
|
101
|
-
const paths = sort(combinations(stack));
|
|
102
|
-
if (paths.length > config.threshold) {
|
|
103
|
-
return fallback ? fallback() : null;
|
|
104
|
-
}
|
|
105
|
-
for (const candidate of paths) {
|
|
106
|
-
if (unique(candidate)) {
|
|
107
|
-
return candidate;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
function selector(path) {
|
|
113
|
-
let node = path[0];
|
|
114
|
-
let query = node.name;
|
|
115
|
-
for (let i = 1; i < path.length; i++) {
|
|
116
|
-
const level = path[i].level || 0;
|
|
117
|
-
if (node.level === level - 1) {
|
|
118
|
-
query = `${path[i].name} > ${query}`;
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
query = `${path[i].name} ${query}`;
|
|
122
|
-
}
|
|
123
|
-
node = path[i];
|
|
124
|
-
}
|
|
125
|
-
return query;
|
|
126
|
-
}
|
|
127
|
-
function penalty(path) {
|
|
128
|
-
return path.map((node) => node.penalty).reduce((acc, i) => acc + i, 0);
|
|
129
|
-
}
|
|
130
|
-
function unique(path) {
|
|
131
|
-
switch (rootDocument.querySelectorAll(selector(path)).length) {
|
|
132
|
-
case 0:
|
|
133
|
-
throw new Error(`Can't select any node with this selector: ${selector(path)}`);
|
|
134
|
-
case 1:
|
|
135
|
-
return true;
|
|
136
|
-
default:
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
function id(input) {
|
|
141
|
-
const elementId = input.getAttribute('id');
|
|
142
|
-
if (elementId && config.idName(elementId)) {
|
|
143
|
-
return {
|
|
144
|
-
name: '#' + cssesc(elementId, { isIdentifier: true }),
|
|
145
|
-
penalty: 0,
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
return null;
|
|
149
|
-
}
|
|
150
|
-
function attr(input) {
|
|
151
|
-
const attrs = Array.from(input.attributes).filter((attr) => config.attr(attr.name, attr.value));
|
|
152
|
-
return attrs.map((attr) => ({
|
|
153
|
-
name: '[' + cssesc(attr.name, { isIdentifier: true }) + '="' + cssesc(attr.value) + '"]',
|
|
154
|
-
penalty: 0.5,
|
|
155
|
-
}));
|
|
156
|
-
}
|
|
157
|
-
function classNames(input) {
|
|
158
|
-
const names = Array.from(input.classList).filter(config.className);
|
|
159
|
-
return names.map((name) => ({
|
|
160
|
-
name: '.' + cssesc(name, { isIdentifier: true }),
|
|
161
|
-
penalty: 1,
|
|
162
|
-
}));
|
|
163
|
-
}
|
|
164
|
-
function tagName(input) {
|
|
165
|
-
const name = input.tagName.toLowerCase();
|
|
166
|
-
if (config.tagName(name)) {
|
|
167
|
-
return {
|
|
168
|
-
name,
|
|
169
|
-
penalty: 2,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
return null;
|
|
173
|
-
}
|
|
174
|
-
function any() {
|
|
175
|
-
return {
|
|
176
|
-
name: '*',
|
|
177
|
-
penalty: 3,
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
function index(input) {
|
|
181
|
-
const parent = input.parentNode;
|
|
182
|
-
if (!parent) {
|
|
183
|
-
return null;
|
|
184
|
-
}
|
|
185
|
-
let child = parent.firstChild;
|
|
186
|
-
if (!child) {
|
|
187
|
-
return null;
|
|
188
|
-
}
|
|
189
|
-
let i = 0;
|
|
190
|
-
while (child) {
|
|
191
|
-
if (child.nodeType === Node.ELEMENT_NODE) {
|
|
192
|
-
i++;
|
|
193
|
-
}
|
|
194
|
-
if (child === input) {
|
|
195
|
-
break;
|
|
196
|
-
}
|
|
197
|
-
child = child.nextSibling;
|
|
198
|
-
}
|
|
199
|
-
return i;
|
|
200
|
-
}
|
|
201
|
-
function nthChild(node, i) {
|
|
202
|
-
return {
|
|
203
|
-
name: node.name + `:nth-child(${i})`,
|
|
204
|
-
penalty: node.penalty + 1,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
function dispensableNth(node) {
|
|
208
|
-
return node.name !== 'html' && !node.name.startsWith('#');
|
|
209
|
-
}
|
|
210
|
-
function maybe(...level) {
|
|
211
|
-
const list = level.filter(notEmpty);
|
|
212
|
-
if (list.length > 0) {
|
|
213
|
-
return list;
|
|
214
|
-
}
|
|
215
|
-
return null;
|
|
216
|
-
}
|
|
217
|
-
function notEmpty(value) {
|
|
218
|
-
return value !== null && value !== undefined;
|
|
219
|
-
}
|
|
220
|
-
function combinations(stack, path = []) {
|
|
221
|
-
const paths = [];
|
|
222
|
-
if (stack.length > 0) {
|
|
223
|
-
for (const node of stack[0]) {
|
|
224
|
-
paths.push(...combinations(stack.slice(1, stack.length), path.concat(node)));
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
paths.push(path);
|
|
229
|
-
}
|
|
230
|
-
return paths;
|
|
231
|
-
}
|
|
232
|
-
function sort(paths) {
|
|
233
|
-
return Array.from(paths).sort((a, b) => penalty(a) - penalty(b));
|
|
234
|
-
}
|
|
235
|
-
function optimize(path, input, scope = {
|
|
236
|
-
counter: 0,
|
|
237
|
-
visited: new Map(),
|
|
238
|
-
}) {
|
|
239
|
-
const paths = [];
|
|
240
|
-
if (path.length > 2 && path.length > config.optimizedMinLength) {
|
|
241
|
-
for (let i = 1; i < path.length - 1; i++) {
|
|
242
|
-
if (scope.counter > config.maxNumberOfTries) {
|
|
243
|
-
return paths; // Okay At least I tried!
|
|
244
|
-
}
|
|
245
|
-
scope.counter += 1;
|
|
246
|
-
const newPath = [...path];
|
|
247
|
-
newPath.splice(i, 1);
|
|
248
|
-
const newPathKey = selector(newPath);
|
|
249
|
-
if (scope.visited.has(newPathKey)) {
|
|
250
|
-
return paths;
|
|
251
|
-
}
|
|
252
|
-
if (unique(newPath) && same(newPath, input)) {
|
|
253
|
-
paths.push(newPath);
|
|
254
|
-
scope.visited.set(newPathKey, true);
|
|
255
|
-
paths.push(...optimize(newPath, input, scope));
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
return paths;
|
|
260
|
-
}
|
|
261
|
-
function same(path, input) {
|
|
262
|
-
return rootDocument.querySelector(selector(path)) === input;
|
|
263
|
-
}
|
|
264
|
-
const regexAnySingleEscape = /[ -,\.\/:-@\[-\^`\{-~]/;
|
|
265
|
-
const regexSingleEscape = /[ -,\.\/:-@\[\]\^`\{-~]/;
|
|
266
|
-
const regexExcessiveSpaces = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g;
|
|
267
|
-
const defaultOptions = {
|
|
268
|
-
escapeEverything: false,
|
|
269
|
-
isIdentifier: false,
|
|
270
|
-
quotes: 'single',
|
|
271
|
-
wrap: false,
|
|
272
|
-
};
|
|
273
|
-
function cssesc(string, opt = {}) {
|
|
274
|
-
const options = Object.assign(Object.assign({}, defaultOptions), opt);
|
|
275
|
-
if (options.quotes != 'single' && options.quotes != 'double') {
|
|
276
|
-
options.quotes = 'single';
|
|
277
|
-
}
|
|
278
|
-
const quote = options.quotes == 'double' ? '"' : "'";
|
|
279
|
-
const isIdentifier = options.isIdentifier;
|
|
280
|
-
const firstChar = string.charAt(0);
|
|
281
|
-
let output = '';
|
|
282
|
-
let counter = 0;
|
|
283
|
-
const length = string.length;
|
|
284
|
-
while (counter < length) {
|
|
285
|
-
const character = string.charAt(counter++);
|
|
286
|
-
let codePoint = character.charCodeAt(0);
|
|
287
|
-
let value = void 0;
|
|
288
|
-
// If it’s not a printable ASCII character…
|
|
289
|
-
if (codePoint < 0x20 || codePoint > 0x7e) {
|
|
290
|
-
if (codePoint >= 0xd800 && codePoint <= 0xdbff && counter < length) {
|
|
291
|
-
// It’s a high surrogate, and there is a next character.
|
|
292
|
-
const extra = string.charCodeAt(counter++);
|
|
293
|
-
if ((extra & 0xfc00) == 0xdc00) {
|
|
294
|
-
// next character is low surrogate
|
|
295
|
-
codePoint = ((codePoint & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
// It’s an unmatched surrogate; only append this code unit, in case
|
|
299
|
-
// the next code unit is the high surrogate of a surrogate pair.
|
|
300
|
-
counter--;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
value = '\\' + codePoint.toString(16).toUpperCase() + ' ';
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
if (options.escapeEverything) {
|
|
307
|
-
if (regexAnySingleEscape.test(character)) {
|
|
308
|
-
value = '\\' + character;
|
|
309
|
-
}
|
|
310
|
-
else {
|
|
311
|
-
value = '\\' + codePoint.toString(16).toUpperCase() + ' ';
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
else if (/[\t\n\f\r\x0B]/.test(character)) {
|
|
315
|
-
value = '\\' + codePoint.toString(16).toUpperCase() + ' ';
|
|
316
|
-
}
|
|
317
|
-
else if (character == '\\' ||
|
|
318
|
-
(!isIdentifier &&
|
|
319
|
-
((character == '"' && quote == character) || (character == "'" && quote == character))) ||
|
|
320
|
-
(isIdentifier && regexSingleEscape.test(character))) {
|
|
321
|
-
value = '\\' + character;
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
value = character;
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
output += value;
|
|
328
|
-
}
|
|
329
|
-
if (isIdentifier) {
|
|
330
|
-
if (/^-[-\d]/.test(output)) {
|
|
331
|
-
output = '\\-' + output.slice(1);
|
|
332
|
-
}
|
|
333
|
-
else if (/\d/.test(firstChar)) {
|
|
334
|
-
output = '\\3' + firstChar + ' ' + output.slice(1);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
// Remove spaces after `\HEX` escapes that are not followed by a hex digit,
|
|
338
|
-
// since they’re redundant. Note that this is only possible if the escape
|
|
339
|
-
// sequence isn’t preceded by an odd number of backslashes.
|
|
340
|
-
output = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {
|
|
341
|
-
if ($1 && $1.length % 2) {
|
|
342
|
-
// It’s not safe to remove the space, so don’t.
|
|
343
|
-
return $0;
|
|
344
|
-
}
|
|
345
|
-
// Strip the space.
|
|
346
|
-
return ($1 || '') + $2;
|
|
347
|
-
});
|
|
348
|
-
if (!isIdentifier && options.wrap) {
|
|
349
|
-
return quote + output + quote;
|
|
350
|
-
}
|
|
351
|
-
return output;
|
|
352
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type Options = {
|
|
2
|
-
root: Element;
|
|
3
|
-
idName: (name: string) => boolean;
|
|
4
|
-
className: (name: string) => boolean;
|
|
5
|
-
tagName: (name: string) => boolean;
|
|
6
|
-
attr: (name: string, value: string) => boolean;
|
|
7
|
-
seedMinLength: number;
|
|
8
|
-
optimizedMinLength: number;
|
|
9
|
-
threshold: number;
|
|
10
|
-
maxNumberOfTries: number;
|
|
11
|
-
};
|
|
12
|
-
export declare function finder(input: Element, options?: Partial<Options>): string;
|
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
var Limit;
|
|
2
|
-
(function (Limit) {
|
|
3
|
-
Limit[Limit["All"] = 0] = "All";
|
|
4
|
-
Limit[Limit["Two"] = 1] = "Two";
|
|
5
|
-
Limit[Limit["One"] = 2] = "One";
|
|
6
|
-
})(Limit || (Limit = {}));
|
|
7
|
-
let config;
|
|
8
|
-
let rootDocument;
|
|
9
|
-
export function finder(input, options) {
|
|
10
|
-
if (input.nodeType !== Node.ELEMENT_NODE) {
|
|
11
|
-
throw new Error("Can't generate CSS selector for non-element node type.");
|
|
12
|
-
}
|
|
13
|
-
if ('html' === input.tagName.toLowerCase()) {
|
|
14
|
-
return 'html';
|
|
15
|
-
}
|
|
16
|
-
const defaults = {
|
|
17
|
-
root: document.body,
|
|
18
|
-
idName: (name) => true,
|
|
19
|
-
className: (name) => true,
|
|
20
|
-
tagName: (name) => true,
|
|
21
|
-
attr: (name, value) => false,
|
|
22
|
-
seedMinLength: 1,
|
|
23
|
-
optimizedMinLength: 2,
|
|
24
|
-
threshold: 1000,
|
|
25
|
-
maxNumberOfTries: 10000,
|
|
26
|
-
};
|
|
27
|
-
config = Object.assign(Object.assign({}, defaults), options);
|
|
28
|
-
rootDocument = findRootDocument(config.root, defaults);
|
|
29
|
-
let path = bottomUpSearch(input, Limit.All, () => bottomUpSearch(input, Limit.Two, () => bottomUpSearch(input, Limit.One)));
|
|
30
|
-
if (path) {
|
|
31
|
-
const optimized = sort(optimize(path, input));
|
|
32
|
-
if (optimized.length > 0) {
|
|
33
|
-
path = optimized[0];
|
|
34
|
-
}
|
|
35
|
-
return selector(path);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
throw new Error('Selector was not found.');
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function findRootDocument(rootNode, defaults) {
|
|
42
|
-
if (rootNode.nodeType === Node.DOCUMENT_NODE) {
|
|
43
|
-
return rootNode;
|
|
44
|
-
}
|
|
45
|
-
if (rootNode === defaults.root) {
|
|
46
|
-
return rootNode.ownerDocument;
|
|
47
|
-
}
|
|
48
|
-
return rootNode;
|
|
49
|
-
}
|
|
50
|
-
function bottomUpSearch(input, limit, fallback) {
|
|
51
|
-
let path = null;
|
|
52
|
-
const stack = [];
|
|
53
|
-
let current = input;
|
|
54
|
-
let i = 0;
|
|
55
|
-
while (current && current !== config.root.parentElement) {
|
|
56
|
-
let level = maybe(id(current)) ||
|
|
57
|
-
maybe(...attr(current)) ||
|
|
58
|
-
maybe(...classNames(current)) ||
|
|
59
|
-
maybe(tagName(current)) || [any()];
|
|
60
|
-
const nth = index(current);
|
|
61
|
-
if (limit === Limit.All) {
|
|
62
|
-
if (nth) {
|
|
63
|
-
level = level.concat(level.filter(dispensableNth).map((node) => nthChild(node, nth)));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
else if (limit === Limit.Two) {
|
|
67
|
-
level = level.slice(0, 1);
|
|
68
|
-
if (nth) {
|
|
69
|
-
level = level.concat(level.filter(dispensableNth).map((node) => nthChild(node, nth)));
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
else if (limit === Limit.One) {
|
|
73
|
-
const [node] = (level = level.slice(0, 1));
|
|
74
|
-
if (nth && dispensableNth(node)) {
|
|
75
|
-
level = [nthChild(node, nth)];
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
for (const node of level) {
|
|
79
|
-
node.level = i;
|
|
80
|
-
}
|
|
81
|
-
stack.push(level);
|
|
82
|
-
if (stack.length >= config.seedMinLength) {
|
|
83
|
-
path = findUniquePath(stack, fallback);
|
|
84
|
-
if (path) {
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
current = current.parentElement;
|
|
89
|
-
i++;
|
|
90
|
-
}
|
|
91
|
-
if (!path) {
|
|
92
|
-
path = findUniquePath(stack, fallback);
|
|
93
|
-
}
|
|
94
|
-
return path;
|
|
95
|
-
}
|
|
96
|
-
function findUniquePath(stack, fallback) {
|
|
97
|
-
const paths = sort(combinations(stack));
|
|
98
|
-
if (paths.length > config.threshold) {
|
|
99
|
-
return fallback ? fallback() : null;
|
|
100
|
-
}
|
|
101
|
-
for (const candidate of paths) {
|
|
102
|
-
if (unique(candidate)) {
|
|
103
|
-
return candidate;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
function selector(path) {
|
|
109
|
-
let node = path[0];
|
|
110
|
-
let query = node.name;
|
|
111
|
-
for (let i = 1; i < path.length; i++) {
|
|
112
|
-
const level = path[i].level || 0;
|
|
113
|
-
if (node.level === level - 1) {
|
|
114
|
-
query = `${path[i].name} > ${query}`;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
query = `${path[i].name} ${query}`;
|
|
118
|
-
}
|
|
119
|
-
node = path[i];
|
|
120
|
-
}
|
|
121
|
-
return query;
|
|
122
|
-
}
|
|
123
|
-
function penalty(path) {
|
|
124
|
-
return path.map((node) => node.penalty).reduce((acc, i) => acc + i, 0);
|
|
125
|
-
}
|
|
126
|
-
function unique(path) {
|
|
127
|
-
switch (rootDocument.querySelectorAll(selector(path)).length) {
|
|
128
|
-
case 0:
|
|
129
|
-
throw new Error(`Can't select any node with this selector: ${selector(path)}`);
|
|
130
|
-
case 1:
|
|
131
|
-
return true;
|
|
132
|
-
default:
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
function id(input) {
|
|
137
|
-
const elementId = input.getAttribute('id');
|
|
138
|
-
if (elementId && config.idName(elementId)) {
|
|
139
|
-
return {
|
|
140
|
-
name: '#' + cssesc(elementId, { isIdentifier: true }),
|
|
141
|
-
penalty: 0,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
function attr(input) {
|
|
147
|
-
const attrs = Array.from(input.attributes).filter((attr) => config.attr(attr.name, attr.value));
|
|
148
|
-
return attrs.map((attr) => ({
|
|
149
|
-
name: '[' + cssesc(attr.name, { isIdentifier: true }) + '="' + cssesc(attr.value) + '"]',
|
|
150
|
-
penalty: 0.5,
|
|
151
|
-
}));
|
|
152
|
-
}
|
|
153
|
-
function classNames(input) {
|
|
154
|
-
const names = Array.from(input.classList).filter(config.className);
|
|
155
|
-
return names.map((name) => ({
|
|
156
|
-
name: '.' + cssesc(name, { isIdentifier: true }),
|
|
157
|
-
penalty: 1,
|
|
158
|
-
}));
|
|
159
|
-
}
|
|
160
|
-
function tagName(input) {
|
|
161
|
-
const name = input.tagName.toLowerCase();
|
|
162
|
-
if (config.tagName(name)) {
|
|
163
|
-
return {
|
|
164
|
-
name,
|
|
165
|
-
penalty: 2,
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
function any() {
|
|
171
|
-
return {
|
|
172
|
-
name: '*',
|
|
173
|
-
penalty: 3,
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
function index(input) {
|
|
177
|
-
const parent = input.parentNode;
|
|
178
|
-
if (!parent) {
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
let child = parent.firstChild;
|
|
182
|
-
if (!child) {
|
|
183
|
-
return null;
|
|
184
|
-
}
|
|
185
|
-
let i = 0;
|
|
186
|
-
while (child) {
|
|
187
|
-
if (child.nodeType === Node.ELEMENT_NODE) {
|
|
188
|
-
i++;
|
|
189
|
-
}
|
|
190
|
-
if (child === input) {
|
|
191
|
-
break;
|
|
192
|
-
}
|
|
193
|
-
child = child.nextSibling;
|
|
194
|
-
}
|
|
195
|
-
return i;
|
|
196
|
-
}
|
|
197
|
-
function nthChild(node, i) {
|
|
198
|
-
return {
|
|
199
|
-
name: node.name + `:nth-child(${i})`,
|
|
200
|
-
penalty: node.penalty + 1,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
function dispensableNth(node) {
|
|
204
|
-
return node.name !== 'html' && !node.name.startsWith('#');
|
|
205
|
-
}
|
|
206
|
-
function maybe(...level) {
|
|
207
|
-
const list = level.filter(notEmpty);
|
|
208
|
-
if (list.length > 0) {
|
|
209
|
-
return list;
|
|
210
|
-
}
|
|
211
|
-
return null;
|
|
212
|
-
}
|
|
213
|
-
function notEmpty(value) {
|
|
214
|
-
return value !== null && value !== undefined;
|
|
215
|
-
}
|
|
216
|
-
function combinations(stack, path = []) {
|
|
217
|
-
const paths = [];
|
|
218
|
-
if (stack.length > 0) {
|
|
219
|
-
for (const node of stack[0]) {
|
|
220
|
-
paths.push(...combinations(stack.slice(1, stack.length), path.concat(node)));
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
paths.push(path);
|
|
225
|
-
}
|
|
226
|
-
return paths;
|
|
227
|
-
}
|
|
228
|
-
function sort(paths) {
|
|
229
|
-
return Array.from(paths).sort((a, b) => penalty(a) - penalty(b));
|
|
230
|
-
}
|
|
231
|
-
function optimize(path, input, scope = {
|
|
232
|
-
counter: 0,
|
|
233
|
-
visited: new Map(),
|
|
234
|
-
}) {
|
|
235
|
-
const paths = [];
|
|
236
|
-
if (path.length > 2 && path.length > config.optimizedMinLength) {
|
|
237
|
-
for (let i = 1; i < path.length - 1; i++) {
|
|
238
|
-
if (scope.counter > config.maxNumberOfTries) {
|
|
239
|
-
return paths; // Okay At least I tried!
|
|
240
|
-
}
|
|
241
|
-
scope.counter += 1;
|
|
242
|
-
const newPath = [...path];
|
|
243
|
-
newPath.splice(i, 1);
|
|
244
|
-
const newPathKey = selector(newPath);
|
|
245
|
-
if (scope.visited.has(newPathKey)) {
|
|
246
|
-
return paths;
|
|
247
|
-
}
|
|
248
|
-
if (unique(newPath) && same(newPath, input)) {
|
|
249
|
-
paths.push(newPath);
|
|
250
|
-
scope.visited.set(newPathKey, true);
|
|
251
|
-
paths.push(...optimize(newPath, input, scope));
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return paths;
|
|
256
|
-
}
|
|
257
|
-
function same(path, input) {
|
|
258
|
-
return rootDocument.querySelector(selector(path)) === input;
|
|
259
|
-
}
|
|
260
|
-
const regexAnySingleEscape = /[ -,\.\/:-@\[-\^`\{-~]/;
|
|
261
|
-
const regexSingleEscape = /[ -,\.\/:-@\[\]\^`\{-~]/;
|
|
262
|
-
const regexExcessiveSpaces = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g;
|
|
263
|
-
const defaultOptions = {
|
|
264
|
-
escapeEverything: false,
|
|
265
|
-
isIdentifier: false,
|
|
266
|
-
quotes: 'single',
|
|
267
|
-
wrap: false,
|
|
268
|
-
};
|
|
269
|
-
function cssesc(string, opt = {}) {
|
|
270
|
-
const options = Object.assign(Object.assign({}, defaultOptions), opt);
|
|
271
|
-
if (options.quotes != 'single' && options.quotes != 'double') {
|
|
272
|
-
options.quotes = 'single';
|
|
273
|
-
}
|
|
274
|
-
const quote = options.quotes == 'double' ? '"' : "'";
|
|
275
|
-
const isIdentifier = options.isIdentifier;
|
|
276
|
-
const firstChar = string.charAt(0);
|
|
277
|
-
let output = '';
|
|
278
|
-
let counter = 0;
|
|
279
|
-
const length = string.length;
|
|
280
|
-
while (counter < length) {
|
|
281
|
-
const character = string.charAt(counter++);
|
|
282
|
-
let codePoint = character.charCodeAt(0);
|
|
283
|
-
let value = void 0;
|
|
284
|
-
// If it’s not a printable ASCII character…
|
|
285
|
-
if (codePoint < 0x20 || codePoint > 0x7e) {
|
|
286
|
-
if (codePoint >= 0xd800 && codePoint <= 0xdbff && counter < length) {
|
|
287
|
-
// It’s a high surrogate, and there is a next character.
|
|
288
|
-
const extra = string.charCodeAt(counter++);
|
|
289
|
-
if ((extra & 0xfc00) == 0xdc00) {
|
|
290
|
-
// next character is low surrogate
|
|
291
|
-
codePoint = ((codePoint & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
// It’s an unmatched surrogate; only append this code unit, in case
|
|
295
|
-
// the next code unit is the high surrogate of a surrogate pair.
|
|
296
|
-
counter--;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
value = '\\' + codePoint.toString(16).toUpperCase() + ' ';
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
if (options.escapeEverything) {
|
|
303
|
-
if (regexAnySingleEscape.test(character)) {
|
|
304
|
-
value = '\\' + character;
|
|
305
|
-
}
|
|
306
|
-
else {
|
|
307
|
-
value = '\\' + codePoint.toString(16).toUpperCase() + ' ';
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
else if (/[\t\n\f\r\x0B]/.test(character)) {
|
|
311
|
-
value = '\\' + codePoint.toString(16).toUpperCase() + ' ';
|
|
312
|
-
}
|
|
313
|
-
else if (character == '\\' ||
|
|
314
|
-
(!isIdentifier &&
|
|
315
|
-
((character == '"' && quote == character) || (character == "'" && quote == character))) ||
|
|
316
|
-
(isIdentifier && regexSingleEscape.test(character))) {
|
|
317
|
-
value = '\\' + character;
|
|
318
|
-
}
|
|
319
|
-
else {
|
|
320
|
-
value = character;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
output += value;
|
|
324
|
-
}
|
|
325
|
-
if (isIdentifier) {
|
|
326
|
-
if (/^-[-\d]/.test(output)) {
|
|
327
|
-
output = '\\-' + output.slice(1);
|
|
328
|
-
}
|
|
329
|
-
else if (/\d/.test(firstChar)) {
|
|
330
|
-
output = '\\3' + firstChar + ' ' + output.slice(1);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
// Remove spaces after `\HEX` escapes that are not followed by a hex digit,
|
|
334
|
-
// since they’re redundant. Note that this is only possible if the escape
|
|
335
|
-
// sequence isn’t preceded by an odd number of backslashes.
|
|
336
|
-
output = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {
|
|
337
|
-
if ($1 && $1.length % 2) {
|
|
338
|
-
// It’s not safe to remove the space, so don’t.
|
|
339
|
-
return $0;
|
|
340
|
-
}
|
|
341
|
-
// Strip the space.
|
|
342
|
-
return ($1 || '') + $2;
|
|
343
|
-
});
|
|
344
|
-
if (!isIdentifier && options.wrap) {
|
|
345
|
-
return quote + output + quote;
|
|
346
|
-
}
|
|
347
|
-
return output;
|
|
348
|
-
}
|