mirror of
https://github.com/leoherzog/TorrentParts.git
synced 2026-10-30 11:44:14 -07:00
Compare commits
18
Commits
v1.2.1
..
c4af414e16
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4af414e16 | ||
|
|
d22fdf219c | ||
|
|
d60f8ffcf1 | ||
|
|
0c5f522459 | ||
|
|
f81243896c | ||
|
|
41f408d828 | ||
|
|
e17b51276b | ||
|
|
c54f496dcc | ||
|
|
2e584fe04f | ||
|
|
307af881ad | ||
|
|
09f885238e | ||
|
|
fdcf397f64 | ||
|
|
6d6f53d288 | ||
|
|
b477e9c8c9 | ||
|
|
1ad87324d2 | ||
|
|
418cb0c6b7 | ||
|
|
2d908ecf02 | ||
|
|
a1296b456d |
No files matched your search
@@ -24,7 +24,6 @@ This project wouldn't be possible without the fantastic work of:
|
|||||||
- [@feross](https://github.com/feross) and contributors, for [`parse-torrent`](https://github.com/webtorrent/parse-torrent) and [`WebTorrent`](https://github.com/webtorrent/webtorrent)
|
- [@feross](https://github.com/feross) and contributors, for [`parse-torrent`](https://github.com/webtorrent/parse-torrent) and [`WebTorrent`](https://github.com/webtorrent/webtorrent)
|
||||||
- [@cvisuri](https://github.com/cvisuri), for design work
|
- [@cvisuri](https://github.com/cvisuri), for design work
|
||||||
- [@CorralPeltzer](https://github.com/CorralPeltzer), for [`newTrackon`](https://github.com/CorralPeltzer/newTrackon)
|
- [@CorralPeltzer](https://github.com/CorralPeltzer), for [`newTrackon`](https://github.com/CorralPeltzer/newTrackon)
|
||||||
- [@substack](https://github.com/substack) and contributors, for [`Browserify`](https://github.com/browserify/browserify)
|
|
||||||
- [Cloudflare Pages](https://pages.cloudflare.com/) hosting
|
- [Cloudflare Pages](https://pages.cloudflare.com/) hosting
|
||||||
|
|
||||||
## License
|
## License
|
||||||
@@ -42,24 +41,53 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
## About Me
|
## About Me
|
||||||
|
|
||||||
<a href="https://herzog.tech/" target="_blank">
|
<a href="https://herzog.tech/" target="_blank">
|
||||||
<img src="https://herzog.tech/signature/link.svg.png" width="32px" />
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://herzog.tech/signature/link-light.svg.png">
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://herzog.tech/signature/link.svg.png">
|
||||||
|
<img src="https://herzog.tech/signature/link.svg.png" width="32px">
|
||||||
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://twitter.com/xd1936" target="_blank">
|
<a href="https://mastodon.social/@herzog" target="_blank">
|
||||||
<img src="https://herzog.tech/signature/twitter.svg.png" width="32px" />
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://herzog.tech/signature/mastodon-light.svg.png">
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://herzog.tech/signature/mastodon.svg.png">
|
||||||
|
<img src="https://herzog.tech/signature/mastodon.svg.png" width="32px">
|
||||||
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/leoherzog" target="_blank">
|
<a href="https://github.com/leoherzog" target="_blank">
|
||||||
<img src="https://herzog.tech/signature/github.svg.png" width="32px" />
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://herzog.tech/signature/github-light.svg.png">
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://herzog.tech/signature/github.svg.png">
|
||||||
|
<img src="https://herzog.tech/signature/github.svg.png" width="32px">
|
||||||
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://keybase.io/leoherzog" target="_blank">
|
<a href="https://keybase.io/leoherzog" target="_blank">
|
||||||
<img src="https://herzog.tech/signature/keybase.svg.png" width="32px" />
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://herzog.tech/signature/keybase-light.svg.png">
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://herzog.tech/signature/keybase.svg.png">
|
||||||
|
<img src="https://herzog.tech/signature/keybase.svg.png" width="32px">
|
||||||
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.linkedin.com/in/leoherzog" target="_blank">
|
<a href="https://www.linkedin.com/in/leoherzog" target="_blank">
|
||||||
<img src="https://herzog.tech/signature/linkedin.svg.png" width="32px" />
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://herzog.tech/signature/linkedin-light.svg.png">
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://herzog.tech/signature/linkedin.svg.png">
|
||||||
|
<img src="https://herzog.tech/signature/linkedin.svg.png" width="32px">
|
||||||
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://hope.edu/directory/people/herzog-leo/" target="_blank">
|
<a href="https://hope.edu/directory/people/herzog-leo/" target="_blank">
|
||||||
<img src="https://herzog.tech/signature/anchor.svg.png" width="32px" />
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://herzog.tech/signature/anchor-light.svg.png">
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://herzog.tech/signature/anchor.svg.png">
|
||||||
|
<img src="https://herzog.tech/signature/anchor.svg.png" width="32px">
|
||||||
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<a href="https://www.buymeacoffee.com/leoherzog" target="_blank">
|
<a href="https://herzog.tech/$" target="_blank">
|
||||||
<img src="https://cdn.buymeacoffee.com/buttons/lato-black.png" alt="Buy Me A Coffee" width="217px" />
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://herzog.tech/signature/mug-tea-saucer-solid-light.svg.png">
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://herzog.tech/signature/mug-tea-saucer-solid.svg.png">
|
||||||
|
<img src="https://herzog.tech/signature/mug-tea-saucer-solid.svg.png" alt="Buy Me A Tea" width="32px">
|
||||||
|
</picture>
|
||||||
|
Found this helpful? Buy me a tea!
|
||||||
</a>
|
</a>
|
||||||
-63058
File diff suppressed because it is too large.
Load diff
Vendored
-108
@@ -1,108 +0,0 @@
|
|||||||
!function e(t,i,n){function r(a,o){if(!i[a]){if(!t[a]){var c="function"==typeof require&&require;if(!o&&c)return c(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=i[a]={exports:{}};t[a][0].call(u.exports,(function(e){return r(t[a][1][e]||e)}),u,u.exports,e,t,i,n)}return i[a].exports}for(var s="function"==typeof require&&require,a=0;a<n.length;a++)r(n[a]);return r}({1:[function(e,t,i){(function(e){(function(){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function s(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}Object.defineProperty(i,"__esModule",{value:!0});var a=Math.max,o=Math.min,c=Math.round;function l(){var e=navigator.userAgentData;return null!=e&&e.brands?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function u(){return!/^((?!chrome|android).)*safari/i.test(l())}function p(e,i,s){void 0===i&&(i=!1),void 0===s&&(s=!1);var a=e.getBoundingClientRect(),o=1,l=1;i&&r(e)&&(o=e.offsetWidth>0&&c(a.width)/e.offsetWidth||1,l=e.offsetHeight>0&&c(a.height)/e.offsetHeight||1);var p=(n(e)?t(e):window).visualViewport,d=!u()&&s,f=(a.left+(d&&p?p.offsetLeft:0))/o,h=(a.top+(d&&p?p.offsetTop:0))/l,m=a.width/o,b=a.height/l;return{width:m,height:b,top:h,right:f+m,bottom:h+b,left:f,x:f,y:h}}function d(e){var i=t(e);return{scrollLeft:i.pageXOffset,scrollTop:i.pageYOffset}}function f(e){return e?(e.nodeName||"").toLowerCase():null}function h(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function m(e){return p(h(e)).left+d(e).scrollLeft}function b(e){return t(e).getComputedStyle(e)}function v(e){var t=b(e),i=t.overflow,n=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(i+r+n)}function g(e,i,n){void 0===n&&(n=!1);var s,a,o=r(i),l=r(i)&&function(e){var t=e.getBoundingClientRect(),i=c(t.width)/e.offsetWidth||1,n=c(t.height)/e.offsetHeight||1;return 1!==i||1!==n}(i),u=h(i),b=p(e,l,n),g={scrollLeft:0,scrollTop:0},y={x:0,y:0};return(o||!o&&!n)&&(("body"!==f(i)||v(u))&&(g=(s=i)!==t(s)&&r(s)?{scrollLeft:(a=s).scrollLeft,scrollTop:a.scrollTop}:d(s)),r(i)?((y=p(i,!0)).x+=i.clientLeft,y.y+=i.clientTop):u&&(y.x=m(u))),{x:b.left+g.scrollLeft-y.x,y:b.top+g.scrollTop-y.y,width:b.width,height:b.height}}function y(e){var t=p(e),i=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:n}}function x(e){return"html"===f(e)?e:e.assignedSlot||e.parentNode||(s(e)?e.host:null)||h(e)}function _(e){return["html","body","#document"].indexOf(f(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:_(x(e))}function w(e,i){var n;void 0===i&&(i=[]);var r=_(e),s=r===(null==(n=e.ownerDocument)?void 0:n.body),a=t(r),o=s?[a].concat(a.visualViewport||[],v(r)?r:[]):r,c=i.concat(o);return s?c:c.concat(w(x(o)))}function k(e){return["table","td","th"].indexOf(f(e))>=0}function E(e){return r(e)&&"fixed"!==b(e).position?e.offsetParent:null}function S(e){for(var i=t(e),n=E(e);n&&k(n)&&"static"===b(n).position;)n=E(n);return n&&("html"===f(n)||"body"===f(n)&&"static"===b(n).position)?i:n||function(e){var t=/firefox/i.test(l());if(/Trident/i.test(l())&&r(e)&&"fixed"===b(e).position)return null;var i=x(e);for(s(i)&&(i=i.host);r(i)&&["html","body"].indexOf(f(i))<0;){var n=b(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(e)||i}var M="top",A="bottom",j="right",I="left",T="auto",C=[M,A,j,I],B="start",R="end",L="viewport",O="popper",P=C.reduce((function(e,t){return e.concat([t+"-"+B,t+"-"+R])}),[]),U=[].concat(C,[T]).reduce((function(e,t){return e.concat([t,t+"-"+B,t+"-"+R])}),[]),q=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function N(e){var t=new Map,i=new Set,n=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!i.has(e)){var n=t.get(e);n&&r(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){i.has(e.name)||r(e)})),n}function D(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];return[].concat(i).reduce((function(e,t){return e.replace(/%s/,t)}),e)}var z='Popper: modifier "%s" provided an invalid %s property, expected %s but got %s',H=["name","enabled","phase","fn","effect","requires","options"];function F(e){return e.split("-")[0]}function W(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(i&&s(i)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.hostLine truncated
|
|
||||||
/*! bittorrent-protocol. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
const n=e("unordered-array-remove"),r=e("bencode"),s=e("bitfield").default,a=e("crypto"),o=e("debug")("bittorrent-protocol"),c=e("randombytes"),l=e("simple-sha1"),u=e("speedometer"),p=e("readable-stream"),d=e("rc4"),f=i.from("BitTorrent protocol"),h=i.from([0,0,0,0]),m=i.from([0,0,0,1,0]),b=i.from([0,0,0,1,1]),v=i.from([0,0,0,1,2]),g=i.from([0,0,0,1,3]),y=[0,0,0,0,0,0,0,0],x=[0,0,0,3,9,0,0],_=i.from([0,0,0,1,14]),w=i.from([0,0,0,1,15]),k=i.from([0,0,0,0,0,0,0,0]),E=i.from([0,0,1,2]),S=i.from([0,0,0,2]);function M(e,t){for(let i=e.length;i--;)e[i]^=t[i];return e}class A{constructor(e,t,i,n){this.piece=e,this.offset=t,this.length=i,this.callback=n}}class j{constructor(){this.buffer=new Uint8Array}get(e){return!0}set(e){}}class I extends p.Duplex{constructor(e=null,t=0,i=!1){super(),this._debugId=c(4).toString("hex"),this._debug("new wire"),this.peerId=null,this.peerIdBuffer=null,this.type=e,this.amChoking=!0,this.amInterested=!1,this.peerChoking=!0,this.peerInterested=!1,this.peerPieces=new s(0,{grow:4e5}),this.extensions={},this.peerExtensions={},this.requests=[],this.peerRequests=[],this.extendedMapping={},this.peerExtendedMapping={},this.extendedHandshake={},this.peerExtendedHandshake={},this.hasFast=!1,this.allowedFastSet=[],this.peerAllowedFastSet=[],this._ext={},this._nextExt=1,this.uploaded=0,this.downloaded=0,this.uploadSpeed=u(),this.downloadSpeed=u(),this._keepAliveInterval=null,this._timeout=null,this._timeoutMs=0,this._timeoutExpiresAt=null,this.destroyed=!1,this._finished=!1,this._parserSize=0,this._parser=null,this._buffer=[],this._bufferSize=0,this._peEnabled=i,i?(this._dh=a.createDiffieHellman("ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a36210000000000090563","hex",2),this._myPubKey=this._dh.generateKeys("hex")):this._myPubKey=null,this._peerPubKey=null,this._sharedSecret=null,this._peerCryptoProvide=[],this._cryptoHandshakeDone=!1,this._cryptoSyncPattern=null,this._waitMaxBytes=null,this._encryptionMethod=null,this._encryptGenerator=null,this._decryptGenerator=null,this._setGenerators=!1,this.once("finish",(()=>this._onFinish())),this.on("finish",this._onFinish),this._debug("type:",this.type),"tcpIncoming"===this.type&&this._peEnabled?this._determineHandshakeType():"tcpOutgoing"===this.type&&this._peEnabled&&0===t?this._parsePe2():this._parseHandshake(null)}setKeepAlive(e){this._debug("setKeepAlive %s",e),clearInterval(this._keepAliveInterval),!1!==e&&(this._keepAliveInterval=setInterval((()=>{this.keepAlive()}),55e3))}setTimeout(e,t){this._debug("setTimeout ms=%d unref=%s",e,t),this._timeoutMs=e,this._timeoutUnref=!!t,this._resetTimeout(!0)}destroy(){if(!this.destroyed)return this.destroyed=!0,this._debug("destroy"),this.emit("close"),this.end(),this}end(...e){return this._debug("end"),this._onUninterested(),this._onChoke(),super.end(...e)}use(e){const t=e.prototype.name;if(!t)throw new Error('Extension class requires a "name" property on the prototype');this._debug("use extension.name=%s",t);const i=this._nextExt,n=new e(this);function r(){}"function"!=typeof n.onHandshake&&(n.onHandshake=r),"function"!=typeof n.onExtendedHandshake&&(n.onExtendedHandshake=r),"function"!=typeof n.onMessage&&(n.onMessage=r),this.extendedMapping[i]=t,this._ext[t]=n,this[t]=n,this._nextExt+=1}keepAlive(){this._debug("keep-alive"),this._push(h)}sendPe1(){if(this._peEnabled){const e=Math.floor(513*Math.random()),t=c(e);this._push(i.concat([i.from(this._myPubKey,"hex"),t]))}}sendPe2(){const e=Math.floor(513*Math.random()),t=c(e);this._push(i.concat([i.from(this._myPubKey,"hex"),t]))}sendPe3(e){this.setEncrypt(this._sharedSecret,e);const t=i.from(l.sync(i.from(this._utfToHex("req1")+this._sharedSecret,"hex")),"hex"),n=M(i.from(l.sync(i.from(this._utfToHex("req2")+e,"hex")),"hex"),i.from(l.sync(i.from(this._utfToHex("req3")+this._sharedSecret,"hex")),"hex")),r=c(2).readUInt16BE(0)%512,s=c(r);let a=i.alloc(14+r+2);k.copy(a),E.copy(a,8),a.writeInt16BE(r,12),s.copy(a,14),a.writeInt16BE(0,14+r),a=this._encryptHandshake(a),this._push(i.concat([t,n,a]))}sendPe4(e){this.setEncrypt(this._sharedSecret,e);const t=c(2).readUInt16BE(0)%512,n=c(t);let r=i.alloc(14+t);k.copy(r),S.copy(r,8),r.writeInt16BE(t,12),n.copy(r,14),r=this._encryptHandshake(r),this._push(r),this._cryptoHandshakeDone=!0,this._debug("completed crypto handshake")}handshake(e,t,n){let r,s;if("string"==typeof e?(e=e.toLowerCase(),r=i.from(e,"hex")):(r=e,e=r.toString("hex")),"string"==typeof t?s=i.from(t,"hex"):(s=t,t=s.toString("hex")),this._infoHash=r,20!==r.length||20!==s.length)throw new Error("infoHash and peerId MUST have length 20");this._debug("handshake i=%s p=%s exts=%o",e,t,n);const a=i.from(y);this.extensions={extended:!0,dht:!(!n||!n.dht),fast:!(!n||!n.fast)},a[5]|=16,this.extensions.dht&&(a[7]|=1),this.extensions.fast&&(a[7]|=4),this.extensions.fast&&this.peerExtensions.fast&&(this._debug("fast extension is enabled"),thiLine truncated
|
|
||||||
/*! blob-to-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
t.exports=function(t,i){if("undefined"==typeof Blob||!(t instanceof Blob))throw new Error("first argument must be a Blob");if("function"!=typeof i)throw new Error("second argument must be a function");const n=new FileReader;n.addEventListener("loadend",(function t(r){n.removeEventListener("loadend",t,!1),r.error?i(r.error):i(null,e.from(n.result))}),!1),n.readAsArrayBuffer(t)}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:110}],48:[function(e,t,i){function n(e,t){if("string"==typeof e[0])return e.join("");if("number"==typeof e[0])return new Uint8Array(e);const i=new Uint8Array(t);let n=0;for(let t=0,r=e.length;t<r;t++){const r=e[t];i.set(r,n),n+=r.byteLength||r.length}return i}t.exports=async function*(e,t=512,i={}){"object"==typeof t&&(t=(i=t).size);let{nopad:r,zeroPadding:s=!0}=i;r&&(s=!1);let a=[],o=0;for await(const i of e)if(o+=i.byteLength||i.length||1,a.push(i),o>=t){const e=n(a,o);let i=0;for(;o>=t;)yield e.slice(i,i+t),o-=t,i+=t;a=[e.slice(i,e.length)]}o&&(yield n(a,s?t:o))}},{}],49:[function(e,t,i){(function(i){(function(){const{Transform:n}=e("readable-stream");t.exports=class extends n{constructor(e,t={}){super(t),"object"==typeof e&&(e=(t=e).size),this.size=e||512;const{nopad:i,zeroPadding:n=!0}=t;this._zeroPadding=!i&&!!n,this._buffered=[],this._bufferedBytes=0}_transform(e,t,n){for(this._bufferedBytes+=e.length,this._buffered.push(e);this._bufferedBytes>=this.size;){this._bufferedBytes-=this.size;const e=[];let t=0;for(;t<this.size;){const i=this._buffered.shift();if(t+i.length<=this.size)e.push(i),t+=i.length;else{const n=this.size-t;e.push(i.slice(0,n)),t+=n,this._buffered.unshift(i.slice(n))}}this.push(i.concat(e,this.size))}n()}_flush(){if(this._bufferedBytes&&this._zeroPadding){const e=i.alloc(this.size-this._bufferedBytes);this._buffered.push(e),this.push(i.concat(this._buffered)),this._buffered=null}else this._bufferedBytes&&(this.push(i.concat(this._buffered)),this._buffered=null);this.push(null)}}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:110,"readable-stream":64}],50:[function(e,t,i){arguments[4][28][0].apply(i,arguments)},{dup:28}],51:[function(e,t,i){arguments[4][29][0].apply(i,arguments)},{"./_stream_readable":53,"./_stream_writable":55,_process:296,dup:29,inherits:217}],52:[function(e,t,i){arguments[4][30][0].apply(i,arguments)},{"./_stream_transform":54,dup:30,inherits:217}],53:[function(e,t,i){arguments[4][31][0].apply(i,arguments)},{"../errors":50,"./_stream_duplex":51,"./internal/streams/async_iterator":56,"./internal/streams/buffer_list":57,"./internal/streams/destroy":58,"./internal/streams/from":60,"./internal/streams/state":62,"./internal/streams/stream":63,_process:296,buffer:110,dup:31,events:178,inherits:217,"string_decoder/":427,util:67}],54:[function(e,t,i){arguments[4][32][0].apply(i,arguments)},{"../errors":50,"./_stream_duplex":51,dup:32,inherits:217}],55:[function(e,t,i){arguments[4][33][0].apply(i,arguments)},{"../errors":50,"./_stream_duplex":51,"./internal/streams/destroy":58,"./internal/streams/state":62,"./internal/streams/stream":63,_process:296,buffer:110,dup:33,inherits:217,"util-deprecate":440}],56:[function(e,t,i){arguments[4][34][0].apply(i,arguments)},{"./end-of-stream":59,_process:296,dup:34}],57:[function(e,t,i){arguments[4][35][0].apply(i,arguments)},{buffer:110,dup:35,util:67}],58:[function(e,t,i){arguments[4][36][0].apply(i,arguments)},{_process:296,dup:36}],59:[function(e,t,i){arguments[4][37][0].apply(i,arguments)},{"../../../errors":50,dup:37}],60:[function(e,t,i){arguments[4][38][0].apply(i,arguments)},{dup:38}],61:[function(e,t,i){arguments[4][39][0].apply(i,arguments)},{"../../../errors":50,"./end-of-stream":59,dup:39}],62:[function(e,t,i){arguments[4][40][0].apply(i,arguments)},{"../../../errors":50,dup:40}],63:[function(e,t,i){arguments[4][41][0].apply(i,arguments)},{dup:41,events:178}],64:[function(e,t,i){arguments[4][42][0].apply(i,arguments)},{"./lib/_stream_duplex.js":51,"./lib/_stream_passthrough.js":52,"./lib/_stream_readable.js":53,"./lib/_stream_transform.js":54,"./lib/_stream_writable.js":55,"./lib/internal/streams/end-of-stream.js":59,"./lib/internal/streams/pipeline.js":61,dup:42}],65:[function(e,t,i){!function(t,i){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}function s(e,t,i){if(s.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(i=t,t=10),this._init(e||0,t||10,i||"be"))}var a;"object"==typeof t?t.exports=s:i.BN=s,s.BN=s,s.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:e("buffer").Buffer}catch(e){}function o(e,t){var i=e.charCodeAt(t);return i>=48&&i<=57?i-48:i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:void n(!1,"Invalid character in "+e)}function c(e,t,i){var n=o(e,i);return i-1>=t&&(n|=o(e,i-1)<<4),n}function l(e,t,i,r){for(var s=0,a=0,o=Math.min(e.length,i),c=t;c<o;c++){var
Line truncated
|
|
||||||
/*!
|
|
||||||
* The buffer module from node.js, for the browser.
|
|
||||||
*
|
|
||||||
* @author Feross Aboukhadijeh <https://feross.org>
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
"use strict";var t=e("base64-js"),n=e("ieee754");i.Buffer=a,i.SlowBuffer=function(e){+e!=e&&(e=0);return a.alloc(+e)},i.INSPECT_MAX_BYTES=50;var r=2147483647;function s(e){if(e>r)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return t.__proto__=a.prototype,t}function a(e,t,i){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return o(e,t,i)}function o(e,t,i){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!a.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var i=0|d(e,t),n=s(i),r=n.write(e,t);r!==i&&(n=n.slice(0,r));return n}(e,t);if(ArrayBuffer.isView(e))return u(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(D(e,ArrayBuffer)||e&&D(e.buffer,ArrayBuffer))return function(e,t,i){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(i||0))throw new RangeError('"length" is outside of buffer bounds');var n;n=void 0===t&&void 0===i?new Uint8Array(e):void 0===i?new Uint8Array(e,t):new Uint8Array(e,t,i);return n.__proto__=a.prototype,n}(e,t,i);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return a.from(n,t,i);var r=function(e){if(a.isBuffer(e)){var t=0|p(e.length),i=s(t);return 0===i.length||e.copy(i,0,0,t),i}if(void 0!==e.length)return"number"!=typeof e.length||z(e.length)?s(0):u(e);if("Buffer"===e.type&&Array.isArray(e.data))return u(e.data)}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return a.from(e[Symbol.toPrimitive]("string"),t,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return c(e),s(e<0?0:0|p(e))}function u(e){for(var t=e.length<0?0:0|p(e.length),i=s(t),n=0;n<t;n+=1)i[n]=255&e[n];return i}function p(e){if(e>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|e}function d(e,t){if(a.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||D(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var i=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return q(e).length;default:if(r)return n?-1:U(e).length;t=(""+t).toLowerCase(),r=!0}}function f(e,t,i){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,i);case"utf8":case"utf-8":return E(this,t,i);case"ascii":return M(this,t,i);case"latin1":case"binary":return A(this,t,i);case"base64":return k(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,t,i);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function h(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function m(e,t,i,n,r){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),z(i=+i)&&(i=r?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(r)return-1;i=e.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof t&&(t=a.from(t,n)),a.isBuffer(t))return 0===t.length?-1:b(e,t,i,n,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):b(e,[t],i,n,r);throw new TypeError("val must be string, number or Buffer")}function b(e,t,i,n,r){var s,a=1,o=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,o/=2,c/=2,i/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(r){var u=-1;for(s=i;s<o;s++)if(l(e,s)===l(t,-1===u?0:s-u)){if(-1===u&&(u=s),s-u+1===c)return u*a}else-1!==u&&(s-=s-u),u=-1}else for(i+c>o&&(i=o-c),s=i;s>=0;s--){for(var p=!0,d=0;d<c;d++)if(l(e,s+d)!==l(t,d)){p=!1;break}if(p)return s}return-1}function v(e,t,i,n){i=Number(i)||0;var r=e.length-i;n?(n=Number(n))>r&&(n=r):n=r;var s=t.length;n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o=parseInt(t.substr(2*a,2),16);if(z(o))return a;e[i+a]=o}return a}funcLine truncated
|
|
||||||
/*!
|
|
||||||
* bytes
|
|
||||||
* Copyright(c) 2012-2014 TJ Holowaychuk
|
|
||||||
* Copyright(c) 2015 Jed Watson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
"use strict";t.exports=function(e,t){if("string"==typeof e)return c(e);if("number"==typeof e)return o(e,t);return null},t.exports.format=o,t.exports.parse=c;var n=/\B(?=(\d{3})+(?!\d))/g,r=/(?:\.0*|(\.[^0]+)0+)$/,s={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},a=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function o(e,t){if(!Number.isFinite(e))return null;var i=Math.abs(e),a=t&&t.thousandsSeparator||"",o=t&&t.unitSeparator||"",c=t&&void 0!==t.decimalPlaces?t.decimalPlaces:2,l=Boolean(t&&t.fixedDecimals),u=t&&t.unit||"";u&&s[u.toLowerCase()]||(u=i>=s.pb?"PB":i>=s.tb?"TB":i>=s.gb?"GB":i>=s.mb?"MB":i>=s.kb?"KB":"B");var p=(e/s[u.toLowerCase()]).toFixed(c);return l||(p=p.replace(r,"$1")),a&&(p=p.split(".").map((function(e,t){return 0===t?e.replace(n,a):e})).join(".")),p+o+u}function c(e){if("number"==typeof e&&!isNaN(e))return e;if("string"!=typeof e)return null;var t,i=a.exec(e),n="b";return i?(t=parseFloat(i[1]),n=i[4].toLowerCase()):(t=parseInt(e,10),n="b"),isNaN(t)?null:Math.floor(s[n]*t)}},{}],117:[function(e,t,i){
|
|
||||||
/*! cache-chunk-store. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
const n=e("lru"),r=e("queue-microtask");t.exports=class{constructor(e,t){if(this.store=e,this.chunkLength=e.chunkLength,this.inProgressGets=new Map,!this.store||!this.store.get||!this.store.put)throw new Error("First argument must be abstract-chunk-store compliant");this.cache=new n(t)}put(e,t,i=(()=>{})){if(!this.cache)return r((()=>i(new Error("CacheStore closed"))));this.cache.remove(e),this.store.put(e,t,i)}get(e,t,i=(()=>{})){if("function"==typeof t)return this.get(e,null,t);if(!this.cache)return r((()=>i(new Error("CacheStore closed"))));t||(t={});let n=this.cache.get(e);if(n){const e=t.offset||0,s=t.length||n.length-e;return 0===e&&s===n.length||(n=n.slice(e,s+e)),r((()=>i(null,n)))}let s=this.inProgressGets.get(e);const a=!!s;s||(s=[],this.inProgressGets.set(e,s)),s.push({opts:t,cb:i}),a||this.store.get(e,((t,i)=>{t||null==this.cache||this.cache.set(e,i);const n=this.inProgressGets.get(e);this.inProgressGets.delete(e);for(const{opts:e,cb:r}of n)if(t)r(t);else{const t=e.offset||0,n=e.length||i.length-t;let s=i;0===t&&n===i.length||(s=i.slice(t,n+t)),r(null,s)}}))}close(e=(()=>{})){if(!this.cache)return r((()=>e(new Error("CacheStore closed"))));this.cache=null,this.store.close(e)}destroy(e=(()=>{})){if(!this.cache)return r((()=>e(new Error("CacheStore closed"))));this.cache=null,this.store.destroy(e)}}},{lru:226,"queue-microtask":309}],118:[function(e,t,i){arguments[4][28][0].apply(i,arguments)},{dup:28}],119:[function(e,t,i){arguments[4][29][0].apply(i,arguments)},{"./_stream_readable":121,"./_stream_writable":123,_process:296,dup:29,inherits:217}],120:[function(e,t,i){arguments[4][30][0].apply(i,arguments)},{"./_stream_transform":122,dup:30,inherits:217}],121:[function(e,t,i){arguments[4][31][0].apply(i,arguments)},{"../errors":118,"./_stream_duplex":119,"./internal/streams/async_iterator":124,"./internal/streams/buffer_list":125,"./internal/streams/destroy":126,"./internal/streams/from":128,"./internal/streams/state":130,"./internal/streams/stream":131,_process:296,buffer:110,dup:31,events:178,inherits:217,"string_decoder/":427,util:67}],122:[function(e,t,i){arguments[4][32][0].apply(i,arguments)},{"../errors":118,"./_stream_duplex":119,dup:32,inherits:217}],123:[function(e,t,i){arguments[4][33][0].apply(i,arguments)},{"../errors":118,"./_stream_duplex":119,"./internal/streams/destroy":126,"./internal/streams/state":130,"./internal/streams/stream":131,_process:296,buffer:110,dup:33,inherits:217,"util-deprecate":440}],124:[function(e,t,i){arguments[4][34][0].apply(i,arguments)},{"./end-of-stream":127,_process:296,dup:34}],125:[function(e,t,i){arguments[4][35][0].apply(i,arguments)},{buffer:110,dup:35,util:67}],126:[function(e,t,i){arguments[4][36][0].apply(i,arguments)},{_process:296,dup:36}],127:[function(e,t,i){arguments[4][37][0].apply(i,arguments)},{"../../../errors":118,dup:37}],128:[function(e,t,i){arguments[4][38][0].apply(i,arguments)},{dup:38}],129:[function(e,t,i){arguments[4][39][0].apply(i,arguments)},{"../../../errors":118,"./end-of-stream":127,dup:39}],130:[function(e,t,i){arguments[4][40][0].apply(i,arguments)},{"../../../errors":118,dup:40}],131:[function(e,t,i){arguments[4][41][0].apply(i,arguments)},{dup:41,events:178}],132:[function(e,t,i){arguments[4][42][0].apply(i,arguments)},{"./lib/_stream_duplex.js":119,"./lib/_stream_passthrough.js":120,"./lib/_stream_readable.js":121,"./lib/_stream_transform.js":122,"./lib/_stream_writable.js":123,"./lib/internal/streams/end-of-stream.js":127,"./lib/internal/streams/pipeline.js":129,dup:42}],133:[function(e,t,i){const n=e("block-stream2"),r=e("readable-stream");class s extends r.Writable{constructor(e,t,i={}){if(super(i),!e||!e.put||!e.get)throw new Error("First argument must be an abstract-chunk-store compliant store");if(!(t=Number(t)))throw new Error("Second argument must be a chunk length");const r=void 0!==i.zeroPadding&&i.zeroPadding;this._blockstream=new n(t,{...i,zeroPadding:r}),this._outstandingPuts=0,this._storeMaxOutstandingPuts=i.storeMaxOutstandingPuts||16;let s=0;this._blockstream.on("data",(t=>{this.destroyed||(this._outstandingPuts+=1,this._outstandingPuts>=this._storeMaxOutstandingPuts&&this._blockstream.pause(),e.put(s,t,(e=>{if(e)return this.destroy(e);this._outstandingPuts-=1,this._outstandingPuts<this._storeMaxOutstandingPuts&&this._blockstream.resume(),0===this._outstandingPuts&&"function"==typeof this._finalCb&&(this._finalCb(null),this._finalCb=null)})),s+=1)})).on("error",(e=>{this.destroy(e)}))}_write(e,t,i){this._blockstream.write(e,t,i)}_final(e){this._blockstream.end(),this._blockstream.once("end",(()=>{0===this._outstandingPuts?e(null):this._finalCb=e}))}destroy(e){this.destroyed||(this.destroyed=!0,e&&this.emit("error",e),this.emit("close"))}}t.exports=s},{"block-stream2":49,"readable-stream":132}],134:[function(e,t,i){var n=e("safe-buffer").Buffer,r=e("stream").Transform,s=e("string_decoder").StringDecoder;function a(e){r.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigestLine truncated
|
|
||||||
/*!
|
|
||||||
* clipboard.js v2.0.11
|
|
||||||
* https://clipboardjs.com/
|
|
||||||
*
|
|
||||||
* Licensed MIT © Zeno Rocha
|
|
||||||
*/
|
|
||||||
var n,r;n=this,r=function(){return function(){var e={686:function(e,t,i){"use strict";i.d(t,{default:function(){return k}});var n=i(279),r=i.n(n),s=i(370),a=i.n(s),o=i(817),c=i.n(o);function l(e){try{return document.execCommand(e)}catch(e){return!1}}var u=function(e){var t=c()(e);return l("cut"),t},p=function(e,t){var i=function(e){var t="rtl"===document.documentElement.getAttribute("dir"),i=document.createElement("textarea");i.style.fontSize="12pt",i.style.border="0",i.style.padding="0",i.style.margin="0",i.style.position="absolute",i.style[t?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;return i.style.top="".concat(n,"px"),i.setAttribute("readonly",""),i.value=e,i}(e);t.container.appendChild(i);var n=c()(i);return l("copy"),i.remove(),n},d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body},i="";return"string"==typeof e?i=p(e,t):e instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==e?void 0:e.type)?i=p(e.value,t):(i=c()(e),l("copy")),i};function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}var h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.action,i=void 0===t?"copy":t,n=e.container,r=e.target,s=e.text;if("copy"!==i&&"cut"!==i)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==r){if(!r||"object"!==f(r)||1!==r.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===i&&r.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===i&&(r.hasAttribute("readonly")||r.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return s?d(s,{container:n}):r?"cut"===i?u(r):d(r,{container:n}):void 0};function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function b(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function v(e,t){return v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},v(e,t)}function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var i,n=x(e);if(t){var r=x(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return y(this,i)}}function y(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function x(e){return x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},x(e)}function _(e,t){var i="data-clipboard-".concat(e);if(t.hasAttribute(i))return t.getAttribute(i)}var w=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(s,e);var t,i,n,r=g(s);function s(e,t){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(i=r.call(this)).resolveOptions(t),i.listenClick(e),i}return t=s,i=[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===m(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=a()(e,"click",(function(e){return t.onClick(e)}))}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget,i=this.action(t)||"copy",n=h({action:i,container:this.container,target:this.target(t),text:this.text(t)});this.emit(n?"success":"error",{action:i,text:n,trigger:t,clearSelection:function(){t&&t.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(e){return _("action",e)}},{key:"defaultTarget",value:function(e){var t=_("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return _("text",e)}},{key:"destroy",value:function(){this.listener.destroy()}}],n=[{key:"copy",value:function(e){var t=arguments.length>Line truncated
|
|
||||||
/*! create-torrent. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
const n=e("bencode"),r=e("block-iterator"),s=e("piece-length"),a=e("path"),o=e("is-file"),c=e("junk"),l=e("join-async-iterator"),u=e("run-parallel"),p=e("queue-microtask"),d=e("simple-sha1");e("fast-readable-async-iterator");const f=e("./get-files");const h=Symbol("itemPath");function m(e,t,n){var r;if(r=e,"undefined"!=typeof FileList&&r instanceof FileList&&(e=Array.from(e)),Array.isArray(e)||(e=[e]),0===e.length)throw new Error("invalid input type");e.forEach((e=>{if(null==e)throw new Error(`invalid input type: ${e}`)})),1!==(e=e.map((e=>g(e)&&"string"==typeof e.path&&"function"==typeof f?e.path:e))).length||"string"==typeof e[0]||e[0].name||(e[0].name=t.name);let s=null;e.forEach(((t,i)=>{if("string"==typeof t)return;let n=t.fullPath||t.name;n||(n=`Unknown File ${i+1}`,t.unknownName=!0),t[h]=n.split("/"),t[h][0]||t[h].shift(),t[h].length<2?s=null:0===i&&e.length>1?s=t[h][0]:t[h][0]!==s&&(s=null)}));(void 0===t.filterJunkFiles||t.filterJunkFiles)&&(e=e.filter((e=>"string"==typeof e||!b(e[h])))),s&&e.forEach((e=>{const t=(i.isBuffer(e)||y(e))&&!e[h];"string"==typeof e||t||e[h].shift()})),!t.name&&s&&(t.name=s),t.name||e.some((e=>"string"==typeof e?(t.name=a.basename(e),!0):!e.unknownName&&(t.name=e[h][e[h].length-1],!0))),t.name||(t.name=`Unnamed Torrent ${Date.now()}`);const c=e.reduce(((e,t)=>e+Number("string"==typeof t)),0);let l=1===e.length;if(1===e.length&&"string"==typeof e[0]){if("function"!=typeof f)throw new Error("filesystem paths do not work in the browser");o(e[0],((e,t)=>{if(e)return n(e);l=t,d()}))}else p(d);function d(){u(e.map((e=>t=>{const n={};if(g(e))n.getStream=e.stream(),n.length=e.size;else if(i.isBuffer(e))n.getStream=[e],n.length=e.length;else{if(!y(e)){if("string"==typeof e){if("function"!=typeof f)throw new Error("filesystem paths do not work in the browser");return void f(e,c>1||l,t)}throw new Error("invalid input type")}n.getStream=async function*(e,t){for await(const i of e)t.length+=i.length,yield i}(e,n),n.length=0}n.path=e[h],t(null,n)})),((e,t)=>{if(e)return n(e);t=t.flat(),n(null,t,l)}))}}function b(e){const t=e[e.length-1];return"."===t[0]&&c.is(t)}function v(e,t){return e+t.length}function g(e){return"undefined"!=typeof Blob&&e instanceof Blob}function y(e){return"object"==typeof e&&null!=e&&"function"==typeof e.pipe}t.exports=function(e,a,o){"function"==typeof a&&([a,o]=[o,a]),m(e,a=a?Object.assign({},a):{},((e,c,u)=>{if(e)return o(e);a.singleFileTorrent=u,function(e,a,o){let c=a.announceList;c||("string"==typeof a.announce?c=[[a.announce]]:Array.isArray(a.announce)&&(c=a.announce.map((e=>[e]))));c||(c=[]);globalThis.WEBTORRENT_ANNOUNCE&&("string"==typeof globalThis.WEBTORRENT_ANNOUNCE?c.push([[globalThis.WEBTORRENT_ANNOUNCE]]):Array.isArray(globalThis.WEBTORRENT_ANNOUNCE)&&(c=c.concat(globalThis.WEBTORRENT_ANNOUNCE.map((e=>[e])))));void 0===a.announce&&void 0===a.announceList&&(c=c.concat(t.exports.announceList));"string"==typeof a.urlList&&(a.urlList=[a.urlList]);const u={info:{name:a.name},"creation date":Math.ceil((Number(a.creationDate)||Date.now())/1e3),encoding:"UTF-8"};0!==c.length&&(u.announce=c[0][0],u["announce-list"]=c);void 0!==a.comment&&(u.comment=a.comment);void 0!==a.createdBy&&(u["created by"]=a.createdBy);void 0!==a.private&&(u.info.private=Number(a.private));void 0!==a.info&&Object.assign(u.info,a.info);void 0!==a.sslCert&&(u.info["ssl-cert"]=a.sslCert);void 0!==a.urlList&&(u["url-list"]=a.urlList);const p=e.reduce(v,0),f=a.pieceLength||s(p);u.info["piece length"]=f,async function(e,t,n,s,a){const o=[];let c=0,u=0;const p=e.map((e=>e.getStream)),f=s.onProgress;let h=0,m=0,b=!1;const v=r(l(p),t,{zeroPadding:!1});try{for await(const e of v)await new Promise((t=>{c+=e.length;const r=m;++m,++h<5&&t(),d(e,(s=>{o[r]=s,--h,u+=e.length,f&&f(u,n),t(),b&&0===h&&a(null,i.from(o.join(""),"hex"),c)}))}));if(0===h)return a(null,i.from(o.join(""),"hex"),c);b=!0}catch(e){a(e)}}(e,f,p,a,((t,i,r)=>{if(t)return o(t);u.info.pieces=i,e.forEach((e=>{delete e.getStream})),a.singleFileTorrent?u.info.length=r:u.info.files=e,o(null,n.encode(u))}))}(c,a,o)}))},t.exports.parseInput=function(e,t,i){"function"==typeof t&&([t,i]=[i,t]),m(e,t=t?Object.assign({},t):{},i)},t.exports.announceList=[["udp://tracker.leechers-paradise.org:6969"],["udp://tracker.coppersurfer.tk:6969"],["udp://tracker.opentrackr.org:1337"],["udp://explodie.org:6969"],["udp://tracker.empire-js.us:1337"],["wss://tracker.btorrent.xyz"],["wss://tracker.openwebtorrent.com"]],t.exports.isJunkPath=b}).call(this)}).call(this,e("buffer").Buffer)},{"./get-files":67,bencode:22,"block-iterator":48,buffer:110,"fast-readable-async-iterator":183,"is-file":67,"join-async-iterator":220,junk:221,path:288,"piece-length":295,"queue-microtask":309,"run-parallel":336,"simple-sha1":366}],145:[function(e,t,i){"use strict";i.randomBytes=i.rng=i.pseudoRandomBytes=i.prng=e("randombytes"),i.createHash=i.Hash=e("create-hash"),i.createHmac=i.Hmac=e("create-hmac");var n=e("browserify-sign/algos"),r=Object.keys(n),s=["sha1","sha224","shLine truncated
|
|
||||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
i.read=function(e,t,i,n,r){var s,a,o=8*r-n-1,c=(1<<o)-1,l=c>>1,u=-7,p=i?r-1:0,d=i?-1:1,f=e[t+p];for(p+=d,s=f&(1<<-u)-1,f>>=-u,u+=o;u>0;s=256*s+e[t+p],p+=d,u-=8);for(a=s&(1<<-u)-1,s>>=-u,u+=n;u>0;a=256*a+e[t+p],p+=d,u-=8);if(0===s)s=1-l;else{if(s===c)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),s-=l}return(f?-1:1)*a*Math.pow(2,s-n)},i.write=function(e,t,i,n,r,s){var a,o,c,l=8*s-r-1,u=(1<<l)-1,p=u>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:s-1,h=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+p>=1?d/c:d*Math.pow(2,1-p))*c>=2&&(a++,c/=2),a+p>=u?(o=0,a=u):a+p>=1?(o=(t*c-1)*Math.pow(2,r),a+=p):(o=t*Math.pow(2,p-1)*Math.pow(2,r),a=0));r>=8;e[i+f]=255&o,f+=h,o/=256,r-=8);for(a=a<<r|o,l+=r;l>0;e[i+f]=255&a,f+=h,a/=256,l-=8);e[i+f-h]|=128*m}},{}],216:[function(e,t,i){
|
|
||||||
/*! immediate-chunk-store. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
const n=e("queue-microtask");t.exports=class{constructor(e){if(this.store=e,this.chunkLength=e.chunkLength,!this.store||!this.store.get||!this.store.put)throw new Error("First argument must be abstract-chunk-store compliant");this.mem=[]}put(e,t,i=(()=>{})){this.mem[e]=t,this.store.put(e,t,(t=>{this.mem[e]=null,i(t)}))}get(e,t,i=(()=>{})){if("function"==typeof t)return this.get(e,null,t);let r=this.mem[e];if(!r)return this.store.get(e,t,i);t||(t={});const s=t.offset||0,a=t.length||r.length-s;0===s&&a===r.length||(r=r.slice(s,a+s)),n((()=>i(null,r)))}close(e=(()=>{})){this.store.close(e)}destroy(e=(()=>{})){this.store.destroy(e)}}},{"queue-microtask":309}],217:[function(e,t,i){"function"==typeof Object.create?t.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}},{}],218:[function(e,t,i){t.exports=function(e){for(var t=0,i=e.length;t<i;++t)if(e.charCodeAt(t)>127)return!1;return!0}},{}],219:[function(e,t,i){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}
|
|
||||||
/*!
|
|
||||||
* Determine if an object is a Buffer
|
|
||||||
*
|
|
||||||
* @author Feross Aboukhadijeh <https://feross.org>
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
t.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},{}],220:[function(e,t,i){t.exports=async function*(e){for(let t of e)"function"==typeof t&&(t=t()),yield*t}},{}],221:[function(e,t,i){"use strict";i.re=()=>{throw new Error("`junk.re` was renamed to `junk.regex`")},i.regex=new RegExp(["^npm-debug\\.log$","^\\..*\\.swp$","^\\.DS_Store$","^\\.AppleDouble$","^\\.LSOverride$","^Icon\\r$","^\\._.*","^\\.Spotlight-V100(?:$|\\/)","\\.Trashes","^__MACOSX$","~$","^Thumbs\\.db$","^ehthumbs\\.db$","^Desktop\\.ini$","@eaDir$"].join("|")),i.is=e=>i.regex.test(e),i.not=e=>!i.is(e),i.default=t.exports},{}],222:[function(e,t,i){i.RateLimiter=e("./lib/rateLimiter"),i.TokenBucket=e("./lib/tokenBucket")},{"./lib/rateLimiter":224,"./lib/tokenBucket":225}],223:[function(e,t,i){(function(e){(function(){t.exports=function(){if(void 0!==e&&e.hrtime){var t=e.hrtime(),i=t[0],n=t[1];return 1e3*i+Math.floor(n/1e6)}return(new Date).getTime()}}).call(this)}).call(this,e("_process"))},{_process:296}],224:[function(e,t,i){(function(i){(function(){var n=e("./tokenBucket"),r=e("./clock"),s=function(e,t,i){this.tokenBucket=new n(e,e,t,null),this.tokenBucket.content=e,this.curIntervalStart=r(),this.tokensThisInterval=0,this.fireImmediately=i};s.prototype={tokenBucket:null,curIntervalStart:0,tokensThisInterval:0,fireImmediately:!1,removeTokens:function(e,t){if(e>this.tokenBucket.bucketSize)return i.nextTick(t.bind(null,"Requested tokens "+e+" exceeds maximum tokens per interval "+this.tokenBucket.bucketSize,null)),!1;var n=this,s=r();if((s<this.curIntervalStart||s-this.curIntervalStart>=this.tokenBucket.interval)&&(this.curIntervalStart=s,this.tokensThisInterval=0),e>this.tokenBucket.tokensPerInterval-this.tokensThisInterval){if(this.fireImmediately)i.nextTick(t.bind(null,null,-1));else{var a=Math.ceil(this.curIntervalStart+this.tokenBucket.interval-s);setTimeout((function(){n.tokenBucket.removeTokens(e,o)}),a)}return!1}return this.tokenBucket.removeTokens(e,o);function o(i,r){if(i)return t(i,null);n.tokensThisInterval+=e,t(null,r)}},tryRemoveTokens:function(e){if(e>this.tokenBucket.bucketSize)return!1;var t=r();if((t<this.curIntervalStart||t-this.curIntervalStart>=this.tokenBucket.interval)&&(this.curIntervalStart=t,this.tokensThisInterval=0),e>this.tokenBucket.tokensPerInterval-this.tokensThisInterval)return!1;var i=this.tokenBucket.tryRemoveTokens(e);return i&&(this.tokensThisInterval+=e),i},getTokensRemaining:function(){return this.tokenBucket.drip(),this.tokenBucket.content}},t.exports=s}).call(this)}).call(this,e("_process"))},{"./clock":223,"./tokenBucket":225,_process:296}],225:[function(e,t,i){(function(e){(function(){var i=function(e,t,i,n){if(this.bucketSize=e,this.tokensPerInterval=t,"string"==typeof i)switch(i){case"sec":case"second":this.interval=1e3;break;case"min":case"minute":this.interval=6e4;break;case"hr":case"hour":this.interval=36e5;break;case"day":this.interval=864e5;break;default:throw new Error("Invaid interval "+i)}else this.interval=i;this.parentBucket=n,this.content=0,this.lastDrip=+new Date};i.prototype={bucketSize:1,tokensPerInterval:1,interval:1e3,parentBucket:null,content:0,lastDrip:0,removeTokens:function(t,i){var n=this;return this.bucketSize?t>this.bucketSize?(e.nextTick(i.bind(null,"Requested tokens "+t+" exceeds bucket size "+this.bucketSize,null)),!1):(this.drip(),t>this.content?r():this.parentBucket?this.parentBucket.removeTokens(t,(function(e,s){return e?i(e,null):t>n.content?r():(n.content-=t,void i(null,Math.min(s,n.content)))})):(this.content-=t,e.nextTick(i.bind(null,null,this.content)),!0)):(e.nextTick(i.bind(null,null,t,Number.POSITIVE_INFINITY)),!0);function r(){var e=Math.ceil((t-n.content)*(n.interval/n.tokensPerInterval));return setTimeout((function(){n.removeTokens(t,i)}),e),!1}},tryRemoveTokens:function(e){return!this.bucketSize||!(e>this.bucketSize)&&(this.drip(),!(e>this.content)&&(!(this.parentBucket&&!this.parentBucket.tryRemoveTokens(e))&&(this.content-=e,!0)))},drip:function(){if(this.tokensPerInterval){var e=+new Date,t=Math.max(e-this.lastDrip,0);this.lastDrip=e;var i=t*(this.tokensPerInterval/this.interval);this.content=Math.min(this.content+i,this.bucketSize)}else this.content=this.bucketSize}},t.exports=i}).call(this)}).call(this,e("_process"))},{_process:296}],226:[function(e,t,i){var n=e("events"),r=e("inherits");function s(e){if(!(this instanceof s))return new s(e);"number"==typeof e&&(e={max:e}),e||(e={}),n.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}t.exports=s,r(s,n.EventEmitter),Object.defineProperty(s.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),s.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},s.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],Line truncated
|
|
||||||
/*! lt_donthave. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
const n=e("unordered-array-remove"),{EventEmitter:r}=e("events"),s=e("debug")("lt_donthave");t.exports=()=>{class e extends r{constructor(e){super(),this._peerSupports=!1,this._wire=e}onExtendedHandshake(){this._peerSupports=!0}onMessage(e){let t;try{t=e.readUInt32BE()}catch(e){return}this._wire.peerPieces.get(t)&&(s("got donthave %d",t),this._wire.peerPieces.set(t,!1),this.emit("donthave",t),this._failRequests(t))}donthave(e){if(!this._peerSupports)return;s("donthave %d",e);const t=i.alloc(4);t.writeUInt32BE(e),this._wire.extended("lt_donthave",t)}_failRequests(e){const t=this._wire.requests;for(let i=0;i<t.length;i++){const r=t[i];r.piece===e&&(n(t,i),i-=1,this._wire._callback(r,new Error("peer sent donthave"),null))}}}return e.prototype.name="lt_donthave",e}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:110,debug:146,events:178,"unordered-array-remove":436}],228:[function(e,t,i){(function(i){(function(){
|
|
||||||
/*! magnet-uri. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
t.exports=s,t.exports.decode=s,t.exports.encode=function(e){e=Object.assign({},e);let t=new Set;e.xt&&"string"==typeof e.xt&&t.add(e.xt);e.xt&&Array.isArray(e.xt)&&(t=new Set(e.xt));e.infoHashBuffer&&t.add(`urn:btih:${e.infoHashBuffer.toString("hex")}`);e.infoHash&&t.add(`urn:btih:${e.infoHash}`);e.infoHashV2Buffer&&t.add(e.xt=`urn:btmh:1220${e.infoHashV2Buffer.toString("hex")}`);e.infoHashV2&&t.add(`urn:btmh:1220${e.infoHashV2}`);const i=Array.from(t);1===i.length&&(e.xt=i[0]);i.length>1&&(e.xt=i);e.publicKeyBuffer&&(e.xs=`urn:btpk:${e.publicKeyBuffer.toString("hex")}`);e.publicKey&&(e.xs=`urn:btpk:${e.publicKey}`);e.name&&(e.dn=e.name);e.keywords&&(e.kt=e.keywords);e.announce&&(e.tr=e.announce);e.urlList&&(e.ws=e.urlList,delete e.as);e.peerAddresses&&(e["x.pe"]=e.peerAddresses);let n="magnet:?";return Object.keys(e).filter((e=>2===e.length||"x.pe"===e)).forEach(((t,i)=>{const s=Array.isArray(e[t])?e[t]:[e[t]];s.forEach(((e,r)=>{(i>0||r>0)&&("kt"!==t&&"so"!==t||0===r)&&(n+="&"),"dn"===t&&(e=encodeURIComponent(e).replace(/%20/g,"+")),"tr"!==t&&"as"!==t&&"ws"!==t||(e=encodeURIComponent(e)),"xs"!==t||e.startsWith("urn:btpk:")||(e=encodeURIComponent(e)),"kt"===t&&(e=encodeURIComponent(e)),"so"!==t&&(n+="kt"===t&&r>0?`+${e}`:`${t}=${e}`)})),"so"===t&&(n+=`${t}=${r.compose(s)}`)})),n};const n=e("thirty-two"),r=e("bep53-range");function s(e){const t={},s=e.split("magnet:?")[1];let a;if((s&&s.length>=0?s.split("&"):[]).forEach((e=>{const i=e.split("=");if(2!==i.length)return;const n=i[0];let s=i[1];"dn"===n&&(s=decodeURIComponent(s).replace(/\+/g," ")),"tr"!==n&&"xs"!==n&&"as"!==n&&"ws"!==n||(s=decodeURIComponent(s)),"kt"===n&&(s=decodeURIComponent(s).split("+")),"ix"===n&&(s=Number(s)),"so"===n&&(s=r.parse(decodeURIComponent(s).split(","))),t[n]?(Array.isArray(t[n])||(t[n]=[t[n]]),t[n].push(s)):t[n]=s})),t.xt){(Array.isArray(t.xt)?t.xt:[t.xt]).forEach((e=>{if(a=e.match(/^urn:btih:(.{40})/))t.infoHash=a[1].toLowerCase();else if(a=e.match(/^urn:btih:(.{32})/)){const e=n.decode(a[1]);t.infoHash=i.from(e,"binary").toString("hex")}else(a=e.match(/^urn:btmh:1220(.{64})/))&&(t.infoHashV2=a[1].toLowerCase())}))}if(t.xs){(Array.isArray(t.xs)?t.xs:[t.xs]).forEach((e=>{(a=e.match(/^urn:btpk:(.{64})/))&&(t.publicKey=a[1].toLowerCase())}))}return t.infoHash&&(t.infoHashBuffer=i.from(t.infoHash,"hex")),t.infoHashV2&&(t.infoHashV2Buffer=i.from(t.infoHashV2,"hex")),t.publicKey&&(t.publicKeyBuffer=i.from(t.publicKey,"hex")),t.dn&&(t.name=t.dn),t.kt&&(t.keywords=t.kt),t.announce=[],("string"==typeof t.tr||Array.isArray(t.tr))&&(t.announce=t.announce.concat(t.tr)),t.urlList=[],("string"==typeof t.as||Array.isArray(t.as))&&(t.urlList=t.urlList.concat(t.as)),("string"==typeof t.ws||Array.isArray(t.ws))&&(t.urlList=t.urlList.concat(t.ws)),t.peerAddresses=[],("string"==typeof t["x.pe"]||Array.isArray(t["x.pe"]))&&(t.peerAddresses=t.peerAddresses.concat(t["x.pe"])),t.announce=Array.from(new Set(t.announce)),t.urlList=Array.from(new Set(t.urlList)),t.peerAddresses=Array.from(new Set(t.peerAddresses)),t}}).call(this)}).call(this,e("buffer").Buffer)},{"bep53-range":24,buffer:110,"thirty-two":428}],229:[function(e,t,i){"use strict";var n=e("inherits"),r=e("hash-base"),s=e("safe-buffer").Buffer,a=new Array(16);function o(){r.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<<t|e>>>32-t}function l(e,t,i,n,r,s,a){return c(e+(t&i|~t&n)+r+s|0,a)+t|0}function u(e,t,i,n,r,s,a){return c(e+(t&n|i&~n)+r+s|0,a)+t|0}function p(e,t,i,n,r,s,a){return c(e+(t^i^n)+r+s|0,a)+t|0}function d(e,t,i,n,r,s,a){return c(e+(i^(t|~n))+r+s|0,a)+t|0}n(o,r),o.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var i=this._a,n=this._b,r=this._c,s=this._d;i=l(i,n,r,s,e[0],3614090360,7),s=l(s,i,n,r,e[1],3905402710,12),r=l(r,s,i,n,e[2],606105819,17),n=l(n,r,s,i,e[3],3250441966,22),i=l(i,n,r,s,e[4],4118548399,7),s=l(s,i,n,r,e[5],1200080426,12),r=l(r,s,i,n,e[6],2821735955,17),n=l(n,r,s,i,e[7],4249261313,22),i=l(i,n,r,s,e[8],1770035416,7),s=l(s,i,n,r,e[9],2336552879,12),r=l(r,s,i,n,e[10],4294925233,17),n=l(n,r,s,i,e[11],2304563134,22),i=l(i,n,r,s,e[12],1804603682,7),s=l(s,i,n,r,e[13],4254626195,12),r=l(r,s,i,n,e[14],2792965006,17),i=u(i,n=l(n,r,s,i,e[15],1236535329,22),r,s,e[1],4129170786,5),s=u(s,i,n,r,e[6],3225465664,9),r=u(r,s,i,n,e[11],643717713,14),n=u(n,r,s,i,e[0],3921069994,20),i=u(i,n,r,s,e[5],3593408605,5),s=u(s,i,n,r,e[10],38016083,9),r=u(r,s,i,n,e[15],3634488961,14),n=u(n,r,s,i,e[4],3889429448,20),i=u(i,n,r,s,e[9],568446438,5),s=u(s,i,n,r,e[14],3275163606,9),r=u(r,s,i,n,e[3],4107603335,14),n=u(n,r,s,i,e[8],1163531501,20),i=u(i,n,r,s,e[13],2850285829,5),s=u(s,i,n,r,e[2],4243563512,9),r=u(r,s,i,n,e[7],1735328473,14),i=p(i,n=u(n,r,s,i,e[12],2368359562,20),r,s,e[5],4294588738,4),s=p(s,i,n,r,e[8],2272392833,11),r=p(r,s,i,n,e[11],1839030562,16),n=p(n,r,s,i,e[14],4259657740,23),i=p(i,n,r,s,e[1],2763975236,4),s=p(s,i,n,r,e[4],1272893353,11),r=p(r,s,i,n,e[7],4139469664,16),n=Line truncated
|
|
||||||
/*! mediasource. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
t.exports=o;var n=e("inherits"),r=e("readable-stream"),s=e("to-arraybuffer"),a="undefined"!=typeof window&&window.MediaSource;function o(e,t){var i=this;if(!(i instanceof o))return new o(e,t);if(!a)throw new Error("web browser lacks MediaSource support");t||(t={}),i._debug=t.debug,i._bufferDuration=t.bufferDuration||60,i._elem=e,i._mediaSource=new a,i._streams=[],i.detailedError=null,i._errorHandler=function(){i._elem.removeEventListener("error",i._errorHandler),i._streams.slice().forEach((function(e){e.destroy(i._elem.error)}))},i._elem.addEventListener("error",i._errorHandler),i._elem.src=window.URL.createObjectURL(i._mediaSource)}function c(e,t){var i=this;if(r.Writable.call(i),i._wrapper=e,i._elem=e._elem,i._mediaSource=e._mediaSource,i._allStreams=e._streams,i._allStreams.push(i),i._bufferDuration=e._bufferDuration,i._sourceBuffer=null,i._debugBuffers=[],i._openHandler=function(){i._onSourceOpen()},i._flowHandler=function(){i._flow()},i._errorHandler=function(e){i.destroyed||i.emit("error",e)},"string"==typeof t)i._type=t,"open"===i._mediaSource.readyState?i._createSourceBuffer():i._mediaSource.addEventListener("sourceopen",i._openHandler);else if(null===t._sourceBuffer)t.destroy(),i._type=t._type,i._mediaSource.addEventListener("sourceopen",i._openHandler);else{if(!t._sourceBuffer)throw new Error("The argument to MediaElementWrapper.createWriteStream must be a string or a previous stream returned from that function");t.destroy(),i._type=t._type,i._sourceBuffer=t._sourceBuffer,i._debugBuffers=t._debugBuffers,i._sourceBuffer.addEventListener("updateend",i._flowHandler),i._sourceBuffer.addEventListener("error",i._errorHandler)}i._elem.addEventListener("timeupdate",i._flowHandler),i.on("error",(function(e){i._wrapper.error(e)})),i.on("finish",(function(){if(!i.destroyed&&(i._finished=!0,i._allStreams.every((function(e){return e._finished})))){i._wrapper._dumpDebugData();try{i._mediaSource.endOfStream()}catch(e){}}}))}o.prototype.createWriteStream=function(e){return new c(this,e)},o.prototype.error=function(e){var t=this;t.detailedError||(t.detailedError=e),t._dumpDebugData();try{t._mediaSource.endOfStream("decode")}catch(e){}try{window.URL.revokeObjectURL(t._elem.src)}catch(e){}},o.prototype._dumpDebugData=function(){var e=this;e._debug&&(e._debug=!1,e._streams.forEach((function(e,t){var i,n,r;i=e._debugBuffers,n="mediasource-stream-"+t,(r=document.createElement("a")).href=window.URL.createObjectURL(new window.Blob(i)),r.download=n,r.click()})))},n(c,r.Writable),c.prototype._onSourceOpen=function(){var e=this;e.destroyed||(e._mediaSource.removeEventListener("sourceopen",e._openHandler),e._createSourceBuffer())},c.prototype.destroy=function(e){var t=this;t.destroyed||(t.destroyed=!0,t._allStreams.splice(t._allStreams.indexOf(t),1),t._mediaSource.removeEventListener("sourceopen",t._openHandler),t._elem.removeEventListener("timeupdate",t._flowHandler),t._sourceBuffer&&(t._sourceBuffer.removeEventListener("updateend",t._flowHandler),t._sourceBuffer.removeEventListener("error",t._errorHandler),"open"===t._mediaSource.readyState&&t._sourceBuffer.abort()),e&&t.emit("error",e),t.emit("close"))},c.prototype._createSourceBuffer=function(){var e=this;if(!e.destroyed)if(a.isTypeSupported(e._type)){if(e._sourceBuffer=e._mediaSource.addSourceBuffer(e._type),e._sourceBuffer.addEventListener("updateend",e._flowHandler),e._sourceBuffer.addEventListener("error",e._errorHandler),e._cb){var t=e._cb;e._cb=null,t()}}else e.destroy(new Error("The provided type is not supported"))},c.prototype._write=function(e,t,i){var n=this;if(!n.destroyed)if(n._sourceBuffer){if(n._sourceBuffer.updating)return i(new Error("Cannot append buffer while source buffer updating"));var r=s(e);n._wrapper._debug&&n._debugBuffers.push(r);try{n._sourceBuffer.appendBuffer(r)}catch(e){return void n.destroy(e)}n._cb=i}else n._cb=function(r){if(r)return i(r);n._write(e,t,i)}},c.prototype._flow=function(){var e=this;if(!e.destroyed&&e._sourceBuffer&&!e._sourceBuffer.updating&&!("open"===e._mediaSource.readyState&&e._getBufferDuration()>e._bufferDuration)&&e._cb){var t=e._cb;e._cb=null,t()}};c.prototype._getBufferDuration=function(){for(var e=this._sourceBuffer.buffered,t=this._elem.currentTime,i=-1,n=0;n<e.length;n++){var r=e.start(n),s=e.end(n)+0;if(r>t)break;(i>=0||t<=s)&&(i=s)}var a=i-t;return a<0&&(a=0),a}},{inherits:217,"readable-stream":245,"to-arraybuffer":432}],231:[function(e,t,i){arguments[4][28][0].apply(i,arguments)},{dup:28}],232:[function(e,t,i){arguments[4][29][0].apply(i,arguments)},{"./_stream_readable":234,"./_stream_writable":236,_process:296,dup:29,inherits:217}],233:[function(e,t,i){arguments[4][30][0].apply(i,arguments)},{"./_stream_transform":235,dup:30,inherits:217}],234:[function(e,t,i){arguments[4][31][0].apply(i,arguments)},{"../errors":231,"./_stream_duplex":232,"./internal/streams/async_iterator":237,"./internal/streams/buffer_list":238,"./internal/streams/destroy":239,"./internal/streams/from":241,"./internal/streams/state":243Line truncated
|
|
||||||
/*!
|
|
||||||
* mime-db
|
|
||||||
* Copyright(c) 2014 Jonathan Ong
|
|
||||||
* Copyright(c) 2015-2022 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
t.exports=e("./db.json")},{"./db.json":249}],251:[function(e,t,i){
|
|
||||||
/*!
|
|
||||||
* mime-types
|
|
||||||
* Copyright(c) 2014 Jonathan Ong
|
|
||||||
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
"use strict";var n,r,s,a=e("mime-db"),o=e("path").extname,c=/^\s*([^;\s]*)(?:;|\s|$)/,l=/^text\//i;function u(e){if(!e||"string"!=typeof e)return!1;var t=c.exec(e),i=t&&a[t[1].toLowerCase()];return i&&i.charset?i.charset:!(!t||!l.test(t[1]))&&"UTF-8"}i.charset=u,i.charsets={lookup:u},i.contentType=function(e){if(!e||"string"!=typeof e)return!1;var t=-1===e.indexOf("/")?i.lookup(e):e;if(!t)return!1;if(-1===t.indexOf("charset")){var n=i.charset(t);n&&(t+="; charset="+n.toLowerCase())}return t},i.extension=function(e){if(!e||"string"!=typeof e)return!1;var t=c.exec(e),n=t&&i.extensions[t[1].toLowerCase()];if(!n||!n.length)return!1;return n[0]},i.extensions=Object.create(null),i.lookup=function(e){if(!e||"string"!=typeof e)return!1;var t=o("x."+e).toLowerCase().substr(1);if(!t)return!1;return i.types[t]||!1},i.types=Object.create(null),n=i.extensions,r=i.types,s=["nginx","apache",void 0,"iana"],Object.keys(a).forEach((function(e){var t=a[e],i=t.extensions;if(i&&i.length){n[e]=i;for(var o=0;o<i.length;o++){var c=i[o];if(r[c]){var l=s.indexOf(a[r[c]].source),u=s.indexOf(t.source);if("application/octet-stream"!==r[c]&&(l>u||l===u&&"application/"===r[c].substr(0,12)))continue}r[c]=e}}}))},{"mime-db":250,path:288}],252:[function(e,t,i){"use strict";function n(){this._types=Object.create(null),this._extensions=Object.create(null);for(let e=0;e<arguments.length;e++)this.define(arguments[e]);this.define=this.define.bind(this),this.getType=this.getType.bind(this),this.getExtension=this.getExtension.bind(this)}n.prototype.define=function(e,t){for(let i in e){let n=e[i].map((function(e){return e.toLowerCase()}));i=i.toLowerCase();for(let e=0;e<n.length;e++){const r=n[e];if("*"!==r[0]){if(!t&&r in this._types)throw new Error('Attempt to change mapping for "'+r+'" extension from "'+this._types[r]+'" to "'+i+'". Pass `force=true` to allow this, otherwise remove "'+r+'" from the list of extensions for "'+i+'".');this._types[r]=i}}if(t||!this._extensions[i]){const e=n[0];this._extensions[i]="*"!==e[0]?e:e.substr(1)}}},n.prototype.getType=function(e){let t=(e=String(e)).replace(/^.*[/\\]/,"").toLowerCase(),i=t.replace(/^.*\./,"").toLowerCase(),n=t.length<e.length;return(i.length<t.length-1||!n)&&this._types[i]||null},n.prototype.getExtension=function(e){return(e=/^\s*([^;\s]*)/.test(e)&&RegExp.$1)&&this._extensions[e.toLowerCase()]||null},t.exports=n},{}],253:[function(e,t,i){"use strict";let n=e("./Mime");t.exports=new n(e("./types/standard"),e("./types/other"))},{"./Mime":252,"./types/other":254,"./types/standard":255}],254:[function(e,t,i){t.exports={"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkpLine truncated
|
|
||||||
/*! parse-torrent. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
const n=e("bencode"),r=e("blob-to-buffer"),s=e("fs"),a=e("simple-get"),o=e("magnet-uri"),c=e("path"),l=e("simple-sha1"),u=e("queue-microtask");function p(e){if("string"==typeof e&&/^(stream-)?magnet:/.test(e)){const t=o(e);if(!t.infoHash)throw new Error("Invalid torrent identifier");return t}if("string"==typeof e&&(/^[a-f0-9]{40}$/i.test(e)||/^[a-z2-7]{32}$/i.test(e)))return o(`magnet:?xt=urn:btih:${e}`);if(i.isBuffer(e)&&20===e.length)return o(`magnet:?xt=urn:btih:${e.toString("hex")}`);if(i.isBuffer(e))return function(e){i.isBuffer(e)&&(e=n.decode(e));f(e.info,"info"),f(e.info["name.utf-8"]||e.info.name,"info.name"),f(e.info["piece length"],"info['piece length']"),f(e.info.pieces,"info.pieces"),e.info.files?e.info.files.forEach((e=>{f("number"==typeof e.length,"info.files[0].length"),f(e["path.utf-8"]||e.path,"info.files[0].path")})):f("number"==typeof e.info.length,"info.length");const t={info:e.info,infoBuffer:n.encode(e.info),name:(e.info["name.utf-8"]||e.info.name).toString(),announce:[]};t.infoHash=l.sync(t.infoBuffer),t.infoHashBuffer=i.from(t.infoHash,"hex"),void 0!==e.info.private&&(t.private=!!e.info.private);e["creation date"]&&(t.created=new Date(1e3*e["creation date"]));e["created by"]&&(t.createdBy=e["created by"].toString());i.isBuffer(e.comment)&&(t.comment=e.comment.toString());Array.isArray(e["announce-list"])&&e["announce-list"].length>0?e["announce-list"].forEach((e=>{e.forEach((e=>{t.announce.push(e.toString())}))})):e.announce&&t.announce.push(e.announce.toString());i.isBuffer(e["url-list"])&&(e["url-list"]=e["url-list"].length>0?[e["url-list"]]:[]);t.urlList=(e["url-list"]||[]).map((e=>e.toString())),t.announce=Array.from(new Set(t.announce)),t.urlList=Array.from(new Set(t.urlList));const r=e.info.files||[e.info];t.files=r.map(((e,i)=>{const n=[].concat(t.name,e["path.utf-8"]||e.path||[]).map((e=>e.toString()));return{path:c.join.apply(null,[c.sep].concat(n)).slice(1),name:n[n.length-1],length:e.length,offset:r.slice(0,i).reduce(d,0)}})),t.length=r.reduce(d,0);const s=t.files[t.files.length-1];return t.pieceLength=e.info["piece length"],t.lastPieceLength=(s.offset+s.length)%t.pieceLength||t.pieceLength,t.pieces=function(e){const t=[];for(let i=0;i<e.length;i+=20)t.push(e.slice(i,i+20).toString("hex"));return t}(e.info.pieces),t}(e);if(e&&e.infoHash)return e.infoHash=e.infoHash.toLowerCase(),e.announce||(e.announce=[]),"string"==typeof e.announce&&(e.announce=[e.announce]),e.urlList||(e.urlList=[]),e;throw new Error("Invalid torrent identifier")}function d(e,t){return e+t.length}function f(e,t){if(!e)throw new Error(`Torrent is missing required field: ${t}`)}t.exports=p,t.exports.remote=function e(t,i,n){if("function"==typeof i)return e(t,{},i);if("function"!=typeof n)throw new Error("second argument must be a Function");let o;try{o=p(t)}catch(e){}o&&o.infoHash?u((()=>{n(null,o)})):(c=t,"undefined"!=typeof Blob&&c instanceof Blob?r(t,((e,t)=>{if(e)return n(new Error(`Error converting Blob: ${e.message}`));l(t)})):"function"==typeof a&&/^https?:/.test(t)?(i=Object.assign({url:t,timeout:3e4,headers:{"user-agent":"WebTorrent (https://webtorrent.io)"}},i),a.concat(i,((e,t,i)=>{if(e)return n(new Error(`Error downloading torrent: ${e.message}`));l(i)}))):"function"==typeof s.readFile&&"string"==typeof t?s.readFile(t,((e,t)=>{if(e)return n(new Error("Invalid torrent identifier"));l(t)})):u((()=>{n(new Error("Invalid torrent identifier"))})));var c;function l(e){try{o=p(e)}catch(e){return n(e)}o&&o.infoHash?n(null,o):n(new Error("Invalid torrent identifier"))}},t.exports.toMagnetURI=o.encode,t.exports.toTorrentFile=function(e){const t={info:e.info};t["announce-list"]=(e.announce||[]).map((e=>(t.announce||(t.announce=e),[e=i.from(e,"utf8")]))),t["url-list"]=e.urlList||[],void 0!==e.private&&(t.private=Number(e.private));e.created&&(t["creation date"]=e.created.getTime()/1e3|0);e.createdBy&&(t["created by"]=e.createdBy);e.comment&&(t.comment=e.comment);return n.encode(t)},i.alloc(0)}).call(this)}).call(this,e("buffer").Buffer)},{bencode:22,"blob-to-buffer":47,buffer:110,fs:67,"magnet-uri":228,path:288,"queue-microtask":309,"simple-get":349,"simple-sha1":366}],288:[function(e,t,i){(function(e){(function(){"use strict";function i(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var i,n="",r=0,s=-1,a=0,o=0;o<=e.length;++o){if(o<e.length)i=e.charCodeAt(o);else{if(47===i)break;i=47}if(47===i){if(s===o-1||1===a);else if(s!==o-1&&2===a){if(n.length<2||2!==r||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var c=n.lastIndexOf("/");if(c!==n.length-1){-1===c?(n="",r=0):r=(n=n.slice(0,c)).length-1-n.lastIndexOf("/"),s=o,a=0;continue}}else if(2===n.length||1===n.length){n="",r=0,s=o,a=0;continue}t&&(n.length>0?n+="/..":n="..",r=2)}else n.length>0?n+="/"+e.slice(s+1,o):n=e.slice(s+1,o),r=o-s-1;s=o,a=0}else 46===i&&-1!==a?++a:a=-1}return n}var r={resolve:function(){for(var t,r="",s=!1,a=arguments.length-1;a>=-1Line truncated
|
|
||||||
/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
let i;t.exports="function"==typeof queueMicrotask?queueMicrotask.bind("undefined"!=typeof window?window:e):e=>(i||(i=Promise.resolve())).then(e).catch((e=>setTimeout((()=>{throw e}),0)))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],310:[function(e,t,i){t.exports="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e)},{}],311:[function(e,t,i){t.exports=function(e){var t=0;return function(){if(t===e.length)return null;var i=e.length-t,n=Math.random()*i|0,r=e[t+n],s=e[t];return e[t]=r,e[t+n]=s,t++,r}}},{}],312:[function(e,t,i){(function(i,n){(function(){"use strict";var r=65536,s=4294967295;var a=e("safe-buffer").Buffer,o=n.crypto||n.msCrypto;o&&o.getRandomValues?t.exports=function(e,t){if(e>s)throw new RangeError("requested too many random bytes");var n=a.allocUnsafe(e);if(e>0)if(e>r)for(var c=0;c<e;c+=r)o.getRandomValues(n.slice(c,c+r));else o.getRandomValues(n);if("function"==typeof t)return i.nextTick((function(){t(null,n)}));return n}:t.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:296,"safe-buffer":338}],313:[function(e,t,i){(function(t,n){(function(){"use strict";function r(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var s=e("safe-buffer"),a=e("randombytes"),o=s.Buffer,c=s.kMaxLength,l=n.crypto||n.msCrypto,u=Math.pow(2,32)-1;function p(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>u||e<0)throw new TypeError("offset must be a uint32");if(e>c||e>t)throw new RangeError("offset out of range")}function d(e,t,i){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>u||e<0)throw new TypeError("size must be a uint32");if(e+t>i||e>c)throw new RangeError("buffer too small")}function f(e,i,n,r){if(t.browser){var s=e.buffer,o=new Uint8Array(s,i,n);return l.getRandomValues(o),r?void t.nextTick((function(){r(null,e)})):e}if(!r)return a(n).copy(e,i),e;a(n,(function(t,n){if(t)return r(t);n.copy(e,i),r(null,e)}))}l&&l.getRandomValues||!t.browser?(i.randomFill=function(e,t,i,r){if(!(o.isBuffer(e)||e instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)r=t,t=0,i=e.length;else if("function"==typeof i)r=i,i=e.length-t;else if("function"!=typeof r)throw new TypeError('"cb" argument must be a function');return p(t,e.length),d(i,t,e.length),f(e,t,i,r)},i.randomFillSync=function(e,t,i){void 0===t&&(t=0);if(!(o.isBuffer(e)||e instanceof n.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');p(t,e.length),void 0===i&&(i=e.length-t);return d(i,t,e.length),f(e,t,i)}):(i.randomFill=r,i.randomFillSync=r)}).call(this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:296,randombytes:312,"safe-buffer":338}],314:[function(e,t,i){
|
|
||||||
/*!
|
|
||||||
* range-parser
|
|
||||||
* Copyright(c) 2012-2014 TJ Holowaychuk
|
|
||||||
* Copyright(c) 2015-2016 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
"use strict";function n(e,t){return{start:e.start,end:e.end,index:t}}function r(e){return{start:e.start,end:e.end}}function s(e,t){return e.index-t.index}function a(e,t){return e.start-t.start}t.exports=function(e,t,i){if("string"!=typeof t)throw new TypeError("argument str must be a string");var o=t.indexOf("=");if(-1===o)return-2;var c=t.slice(o+1).split(","),l=[];l.type=t.slice(0,o);for(var u=0;u<c.length;u++){var p=c[u].split("-"),d=parseInt(p[0],10),f=parseInt(p[1],10);isNaN(d)?(d=e-f,f=e-1):isNaN(f)&&(f=e-1),f>e-1&&(f=e-1),isNaN(d)||isNaN(f)||d>f||d<0||l.push({start:d,end:f})}if(l.length<1)return-1;return i&&i.combine?function(e){for(var t=e.map(n).sort(a),i=0,o=1;o<t.length;o++){var c=t[o],l=t[i];c.start>l.end+1?t[++i]=c:c.end>l.end&&(l.end=c.end,l.index=Math.min(l.index,c.index))}t.length=i+1;var u=t.sort(s).map(r);return u.type=e.type,u}(l):l}},{}],315:[function(e,t,i){const{Writable:n,PassThrough:r}=e("readable-stream");t.exports=class extends n{constructor(e,t={}){super(t),this.destroyed=!1,this._queue=[],this._position=e||0,this._cb=null,this._buffer=null,this._out=null}_write(e,t,i){let n=!0;for(;;){if(this.destroyed)return;if(0===this._queue.length)return this._buffer=e,void(this._cb=i);this._buffer=null;var r=this._queue[0];const t=Math.max(r.start-this._position,0),s=r.end-this._position;if(t>=e.length)return this._position+=e.length,i(null);let a;if(s>e.length){this._position+=e.length,a=0===t?e:e.slice(t),n=r.stream.write(a)&&n;break}this._position+=s,a=0===t&&s===e.length?e:e.slice(t,s),n=r.stream.write(a)&&n,r.last&&r.stream.end(),e=e.slice(s),this._queue.shift()}n?i(null):r.stream.once("drain",i.bind(null,null))}slice(e){if(this.destroyed)return null;Array.isArray(e)||(e=[e]);const t=new r;return e.forEach(((i,n)=>{this._queue.push({start:i.start,end:i.end,stream:t,last:n===e.length-1})})),this._buffer&&this._write(this._buffer,null,this._cb),t}destroy(e){this.destroyed||(this.destroyed=!0,e&&this.emit("error",e))}}},{"readable-stream":330}],316:[function(e,t,i){arguments[4][28][0].apply(i,arguments)},{dup:28}],317:[function(e,t,i){arguments[4][29][0].apply(i,arguments)},{"./_stream_readable":319,"./_stream_writable":321,_process:296,dup:29,inherits:217}],318:[function(e,t,i){arguments[4][30][0].apply(i,arguments)},{"./_stream_transform":320,dup:30,inherits:217}],319:[function(e,t,i){arguments[4][31][0].apply(i,arguments)},{"../errors":316,"./_stream_duplex":317,"./internal/streams/async_iterator":322,"./internal/streams/buffer_list":323,"./internal/streams/destroy":324,"./internal/streams/from":326,"./internal/streams/state":328,"./internal/streams/stream":329,_process:296,buffer:110,dup:31,events:178,inherits:217,"string_decoder/":427,util:67}],320:[function(e,t,i){arguments[4][32][0].apply(i,arguments)},{"../errors":316,"./_stream_duplex":317,dup:32,inherits:217}],321:[function(e,t,i){arguments[4][33][0].apply(i,arguments)},{"../errors":316,"./_stream_duplex":317,"./internal/streams/destroy":324,"./internal/streams/state":328,"./internal/streams/stream":329,_process:296,buffer:110,dup:33,inherits:217,"util-deprecate":440}],322:[function(e,t,i){arguments[4][34][0].apply(i,arguments)},{"./end-of-stream":325,_process:296,dup:34}],323:[function(e,t,i){arguments[4][35][0].apply(i,arguments)},{buffer:110,dup:35,util:67}],324:[function(e,t,i){arguments[4][36][0].apply(i,arguments)},{_process:296,dup:36}],325:[function(e,t,i){arguments[4][37][0].apply(i,arguments)},{"../../../errors":316,dup:37}],326:[function(e,t,i){arguments[4][38][0].apply(i,arguments)},{dup:38}],327:[function(e,t,i){arguments[4][39][0].apply(i,arguments)},{"../../../errors":316,"./end-of-stream":325,dup:39}],328:[function(e,t,i){arguments[4][40][0].apply(i,arguments)},{"../../../errors":316,dup:40}],329:[function(e,t,i){arguments[4][41][0].apply(i,arguments)},{dup:41,events:178}],330:[function(e,t,i){arguments[4][42][0].apply(i,arguments)},{"./lib/_stream_duplex.js":317,"./lib/_stream_passthrough.js":318,"./lib/_stream_readable.js":319,"./lib/_stream_transform.js":320,"./lib/_stream_writable.js":321,"./lib/internal/streams/end-of-stream.js":325,"./lib/internal/streams/pipeline.js":327,dup:42}],331:[function(e,t,i){"use strict";function n(e){return parseInt(e,10)===e}function r(e){function t(t){if(void 0===t){t=new Array(e);for(var i=0;i<e;i++)t[i]=Math.floor(Math.random()*e)}else if("string"==typeof t)t=(t=""+t).split("").map((function(t){return t.charCodeAt(0)%e}));else{if(!Array.isArray(t))throw new TypeError("invalid seed key specified");if(!t.every((function(e){return"number"==typeof e&&e===(0|e)})))throw new TypeError("invalid seed key specified: not array of integers")}for(var n=t.length,r=function(){for(var t=new Array(e),i=0;i<e;i++)t[i]=i;return t}(),s=0,a=0;a<e;a++){s=(s+r[a]+t[a%n])%e;var o=r[a];r[a]=r[s],r[s]=o}return r}function i(e){this.s=t(e),this.i=0,this.j=0}return i.prototype.randomNative=function(){this.i=(this.i+1)%e,this.j=(this.j+this.s[this.i])%e;var t=this.s[this.i];return this.s[this.i]=this.s[tLine truncated
|
|
||||||
/*! render-media. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
i.render=function(e,t,i,n){"function"==typeof i&&(n=i,i={});i||(i={});n||(n=()=>{});y(e),x(i),"string"==typeof t&&(t=document.querySelector(t));v(e,(n=>{if(t.nodeName!==n.toUpperCase()){const i=a.extname(e.name).toLowerCase();throw new Error(`Cannot render "${i}" inside a "${t.nodeName.toLowerCase()}" element, expected "${n}"`)}return"video"!==n&&"audio"!==n||_(t,i),t}),i,n)},i.append=function(e,t,i,n){"function"==typeof i&&(n=i,i={});i||(i={});n||(n=()=>{});y(e),x(i),"string"==typeof t&&(t=document.querySelector(t));if(t&&("VIDEO"===t.nodeName||"AUDIO"===t.nodeName))throw new Error("Invalid video/audio node argument. Argument must be root element that video/audio tag will be appended to.");function r(e){const i=document.createElement(e);return t.appendChild(i),i}v(e,(function(e){return"video"===e||"audio"===e?function(e){const n=r(e);return _(n,i),t.appendChild(n),n}(e):r(e)}),i,(function(e,t){e&&t&&t.remove(),n(e,t)}))},i.mime=e("./lib/mime.json");const n=e("debug")("render-media"),r=e("is-ascii"),s=e("mediasource"),a=e("path"),o=e("stream-to-blob-url"),c=e("videostream"),l=[".m4a",".m4b",".m4p",".m4v",".mp4"],u=[".m4v",".mkv",".mp4",".webm"],p=[].concat(u,[".m4a",".m4b",".m4p",".mp3"]),d=[".mov",".ogv"],f=[".aac",".oga",".ogg",".wav",".flac"],h=[".bmp",".gif",".jpeg",".jpg",".png",".svg"],m=[".css",".html",".js",".md",".pdf",".srt",".txt"],b="undefined"!=typeof window&&window.MediaSource;function v(e,t,i,o){const v=a.extname(e.name).toLowerCase();let y,x=0;function _(){return!("number"==typeof e.length&&e.length>i.maxBlobLength)||(n("File length too large for Blob URL approach: %d (max: %d)",e.length,i.maxBlobLength),M(new Error(`File length too large for Blob URL approach: ${e.length} (max: ${i.maxBlobLength})`)),!1)}function w(i){_()&&(y=t(i),g(e,((e,t)=>{if(e)return M(e);y.addEventListener("error",M),y.addEventListener("loadstart",k),y.addEventListener("loadedmetadata",E),y.src=t})))}function k(){if(y.removeEventListener("loadstart",k),i.autoplay){const e=y.play();void 0!==e&&e.catch(M)}}function E(){y.removeEventListener("loadedmetadata",E),o(null,y)}function S(){g(e,((e,i)=>{if(e)return M(e);".pdf"!==v?(y=t("iframe"),y.sandbox="allow-forms allow-scripts",y.src=i):(y=t("object"),y.setAttribute("typemustmatch",!0),y.setAttribute("type","application/pdf"),y.setAttribute("data",i)),o(null,y)}))}function M(t){t.message=`Error rendering file "${e.name}": ${t.message}`,n(t.message),o(t)}p.includes(v)?function(){const i=u.includes(v)?"video":"audio";b?l.includes(v)?r():o():p();function r(){n(`Use \`videostream\` package for ${e.name}`),h(),y.addEventListener("error",d),y.addEventListener("loadstart",k),y.addEventListener("loadedmetadata",E),new c(e,y)}function o(){n(`Use MediaSource API for ${e.name}`),h(),y.addEventListener("error",f),y.addEventListener("loadstart",k),y.addEventListener("loadedmetadata",E);const t=new s(y).createWriteStream(function(e){const t=a.extname(e).toLowerCase();return{".m4a":'audio/mp4; codecs="mp4a.40.5"',".m4b":'audio/mp4; codecs="mp4a.40.5"',".m4p":'audio/mp4; codecs="mp4a.40.5"',".m4v":'video/mp4; codecs="avc1.640029, mp4a.40.5"',".mkv":'video/webm; codecs="avc1.640029, mp4a.40.5"',".mp3":"audio/mpeg",".mp4":'video/mp4; codecs="avc1.640029, mp4a.40.5"',".webm":'video/webm; codecs="vorbis, vp8"'}[t]}(e.name));e.createReadStream().pipe(t),x&&(y.currentTime=x)}function p(){n(`Use Blob URL for ${e.name}`),h(),y.addEventListener("error",M),y.addEventListener("loadstart",k),y.addEventListener("loadedmetadata",E),g(e,((e,t)=>{if(e)return M(e);y.src=t,x&&(y.currentTime=x)}))}function d(e){n("videostream error: fallback to MediaSource API: %o",e.message||e),y.removeEventListener("error",d),y.removeEventListener("loadedmetadata",E),o()}function f(e){n("MediaSource API error: fallback to Blob URL: %o",e.message||e),_()&&(y.removeEventListener("error",f),y.removeEventListener("loadedmetadata",E),p())}function h(){y||(y=t(i),y.addEventListener("progress",(()=>{x=y.currentTime})))}}():d.includes(v)?w("video"):f.includes(v)?w("audio"):h.includes(v)?(y=t("img"),g(e,((t,i)=>{if(t)return M(t);y.src=i,y.alt=e.name,o(null,y)}))):m.includes(v)?S():function(){n('Unknown file extension "%s" - will attempt to render into iframe',v);let t="";function i(){r(t)?(n('File extension "%s" appears ascii, so will render.',v),S()):(n('File extension "%s" appears non-ascii, will not render.',v),o(new Error(`Unsupported file type "${v}": Cannot append to DOM`)))}e.createReadStream({start:0,end:1e3}).setEncoding("utf8").on("data",(e=>{t+=e})).on("end",i).on("error",o)}()}function g(e,t){const n=a.extname(e.name).toLowerCase();o(e.createReadStream(),i.mime[n]).then((e=>t(null,e)),(e=>t(e)))}function y(e){if(null==e)throw new Error("file cannot be null or undefined");if("string"!=typeof e.name)throw new Error("missing or invalid file.name property");if("function"!=typeof e.createReadStream)throw new Error("missing or invalid file.createReadStream property")}function x(e){null==e.autoplay&&(e.autoplay=!1),null==e.mLine truncated
|
|
||||||
/*! run-parallel-limit. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
t.exports=function(e,t,i){if("number"!=typeof t)throw new Error("second argument must be a Number");let r,s,a,o,c,l,u=!0;Array.isArray(e)?(r=[],a=s=e.length):(o=Object.keys(e),r={},a=s=o.length);function p(e){function t(){i&&i(e,r),i=null}u?n(t):t()}function d(t,i,n){if(r[t]=n,i&&(c=!0),0==--a||i)p(i);else if(!c&&l<s){let t;o?(t=o[l],l+=1,e[t]((function(e,i){d(t,e,i)}))):(t=l,l+=1,e[t]((function(e,i){d(t,e,i)})))}}l=t,a?o?o.some((function(i,n){return e[i]((function(e,t){d(i,e,t)})),n===t-1})):e.some((function(e,i){return e((function(e,t){d(i,e,t)})),i===t-1})):p(null);u=!1};const n=e("queue-microtask")},{"queue-microtask":309}],336:[function(e,t,i){
|
|
||||||
/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
t.exports=function(e,t){let i,r,s,a=!0;Array.isArray(e)?(i=[],r=e.length):(s=Object.keys(e),i={},r=s.length);function o(e){function r(){t&&t(e,i),t=null}a?n(r):r()}function c(e,t,n){i[e]=n,(0==--r||t)&&o(t)}r?s?s.forEach((function(t){e[t]((function(e,i){c(t,e,i)}))})):e.forEach((function(e,t){e((function(e,i){c(t,e,i)}))})):o(null);a=!1};const n=e("queue-microtask")},{"queue-microtask":309}],337:[function(e,t,i){var n,r;n="undefined"!=typeof self?self:this,r=function(){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=3)}([function(e,t,i){var n=i(5),r=i(1),s=r.toHex,a=r.ceilHeapSize,o=i(6),c=function(e){for(e+=9;e%64>0;e+=1);return e},l=function(e,t){var i=new Int32Array(e,t+320,5),n=new Int32Array(5),r=new DataView(n.buffer);return r.setInt32(0,i[0],!1),r.setInt32(4,i[1],!1),r.setInt32(8,i[2],!1),r.setInt32(12,i[3],!1),r.setInt32(16,i[4],!1),n},u=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),(t=t||65536)%64>0)throw new Error("Chunk size must be a multiple of 128 bit");this._offset=0,this._maxChunkLen=t,this._padMaxChunkLen=c(t),this._heap=new ArrayBuffer(a(this._padMaxChunkLen+320+20)),this._h32=new Int32Array(this._heap),this._h8=new Int8Array(this._heap),this._core=new n({Int32Array:Int32Array},{},this._heap)}return e.prototype._initState=function(e,t){this._offset=0;var i=new Int32Array(e,t+320,5);i[0]=1732584193,i[1]=-271733879,i[2]=-1732584194,i[3]=271733878,i[4]=-1009589776},e.prototype._padChunk=function(e,t){var i=c(e),n=new Int32Array(this._heap,0,i>>2);return function(e,t){var i=new Uint8Array(e.buffer),n=t%4,r=t-n;switch(n){case 0:i[r+3]=0;case 1:i[r+2]=0;case 2:i[r+1]=0;case 3:i[r+0]=0}for(var s=1+(t>>2);s<e.length;s++)e[s]=0}(n,e),function(e,t,i){e[t>>2]|=128<<24-(t%4<<3),e[14+(2+(t>>2)&-16)]=i/(1<<29)|0,e[15+(2+(t>>2)&-16)]=i<<3}(n,e,t),i},e.prototype._write=function(e,t,i,n){o(e,this._h8,this._h32,t,i,n||0)},e.prototype._coreCall=function(e,t,i,n,r){var s=i;this._write(e,t,i),r&&(s=this._padChunk(i,n)),this._core.hash(s,this._padMaxChunkLen)},e.prototype.rawDigest=function(e){var t=e.byteLength||e.length||e.size||0;this._initState(this._heap,this._padMaxChunkLen);var i=0,n=this._maxChunkLen;for(i=0;t>i+n;i+=n)this._coreCall(e,i,n,t,!1);return this._coreCall(e,i,t-i,t,!0),l(this._heap,this._padMaxChunkLen)},e.prototype.digest=function(e){return s(this.rawDigest(e).buffer)},e.prototype.digestFromString=function(e){return this.digest(e)},e.prototype.digestFromBuffer=function(e){return this.digest(e)},e.prototype.digestFromArrayBuffer=function(e){return this.digest(e)},e.prototype.resetState=function(){return this._initState(this._heap,this._padMaxChunkLen),this},e.prototype.append=function(e){var t=0,i=e.byteLength||e.length||e.size||0,n=this._offset%this._maxChunkLen,r=void 0;for(this._offset+=i;t<i;)r=Math.min(i-t,this._maxChunkLen-n),this._write(e,t,r,n),t+=r,(n+=r)===this._maxChunkLen&&(this._core.hash(this._maxChunkLen,this._padMaxChunkLen),n=0);return this},e.prototype.getState=function(){var e=void 0;if(this._offset%this._maxChunkLen)e=this._heap.slice(0);else{var t=new Int32Array(this._heap,this._padMaxChunkLen+320,5);e=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}return{offset:this._offset,heap:e}},e.prototype.setState=function(e){return this._offset=e.offset,20===e.heap.byteLength?new Int32Array(this._heap,this._padMaxChunkLen+320,5).set(new Int32Array(e.heap)):this._h32.set(new Int32Array(e.heap)),this},e.prototype.rawEnd=function(){var e=this._offset,t=e%this._maxChunkLen,i=this._padChunk(t,e);this._core.hash(i,this._padMaxChunkLen);var n=l(this._heap,this._padMaxChunkLen);return this._initState(this._heap,this._padMaxChunkLen),n},e.prototype.end=function(){return s(this.rawEnd().buffer)},e}();e.exports=u,e.exports._core=n},function(e,t){for(var i=new Array(256),n=0;n<256;n++)i[n]=(n<16?"0":"")+n.toString(16);e.exports.toHex=function(e){for(var t=new Uint8Array(e),n=new Array(e.byteLength),r=0;r<n.length;r++)n[r]=i[t[r]];return n.join("")},e.exports.ceilHeapSize=function(e){var t=0;if(e<=65536)return 65536;if(e<16777216)for(t=1;t<e;t<<=1);else for(t=16777216;t<e;t+=16777216);return t},e.exports.isDedicatedWorkerScope=function(e){var t="WorkerGlobalScope"in e&&e instanceof e.WorkerGlobalScope,i="SharedWorkerGlobalScope"in e&&e instanceof e.SharedWorkerGlobalScope,n="ServiceWorkerGlobalScope"in e&&e instanceof e.ServiceWorkerGlobalScope;return t&&!i&&!n}},function(e,t,i){e.exports=function(){var e=i(0),t=function(e,i,n,r,s){var a=new self.FileReader;a.onloadend=function(){if(a.erroLine truncated
|
|
||||||
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
var n=e("buffer"),r=n.Buffer;function s(e,t){for(var i in e)t[i]=e[i]}function a(e,t,i){return r(e,t,i)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(s(n,i),i.Buffer=a),a.prototype=Object.create(r.prototype),s(r,a),a.from=function(e,t,i){if("number"==typeof e)throw new TypeError("Argument must not be a number");return r(e,t,i)},a.alloc=function(e,t,i){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=r(e);return void 0!==t?"string"==typeof i?n.fill(t,i):n.fill(t):n.fill(0),n},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},{buffer:110}],339:[function(e,t,i){(function(i){(function(){"use strict";var n,r=e("buffer"),s=r.Buffer,a={};for(n in r)r.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(a[n]=r[n]);var o=a.Buffer={};for(n in s)s.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(o[n]=s[n]);if(a.Buffer.prototype=s.prototype,o.from&&o.from!==Uint8Array.from||(o.from=function(e,t,i){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return s(e,t,i)}),o.alloc||(o.alloc=function(e,t,i){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=s(e);return t&&0!==t.length?"string"==typeof i?n.fill(t,i):n.fill(t):n.fill(0),n}),!a.kStringMaxLength)try{a.kStringMaxLength=i.binding("buffer").kStringMaxLength}catch(e){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),t.exports=a}).call(this)}).call(this,e("_process"))},{_process:296,buffer:110}],340:[function(e,t,i){var n=e("safe-buffer").Buffer;function r(e,t){this._block=n.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}r.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=n.from(e,t));for(var i=this._block,r=this._blockSize,s=e.length,a=this._len,o=0;o<s;){for(var c=a%r,l=Math.min(s-o,r-c),u=0;u<l;u++)i[c+u]=e[o+u];o+=l,(a+=l)%r==0&&this._update(i)}return this._len+=s,this},r.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var i=8*this._len;if(i<=4294967295)this._block.writeUInt32BE(i,this._blockSize-4);else{var n=(4294967295&i)>>>0,r=(i-n)/4294967296;this._block.writeUInt32BE(r,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return e?s.toString(e):s},r.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=r},{"safe-buffer":338}],341:[function(e,t,i){(i=t.exports=function(e){e=e.toLowerCase();var t=i[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t}).sha=e("./sha"),i.sha1=e("./sha1"),i.sha224=e("./sha224"),i.sha256=e("./sha256"),i.sha384=e("./sha384"),i.sha512=e("./sha512")},{"./sha":342,"./sha1":343,"./sha224":344,"./sha256":345,"./sha384":346,"./sha512":347}],342:[function(e,t,i){var n=e("inherits"),r=e("./hash"),s=e("safe-buffer").Buffer,a=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function c(){this.init(),this._w=o,r.call(this,64,56)}function l(e){return e<<30|e>>>2}function u(e,t,i,n){return 0===e?t&i|~t&n:2===e?t&i|t&n|i&n:t^i^n}n(c,r),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,i=this._w,n=0|this._a,r=0|this._b,s=0|this._c,o=0|this._d,c=0|this._e,p=0;p<16;++p)i[p]=e.readInt32BE(4*p);for(;p<80;++p)i[p]=i[p-3]^i[p-8]^i[p-14]^i[p-16];for(var d=0;d<80;++d){var f=~~(d/20),h=0|((t=n)<<5|t>>>27)+u(f,r,s,o)+c+i[d]+a[f];c=o,o=s,s=l(r),r=n,n=h}this._a=n+this._a|0,this._b=r+this._b|0,this._c=s+this._c|0,this._d=o+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=s.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},t.exports=c},{"./hash":340,inherits:217,"safe-buffer":338}],343:[function(e,t,i){var n=e("inherits"),r=e("./hash"),s=e("safe-buffer").Buffer,a=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function c(){this.init(),this._w=o,r.call(this,64,56)}function l(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function p(e,t,i,n){return 0===e?t&i|~t&n:2===e?t&i|t&n|i&n:t^i^n}n(c,r),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._dLine truncated
|
|
||||||
/*! simple-concat. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
t.exports=function(t,i){var n=[];t.on("data",(function(e){n.push(e)})),t.once("end",(function(){i&&i(null,e.concat(n)),i=null})),t.once("error",(function(e){i&&i(e),i=null}))}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:110}],349:[function(e,t,i){(function(i){(function(){
|
|
||||||
/*! simple-get. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
t.exports=p;const n=e("simple-concat"),r=e("decompress-response"),s=e("http"),a=e("https"),o=e("once"),c=e("querystring"),l=e("url"),u=e=>null!==e&&"object"==typeof e&&"function"==typeof e.pipe;function p(e,t){if(e=Object.assign({maxRedirects:10},"string"==typeof e?{url:e}:e),t=o(t),e.url){const{hostname:t,port:i,protocol:n,auth:r,path:s}=l.parse(e.url);delete e.url,t||i||n||r?Object.assign(e,{hostname:t,port:i,protocol:n,auth:r,path:s}):e.path=s}const n={"accept-encoding":"gzip, deflate"};let d;e.headers&&Object.keys(e.headers).forEach((t=>n[t.toLowerCase()]=e.headers[t])),e.headers=n,e.body?d=e.json&&!u(e.body)?JSON.stringify(e.body):e.body:e.form&&(d="string"==typeof e.form?e.form:c.stringify(e.form),e.headers["content-type"]="application/x-www-form-urlencoded"),d&&(e.method||(e.method="POST"),u(d)||(e.headers["content-length"]=i.byteLength(d)),e.json&&!e.form&&(e.headers["content-type"]="application/json")),delete e.body,delete e.form,e.json&&(e.headers.accept="application/json"),e.method&&(e.method=e.method.toUpperCase());const f=e.hostname,h=("https:"===e.protocol?a:s).request(e,(i=>{if(!1!==e.followRedirects&&i.statusCode>=300&&i.statusCode<400&&i.headers.location){e.url=i.headers.location,delete e.headers.host,i.resume();const n=l.parse(e.url).hostname;return null!==n&&n!==f&&(delete e.headers.cookie,delete e.headers.authorization),"POST"===e.method&&[301,302].includes(i.statusCode)&&(e.method="GET",delete e.headers["content-length"],delete e.headers["content-type"]),0==e.maxRedirects--?t(new Error("too many redirects")):p(e,t)}const n="function"==typeof r&&"HEAD"!==e.method;t(null,n?r(i):i)}));return h.on("timeout",(()=>{h.abort(),t(new Error("Request timed out"))})),h.on("error",t),u(d)?d.on("error",t).pipe(h):h.end(d),h}p.concat=(e,t)=>p(e,((i,r)=>{if(i)return t(i);n(r,((i,n)=>{if(i)return t(i);if(e.json)try{n=JSON.parse(n.toString())}catch(i){return t(i,r,n)}t(null,r,n)}))})),["get","post","put","patch","head","delete"].forEach((e=>{p[e]=(t,i)=>("string"==typeof t&&(t={url:t}),p(Object.assign({method:e.toUpperCase()},t),i))}))}).call(this)}).call(this,e("buffer").Buffer)},{buffer:110,"decompress-response":67,http:404,https:214,once:281,querystring:308,"simple-concat":348,url:437}],350:[function(e,t,i){
|
|
||||||
/*! simple-peer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
const n=e("debug")("simple-peer"),r=e("get-browser-rtc"),s=e("randombytes"),a=e("readable-stream"),o=e("queue-microtask"),c=e("err-code"),{Buffer:l}=e("buffer"),u=65536;function p(e){return e.replace(/a=ice-options:trickle\s\n/g,"")}class d extends a.Duplex{constructor(e){if(super(e=Object.assign({allowHalfOpen:!1},e)),this._id=s(4).toString("hex").slice(0,7),this._debug("new peer %o",e),this.channelName=e.initiator?e.channelName||s(20).toString("hex"):null,this.initiator=e.initiator||!1,this.channelConfig=e.channelConfig||d.channelConfig,this.channelNegotiated=this.channelConfig.negotiated,this.config=Object.assign({},d.config,e.config),this.offerOptions=e.offerOptions||{},this.answerOptions=e.answerOptions||{},this.sdpTransform=e.sdpTransform||(e=>e),this.streams=e.streams||(e.stream?[e.stream]:[]),this.trickle=void 0===e.trickle||e.trickle,this.allowHalfTrickle=void 0!==e.allowHalfTrickle&&e.allowHalfTrickle,this.iceCompleteTimeout=e.iceCompleteTimeout||5e3,this.destroyed=!1,this.destroying=!1,this._connected=!1,this.remoteAddress=void 0,this.remoteFamily=void 0,this.remotePort=void 0,this.localAddress=void 0,this.localFamily=void 0,this.localPort=void 0,this._wrtc=e.wrtc&&"object"==typeof e.wrtc?e.wrtc:r(),!this._wrtc)throw"undefined"==typeof window?c(new Error("No WebRTC support: Specify `opts.wrtc` option in this environment"),"ERR_WEBRTC_SUPPORT"):c(new Error("No WebRTC support: Not a supported browser"),"ERR_WEBRTC_SUPPORT");this._pcReady=!1,this._channelReady=!1,this._iceComplete=!1,this._iceCompleteTimer=null,this._channel=null,this._pendingCandidates=[],this._isNegotiating=!1,this._firstNegotiation=!0,this._batchedNegotiation=!1,this._queuedNegotiation=!1,this._sendersAwaitingStable=[],this._senderMap=new Map,this._closingInterval=null,this._remoteTracks=[],this._remoteStreams=[],this._chunk=null,this._cb=null,this._interval=null;try{this._pc=new this._wrtc.RTCPeerConnection(this.config)}catch(e){return void this.destroy(c(e,"ERR_PC_CONSTRUCTOR"))}this._isReactNativeWebrtc="number"==typeof this._pc._peerConnectionId,this._pc.oniceconnectionstatechange=()=>{this._onIceStateChange()},this._pc.onicegatheringstatechange=()=>{this._onIceStateChange()},this._pc.onconnectionstatechange=()=>{this._onConnectionStateChange()},this._pc.onsignalingstatechange=()=>{this._onSignalingStateChange()},this._pc.onicecandidate=e=>{this._onIceCandidate(e)},"object"==typeof this._pc.peerIdentity&&this._pc.peerIdentity.catch((e=>{this.destroy(c(e,"ERR_PC_PEER_IDENTITY"))})),this.initiator||this.channelNegotiated?this._setupData({channel:this._pc.createDataChannel(this.channelName,this.channelConfig)}):this._pc.ondatachannel=e=>{this._setupData(e)},this.streams&&this.streams.forEach((e=>{this.addStream(e)})),this._pc.ontrack=e=>{this._onTrack(e)},this._debug("initial negotiation"),this._needsNegotiation(),this._onFinishBound=()=>{this._onFinish()},this.once("finish",this._onFinishBound)}get bufferSize(){return this._channel&&this._channel.bufferedAmount||0}get connected(){return this._connected&&"open"===this._channel.readyState}address(){return{port:this.localPort,family:this.localFamily,address:this.localAddress}}signal(e){if(!this.destroying){if(this.destroyed)throw c(new Error("cannot signal after peer is destroyed"),"ERR_DESTROYED");if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e={}}this._debug("signal()"),e.renegotiate&&this.initiator&&(this._debug("got request to renegotiate"),this._needsNegotiation()),e.transceiverRequest&&this.initiator&&(this._debug("got request for transceiver"),this.addTransceiver(e.transceiverRequest.kind,e.transceiverRequest.init)),e.candidate&&(this._pc.remoteDescription&&this._pc.remoteDescription.type?this._addIceCandidate(e.candidate):this._pendingCandidates.push(e.candidate)),e.sdp&&this._pc.setRemoteDescription(new this._wrtc.RTCSessionDescription(e)).then((()=>{this.destroyed||(this._pendingCandidates.forEach((e=>{this._addIceCandidate(e)})),this._pendingCandidates=[],"offer"===this._pc.remoteDescription.type&&this._createAnswer())})).catch((e=>{this.destroy(c(e,"ERR_SET_REMOTE_DESCRIPTION"))})),e.sdp||e.candidate||e.renegotiate||e.transceiverRequest||this.destroy(c(new Error("signal() called with invalid signal data"),"ERR_SIGNALING"))}}_addIceCandidate(e){const t=new this._wrtc.RTCIceCandidate(e);this._pc.addIceCandidate(t).catch((e=>{var i;!t.address||t.address.endsWith(".local")?(i="Ignoring unsupported ICE candidate.",console.warn(i)):this.destroy(c(e,"ERR_ADD_ICE_CANDIDATE"))}))}send(e){if(!this.destroying){if(this.destroyed)throw c(new Error("cannot send after peer is destroyed"),"ERR_DESTROYED");this._channel.send(e)}}addTransceiver(e,t){if(!this.destroying){if(this.destroyed)throw c(new Error("cannot addTransceiver after peer is destroyed"),"ERR_DESTROYED");if(this._debug("addTransceiver()"),this.initiator)try{this._pc.addTransceiver(e,t),this._needsNegotiation()}catch(e){this.destroy(c(e,"ERR_ADD_TRANSCEIVER"))}else this.emit("signal",{type:"transceiverRequest",transLine truncated
|
|
||||||
/*! simple-websocket. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
const n=e("debug")("simple-websocket"),r=e("randombytes"),s=e("readable-stream"),a=e("queue-microtask"),o=e("ws"),c="function"!=typeof o?WebSocket:o;class l extends s.Duplex{constructor(e={}){if("string"==typeof e&&(e={url:e}),super(e=Object.assign({allowHalfOpen:!1},e)),null==e.url&&null==e.socket)throw new Error("Missing required `url` or `socket` option");if(null!=e.url&&null!=e.socket)throw new Error("Must specify either `url` or `socket` option, not both");if(this._id=r(4).toString("hex").slice(0,7),this._debug("new websocket: %o",e),this.connected=!1,this.destroyed=!1,this._chunk=null,this._cb=null,this._interval=null,e.socket)this.url=e.socket.url,this._ws=e.socket,this.connected=e.socket.readyState===c.OPEN;else{this.url=e.url;try{this._ws="function"==typeof o?new c(e.url,null,{...e,encoding:void 0}):new c(e.url)}catch(e){return void a((()=>this.destroy(e)))}}this._ws.binaryType="arraybuffer",e.socket&&this.connected?a((()=>this._handleOpen())):this._ws.onopen=()=>this._handleOpen(),this._ws.onmessage=e=>this._handleMessage(e),this._ws.onclose=()=>this._handleClose(),this._ws.onerror=e=>this._handleError(e),this._handleFinishBound=()=>this._handleFinish(),this.once("finish",this._handleFinishBound)}send(e){this._ws.send(e)}destroy(e){this._destroy(e,(()=>{}))}_destroy(e,t){if(!this.destroyed){if(this._debug("destroy (error: %s)",e&&(e.message||e)),this.readable=this.writable=!1,this._readableState.ended||this.push(null),this._writableState.finished||this.end(),this.connected=!1,this.destroyed=!0,clearInterval(this._interval),this._interval=null,this._chunk=null,this._cb=null,this._handleFinishBound&&this.removeListener("finish",this._handleFinishBound),this._handleFinishBound=null,this._ws){const t=this._ws,i=()=>{t.onclose=null};if(t.readyState===c.CLOSED)i();else try{t.onclose=i,t.close()}catch(e){i()}t.onopen=null,t.onmessage=null,t.onerror=()=>{}}this._ws=null,e&&this.emit("error",e),this.emit("close"),t()}}_read(){}_write(e,t,i){if(this.destroyed)return i(new Error("cannot write after socket is destroyed"));if(this.connected){try{this.send(e)}catch(e){return this.destroy(e)}"function"!=typeof o&&this._ws.bufferedAmount>65536?(this._debug("start backpressure: bufferedAmount %d",this._ws.bufferedAmount),this._cb=i):i(null)}else this._debug("write before connect"),this._chunk=e,this._cb=i}_handleOpen(){if(!this.connected&&!this.destroyed){if(this.connected=!0,this._chunk){try{this.send(this._chunk)}catch(e){return this.destroy(e)}this._chunk=null,this._debug('sent chunk from "write before connect"');const e=this._cb;this._cb=null,e(null)}"function"!=typeof o&&(this._interval=setInterval((()=>this._onInterval()),150),this._interval.unref&&this._interval.unref()),this._debug("connect"),this.emit("connect")}}_handleMessage(e){if(this.destroyed)return;let t=e.data;t instanceof ArrayBuffer&&(t=i.from(t)),this.push(t)}_handleClose(){this.destroyed||(this._debug("on close"),this.destroy())}_handleError(e){this.destroy(new Error(`Error connecting to ${this.url}`))}_handleFinish(){if(this.destroyed)return;const e=()=>{setTimeout((()=>this.destroy()),1e3)};this.connected?e():this.once("connect",e)}_onInterval(){if(!this._cb||!this._ws||this._ws.bufferedAmount>65536)return;this._debug("ending backpressure: bufferedAmount %d",this._ws.bufferedAmount);const e=this._cb;this._cb=null,e(null)}_debug(){const e=[].slice.call(arguments);e[0]="["+this._id+"] "+e[0],n.apply(null,e)}}l.WEBSOCKET_SUPPORT=!!c,t.exports=l}).call(this)}).call(this,e("buffer").Buffer)},{buffer:110,debug:146,"queue-microtask":309,randombytes:312,"readable-stream":383,ws:67}],369:[function(e,t,i){arguments[4][28][0].apply(i,arguments)},{dup:28}],370:[function(e,t,i){arguments[4][29][0].apply(i,arguments)},{"./_stream_readable":372,"./_stream_writable":374,_process:296,dup:29,inherits:217}],371:[function(e,t,i){arguments[4][30][0].apply(i,arguments)},{"./_stream_transform":373,dup:30,inherits:217}],372:[function(e,t,i){arguments[4][31][0].apply(i,arguments)},{"../errors":369,"./_stream_duplex":370,"./internal/streams/async_iterator":375,"./internal/streams/buffer_list":376,"./internal/streams/destroy":377,"./internal/streams/from":379,"./internal/streams/state":381,"./internal/streams/stream":382,_process:296,buffer:110,dup:31,events:178,inherits:217,"string_decoder/":427,util:67}],373:[function(e,t,i){arguments[4][32][0].apply(i,arguments)},{"../errors":369,"./_stream_duplex":370,dup:32,inherits:217}],374:[function(e,t,i){arguments[4][33][0].apply(i,arguments)},{"../errors":369,"./_stream_duplex":370,"./internal/streams/destroy":377,"./internal/streams/state":381,"./internal/streams/stream":382,_process:296,buffer:110,dup:33,inherits:217,"util-deprecate":440}],375:[function(e,t,i){arguments[4][34][0].apply(i,arguments)},{"./end-of-stream":378,_process:296,dup:34}],376:[function(e,t,i){arguments[4][35][0].apply(i,arguments)},{buffer:110,dup:35,util:67}],377:[function(e,t,i){arguments[4][36][0].apply(i,arguments)},{_process:296,dup:36}],378:[fLine truncated
|
|
||||||
/*! stream-to-blob-url. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
t.exports=async function(e,t){const i=await n(e,t);return URL.createObjectURL(i)};const n=e("stream-to-blob")},{"stream-to-blob":424}],424:[function(e,t,i){
|
|
||||||
/*! stream-to-blob. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
t.exports=function(e,t){if(null!=t&&"string"!=typeof t)throw new Error("Invalid mimetype, expected string.");return new Promise(((i,n)=>{const r=[];e.on("data",(e=>r.push(e))).once("end",(()=>{const e=null!=t?new Blob(r,{type:t}):new Blob(r);i(e)})).once("error",n)}))}},{}],425:[function(e,t,i){(function(i){(function(){
|
|
||||||
/*! stream-with-known-length-to-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
var n=e("once");t.exports=function(e,t,r){r=n(r);var s=i.alloc(t),a=0;e.on("data",(function(e){e.copy(s,a),a+=e.length})).on("end",(function(){r(null,s)})).on("error",r)}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:110,once:281}],426:[function(e,t,i){const{EventEmitter:n}=e("events"),r=new Error("Stream was destroyed"),s=new Error("Premature close"),a=e("queue-tick"),o=e("fast-fifo"),c=67108863,l=1^c,u=16,p=128,d=256,f=1024,h=2048,m=4096,b=8192,v=16384,g=32784,y=768^c,x=1<<17,_=2<<17,w=4<<17,k=8<<17,E=16<<17,S=32<<17,M=64<<17,A=129<<17,j=256<<17,I=66977791,T=66846719,C=131088,B=66977775,R=4210688,L=14,O=15,P=4210702,U=16941072,q=16809999,N=1179648,D=1179663,z=Symbol.asyncIterator||Symbol("asyncIterator");class H{constructor(e,{highWaterMark:t=16384,map:i=null,mapWritable:n,byteLength:r,byteLengthWritable:s}={}){this.stream=e,this.queue=new o,this.highWaterMark=t,this.buffered=0,this.error=null,this.pipeline=null,this.byteLength=s||r||le,this.map=n||i,this.afterWrite=X.bind(this),this.afterUpdateNextTick=J.bind(this)}get ended(){return 0!=(this.stream._duplexState&S)}push(e){return null!==this.map&&(e=this.map(e)),this.buffered+=this.byteLength(e),this.queue.push(e),this.buffered<this.highWaterMark?(this.stream._duplexState|=k,!0):(this.stream._duplexState|=3145728,!1)}shift(){const e=this.queue.shift(),t=this.stream;return this.buffered-=this.byteLength(e),0===this.buffered&&(t._duplexState&=66060287),e}end(e){"function"==typeof e?this.stream.once("finish",e):null!=e&&this.push(e),this.stream._duplexState=(this.stream._duplexState|j)&T}autoBatch(e,t){const i=[],n=this.stream;for(i.push(e);(n._duplexState&D)===N;)i.push(n._writableState.shift());if(0!=(n._duplexState&O))return t(null);n._writev(i,t)}update(){const e=this.stream;for(;(e._duplexState&D)===k;){const t=this.shift();e._duplexState|=655360,e._write(t,this.afterWrite),e._duplexState&=66584575}0==(393216&e._duplexState)&&this.updateNonPrimary()}updateNonPrimary(){const e=this.stream;if((38928399&e._duplexState)===j)return e._duplexState=33554431&(e._duplexState|x),void e._final($.bind(this));4!=(e._duplexState&L)?1==(e._duplexState&q)&&(e._duplexState=(e._duplexState|C)&l,e._open(Q.bind(this))):0==(e._duplexState&U)&&(e._duplexState|=C,e._destroy(G.bind(this)))}updateNextTick(){0==(this.stream._duplexState&A)&&(this.stream._duplexState|=A,a(this.afterUpdateNextTick))}}class F{constructor(e,{highWaterMark:t=16384,map:i=null,mapReadable:n,byteLength:r,byteLengthReadable:s}={}){this.stream=e,this.queue=new o,this.highWaterMark=t,this.buffered=0,this.error=null,this.pipeline=null,this.byteLength=s||r||le,this.map=n||i,this.pipeTo=null,this.afterRead=Y.bind(this),this.afterUpdateNextTick=Z.bind(this)}get ended(){return 0!=(this.stream._duplexState&v)}pipe(e,t){if(null!==this.pipeTo)throw new Error("Can only pipe to one destination");if("function"!=typeof t&&(t=null),this.stream._duplexState|=512,this.pipeTo=e,this.pipeline=new V(this.stream,e,t),t&&this.stream.on("error",ue),ce(e))e._writableState.pipeline=this.pipeline,t&&e.on("error",ue),e.on("finish",this.pipeline.finished.bind(this.pipeline));else{const t=this.pipeline.done.bind(this.pipeline,e),i=this.pipeline.done.bind(this.pipeline,e,null);e.on("error",t),e.on("close",i),e.on("finish",this.pipeline.finished.bind(this.pipeline))}e.on("drain",K.bind(this)),this.stream.emit("piping",e),e.emit("pipe",this.stream)}push(e){const t=this.stream;return null===e?(this.highWaterMark=0,t._duplexState=67043295&(t._duplexState|f),!1):(null!==this.map&&(e=this.map(e)),this.buffered+=this.byteLength(e),this.queue.push(e),t._duplexState=67043327&(t._duplexState|p),this.buffered<this.highWaterMark)}shift(){const e=this.queue.shift();return this.buffered-=this.byteLength(e),0===this.buffered&&(this.stream._duplexState&=67100543),e}unshift(e){let t;const i=[];for(;void 0!==(t=this.queue.shift());)i.push(t);this.push(e);for(let e=0;e<i.length;e++)this.queue.push(i[e])}read(){const e=this.stream;if((16527&e._duplexState)===p){const t=this.shift();return null!==this.pipeTo&&!1===this.pipeTo.write(t)&&(e._duplexState&=y),0!=(e._duplexState&h)&&e.emit("data",t),t}return null}drain(){const e=this.stream;for(;(16527&e._duplexState)===p&&0!=(768&e._duplexState);){const t=this.shift();null!==this.pipeTo&&!1===this.pipeTo.write(t)&&(e._duplexState&=y),0!=(e._duplexState&h)&&e.emit("data",t)}}update(){const e=this.stream;for(this.drain();this.buffered<this.highWaterMark&&0==(82975&e._duplexState);)e._duplexState|=65616,e._read(this.afterRead),e._duplexState&=67108799,0==(e._duplexState&u)&&this.drain();4224==(12431&e._duplexState)&&(e._duplexState|=b,e.emit("readable")),0==(48&e._duplexState)&&this.updateNonPrimary()}updateNonPrimary(){const e=this.stream;(1167&e._duplexState)===f&&(e._duplexState=67107839&(e._duplexState|v),e.emit("end"),(e._duplexState&P)===R&&(e._duplexState|=4),null!==this.pipeTo&&this.pipeTo.end()),4!=(e._duplexState&L)?1==(e._duplexState&q)&&(e._duplexState=(e._duplexState|C)&l,e._open(Q.bind(tLine truncated
|
|
||||||
/**!
|
|
||||||
* tippy.js v6.3.7
|
|
||||||
* (c) 2017-2021 atomiks
|
|
||||||
* MIT License
|
|
||||||
*/
|
|
||||||
"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n=e("@popperjs/core"),r="tippy-content",s="tippy-backdrop",a="tippy-arrow",o="tippy-svg-arrow",c={passive:!0,capture:!0},l=function(){return document.body};function u(e,t,i){if(Array.isArray(e)){var n=e[t];return null==n?Array.isArray(i)?i[t]:i:n}return e}function p(e,t){var i={}.toString.call(e);return 0===i.indexOf("[object")&&i.indexOf(t+"]")>-1}function d(e,t){return"function"==typeof e?e.apply(void 0,t):e}function f(e,t){return 0===t?e:function(n){clearTimeout(i),i=setTimeout((function(){e(n)}),t)};var i}function h(e,t){var i=Object.assign({},e);return t.forEach((function(e){delete i[e]})),i}function m(e){return[].concat(e)}function b(e,t){-1===e.indexOf(t)&&e.push(t)}function v(e){return e.split("-")[0]}function g(e){return[].slice.call(e)}function y(e){return Object.keys(e).reduce((function(t,i){return void 0!==e[i]&&(t[i]=e[i]),t}),{})}function x(){return document.createElement("div")}function _(e){return["Element","Fragment"].some((function(t){return p(e,t)}))}function w(e){return p(e,"MouseEvent")}function k(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function E(e){return _(e)?[e]:function(e){return p(e,"NodeList")}(e)?g(e):Array.isArray(e)?e:g(document.querySelectorAll(e))}function S(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function M(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function A(e){var t,i=m(e)[0];return null!=i&&null!=(t=i.ownerDocument)&&t.body?i.ownerDocument:document}function j(e,t,i){var n=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[n](t,i)}))}function I(e,t){for(var i=t;i;){var n;if(e.contains(i))return!0;i=null==i.getRootNode||null==(n=i.getRootNode())?void 0:n.host}return!1}var T={isTouch:!1},C=0;function B(){T.isTouch||(T.isTouch=!0,window.performance&&document.addEventListener("mousemove",R))}function R(){var e=performance.now();e-C<20&&(T.isTouch=!1,document.removeEventListener("mousemove",R)),C=e}function L(){var e=document.activeElement;if(k(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var O,P=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto;function U(e){return[e+"() was called on a"+("destroy"===e?"n already-":" ")+"destroyed instance. This is a no-op but","indicates a potential memory leak."].join(" ")}function q(e){return e.replace(/[ \t]{2,}/g," ").replace(/^[ \t]*/gm,"").trim()}function N(e){return q("\n %ctippy.js\n\n %c"+q(e)+"\n\n %c👷 This is a development-only message. It will be removed in production.\n ")}function D(e){return[N(e),"color: #00C584; font-size: 1.3em; font-weight: bold;","line-height: 1.5","color: #a6a095;"]}function z(e,t){var i;e&&!O.has(t)&&(O.add(t),(i=console).warn.apply(i,D(t)))}function H(e,t){var i;e&&!O.has(t)&&(O.add(t),(i=console).error.apply(i,D(t)))}"production"!==t.env.NODE_ENV&&(O=new Set);var F={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},W=Object.assign({appendTo:l,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},F,{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),V=Object.keys(W);function K(e){var t=(e.plugins||[]).reduce((function(t,i){var n,r=i.name,s=i.defaultValue;r&&(t[r]=void 0!==e[r]?e[r]:null!=(n=W[r])?n:s);return t}),{});return Object.assign({},e,t)}function $(e,t){var i=Object.assign({},t,{content:d(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(K(Object.assign({},W,{plugins:t}))):V).reduce((function(t,i){var n=(e.getAttribute("data-tippy-"+i)||"").trim();if(!n)return t;if("content"===i)t[i]=n;else try{t[i]=JSON.parse(n)}catch(e){t[i]=n}return t}),{})}(e,t.plugins));return i.aria=Object.assign({},W.aria,i.aria),i.aria={expanded:"auto"===i.aria.expanded?t.interactive:i.aria.expanded,content:"auto"===i.aria.content?t.interactive?null:"describedby":i.aria.content},i}function G(e,t){void 0===e&&(e={}),void 0===t&&(t=[]),Object.keys(e).forEach((function(e){var i,n,r=h(W,Object.keys(F)),s=(i=r,n=e,!{}.hasOwnProperty.call(i,n));s&&(s=0===t.filter((function(t){return t.name===e})).length),z(s,["`"+e+"`","is not a valid prop. You may have spelled it incorrectly, or if it's","a plugin, forgot to pass it in an array as props.plugins.","\n\n","All props: https://atomiks.github.io/tippyjs/v6/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/v6/pl
Line truncated
|
|
||||||
/*! torrent-discovery. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
const n=e("debug")("torrent-discovery"),r=e("bittorrent-dht/client"),s=e("events").EventEmitter,a=e("run-parallel"),o=e("bittorrent-tracker/client"),c=e("bittorrent-lsd");t.exports=class extends s{constructor(e){if(super(),!e.peerId)throw new Error("Option `peerId` is required");if(!e.infoHash)throw new Error("Option `infoHash` is required");if(!i.browser&&!e.port)throw new Error("Option `port` is required");this.peerId="string"==typeof e.peerId?e.peerId:e.peerId.toString("hex"),this.infoHash="string"==typeof e.infoHash?e.infoHash.toLowerCase():e.infoHash.toString("hex"),this._port=e.port,this._userAgent=e.userAgent,this.destroyed=!1,this._announce=e.announce||[],this._intervalMs=e.intervalMs||9e5,this._trackerOpts=null,this._dhtAnnouncing=!1,this._dhtTimeout=!1,this._internalDHT=!1,this._onWarning=e=>{this.emit("warning",e)},this._onError=e=>{this.emit("error",e)},this._onDHTPeer=(e,t)=>{t.toString("hex")===this.infoHash&&this.emit("peer",`${e.host}:${e.port}`,"dht")},this._onTrackerPeer=e=>{this.emit("peer",e,"tracker")},this._onTrackerAnnounce=()=>{this.emit("trackerAnnounce")},this._onLSDPeer=(e,t)=>{this.emit("peer",e,"lsd")};const t=(e,t)=>{const i=new r(t);return i.on("warning",this._onWarning),i.on("error",this._onError),i.listen(e),this._internalDHT=!0,i};!1===e.tracker?this.tracker=null:e.tracker&&"object"==typeof e.tracker?(this._trackerOpts=Object.assign({},e.tracker),this.tracker=this._createTracker()):this.tracker=this._createTracker(),!1===e.dht||"function"!=typeof r?this.dht=null:e.dht&&"function"==typeof e.dht.addNode?this.dht=e.dht:e.dht&&"object"==typeof e.dht?this.dht=t(e.dhtPort,e.dht):this.dht=t(e.dhtPort),this.dht&&(this.dht.on("peer",this._onDHTPeer),this._dhtAnnounce()),!1===e.lsd||"function"!=typeof c?this.lsd=null:this.lsd=this._createLSD()}updatePort(e){e!==this._port&&(this._port=e,this.dht&&this._dhtAnnounce(),this.tracker&&(this.tracker.stop(),this.tracker.destroy((()=>{this.tracker=this._createTracker()}))))}complete(e){this.tracker&&this.tracker.complete(e)}destroy(e){if(this.destroyed)return;this.destroyed=!0,clearTimeout(this._dhtTimeout);const t=[];this.tracker&&(this.tracker.stop(),this.tracker.removeListener("warning",this._onWarning),this.tracker.removeListener("error",this._onError),this.tracker.removeListener("peer",this._onTrackerPeer),this.tracker.removeListener("update",this._onTrackerAnnounce),t.push((e=>{this.tracker.destroy(e)}))),this.dht&&this.dht.removeListener("peer",this._onDHTPeer),this._internalDHT&&(this.dht.removeListener("warning",this._onWarning),this.dht.removeListener("error",this._onError),t.push((e=>{this.dht.destroy(e)}))),this.lsd&&(this.lsd.removeListener("warning",this._onWarning),this.lsd.removeListener("error",this._onError),this.lsd.removeListener("peer",this._onLSDPeer),t.push((e=>{this.lsd.destroy(e)}))),a(t,e),this.dht=null,this.tracker=null,this.lsd=null,this._announce=null}_createTracker(){const e=Object.assign({},this._trackerOpts,{infoHash:this.infoHash,announce:this._announce,peerId:this.peerId,port:this._port,userAgent:this._userAgent}),t=new o(e);return t.on("warning",this._onWarning),t.on("error",this._onError),t.on("peer",this._onTrackerPeer),t.on("update",this._onTrackerAnnounce),t.setInterval(this._intervalMs),t.start(),t}_dhtAnnounce(){this._dhtAnnouncing||(n("dht announce"),this._dhtAnnouncing=!0,clearTimeout(this._dhtTimeout),this.dht.announce(this.infoHash,this._port,(e=>{this._dhtAnnouncing=!1,n("dht announce complete"),e&&this.emit("warning",e),this.emit("dhtAnnounce"),this.destroyed||(this._dhtTimeout=setTimeout((()=>{this._dhtAnnounce()}),this._intervalMs+Math.floor(Math.random()*this._intervalMs/5)),this._dhtTimeout.unref&&this._dhtTimeout.unref())})))}_createLSD(){const e=Object.assign({},{infoHash:this.infoHash,peerId:this.peerId,port:this._port}),t=new c(e);return t.on("warning",this._onWarning),t.on("error",this._onError),t.on("peer",this._onLSDPeer),t.start(),t}}}).call(this)}).call(this,e("_process"))},{_process:296,"bittorrent-dht/client":67,"bittorrent-lsd":67,"bittorrent-tracker/client":43,debug:146,events:178,"run-parallel":336}],434:[function(e,t,i){(function(e){(function(){
|
|
||||||
/*! torrent-piece. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
const i=16384;class n{constructor(e){this.length=e,this.missing=e,this.sources=null,this._chunks=Math.ceil(e/i),this._remainder=e%i||i,this._buffered=0,this._buffer=null,this._cancellations=null,this._reservations=0,this._flushed=!1}chunkLength(e){return e===this._chunks-1?this._remainder:i}chunkLengthRemaining(e){return this.length-e*i}chunkOffset(e){return e*i}reserve(){return this.init()?this._cancellations.length?this._cancellations.pop():this._reservations<this._chunks?this._reservations++:-1:-1}reserveRemaining(){if(!this.init())return-1;if(this._cancellations.length||this._reservations<this._chunks){let e=this._reservations;for(;this._cancellations.length;)e=Math.min(e,this._cancellations.pop());return this._reservations=this._chunks,e}return-1}cancel(e){this.init()&&this._cancellations.push(e)}cancelRemaining(e){this.init()&&(this._reservations=e)}get(e){return this.init()?this._buffer[e]:null}set(e,t,n){if(!this.init())return!1;const r=t.length,s=Math.ceil(r/i);for(let r=0;r<s;r++)if(!this._buffer[e+r]){const s=r*i,a=t.slice(s,s+i);this._buffered++,this._buffer[e+r]=a,this.missing-=a.length,this.sources.includes(n)||this.sources.push(n)}return this._buffered===this._chunks}flush(){if(!this._buffer||this._chunks!==this._buffered)return null;const t=e.concat(this._buffer,this.length);return this._buffer=null,this._cancellations=null,this.sources=null,this._flushed=!0,t}init(){return!this._flushed&&(this._buffer||(this._buffer=new Array(this._chunks),this._cancellations=[],this.sources=[]),!0)}}Object.defineProperty(n,"BLOCK_LENGTH",{value:i}),t.exports=n}).call(this)}).call(this,e("buffer").Buffer)},{buffer:110}],435:[function(e,t,i){var n=e("buffer-alloc"),r=Math.pow(2,32);i.encodingLength=function(){return 8},i.encode=function(e,t,i){t||(t=n(8)),i||(i=0);var s=Math.floor(e/r),a=e-s*r;return t.writeUInt32BE(s,i),t.writeUInt32BE(a,i+4),t},i.decode=function(e,t){t||(t=0);var i=e.readUInt32BE(t),n=e.readUInt32BE(t+4);return i*r+n},i.encode.bytes=8,i.decode.bytes=8},{"buffer-alloc":112}],436:[function(e,t,i){t.exports=function(e,t){if(t>=e.length||t<0)return;var i=e.pop();if(t<e.length){var n=e[t];return e[t]=i,n}return i}},{}],437:[function(e,t,i){"use strict";var n=e("punycode"),r=e("./util");function s(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}i.parse=y,i.resolve=function(e,t){return y(e,!1,!0).resolve(t)},i.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},i.format=function(e){r.isString(e)&&(e=y(e));return e instanceof s?e.format():s.prototype.format.call(e)},i.Url=s;var a=/^([a-z0-9.+-]+:)/i,o=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],f=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=e("querystring");function y(e,t,i){if(e&&r.isObject(e)&&e instanceof s)return e;var n=new s;return n.parse(e,t,i),n}s.prototype.parse=function(e,t,i){if(!r.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var s=e.indexOf("?"),o=-1!==s&&s<e.indexOf("#")?"?":"#",l=e.split(o);l[0]=l[0].replace(/\\/g,"/");var y=e=l.join(o);if(y=y.trim(),!i&&1===e.split("#").length){var x=c.exec(y);if(x)return this.path=y,this.href=y,this.pathname=x[1],x[2]?(this.search=x[2],this.query=t?g.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var _=a.exec(y);if(_){var w=(_=_[0]).toLowerCase();this.protocol=w,y=y.substr(_.length)}if(i||_||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var k="//"===y.substr(0,2);!k||_&&b[_]||(y=y.substr(2),this.slashes=!0)}if(!b[_]&&(k||_&&!v[_])){for(var E,S,M=-1,A=0;A<d.length;A++){-1!==(j=y.indexOf(d[A]))&&(-1===M||j<M)&&(M=j)}-1!==(S=-1===M?y.lastIndexOf("@"):y.lastIndexOf("@",M))&&(E=y.slice(0,S),y=y.slice(S+1),this.auth=decodeURIComponent(E)),M=-1;for(A=0;A<p.length;A++){var j;-1!==(j=y.indexOf(p[A]))&&(-1===M||j<M)&&(M=j)}-1===M&&(M=y.length),this.host=y.slice(0,M),y=y.slice(M),this.parseHost(),this.hostname=this.hostname||"";var I="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!I)for(var T=this.hostname.split(/\./),C=(A=0,T.length);A<C;A++){var B=T[A];if(B&&!B.match(f)){for(var R="",L=0,O=B.length;L<O;L++)B.charCodeAt(L)>127?R+="x":R+=B[L];if(!R.match(f)){var P=T.slice(0,A),U=T.slice(A+1),q=B.match(h);q&&(P.push(q[1]),U.unshift(q[2])),U.length&&(y="/"+U.join(".")+y),this.hostname=P.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),I||(this.hostname=n.toASCII(this.hostname));var N=this.port?":"+this.port:"",D=this.hostname||"";this.host=D+N,this.href+=this.host,I&&(thiLine truncated
|
|
||||||
/*! ut_metadata. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
const{EventEmitter:n}=e("events"),r=e("bencode"),s=e("bitfield").default,a=e("debug")("ut_metadata"),o=e("simple-sha1"),c=16384;t.exports=e=>{class t extends n{constructor(t){super(),this._wire=t,this._fetching=!1,this._metadataComplete=!1,this._metadataSize=null,this._remainingRejects=null,this._bitfield=new s(0,{grow:1e3}),i.isBuffer(e)&&this.setMetadata(e)}onHandshake(e,t,i){this._infoHash=e}onExtendedHandshake(e){return e.m&&e.m.ut_metadata?e.metadata_size?"number"!=typeof e.metadata_size||1e7<e.metadata_size||e.metadata_size<=0?this.emit("warning",new Error("Peer gave invalid metadata size")):(this._metadataSize=e.metadata_size,this._numPieces=Math.ceil(this._metadataSize/c),this._remainingRejects=2*this._numPieces,void this._requestPieces()):this.emit("warning",new Error("Peer does not have metadata")):this.emit("warning",new Error("Peer does not support ut_metadata"))}onMessage(e){let t,i;try{const n=e.toString(),s=n.indexOf("ee")+2;t=r.decode(n.substring(0,s)),i=e.slice(s)}catch(e){return}switch(t.msg_type){case 0:this._onRequest(t.piece);break;case 1:this._onData(t.piece,i,t.total_size);break;case 2:this._onReject(t.piece)}}fetch(){this._metadataComplete||(this._fetching=!0,this._metadataSize&&this._requestPieces())}cancel(){this._fetching=!1}setMetadata(e){if(this._metadataComplete)return!0;a("set metadata");try{const t=r.decode(e).info;t&&(e=r.encode(t))}catch(e){}return(!this._infoHash||this._infoHash===o.sync(e))&&(this.cancel(),this.metadata=e,this._metadataComplete=!0,this._metadataSize=this.metadata.length,this._wire.extendedHandshake.metadata_size=this._metadataSize,this.emit("metadata",r.encode({info:r.decode(this.metadata)})),!0)}_send(e,t){let n=r.encode(e);i.isBuffer(t)&&(n=i.concat([n,t])),this._wire.extended("ut_metadata",n)}_request(e){this._send({msg_type:0,piece:e})}_data(e,t,i){const n={msg_type:1,piece:e};"number"==typeof i&&(n.total_size=i),this._send(n,t)}_reject(e){this._send({msg_type:2,piece:e})}_onRequest(e){if(!this._metadataComplete)return void this._reject(e);const t=e*c;let i=t+c;i>this._metadataSize&&(i=this._metadataSize);const n=this.metadata.slice(t,i);this._data(e,n,this._metadataSize)}_onData(e,t,i){t.length>c||!this._fetching||(t.copy(this.metadata,e*c),this._bitfield.set(e),this._checkDone())}_onReject(e){this._remainingRejects>0&&this._fetching?(this._request(e),this._remainingRejects-=1):this.emit("warning",new Error('Peer sent "reject" too much'))}_requestPieces(){if(this._fetching){this.metadata=i.alloc(this._metadataSize);for(let e=0;e<this._numPieces;e++)this._request(e)}}_checkDone(){let e=!0;for(let t=0;t<this._numPieces;t++)if(!this._bitfield.get(t)){e=!1;break}if(!e)return;this.setMetadata(this.metadata)||this._failedMetadata()}_failedMetadata(){this._bitfield=new s(0,{grow:1e3}),this._remainingRejects-=this._numPieces,this._remainingRejects>0?this._requestPieces():this.emit("warning",new Error("Peer sent invalid metadata"))}}return t.prototype.name="ut_metadata",t}}).call(this)}).call(this,e("buffer").Buffer)},{bencode:22,bitfield:26,buffer:110,debug:146,events:178,"simple-sha1":366}],440:[function(e,t,i){(function(e){(function(){function i(t){try{if(!e.localStorage)return!1}catch(e){return!1}var i=e.localStorage[t];return null!=i&&"true"===String(i).toLowerCase()}t.exports=function(e,t){if(i("noDeprecation"))return e;var n=!1;return function(){if(!n){if(i("throwDeprecation"))throw new Error(t);i("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],441:[function(e,t,i){(function(i){(function(){const n=e("binary-search"),r=e("events"),s=e("mp4-stream"),a=e("mp4-box-encoding"),o=e("range-slice-stream");class c{constructor(e,t){this._entries=e,this._countName=t||"count",this._index=0,this._offset=0,this.value=this._entries[0]}inc(){this._offset++,this._offset>=this._entries[this._index][this._countName]&&(this._index++,this._offset=0),this.value=this._entries[this._index]}}const l=1;t.exports=class extends r{constructor(e){super(),this._tracks=[],this._file=e,this._decoder=null,this._findMoov(0)}_findMoov(e){this._decoder&&this._decoder.destroy();let t=0;this._decoder=s.decode();const i=this._file.createReadStream({start:e});i.pipe(this._decoder);const n=r=>{"moov"===r.type?(this._decoder.removeListener("box",n),this._decoder.decode((e=>{i.destroy();try{this._processMoov(e)}catch(e){e.message=`Cannot parse mp4 file: ${e.message}`,this.emit("error",e)}}))):r.length<4096?(t+=r.length,this._decoder.ignore()):(this._decoder.removeListener("box",n),t+=r.length,i.destroy(),this._decoder.destroy(),this._findMoov(e+t))};this._decoder.on("box",n)}_processMoov(e){const t=e.traks;this._tracks=[],this._hasVideo=!1,this._hasAudio=!1;for(let i=0;i<t.length;i++){const r=t[i],s=r.mdia.minf.stbl,a=s.stsd.entries[0],o=r.mdia.hdlr.handlerType;let l,u;if("vide"===o&&"avc1"===a.type){if(this._hasVideo)contiLine truncated
|
|
||||||
/*! webtorrent. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
|
|
||||||
const n=e("events"),r=e("path"),s=e("simple-concat"),a=e("create-torrent"),o=e("debug"),c=e("bittorrent-dht/client"),l=e("load-ip-set"),u=e("run-parallel"),p=e("parse-torrent"),d=e("simple-peer"),f=e("queue-microtask"),h=e("randombytes"),m=e("simple-sha1"),b=e("throughput"),{ThrottleGroup:v}=e("speed-limiter"),g=e("./lib/conn-pool.js"),y=e("./lib/torrent.js"),{version:x}=e("./package.json"),_=o("webtorrent"),w=x.replace(/\d*./g,(e=>("0"+e%100).slice(-2))).slice(0,4),k=`-WW${w}-`;class E extends n{constructor(t={}){super(),"string"==typeof t.peerId?this.peerId=t.peerId:i.isBuffer(t.peerId)?this.peerId=t.peerId.toString("hex"):this.peerId=i.from(k+h(9).toString("base64")).toString("hex"),this.peerIdBuffer=i.from(this.peerId,"hex"),"string"==typeof t.nodeId?this.nodeId=t.nodeId:i.isBuffer(t.nodeId)?this.nodeId=t.nodeId.toString("hex"):this.nodeId=h(20).toString("hex"),this.nodeIdBuffer=i.from(this.nodeId,"hex"),this._debugId=this.peerId.toString("hex").substring(0,7),this.destroyed=!1,this.listening=!1,this.torrentPort=t.torrentPort||0,this.dhtPort=t.dhtPort||0,this.tracker=void 0!==t.tracker?t.tracker:{},this.lsd=!1!==t.lsd,this.torrents=[],this.maxConns=Number(t.maxConns)||55,this.utp=E.UTP_SUPPORT&&!1!==t.utp,this._downloadLimit=Math.max("number"==typeof t.downloadLimit?t.downloadLimit:-1,-1),this._uploadLimit=Math.max("number"==typeof t.uploadLimit?t.uploadLimit:-1,-1),this.serviceWorker=null,this.workerKeepAliveInterval=null,this.workerPortCount=0,!0===t.secure&&e("./lib/peer").enableSecure(),this._debug("new webtorrent (peerId %s, nodeId %s, port %s)",this.peerId,this.nodeId,this.torrentPort),this.throttleGroups={down:new v({rate:Math.max(this._downloadLimit,0),enabled:this._downloadLimit>=0}),up:new v({rate:Math.max(this._uploadLimit,0),enabled:this._uploadLimit>=0})},this.tracker&&("object"!=typeof this.tracker&&(this.tracker={}),globalThis.WRTC&&!this.tracker.wrtc&&(this.tracker.wrtc=globalThis.WRTC)),"function"==typeof g?this._connPool=new g(this):f((()=>{this._onListening()})),this._downloadSpeed=b(),this._uploadSpeed=b(),!1!==t.dht&&"function"==typeof c?(this.dht=new c(Object.assign({},{nodeId:this.nodeId},t.dht)),this.dht.once("error",(e=>{this._destroy(e)})),this.dht.once("listening",(()=>{const e=this.dht.address();e&&(this.dhtPort=e.port)})),this.dht.setMaxListeners(0),this.dht.listen(this.dhtPort)):this.dht=!1,this.enableWebSeeds=!1!==t.webSeeds;const n=()=>{this.destroyed||(this.ready=!0,this.emit("ready"))};"function"==typeof l&&null!=t.blocklist?l(t.blocklist,{headers:{"user-agent":`WebTorrent/${x} (https://webtorrent.io)`}},((e,t)=>{if(e)return console.error(`Failed to load blocklist: ${e.message}`);this.blocked=t,n()})):f(n)}loadWorker(e,t=(()=>{})){if(!(e instanceof ServiceWorker))throw new Error("Invalid worker registration");if("activated"!==e.state)throw new Error("Worker isn't activated");this.serviceWorker=e,navigator.serviceWorker.addEventListener("message",(e=>{const{data:t}=e;if(!t.type||"webtorrent"===!t.type||!t.url)return null;let[i,...n]=t.url.slice(t.url.indexOf(t.scope+"webtorrent/")+11+t.scope.length).split("/");if(n=decodeURI(n.join("/")),!i||!n)return null;const[r]=e.ports,s=this.get(i)&&this.get(i).files.find((e=>e.path===n));if(!s)return null;const[a,o,c]=s._serve(t),l=o&&o[Symbol.asyncIterator](),u=()=>{r.onmessage=null,o&&o.destroy(),c&&c.destroy(),this.workerPortCount--,this.workerPortCount||(clearInterval(this.workerKeepAliveInterval),this.workerKeepAliveInterval=null)};r.onmessage=async e=>{if(e.data){let e;try{e=(await l.next()).value}catch(e){}r.postMessage(e),e||u(),this.workerKeepAliveInterval||(this.workerKeepAliveInterval=setInterval((()=>fetch(`${this.serviceWorker.scriptURL.slice(0,this.serviceWorker.scriptURL.lastIndexOf("/")+1).slice(window.location.origin.length)}webtorrent/keepalive/`)),2e4))}else u()},this.workerPortCount++,r.postMessage(a)})),fetch(`${this.serviceWorker.scriptURL.slice(0,this.serviceWorker.scriptURL.lastIndexOf("/")+1).slice(window.location.origin.length)}webtorrent/cancel/`).then((e=>{e.body.cancel()})),t(null,this.serviceWorker)}get downloadSpeed(){return this._downloadSpeed()}get uploadSpeed(){return this._uploadSpeed()}get progress(){const e=this.torrents.filter((e=>1!==e.progress));return e.reduce(((e,t)=>e+t.downloaded),0)/(e.reduce(((e,t)=>e+(t.length||0)),0)||1)}get ratio(){return this.torrents.reduce(((e,t)=>e+t.uploaded),0)/(this.torrents.reduce(((e,t)=>e+t.received),0)||1)}get(e){if(e instanceof y){if(this.torrents.includes(e))return e}else{let t;try{t=p(e)}catch(e){}if(!t)return null;if(!t.infoHash)throw new Error("Invalid torrent identifier");for(const e of this.torrents)if(e.infoHash===t.infoHash)return e}return null}add(e,t={},i=(()=>{})){if(this.destroyed)throw new Error("client is destroyed");"function"==typeof t&&([t,i]=[{},t]);const n=()=>{if(!this.destroyed)for(const e of this.torrents)if(e.infoHash===s.infoHash&&e!==s)return s._destroy(new Error(`Cannot add duplicate torrent ${s.infoHash}`)),void i(e)},r=()=>{thLine truncated
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Vendored
-2
@@ -1,2 +0,0 @@
|
|||||||
/*! Notyf 3.10.0 | MIT License | github.com/caroso1222/notyf */
|
|
||||||
var Notyf=function(){"use strict";var e,o=function(){return(o=Object.assign||function(t){for(var i,e=1,n=arguments.length;e<n;e++)for(var o in i=arguments[e])Object.prototype.hasOwnProperty.call(i,o)&&(t[o]=i[o]);return t}).apply(this,arguments)},n=(t.prototype.on=function(t,i){var e=this.listeners[t]||[];this.listeners[t]=e.concat([i])},t.prototype.triggerEvent=function(t,i){var e=this;(this.listeners[t]||[]).forEach(function(t){return t({target:e,event:i})})},t);function t(t){this.options=t,this.listeners={}}(i=e=e||{})[i.Add=0]="Add",i[i.Remove=1]="Remove";var f,i,s=(a.prototype.push=function(t){this.notifications.push(t),this.updateFn(t,e.Add,this.notifications)},a.prototype.splice=function(t,i){i=this.notifications.splice(t,i)[0];return this.updateFn(i,e.Remove,this.notifications),i},a.prototype.indexOf=function(t){return this.notifications.indexOf(t)},a.prototype.onUpdate=function(t){this.updateFn=t},a);function a(){this.notifications=[]}(i=f=f||{}).Dismiss="dismiss";var r={types:[{type:"success",className:"notyf__toast--success",backgroundColor:"#3dc763",icon:{className:"notyf__icon--success",tagName:"i"}},{type:"error",className:"notyf__toast--error",backgroundColor:"#ed3d3d",icon:{className:"notyf__icon--error",tagName:"i"}}],duration:2e3,ripple:!0,position:{x:"right",y:"bottom"},dismissible:!(i.Click="click")},c=(p.prototype.on=function(t,i){var e;this.events=o(o({},this.events),((e={})[t]=i,e))},p.prototype.update=function(t,i){i===e.Add?this.addNotification(t):i===e.Remove&&this.removeNotification(t)},p.prototype.removeNotification=function(t){var i,e,n=this,t=this._popRenderedNotification(t);t&&((e=t.node).classList.add("notyf__toast--disappear"),e.addEventListener(this.animationEndEventName,i=function(t){t.target===e&&(e.removeEventListener(n.animationEndEventName,i),n.container.removeChild(e))}))},p.prototype.addNotification=function(t){var i=this._renderNotification(t);this.notifications.push({notification:t,node:i}),this._announce(t.options.message||"Notification")},p.prototype._renderNotification=function(t){var i=this._buildNotificationCard(t),e=t.options.className;return e&&(t=i.classList).add.apply(t,e.split(" ")),this.container.appendChild(i),i},p.prototype._popRenderedNotification=function(t){for(var i=-1,e=0;e<this.notifications.length&&i<0;e++)this.notifications[e].notification===t&&(i=e);if(-1!==i)return this.notifications.splice(i,1)[0]},p.prototype.getXPosition=function(t){return(null===(t=null==t?void 0:t.position)||void 0===t?void 0:t.x)||"right"},p.prototype.getYPosition=function(t){return(null===(t=null==t?void 0:t.position)||void 0===t?void 0:t.y)||"bottom"},p.prototype.adjustContainerAlignment=function(t){var i=this.X_POSITION_FLEX_MAP[this.getXPosition(t)],e=this.Y_POSITION_FLEX_MAP[this.getYPosition(t)],t=this.container.style;t.setProperty("justify-content",e),t.setProperty("align-items",i)},p.prototype._buildNotificationCard=function(n){var o=this,t=n.options,i=t.icon;this.adjustContainerAlignment(t);var e=this._createHTMLElement({tagName:"div",className:"notyf__toast"}),s=this._createHTMLElement({tagName:"div",className:"notyf__ripple"}),a=this._createHTMLElement({tagName:"div",className:"notyf__wrapper"}),r=this._createHTMLElement({tagName:"div",className:"notyf__message"});r.innerHTML=t.message||"";var c,p,d,l,u=t.background||t.backgroundColor;i&&(c=this._createHTMLElement({tagName:"div",className:"notyf__icon"}),("string"==typeof i||i instanceof String)&&(c.innerHTML=new String(i).valueOf()),"object"==typeof i&&(p=i.tagName,d=i.className,l=i.text,i=void 0===(i=i.color)?u:i,l=this._createHTMLElement({tagName:void 0===p?"i":p,className:d,text:l}),i&&(l.style.color=i),c.appendChild(l)),a.appendChild(c)),a.appendChild(r),e.appendChild(a),u&&(t.ripple?(s.style.background=u,e.appendChild(s)):e.style.background=u),t.dismissible&&(s=this._createHTMLElement({tagName:"div",className:"notyf__dismiss"}),u=this._createHTMLElement({tagName:"button",className:"notyf__dismiss-btn"}),s.appendChild(u),a.appendChild(s),e.classList.add("notyf__toast--dismissible"),u.addEventListener("click",function(t){var i,e;null!==(e=(i=o.events)[f.Dismiss])&&void 0!==e&&e.call(i,{target:n,event:t}),t.stopPropagation()})),e.addEventListener("click",function(t){var i,e;return null===(e=(i=o.events)[f.Click])||void 0===e?void 0:e.call(i,{target:n,event:t})});t="top"===this.getYPosition(t)?"upper":"lower";return e.classList.add("notyf__toast--"+t),e},p.prototype._createHTMLElement=function(t){var i=t.tagName,e=t.className,t=t.text,i=document.createElement(i);return e&&(i.className=e),i.textContent=t||null,i},p.prototype._createA11yContainer=function(){var t=this._createHTMLElement({tagName:"div",className:"notyf-announcer"});t.setAttribute("aria-atomic","true"),t.setAttribute("aria-live","polite"),t.style.border="0",t.style.clip="rect(0 0 0 0)",t.style.height="1px",t.style.margin="-1px",t.style.overflow="hidden",t.style.padding="0",t.style.position="absolute",t.style.width="1px",t.style.outline="0",docLine truncated
|
|
||||||
+8
-8
@@ -36,12 +36,12 @@
|
|||||||
|
|
||||||
<title>Torrent Parts | Inspect and edit what's in your Torrent file or Magnet link</title>
|
<title>Torrent Parts | Inspect and edit what's in your Torrent file or Magnet link</title>
|
||||||
|
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/tippy.js@6/dist/tippy.css" rel="stylesheet" />
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/tippy.js@6/animations/shift-away-subtle.css" rel="stylesheet" />
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css" rel="stylesheet" />
|
||||||
<link href="/src/style.css" rel="stylesheet" />
|
<link href="/src/style.css" rel="stylesheet" />
|
||||||
<link href="/ext/alata-latin-400.woff2" rel="preload" as="style">
|
|
||||||
<link href="/ext/alata-latin-400.woff" rel="preload" as="style">
|
|
||||||
<script async src="/ext/fa.min.js"></script>
|
<script async src="/ext/fa.min.js"></script>
|
||||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||||
<script src="/ext/notyf.min.js"></script>
|
|
||||||
|
|
||||||
<script async defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "6f97f49b4c384ee197a2f319cebec274"}'></script>
|
<script async defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "6f97f49b4c384ee197a2f319cebec274"}'></script>
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
<header>
|
<header>
|
||||||
<h1 id="logo">Torrent<span id="originalSourceIcon"><span class="fad fa-magnet fa-fw" aria-hidden="true"></span></span>Parts</h1>
|
<h1 id="logo">Torrent<span id="originalSourceIcon"><span class="fad fa-magnet fa-fw" aria-hidden="true"></span></span>Parts</h1>
|
||||||
<a class="github-button" href="https://github.com/leoherzog/TorrentParts" data-icon="octicon-star" data-show-count="true" aria-label="Star leoherzog/TorrentParts on GitHub">Star</a>
|
<a class="github-button" href="https://github.com/leoherzog/TorrentParts" data-icon="octicon-star" data-show-count="true" aria-label="Star TorrentParts on GitHub">Star</a>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div id="startButtons">
|
<div id="startButtons">
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<input id="name" type="text" placeholder="Unnamed" />
|
<input id="name" type="text" placeholder="Unnamed" dir="auto" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<input id="comment" type="text" placeholder="Not included in the URL/File provided" />
|
<input id="comment" type="text" placeholder="Not included in the URL/File provided" dir="auto" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -216,10 +216,10 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
<a href="https://github.com/leoherzog/TorrentParts/releases" target="_blank" rel="noopener">v1.2</a>
|
<a href="https://github.com/leoherzog/TorrentParts/releases" target="_blank" rel="noopener">v2.0.1</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="/bin/bundle.min.js"></script>
|
<script type="module" src="/src/parse.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
if ('serviceWorker' in navigator) {
|
if ('serviceWorker' in navigator) {
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "torrentparts",
|
|
||||||
"version": "1.2",
|
|
||||||
"description": "📑 A website to inspect and edit Torrent files and Magnet URLs",
|
|
||||||
"main": "bin/bundle.js",
|
|
||||||
"dependencies": {
|
|
||||||
"browserify": "^17.0.0",
|
|
||||||
"bytes": "^3.1.2",
|
|
||||||
"clipboard": "^2.0.10",
|
|
||||||
"magnet-uri": "^6.2.0",
|
|
||||||
"mime-types": "^2.1.35",
|
|
||||||
"parse-torrent": "^9.1.4",
|
|
||||||
"tippy.js": "^6.3.7",
|
|
||||||
"webtorrent": "^1.8.6"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"buffer": "^6.0.3",
|
|
||||||
"notyf": "^3.10.0",
|
|
||||||
"terser": "^5.12.1",
|
|
||||||
"watchify": "^4.0.0"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"watch": "watchify src/parse.js -o bin/bundle.js",
|
|
||||||
"compile": "browserify src/parse.js -o bin/bundle.js",
|
|
||||||
"minify": "terser bin/bundle.js -c -m -o bin/bundle.min.js",
|
|
||||||
"build": "npm run compile && npm run minify",
|
|
||||||
"update": "npm update -g && npm update && npm run build"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/leoherzog/TorrentParts.git"
|
|
||||||
},
|
|
||||||
"glitch": {
|
|
||||||
"projectType": "generated_static"
|
|
||||||
},
|
|
||||||
"author": "Leo Herzog",
|
|
||||||
"license": "MIT",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/leoherzog/TorrentParts/issues"
|
|
||||||
},
|
|
||||||
"homepage": "https://github.com/leoherzog/TorrentParts"
|
|
||||||
}
|
|
||||||
+107
-102
@@ -1,10 +1,11 @@
|
|||||||
require('buffer');
|
import { Buffer } from 'https://cdn.jsdelivr.net/npm/buffer@6/+esm';
|
||||||
const clipboard = require('clipboard');
|
import clipboard from 'https://cdn.jsdelivr.net/npm/clipboard@2/+esm';
|
||||||
const parser = require('parse-torrent');
|
import parseTorrent, { toMagnetURI, toTorrentFile, remote as parseTorrentRemote } from 'https://cdn.jsdelivr.net/npm/parse-torrent@11/+esm';
|
||||||
const bytes = require('bytes');
|
import bytes from 'https://cdn.jsdelivr.net/npm/bytes@3/+esm';
|
||||||
const mime = require('mime-types');
|
import mime from 'https://cdn.jsdelivr.net/npm/mime-types@2/+esm';
|
||||||
const WebTorrent = require('webtorrent');
|
import WebTorrent from 'https://cdn.jsdelivr.net/npm/webtorrent@2/dist/webtorrent.min.js';
|
||||||
const tippy = require('tippy.js').default;
|
import tippy from 'https://cdn.jsdelivr.net/npm/tippy.js@6/+esm';
|
||||||
|
import { Notyf } from 'https://cdn.jsdelivr.net/npm/notyf@3/+esm';
|
||||||
|
|
||||||
var examples = document.getElementById('examples');
|
var examples = document.getElementById('examples');
|
||||||
var example1 = document.getElementById('example1');
|
var example1 = document.getElementById('example1');
|
||||||
@@ -13,7 +14,7 @@ var example3 = document.getElementById('example3');
|
|||||||
var properties = document.getElementById('properties');
|
var properties = document.getElementById('properties');
|
||||||
var originalSourceIcon = document.getElementById('originalSourceIcon');
|
var originalSourceIcon = document.getElementById('originalSourceIcon');
|
||||||
var source;
|
var source;
|
||||||
var sourceTooltip = tippy(originalSourceIcon, {"theme": "torrent-parts", "animation": "shift-away-subtle"});
|
var sourceTooltip = tippy(originalSourceIcon, { theme: 'torrent-parts', animation: 'shift-away-subtle' });
|
||||||
var name = document.getElementById('name');
|
var name = document.getElementById('name');
|
||||||
var reset = document.getElementById('reset');
|
var reset = document.getElementById('reset');
|
||||||
var created = document.getElementById('created');
|
var created = document.getElementById('created');
|
||||||
@@ -36,45 +37,45 @@ var copyURL = document.getElementById('copyURL');
|
|||||||
var copyMagnet = document.getElementById('copyMagnet');
|
var copyMagnet = document.getElementById('copyMagnet');
|
||||||
var downloadTorrentWrapper = document.getElementById('downloadTorrentWrapper');
|
var downloadTorrentWrapper = document.getElementById('downloadTorrentWrapper');
|
||||||
var downloadTorrent = document.getElementById('downloadTorrent');
|
var downloadTorrent = document.getElementById('downloadTorrent');
|
||||||
var openURLTooltip = tippy(openURL, {"theme": "torrent-parts", "animation": "shift-away-subtle", "content": "Open this Magnet URL in your Torrent client"});
|
var openURLTooltip = tippy(openURL, { theme: 'torrent-parts', animation: 'shift-away-subtle', content: 'Open this Magnet URL in your Torrent client' });
|
||||||
var copyURLTooltip = tippy(copyURL, {"theme": "torrent-parts", "animation": "shift-away-subtle", "content": "Copy torrent.parts link to clipboard"});
|
var copyURLTooltip = tippy(copyURL, { theme: 'torrent-parts', animation: 'shift-away-subtle', content: 'Copy torrent.parts link to clipboard' });
|
||||||
var copyMagnetTooltip = tippy(copyMagnet, {"theme": "torrent-parts", "animation": "shift-away-subtle", "content": "Copy Magnet link to clipboard"});
|
var copyMagnetTooltip = tippy(copyMagnet, { theme: 'torrent-parts', animation: 'shift-away-subtle', content: 'Copy Magnet link to clipboard' });
|
||||||
var downloadTorrentTooltip = tippy(downloadTorrentWrapper, {"theme": "torrent-parts", "animation": "shift-away-subtle", "content": "Download Torrent file"});
|
var downloadTorrentTooltip = tippy(downloadTorrentWrapper, { theme: 'torrent-parts', animation: 'shift-away-subtle', content: 'Download Torrent file' });
|
||||||
var parsed;
|
var parsed;
|
||||||
var client = new WebTorrent();
|
var client = new WebTorrent();
|
||||||
var notyf = new Notyf({
|
var notyf = new Notyf({
|
||||||
"duration": 8000,
|
duration: 8000,
|
||||||
"dismissible": true,
|
dismissible: true,
|
||||||
"ripple": false,
|
ripple: false,
|
||||||
"position": {
|
position: {
|
||||||
"x": "right",
|
x: 'right',
|
||||||
"y": "top",
|
y: 'top',
|
||||||
},
|
},
|
||||||
"types": [
|
types: [
|
||||||
{
|
{
|
||||||
"type": "success",
|
type: 'success',
|
||||||
"background": "#46835C",
|
background: '#46835C',
|
||||||
"icon": false
|
icon: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "error",
|
type: 'error',
|
||||||
"background": "#A60A0A",
|
background: '#A60A0A',
|
||||||
"icon": false
|
icon: false,
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
function placeDownloadTooltips(e) {
|
function placeDownloadTooltips(e) {
|
||||||
if (window.innerWidth > 1080) {
|
if (window.innerWidth > 1080) {
|
||||||
openURLTooltip.setProps({"placement": "right"});
|
openURLTooltip.setProps({ placement: 'right' });
|
||||||
copyURLTooltip.setProps({"placement": "right"});
|
copyURLTooltip.setProps({ placement: 'right' });
|
||||||
copyMagnetTooltip.setProps({"placement": "right"});
|
copyMagnetTooltip.setProps({ placement: 'right' });
|
||||||
downloadTorrentTooltip.setProps({"placement": "right"});
|
downloadTorrentTooltip.setProps({ placement: 'right' });
|
||||||
} else {
|
} else {
|
||||||
openURLTooltip.setProps({"placement": "top"});
|
openURLTooltip.setProps({ placement: 'top' });
|
||||||
copyURLTooltip.setProps({"placement": "top"});
|
copyURLTooltip.setProps({ placement: 'top' });
|
||||||
copyMagnetTooltip.setProps({"placement": "top"});
|
copyMagnetTooltip.setProps({ placement: 'top' });
|
||||||
downloadTorrentTooltip.setProps({"placement": "top"});
|
downloadTorrentTooltip.setProps({ placement: 'top' });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,22 +85,21 @@ placeDownloadTooltips();
|
|||||||
document.addEventListener('DOMContentLoaded', start);
|
document.addEventListener('DOMContentLoaded', start);
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
|
|
||||||
// magnet input
|
// magnet input
|
||||||
document.getElementById('magnet').addEventListener('keyup', function(event) {
|
document.getElementById('magnet').addEventListener('keyup', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
if (event.key === 'Enter') {
|
if (event.key === 'Enter') {
|
||||||
source = 'magnet';
|
source = 'magnet';
|
||||||
originalSourceIcon.innerHTML = '<span class="fad fa-magnet fa-fw"></span>';
|
originalSourceIcon.innerHTML = '<span class="fad fa-magnet fa-fw"></span>';
|
||||||
sourceTooltip.setContent('Currently loaded information sourced from Magnet URL');
|
sourceTooltip.setContent('Currently loaded information sourced from Magnet URL');
|
||||||
parse(magnet.value);
|
parse(this.value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// torrent select button
|
// torrent select button
|
||||||
document.getElementById('torrent').addEventListener('change', function(event) {
|
document.getElementById('torrent').addEventListener('change', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.target.files[0].arrayBuffer().then(function(arrayBuffer) {
|
event.target.files[0].arrayBuffer().then(function (arrayBuffer) {
|
||||||
source = 'torrent-file';
|
source = 'torrent-file';
|
||||||
originalSourceIcon.innerHTML = '<span class="fad fa-file-alt fa-fw"></span>';
|
originalSourceIcon.innerHTML = '<span class="fad fa-file-alt fa-fw"></span>';
|
||||||
sourceTooltip.setContent('Currently loaded information sourced from Torrent file');
|
sourceTooltip.setContent('Currently loaded information sourced from Torrent file');
|
||||||
@@ -108,31 +108,34 @@ function start() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// body drag-and-drop torrent file support
|
// body drag-and-drop torrent file support
|
||||||
document.addEventListener('dragover', function(event) {
|
document.addEventListener('dragover', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
document.addEventListener('drop', function(event) {
|
document.addEventListener('drop', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.dataTransfer.items[0].getAsFile().arrayBuffer().then(function(arrayBuffer) {
|
event.dataTransfer.items[0]
|
||||||
source = 'torrent-file';
|
.getAsFile()
|
||||||
originalSourceIcon.innerHTML = '<span class="fad fa-file-alt fa-fw"></span>';
|
.arrayBuffer()
|
||||||
sourceTooltip.setContent('Currently loaded information sourced from Torrent file');
|
.then(function (arrayBuffer) {
|
||||||
parse(Buffer.from(arrayBuffer));
|
source = 'torrent-file';
|
||||||
});
|
originalSourceIcon.innerHTML = '<span class="fad fa-file-alt fa-fw"></span>';
|
||||||
|
sourceTooltip.setContent('Currently loaded information sourced from Torrent file');
|
||||||
|
parse(Buffer.from(arrayBuffer));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// example buttons
|
// example buttons
|
||||||
example1.addEventListener('click', function(event) {
|
example1.addEventListener('click', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
notyf.success('Parsing Ubuntu 22.04 Magnet URL');
|
notyf.success('Parsing Ubuntu 24.04 Magnet URL');
|
||||||
source = 'magnet';
|
source = 'magnet';
|
||||||
originalSourceIcon.innerHTML = '<span class="fad fa-magnet fa-fw"></span>';
|
originalSourceIcon.innerHTML = '<span class="fad fa-magnet fa-fw"></span>';
|
||||||
sourceTooltip.setContent('Currently loaded information sourced from Magnet URL');
|
sourceTooltip.setContent('Currently loaded information sourced from Magnet URL');
|
||||||
parse('magnet:?xt=urn:btih:2c6b6858d61da9543d4231a71db4b1c9264b0685&dn=ubuntu-22.04-desktop-amd64.iso&tr=https%3A%2F%2Ftorrent.ubuntu.com%2Fannounce&tr=https%3A%2F%2Fipv6.torrent.ubuntu.com%2Fannounce');
|
parse('magnet:?xt=urn:btih:2aa4f5a7e209e54b32803d43670971c4c8caaa05&dn=ubuntu-24.04-desktop-amd64.iso&tr=https%3A%2F%2Ftorrent.ubuntu.com%2Fannounce&tr=https%3A%2F%2Fipv6.torrent.ubuntu.com%2Fannounce');
|
||||||
});
|
});
|
||||||
|
|
||||||
example2.addEventListener('click', async function(event) {
|
example2.addEventListener('click', async function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
notyf.success('Fetching and Parsing “The WIRED CD” Torrent File...');
|
notyf.success('Fetching and Parsing “The WIRED CD” Torrent File...');
|
||||||
source = 'remote-torrent-file';
|
source = 'remote-torrent-file';
|
||||||
@@ -141,7 +144,7 @@ function start() {
|
|||||||
parseRemote('https://webtorrent.io/torrents/wired-cd.torrent');
|
parseRemote('https://webtorrent.io/torrents/wired-cd.torrent');
|
||||||
});
|
});
|
||||||
|
|
||||||
example3.addEventListener('click', async function(event) {
|
example3.addEventListener('click', async function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
notyf.success('Parsing Jack Johnson Archive.org Torrent File');
|
notyf.success('Parsing Jack Johnson Archive.org Torrent File');
|
||||||
let response = await fetch('/ext/jj2008-06-14.mk4_archive.torrent');
|
let response = await fetch('/ext/jj2008-06-14.mk4_archive.torrent');
|
||||||
@@ -154,20 +157,20 @@ function start() {
|
|||||||
|
|
||||||
// share buttons
|
// share buttons
|
||||||
let copyurl = new clipboard('#copyURL');
|
let copyurl = new clipboard('#copyURL');
|
||||||
copyurl.on('success', function(e) {
|
copyurl.on('success', function (e) {
|
||||||
notyf.success('Copied site URL to clipboard!');
|
notyf.success('Copied site URL to clipboard!');
|
||||||
console.info(e);
|
console.info(e);
|
||||||
});
|
});
|
||||||
copyurl.on('failure', function(e) {
|
copyurl.on('failure', function (e) {
|
||||||
notyf.error('Problem copying to clipboard');
|
notyf.error('Problem copying to clipboard');
|
||||||
console.warn(e);
|
console.warn(e);
|
||||||
});
|
});
|
||||||
|
|
||||||
let copymagnet = new clipboard('#copyMagnet');
|
let copymagnet = new clipboard('#copyMagnet');
|
||||||
copymagnet.on('success', function(e) {
|
copymagnet.on('success', function (e) {
|
||||||
notyf.success('Copied Magnet URL to clipboard!');
|
notyf.success('Copied Magnet URL to clipboard!');
|
||||||
});
|
});
|
||||||
copymagnet.on('failure', function(e) {
|
copymagnet.on('failure', function (e) {
|
||||||
notyf.error('Problem copying to clipboard');
|
notyf.error('Problem copying to clipboard');
|
||||||
console.warn(e);
|
console.warn(e);
|
||||||
});
|
});
|
||||||
@@ -189,7 +192,7 @@ function start() {
|
|||||||
removeWebseeds.addEventListener('click', () => removeAllRows('urlList'));
|
removeWebseeds.addEventListener('click', () => removeAllRows('urlList'));
|
||||||
getFiles.addEventListener('click', getFilesFromPeers);
|
getFiles.addEventListener('click', getFilesFromPeers);
|
||||||
|
|
||||||
tippy('[data-tippy-content]', {"theme": "torrent-parts", "animation": "shift-away-subtle"}); // all element-defined tooltips
|
tippy('[data-tippy-content]', { theme: 'torrent-parts', animation: 'shift-away-subtle' }); // all element-defined tooltips
|
||||||
sourceTooltip.disable();
|
sourceTooltip.disable();
|
||||||
|
|
||||||
if (window.location.hash) {
|
if (window.location.hash) {
|
||||||
@@ -198,50 +201,55 @@ function start() {
|
|||||||
sourceTooltip.setContent('Currently loaded information sourced from shared torrent.parts link');
|
sourceTooltip.setContent('Currently loaded information sourced from shared torrent.parts link');
|
||||||
parse(window.location.hash.split('#')[1]);
|
parse(window.location.hash.split('#')[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function parse(toLoad) {
|
async function parse(toLoad) {
|
||||||
resetProperties();
|
resetProperties();
|
||||||
try {
|
try {
|
||||||
console.info('Attempting parse');
|
console.info('Attempting parse');
|
||||||
parsed = parser(toLoad);
|
parsed = await parseTorrent(toLoad);
|
||||||
display();
|
display();
|
||||||
if (parsed.xs) {
|
if (parsed.xs) {
|
||||||
console.info('Magnet includes xs, attempting remote parse');
|
console.info('Magnet includes xs, attempting remote parse');
|
||||||
parseRemote(parsed.xs);
|
parseRemote(parsed.xs);
|
||||||
}
|
}
|
||||||
}
|
} catch (e) {
|
||||||
catch(e) { // maybe they put a URL to a torrent file in the magnet box?
|
// maybe they put a URL to a torrent file in the magnet box?
|
||||||
console.warn(e);
|
console.warn(e);
|
||||||
if (source == 'magnet') {
|
if (source == 'magnet') {
|
||||||
console.info('Attempting remote parse');
|
console.info('Attempting remote parse');
|
||||||
parseRemote(toLoad);
|
parseRemote(toLoad);
|
||||||
} else { // probably not. Just a bad file.
|
} else {
|
||||||
|
// probably not. Just a bad file.
|
||||||
notyf.error('Problem parsing input. Is this a .torrent file?');
|
notyf.error('Problem parsing input. Is this a .torrent file?');
|
||||||
console.error('Problem parsing input');
|
console.error('Problem parsing input');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseRemote(toLoad) {
|
async function parseRemote(toLoad) {
|
||||||
parser.remote(toLoad, function(err, result) {
|
try {
|
||||||
if (err) {
|
parsed = await new Promise((resolve, reject) => {
|
||||||
notyf.error('Problem remotely fetching that file or parsing result');
|
parseTorrentRemote(toLoad, (err, result) => {
|
||||||
console.warn(err);
|
if (err) {
|
||||||
resetProperties();
|
reject(err);
|
||||||
return;
|
} else {
|
||||||
}
|
resolve(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
source = 'remote-torrent-file';
|
source = 'remote-torrent-file';
|
||||||
originalSourceIcon.innerHTML = '<span class="fad fa-file-alt fa-fw"></span>';
|
originalSourceIcon.innerHTML = '<span class="fad fa-file-alt fa-fw"></span>';
|
||||||
sourceTooltip.setContent('Currently loaded information sourced from remotely fetched Torrent file');
|
sourceTooltip.setContent('Currently loaded information sourced from remotely fetched Torrent file');
|
||||||
parsed = result;
|
|
||||||
display();
|
display();
|
||||||
});
|
} catch (err) {
|
||||||
|
console.warn(err);
|
||||||
|
notyf.error('Problem remotely fetching that file or parsing result');
|
||||||
|
resetProperties();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function display() {
|
function display() {
|
||||||
|
|
||||||
console.log(parsed);
|
console.log(parsed);
|
||||||
|
|
||||||
hash.value = parsed.infoHash;
|
hash.value = parsed.infoHash;
|
||||||
@@ -254,7 +262,7 @@ function display() {
|
|||||||
}
|
}
|
||||||
createdBy.value = parsed.createdBy ? ' by ' + parsed.createdBy : '';
|
createdBy.value = parsed.createdBy ? ' by ' + parsed.createdBy : '';
|
||||||
comment.value = parsed.comment ? parsed.comment : '';
|
comment.value = parsed.comment ? parsed.comment : '';
|
||||||
pieces.value = parsed.pieces ? parsed.pieces.length.toLocaleString() + ' ' + bytes.format(parsed.pieceLength, {"decimalPlaces": 1, "unitSeparator": " "}) + ' pieces (last piece ' + bytes.format(parsed.lastPieceLength, {"decimalPlaces": 1, "unitSeparator": " "}) + ')' : '';
|
pieces.value = parsed.pieces ? parsed.pieces.length.toLocaleString() + ' ' + bytes.format(parsed.pieceLength, { decimalPlaces: 1, unitSeparator: ' ' }) + ' pieces (last piece ' + bytes.format(parsed.lastPieceLength, { decimalPlaces: 1, unitSeparator: ' ' }) + ')' : '';
|
||||||
|
|
||||||
announce.innerHTML = '';
|
announce.innerHTML = '';
|
||||||
if (parsed.announce && parsed.announce.length) {
|
if (parsed.announce && parsed.announce.length) {
|
||||||
@@ -278,8 +286,8 @@ function display() {
|
|||||||
row.appendChild(remove);
|
row.appendChild(remove);
|
||||||
announce.appendChild(row);
|
announce.appendChild(row);
|
||||||
}
|
}
|
||||||
// } else {
|
// } else {
|
||||||
// announce.innerHTML = '<em>No trackers specified in the URL/File provided</em>';
|
// announce.innerHTML = '<em>No trackers specified in the URL/File provided</em>';
|
||||||
}
|
}
|
||||||
|
|
||||||
urlList.innerHTML = '';
|
urlList.innerHTML = '';
|
||||||
@@ -304,8 +312,8 @@ function display() {
|
|||||||
row.appendChild(remove);
|
row.appendChild(remove);
|
||||||
urlList.appendChild(row);
|
urlList.appendChild(row);
|
||||||
}
|
}
|
||||||
// } else {
|
// } else {
|
||||||
// urlList.innerHTML = '<em>No webseed URLs in the URL/File provided</em>';
|
// urlList.innerHTML = '<em>No webseed URLs in the URL/File provided</em>';
|
||||||
}
|
}
|
||||||
|
|
||||||
files.innerHTML = '';
|
files.innerHTML = '';
|
||||||
@@ -324,7 +332,7 @@ function display() {
|
|||||||
files.appendChild(createFileRow('', '...and another ' + (parsed.files.length - 100) + ' more files', ''));
|
files.appendChild(createFileRow('', '...and another ' + (parsed.files.length - 100) + ' more files', ''));
|
||||||
}
|
}
|
||||||
files.appendChild(createFileRow('folder-tree', '', parsed.length));
|
files.appendChild(createFileRow('folder-tree', '', parsed.length));
|
||||||
openURLWrapper.href = parser.toMagnetURI(parsed);
|
openURLWrapper.href = toMagnetURI(parsed);
|
||||||
downloadTorrentTooltip.setContent('Download Torrent file');
|
downloadTorrentTooltip.setContent('Download Torrent file');
|
||||||
downloadTorrent.addEventListener('click', saveTorrent);
|
downloadTorrent.addEventListener('click', saveTorrent);
|
||||||
downloadTorrent.disabled = false;
|
downloadTorrent.disabled = false;
|
||||||
@@ -341,22 +349,21 @@ function display() {
|
|||||||
downloadTorrent.disabled = true;
|
downloadTorrent.disabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
copyURL.setAttribute('data-clipboard-text', window.location.origin + '#' + parser.toMagnetURI(parsed));
|
copyURL.setAttribute('data-clipboard-text', window.location.origin + '#' + toMagnetURI(parsed));
|
||||||
copyMagnet.setAttribute('data-clipboard-text', parser.toMagnetURI(parsed));
|
copyMagnet.setAttribute('data-clipboard-text', toMagnetURI(parsed));
|
||||||
|
|
||||||
examples.style.display = 'none';
|
examples.style.display = 'none';
|
||||||
properties.style.display = 'flex';
|
properties.style.display = 'flex';
|
||||||
|
|
||||||
window.location.hash = parser.toMagnetURI(parsed);
|
window.location.hash = toMagnetURI(parsed);
|
||||||
|
|
||||||
if (parsed.name) {
|
if (parsed.name) {
|
||||||
document.title = 'Torrent Parts | ' + parsed.name;
|
document.title = 'Torrent Parts | ' + parsed.name;
|
||||||
} else {
|
} else {
|
||||||
document.title = 'Torrent Parts | Inspect and edit what\'s in your Torrent file or Magnet link';
|
document.title = "Torrent Parts | Inspect and edit what's in your Torrent file or Magnet link";
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceTooltip.enable();
|
sourceTooltip.enable();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function createFileRow(icon, name, size) {
|
function createFileRow(icon, name, size) {
|
||||||
@@ -368,7 +375,7 @@ function createFileRow(icon, name, size) {
|
|||||||
namecell.innerHTML = name;
|
namecell.innerHTML = name;
|
||||||
row.appendChild(namecell);
|
row.appendChild(namecell);
|
||||||
let totalcell = document.createElement('td');
|
let totalcell = document.createElement('td');
|
||||||
totalcell.innerHTML = bytes.format(size, {"decimalPlaces": 1, "unitSeparator": " "});
|
totalcell.innerHTML = bytes.format(size, { decimalPlaces: 1, unitSeparator: ' ' });
|
||||||
row.appendChild(totalcell);
|
row.appendChild(totalcell);
|
||||||
return row;
|
return row;
|
||||||
}
|
}
|
||||||
@@ -383,10 +390,10 @@ function getFontAwesomeIconForMimetype(mimetype) {
|
|||||||
return 'file-word';
|
return 'file-word';
|
||||||
case mimetype.includes('ms-excel'):
|
case mimetype.includes('ms-excel'):
|
||||||
case mimetype.includes('spreadsheet'):
|
case mimetype.includes('spreadsheet'):
|
||||||
return 'file-powerpoint';
|
return 'file-spreadsheet';
|
||||||
case mimetype.includes('powerpoint'):
|
case mimetype.includes('powerpoint'):
|
||||||
case mimetype.includes('presentation'):
|
case mimetype.includes('presentation'):
|
||||||
return 'file-powerpoint';
|
return 'file-powerpoint';
|
||||||
case mimetype.includes('7z-'):
|
case mimetype.includes('7z-'):
|
||||||
case mimetype.includes('iso9660'):
|
case mimetype.includes('iso9660'):
|
||||||
case mimetype.includes('zip'):
|
case mimetype.includes('zip'):
|
||||||
@@ -419,7 +426,7 @@ function propertyChange(e) {
|
|||||||
} else {
|
} else {
|
||||||
parsed[this.id] = this.value ? this.value : '';
|
parsed[this.id] = this.value ? this.value : '';
|
||||||
}
|
}
|
||||||
window.location.hash = parser.toMagnetURI(parsed);
|
window.location.hash = toMagnetURI(parsed);
|
||||||
updateModified();
|
updateModified();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -435,13 +442,13 @@ function resetProperties() {
|
|||||||
hash.value = '';
|
hash.value = '';
|
||||||
announce.innerHTML = '';
|
announce.innerHTML = '';
|
||||||
urlList.innerHTML = '';
|
urlList.innerHTML = '';
|
||||||
client.torrents.forEach(torrent => torrent.destroy());
|
client.torrents.forEach((torrent) => torrent.destroy());
|
||||||
getFiles.style.display = 'block';
|
getFiles.style.display = 'block';
|
||||||
files.innerHTML = '';
|
files.innerHTML = '';
|
||||||
window.location.hash = '';
|
window.location.hash = '';
|
||||||
copyURL.setAttribute('data-clipboard-text', '');
|
copyURL.setAttribute('data-clipboard-text', '');
|
||||||
copyMagnet.setAttribute('data-clipboard-text', '');
|
copyMagnet.setAttribute('data-clipboard-text', '');
|
||||||
document.title = 'Torrent Parts | Inspect and edit what\'s in your Torrent file or Magnet link';
|
document.title = "Torrent Parts | Inspect and edit what's in your Torrent file or Magnet link";
|
||||||
sourceTooltip.disable();
|
sourceTooltip.disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -454,11 +461,10 @@ async function addCurrentTrackers() {
|
|||||||
parsed.announce = parsed.announce.concat(trackers.split('\n\n'));
|
parsed.announce = parsed.announce.concat(trackers.split('\n\n'));
|
||||||
parsed.announce.push('http://bt1.archive.org:6969/announce');
|
parsed.announce.push('http://bt1.archive.org:6969/announce');
|
||||||
parsed.announce.push('http://bt2.archive.org:6969/announce');
|
parsed.announce.push('http://bt2.archive.org:6969/announce');
|
||||||
parsed.announce = parsed.announce.filter((v,i) => v && parsed.announce.indexOf(v) === i); // remove duplicates and empties
|
parsed.announce = parsed.announce.filter((v, i) => v && parsed.announce.indexOf(v) === i); // remove duplicates and empties
|
||||||
notyf.success('Added known working trackers from newTrackon');
|
notyf.success('Added known working trackers from newTrackon');
|
||||||
updateModified();
|
updateModified();
|
||||||
}
|
} catch (e) {
|
||||||
catch(e) {
|
|
||||||
notyf.error('Problem fetching trackers from newTrackon');
|
notyf.error('Problem fetching trackers from newTrackon');
|
||||||
console.warn(e);
|
console.warn(e);
|
||||||
}
|
}
|
||||||
@@ -502,8 +508,8 @@ function getFilesFromPeers() {
|
|||||||
parsed.announce.push('wss://tracker.openwebtorrent.com');
|
parsed.announce.push('wss://tracker.openwebtorrent.com');
|
||||||
parsed.announce.push('wss://tracker.btorrent.xyz');
|
parsed.announce.push('wss://tracker.btorrent.xyz');
|
||||||
parsed.announce.push('wss://tracker.fastcast.nz');
|
parsed.announce.push('wss://tracker.fastcast.nz');
|
||||||
parsed.announce = parsed.announce.filter((v,i) => v && parsed.announce.indexOf(v) === i); // remove duplicates and empties
|
parsed.announce = parsed.announce.filter((v, i) => v && parsed.announce.indexOf(v) === i); // remove duplicates and empties
|
||||||
client.add(parser.toMagnetURI(parsed), (torrent) => {
|
client.add(toMagnetURI(parsed), (torrent) => {
|
||||||
parsed.info = Object.assign({}, torrent.info); // clone object
|
parsed.info = Object.assign({}, torrent.info); // clone object
|
||||||
parsed.files = torrent.files;
|
parsed.files = torrent.files;
|
||||||
parsed.infoBuffer = torrent.infoBuffer;
|
parsed.infoBuffer = torrent.infoBuffer;
|
||||||
@@ -519,16 +525,15 @@ function getFilesFromPeers() {
|
|||||||
|
|
||||||
// https://stackoverflow.com/a/36899900/2700296
|
// https://stackoverflow.com/a/36899900/2700296
|
||||||
function saveTorrent() {
|
function saveTorrent() {
|
||||||
let data = parser.toTorrentFile(parsed);
|
let data = toTorrentFile(parsed);
|
||||||
if (data !== null && navigator.msSaveBlob)
|
if (data !== null && navigator.msSaveBlob) return navigator.msSaveBlob(new Blob([data], { type: 'application/x-bittorrent' }), parsed.name + '.torrent');
|
||||||
return navigator.msSaveBlob(new Blob([data], { "type": "application/x-bittorrent" }), parsed.name + '.torrent');
|
|
||||||
let a = document.createElement('a');
|
let a = document.createElement('a');
|
||||||
a.style.display = 'none';
|
a.style.display = 'none';
|
||||||
let url = window.URL.createObjectURL(new Blob([data], { "type": "application/x-bittorrent" }));
|
let url = window.URL.createObjectURL(new Blob([data], { type: 'application/x-bittorrent' }));
|
||||||
a.setAttribute('href', url);
|
a.setAttribute('href', url);
|
||||||
a.setAttribute('download', parsed.name + '.torrent');
|
a.setAttribute('download', parsed.name + '.torrent');
|
||||||
document.body.appendChild(a);
|
document.body.appendChild(a);
|
||||||
a.click();
|
a.click();
|
||||||
window.URL.revokeObjectURL(url);
|
window.URL.revokeObjectURL(url);
|
||||||
a.remove();
|
a.remove();
|
||||||
}
|
}
|
||||||
+4
-14
@@ -1,12 +1,6 @@
|
|||||||
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
||||||
html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}
|
html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}
|
||||||
|
|
||||||
/*! Tippy v6.3.7 | MIT License | github.com/atomiks/tippyjs */
|
|
||||||
.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
|
|
||||||
|
|
||||||
/* Tippy shift-away-subtle theme */
|
|
||||||
.tippy-box[data-animation=shift-away-subtle][data-state=hidden]{opacity:0}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=top]{transform:translateY(5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=bottom]{transform:translateY(-5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=left]{transform:translateX(5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=right]{transform:translateX(-5px)}
|
|
||||||
|
|
||||||
/* Custom Tippy Theme */
|
/* Custom Tippy Theme */
|
||||||
.tippy-box[data-theme~="torrent-parts"] {
|
.tippy-box[data-theme~="torrent-parts"] {
|
||||||
background-color: var(--accent);
|
background-color: var(--accent);
|
||||||
@@ -32,9 +26,6 @@ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:b
|
|||||||
fill: var(--accent);
|
fill: var(--accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! Notyf v3.10.0 | MIT License | github.com/caroso1222/notyf */
|
|
||||||
@-webkit-keyframes notyf-fadeinup{0%{opacity:0;transform:translateY(25%)}to{opacity:1;transform:translateY(0)}}@keyframes notyf-fadeinup{0%{opacity:0;transform:translateY(25%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes notyf-fadeinleft{0%{opacity:0;transform:translateX(25%)}to{opacity:1;transform:translateX(0)}}@keyframes notyf-fadeinleft{0%{opacity:0;transform:translateX(25%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes notyf-fadeoutright{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(25%)}}@keyframes notyf-fadeoutright{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(25%)}}@-webkit-keyframes notyf-fadeoutdown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(25%)}}@keyframes notyf-fadeoutdown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(25%)}}@-webkit-keyframes ripple{0%{transform:scale(0) translateY(-45%) translateX(13%)}to{transform:scale(1) translateY(-45%) translateX(13%)}}@keyframes ripple{0%{transform:scale(0) translateY(-45%) translateX(13%)}to{transform:scale(1) translateY(-45%) translateX(13%)}}.notyf{position:fixed;top:0;left:0;height:100%;width:100%;color:#fff;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;pointer-events:none;box-sizing:border-box;padding:20px}.notyf__icon--error,.notyf__icon--success{height:21px;width:21px;background:#fff;border-radius:50%;display:block;margin:0 auto;position:relative}.notyf__icon--error:after,.notyf__icon--error:before{content:"";background:currentColor;display:block;position:absolute;width:3px;border-radius:3px;left:9px;height:12px;top:5px}.notyf__icon--error:after{transform:rotate(-45deg)}.notyf__icon--error:before{transform:rotate(45deg)}.notyf__icon--success:after,.notyf__icon--success:before{content:"";background:currentColor;display:block;position:absolute;width:3px;border-radius:3px}.notyf__icon--success:after{height:6px;transform:rotate(-45deg);top:9px;left:6px}.notyf__icon--success:before{height:11px;transform:rotate(45deg);top:5px;left:10px}.notyf__toast{display:block;overflow:hidden;pointer-events:auto;-webkit-animation:notyf-fadeinup .3s ease-in forwards;animation:notyf-fadeinup .3s ease-in forwards;box-shadow:0 3px 7px 0 rgba(0,0,0,.25);position:relative;padding:0 15px;border-radius:2px;max-width:300px;transform:translateY(25%);box-sizing:border-box;flex-shrink:0}.notyf__toast--disappear{transform:translateY(0);-webkit-animation:notyf-fadeoutdown .3s forwards;animation:notyf-fadeoutdown .3s forwards;-webkit-animation-delay:.25s;animation-delay:.25s}.notyf__toast--disappear .notyf__icon,.notyf__toast--disappear .notyf__message{-webkit-animation:notyf-fadeoutdown .3s forwards;animation:notyf-fadeoutdown .3s forwards;opacity:1;transform:translateY(0)}.notyf__toast--disappear .notyf__dismiss{-webkit-animation:notyf-fadeoutright .3s forwards;animation:notyf-fadeoutright .3s forwards;opacity:1;transform:translateX(0)}.notyf__toast--disappear .notyf__message{-webkit-animation-delay:.05s;animation-delay:.05s}.notyf__toast--upper{margin-bottom:20px}.notyf__toast--lower{margin-top:20px}.notyf__toast--dismissible .notyf__wrapper{padding-right:30px}.notyf__ripple{height:400px;width:400px;position:absolute;transform-origin:bottom right;right:0;top:0;border-radius:50%;transform:scale(0) translateY(-51%) translateX(13%);z-index:5;-webkit-animation:ripple .4s ease-out forwards;animation:ripple .4s ease-out forwards}.notyf__wrapper{display:flex;align-items:center;padding-top:17px;padding-bottom:17px;padding-right:15px;border-radius:3px;position:relative;z-index:10}.notyf__icon{width:22px;text-align:center;font-size:1.3em;opacity:0;-webkit-animation:notyf-fadeinup .3s forwards;animation:notyf-fadeinup .3s forwards;-webkit-animation-delay:.3s;animation-delay:.3s;margin-right:13px}.notyf__dismiss{position:absolute;top:0;right:0;height:100%;width:26px;margin-right:-15px;-webkit-animation:notyf-fadeinleft .3s forwards;animation:notyf-fadeinleft .3s forwards;-webkit-animation-delay:.35s;animation-delay:.35s;opacity:0}.notyf__dismiss-btn{background-color:rgba(0,0,0,.25);border:none;cursor:pointer;transition:opacity .2s ease,background-color .2s ease;outline:none;opacity:.35;height:100%;width:100%}.notyf__dismiss-btn:after,.notyf__dismiss-btn:before{content:"";background:#fff;height:12px;width:2px;border-radius:3px;position:absolute;left:calc(50% - 1px);top:calc(50% - 5px)}.notyf__dismiss-btn:after{transform:rotate(-45deg)}.notyf__dismiss-btn:before{transform:rotate(45deg)}.notyf__dismiss-btn:hover{opacity:.7;background-color:rgba(0,0,0,.15)}.notyf__dismiss-btn:active{opacity:.8}.notyf__message{vertical-align:middle;position:relative;opacity:0;-webkit-animation:notyf-fadeinup .3s forwards;animation:notyf-fadeinup .3s forwards;-webkit-animation-delay:.25s;animation-delay:.25s;line-height:1.5em}@media only screen and (max-width:480px){.notyf{padding:0}.notyf__ripple{height:600px;width:600px;-webkit-animation-Line truncated
|
|
||||||
|
|
||||||
/* Fix Notyf dismiss button */
|
/* Fix Notyf dismiss button */
|
||||||
.notyf__dismiss-btn{border-radius: 0;}
|
.notyf__dismiss-btn{border-radius: 0;}
|
||||||
|
|
||||||
@@ -44,12 +35,11 @@ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:b
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: local(''),
|
src: url('/ext/alata-v9-latin-regular.woff2') format('woff2'),
|
||||||
url('/ext/alata-latin-400.woff2') format('woff2'),
|
url('/ext/alata-v9-latin-regular.ttf') format('truetype');
|
||||||
url('/ext/alata-latin-400.woff') format('woff');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* begin custom stuff */
|
/* begin custom stuff */
|
||||||
|
|
||||||
.sr-only {
|
.sr-only {
|
||||||
@@ -78,7 +68,7 @@ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:b
|
|||||||
body {
|
body {
|
||||||
color: var(--white);
|
color: var(--white);
|
||||||
background: var(--gradient);
|
background: var(--gradient);
|
||||||
font-family: 'Alata', sans-serif;
|
font-family: 'Alata', Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
|
|||||||
@@ -1,33 +1,84 @@
|
|||||||
const assets = [
|
const cache_name = 'torrent-parts-v1';
|
||||||
'/',
|
const assets = ['/', '/index.html', '/src/parse.js', '/src/style.css', '/ext/alata-v9-latin-regular.woff2', '/ext/alata-v9-latin-regular.ttf', '/ext/fa.min.js', '/ext/jj2008-06-14.mk4_archive.torrent', '/favicon.ico', '/manifest.webmanifest'];
|
||||||
'/index.html',
|
|
||||||
'/bin/bundle.min.js',
|
|
||||||
'/src/style.css',
|
|
||||||
'/ext/alata-latin-400.woff2',
|
|
||||||
'/ext/alata-latin-400.woff',
|
|
||||||
'/ext/fa.min.js',
|
|
||||||
'/ext/notyf.min.js',
|
|
||||||
'/ext/jj2008-06-14.mk4_archive.torrent'
|
|
||||||
];
|
|
||||||
|
|
||||||
self.addEventListener('install', function(event) {
|
self.addEventListener('install', function (event) {
|
||||||
|
self.skipWaiting(); // Force activate new SW immediately
|
||||||
event.waitUntil(
|
event.waitUntil(
|
||||||
caches.open('assets')
|
caches
|
||||||
.then(function(cache) {
|
.open(cache_name)
|
||||||
|
.then(function (cache) {
|
||||||
return cache.addAll(assets);
|
return cache.addAll(assets);
|
||||||
})
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.error('Service worker install failed:', error);
|
||||||
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
self.addEventListener('fetch', function(event) {
|
self.addEventListener('activate', function (event) {
|
||||||
|
event.waitUntil(
|
||||||
|
Promise.all([
|
||||||
|
// Take control of all clients immediately
|
||||||
|
self.clients.claim(),
|
||||||
|
// Clean up old caches
|
||||||
|
caches.keys().then(function (cacheNames) {
|
||||||
|
return Promise.all(
|
||||||
|
cacheNames.map(function (cacheName) {
|
||||||
|
if (cacheName !== cache_name) {
|
||||||
|
console.log('Deleting old cache:', cacheName);
|
||||||
|
return caches.delete(cacheName);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
])
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
self.addEventListener('fetch', function (event) {
|
||||||
|
// Only cache GET requests
|
||||||
|
if (event.request.method !== 'GET') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Network-first strategy for external requests
|
||||||
|
const requestUrl = new URL(event.request.url);
|
||||||
|
if (requestUrl.origin !== self.location.origin) {
|
||||||
|
event.respondWith(
|
||||||
|
fetch(event.request)
|
||||||
|
.then(function (response) {
|
||||||
|
return response;
|
||||||
|
})
|
||||||
|
.catch(function () {
|
||||||
|
console.log('Network request failed, trying cache:', event.request.url);
|
||||||
|
return caches.match(event.request);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cache-first strategy for app assets
|
||||||
event.respondWith(
|
event.respondWith(
|
||||||
caches.match(event.request)
|
caches
|
||||||
.then(function(response) {
|
.match(event.request)
|
||||||
|
.then(function (response) {
|
||||||
if (response) {
|
if (response) {
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
return fetch(event.request);
|
return fetch(event.request).then(function (response) {
|
||||||
}
|
// Cache successful responses for future use
|
||||||
)
|
if (response && response.status === 200) {
|
||||||
|
const responseClone = response.clone();
|
||||||
|
caches.open(cache_name).then(function (cache) {
|
||||||
|
cache.put(event.request, responseClone);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.error('Service worker fetch failed:', error);
|
||||||
|
// Could return offline fallback page here if needed
|
||||||
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
Reference in new issue
Block a user