From 62a8402fdc287fbe02ac17c2e91c74869e79d239 Mon Sep 17 00:00:00 2001 From: Steven Vandevelde Date: Sat, 9 Mar 2019 19:09:12 +0100 Subject: [PATCH] Say goodbye to NPM --- .gitignore | 2 +- .tool-versions | 1 - Makefile | 19 ++- README.md | 13 +- package-lock.json | 21 --- package.json | 8 - package.yaml | 6 - src/Javascript/Workers/brain.js | 2 +- src/Javascript/Workers/search.js | 2 +- src/Javascript/indexed-db.js | 2 +- src/Static/Html/Application.html | 2 +- system/Vendor/Main.hs | 37 ----- vendor/music-metadata.min.js | 242 ------------------------------- 13 files changed, 28 insertions(+), 329 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 system/Vendor/Main.hs delete mode 100644 vendor/music-metadata.min.js diff --git a/.gitignore b/.gitignore index fd4a3f51..160f2796 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ /.stack-work /build /elm-stuff -/node_modules +/vendor diff --git a/.tool-versions b/.tool-versions index 1e244287..364f809a 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1 @@ elm 0.19.0 -nodejs 11.10.0 diff --git a/Makefile b/Makefile index d9d08660..940338c5 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ NPM_DIR=./node_modules SRC_DIR=./src BUILD_DIR=./build +VENDOR_DIR=./vendor # Default task @@ -39,7 +40,8 @@ system: vendor: @echo "> Copying vendor things" - @stack build && stack exec vendor + @mkdir -p $(BUILD_DIR)/vendor/ + @cp -rf $(VENDOR_DIR)/ $(BUILD_DIR)/vendor/ # @@ -58,6 +60,21 @@ doc-tests: ) +install: + @echo "> Downloading & minifying dependencies" + @mkdir -p $(VENDOR_DIR) + @curl https://unpkg.com/lunr@2.3.6/lunr.js -o $(VENDOR_DIR)/lunr.js + @curl https://unpkg.com/fast-text-encoding@1.0.0/text.min.js -o $(VENDOR_DIR)/text-encoding-polyfill.min.js + @curl https://unpkg.com/tachyons@4.11.1/css/tachyons.min.css -o $(VENDOR_DIR)/tachyons.min.css + + @# Non-NPM dependencies + @curl https://raw.githubusercontent.com/icidasset/diffuse-musicmetadata/0ae8c854e18b6960b9f7e94b7eb47868416dc2ad/dist/musicmetadata.min.js -o $(VENDOR_DIR)/musicmetadata.min.js + + @# Minify non-minified dependencies + @# TODO + @mv $(VENDOR_DIR)/lunr.js $(VENDOR_DIR)/lunr.min.js + + server: @echo "> Booting up web server on port 5000" @devd --port 5000 --all --crossdomain --quiet --notfound=index.html $(BUILD_DIR) diff --git a/README.md b/README.md index ffa07a4c..38e08107 100644 --- a/README.md +++ b/README.md @@ -36,19 +36,16 @@ see `.tool-versions` and `stack.yaml`. - [Elm](https://elm-lang.org/) programming language - [Haskell](https://docs.haskellstack.org/en/stable/README/) programming language -- [NPM](https://www.npmjs.com/) package management through node.js - [Elm Proofread](https://github.com/icidasset/elm-proofread) documentation tests (optional) - [Devd](https://github.com/cortesi/devd) web server for development (optional) - [Watchexec](https://github.com/watchexec/watchexec) watching for file changes (optional) ```shell -# build, start server & watch for changes -make - -# make a static ./build -make build +# 🍱 +# 1. Install vendor dependencies +make install -# run tests -make test +# 2. Build, start server & watch for changes +make ``` diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index d47f3dd9..00000000 --- a/package-lock.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "fast-text-encoding": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.0.tgz", - "integrity": "sha512-R9bHCvweUxxwkDwhjav5vxpFvdPGlVngtqmx4pIZfSUhM/Q4NiIUHB456BAf+Q1Nwu3HEZYONtu+Rya+af4jiQ==" - }, - "lunr": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.5.tgz", - "integrity": "sha512-EtnfmHsHJTr3u24sito9JctSxej5Ds0SgUD2Lm+qRHyLgM7BGesFlW14eNh1mil0fV5Muh8gf3dBBXzADlUlzQ==" - }, - "tachyons": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/tachyons/-/tachyons-4.11.1.tgz", - "integrity": "sha512-n5zIZ8i8kZ8vz05vX1BdvkP8b9ufsMeSRmdqTuUtz5rlNxr03nntiZMc/HTADIsPYZj/wZJDJglxV0/yvvaiZA==" - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index ffb820e7..00000000 --- a/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "private": true, - "dependencies": { - "fast-text-encoding": "~1.0.0", - "lunr": "^2.3.5", - "tachyons": "~4.11.1" - } -} diff --git a/package.yaml b/package.yaml index 1c67f0d8..5f49ce72 100644 --- a/package.yaml +++ b/package.yaml @@ -26,10 +26,4 @@ executables: build: main: Main.hs source-dirs: - - src - system/Build - - # 🏪 - vendor: - main: Main.hs - source-dirs: system/Vendor diff --git a/src/Javascript/Workers/brain.js b/src/Javascript/Workers/brain.js index 07ce4ab9..2af43dac 100644 --- a/src/Javascript/Workers/brain.js +++ b/src/Javascript/Workers/brain.js @@ -4,7 +4,7 @@ // // This worker is responsible for everything non-UI. -importScripts("/vendor/music-metadata.js") +importScripts("/vendor/musicmetadata.min.js") importScripts("/brain.js") importScripts("/encryption.js") diff --git a/src/Javascript/Workers/search.js b/src/Javascript/Workers/search.js index 8d9b1f8f..9bf06d1f 100644 --- a/src/Javascript/Workers/search.js +++ b/src/Javascript/Workers/search.js @@ -4,7 +4,7 @@ // // This worker is responsible for searching through a `Track` collection. -importScripts("/vendor/lunr.js") +importScripts("/vendor/lunr.min.js") let index diff --git a/src/Javascript/indexed-db.js b/src/Javascript/indexed-db.js index f6f39dee..a3fc4b63 100644 --- a/src/Javascript/indexed-db.js +++ b/src/Javascript/indexed-db.js @@ -5,7 +5,7 @@ // The local database. // This is used instead of localStorage. -importScripts("/vendor/text-encoding.js") +importScripts("/vendor/text-encoding-polyfill.min.js") const indexedDB = diff --git a/src/Static/Html/Application.html b/src/Static/Html/Application.html index aea459fa..61f7363c 100644 --- a/src/Static/Html/Application.html +++ b/src/Static/Html/Application.html @@ -18,7 +18,7 @@ - + diff --git a/system/Vendor/Main.hs b/system/Vendor/Main.hs deleted file mode 100644 index 1b894e51..00000000 --- a/system/Vendor/Main.hs +++ /dev/null @@ -1,37 +0,0 @@ -module Main where - -import Flow -import Protolude -import Shikensu -import Shikensu.Contrib -import Shikensu.Contrib.IO as Shikensu - - --- | (• ◡•)| (❍ᴥ❍ʋ) - - -main :: IO Dictionary -main = - Shikensu.listRelative - [ "node_modules/fast-text-encoding/text.min.js" - , "node_modules/lunr/lunr.js" - , "node_modules/tachyons/css/tachyons.min.css" - , "vendor/music-metadata.min.js" - ] - "./" - >>= read - >>= flow - >>= write "./build" - - - --- Flow - - -flow :: Dictionary -> IO Dictionary -flow = - rename "text.min.js" "text-encoding.js" - .> rename "tachyons.min.css" "tachyons.css" - .> rename "music-metadata.min.js" "music-metadata.js" - .> prefixDirname "vendor" - .> return diff --git a/vendor/music-metadata.min.js b/vendor/music-metadata.min.js deleted file mode 100644 index a09cf4c3..00000000 --- a/vendor/music-metadata.min.js +++ /dev/null @@ -1,242 +0,0 @@ -parcelRequire=function(e,r,n,t){var i="function"==typeof parcelRequire&&parcelRequire,o="function"==typeof require&&require;function u(n,t){if(!r[n]){if(!e[n]){var f="function"==typeof parcelRequire&&parcelRequire;if(!t&&f)return f(n,!0);if(i)return i(n,!0);if(o&&"string"==typeof n)return o(n);var c=new Error("Cannot find module '"+n+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[n][1][r]||r},p.cache={};var l=r[n]=new u.Module(n);e[n][0].call(l.exports,p,l,l.exports,this)}return r[n].exports;function p(e){return u(p.resolve(e))}}u.isParcelRequire=!0,u.Module=function(e){this.id=e,this.bundle=u,this.exports={}},u.modules=e,u.cache=r,u.parent=i,u.register=function(r,n){e[r]=[function(e,r){r.exports=n},{}]};for(var f=0;f100)){var u=/^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(u){var o=parseFloat(u[1]);switch((u[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return o*c;case"weeks":case"week":case"w":return o*n;case"days":case"day":case"d":return o*a;case"hours":case"hour":case"hrs":case"hr":case"h":return o*r;case"minutes":case"minute":case"mins":case"min":case"m":return o*e;case"seconds":case"second":case"secs":case"sec":case"s":return o*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}}}function u(n){var c=Math.abs(n);return c>=a?Math.round(n/a)+"d":c>=r?Math.round(n/r)+"h":c>=e?Math.round(n/e)+"m":c>=s?Math.round(n/s)+"s":n+"ms"}function o(n){var c=Math.abs(n);return c>=a?i(n,c,a,"day"):c>=r?i(n,c,r,"hour"):c>=e?i(n,c,e,"minute"):c>=s?i(n,c,s,"second"):n+" ms"}function i(s,e,r,a){var n=e>=1.5*r;return Math.round(s/r)+" "+a+(n?"s":"")}module.exports=function(s,e){e=e||{};var r=typeof s;if("string"===r&&s.length>0)return t(s);if("number"===r&&!1===isNaN(s))return e.long?o(s):u(s);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(s))}; -},{}],"MTTc":[function(require,module,exports) { -function e(e){function n(e){let n=0;for(let t=0;t{if("%%"===s)return s;a++;const o=t.formatters[r];if("function"==typeof o){const t=e[a];s=o.call(n,t),e.splice(a,1),a--}return s}),t.formatArgs.call(n,e),(n.log||t.log).apply(n,e)}return i.namespace=e,i.enabled=t.enabled(e),i.useColors=t.useColors(),i.color=n(e),i.destroy=s,i.extend=r,"function"==typeof t.init&&t.init(i),t.instances.push(i),i}function s(){const e=t.instances.indexOf(this);return-1!==e&&(t.instances.splice(e,1),!0)}function r(e,n){const s=t(this.namespace+(void 0===n?":":n)+e);return s.log=this.log,s}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(o),...t.skips.map(o).map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.names=[],t.skips=[];const s=("string"==typeof e?e:"").split(/[\s,]+/),r=s.length;for(n=0;n{t[n]=e[n]}),t.instances=[],t.names=[],t.skips=[],t.formatters={},t.selectColor=n,t.enable(t.load()),t}module.exports=e; -},{"ms":"LVkZ"}],"g5I+":[function(require,module,exports) { - -var t,e,n=module.exports={};function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(e){if(t===setTimeout)return setTimeout(e,0);if((t===r||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}function u(t){if(e===clearTimeout)return clearTimeout(t);if((e===o||!e)&&clearTimeout)return e=clearTimeout,clearTimeout(t);try{return e(t)}catch(n){try{return e.call(null,t)}catch(n){return e.call(this,t)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:r}catch(n){t=r}try{e="function"==typeof clearTimeout?clearTimeout:o}catch(n){e=o}}();var c,s=[],l=!1,a=-1;function f(){l&&c&&(l=!1,c.length?s=c.concat(s):a=-1,s.length&&h())}function h(){if(!l){var t=i(f);l=!0;for(var e=s.length;e;){for(c=s,s=[];++a1)for(var n=1;n=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function C(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+module.exports.humanize(this.diff),!this.useColors)return;const o="color: "+this.color;e.splice(1,0,o,"color: inherit");let C=0,t=0;e[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(C++,"%c"===e&&(t=C))}),e.splice(t,0,o)}function t(...e){return"object"==typeof console&&console.log&&console.log(...e)}function r(e){try{e?exports.storage.setItem("debug",e):exports.storage.removeItem("debug")}catch(o){}}function n(){let o;try{o=exports.storage.getItem("debug")}catch(C){}return!o&&void 0!==e&&"env"in e&&(o=void 0),o}function s(){try{return localStorage}catch(e){}}exports.log=t,exports.formatArgs=C,exports.save=r,exports.load=n,exports.useColors=o,exports.storage=s(),exports.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],module.exports=require("./common")(exports);const{formatters:F}=module.exports;F.j=function(e){try{return JSON.stringify(e)}catch(o){return"[UnexpectedJSONParseError]: "+o.message}}; -},{"./common":"MTTc","process":"g5I+"}],"2Fe+":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.endOfFile="End-Of-File"; -},{}],"FRly":[function(require,module,exports) { -"use strict";exports.byteLength=u,exports.toByteArray=i,exports.fromByteArray=d;for(var r=[],t=[],e="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,a=n.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var e=r.indexOf("=");return-1===e&&(e=t),[e,e===t?0:4-e%4]}function u(r){var t=h(r),e=t[0],n=t[1];return 3*(e+n)/4-n}function c(r,t,e){return 3*(t+e)/4-e}function i(r){for(var n,o=h(r),a=o[0],u=o[1],i=new e(c(r,a,u)),f=0,A=u>0?a-4:a,d=0;d>16&255,i[f++]=n>>8&255,i[f++]=255&n;return 2===u&&(n=t[r.charCodeAt(d)]<<2|t[r.charCodeAt(d+1)]>>4,i[f++]=255&n),1===u&&(n=t[r.charCodeAt(d)]<<10|t[r.charCodeAt(d+1)]<<4|t[r.charCodeAt(d+2)]>>2,i[f++]=n>>8&255,i[f++]=255&n),i}function f(t){return r[t>>18&63]+r[t>>12&63]+r[t>>6&63]+r[63&t]}function A(r,t,e){for(var n,o=[],a=t;au?u:h+16383));return 1===o?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===o&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")}t["-".charCodeAt(0)]=62,t["_".charCodeAt(0)]=63; -},{}],"Quj6":[function(require,module,exports) { -exports.read=function(o,t,a,r,h){var M,p,w=8*h-r-1,f=(1<>1,n=-7,i=a?h-1:0,e=a?-1:1,s=o[t+i];for(i+=e,M=s&(1<<-n)-1,s>>=-n,n+=w;n>0;M=256*M+o[t+i],i+=e,n-=8);for(p=M&(1<<-n)-1,M>>=-n,n+=r;n>0;p=256*p+o[t+i],i+=e,n-=8);if(0===M)M=1-N;else{if(M===f)return p?NaN:1/0*(s?-1:1);p+=Math.pow(2,r),M-=N}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(o,t,a,r,h,M){var p,w,f,N=8*M-h-1,n=(1<>1,e=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(w=isNaN(t)?1:0,p=n):(p=Math.floor(Math.log(t)/Math.LN2),t*(f=Math.pow(2,-p))<1&&(p--,f*=2),(t+=p+i>=1?e/f:e*Math.pow(2,1-i))*f>=2&&(p++,f/=2),p+i>=n?(w=0,p=n):p+i>=1?(w=(t*f-1)*Math.pow(2,h),p+=i):(w=t*Math.pow(2,i-1)*Math.pow(2,h),p=0));h>=8;o[a+s]=255&w,s+=u,w/=256,h-=8);for(p=p<0;o[a+s]=255&p,s+=u,p/=256,N-=8);o[a+s-u]|=128*l}; -},{}],"aq/z":[function(require,module,exports) { -var r={}.toString;module.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}; -},{}],"aMB2":[function(require,module,exports) { - -var global = arguments[3]; -var t=arguments[3],r=require("base64-js"),e=require("ieee754"),n=require("isarray");function i(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(r){return!1}}function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,r){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|t}function E(t){return+t!=t&&(t=0),u.alloc(+t)}function v(t,r){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var e=t.length;if(0===e)return 0;for(var n=!1;;)switch(r){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":case void 0:return K(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return I(t).length;default:if(n)return K(t).length;r=(""+r).toLowerCase(),n=!0}}function R(t,r,e){var n=!1;if((void 0===r||r<0)&&(r=0),r>this.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(r>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return k(this,r,e);case"utf8":case"utf-8":return O(this,r,e);case"ascii":return L(this,r,e);case"latin1":case"binary":return M(this,r,e);case"base64":return S(this,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,r,e);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function _(t,r,e){var n=t[r];t[r]=t[e],t[e]=n}function A(t,r,e,n,i){if(0===t.length)return-1;if("string"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return-1;e=t.length-1}else if(e<0){if(!i)return-1;e=0}if("string"==typeof r&&(r=u.from(r,n)),u.isBuffer(r))return 0===r.length?-1:m(t,r,e,n,i);if("number"==typeof r)return r&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,r,e):Uint8Array.prototype.lastIndexOf.call(t,r,e):m(t,[r],e,n,i);throw new TypeError("val must be string, number or Buffer")}function m(t,r,e,n,i){var o,s=1,u=t.length,h=r.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||r.length<2)return-1;s=2,u/=2,h/=2,e/=2}function f(t,r){return 1===s?t[r]:t.readUInt16BE(r*s)}if(i){var a=-1;for(o=e;ou&&(e=u-h),o=e;o>=0;o--){for(var p=!0,l=0;li&&(n=i):n=i;var o=r.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s239?4:f>223?3:f>191?2:1;if(i+p<=e)switch(p){case 1:f<128&&(a=f);break;case 2:128==(192&(o=t[i+1]))&&(h=(31&f)<<6|63&o)>127&&(a=h);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(h=(15&f)<<12|(63&o)<<6|63&s)>2047&&(h<55296||h>57343)&&(a=h);break;case 4:o=t[i+1],s=t[i+2],u=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&u)&&(h=(15&f)<<18|(63&o)<<12|(63&s)<<6|63&u)>65535&&h<1114112&&(a=h)}null===a?(a=65533,p=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=p}return C(n)}exports.Buffer=u,exports.SlowBuffer=E,exports.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:i(),exports.kMaxLength=o(),u.poolSize=8192,u._augment=function(t){return t.__proto__=u.prototype,t},u.from=function(t,r,e){return h(null,t,r,e)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(t,r,e){return a(null,t,r,e)},u.allocUnsafe=function(t){return p(null,t)},u.allocUnsafeSlow=function(t){return p(null,t)},u.isBuffer=function(t){return!(null==t||!t._isBuffer)},u.compare=function(t,r){if(!u.isBuffer(t)||!u.isBuffer(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var e=t.length,n=r.length,i=0,o=Math.min(e,n);i0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,r,e,n,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=0),void 0===e&&(e=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),r<0||e>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&r>=e)return 0;if(n>=i)return-1;if(r>=e)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(e>>>=0)-(r>>>=0),h=Math.min(o,s),f=this.slice(n,i),a=t.slice(r,e),p=0;pi)&&(e=i),t.length>0&&(e<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return b(this,t,r,e);case"utf8":case"utf-8":return T(this,t,r,e);case"ascii":return B(this,t,r,e);case"latin1":case"binary":return U(this,t,r,e);case"base64":return Y(this,t,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,r,e);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function C(t){var r=t.length;if(r<=D)return String.fromCharCode.apply(String,t);for(var e="",n=0;nn)&&(e=n);for(var i="",o=r;oe)throw new RangeError("Trying to access beyond buffer length")}function j(t,r,e,n,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>i||rt.length)throw new RangeError("Index out of range")}function q(t,r,e,n){r<0&&(r=65535+r+1);for(var i=0,o=Math.min(t.length-e,2);i>>8*(n?i:1-i)}function V(t,r,e,n){r<0&&(r=4294967295+r+1);for(var i=0,o=Math.min(t.length-e,4);i>>8*(n?i:3-i)&255}function X(t,r,e,n,i,o){if(e+n>t.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function J(t,r,n,i,o){return o||X(t,r,n,4,3.4028234663852886e38,-3.4028234663852886e38),e.write(t,r,n,i,23,4),n+4}function Z(t,r,n,i,o){return o||X(t,r,n,8,1.7976931348623157e308,-1.7976931348623157e308),e.write(t,r,n,i,52,8),n+8}u.prototype.slice=function(t,r){var e,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(r=void 0===r?n:~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),r0&&(i*=256);)n+=this[t+--r]*i;return n},u.prototype.readUInt8=function(t,r){return r||F(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,r){return r||F(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,r){return r||F(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,r){return r||F(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,r){return r||F(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,r,e){t|=0,r|=0,e||F(t,r,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*r)),n},u.prototype.readIntBE=function(t,r,e){t|=0,r|=0,e||F(t,r,this.length);for(var n=r,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*r)),o},u.prototype.readInt8=function(t,r){return r||F(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,r){r||F(t,2,this.length);var e=this[t]|this[t+1]<<8;return 32768&e?4294901760|e:e},u.prototype.readInt16BE=function(t,r){r||F(t,2,this.length);var e=this[t+1]|this[t]<<8;return 32768&e?4294901760|e:e},u.prototype.readInt32LE=function(t,r){return r||F(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,r){return r||F(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,r){return r||F(t,4,this.length),e.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,r){return r||F(t,4,this.length),e.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,r){return r||F(t,8,this.length),e.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,r){return r||F(t,8,this.length),e.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,r,e,n){(t=+t,r|=0,e|=0,n)||j(this,t,r,e,Math.pow(2,8*e)-1,0);var i=1,o=0;for(this[r]=255&t;++o=0&&(o*=256);)this[r+i]=t/o&255;return r+e},u.prototype.writeUInt8=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=255&t,r+1},u.prototype.writeUInt16LE=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):q(this,t,r,!0),r+2},u.prototype.writeUInt16BE=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):q(this,t,r,!1),r+2},u.prototype.writeUInt32LE=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=255&t):V(this,t,r,!0),r+4},u.prototype.writeUInt32BE=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):V(this,t,r,!1),r+4},u.prototype.writeIntLE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);j(this,t,r,e,i-1,-i)}var o=0,s=1,u=0;for(this[r]=255&t;++o>0)-u&255;return r+e},u.prototype.writeIntBE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);j(this,t,r,e,i-1,-i)}var o=e-1,s=1,u=0;for(this[r+o]=255&t;--o>=0&&(s*=256);)t<0&&0===u&&0!==this[r+o+1]&&(u=1),this[r+o]=(t/s>>0)-u&255;return r+e},u.prototype.writeInt8=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=255&t,r+1},u.prototype.writeInt16LE=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):q(this,t,r,!0),r+2},u.prototype.writeInt16BE=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):q(this,t,r,!1),r+2},u.prototype.writeInt32LE=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):V(this,t,r,!0),r+4},u.prototype.writeInt32BE=function(t,r,e){return t=+t,r|=0,e||j(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):V(this,t,r,!1),r+4},u.prototype.writeFloatLE=function(t,r,e){return J(this,t,r,!0,e)},u.prototype.writeFloatBE=function(t,r,e){return J(this,t,r,!1,e)},u.prototype.writeDoubleLE=function(t,r,e){return Z(this,t,r,!0,e)},u.prototype.writeDoubleBE=function(t,r,e){return Z(this,t,r,!1,e)},u.prototype.copy=function(t,r,e,n){if(e||(e=0),n||0===n||(n=this.length),r>=t.length&&(r=t.length),r||(r=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-r=0;--i)t[i+r]=this[i+e];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,e=void 0===e?this.length:e>>>0,t||(t=0),"number"==typeof t)for(o=r;o55295&&e<57344){if(!i){if(e>56319){(r-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(r-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(r-=3)>-1&&o.push(239,191,189),i=e;continue}e=65536+(i-55296<<10|e-56320)}else i&&(r-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((r-=1)<0)break;o.push(e)}else if(e<2048){if((r-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((r-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return o}function Q(t){for(var r=[],e=0;e>8,i=e%256,o.push(i),o.push(n);return o}function I(t){return r.toByteArray(z(t))}function x(t,r,e,n){for(var i=0;i=r.length||i>=t.length);++i)r[i+e]=t[i];return i}function d(t){return t!=t} -},{"base64-js":"FRly","ieee754":"Quj6","isarray":"aq/z","buffer":"aMB2"}],"PoRW":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer,n=this&&this.__awaiter||function(e,n,r,t){return new(r||(r=Promise))(function(i,o){function u(e){try{l(t.next(e))}catch(n){o(n)}}function f(e){try{l(t.throw(e))}catch(n){o(n)}}function l(e){e.done?i(e.value):new r(function(n){n(e.value)}).then(u,f)}l((t=t.apply(e,n||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const r=require("./type");class t{constructor(){this.position=0,this.numBuffer=e.alloc(4)}readToken(t,i=null,o){return n(this,void 0,void 0,function*(){const n=e.alloc(t.len),u=yield this.readBuffer(n,0,t.len,i);if(!o&&u=u)return e;switch(e){case"%s":return String(o[n++]);case"%d":return Number(o[n++]);case"%j":try{return JSON.stringify(o[n++])}catch(t){return"[Circular]"}default:return e}}),c=o[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),x(t)?r.showHidden=t:t&&exports._extend(r,t),j(r.showHidden)&&(r.showHidden=!1),j(r.depth)&&(r.depth=2),j(r.colors)&&(r.colors=!1),j(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=u),l(r,e,r.depth)}function u(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function s(e,t){return e}function c(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function l(e,t,r){if(e.customInspect&&t&&D(t.inspect)&&t.inspect!==exports.inspect&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return m(n)||(n=l(e,n,r)),n}var o=p(e,t);if(o)return o;var i=Object.keys(t),u=c(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(t)),E(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return a(t);if(0===i.length){if(D(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(O(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(w(t))return e.stylize(Date.prototype.toString.call(t),"date");if(E(t))return a(t)}var x,h="",b=!1,v=["{","}"];(d(t)&&(b=!0,v=["[","]"]),D(t))&&(h=" [Function"+(t.name?": "+t.name:"")+"]");return O(t)&&(h=" "+RegExp.prototype.toString.call(t)),w(t)&&(h=" "+Date.prototype.toUTCString.call(t)),E(t)&&(h=" "+a(t)),0!==i.length||b&&0!=t.length?r<0?O(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),x=b?f(e,t,r,u,i):i.map(function(n){return y(e,t,r,u,n,b)}),e.seen.pop(),g(x,h,v)):v[0]+h+v[1]}function p(e,t){if(j(t))return e.stylize("undefined","undefined");if(m(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return v(t)?e.stylize(""+t,"number"):x(t)?e.stylize(""+t,"boolean"):h(t)?e.stylize("null","null"):void 0}function a(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,r,n,o){for(var i=[],u=0,s=t.length;u-1&&(s=i?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n")):s=e.stylize("[Circular]","special")),j(u)){if(i&&o.match(/^\d+$/))return s;(u=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(u=u.substr(1,u.length-2),u=e.stylize(u,"name")):(u=u.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),u=e.stylize(u,"string"))}return u+": "+s}function g(e,t,r){return e.reduce(function(e,t){return 0,t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function d(e){return Array.isArray(e)}function x(e){return"boolean"==typeof e}function h(e){return null===e}function b(e){return null==e}function v(e){return"number"==typeof e}function m(e){return"string"==typeof e}function S(e){return"symbol"==typeof e}function j(e){return void 0===e}function O(e){return z(e)&&"[object RegExp]"===A(e)}function z(e){return"object"==typeof e&&null!==e}function w(e){return z(e)&&"[object Date]"===A(e)}function E(e){return z(e)&&("[object Error]"===A(e)||e instanceof Error)}function D(e){return"function"==typeof e}function N(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function A(e){return Object.prototype.toString.call(e)}function J(e){return e<10?"0"+e.toString(10):e.toString(10)}exports.debuglog=function(e){if(j(n)&&(n=""),e=e.toUpperCase(),!o[e])if(new RegExp("\\b"+e+"\\b","i").test(n)){var r=t.pid;o[e]=function(){var t=exports.format.apply(exports,arguments);console.error("%s %d: %s",e,r,t)}}else o[e]=function(){};return o[e]},exports.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=d,exports.isBoolean=x,exports.isNull=h,exports.isNullOrUndefined=b,exports.isNumber=v,exports.isString=m,exports.isSymbol=S,exports.isUndefined=j,exports.isRegExp=O,exports.isObject=z,exports.isDate=w,exports.isError=E,exports.isFunction=D,exports.isPrimitive=N,exports.isBuffer=require("./support/isBuffer");var R=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function H(){var e=new Date,t=[J(e.getHours()),J(e.getMinutes()),J(e.getSeconds())].join(":");return[e.getDate(),R[e.getMonth()],t].join(" ")}function $(e,t){return Object.prototype.hasOwnProperty.call(e,t)}exports.log=function(){console.log("%s - %s",H(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(e,t){if(!t||!z(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}; -},{"./support/isBuffer":"ebtb","inherits":"Zvxt","process":"g5I+"}],"g2FE":[function(require,module,exports) { -var global = arguments[3]; -var t=arguments[3];function e(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i=0;c--)if(s[c]!==l[c])return!1;for(c=s.length-1;c>=0;c--)if(!d(t[f=s[c]],e[f],r,i))return!1;return!0}function v(t,e,r){d(t,e,!0)&&E(t,e,r,"notDeepStrictEqual",v)}function q(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(r){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function x(t){var e;try{t()}catch(r){e=r}return e}function w(t,e,r,i){var o;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(i=r,r=null),o=x(e),i=(r&&r.name?" ("+r.name+").":".")+(i?" "+i:"."),t&&!o&&E(o,r,"Missing expected exception"+i);var u="string"==typeof i,a=!t&&o&&!r;if((!t&&n.isError(o)&&u&&q(o,r)||a)&&E(o,r,"Got unwanted exception"+i),t&&o&&r&&!q(o,r)||!t&&o)throw o}c.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=h(this),this.generatedMessage=!0);var e=t.stackStartFunction||E;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=l(e),o=n.indexOf("\n"+i);if(o>=0){var u=n.indexOf("\n",o+1);n=n.substring(u+1)}this.stack=n}}},n.inherits(c.AssertionError,Error),c.fail=E,c.ok=y,c.equal=function(t,e,r){t!=e&&E(t,e,r,"==",c.equal)},c.notEqual=function(t,e,r){t==e&&E(t,e,r,"!=",c.notEqual)},c.deepEqual=function(t,e,r){d(t,e,!1)||E(t,e,r,"deepEqual",c.deepEqual)},c.deepStrictEqual=function(t,e,r){d(t,e,!0)||E(t,e,r,"deepStrictEqual",c.deepStrictEqual)},c.notDeepEqual=function(t,e,r){d(t,e,!1)&&E(t,e,r,"notDeepEqual",c.notDeepEqual)},c.notDeepStrictEqual=v,c.strictEqual=function(t,e,r){t!==e&&E(t,e,r,"===",c.strictEqual)},c.notStrictEqual=function(t,e,r){t===e&&E(t,e,r,"!==",c.notStrictEqual)},c.throws=function(t,e,r){w(!0,t,e,r)},c.doesNotThrow=function(t,e,r){w(!1,t,e,r)},c.ifError=function(t){if(t)throw t};var O=Object.keys||function(t){var e=[];for(var r in t)i.call(t,r)&&e.push(r);return e}; -},{"util/":"KpDW"}],"3mbL":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,r,s){return new(r||(r=Promise))(function(n,i){function o(e){try{u(s.next(e))}catch(t){i(t)}}function h(e){try{u(s.throw(e))}catch(t){i(t)}}function u(e){e.done?n(e.value):new r(function(t){t(e.value)}).then(o,h)}u((s=s.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("assert");class r{constructor(){this.promise=new Promise((e,t)=>{this.reject=t,this.resolve=e})}}exports.endOfStream="End-Of-Stream";class s{constructor(e){if(this.s=e,this.endOfStream=!1,this.peekQueue=[],!e.read||!e.once)throw new Error("Expected an instance of stream.Readable");this.s.once("end",()=>this.reject(new Error(exports.endOfStream))),this.s.once("error",e=>this.reject(e)),this.s.once("close",()=>this.reject(new Error("Stream closed")))}peek(t,r,s){return e(this,void 0,void 0,function*(){const e=yield this.read(t,r,s);return this.peekQueue.push(t.slice(r,r+e)),e})}read(t,r,s){return e(this,void 0,void 0,function*(){if(0===s)return 0;if(0===this.peekQueue.length&&this.endOfStream)throw new Error(exports.endOfStream);let e=s,n=0;for(;this.peekQueue.length>0&&e>0;){const s=this.peekQueue.pop(),i=Math.min(s.length,e);s.copy(t,r+n,0,i),n+=i,e-=i,i0&&!this.endOfStream&&(n+=(yield this._read(t,r+n,e))),n})}_read(s,n,i){return e(this,void 0,void 0,function*(){t.ok(!this.request,"Concurrent read operation?");const e=this.s.read(i);return e?(e.copy(s,n),e.length):(this.request={buffer:s,offset:n,length:i,deferred:new r},this.s.once("readable",()=>{this.tryRead()}),this.request.deferred.promise.then(e=>(this.request=null,e)).catch(e=>{throw this.request=null,e}))})}tryRead(){const e=this.s.read(this.request.length);e?(e.copy(this.request.buffer,this.request.offset),this.request.deferred.resolve(e.length)):this.s.once("readable",()=>{this.tryRead()})}reject(e){this.endOfStream=!0,this.request&&(this.request.deferred.reject(e),this.request=null)}}exports.StreamReader=s; -},{"assert":"g2FE"}],"h40E":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer,r=this&&this.__awaiter||function(e,r,t,i){return new(t||(t=Promise))(function(n,o){function s(e){try{f(i.next(e))}catch(r){o(r)}}function a(e){try{f(i.throw(e))}catch(r){o(r)}}function f(e){e.done?n(e.value):new t(function(r){r(e.value)}).then(s,a)}f((i=i.apply(e,r||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("./AbstractTokenizer"),i=require("./type"),n=require("then-read-stream"),o=require("debug"),s=o("strtok3:ReadStreamTokenizer");class a extends t.AbstractTokenizer{constructor(e,r){super(),this.streamReader=new n.StreamReader(e),this.fileSize=r}readBuffer(e,t=0,o=e.length,s){return r(this,void 0,void 0,function*(){if(0===o)return 0;if(s){const r=s-this.position;if(r>0)return yield this.ignore(s-this.position),this.readBuffer(e,t,o);if(r<0)throw new Error("Cannot read from a negative offset in a stream")}let r;try{r=yield this.streamReader.read(e,t,o),this.position+=r}catch(a){throw a.message===n.endOfStream?new Error(i.endOfFile):a}if(r0){const n=e.alloc(s+i);return r=yield this.peekBuffer(n,0,i+s,void 0,f),n.copy(t,o,i),r-i}if(i<0)throw new Error("Cannot peek from a negative offset in a stream")}try{r=yield this.streamReader.peek(t,o,s)}catch(u){throw u.message===n.endOfStream?new Error(i.endOfFile):u}if(!f&&r(this.position+=t,t))})}peekBuffer(e,n,o,r,s=!1){return t(this,void 0,void 0,function*(){r=r||this.position,o||(o=e.length);const t=Math.min(this.buffer.length-r,o);if(!s&&t1&&void 0!==arguments[1]?arguments[1]:0,i=e[t],f=1,m=0;++m<8;)f*=256,i+=e[t+m]*f;return i}module.exports=function(f){if(!(f instanceof Uint8Array||e.isBuffer(f)))throw new TypeError("Expected the `input` argument to be of type `Uint8Array` or `Buffer`, got `".concat(t(f),"`"));var m=f instanceof Uint8Array?f:new Uint8Array(f);if(!(m&&m.length>1))return null;var r=function(e,t){t=Object.assign({offset:0},t);for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:0;return e.findIndex(function(e,i,f){return i>=t&&80===f[i]&&75===f[i+1]&&3===f[i+2]&&4===f[i+3]})},c=0,l=!1,d=null;do{var g=c+30;if(l||(l=r(a,{offset:g})||r(p,{offset:g})),d||(s("word/",{offset:g})?d={ext:"docx",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}:s("ppt/",{offset:g})?d={ext:"pptx",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}:s("xl/",{offset:g})&&(d={ext:"xlsx",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})),l&&d)return d;c=x(m,g)}while(c>=0);if(d)return d}if(r([80,75])&&(3===m[2]||5===m[2]||7===m[2])&&(4===m[3]||6===m[3]||8===m[3]))return{ext:"zip",mime:"application/zip"};if(r([117,115,116,97,114],{offset:257}))return{ext:"tar",mime:"application/x-tar"};if(r([82,97,114,33,26,7])&&(0===m[6]||1===m[6]))return{ext:"rar",mime:"application/x-rar-compressed"};if(r([31,139,8]))return{ext:"gz",mime:"application/gzip"};if(r([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(r([55,122,188,175,39,28]))return{ext:"7z",mime:"application/x-7z-compressed"};if(r([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(r([51,103,112,53])||r([0,0,0])&&r([102,116,121,112],{offset:4})&&(r([109,112,52,49],{offset:8})||r([109,112,52,50],{offset:8})||r([105,115,111,109],{offset:8})||r([105,115,111,50],{offset:8})||r([109,109,112,52],{offset:8})||r([77,52,86],{offset:8})||r([100,97,115,104],{offset:8})))return{ext:"mp4",mime:"video/mp4"};if(r([77,84,104,100]))return{ext:"mid",mime:"audio/midi"};if(r([26,69,223,163])){var v=m.subarray(4,4100),b=v.findIndex(function(e,t,i){return 66===i[t]&&130===i[t+1]});if(-1!==b){var y=b+3,h=function(e){return i(e).every(function(e,t){return v[y+t]===e.charCodeAt(0)})};if(h("matroska"))return{ext:"mkv",mime:"video/x-matroska"};if(h("webm"))return{ext:"webm",mime:"video/webm"}}}if(r([0,0,0,20,102,116,121,112,113,116,32,32])||r([102,114,101,101],{offset:4})||r([102,116,121,112,113,116,32,32],{offset:4})||r([109,100,97,116],{offset:4})||r([109,111,111,118],{offset:4})||r([119,105,100,101],{offset:4}))return{ext:"mov",mime:"video/quicktime"};if(r([82,73,70,70])){if(r([65,86,73],{offset:8}))return{ext:"avi",mime:"video/vnd.avi"};if(r([87,65,86,69],{offset:8}))return{ext:"wav",mime:"audio/vnd.wave"};if(r([81,76,67,77],{offset:8}))return{ext:"qcp",mime:"audio/qcelp"}}if(r([48,38,178,117,142,102,207,17,166,217])){var w=30;do{var k=u(m,w+16);if(r([145,7,220,183,183,169,207,17,142,230,0,192,12,32,83,101],{offset:w})){if(r([64,158,105,248,77,91,207,17,168,253,0,128,95,92,68,43],{offset:w+24}))return{ext:"wma",mime:"audio/x-ms-wma"};if(r([192,239,25,188,77,91,207,17,168,253,0,128,95,92,68,43],{offset:w+24}))return{ext:"wmv",mime:"video/x-ms-asf"};break}w+=k}while(w+24<=m.length);return{ext:"asf",mime:"application/vnd.ms-asf"}}if(r([0,0,1,186])||r([0,0,1,179]))return{ext:"mpg",mime:"video/mpeg"};if(r([102,116,121,112,51,103],{offset:4}))return{ext:"3gp",mime:"video/3gpp"};for(var j=0;j<2&&j0&&!r.test(a))throw new TypeError("invalid parameter value");return'"'+a.replace(n,"\\$1")+'"'}function w(e){var r=f.exec(e.toLowerCase());if(!r)throw new TypeError("invalid media type");var t,a=r[1],n=r[2],o=n.lastIndexOf("+");return-1!==o&&(t=n.substr(o+1),n=n.substr(0,o)),{type:a,subtype:n,suffix:t}}exports.format=u,exports.parse=s; -},{}],"yenf":[function(require,module,exports) { -"use strict";function i(i){return exports.commonTags.hasOwnProperty(i)&&!exports.commonTags[i].multiple}function l(i){return!exports.commonTags[i].multiple||exports.commonTags[i].unique}Object.defineProperty(exports,"__esModule",{value:!0}),exports.commonTags={year:{multiple:!1},track:{multiple:!1},disk:{multiple:!1},title:{multiple:!1},artist:{multiple:!1},artists:{multiple:!0,unique:!0},albumartist:{multiple:!1},album:{multiple:!1},date:{multiple:!1},originaldate:{multiple:!1},originalyear:{multiple:!1},comment:{multiple:!0,unique:!1},genre:{multiple:!0,unique:!0},picture:{multiple:!0,unique:!0},composer:{multiple:!0,unique:!0},lyrics:{multiple:!0,unique:!1},albumsort:{multiple:!1,unique:!0},titlesort:{multiple:!1,unique:!0},work:{multiple:!1,unique:!0},artistsort:{multiple:!1,unique:!0},albumartistsort:{multiple:!1,unique:!0},composersort:{multiple:!0,unique:!0},lyricist:{multiple:!0,unique:!0},writer:{multiple:!0,unique:!0},conductor:{multiple:!0,unique:!0},remixer:{multiple:!0,unique:!0},arranger:{multiple:!0,unique:!0},engineer:{multiple:!0,unique:!0},producer:{multiple:!0,unique:!0},technician:{multiple:!0,unique:!0},djmixer:{multiple:!0,unique:!0},mixer:{multiple:!0,unique:!0},label:{multiple:!0,unique:!0},grouping:{multiple:!1},subtitle:{multiple:!1},discsubtitle:{multiple:!1},totaltracks:{multiple:!1},totaldiscs:{multiple:!1},compilation:{multiple:!1},rating:{multiple:!0},bpm:{multiple:!1},mood:{multiple:!1},media:{multiple:!1},catalognumber:{multiple:!0,unique:!0},tvShow:{multiple:!1},tvShowSort:{multiple:!1},tvSeason:{multiple:!1},tvEpisode:{multiple:!1},tvEpisodeId:{multiple:!1},tvNetwork:{multiple:!1},podcast:{multiple:!1},podcasturl:{multiple:!1},releasestatus:{multiple:!1},releasetype:{multiple:!0},releasecountry:{multiple:!1},script:{multiple:!1},language:{multiple:!1},copyright:{multiple:!1},license:{multiple:!1},encodedby:{multiple:!1},encodersettings:{multiple:!1},gapless:{multiple:!1},barcode:{multiple:!1},isrc:{multiple:!0},asin:{multiple:!1},musicbrainz_recordingid:{multiple:!1},musicbrainz_trackid:{multiple:!1},musicbrainz_albumid:{multiple:!1},musicbrainz_artistid:{multiple:!0},musicbrainz_albumartistid:{multiple:!0},musicbrainz_releasegroupid:{multiple:!1},musicbrainz_workid:{multiple:!1},musicbrainz_trmid:{multiple:!1},musicbrainz_discid:{multiple:!1},acoustid_id:{multiple:!1},acoustid_fingerprint:{multiple:!1},musicip_puid:{multiple:!1},musicip_fingerprint:{multiple:!1},website:{multiple:!1},"performer:instrument":{multiple:!0,unique:!0},averageLevel:{multiple:!1},peakLevel:{multiple:!1},notes:{multiple:!0,unique:!1},key:{multiple:!1},originalalbum:{multiple:!1},originalartist:{multiple:!1},discogs_artist_id:{multiple:!0,unique:!0},discogs_release_id:{multiple:!1},discogs_label_id:{multiple:!1},discogs_master_release_id:{multiple:!1},discogs_votes:{multiple:!1},discogs_rating:{multiple:!1},replaygain_track_peak:{multiple:!1},replaygain_track_gain:{multiple:!1},description:{multiple:!0}},exports.isSingleton=i,exports.isUnique=l; -},{}],"YchG":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class e{static decode(r){let t="";for(const n in r)r.hasOwnProperty(n)&&(t+=e.codePointToString(e.singleByteDecoder(r[n])));return t}static inRange(e,r,t){return r<=e&&e<=t}static codePointToString(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}static singleByteDecoder(r){if(e.inRange(r,0,127))return r;const t=e.windows1252[r-128];if(null===t)throw Error("invaliding encoding");return t}}e.windows1252=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],exports.Windows1292Decoder=e; -},{}],"7/th":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t=require("assert"),e=require("./Windows1292Decoder");class r{static findZero(t,e,r,n){let i=e;if("utf16"===n){for(;0!==t[i]||0!==t[i+1];){if(i>=r)return r;i+=2}return i}for(;0!==t[i];){if(i>=r)return r;i++}return i}static trimRightNull(t){const e=t.indexOf("\0");return-1===e?t:t.substr(0,e)}static swapBytes(e){const r=e.length;t.ok(0==(1&r),"Buffer length must be even");for(let t=0;t>s;const o=8-s,c=i-o;return c<0?u>>=8-s-i:c>0&&(u<<=c,u|=r.getBitAllignedNumber(t,e,n+o,c)),u}static isBitSet(t,e,n){return 1===r.getBitAllignedNumber(t,e,n,1)}static a2hex(t){const e=[];for(let r=0,n=t.length;r0!=(t[e]&1<{if(t+n>e.length){if("function"!=typeof r)throw new Error("Buffer out of space and no valid flush() function found");return r(e,t),0}return t};exports.UINT8={len:1,get:(e,t)=>e.readUInt8(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=0&&o<=255),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeUInt8(o,u),u-r+this.len}},exports.UINT16_LE={len:2,get:(e,t)=>e.readUInt16LE(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=0&&o<=65535),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeUInt16LE(o,u),u-r+this.len}},exports.UINT16_BE={len:2,get:(e,t)=>e.readUInt16BE(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=0&&o<=65535),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeUInt16BE(o,u),u-r+this.len}},exports.UINT24_LE={len:3,get:(e,t)=>e.readUIntLE(t,3),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=0&&o<=16777215),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeUIntLE(o,u,3),u-r+this.len}},exports.UINT24_BE={len:3,get:(e,t)=>e.readUIntBE(t,3),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=0&&o<=16777215),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeUIntBE(o,u,3),u-r+this.len}},exports.UINT32_LE={len:4,get:(e,t)=>e.readUInt32LE(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=0&&o<=4294967295),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeUInt32LE(o,u),u-r+this.len}},exports.UINT32_BE={len:4,get:(e,t)=>e.readUInt32BE(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=0&&o<=4294967295),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeUInt32BE(o,u),u-r+this.len}},exports.INT8={len:1,get:(e,t)=>e.readInt8(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=-128&&o<=127),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeInt8(o,u),u-r+this.len}},exports.INT16_BE={len:2,get:(e,t)=>e.readInt16BE(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=-32768&&o<=32767),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeInt16BE(o,u),u-r+this.len}},exports.INT16_LE={len:2,get:(e,t)=>e.readInt16LE(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=-32768&&o<=32767),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeInt16LE(o,u),u-r+this.len}},exports.INT24_LE={len:3,get:(e,t)=>e.readIntLE(t,3),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=-8388608&&o<=8388607),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeIntLE(o,u,3),u-r+this.len}},exports.INT24_BE={len:3,get:(e,t)=>e.readIntBE(t,3),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=-8388608&&o<=8388607),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeIntBE(o,u,3),u-r+this.len}},exports.INT32_BE={len:4,get:(e,t)=>e.readInt32BE(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=-2147483648&&o<=2147483647),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeInt32BE(o,u),u-r+this.len}},exports.INT32_LE={len:4,get:(e,t)=>e.readInt32LE(t),put(n,r,o,l){e.equal(typeof r,"number"),e.equal(typeof o,"number"),e.ok(o>=-2147483648&&o<=2147483647),e.ok(r>=0),e.ok(this.len<=n.length);const u=t(n,r,this.len,l);return n.writeInt32LE(o,u),u-r+this.len}},exports.UINT64_LE={len:8,get(e,t){return u(e,t,this.len)},put(e,t,n){return s(e,n,t,this.len)}},exports.INT64_LE={len:8,get(e,t){return i(e,t,this.len)},put(e,t,n){return p(e,n,t,this.len)}},exports.UINT64_BE={len:8,get(e,t){return h(e,t,this.len)},put(e,t,n){return a(e,n,t,this.len)}},exports.INT64_BE={len:8,get(e,t){return f(e,t,this.len)},put(e,t,n){return c(e,n,t,this.len)}};class n{constructor(e){this.len=e}get(e,t){return null}}exports.IgnoreType=n;class r{constructor(e){this.len=e}get(e,t){return e.slice(t,t+this.len)}}exports.BufferType=r;class o{constructor(e,t){this.len=e,this.encoding=t}get(e,t){return e.toString(this.encoding,t,t+this.len)}}exports.StringType=o;class l{constructor(e){this.len=e}static decode(e,t,n){let r="";for(let o=t;o>10),56320+(1023&e)))}static singleByteDecoder(e){if(l.inRange(e,0,127))return e;const t=l.windows1252[e-128];if(null===t)throw Error("invaliding encoding");return t}get(e,t=0){return l.decode(e,t,t+this.len)}}function u(e,t,n){n>>>=0;let r=e[t>>>=0],o=1,l=0;for(;++l>>=0;let o=1,l=0;for(e[n>>>=0]=255&t;++l>>=0;let r=e[t>>>=0],o=1,l=0;for(;++l=(o*=128)&&(r-=Math.pow(2,8*n)),r}function p(e,t,n,r){t=+t;let o=0,l=1,u=0;for(e[n>>>=0]=255&t;++o>0)-u&255;return n+r}function h(e,t,n){n>>>=0;let r=e[(t>>>=0)+--n],o=1;for(;n>0&&(o*=256);)r+=e[t+--n]*o;return r}function a(e,t,n,r){t=+t;let o=(r>>>=0)-1,l=1;for(e[(n>>>=0)+o]=255&t;--o>=0&&(l*=256);)e[n+o]=t/l&255;return n+r}function f(e,t,n){let r=n>>>=0,o=1,l=e[(t>>>=0)+--r];for(;r>0&&(o*=256);)l+=e[t+--r]*o;return l>=(o*=128)&&(l-=Math.pow(2,8*n)),l}function c(e,t,n,r){t=+t;let o=r-1,l=1,u=0;for(e[(n>>>=0)+o]=255&t;--o>=0&&(l*=256);)t<0&&0===u&&0!==e[n+o+1]&&(u=1),e[n+o]=(t/l>>0)-u&255;return n+r}l.windows1252=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],exports.AnsiStringType=l,exports.writeIntLE=p,exports.readUIntBE=h,exports.writeUIntBE=a,exports.readIntBE=f,exports.writeIntBE=c; -},{"assert":"g2FE"}],"7c1v":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class t{constructor(){this.warnings=[]}init(t,s,e){return this.metadata=t,this.tokenizer=s,this.options=e,this}}exports.BasicParser=t; -},{}],"ln6R":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,o,a){return new(o||(o=Promise))(function(n,r){function i(e){try{c(a.next(e))}catch(t){r(t)}}function s(e){try{c(a.throw(e))}catch(t){r(t)}}function c(e){e.done?n(e.value):new o(function(t){t(e.value)}).then(i,s)}c((a=a.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("debug"),o=require("../common/Util"),a=require("token-types"),n=require("../common/BasicParser"),r=t("music-metadata:parser:ID3v1");exports.Genres=["Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","Alt. Rock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta Rap","Top 40","Christian Rap","Pop/Funk","Jungle","Native American","Cabaret","New Wave","Psychedelic","Rave","Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock","Folk","Folk/Rock","National Folk","Swing","Fast-Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle","Duet","Punk Rock","Drum Solo","A Cappella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House","Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover","Contemporary Christian","Christian Rock","Merengue","Salsa","Thrash Metal","Anime","JPop","Synthpop","Abstract","Art Rock","Baroque","Bhangra","Big Beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math Rock","New Romantic","Nu-Breakz","Post-Punk","Post-Rock","Psytrance","Shoegaze","Space Rock","Trop Rock","World Music","Neoclassical","Audiobook","Audio Theatre","Neue Deutsche Welle","Podcast","Indie Rock","G-Funk","Dubstep","Garage Rock","Psybient"];const i={len:128,get:(e,t)=>{const o=new s(3).get(e,t);return"TAG"===o?{header:o,title:new s(30).get(e,t+3),artist:new s(30).get(e,t+33),album:new s(30).get(e,t+63),year:new s(4).get(e,t+93),comment:new s(28).get(e,t+97),zeroByte:a.UINT8.get(e,t+127),track:a.UINT8.get(e,t+126),genre:a.UINT8.get(e,t+127)}:null}};class s extends a.StringType{constructor(e){super(e,"binary")}get(e,t){let a=super.get(e,t);return(a=(a=o.default.trimRightNull(a)).trim()).length>0?a:void 0}}class c extends n.BasicParser{static getGenre(e){if(ee)return void r("Already consumed the last 128 bytes");const t=yield this.tokenizer.readToken(i,e);if(t){r("ID3v1 header found at: pos=%s",this.tokenizer.fileSize-i.len);for(const o of["title","artist","album","comment","track","year"])t[o]&&""!==t[o]&&this.addTag(o,t[o]);const e=c.getGenre(t.genre);e&&this.addTag("genre",e)}else r("ID3v1 header not found at: pos=%s",this.tokenizer.fileSize-i.len)})}addTag(e,t){this.metadata.addTag("ID3v1",e,t)}}exports.ID3v1Parser=c; -},{"debug":"j+D9","../common/Util":"7/th","token-types":"1rOY","../common/BasicParser":"7c1v"}],"kygT":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t=require("../id3v1/ID3v1Parser");class e{constructor(t,e){this.tagTypes=t,this.tagMap=e}static parseGenre(e){const r=e.trim().split(/\((.*?)\)/g).filter(t=>""!==t),s=[];for(let a of r)/^\d+$/.test(a)&&!isNaN(parseInt(a,10))&&(a=t.Genres[a]),s.push(a);return s.filter(t=>void 0!==t).join("/")}static fixPictureMimeType(t){switch(t=t.toLocaleLowerCase()){case"image/jpg":return"image/jpeg"}return t}static toIntOrNull(t){const e=parseInt(t,10);return isNaN(e)?null:e}static normalizeTrack(t){const e=t.toString().split("/");return{no:parseInt(e[0],10)||null,of:parseInt(e[1],10)||null}}mapGenericTag(t){t={id:t.id,value:t.value},this.postMap(t);const e=this.getCommonName(t.id);return e?{id:e,value:t.value}:null}getCommonName(t){return this.tagMap[t]}postMap(t){}}e.maxRatingScore=1,exports.CommonTagMapper=e; -},{"../id3v1/ID3v1Parser":"ln6R"}],"fdYL":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../common/GenericTagMapper"),r={title:"title",artist:"artist",album:"album",year:"year",comment:"comment",track:"track",genre:"genre"};class t extends e.CommonTagMapper{constructor(){super(["ID3v1"],r)}}exports.ID3v1TagMapper=t; -},{"../common/GenericTagMapper":"kygT"}],"pl6Q":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../common/GenericTagMapper"),i=require("../common/Util"),r={TIT2:"title",TPE1:"artist","TXXX:Artists":"artists",TPE2:"albumartist",TALB:"album",TDRV:"date",TORY:"originalyear",TPOS:"disk",TCON:"genre",APIC:"picture",TCOM:"composer","USLT:description":"lyrics",TSOA:"albumsort",TSOT:"titlesort",TOAL:"originalalbum",TSOP:"artistsort",TSO2:"albumartistsort",TSOC:"composersort",TEXT:"lyricist","TXXX:Writer":"writer",TPE3:"conductor",TPE4:"remixer","IPLS:arranger":"arranger","IPLS:engineer":"engineer","IPLS:producer":"producer","IPLS:DJ-mix":"djmixer","IPLS:mix":"mixer",TPUB:"label",TIT1:"grouping",TIT3:"subtitle",TRCK:"track",TCMP:"compilation",POPM:"rating",TBPM:"bpm",TMED:"media","TXXX:CATALOGNUMBER":"catalognumber","TXXX:MusicBrainz Album Status":"releasestatus","TXXX:MusicBrainz Album Type":"releasetype","TXXX:MusicBrainz Album Release Country":"releasecountry","TXXX:RELEASECOUNTRY":"releasecountry","TXXX:SCRIPT":"script",TLAN:"language",TCOP:"copyright",WCOP:"license",TENC:"encodedby",TSSE:"encodersettings","TXXX:BARCODE":"barcode",TSRC:"isrc","TXXX:ASIN":"asin","TXXX:originalyear":"originalyear","UFID:http://musicbrainz.org":"musicbrainz_recordingid","TXXX:MusicBrainz Release Track Id":"musicbrainz_trackid","TXXX:MusicBrainz Album Id":"musicbrainz_albumid","TXXX:MusicBrainz Artist Id":"musicbrainz_artistid","TXXX:MusicBrainz Album Artist Id":"musicbrainz_albumartistid","TXXX:MusicBrainz Release Group Id":"musicbrainz_releasegroupid","TXXX:MusicBrainz Work Id":"musicbrainz_workid","TXXX:MusicBrainz TRM Id":"musicbrainz_trmid","TXXX:MusicBrainz Disc Id":"musicbrainz_discid","TXXX:ACOUSTID_ID":"acoustid_id","TXXX:Acoustid Id":"acoustid_id","TXXX:Acoustid Fingerprint":"acoustid_fingerprint","TXXX:MusicIP PUID":"musicip_puid","TXXX:MusicMagic Fingerprint":"musicip_fingerprint",WOAR:"website",TDRC:"date",TYER:"year",TDOR:"originaldate","TIPL:arranger":"arranger","TIPL:engineer":"engineer","TIPL:producer":"producer","TIPL:DJ-mix":"djmixer","TIPL:mix":"mixer",TMOO:"mood",SYLT:"lyrics",TSST:"discsubtitle",TKEY:"key",COMM:"comment",TOPE:"originalartist","PRIV:AverageLevel":"averageLevel","PRIV:PeakLevel":"peakLevel","TXXX:DISCOGS_ARTIST_ID":"discogs_artist_id","TXXX:DISCOGS_ARTISTS":"artists","TXXX:DISCOGS_ARTIST_NAME":"artists","TXXX:DISCOGS_ALBUM_ARTISTS":"albumartist","TXXX:DISCOGS_CATALOG":"catalognumber","TXXX:DISCOGS_COUNTRY":"releasecountry","TXXX:DISCOGS_DATE":"originaldate","TXXX:DISCOGS_LABEL":"label","TXXX:DISCOGS_LABEL_ID":"discogs_label_id","TXXX:DISCOGS_MASTER_RELEASE_ID":"discogs_master_release_id","TXXX:DISCOGS_RATING":"discogs_rating","TXXX:DISCOGS_RELEASED":"date","TXXX:DISCOGS_RELEASE_ID":"discogs_release_id","TXXX:DISCOGS_VOTES":"discogs_votes","TXXX:CATALOGID":"catalognumber","TXXX:STYLE":"genre","TXXX:replaygain_track_peak":"replaygain_track_peak","TXXX:replaygain_track_gain":"replaygain_track_gain"};class a extends e.CommonTagMapper{static toRating(i){return{source:i.email,rating:i.rating>0?(i.rating-1)/254*e.CommonTagMapper.maxRatingScore:void 0}}constructor(){super(["ID3v2.3","ID3v2.4"],r)}postMap(e){switch(e.id){case"UFID":"http://musicbrainz.org"===e.value.owner_identifier&&(e.id+=":"+e.value.owner_identifier,e.value=i.default.decodeString(e.value.identifier,"iso-8859-1"));break;case"PRIV":switch(e.value.owner_identifier){case"AverageLevel":case"PeakValue":e.id+=":"+e.value.owner_identifier,e.value=4===e.value.data.length?e.value.data.readUInt32LE():null}break;case"COMM":e.value=e.value?e.value.text:null;break;case"POPM":e.value=a.toRating(e.value)}}}exports.ID3v24TagMapper=a; -},{"../common/GenericTagMapper":"kygT","../common/Util":"7/th"}],"x9MA":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const i=require("../common/GenericTagMapper"),r={Title:"title",Author:"artist","WM/AlbumArtist":"albumartist","WM/AlbumTitle":"album","WM/Year":"date","WM/OriginalReleaseTime":"originaldate","WM/OriginalReleaseYear":"originalyear",Description:"comment","WM/TrackNumber":"track","WM/PartOfSet":"disk","WM/Genre":"genre","WM/Composer":"composer","WM/Lyrics":"lyrics","WM/AlbumSortOrder":"albumsort","WM/TitleSortOrder":"titlesort","WM/ArtistSortOrder":"artistsort","WM/AlbumArtistSortOrder":"albumartistsort","WM/ComposerSortOrder":"composersort","WM/Writer":"lyricist","WM/Conductor":"conductor","WM/ModifiedBy":"remixer","WM/Engineer":"engineer","WM/Producer":"producer","WM/DJMixer":"djmixer","WM/Mixer":"mixer","WM/Publisher":"label","WM/ContentGroupDescription":"grouping","WM/SubTitle":"subtitle","WM/SetSubTitle":"discsubtitle","WM/IsCompilation":"compilation","WM/SharedUserRating":"rating","WM/BeatsPerMinute":"bpm","WM/Mood":"mood","WM/Media":"media","WM/CatalogNo":"catalognumber","MusicBrainz/Album Status":"releasestatus","MusicBrainz/Album Type":"releasetype","MusicBrainz/Album Release Country":"releasecountry","WM/Script":"script","WM/Language":"language",Copyright:"copyright",LICENSE:"license","WM/EncodedBy":"encodedby","WM/EncodingSettings":"encodersettings","WM/Barcode":"barcode","WM/ISRC":"isrc","MusicBrainz/Track Id":"musicbrainz_recordingid","MusicBrainz/Release Track Id":"musicbrainz_trackid","MusicBrainz/Album Id":"musicbrainz_albumid","MusicBrainz/Artist Id":"musicbrainz_artistid","MusicBrainz/Album Artist Id":"musicbrainz_albumartistid","MusicBrainz/Release Group Id":"musicbrainz_releasegroupid","MusicBrainz/Work Id":"musicbrainz_workid","MusicBrainz/TRM Id":"musicbrainz_trmid","MusicBrainz/Disc Id":"musicbrainz_discid","Acoustid/Id":"acoustid_id","Acoustid/Fingerprint":"acoustid_fingerprint","MusicIP/PUID":"musicip_puid","WM/ARTISTS":"artists","WM/InitialKey":"key",ASIN:"asin","WM/Work":"work","WM/AuthorURL":"website","WM/Picture":"picture"};class e extends i.CommonTagMapper{static toRating(i){return{rating:parseFloat(i+1)/5}}constructor(){super(["asf"],r)}postMap(i){switch(i.id){case"WM/SharedUserRating":const r=i.id.split(":");i.value=e.toRating(i.value),i.id=r[0]}}}exports.AsfTagMapper=e; -},{"../common/GenericTagMapper":"kygT"}],"avvF":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../common/GenericTagMapper");exports.id3v22TagMap={TT2:"title",TP1:"artist",TP2:"albumartist",TAL:"album",TYE:"year",COM:"comment",TRK:"track",TPA:"disk",TCO:"genre",PIC:"picture",TCM:"composer",TOR:"originaldate",TOT:"work",TXT:"lyricist",TP3:"conductor",TPB:"label",TT1:"grouping",TT3:"subtitle",TLA:"language",TCR:"copyright",WCP:"license",TEN:"encodedby",TSS:"encodersettings",WAR:"website","COM:iTunPGAP":"gapless"};class T extends e.CommonTagMapper{constructor(){super(["ID3v2.2"],exports.id3v22TagMap)}}exports.ID3v22TagMapper=T; -},{"../common/GenericTagMapper":"kygT"}],"JzTY":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const r=require("../common/GenericTagMapper"),i={Title:"title",Artist:"artist",Artists:"artists","Album Artist":"albumartist",Album:"album",Year:"date",Originalyear:"originalyear",Originaldate:"originaldate",Comment:"comment",Track:"track",Disc:"disk",DISCNUMBER:"disk",Genre:"genre","Cover Art (Front)":"picture","Cover Art (Back)":"picture",Composer:"composer",Lyrics:"lyrics",ALBUMSORT:"albumsort",TITLESORT:"titlesort",WORK:"work",ARTISTSORT:"artistsort",ALBUMARTISTSORT:"albumartistsort",COMPOSERSORT:"composersort",Lyricist:"lyricist",Writer:"writer",Conductor:"conductor",MixArtist:"remixer",Arranger:"arranger",Engineer:"engineer",Producer:"producer",DJMixer:"djmixer",Mixer:"mixer",Label:"label",Grouping:"grouping",Subtitle:"subtitle",DiscSubtitle:"discsubtitle",Compilation:"compilation",BPM:"bpm",Mood:"mood",Media:"media",CatalogNumber:"catalognumber",MUSICBRAINZ_ALBUMSTATUS:"releasestatus",MUSICBRAINZ_ALBUMTYPE:"releasetype",RELEASECOUNTRY:"releasecountry",Script:"script",Language:"language",Copyright:"copyright",LICENSE:"license",EncodedBy:"encodedby",EncoderSettings:"encodersettings",Barcode:"barcode",ISRC:"isrc",ASIN:"asin",musicbrainz_trackid:"musicbrainz_recordingid",musicbrainz_releasetrackid:"musicbrainz_trackid",MUSICBRAINZ_ALBUMID:"musicbrainz_albumid",MUSICBRAINZ_ARTISTID:"musicbrainz_artistid",MUSICBRAINZ_ALBUMARTISTID:"musicbrainz_albumartistid",MUSICBRAINZ_RELEASEGROUPID:"musicbrainz_releasegroupid",MUSICBRAINZ_WORKID:"musicbrainz_workid",MUSICBRAINZ_TRMID:"musicbrainz_trmid",MUSICBRAINZ_DISCID:"musicbrainz_discid",Acoustid_Id:"acoustid_id",ACOUSTID_FINGERPRINT:"acoustid_fingerprint",MUSICIP_PUID:"musicip_puid",Weblink:"website"};class e extends r.CommonTagMapper{constructor(){const r={};for(const e in i)r[e.toUpperCase()]=i[e];super(["APEv2"],r)}getCommonName(r){return this.tagMap[r.toUpperCase()]}}exports.APEv2TagMapper=e; -},{"../common/GenericTagMapper":"kygT"}],"sAeZ":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../common/GenericTagMapper"),i={"©nam":"title","©ART":"artist",aART:"albumartist","----:com.apple.iTunes:Band":"albumartist","©alb":"album","©day":"date","©cmt":"comment",trkn:"track",disk:"disk","©gen":"genre",covr:"picture","©wrt":"composer","©lyr":"lyrics",soal:"albumsort",sonm:"titlesort",soar:"artistsort",soaa:"albumartistsort",soco:"composersort","----:com.apple.iTunes:LYRICIST":"lyricist","----:com.apple.iTunes:CONDUCTOR":"conductor","----:com.apple.iTunes:REMIXER":"remixer","----:com.apple.iTunes:ENGINEER":"engineer","----:com.apple.iTunes:PRODUCER":"producer","----:com.apple.iTunes:DJMIXER":"djmixer","----:com.apple.iTunes:MIXER":"mixer","----:com.apple.iTunes:LABEL":"label","©grp":"grouping","----:com.apple.iTunes:SUBTITLE":"subtitle","----:com.apple.iTunes:DISCSUBTITLE":"discsubtitle",cpil:"compilation",tmpo:"bpm","----:com.apple.iTunes:MOOD":"mood","----:com.apple.iTunes:MEDIA":"media","----:com.apple.iTunes:CATALOGNUMBER":"catalognumber",tvsh:"tvShow",tvsn:"tvSeason",tves:"tvEpisode",sosn:"tvShowSort",tven:"tvEpisodeId",tvnn:"tvNetwork",pcst:"podcast",purl:"podcasturl","----:com.apple.iTunes:MusicBrainz Album Status":"releasestatus","----:com.apple.iTunes:MusicBrainz Album Type":"releasetype","----:com.apple.iTunes:MusicBrainz Album Release Country":"releasecountry","----:com.apple.iTunes:SCRIPT":"script","----:com.apple.iTunes:LANGUAGE":"language",cprt:"copyright","----:com.apple.iTunes:LICENSE":"license","©too":"encodedby",pgap:"gapless","----:com.apple.iTunes:BARCODE":"barcode","----:com.apple.iTunes:ISRC":"isrc","----:com.apple.iTunes:ASIN":"asin","----:com.apple.iTunes:NOTES":"comment","----:com.apple.iTunes:MusicBrainz Track Id":"musicbrainz_recordingid","----:com.apple.iTunes:MusicBrainz Release Track Id":"musicbrainz_trackid","----:com.apple.iTunes:MusicBrainz Album Id":"musicbrainz_albumid","----:com.apple.iTunes:MusicBrainz Artist Id":"musicbrainz_artistid","----:com.apple.iTunes:MusicBrainz Album Artist Id":"musicbrainz_albumartistid","----:com.apple.iTunes:MusicBrainz Release Group Id":"musicbrainz_releasegroupid","----:com.apple.iTunes:MusicBrainz Work Id":"musicbrainz_workid","----:com.apple.iTunes:MusicBrainz TRM Id":"musicbrainz_trmid","----:com.apple.iTunes:MusicBrainz Disc Id":"musicbrainz_discid","----:com.apple.iTunes:Acoustid Id":"acoustid_id","----:com.apple.iTunes:Acoustid Fingerprint":"acoustid_fingerprint","----:com.apple.iTunes:MusicIP PUID":"musicip_puid","----:com.apple.iTunes:fingerprint":"musicip_fingerprint",gnre:"genre","----:com.apple.iTunes:ALBUMARTISTSORT":"albumartistsort","----:com.apple.iTunes:ARTISTS":"artists","----:com.apple.iTunes:ORIGINALDATE":"originaldate","----:com.apple.iTunes:ORIGINALYEAR":"originalyear",desc:"description",ldes:"description"};exports.tagType="iTunes";class s extends e.CommonTagMapper{constructor(){super([exports.tagType],i)}}exports.MP4TagMapper=s; -},{"../common/GenericTagMapper":"kygT"}],"ww0I":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const i=require("../../common/GenericTagMapper"),r={TITLE:"title",ARTIST:"artist",ARTISTS:"artists",ALBUMARTIST:"albumartist",ALBUM:"album",DATE:"date",ORIGINALDATE:"originaldate",ORIGINALYEAR:"originalyear",COMMENT:"comment",TRACKNUMBER:"track",DISCNUMBER:"disk",GENRE:"genre",METADATA_BLOCK_PICTURE:"picture",COMPOSER:"composer",LYRICS:"lyrics",ALBUMSORT:"albumsort",TITLESORT:"titlesort",WORK:"work",ARTISTSORT:"artistsort",ALBUMARTISTSORT:"albumartistsort",COMPOSERSORT:"composersort",LYRICIST:"lyricist",WRITER:"writer",CONDUCTOR:"conductor",REMIXER:"remixer",ARRANGER:"arranger",ENGINEER:"engineer",PRODUCER:"producer",DJMIXER:"djmixer",MIXER:"mixer",LABEL:"label",GROUPING:"grouping",SUBTITLE:"subtitle",DISCSUBTITLE:"discsubtitle",TRACKTOTAL:"totaltracks",DISCTOTAL:"totaldiscs",COMPILATION:"compilation",RATING:"rating",BPM:"bpm",MOOD:"mood",MEDIA:"media",CATALOGNUMBER:"catalognumber",RELEASESTATUS:"releasestatus",RELEASETYPE:"releasetype",RELEASECOUNTRY:"releasecountry",SCRIPT:"script",LANGUAGE:"language",COPYRIGHT:"copyright",LICENSE:"license",ENCODEDBY:"encodedby",ENCODERSETTINGS:"encodersettings",BARCODE:"barcode",ISRC:"isrc",ASIN:"asin",MUSICBRAINZ_TRACKID:"musicbrainz_recordingid",MUSICBRAINZ_RELEASETRACKID:"musicbrainz_trackid",MUSICBRAINZ_ALBUMID:"musicbrainz_albumid",MUSICBRAINZ_ARTISTID:"musicbrainz_artistid",MUSICBRAINZ_ALBUMARTISTID:"musicbrainz_albumartistid",MUSICBRAINZ_RELEASEGROUPID:"musicbrainz_releasegroupid",MUSICBRAINZ_WORKID:"musicbrainz_workid",MUSICBRAINZ_TRMID:"musicbrainz_trmid",MUSICBRAINZ_DISCID:"musicbrainz_discid",ACOUSTID_ID:"acoustid_id",ACOUSTID_ID_FINGERPRINT:"acoustid_fingerprint",MUSICIP_PUID:"musicip_puid",WEBSITE:"website",NOTES:"notes",TOTALTRACKS:"totaltracks",TOTALDISCS:"totaldiscs",DISCOGS_ARTIST_ID:"discogs_artist_id",DISCOGS_ARTISTS:"artists",DISCOGS_ARTIST_NAME:"artists",DISCOGS_ALBUM_ARTISTS:"albumartist",DISCOGS_CATALOG:"catalognumber",DISCOGS_COUNTRY:"releasecountry",DISCOGS_DATE:"originaldate",DISCOGS_LABEL:"label",DISCOGS_LABEL_ID:"discogs_label_id",DISCOGS_MASTER_RELEASE_ID:"discogs_master_release_id",DISCOGS_RATING:"discogs_rating",DISCOGS_RELEASED:"date",DISCOGS_RELEASE_ID:"discogs_release_id",DISCOGS_VOTES:"discogs_votes",CATALOGID:"catalognumber",STYLE:"genre",REPLAYGAIN_TRACK_GAIN:"replaygain_track_gain",REPLAYGAIN_TRACK_PEAK:"replaygain_track_peak"};class e extends i.CommonTagMapper{static toRating(r,e){return{source:r?r.toLowerCase():r,rating:parseFloat(e)*i.CommonTagMapper.maxRatingScore}}constructor(){super(["vorbis"],r)}postMap(i){if(0===i.id.indexOf("RATING:")){const r=i.id.split(":");i.value=e.toRating(r[1],i.value),i.id=r[0]}}}exports.VorbisTagMapper=e; -},{"../../common/GenericTagMapper":"kygT"}],"1qtS":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../common/GenericTagMapper");exports.riffInfoTagMap={IART:"artist",ICRD:"date",INAM:"title",TITL:"title",IPRD:"album",ITRK:"track",COMM:"comment",ICMT:"comment",ICNT:"releasecountry",GNRE:"genre",IWRI:"writer",RATE:"rating",YEAR:"year",ISFT:"encodedby",CODE:"encodedby",TURL:"website",IGNR:"genre",IENG:"engineer",ITCH:"technician",IMED:"media",IRPD:"album"};class r extends e.CommonTagMapper{constructor(){super(["exif"],exports.riffInfoTagMap)}}exports.RiffInfoTagMapper=r; -},{"../common/GenericTagMapper":"kygT"}],"EosV":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../id3v1/ID3v1TagMap"),r=require("../id3v2/ID3v24TagMapper"),a=require("../asf/AsfTagMapper"),p=require("../id3v2/ID3v22TagMapper"),g=require("../apev2/APEv2TagMapper"),i=require("../mp4/MP4TagMapper"),s=require("../ogg/vorbis/VorbisTagMapper"),M=require("../riff/RiffInfoTagMap");class t{constructor(){this.tagMappers={},[new e.ID3v1TagMapper,new p.ID3v22TagMapper,new r.ID3v24TagMapper,new i.MP4TagMapper,new i.MP4TagMapper,new s.VorbisTagMapper,new g.APEv2TagMapper,new a.AsfTagMapper,new M.RiffInfoTagMapper].forEach(e=>{this.registerTagMapper(e)})}mapTag(e,r){if(this.tagMappers[e])return this.tagMappers[e].mapGenericTag(r);throw new Error("No generic tag mapper defined for tag-format: "+e)}registerTagMapper(e){for(const r of e.tagTypes)this.tagMappers[r]=e}}exports.CombinedTagMapper=t; -},{"../id3v1/ID3v1TagMap":"fdYL","../id3v2/ID3v24TagMapper":"pl6Q","../asf/AsfTagMapper":"x9MA","../id3v2/ID3v22TagMapper":"avvF","../apev2/APEv2TagMapper":"JzTY","../mp4/MP4TagMapper":"sAeZ","../ogg/vorbis/VorbisTagMapper":"ww0I","../riff/RiffInfoTagMap":"1qtS"}],"/KoD":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const i=require("debug"),t=require("./GenericTagTypes"),e=require("./CombinedTagMapper"),s=require("./GenericTagMapper"),a=i("music-metadata:collector"),o=["APEv2","vorbis","ID3v2.4","ID3v2.3","ID3v2.2","exif","asf","iTunes","ID3v1"];class r{constructor(i){this.opts=i,this.format={tagTypes:[]},this.native={},this.common={track:{no:null,of:null},disk:{no:null,of:null}},this.commonOrigin={},this.originPriority={},this.tagMapper=new e.CombinedTagMapper;let t=1;for(const e of o)this.originPriority[e]=t++;this.originPriority.artificial=500,this.originPriority.id3v1=600}hasAny(){for(const i in this.native)return!0;return!1}setFormat(i,t){a(`format: ${i} = ${t}`),this.format[i]=t,this.opts.observer&&this.opts.observer({metadata:this,tag:{type:"format",id:i,value:t}})}addTag(i,t,e){a(`tag ${i}.${t} = ${e}`),this.native[i]||(this.format.tagTypes.push(i),this.native[i]=[]),this.native[i].push({id:t,value:e}),this.toCommon(i,t,e)}getNativeMetadata(){return{format:this.format,native:this.native}}postMap(i,t){switch(t.id){case"artist":if(this.commonOrigin.artist===this.originPriority[i])return this.postMap("artificial",{id:"artists",value:t.value});this.common.artists||this.setGenericTag("artificial",{id:"artists",value:t.value});break;case"artists":if(!(this.common.artist&&this.commonOrigin.artist!==this.originPriority.artificial||this.common.artists&&-1!==this.common.artists.indexOf(t.value))){const i={id:"artist",value:n((this.common.artists||[]).concat([t.value]))};this.setGenericTag("artificial",i)}break;case"genre":t.value=s.CommonTagMapper.parseGenre(t.value);break;case"picture":t.value.format=s.CommonTagMapper.fixPictureMimeType(t.value.format);break;case"totaltracks":return void(this.common.track.of=s.CommonTagMapper.toIntOrNull(t.value));case"totaldiscs":return void(this.common.disk.of=s.CommonTagMapper.toIntOrNull(t.value));case"track":case"disk":const e=this.common[t.id].of;return this.common[t.id]=s.CommonTagMapper.normalizeTrack(t.value),void(this.common[t.id].of=null!=e?e:this.common[t.id].of);case"year":case"originalyear":t.value=parseInt(t.value,10);break;case"date":const a=parseInt(t.value.substr(0,4),10);a&&!isNaN(a)&&(this.common.year=a);break;case"discogs_label_id":case"discogs_release_id":case"discogs_master_release_id":case"discogs_artist_id":case"discogs_votes":t.value="string"==typeof t.value?parseInt(t.value,10):t.value;break;case"replaygain_track_peak":t.value="string"==typeof t.value?parseFloat(t.value):t.value;break;case"gapless":t.value="1"===t.value}this.setGenericTag(i,t)}toCommonMetadata(){return{format:this.format,native:this.opts.native?this.native:void 0,common:this.common}}toCommon(i,t,e){const s={id:t,value:e},a=this.tagMapper.mapTag(i,s);a&&this.postMap(i,a)}setGenericTag(i,e){a(`common.${e.id} = ${e.value}`);const s=this.commonOrigin[e.id]||1e3,o=this.originPriority[i];if(t.isSingleton(e.id)){if(!(o<=s))return a(`Ignore native tag (singleton): ${i}.${e.id} = ${e.value}`);this.common[e.id]=e.value,this.commonOrigin[e.id]=o}else if(o===s)t.isUnique(e.id)&&-1!==this.common[e.id].indexOf(e.value)?a(`Ignore duplicate value: ${i}.${e.id} = ${e.value}`):this.common[e.id].push(e.value);else{if(!(o2?i.slice(0,i.length-1).join(", ")+" & "+i[i.length-1]:i.join(" & ")}exports.MetadataCollector=r,exports.joinArtists=n; -},{"debug":"j+D9","./GenericTagTypes":"yenf","./CombinedTagMapper":"EosV","./GenericTagMapper":"kygT"}],"wIHY":[function(require,module,exports) { -function e(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function t(e){return"function"==typeof e}function s(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function n(e){return void 0===e}module.exports=e,e.EventEmitter=e,e.prototype._events=void 0,e.prototype._maxListeners=void 0,e.defaultMaxListeners=10,e.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},e.prototype.emit=function(e){var s,r,o,h,v,l;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if((s=arguments[1])instanceof Error)throw s;var f=new Error('Uncaught, unspecified "error" event. ('+s+")");throw f.context=s,f}if(n(r=this._events[e]))return!1;if(t(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:h=Array.prototype.slice.call(arguments,1),r.apply(this,h)}else if(i(r))for(h=Array.prototype.slice.call(arguments,1),o=(l=r.slice()).length,v=0;v0&&this._events[s].length>o&&(this._events[s].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[s].length),"function"==typeof console.trace&&console.trace()),this},e.prototype.on=e.prototype.addListener,e.prototype.once=function(e,s){if(!t(s))throw TypeError("listener must be a function");var i=!1;function n(){this.removeListener(e,n),i||(i=!0,s.apply(this,arguments))}return n.listener=s,this.on(e,n),this},e.prototype.removeListener=function(e,s){var n,r,o,h;if(!t(s))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(o=(n=this._events[e]).length,r=-1,n===s||t(n.listener)&&n.listener===s)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,s);else if(i(n)){for(h=o;h-- >0;)if(n[h]===s||n[h].listener&&n[h].listener===s){r=h;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,s)}return this},e.prototype.removeAllListeners=function(e){var s,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(s in this._events)"removeListener"!==s&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events={},this}if(t(i=this._events[e]))this.removeListener(e,i);else if(i)for(;i.length;)this.removeListener(e,i[i.length-1]);return delete this._events[e],this},e.prototype.listeners=function(e){return this._events&&this._events[e]?t(this._events[e])?[this._events[e]]:this._events[e].slice():[]},e.prototype.listenerCount=function(e){if(this._events){var s=this._events[e];if(t(s))return 1;if(s)return s.length}return 0},e.listenerCount=function(e,t){return e.listenerCount(t)}; -},{}],"Ldkg":[function(require,module,exports) { -module.exports=require("events").EventEmitter; -},{"events":"wIHY"}],"sC8V":[function(require,module,exports) { - -},{}],"Pj7u":[function(require,module,exports) { - -"use strict";function t(t){for(var n=1;n0?this.tail.next=e:this.head=e,this.tail=e,++this.length},n.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},n.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},n.clear=function(){this.head=this.tail=null,this.length=0},n.join=function(t){if(0===this.length)return"";for(var e=this.head,n=""+e.data;e=e.next;)n+=t+e.data;return n},n.concat=function(t){if(0===this.length)return h.alloc(0);for(var e=h.allocUnsafe(t>>>0),n=this.head,i=0;n;)l(n.data,e,i),i+=n.data.length,n=n.next;return e},n.consume=function(t,e){var n;return ti.length?i.length:t;if(a===i.length?h+=i:h+=i.slice(0,t),0===(t-=a)){a===i.length?(++n,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(a));break}++n}return this.length-=n,h},n._getBuffer=function(t){var e=h.allocUnsafe(t),n=this.head,i=1;for(n.data.copy(e),t-=n.data.length;n=n.next;){var a=n.data,r=t>a.length?a.length:t;if(a.copy(e,e.length-t,0,r),0===(t-=r)){r===a.length?(++i,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=a.slice(r));break}++i}return this.length-=i,e},n[r]=function(e,n){return a(this,t({},n,{depth:0,customInspect:!1}))},e}(); -},{"buffer":"aMB2","util":"sC8V"}],"8xNh":[function(require,module,exports) { -var process = require("process"); -var t=require("process");function e(e,r){var d=this,l=this._readableState&&this._readableState.destroyed,h=this._writableState&&this._writableState.destroyed;return l||h?(r?r(e):!e||this._writableState&&this._writableState.errorEmitted||t.nextTick(s,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!r&&e?(t.nextTick(a,d,e),d._writableState&&(d._writableState.errorEmitted=!0)):r?(t.nextTick(i,d),r(e)):t.nextTick(i,d)}),this)}function a(t,e){s(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function s(t,e){t.emit("error",e)}module.exports={destroy:e,undestroy:r}; -},{"process":"g5I+"}],"jwuI":[function(require,module,exports) { -"use strict";function t(n){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(n)}function n(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n}var o={};function r(t,r,e){e||(e=Error);var c=function(t){function o(n,o,e){return t.call(this,function(t,n,o){return"string"==typeof r?r:r(t,n,o)}(n,o,e))||this}return n(o,t),o}(e);c.prototype.name=e.name,c.prototype.code=t,o[t]=c}function e(t,n){if(Array.isArray(t)){var o=t.length;return t=t.map(function(t){return String(t)}),o>2?"one of ".concat(n," ").concat(t.slice(0,o-1).join(", "),", or ")+t[o-1]:2===o?"one of ".concat(n," ").concat(t[0]," or ").concat(t[1]):"of ".concat(n," ").concat(t[0])}return"of ".concat(n," ").concat(String(t))}function c(t,n,o){return t.substr(!o||o<0?0:+o,n.length)===n}function u(t,n,o){return(void 0===o||o>t.length)&&(o=t.length),t.substring(o-n.length,o)===n}function a(t,n,o){return"number"!=typeof o&&(o=0),!(o+n.length>t.length)&&-1!==t.indexOf(n,o)}r("ERR_INVALID_OPT_VALUE",function(t,n){return'The value "'+n+'" is invalid for option "'+t+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(n,o,r){var E,i;if("string"==typeof o&&c(o,"not ")?(E="must not be",o=o.replace(/^not /,"")):E="must be",u(n," argument"))i="The ".concat(n," ").concat(E," ").concat(e(o,"type"));else{var _=a(n,".")?"property":"argument";i='The "'.concat(n,'" ').concat(_," ").concat(E," ").concat(e(o,"type"))}return i+=". Received type ".concat(t(r))},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),module.exports.codes=o; -},{}],"KKJ4":[function(require,module,exports) { -"use strict";var r=require("../../../errors").codes.ERR_INVALID_OPT_VALUE;function e(r,e,t){return null!=r.highWaterMark?r.highWaterMark:e?r[t]:null}function t(t,i,o,a){var n=e(i,a,o);if(null!=n){if(!isFinite(n)||Math.floor(n)!==n||n<0)throw new r(a?o:"highWaterMark",n);return Math.floor(n)}return t.objectMode?16:16384}module.exports={getHighWaterMark:t}; -},{"../../../errors":"jwuI"}],"GZzH":[function(require,module,exports) { -var process = require("process"); -var e=require("process"),n=new Set;function a(a){if(!n.has(a)){var i=a+" is an experimental feature. This feature could change at any time";n.add(a),e.emitWarning(i,"ExperimentalWarning")}}function i(){}module.exports.emitExperimentalWarning=e.emitWarning?a:i; -},{"process":"g5I+"}],"hQaz":[function(require,module,exports) { -var global = arguments[3]; -var r=arguments[3];function t(r,t){if(e("noDeprecation"))return r;var n=!1;return function(){if(!n){if(e("throwDeprecation"))throw new Error(t);e("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return r.apply(this,arguments)}}function e(t){try{if(!r.localStorage)return!1}catch(n){return!1}var e=r.localStorage[t];return null!=e&&"true"===String(e).toLowerCase()}module.exports=t; -},{}],"A/6d":[function(require,module,exports) { - -var global = arguments[3]; -var process = require("process"); -var e,t=arguments[3],i=require("process");function n(e,t,i){this.chunk=e,this.encoding=t,this.callback=i,this.next=null}function r(e){var t=this;this.next=null,this.entry=null,this.finish=function(){H(t,e)}}module.exports=m,m.WritableState=E;var o={deprecate:require("util-deprecate")},u=require("./internal/streams/stream"),f=require("buffer").Buffer,s=t.Uint8Array||function(){};function c(e){return f.from(e)}function a(e){return f.isBuffer(e)||e instanceof s}var d,l=require("./internal/streams/destroy"),h=require("./internal/streams/state"),p=h.getHighWaterMark,b=require("../errors").codes,w=b.ERR_INVALID_ARG_TYPE,g=b.ERR_METHOD_NOT_IMPLEMENTED,_=b.ERR_MULTIPLE_CALLBACK,y=b.ERR_STREAM_CANNOT_PIPE,R=b.ERR_STREAM_DESTROYED,k=b.ERR_STREAM_NULL_VALUES,S=b.ERR_STREAM_WRITE_AFTER_END,q=b.ERR_UNKNOWN_ENCODING;function v(){}function E(t,i,n){e=e||require("./_stream_duplex"),t=t||{},"boolean"!=typeof n&&(n=i instanceof e),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=p(this,t,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===t.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){A(i,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.bufferedRequestCount=0,this.corkedRequestsFree=new r(this)}function m(t){var i=this instanceof(e=e||require("./_stream_duplex"));if(!i&&!d.call(m,this))return new m(t);this._writableState=new E(t,this,i),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),u.call(this)}function x(e,t){var n=new S;e.emit("error",n),i.nextTick(t,n)}function M(e,t,n,r){var o;return null===n?o=new k:"string"==typeof n||t.objectMode||(o=new w("chunk",["string","Buffer"],n)),!o||(e.emit("error",o),i.nextTick(r,o),!1)}function T(e,t,i){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=f.from(t,i)),t}function P(e,t,i,n,r,o){if(!i){var u=T(t,n,r);n!==u&&(i=!0,r="buffer",n=u)}var f=t.objectMode?1:n.length;t.length+=f;var s=t.length-1))throw new q(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(m.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(m.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),m.prototype._write=function(e,t,i){i(new g("_write()"))},m.prototype._writev=null,m.prototype.end=function(e,t,i){var n=this._writableState;return"function"==typeof e?(i=e,e=null,t=null):"function"==typeof t&&(i=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||U(this,n,i),this},Object.defineProperty(m.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(m.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),m.prototype.destroy=l.destroy,m.prototype._undestroy=l.undestroy,m.prototype._destroy=function(e,t){t(e)}; -},{"util-deprecate":"hQaz","./internal/streams/stream":"Ldkg","buffer":"aMB2","./internal/streams/destroy":"8xNh","./internal/streams/state":"KKJ4","../errors":"jwuI","inherits":"Zvxt","./_stream_duplex":"4c8A","process":"g5I+"}],"4c8A":[function(require,module,exports) { -var process = require("process"); -var e=require("process"),t=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};module.exports=l;var r=require("./_stream_readable"),a=require("./_stream_writable");require("inherits")(l,r);for(var i=t(a.prototype),n=0;n>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function n(t,e,s){var a=e.length-1;if(a=0?(i>0&&(t.lastNeed=i-1),i):--a=0?(i>0&&(t.lastNeed=i-2),i):--a=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}function h(t,e,s){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}function l(t){var e=this.lastTotal-this.lastNeed,s=h(this,t,e);return void 0!==s?s:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function o(t,e){var s=n(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=s;var a=t.length-(s-this.lastNeed);return t.copy(this.lastChar,0,a),t.toString("utf8",e,a)}function u(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e}function c(t,e){if((t.length-e)%2==0){var s=t.toString("utf16le",e);if(s){var a=s.charCodeAt(s.length-1);if(a>=55296&&a<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],s.slice(0,-1)}return s}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function f(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var s=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,s)}return e}function d(t,e){var s=(t.length-e)%3;return 0===s?t.toString("base64",e):(this.lastNeed=3-s,this.lastTotal=3,1===s?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-s))}function g(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function N(t){return t.toString(this.encoding)}function v(t){return t&&t.length?this.write(t):""}exports.StringDecoder=i,i.prototype.write=function(t){if(0===t.length)return"";var e,s;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";s=this.lastNeed,this.lastNeed=0}else s=0;return s0)if("string"==typeof t||d.objectMode||Object.getPrototypeOf(t)===o.prototype||(t=l(t)),r)d.endEmitted?e.emit("error",new j):O(e,d,t,!0);else if(d.ended)e.emit("error",new w);else{if(d.destroyed)return!1;d.reading=!1,d.decoder&&!n?(t=d.decoder.write(t),d.objectMode||0!==t.length?O(e,d,t,!1):K(e,d)):O(e,d,t,!1)}else r||(d.reading=!1,K(e,d));return!d.ended&&(d.length=G?e=G:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function _(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=Y(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function z(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?B(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,J(e)))}}function B(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(J,e))}function J(e){var t=e._readableState;p("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||e.emit("readable"),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,U(e)}function K(e,t){t.readingMore||(t.readingMore=!0,n.nextTick(Q,e,t))}function Q(e,t){for(var n=t.length;!t.reading&&!t.ended&&t.length0,e.listenerCount("data")>0&&e.resume()}function $(e){p("readable nexttick read 0"),e.read(0)}function I(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(V,e,t))}function V(e,t){p("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),U(e),t.flowing&&!t.reading&&e.read(0)}function U(e){var t=e._readableState;for(p("flow",t.flowing);t.flowing&&null!==e.read(););}function H(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function k(e){var t=e._readableState;p("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(N,t,e))}function N(e,t){p("endReadableNT",e.endEmitted,e.length),e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark:t.length>0)||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?k(this):B(this),null;if(0===(e=_(e,t))&&t.ended)return 0===t.length&&k(this),null;var r,i=t.needReadable;return p("need readable",i),(0===t.length||t.length-e0?H(e,t):null)?(t.needReadable=!0,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&k(this)),null!==r&&this.emit("data",r),r},D.prototype._read=function(e){this.emit("error",new L("_read()"))},D.prototype.pipe=function(e,t){var r=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e)}a.pipesCount+=1,p("pipe count=%d opts=%j",a.pipesCount,t);var o=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?l:b;function d(t,n){p("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,p("cleanup"),e.removeListener("close",g),e.removeListener("finish",c),e.removeListener("drain",s),e.removeListener("error",h),e.removeListener("unpipe",d),r.removeListener("end",l),r.removeListener("end",b),r.removeListener("data",f),u=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||s())}function l(){p("onend"),e.end()}a.endEmitted?n.nextTick(o):r.once("end",o),e.on("unpipe",d);var s=X(r);e.on("drain",s);var u=!1;function f(t){p("ondata");var n=e.write(t);p("dest.write",n),!1===n&&((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==A(a.pipes,e))&&!u&&(p("false write response, pause",a.awaitDrain),a.awaitDrain++),r.pause())}function h(t){p("onerror",t),b(),e.removeListener("error",h),0===i(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",c),b()}function c(){p("onfinish"),e.removeListener("close",g),b()}function b(){p("unpipe"),r.unpipe(e)}return r.on("data",f),W(e,"error",h),e.once("close",g),e.once("finish",c),e.emit("pipe",r),a.flowing||(p("pipe resume"),r.resume()),e},D.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,p("on readable",i.length,i.reading),i.length?B(this):i.reading||n.nextTick($,this))),r},D.prototype.addListener=D.prototype.on,D.prototype.removeListener=function(e,t){var r=a.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(Z,this),r},D.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(Z,this),t},D.prototype.resume=function(){var e=this._readableState;return e.flowing||(p("resume"),e.flowing=!e.readableListening,I(this,e)),this},D.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this},D.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",function(){if(p("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(i){(p("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i)||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))}),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a127&e[t+3]|e[t+2]<<7|e[t+1]<<14|e[t]<<21,len:4},o.Header={len:10,get:(r,i)=>({fileIdentifier:new e.StringType(3,"ascii").get(r,i),version:{major:e.INT8.get(r,i+3),revision:e.INT8.get(r,i+4)},flags:{raw:e.INT8.get(r,i+4),unsynchronisation:t.default.strtokBITSET.get(r,i+5,7),isExtendedHeader:t.default.strtokBITSET.get(r,i+5,6),expIndicator:t.default.strtokBITSET.get(r,i+5,5),footer:t.default.strtokBITSET.get(r,i+5,4)},size:o.UINT32SYNCSAFE.get(r,i+6)})},o.ExtendedHeader={len:10,get:(r,o)=>({size:e.UINT32_BE.get(r,o),extendedFlags:e.UINT16_BE.get(r,o+4),sizeOfPadding:e.UINT32_BE.get(r,o+6),crcDataPresent:t.default.strtokBITSET.get(r,o+4,31)})},exports.ID3v2Token=o; -},{"token-types":"1rOY","../common/Util":"7/th"}],"Nx0W":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer;Object.defineProperty(exports,"__esModule",{value:!0});const t=require("debug"),a=require("token-types"),r=require("../common/Util"),i=require("./ID3v2"),c=t("music-metadata:id3v2:frame-parser");class s{static readData(t,d,n,o){const l=s.getTextEncoding(t[0]),u=t.length;let f=0,g=[];const p=s.getNullTerminatorLength(l);let T;const S={};switch("TXXX"!==d&&"T"===d[0]?"T*":d){case"T*":case"IPLS":const m=r.default.decodeString(t.slice(1),l).replace(/\x00+$/,"");switch(d){case"TMCL":case"TIPL":case"IPLS":g=s.splitValue(4,m),g=s.functionList(g);break;case"TRK":case"TRCK":case"TPOS":g=m;break;case"TCOM":case"TEXT":case"TOLY":case"TOPE":case"TPE1":case"TSRC":g=s.splitValue(n,m);break;default:g=n>=4?s.splitValue(n,m):[m]}break;case"TXXX":g={description:(g=s.readIdentifierAndData(t,f+1,u,l)).id,text:s.splitValue(n,r.default.decodeString(g.data,l).replace(/\x00+$/,""))};break;case"PIC":case"APIC":if(o){const a={};switch(f+=1,n){case 2:a.format=r.default.decodeString(t.slice(f,f+3),l),f+=3;break;case 3:case 4:const e="iso-8859-1";T=r.default.findZero(t,f,u,e),a.format=r.default.decodeString(t.slice(f,T),e),f=T+1;break;default:throw new Error("Warning: unexpected major versionIndex: "+n)}a.format=s.fixPictureMimeType(a.format),a.type=i.AttachedPictureType[t[f]],f+=1,T=r.default.findZero(t,f,u,l),a.description=r.default.decodeString(t.slice(f,T),l),f=T+p,a.data=e.from(t.slice(f,u)),g=a}break;case"CNT":case"PCNT":g=a.UINT32_BE.get(t,0);break;case"SYLT":for(f+=7,g=[];f=5?t.readUInt32BE(f+1):void 0};break;case"GEOB":{T=r.default.findZero(t,f+1,u,l);const e=r.default.decodeString(t.slice(f+1,T),"iso-8859-1");f=T+1,T=r.default.findZero(t,f,u-f,l);const a=r.default.decodeString(t.slice(f+1,T),"iso-8859-1");f=T+1,T=r.default.findZero(t,f,u-f,l),g={type:e,filename:a,description:r.default.decodeString(t.slice(f+1,T),"iso-8859-1"),data:t.slice(f+1,u)};break}case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":g=r.default.decodeString(t.slice(f,T),l);break;case"WXXX":{T=r.default.findZero(t,f+1,u,l);const e=r.default.decodeString(t.slice(f+1,T),"iso-8859-1");f=T+1,T=r.default.findZero(t,f,u-f,l),g={description:e,url:r.default.decodeString(t.slice(f,u-f),l)};break}case"MCDI":g=t.slice(0,u);break;default:c("Warning: unsupported id3v2-tag-type: "+d)}return g}static fixPictureMimeType(e){switch(e=e.toLocaleLowerCase()){case"jpg":return"image/jpeg";case"png":return"image/png"}return e}static functionList(e){const t={};for(let a=0;a+1=4?/\x00/g:/\//g);return s.trimArray(a)}static trimArray(e){for(let t=0;t0?this.parseExtendedHeaderData(t,e.size):this.parseId3Data(this.id3Header.size-e.size)})}parseExtendedHeaderData(r,a){return t(this,void 0,void 0,function*(){const t=e.alloc(r);return yield this.tokenizer.readBuffer(t,0,r),this.parseId3Data(this.id3Header.size-a)})}parseId3Data(r){return t(this,void 0,void 0,function*(){const t=e.alloc(r);yield this.tokenizer.readBuffer(t,0,r);for(const e of this.parseMetadata(t))if("TXXX"===e.id)for(const t of e.value.text)this.addTag(n.makeDescriptionTagName(e.id,e.value.description),t);else if("COM"===e.id)for(const t of e.value)this.addTag(n.makeDescriptionTagName(e.id,t.description),t.text);else if(Array.isArray(e.value))for(const t of e.value)this.addTag(e.id,t);else this.addTag(e.id,e.value)})}addTag(e,t){this.metadata.addTag(this.headerType,e,t)}parseMetadata(e){let t=0;const r=[];for(;t!==e.length;){const a=n.getFrameHeaderLength(this.id3Header.version.major);if(t+a>e.length)break;const i=e.slice(t,t+=a),s=n.readFrameHeader(i,this.id3Header.version.major);if(""===s.id||"\0\0\0\0"===s.id||-1==="ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(s.id[0]))break;const d=e.slice(t,t+=s.length),o=n.readFrameData(d,s,this.id3Header.version.major,!this.options.skipCovers);r.push({id:s.id,value:o})}return r}}exports.ID3v2Parser=n; -},{"token-types":"1rOY","../common/Util":"7/th","./FrameParser":"Nx0W","./ID3v2":"fvjB","buffer":"aMB2"}],"ooww":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var r=require("buffer").Buffer;Object.defineProperty(exports,"__esModule",{value:!0});const e=require("./Util"),t=/^[\w-©][\w-\x000-3]/;exports.FourCcToken={len:4,get:(r,n)=>{const o=r.toString("binary",n,n+exports.FourCcToken.len);if(!o.match(t))throw new Error(`FourCC contains invalid characters: ${e.default.a2hex(o)}`);return o},put:(e,t,n)=>{const o=r.from(n,"binary");if(4!==o.length)throw new Error("Invalid length");return o.copy(e,t)}}; -},{"./Util":"7/th","buffer":"aMB2"}],"5Fqj":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),t=require("assert"),s=require("../common/FourCC");exports.Header={len:8,get:(e,t)=>({chunkID:s.FourCcToken.get(e,t),size:e.readUInt32BE(t+4)})};class i{constructor(e,s){this.isAifc=s;const i=s?22:18;t.ok(e.size>=i,`COMMON CHUNK size should always be at least ${i}`),this.len=e.size}get(t,i){const a=t.readUInt16BE(i+8)-16398,n=t.readUInt16BE(i+8+2),r={numChannels:t.readUInt16BE(i),numSampleFrames:t.readUInt32BE(i+2),sampleSize:t.readUInt16BE(i+6),sampleRate:a<0?n>>Math.abs(a):n<22){const s=t.readInt8(i+22);if(23+s+(s+1)%2!==this.len)throw new Error("Illegal pstring length");r.compressionName=new e.StringType(s,"binary").get(t,i+23)}}else r.compressionName="PCM";return r}}exports.Common=i; -},{"token-types":"1rOY","assert":"g2FE","../common/FourCC":"ooww"}],"EiO8":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))(function(s,i){function n(e){try{d(r.next(e))}catch(t){i(t)}}function o(e){try{d(r.throw(e))}catch(t){i(t)}}function d(e){e.done?s(e.value):new a(function(t){t(e.value)}).then(n,o)}d((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("token-types"),a=require("stream"),r=require("debug"),s=require("strtok3/lib/type"),i=require("strtok3/lib/core"),n=require("../id3v2/ID3v2Parser"),o=require("../common/FourCC"),d=require("../common/BasicParser"),m=require("./Chunk"),u=r("music-metadata:parser:aiff");class h extends d.BasicParser{parse(){return e(this,void 0,void 0,function*(){if("FORM"!==(yield this.tokenizer.readToken(m.Header)).chunkID)throw new Error("Invalid Chunk-ID, expected 'FORM'");const e=yield this.tokenizer.readToken(o.FourCcToken);switch(e){case"AIFF":this.metadata.setFormat("dataformat",e),this.isCompressed=!1;break;case"AIFC":this.metadata.setFormat("dataformat","AIFF-C"),this.isCompressed=!0;break;default:throw Error("Unsupported AIFF type: "+e)}this.metadata.setFormat("lossless",!this.isCompressed);try{for(;;){const e=yield this.tokenizer.readToken(m.Header);u(`Chunk id=${e.chunkID}`);const t=2*Math.round(e.size/2),a=yield this.readData(e);yield this.tokenizer.ignore(t-a)}}catch(t){if(t.message!==s.endOfFile)throw t}})}readData(a){return e(this,void 0,void 0,function*(){switch(a.chunkID){case"COMM":const e=yield this.tokenizer.readToken(new m.Common(a,this.isCompressed));return this.metadata.setFormat("bitsPerSample",e.sampleSize),this.metadata.setFormat("sampleRate",e.sampleRate),this.metadata.setFormat("numberOfChannels",e.numChannels),this.metadata.setFormat("numberOfSamples",e.numSampleFrames),this.metadata.setFormat("duration",e.numSampleFrames/e.sampleRate),this.metadata.setFormat("encoder",e.compressionName),a.size;case"ID3 ":const r=yield this.tokenizer.readToken(new t.BufferType(a.size)),s=new c(r),o=i.fromStream(s);return yield n.ID3v2Parser.getInstance().parse(this.metadata,o,this.options),a.size;case"SSND":return this.metadata.format.duration&&this.metadata.setFormat("bitrate",8*a.size/this.metadata.format.duration),0;default:return 0}})}}exports.AIFFParser=h;class c extends a.Readable{constructor(e){super(),this.buf=e}_read(){this.push(this.buf),this.push(null)}} -},{"token-types":"1rOY","stream":"D0Hn","debug":"j+D9","strtok3/lib/type":"2Fe+","strtok3/lib/core":"tvmF","../id3v2/ID3v2Parser":"cAM/","../common/FourCC":"ooww","../common/BasicParser":"7c1v","./Chunk":"5Fqj"}],"yfNv":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),t=require("../common/FourCC");var r;function a(e){return{containsHeader:s(e,31),containsFooter:s(e,30),isHeader:s(e,31),readOnly:s(e,0),dataType:(6&e)>>1}}function s(e,t){return 0!=(e&1<({ID:t.FourCcToken.get(r,a),version:e.UINT32_LE.get(r,a+4)/1e3,descriptorBytes:e.UINT32_LE.get(r,a+8),headerBytes:e.UINT32_LE.get(r,a+12),seekTableBytes:e.UINT32_LE.get(r,a+16),headerDataBytes:e.UINT32_LE.get(r,a+20),apeFrameDataBytes:e.UINT32_LE.get(r,a+24),apeFrameDataBytesHigh:e.UINT32_LE.get(r,a+28),terminatingDataBytes:e.UINT32_LE.get(r,a+32),fileMD5:new e.BufferType(16).get(r,a+36)})},exports.Header={len:24,get:(t,r)=>({compressionLevel:e.UINT16_LE.get(t,r),formatFlags:e.UINT16_LE.get(t,r+2),blocksPerFrame:e.UINT32_LE.get(t,r+4),finalFrameBlocks:e.UINT32_LE.get(t,r+8),totalFrames:e.UINT32_LE.get(t,r+12),bitsPerSample:e.UINT16_LE.get(t,r+16),channel:e.UINT16_LE.get(t,r+18),sampleRate:e.UINT32_LE.get(t,r+20)})},exports.TagFooter={len:32,get:(t,r)=>({ID:new e.StringType(8,"ascii").get(t,r),version:e.UINT32_LE.get(t,r+8),size:e.UINT32_LE.get(t,r+12),fields:e.UINT32_LE.get(t,r+16),flags:a(e.UINT32_LE.get(t,r+20))})},exports.TagItemHeader={len:8,get:(t,r)=>({size:e.UINT32_LE.get(t,r),flags:a(e.UINT32_LE.get(t,r+4))})},exports.TagField=(t=>new e.BufferType(t.size-exports.TagFooter.len)),exports.parseTagFlags=a,exports.isBitSet=s; -},{"token-types":"1rOY","../common/FourCC":"ooww"}],"18SM":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer,r=this&&this.__awaiter||function(e,r,s,t){return new(s||(s=Promise))(function(n,a){function i(e){try{l(t.next(e))}catch(r){a(r)}}function o(e){try{l(t.throw(e))}catch(r){a(r)}}function l(e){e.done?n(e.value):new s(function(r){r(e.value)}).then(i,o)}l((t=t.apply(e,r||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const s=require("debug"),t=require("file-type"),n=require("token-types"),a=require("assert"),i=require("../common/Util"),o=require("../common/BasicParser"),l=require("./APEv2Token"),c=s("music-metadata:parser:APEv2"),d="APEv2",h="APETAGEX";class u extends o.BasicParser{constructor(){super(...arguments),this.ape={}}static calculateDuration(e){let r=e.totalFrames>1?e.blocksPerFrame*(e.totalFrames-1):0;return(r+=e.finalFrameBlocks)/e.sampleRate}static parseTagHeader(s,t,n){return r(this,void 0,void 0,function*(){const r=yield t.peekToken(l.TagFooter);if(r.ID===h){yield t.ignore(l.TagFooter.len);const e=yield t.readToken(l.TagField(r));u.parseTags(s,r,e,0,!n.skipCovers)}else if(c(`APEv2 header not found at offset=${t.position}`),t.fileSize){const r=t.fileSize-t.position,a=e.alloc(r);return yield t.readBuffer(a),u.parseTagFooter(s,a,!n.skipCovers)}})}static parseTagFooter(e,r,s){const t=l.TagFooter.get(r,r.length-l.TagFooter.len);a.equal(t.ID,h,"APEv2 Footer preamble"),this.parseTags(e,t,r,r.length-t.size,s)}static parseTags(r,s,n,a,o){for(let h=0;h0?this.parseDescriptorExpansion(r):this.parseHeader();return yield this.tokenizer.readToken(new n.IgnoreType(s.forwardBytes)),u.parseTagHeader(this.metadata,this.tokenizer,this.options)})}parseDescriptorExpansion(e){return r(this,void 0,void 0,function*(){return yield this.tokenizer.readToken(new n.IgnoreType(e)),this.parseHeader()})}parseHeader(){return r(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(l.Header);return this.metadata.setFormat("lossless",!0),this.metadata.setFormat("dataformat","Monkey's Audio"),this.metadata.setFormat("bitsPerSample",e.bitsPerSample),this.metadata.setFormat("sampleRate",e.sampleRate),this.metadata.setFormat("numberOfChannels",e.channel),this.metadata.setFormat("duration",u.calculateDuration(e)),{forwardBytes:this.ape.descriptor.seekTableBytes+this.ape.descriptor.headerDataBytes+this.ape.descriptor.apeFrameDataBytes+this.ape.descriptor.terminatingDataBytes}})}}exports.APEv2Parser=u; -},{"debug":"j+D9","file-type":"gPQA","token-types":"1rOY","assert":"g2FE","../common/Util":"7/th","../common/BasicParser":"7c1v","./APEv2Token":"yfNv","buffer":"aMB2"}],"vYjs":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer;Object.defineProperty(exports,"__esModule",{value:!0});class t{constructor(e){this.str=e}static fromBin(e,n=0){return new t(this.decode(e,n))}static decode(e,t=0){return(e.readUInt32LE(t).toString(16)+"-"+e.readUInt16LE(t+4).toString(16)+"-"+e.readUInt16LE(t+6).toString(16)+"-"+e.readUInt16BE(t+8).toString(16)+"-"+e.slice(t+10,t+16).toString("hex")).toUpperCase()}static decodeMediaType(e){switch(e.str){case t.AudioMedia.str:return"audio";case t.VideoMedia.str:return"video";case t.CommandMedia.str:return"command";case t.Degradable_JPEG_Media.str:return"degradable-jpeg";case t.FileTransferMedia.str:return"file-transfer";case t.BinaryMedia.str:return"binary"}}static encode(t){const n=e.alloc(16);return n.writeUInt32LE(parseInt(t.slice(0,8),16),0),n.writeUInt16LE(parseInt(t.slice(9,13),16),4),n.writeUInt16LE(parseInt(t.slice(14,18),16),6),e.from(t.slice(19,23),"hex").copy(n,8),e.from(t.slice(24),"hex").copy(n,10),n}equals(e){return this.str===e.str}toBin(){return t.encode(this.str)}}t.HeaderObject=new t("75B22630-668E-11CF-A6D9-00AA0062CE6C"),t.DataObject=new t("75B22636-668E-11CF-A6D9-00AA0062CE6C"),t.SimpleIndexObject=new t("33000890-E5B1-11CF-89F4-00A0C90349CB"),t.IndexObject=new t("D6E229D3-35DA-11D1-9034-00A0C90349BE"),t.MediaObjectIndexObject=new t("FEB103F8-12AD-4C64-840F-2A1D2F7AD48C"),t.TimecodeIndexObject=new t("3CB73FD0-0C4A-4803-953D-EDF7B6228F0C"),t.FilePropertiesObject=new t("8CABDCA1-A947-11CF-8EE4-00C00C205365"),t.StreamPropertiesObject=new t("B7DC0791-A9B7-11CF-8EE6-00C00C205365"),t.HeaderExtensionObject=new t("5FBF03B5-A92E-11CF-8EE3-00C00C205365"),t.CodecListObject=new t("86D15240-311D-11D0-A3A4-00A0C90348F6"),t.ScriptCommandObject=new t("1EFB1A30-0B62-11D0-A39B-00A0C90348F6"),t.MarkerObject=new t("F487CD01-A951-11CF-8EE6-00C00C205365"),t.BitrateMutualExclusionObject=new t("D6E229DC-35DA-11D1-9034-00A0C90349BE"),t.ErrorCorrectionObject=new t("75B22635-668E-11CF-A6D9-00AA0062CE6C"),t.ContentDescriptionObject=new t("75B22633-668E-11CF-A6D9-00AA0062CE6C"),t.ExtendedContentDescriptionObject=new t("D2D0A440-E307-11D2-97F0-00A0C95EA850"),t.ContentBrandingObject=new t("2211B3FA-BD23-11D2-B4B7-00A0C955FC6E"),t.StreamBitratePropertiesObject=new t("7BF875CE-468D-11D1-8D82-006097C9A2B2"),t.ContentEncryptionObject=new t("2211B3FB-BD23-11D2-B4B7-00A0C955FC6E"),t.ExtendedContentEncryptionObject=new t("298AE614-2622-4C17-B935-DAE07EE9289C"),t.DigitalSignatureObject=new t("2211B3FC-BD23-11D2-B4B7-00A0C955FC6E"),t.PaddingObject=new t("1806D474-CADF-4509-A4BA-9AABCB96AAE8"),t.ExtendedStreamPropertiesObject=new t("14E6A5CB-C672-4332-8399-A96952065B5A"),t.AdvancedMutualExclusionObject=new t("A08649CF-4775-4670-8A16-6E35357566CD"),t.GroupMutualExclusionObject=new t("D1465A40-5A79-4338-B71B-E36B8FD6C249"),t.StreamPrioritizationObject=new t("D4FED15B-88D3-454F-81F0-ED5C45999E24"),t.BandwidthSharingObject=new t("A69609E6-517B-11D2-B6AF-00C04FD908E9"),t.LanguageListObject=new t("7C4346A9-EFE0-4BFC-B229-393EDE415C85"),t.MetadataObject=new t("C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA"),t.MetadataLibraryObject=new t("44231C94-9498-49D1-A141-1D134E457054"),t.IndexParametersObject=new t("D6E229DF-35DA-11D1-9034-00A0C90349BE"),t.MediaObjectIndexParametersObject=new t("6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7"),t.TimecodeIndexParametersObject=new t("F55E496D-9797-4B5D-8C8B-604DFE9BFB24"),t.CompatibilityObject=new t("26F18B5D-4584-47EC-9F5F-0E651F0452C9"),t.AdvancedContentEncryptionObject=new t("43058533-6981-49E6-9B74-AD12CB86D58C"),t.AudioMedia=new t("F8699E40-5B4D-11CF-A8FD-00805F5C442B"),t.VideoMedia=new t("BC19EFC0-5B4D-11CF-A8FD-00805F5C442B"),t.CommandMedia=new t("59DACFC0-59E6-11D0-A3AC-00A0C90348F6"),t.JFIF_Media=new t("B61BE100-5B4E-11CF-A8FD-00805F5C442B"),t.Degradable_JPEG_Media=new t("35907DE0-E415-11CF-A917-00805F5C442B"),t.FileTransferMedia=new t("91BD222C-F21C-497A-8B6D-5AA86BFC0185"),t.BinaryMedia=new t("3AFB65E2-47EF-40F2-AC2C-70A90D71D343"),t.ASF_Index_Placeholder_Object=new t("D9AADE20-7C17-4F9C-BC28-8555DD98E2A2"),exports.default=t; -},{"buffer":"aMB2"}],"E0Cs":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var r=require("buffer").Buffer;Object.defineProperty(exports,"__esModule",{value:!0});const t=require("../common/Util"),e=require("token-types");class a{static getParserForAttr(r){return a.attributeParsers[r]}static parseUnicodeAttr(r){return t.default.stripNulls(t.default.decodeString(r,"utf16le"))}static parseByteArrayAttr(t){const e=r.alloc(t.length);return t.copy(e),e}static parseBoolAttr(r,t=0){return 1===a.parseWordAttr(r,t)}static parseDWordAttr(r,t=0){return r.readUInt32LE(t)}static parseQWordAttr(r,t=0){return e.UINT64_LE.get(r,t)}static parseWordAttr(r,t=0){return r.readUInt16LE(t)}}a.attributeParsers=[a.parseUnicodeAttr,a.parseByteArrayAttr,a.parseBoolAttr,a.parseDWordAttr,a.parseQWordAttr,a.parseWordAttr,a.parseByteArrayAttr],exports.AsfUtil=a; -},{"../common/Util":"7/th","token-types":"1rOY","buffer":"aMB2"}],"u/2J":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer;Object.defineProperty(exports,"__esModule",{value:!0});const t=require("../common/Util"),r=require("token-types"),s=require("./GUID"),a=require("./AsfUtil"),n=require("../id3v2/ID3v2");var o;!function(e){e[e.UnicodeString=0]="UnicodeString",e[e.ByteArray=1]="ByteArray",e[e.Bool=2]="Bool",e[e.DWord=3]="DWord",e[e.QWord=4]="QWord",e[e.Word=5]="Word"}(o=exports.DataType||(exports.DataType={})),exports.TopLevelHeaderObjectToken={len:30,get:(e,t)=>({objectId:s.default.fromBin(new r.BufferType(16).get(e,t)),objectSize:r.UINT64_LE.get(e,t+16),numberOfHeaderObjects:r.UINT32_LE.get(e,t+24)})},exports.HeaderObjectToken={len:24,get:(e,t)=>({objectId:s.default.fromBin(new r.BufferType(16).get(e,t)),objectSize:r.UINT64_LE.get(e,t+16)})};class i{constructor(e){this.len=e.objectSize-exports.HeaderObjectToken.len}postProcessTag(e,t,r,s){if("WM/Picture"===t)e.push({id:t,value:T.fromBuffer(s)});else{const n=a.AsfUtil.getParserForAttr(r);if(!n)throw new Error("unexpected value headerType: "+r);e.push({id:t,value:n(s)})}}}exports.State=i;class c extends i{constructor(e){super(e)}get(e,t){return null}}exports.IgnoreObjectState=c;class d extends i{constructor(e){super(e)}get(e,a){return{fileId:s.default.fromBin(e,a),fileSize:r.UINT64_LE.get(e,a+16),creationDate:r.UINT64_LE.get(e,a+24),dataPacketsCount:r.UINT64_LE.get(e,a+32),playDuration:r.UINT64_LE.get(e,a+40),sendDuration:r.UINT64_LE.get(e,a+48),preroll:r.UINT64_LE.get(e,a+56),flags:{broadcast:t.default.strtokBITSET.get(e,a+64,24),seekable:t.default.strtokBITSET.get(e,a+64,25)},minimumDataPacketSize:r.UINT32_LE.get(e,a+68),maximumDataPacketSize:r.UINT32_LE.get(e,a+72),maximumBitrate:r.UINT32_LE.get(e,a+76)}}}d.guid=s.default.FilePropertiesObject,exports.FilePropertiesObject=d;class u extends i{constructor(e){super(e)}get(e,t){return{streamType:s.default.decodeMediaType(s.default.fromBin(e,t)),errorCorrectionType:s.default.fromBin(e,t+8)}}}u.guid=s.default.StreamPropertiesObject,exports.StreamPropertiesObject=u;class l{constructor(){this.len=22}get(e,t){e.readUInt32LE(t+18);return{reserved1:s.default.fromBin(e,t),reserved2:e.readUInt16LE(t+16),extensionDataSize:e.readUInt32LE(t+18)}}}l.guid=s.default.HeaderExtensionObject,exports.HeaderExtensionObject=l;class f extends i{constructor(e){super(e)}get(e,t){const r=[];let s=t+10;for(let n=0;n0){const t=f.contentDescTags[n],i=s+o;r.push({id:t,value:a.AsfUtil.parseUnicodeAttr(e.slice(s,i))}),s=i}}return r}}f.guid=s.default.ContentDescriptionObject,f.contentDescTags=["Title","Author","Copyright","Description","Rating"],exports.ContentDescriptionObjectState=f;class p extends i{constructor(e){super(e)}get(e,t){const r=[],s=e.readUInt16LE(t);let n=t+2;for(let o=0;o{this.metadata.addTag(s,e.id,e.value)})}parseExtensionObject(a){return e(this,void 0,void 0,function*(){do{const e=yield this.tokenizer.readToken(r.HeaderObjectToken);switch(e.objectId.str){case r.ExtendedStreamPropertiesObjectState.guid.str:yield this.tokenizer.readToken(new r.ExtendedStreamPropertiesObjectState(e));break;case r.MetadataObjectState.guid.str:const a=yield this.tokenizer.readToken(new r.MetadataObjectState(e));this.addTags(a);break;case r.MetadataLibraryObjectState.guid.str:const i=yield this.tokenizer.readToken(new r.MetadataLibraryObjectState(e));this.addTags(i);break;case t.default.PaddingObject.str:yield this.tokenizer.ignore(e.objectSize-r.HeaderObjectToken.len);break;case t.default.CompatibilityObject.str:this.tokenizer.ignore(e.objectSize-r.HeaderObjectToken.len);break;case t.default.ASF_Index_Placeholder_Object.str:yield this.tokenizer.ignore(e.objectSize-r.HeaderObjectToken.len);break;default:this.warnings.push("Ignore ASF-Object-GUID: "+e.objectId.str),yield this.tokenizer.readToken(new r.IgnoreObjectState(e))}a-=e.objectSize}while(a>0)})}}exports.AsfParser=o; -},{"./GUID":"vYjs","./AsfObject":"u/2J","debug":"j+D9","../common/BasicParser":"7c1v"}],"+Rr8":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer;Object.defineProperty(exports,"__esModule",{value:!0});const t=require("token-types"),r=require("../../id3v2/ID3v2");class n{constructor(e){this.len=e}static fromBase64(t){return this.fromBuffer(e.from(t,"base64"))}static fromBuffer(e){return new n(e.length).get(e,0)}get(n,i){const o=r.AttachedPictureType[t.UINT32_BE.get(n,i)],a=t.UINT32_BE.get(n,i+=4),s=n.toString("utf-8",i+=4,i+a),d=t.UINT32_BE.get(n,i+=a),c=n.toString("utf-8",i+=4,i+d),f=t.UINT32_BE.get(n,i+=d),g=t.UINT32_BE.get(n,i+=4),u=t.UINT32_BE.get(n,i+=4),I=t.UINT32_BE.get(n,i+=4),U=t.UINT32_BE.get(n,i+=4);return{type:o,format:s,description:c,width:f,height:g,colour_depth:u,indexed_color:I,data:e.from(n.slice(i+=4,i+U))}}}exports.VorbisPictureToken=n,exports.CommonHeader={len:7,get:(e,r)=>({packetType:e.readUInt8(r),vorbis:new t.StringType(6,"ascii").get(e,r+1)})},exports.IdentificationHeader={len:23,get:(e,t)=>({version:e.readUInt32LE(t+0),channelMode:e.readUInt8(t+4),sampleRate:e.readUInt32LE(t+5),bitrateMax:e.readUInt32LE(t+9),bitrateNominal:e.readUInt32LE(t+13),bitrateMin:e.readUInt32LE(t+17)})}; -},{"token-types":"1rOY","../../id3v2/ID3v2":"fvjB","buffer":"aMB2"}],"YrDx":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,i,r){return new(i||(i=Promise))(function(s,n){function a(e){try{d(r.next(e))}catch(t){n(t)}}function o(e){try{d(r.throw(e))}catch(t){n(t)}}function d(e){e.done?s(e.value):new i(function(t){t(e.value)}).then(a,o)}d((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("strtok3/lib/type"),i=require("./ID3v2"),r=require("./ID3v2Parser"),s=require("../id3v1/ID3v1Parser"),n=require("debug"),a=require("../common/BasicParser"),o=n("music-metadata:parser:ID3");class d extends a.BasicParser{constructor(){super(...arguments),this.id3parser=new r.ID3v2Parser}static startsWithID3v2Header(t){return e(this,void 0,void 0,function*(){return"ID3"===(yield t.peekToken(i.ID3v2Token.Header)).fileIdentifier})}parse(){return this.parseID3v2().catch(e=>{if(e.message!==t.endOfFile)throw e})}finalize(){}parseID3v2(){return e(this,void 0,void 0,function*(){if(yield this.tryReadId3v2Headers(),o("End of ID3v2 header, go to MPEG-parser: pos=%s",this.tokenizer.position),yield this._parse(),this.options.skipPostHeaders&&this.metadata.hasAny())this.finalize();else{const e=new s.ID3v1Parser;yield e.init(this.metadata,this.tokenizer,this.options).parse(),this.finalize()}})}tryReadId3v2Headers(){return e(this,void 0,void 0,function*(){if("ID3"===(yield this.tokenizer.peekToken(i.ID3v2Token.Header)).fileIdentifier)return o("Found ID3v2 header, pos=%s",this.tokenizer.position),yield this.id3parser.parse(this.metadata,this.tokenizer,this.options),this.tryReadId3v2Headers()})}}exports.AbstractID3Parser=d; -},{"strtok3/lib/type":"2Fe+","./ID3v2":"fvjB","./ID3v2Parser":"cAM/","../id3v1/ID3v1Parser":"ln6R","debug":"j+D9","../common/BasicParser":"7c1v"}],"5NdD":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))(function(i,s){function n(e){try{l(r.next(e))}catch(t){s(t)}}function o(e){try{l(r.throw(e))}catch(t){s(t)}}function l(e){e.done?i(e.value):new a(function(t){t(e.value)}).then(n,o)}l((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("../common/Util"),a=require("token-types"),r=require("../ogg/vorbis/Vorbis"),i=require("../id3v2/AbstractID3Parser"),s=require("../common/FourCC"),n=require("debug"),o=n("music-metadata:parser:FLAC");var l;!function(e){e[e.STREAMINFO=0]="STREAMINFO",e[e.PADDING=1]="PADDING",e[e.APPLICATION=2]="APPLICATION",e[e.SEEKTABLE=3]="SEEKTABLE",e[e.VORBIS_COMMENT=4]="VORBIS_COMMENT",e[e.CUESHEET=5]="CUESHEET",e[e.PICTURE=6]="PICTURE"}(l||(l={}));class d extends i.AbstractID3Parser{constructor(){super(...arguments),this.padding=0}static getInstance(){return new d}_parse(){return e(this,void 0,void 0,function*(){if("fLaC"!==(yield this.tokenizer.readToken(s.FourCcToken)).toString())throw new Error("Invalid FLAC preamble");let e;do{e=yield this.tokenizer.readToken(c.BlockHeader),yield this.parseDataBlock(e)}while(!e.lastBlock);if(this.tokenizer.fileSize&&this.metadata.format.duration){const e=this.tokenizer.fileSize-this.tokenizer.position;this.metadata.setFormat("bitrate",8*e/this.metadata.format.duration)}})}addTag(e,t){this.metadata.addTag("vorbis",e,t)}parseDataBlock(e){switch(o(`blockHeader type=${e.type}, length=${e.length}`),e.type){case l.STREAMINFO:return this.parseBlockStreamInfo(e.length);case l.PADDING:this.padding+=e.length;break;case l.APPLICATION:case l.SEEKTABLE:break;case l.VORBIS_COMMENT:return this.parseComment(e.length);case l.CUESHEET:break;case l.PICTURE:return this.parsePicture(e.length);default:this.warnings.push("Unknown block type: "+e.type)}return this.tokenizer.readToken(new a.IgnoreType(e.length))}parseBlockStreamInfo(t){return e(this,void 0,void 0,function*(){if(t!==c.BlockStreamInfo.len)throw new Error("Unexpected block-stream-info length");const e=yield this.tokenizer.readToken(c.BlockStreamInfo);this.metadata.setFormat("dataformat","flac"),this.metadata.setFormat("lossless",!0),this.metadata.setFormat("numberOfChannels",e.channels),this.metadata.setFormat("bitsPerSample",e.bitsPerSample),this.metadata.setFormat("sampleRate",e.sampleRate),this.metadata.setFormat("duration",e.totalSamples/e.sampleRate)})}parseComment(t){return e(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(new a.BufferType(t)),r=new h(e);r.readStringUtf8();const i=r.readInt32();for(let t=0;t({lastBlock:t.default.strtokBITSET.get(e,r,7),type:t.default.getBitAllignedNumber(e,r,1,7),length:a.UINT24_BE.get(e,r+1)})},c.BlockStreamInfo={len:34,get:(e,r)=>({minimumBlockSize:a.UINT16_BE.get(e,r),maximumBlockSize:a.UINT16_BE.get(e,r+2)/1e3,minimumFrameSize:a.UINT24_BE.get(e,r+4),maximumFrameSize:a.UINT24_BE.get(e,r+7),sampleRate:a.UINT24_BE.get(e,r+10)>>4,channels:t.default.getBitAllignedNumber(e,r+12,4,3)+1,bitsPerSample:t.default.getBitAllignedNumber(e,r+12,7,5)+1,totalSamples:t.default.getBitAllignedNumber(e,r+13,4,36),fileMD5:new a.BufferType(16).get(e,r+18)})};class h{constructor(e){this.data=e,this.offset=0}readInt32(){const e=a.UINT32_LE.get(this.data,this.offset);return this.offset+=4,e}readStringUtf8(){const e=this.readInt32(),t=this.data.toString("utf8",this.offset,this.offset+e);return this.offset+=e,t}} -},{"../common/Util":"7/th","token-types":"1rOY","../ogg/vorbis/Vorbis":"+Rr8","../id3v2/AbstractID3Parser":"YrDx","../common/FourCC":"ooww","debug":"j+D9"}],"wmPb":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),t=require("../common/FourCC"),r=require("debug"),n=r("music-metadata:parser:MP4:atom");exports.Header={len:8,get:(r,n)=>{const o=e.UINT32_BE.get(r,n);if(o<0)throw new Error("Invalid atom header length");return{length:o,name:t.FourCcToken.get(r,n+4)}},put:(r,n,o)=>(e.UINT32_BE.put(r,n,o.length),t.FourCcToken.put(r,n+4,o.name))},exports.ExtendedSize=e.UINT64_BE,exports.ftyp={len:4,get:(t,r)=>({type:new e.StringType(4,"ascii").get(t,r)})},exports.mhdr={len:8,get:(t,r)=>({version:e.UINT8.get(t,r+0),flags:e.UINT24_BE.get(t,r+1),nextItemID:e.UINT32_BE.get(t,r+4)})};class o{constructor(e,t,r){if(this.len=e,et&&n(`Warning: atom ${r} expected to be ${t}, but was actually ${e} bytes long.`)}}exports.FixedLengthAtom=o;class s extends o{constructor(e){super(e,24,"mdhd"),this.len=e}get(t,r){return{version:e.UINT8.get(t,r+0),flags:e.UINT24_BE.get(t,r+1),creationTime:e.UINT32_BE.get(t,r+4),modificationTime:e.UINT32_BE.get(t,r+8),timeScale:e.UINT32_BE.get(t,r+12),duration:e.UINT32_BE.get(t,r+16),language:e.UINT16_BE.get(t,r+20),quality:e.UINT16_BE.get(t,r+22)}}}exports.MdhdAtom=s;class g extends o{constructor(e){super(e,100,"mvhd"),this.len=e}get(t,r){return{version:e.UINT8.get(t,r+0),flags:e.UINT24_BE.get(t,r+1),creationTime:e.UINT32_BE.get(t,r+4),modificationTime:e.UINT32_BE.get(t,r+8),timeScale:e.UINT32_BE.get(t,r+12),duration:e.UINT32_BE.get(t,r+16),preferredRate:e.UINT32_BE.get(t,r+20),preferredVolume:e.UINT16_BE.get(t,r+24),previewTime:e.UINT32_BE.get(t,r+72),previewDuration:e.UINT32_BE.get(t,r+76),posterTime:e.UINT32_BE.get(t,r+80),selectionTime:e.UINT32_BE.get(t,r+84),selectionDuration:e.UINT32_BE.get(t,r+88),currentTime:e.UINT32_BE.get(t,r+92),nextTrackID:e.UINT32_BE.get(t,r+96)}}}exports.MvhdAtom=g;class i{constructor(e){this.len=e}get(t,r){return{type:{set:e.UINT8.get(t,r+0),type:e.UINT24_BE.get(t,r+1)},locale:e.UINT24_BE.get(t,r+4),value:new e.BufferType(this.len-8).get(t,r+8)}}}exports.DataAtom=i;class a{constructor(e){this.len=e}get(t,r){return{version:e.UINT8.get(t,r),flags:e.UINT24_BE.get(t,r+1),name:new e.StringType(this.len-4,"utf-8").get(t,r+4)}}}exports.NameAtom=a;class T{constructor(e){this.len=e}get(t,r){return{version:e.UINT8.get(t,r),flags:e.UINT24_BE.get(t,r+1),creationTime:e.UINT32_BE.get(t,r+4),modificationTime:e.UINT32_BE.get(t,r+8),trackId:e.UINT32_BE.get(t,r+12),duration:e.UINT32_BE.get(t,r+20),layer:e.UINT16_BE.get(t,r+24),alternateGroup:e.UINT16_BE.get(t,r+26),volume:e.UINT16_BE.get(t,r+28)}}}exports.TrackHeaderAtom=T;const c={len:8,get:(t,r)=>({version:e.UINT8.get(t,r+0),flags:e.UINT24_BE.get(t,r+1),numberOfEntries:e.UINT32_BE.get(t,r+4)})};class l{constructor(e){this.len=e}get(r,n){return{dataFormat:t.FourCcToken.get(r,n),dataReferenceIndex:e.UINT16_BE.get(r,n+10)}}}class I{constructor(e){this.len=e}get(t,r){const n=c.get(t,r);r+=c.len;const o=[];for(let s=0;s{if(e.message!==t.endOfFile)throw e;i("Reached end-of-file")}):(n-=e.header.length)>0?this.readAtoms(a,s,n):void 0})}readAtom(t,a){return e(this,void 0,void 0,function*(){const e=t.position,s=yield t.readToken(n.Header),d=1===s.length;d&&(s.length=yield t.readToken(n.ExtendedSize));const o=new r(s,d,this);return i(`parse atom name=${o.atomPath}, extended=${o.extended}, offset=${e}, len=${o.header.length}`),yield o.readData(t,a),o})}readData(t,a){return e(this,void 0,void 0,function*(){switch(this.header.name){case"moov":case"udta":case"trak":case"mdia":case"minf":case"stbl":case"":case"ilst":return this.readAtoms(t,a,this.dataLen);case"meta":return yield t.readToken(new s.IgnoreType(4)),this.readAtoms(t,a,this.dataLen-4);case"mdhd":case"mvhd":case"tkhd":case"stsz":case"mdat":default:return a(this)}})}}exports.Atom=r; -},{"strtok3/lib/type":"2Fe+","debug":"j+D9","token-types":"1rOY","./AtomToken":"wmPb"}],"fRMT":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer,t=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))(function(s,n){function i(e){try{d(r.next(e))}catch(t){n(t)}}function o(e){try{d(r.throw(e))}catch(t){n(t)}}function d(e){e.done?s(e.value):new a(function(t){t(e.value)}).then(i,o)}d((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const a=require("debug"),r=require("token-types"),s=require("../common/BasicParser"),n=require("./Atom"),i=require("./AtomToken"),o=require("../id3v1/ID3v1Parser"),d=require("../common/Util"),m=a("music-metadata:parser:MP4"),h="iTunes",u={alac:{lossy:!1,format:"ALAC"},mp4a:{lossy:!0,format:"MP4A"},mp4s:{lossy:!0,format:"MP4S"},c608:{lossy:!0,format:"CEA-608"},c708:{lossy:!0,format:"CEA-708"}},c="MPEG-4";class l extends s.BasicParser{static read_BE_Signed_Integer(e){return r.readIntBE(e,0,e.length)}static read_BE_Unsigned_Integer(e){return r.readUIntBE(e,0,e.length)}parse(){return t(this,void 0,void 0,function*(){return this.metadata.setFormat("dataformat",c),new n.Atom({name:"mp4",length:this.tokenizer.fileSize},!1,null).readAtoms(this.tokenizer,e=>t(this,void 0,void 0,function*(){if(e.parent)switch(e.parent.header.name){case"ilst":case"":return this.parseMetadataItemData(e);case"stbl":switch(e.header.name){case"stsd":return this.parseAtom_stsd(e.dataLen)}}switch(e.header.name){case"ftyp":const t=yield this.parseAtom_ftyp(e.dataLen);return void m(`ftyp: ${t.join("/")}`);case"mdhd":return this.parseAtom_mdhd(e);case"mvhd":return this.parseAtom_mvhd(e);case"mdat":this.tokenizer.fileSize&&this.metadata.format.duration&&this.metadata.setFormat("bitrate",8*e.dataLen/this.metadata.format.duration)}yield this.tokenizer.readToken(new r.IgnoreType(e.dataLen)),m(`Ignore atom data: path=${e.atomPath}, payload-len=${e.dataLen}`)}),this.tokenizer.fileSize)})}addTag(e,t){this.metadata.addTag(h,e,t)}addWarning(e){m("Warning:"+e),this.warnings.push(e)}parseMetadataItemData(e){let a=e.header.name;return e.readAtoms(this.tokenizer,e=>t(this,void 0,void 0,function*(){switch(e.header.name){case"data":return this.parseValueAtom(a,e);case"name":const t=yield this.tokenizer.readToken(new i.NameAtom(e.dataLen));a+=":"+t.name;break;case"mean":const s=yield this.tokenizer.readToken(new i.NameAtom(e.dataLen));a+=":"+s.name;break;default:const n=yield this.tokenizer.readToken(new r.BufferType(e.dataLen));this.addWarning("Unsupported meta-item: "+a+"["+e.header.name+"] => value="+n.toString("hex")+" ascii="+n.toString("ascii"))}}),e.dataLen)}parseValueAtom(a,s){return t(this,void 0,void 0,function*(){const t=yield this.tokenizer.readToken(new i.DataAtom(s.header.length-i.Header.len));if(0!==t.type.set)throw new Error("Unsupported type-set != 0: "+t.type.set);switch(t.type.type){case 0:switch(a){case"trkn":case"disk":const e=r.UINT8.get(t.value,3),s=r.UINT8.get(t.value,5);this.addTag(a,e+"/"+s);break;case"gnre":const n=r.UINT8.get(t.value,1),i=o.Genres[n-1];this.addTag(a,i)}break;case 1:case 18:this.addTag(a,t.value.toString("utf-8"));break;case 13:if(this.options.skipCovers)break;this.addTag(a,{format:"image/jpeg",data:e.from(t.value)});break;case 14:if(this.options.skipCovers)break;this.addTag(a,{format:"image/png",data:e.from(t.value)});break;case 21:this.addTag(a,l.read_BE_Signed_Integer(t.value));break;case 22:this.addTag(a,l.read_BE_Unsigned_Integer(t.value));break;case 65:this.addTag(a,t.value.readInt8(0));break;case 66:this.addTag(a,t.value.readInt16BE(0));break;case 67:this.addTag(a,t.value.readInt32BE(0));break;default:this.addWarning(`atom key=${a}, has unknown well-known-type (data-type): ${t.type.type}`)}})}parseAtom_mvhd(e){return t(this,void 0,void 0,function*(){const t=yield this.tokenizer.readToken(new i.MvhdAtom(e.dataLen));this.parse_mxhd(t)})}parseAtom_mdhd(e){return t(this,void 0,void 0,function*(){const t=yield this.tokenizer.readToken(new i.MdhdAtom(e.dataLen));this.parse_mxhd(t)})}parse_mxhd(e){this.metadata.setFormat("sampleRate",e.timeScale),this.metadata.setFormat("duration",e.duration/e.timeScale)}parseAtom_ftyp(e){return t(this,void 0,void 0,function*(){const t=yield this.tokenizer.readToken(i.ftyp);if((e-=i.ftyp.len)>0){const a=yield this.parseAtom_ftyp(e),r=d.default.stripNulls(t.type).trim();return r.length>0&&a.push(r),a}return[]})}parseAtom_stsd(e){return t(this,void 0,void 0,function*(){const t=yield this.tokenizer.readToken(new i.StsdAtom(e)),a=[c];for(const e of t.table){const t=u[e.dataFormat];t?(this.metadata.setFormat("lossless",!t.lossy),a.push(t.format)):(m(`Warning: data-format '${e.dataFormat}' missing in MP4Parser.encoderDict`),a.push(e.dataFormat))}this.metadata.setFormat("dataformat",a.join("/"))})}}exports.MP4Parser=l; -},{"debug":"j+D9","token-types":"1rOY","../common/BasicParser":"7c1v","./Atom":"rYrA","./AtomToken":"wmPb","../id3v1/ID3v1Parser":"ln6R","../common/Util":"7/th","buffer":"aMB2"}],"Edi5":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types");exports.InfoTagHeaderTag=new e.StringType(4,"ascii"),exports.LameEncoderVersion=new e.StringType(6,"ascii"),exports.XingInfoTag={len:136,get:(t,r)=>({headerFlags:new e.BufferType(4).get(t,r),numFrames:e.UINT32_BE.get(t,r+4),streamSize:e.UINT32_BE.get(t,r+8),vbrScale:e.UINT32_BE.get(t,r+112),encoder:new e.StringType(9,"ascii").get(t,r+116),infoTagRevision:e.UINT8.get(t,r+125)>>4,vbrMethod:15&e.UINT8.get(t,r+125)})}; -},{"token-types":"1rOY"}],"xkWl":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer,t=this&&this.__awaiter||function(e,t,i,r){return new(i||(i=Promise))(function(a,s){function n(e){try{l(r.next(e))}catch(t){s(t)}}function o(e){try{l(r.throw(e))}catch(t){s(t)}}function l(e){e.done?a(e.value):new i(function(t){t(e.value)}).then(n,o)}l((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const i=require("assert"),r=require("token-types"),a=require("strtok3/lib/type"),s=require("debug"),n=require("../common/Util"),o=require("../id3v2/AbstractID3Parser"),l=require("./XingTag"),h=s("music-metadata:parser:mpeg"),d=1024;class f{constructor(e,t){if(this.versionIndex=n.default.getBitAllignedNumber(e,t+1,3,2),this.layer=f.LayerDescription[n.default.getBitAllignedNumber(e,t+1,5,2)],null===this.layer)throw new Error("Invalid MPEG layer");if(this.isProtectedByCRC=!n.default.isBitSet(e,t+1,7),this.bitrateIndex=n.default.getBitAllignedNumber(e,t+2,0,4),this.sampRateFreqIndex=n.default.getBitAllignedNumber(e,t+2,4,2),this.padding=n.default.isBitSet(e,t+2,6),this.privateBit=n.default.isBitSet(e,t+2,7),this.channelModeIndex=n.default.getBitAllignedNumber(e,t+3,0,2),this.modeExtension=n.default.getBitAllignedNumber(e,t+3,2,2),this.isCopyrighted=n.default.isBitSet(e,t+3,4),this.isOriginalMedia=n.default.isBitSet(e,t+3,5),this.emphasis=n.default.getBitAllignedNumber(e,t+3,7,2),this.version=f.VersionID[this.versionIndex],null===this.version)throw new Error("Invalid MPEG Audio version");this.channelMode=f.ChannelMode[this.channelModeIndex];const i=this.calcBitrate();if(!i)throw new Error("Cannot determine bit-rate");if(this.bitrate=null===i?null:1e3*i,this.samplingRate=this.calcSamplingRate(),null==this.samplingRate)throw new Error("Cannot determine sampling-rate")}calcDuration(e){return e*this.calcSamplesPerFrame()/this.samplingRate}calcSamplesPerFrame(){return f.samplesInFrameTable[1===this.version?0:1][this.layer]}calculateSideInfoLength(){if(3!==this.layer)return 2;if(3===this.channelModeIndex){if(1===this.version)return 17;if(2===this.version||2.5===this.version)return 9}else{if(1===this.version)return 32;if(2===this.version||2.5===this.version)return 17}}calcSlotSize(){return[null,4,1,1][this.layer]}calcBitrate(){if(0===this.bitrateIndex)return null;if(15===this.bitrateIndex)return null;const e=this.version.toString()+this.layer;return f.bitrate_index[this.bitrateIndex][e]}calcSamplingRate(){return 3===this.sampRateFreqIndex?null:f.sampling_rate_freq_index[this.version][this.sampRateFreqIndex]}}f.SyncByte1=255,f.SyncByte2=224,f.VersionID=[2.5,null,2,1],f.LayerDescription=[null,3,2,1],f.ChannelMode=["stereo","joint_stereo","dual_channel","mono"],f.bitrate_index={1:{11:32,12:32,13:32,21:32,22:8,23:8},2:{11:64,12:48,13:40,21:48,22:16,23:16},3:{11:96,12:56,13:48,21:56,22:24,23:24},4:{11:128,12:64,13:56,21:64,22:32,23:32},5:{11:160,12:80,13:64,21:80,22:40,23:40},6:{11:192,12:96,13:80,21:96,22:48,23:48},7:{11:224,12:112,13:96,21:112,22:56,23:56},8:{11:256,12:128,13:112,21:128,22:64,23:64},9:{11:288,12:160,13:128,21:144,22:80,23:80},10:{11:320,12:192,13:160,21:160,22:96,23:96},11:{11:352,12:224,13:192,21:176,22:112,23:112},12:{11:384,12:256,13:224,21:192,22:128,23:128},13:{11:416,12:320,13:256,21:224,22:144,23:144},14:{11:448,12:384,13:320,21:256,22:160,23:160}},f.sampling_rate_freq_index={1:{0:44100,1:48e3,2:32e3},2:{0:22050,1:24e3,2:16e3},2.5:{0:11025,1:12e3,2:8e3}},f.samplesInFrameTable=[[0,384,1152,1152],[0,384,1152,576]];class u{static getVbrCodecProfile(e){return"V"+(100-e)/10}}u.FrameHeader={len:4,get:(e,t)=>new f(e,t)};class c extends o.AbstractID3Parser{constructor(){super(...arguments),this.frameCount=0,this.syncFrameCount=0,this.countSkipFrameData=0,this.bitrates=[],this.calculateEofDuration=!1,this.buf_frame_header=e.alloc(4),this.syncPeek={buf:e.alloc(d),len:0}}_parse(){return t(this,void 0,void 0,function*(){this.metadata.setFormat("lossless",!1);try{let t=!1;for(;!t;)yield this.sync(),t=yield this.parseAudioFrameHeader()}catch(e){if(e.message!==a.endOfFile)throw e;if(this.calculateEofDuration){const e=this.frameCount*this.samplesPerFrame;this.metadata.setFormat("numberOfSamples",e);const t=e/this.metadata.format.sampleRate;h(`Calculate duration at EOF: ${t} sec.`,t),this.metadata.setFormat("duration",t)}}})}finalize(){const e=this.metadata.format,t=this.metadata.native.hasOwnProperty("ID3v1");if(e.duration&&this.tokenizer.fileSize){const i=this.tokenizer.fileSize-this.mpegOffset-(t?128:0);e.codecProfile&&"V"===e.codecProfile[0]&&this.metadata.setFormat("bitrate",8*i/e.duration)}else if(this.tokenizer.fileSize&&"CBR"===e.codecProfile){const i=this.tokenizer.fileSize-this.mpegOffset-(t?128:0),r=Math.round(i/this.frame_size)*this.samplesPerFrame;this.metadata.setFormat("numberOfSamples",r);const a=r/e.sampleRate;h("Calculate CBR duration based on file size: %s",a),this.metadata.setFormat("duration",a)}}sync(){return t(this,void 0,void 0,function*(){let e=!1;for(;;){let t=0;if(this.syncPeek.len=yield this.tokenizer.peekBuffer(this.syncPeek.buf,0,d,this.tokenizer.position,!0),this.syncPeek.len<=256)throw new Error(a.endOfFile);if(0===this.syncPeek.len)throw new Error(a.endOfFile);for(;;){if(e&&224==(224&this.syncPeek.buf[t]))return this.buf_frame_header[0]=f.SyncByte1,this.buf_frame_header[1]=this.syncPeek.buf[t],yield this.tokenizer.ignore(t),h(`Sync at offset=${this.tokenizer.position-1}`),this.syncFrameCount===this.frameCount&&(h("Reset MPEG stream, no valid frame in between syncs"),this.frameCount=0,this.frame_size=0),void(this.syncFrameCount=this.frameCount);if(e=!1,-1===(t=this.syncPeek.buf.indexOf(f.SyncByte1,t))){if(this.syncPeek.len=0,"frame-data-left cannot be negative"),yield this.tokenizer.readToken(new r.IgnoreType(e)),this.countSkipFrameData+=e})}areAllSame(e){const t=e[0];return e.every(e=>e===t)}}exports.MpegParser=c; -},{"assert":"g2FE","token-types":"1rOY","strtok3/lib/type":"2Fe+","debug":"j+D9","../common/Util":"7/th","../id3v2/AbstractID3Parser":"YrDx","./XingTag":"Edi5","buffer":"aMB2"}],"YBLm":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))(function(r,a){function l(e){try{s(n.next(e))}catch(t){a(t)}}function o(e){try{s(n.throw(e))}catch(t){a(t)}}function s(e){e.done?r(e.value):new i(function(t){t(e.value)}).then(l,o)}s((n=n.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("token-types"),i=require("../../common/Util"),n=require("debug"),r=n("music-metadata:parser:musepack:sv8"),a=new t.StringType(2,"binary"),l={len:5,get:(e,i)=>({crc:t.UINT32_LE.get(e,i),streamVersion:t.UINT8.get(e,i+4)})},o={len:2,get:(e,t)=>({sampleFrequency:[44100,48e3,37800,32e3][i.default.getBitAllignedNumber(e,t,0,3)],maxUsedBands:i.default.getBitAllignedNumber(e,t,3,5),channelCount:i.default.getBitAllignedNumber(e,t+1,0,4)+1,msUsed:i.default.isBitSet(e,t+1,4),audioBlockFrames:i.default.getBitAllignedNumber(e,t+1,5,3)})};class s{constructor(e){this.tokenizer=e}readPacketHeader(){return e(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(a),t=yield this.readVariableSizeField();return{key:e,payloadLength:t.value-2-t.len}})}readStreamHeader(t){return e(this,void 0,void 0,function*(){const e={};r(`Reading SH at offset=${this.tokenizer.position}`);const i=yield this.tokenizer.readToken(l);t-=l.len,Object.assign(e,i),r(`SH.streamVersion = ${i.streamVersion}`);const n=yield this.readVariableSizeField();t-=n.len,e.sampleCount=n.value;const a=yield this.readVariableSizeField();t-=a.len,e.beginningOfSilence=a.value;const s=yield this.tokenizer.readToken(o);return t-=o.len,Object.assign(e,s),yield this.tokenizer.ignore(t),e})}readVariableSizeField(i=1,n=0){return e(this,void 0,void 0,function*(){let e=yield this.tokenizer.readToken(t.UINT8);return 0==(128&e)?{len:i,value:n+e}:(e&=127,e+=n,this.readVariableSizeField(i+1,e<<7))})}}exports.StreamReader=s; -},{"token-types":"1rOY","../../common/Util":"7/th","debug":"j+D9"}],"8WHp":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))(function(s,n){function i(e){try{c(r.next(e))}catch(t){n(t)}}function o(e){try{c(r.throw(e))}catch(t){n(t)}}function c(e){e.done?s(e.value):new a(function(t){t(e.value)}).then(i,o)}c((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("debug"),a=require("assert"),r=require("../../common/BasicParser"),s=require("./StreamVersion8"),n=require("../../apev2/APEv2Parser"),i=require("../../common/FourCC"),o=t("music-metadata:parser:musepack");class c extends r.BasicParser{constructor(){super(...arguments),this.audioLength=0}parse(){return e(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(i.FourCcToken);return a.equal(e,"MPCK","Magic number"),this.metadata.setFormat("dataformat","Musepack, SV8"),this.parsePacket()})}parsePacket(){return e(this,void 0,void 0,function*(){const e=new s.StreamReader(this.tokenizer);for(;;){const t=yield e.readPacketHeader();switch(o(`packet-header key=${t.key}, payloadLength=${t.payloadLength}`),t.key){case"SH":const a=yield e.readStreamHeader(t.payloadLength);this.metadata.setFormat("numberOfSamples",a.sampleCount),this.metadata.setFormat("sampleRate",a.sampleFrequency),this.metadata.setFormat("duration",a.sampleCount/a.sampleFrequency),this.metadata.setFormat("numberOfChannels",a.channelCount);break;case"AP":this.audioLength+=t.payloadLength,yield this.tokenizer.ignore(t.payloadLength);break;case"RG":case"EI":case"SO":case"ST":case"CT":yield this.tokenizer.ignore(t.payloadLength);break;case"SE":return this.metadata.setFormat("bitrate",8*this.audioLength/this.metadata.format.duration),n.APEv2Parser.parseTagHeader(this.metadata,this.tokenizer,this.options);default:throw new Error(`Unexpected header: ${t.key}`)}}})}}exports.MpcSv8Parser=c; -},{"debug":"j+D9","assert":"g2FE","../../common/BasicParser":"7c1v","./StreamVersion8":"YBLm","../../apev2/APEv2Parser":"18SM","../../common/FourCC":"ooww"}],"hUtw":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),t=require("../../common/Util");exports.Header={len:24,get:(i,l)=>{const r={signature:i.toString("binary",l,l+3),streamMinorVersion:t.default.getBitAllignedNumber(i,l+3,0,4),streamMajorVersion:t.default.getBitAllignedNumber(i,l+3,4,4),frameCount:e.UINT32_LE.get(i,l+4),maxLevel:e.UINT16_LE.get(i,l+8),sampleFrequency:[44100,48e3,37800,32e3][t.default.getBitAllignedNumber(i,l+10,0,2)],link:t.default.getBitAllignedNumber(i,l+10,2,2),profile:t.default.getBitAllignedNumber(i,l+10,4,4),maxBand:t.default.getBitAllignedNumber(i,l+11,0,6),intensityStereo:t.default.isBitSet(i,l+11,6),midSideStereo:t.default.isBitSet(i,l+11,7),titlePeak:e.UINT16_LE.get(i,l+12),titleGain:e.UINT16_LE.get(i,l+14),albumPeak:e.UINT16_LE.get(i,l+16),albumGain:e.UINT16_LE.get(i,l+18),lastFrameLength:e.UINT32_LE.get(i,l+20)>>>20&2047,trueGapless:t.default.isBitSet(i,l+23,0)};return r.lastFrameLength=r.trueGapless?e.UINT32_LE.get(i,20)>>>20&2047:0,r}}; -},{"token-types":"1rOY","../../common/Util":"7/th"}],"Kg5s":[function(require,module,exports) { -"use strict";var t=this&&this.__awaiter||function(t,i,o,s){return new(o||(o=Promise))(function(e,r){function n(t){try{h(s.next(t))}catch(i){r(i)}}function d(t){try{h(s.throw(t))}catch(i){r(i)}}function h(t){t.done?e(t.value):new o(function(i){i(t.value)}).then(n,d)}h((s=s.apply(t,i||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const i=require("token-types");class o{constructor(t){this.tokenizer=t,this.pos=0,this.dword=void 0}read(o){return t(this,void 0,void 0,function*(){for(;void 0===this.dword;)this.dword=yield this.tokenizer.readToken(i.UINT32_LE);let t=this.dword;return this.pos+=o,this.pos<32?(t>>>=32-this.pos)&(1<>>32-this.pos),t&(1<0){const t=32-this.pos;this.dword=void 0,i-=t,this.pos=0}const t=i%32,o=(i-t)/32;return yield this.tokenizer.ignore(4*o),this.read(t)})}}exports.BitReader=o; -},{"token-types":"1rOY"}],"43mO":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,r,a){return new(r||(r=Promise))(function(i,s){function n(e){try{d(a.next(e))}catch(t){s(t)}}function o(e){try{d(a.throw(e))}catch(t){s(t)}}function d(e){e.done?i(e.value):new r(function(t){t(e.value)}).then(n,o)}d((a=a.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("debug"),r=require("assert"),a=require("../../common/BasicParser"),i=require("./StreamVersion7"),s=require("../../apev2/APEv2Parser"),n=require("./BitReader"),o=t("music-metadata:parser:musepack");class d extends a.BasicParser{constructor(){super(...arguments),this.audioLength=0}parse(){return e(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(i.Header);r.equal(e.signature,"MP+","Magic number"),o(`stream-version=${e.streamMajorVersion}.${e.streamMinorVersion}`),this.metadata.setFormat("dataformat","Musepack, SV7"),this.metadata.setFormat("sampleRate",e.sampleFrequency);const t=1152*(e.frameCount-1)+e.lastFrameLength;this.metadata.setFormat("numberOfSamples",t),this.duration=t/e.sampleFrequency,this.metadata.setFormat("duration",this.duration),this.bitreader=new n.BitReader(this.tokenizer),this.metadata.setFormat("numberOfChannels",e.midSideStereo||e.intensityStereo?2:1);const a=yield this.bitreader.read(8);return this.metadata.setFormat("encoder",(a/100).toFixed(2)),yield this.skipAudioData(e.frameCount),o(`End of audio stream, switching to APEv2, offset=${this.tokenizer.position}`),s.APEv2Parser.parseTagHeader(this.metadata,this.tokenizer,this.options)})}skipAudioData(t){return e(this,void 0,void 0,function*(){for(;t-- >0;){const e=yield this.bitreader.read(20);this.audioLength+=20+e,yield this.bitreader.ignore(e)}const e=yield this.bitreader.read(11);this.audioLength+=e,this.metadata.setFormat("bitrate",this.audioLength/this.duration)})}}exports.MpcSv7Parser=d; -},{"debug":"j+D9","assert":"g2FE","../../common/BasicParser":"7c1v","./StreamVersion7":"hUtw","../../apev2/APEv2Parser":"18SM","./BitReader":"Kg5s"}],"OSjf":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,r,t,s){return new(t||(t=Promise))(function(a,n){function i(e){try{u(s.next(e))}catch(r){n(r)}}function c(e){try{u(s.throw(e))}catch(r){n(r)}}function u(e){e.done?a(e.value):new t(function(r){r(e.value)}).then(i,c)}u((s=s.apply(e,r||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const r=require("debug"),t=require("token-types"),s=require("./sv8/MpcSv8Parser"),a=require("./sv7/MpcSv7Parser"),n=require("../id3v2/AbstractID3Parser"),i=r("music-metadata:parser:musepack");class c extends n.AbstractID3Parser{_parse(){return e(this,void 0,void 0,function*(){let e;switch(yield this.tokenizer.peekToken(new t.StringType(3,"binary"))){case"MP+":i("Musepack stream-version 7"),e=new a.MpcSv7Parser;break;case"MPC":i("Musepack stream-version 8"),e=new s.MpcSv8Parser;break;default:throw new Error("Invalid Musepack signature prefix")}return e.init(this.metadata,this.tokenizer,this.options),e.parse()})}}exports.default=c; -},{"debug":"j+D9","token-types":"1rOY","./sv8/MpcSv8Parser":"8WHp","./sv7/MpcSv7Parser":"43mO","../id3v2/AbstractID3Parser":"YrDx"}],"l6eO":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer;Object.defineProperty(exports,"__esModule",{value:!0});const t=require("token-types"),a=require("debug"),s=require("./Vorbis"),r=a("music-metadata:parser:ogg:vorbis1");class i{constructor(e,t){this.metadata=e,this.options=t,this.codecName="Vorbis I",this.pageSegments=[]}parsePage(t,a){if(t.headerType.firstPage)this.parseFirstPage(t,a);else{if(t.headerType.continued){if(0===this.pageSegments.length)throw new Error("Cannot continue on previous page");this.pageSegments.push(a)}if(t.headerType.lastPage||!t.headerType.continued){if(this.pageSegments.length>0){const t=e.concat(this.pageSegments);this.parseFullPage(t)}this.pageSegments=t.headerType.lastPage?[]:[a]}}t.headerType.lastPage&&this.calculateDuration(t)}flush(){this.parseFullPage(e.concat(this.pageSegments))}parseFirstPage(e,t){r("Parse first page");const a=s.CommonHeader.get(t,0);if("vorbis"!==a.vorbis)throw new Error("Metadata does not look like Vorbis");if(1!==a.packetType)throw new Error("First Ogg page should be type 1: the identification header");{const e=s.IdentificationHeader.get(t,s.CommonHeader.len);this.metadata.setFormat("sampleRate",e.sampleRate),this.metadata.setFormat("bitrate",e.bitrateNominal),this.metadata.setFormat("numberOfChannels",e.channelMode),r("sample-rate=%s[hz], bitrate=%s[b/s], channel-mode=%s",e.sampleRate,e.bitrateNominal,e.channelMode)}}parseFullPage(e){const t=s.CommonHeader.get(e,0);switch(r("Parse full page: type=%s, byteLength=%s",t.packetType,e.byteLength),t.packetType){case 3:return this.parseUserCommentList(e,s.CommonHeader.len)}}calculateDuration(e){this.metadata.format.sampleRate&&e.absoluteGranulePosition>=0&&(this.metadata.setFormat("numberOfSamples",e.absoluteGranulePosition),this.metadata.setFormat("duration",this.metadata.format.numberOfSamples/this.metadata.format.sampleRate))}parseUserCommentList(e,a){const s=t.UINT32_LE.get(e,a);a+=4;new t.StringType(s,"utf-8").get(e,a);a+=s;let r=t.UINT32_LE.get(e,a);for(a+=4;r-- >0;)a+=this.parseUserComment(e,a)}parseUserComment(e,a){const i=t.UINT32_LE.get(e,a),o=new t.StringType(i,"utf-8").get(e,a+4),n=o.indexOf("="),m=o.slice(0,n).toUpperCase();let l=o.slice(n+1);return"METADATA_BLOCK_PICTURE"===m&&(l=this.options.skipCovers?null:s.VorbisPictureToken.fromBase64(l)),null!==l&&(r("Push tag: id=%s, value=%s",m,l),this.metadata.addTag("vorbis",m,l)),t.UINT32_LE.len+i}}exports.VorbisParser=i; -},{"token-types":"1rOY","debug":"j+D9","./Vorbis":"+Rr8","buffer":"aMB2"}],"1Qh5":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types");class t{constructor(e){if(this.len=e,e<19)throw new Error("ID-header-page 0 should be at least 19 bytes long")}get(t,r){return{magicSignature:new e.StringType(8,"ascii").get(t,r+0),version:t.readUInt8(r+8),channelCount:t.readUInt8(r+9),preSkip:t.readInt16LE(r+10),inputSampleRate:t.readInt32LE(r+12),outputGain:t.readInt16LE(r+16),channelMapping:t.readUInt8(r+18)}}}exports.IdHeader=t; -},{"token-types":"1rOY"}],"kRPc":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t=require("token-types"),e=require("./Opus"),a=require("../vorbis/VorbisParser");class s extends a.VorbisParser{constructor(t,e,a){super(t,e),this.tokenizer=a,this.codecName="Opus",this.lastPos=-1}parseFirstPage(t,a){if(this.idHeader=new e.IdHeader(a.length).get(a,0),"OpusHead"!==this.idHeader.magicSignature)throw new Error("Illegal ogg/Opus magic-signature");this.metadata.setFormat("sampleRate",this.idHeader.inputSampleRate),this.metadata.setFormat("numberOfChannels",this.idHeader.channelCount)}parseFullPage(e){switch(new t.StringType(8,"ascii").get(e,0)){case"OpusTags":this.parseUserCommentList(e,8),this.lastPos=this.tokenizer.position}}calculateDuration(t){if(this.metadata.format.sampleRate&&t.absoluteGranulePosition>=0&&(this.metadata.setFormat("numberOfSamples",t.absoluteGranulePosition-this.idHeader.preSkip),this.metadata.setFormat("duration",this.metadata.format.numberOfSamples/this.idHeader.inputSampleRate),-1!==this.lastPos&&this.tokenizer.fileSize&&this.metadata.format.duration)){const t=this.tokenizer.fileSize-this.lastPos;this.metadata.setFormat("bitrate",8*t/this.metadata.format.duration)}}}exports.OpusParser=s; -},{"token-types":"1rOY","./Opus":"1Qh5","../vorbis/VorbisParser":"l6eO"}],"sSTC":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),r=require("../../common/Util");exports.Header={len:80,get:(t,a)=>({speex:new e.StringType(8,"ascii").get(t,a+0),version:r.default.trimRightNull(new e.StringType(20,"ascii").get(t,a+8)),version_id:t.readInt32LE(a+28),header_size:t.readInt32LE(a+32),rate:t.readInt32LE(a+36),mode:t.readInt32LE(a+40),mode_bitstream_version:t.readInt32LE(a+44),nb_channels:t.readInt32LE(a+48),bitrate:t.readInt32LE(a+52),frame_size:t.readInt32LE(a+56),vbr:t.readInt32LE(a+60),frames_per_packet:t.readInt32LE(a+64),extra_headers:t.readInt32LE(a+68),reserved1:t.readInt32LE(a+72),reserved2:t.readInt32LE(a+76)})}; -},{"token-types":"1rOY","../../common/Util":"7/th"}],"3u/u":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("debug"),t=require("./Speex"),r=require("../vorbis/VorbisParser"),s=e("music-metadata:parser:ogg:speex");class a extends r.VorbisParser{constructor(e,t,r){super(e,t),this.tokenizer=r,this.codecName="Speex",this.lastPos=-1}parseFirstPage(e,r){s("First Ogg/Speex page");let a=t.Header.get(r,0);a=a,this.metadata.setFormat("numberOfChannels",a.nb_channels),this.metadata.setFormat("sampleRate",a.rate),this.metadata.setFormat("encoder",a.version),-1!==a.bitrate&&this.metadata.setFormat("bitrate",a.bitrate)}}exports.SpeexParser=a; -},{"debug":"j+D9","./Speex":"sSTC","../vorbis/VorbisParser":"l6eO"}],"Gz8y":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,r,a){return new(r||(r=Promise))(function(s,i){function o(e){try{g(a.next(e))}catch(t){i(t)}}function n(e){try{g(a.throw(e))}catch(t){i(t)}}function g(e){e.done?s(e.value):new r(function(t){t(e.value)}).then(o,n)}g((a=a.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("token-types"),r=require("debug"),a=require("../common/Util"),s=require("../common/FourCC"),i=require("./vorbis/VorbisParser"),o=require("./opus/OpusParser"),n=require("./speex/SpeexParser"),g=require("../common/BasicParser"),u=r("music-metadata:parser:ogg");class p{static sum(e,t,r){let a=0;for(let s=t;s0)return this.warnings.push("Invalid FourCC ID, maybe last OGG-page is not marked with last-page flag"),this.pageConsumer.flush();throw e}})}}c.Header={len:27,get:(e,r)=>({capturePattern:s.FourCcToken.get(e,r),version:e.readUInt8(r+4),headerType:{continued:a.default.strtokBITSET.get(e,r+5,0),firstPage:a.default.strtokBITSET.get(e,r+5,1),lastPage:a.default.strtokBITSET.get(e,r+5,2)},absoluteGranulePosition:e.readIntLE(r+6,6),streamSerialNumber:t.UINT32_LE.get(e,r+14),pageSequenceNo:t.UINT32_LE.get(e,r+18),pageChecksum:t.UINT32_LE.get(e,r+22),page_segments:e.readUInt8(r+26)})},exports.OggParser=c; -},{"token-types":"1rOY","debug":"j+D9","../common/Util":"7/th","../common/FourCC":"ooww","./vorbis/VorbisParser":"l6eO","./opus/OpusParser":"kRPc","./speex/SpeexParser":"3u/u","../common/BasicParser":"7c1v"}],"IRRZ":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),t=require("../common/FourCC");exports.Header={len:8,get:(e,r)=>({chunkID:t.FourCcToken.get(e,r),size:e.readUInt32LE(r+4)})};class r{constructor(e){this.tagHeader=e,this.len=e.size,this.len+=1&this.len}get(t,r){return new e.StringType(this.tagHeader.size,"ascii").get(t,r)}}exports.ListInfoTagValue=r; -},{"token-types":"1rOY","../common/FourCC":"ooww"}],"67Cj":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("assert");var t;!function(e){e[e.PCM=1]="PCM",e[e.ADPCM=2]="ADPCM",e[e.IEEE_FLOAT=3]="IEEE_FLOAT",e[e.MPEG_ADTS_AAC=5632]="MPEG_ADTS_AAC",e[e.MPEG_LOAS=5634]="MPEG_LOAS",e[e.RAW_AAC1=255]="RAW_AAC1",e[e.DOLBY_AC3_SPDIF=146]="DOLBY_AC3_SPDIF",e[e.DVM=8192]="DVM",e[e.RAW_SPORT=576]="RAW_SPORT",e[e.ESST_AC3=577]="ESST_AC3",e[e.DRM=9]="DRM",e[e.DTS2=8193]="DTS2",e[e.MPEG=80]="MPEG"}(t=exports.WaveFormat||(exports.WaveFormat={}));class r{constructor(t){e.ok(t.size>=16,"16 for PCM."),this.len=t.size}get(e,t){return{wFormatTag:e.readUInt16LE(t),nChannels:e.readUInt16LE(t+2),nSamplesPerSec:e.readUInt32LE(t+4),nAvgBytesPerSec:e.readUInt32LE(t+8),nBlockAlign:e.readUInt16LE(t+12),wBitsPerSample:e.readUInt16LE(t+14)}}}exports.Format=r;class n{constructor(t){e.ok(t.size>=4,"minimum fact chunk size."),this.len=t.size}get(e,t){return{dwSampleLength:e.readUInt32LE(t)}}}exports.FactChunk=n; -},{"assert":"g2FE"}],"0dld":[function(require,module,exports) { -"use strict";var e=this&&this.__awaiter||function(e,t,a,s){return new(a||(a=Promise))(function(i,r){function n(e){try{h(s.next(e))}catch(t){r(t)}}function o(e){try{h(s.throw(e))}catch(t){r(t)}}function h(e){e.done?i(e.value):new a(function(t){t(e.value)}).then(n,o)}h((s=s.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("strtok3/lib/type"),a=require("strtok3/lib/core"),s=require("token-types"),i=require("debug"),r=require("stream"),n=require("./RiffChunk"),o=require("./../wav/WaveChunk"),h=require("../id3v2/ID3v2Parser"),d=require("../common/Util"),u=require("../common/FourCC"),c=require("../common/BasicParser"),l=i("music-metadata:parser:RIFF");class m extends c.BasicParser{parse(){return e(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(n.Header);if(l(`pos=${this.tokenizer.position}, parse: chunkID=${e.chunkID}`),"RIFF"===e.chunkID)return this.parseRiffChunk().catch(e=>{if(e.message!==t.endOfFile)throw e})})}parseRiffChunk(){return e(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(u.FourCcToken);switch(this.metadata.setFormat("dataformat",e),e){case"WAVE":return this.readWaveChunk();default:throw new Error(`Unsupported RIFF format: RIFF/${e}`)}})}readWaveChunk(){return e(this,void 0,void 0,function*(){for(;;){const e=yield this.tokenizer.readToken(n.Header);switch(this.header=e,l(`pos=${this.tokenizer.position}, readChunk: chunkID=RIFF/WAVE/${e.chunkID}`),e.chunkID){case"LIST":yield this.parseListTag(e);break;case"fact":this.metadata.setFormat("lossless",!1),this.fact=yield this.tokenizer.readToken(new o.FactChunk(e));break;case"fmt ":const t=yield this.tokenizer.readToken(new o.Format(e));let i=o.WaveFormat[t.wFormatTag];i||(l("WAVE/non-PCM format="+t.wFormatTag),i="non-PCM ("+t.wFormatTag+")"),this.metadata.setFormat("dataformat","WAVE/"+i),this.metadata.setFormat("bitsPerSample",t.wBitsPerSample),this.metadata.setFormat("sampleRate",t.nSamplesPerSec),this.metadata.setFormat("numberOfChannels",t.nChannels),this.metadata.setFormat("bitrate",t.nBlockAlign*t.nSamplesPerSec*8),this.blockAlign=t.nBlockAlign;break;case"id3 ":case"ID3 ":const r=yield this.tokenizer.readToken(new s.BufferType(e.size)),n=new k(r),d=a.fromStream(n);yield h.ID3v2Parser.getInstance().parse(this.metadata,d,this.options);break;case"data":!1!==this.metadata.format.lossless&&this.metadata.setFormat("lossless",!0);const u=this.fact?this.fact.dwSampleLength:e.size/this.blockAlign;this.metadata.setFormat("numberOfSamples",u),this.metadata.setFormat("duration",u/this.metadata.format.sampleRate),this.metadata.setFormat("bitrate",this.metadata.format.numberOfChannels*this.blockAlign*this.metadata.format.sampleRate),yield this.tokenizer.ignore(e.size);break;default:l(`Ignore chunk: RIFF/${e.chunkID} of ${e.size} bytes`),this.warnings.push("Ignore chunk: RIFF/"+e.chunkID),yield this.tokenizer.ignore(e.size)}this.header.size%2==1&&(l("Read odd padding byte"),yield this.tokenizer.ignore(1))}})}parseListTag(t){return e(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(u.FourCcToken);switch(l("pos=%s, parseListTag: chunkID=RIFF/WAVE/LIST/%s",this.tokenizer.position,e),e){case"INFO":return this.parseRiffInfoTags(t.size-4);case"adtl":default:return this.warnings.push("Ignore chunk: RIFF/WAVE/LIST/"+e),l("Ignoring chunkID=RIFF/WAVE/LIST/"+e),this.tokenizer.ignore(t.size-4)}})}parseRiffInfoTags(t){return e(this,void 0,void 0,function*(){for(;t>=8;){const e=yield this.tokenizer.readToken(n.Header),a=new n.ListInfoTagValue(e),s=yield this.tokenizer.readToken(a);this.addTag(e.chunkID,d.default.stripNulls(s)),t-=8+a.len}if(0!==t)throw Error("Illegal remaining size: "+t)})}addTag(e,t){this.metadata.addTag("exif",e,t)}}exports.WaveParser=m;class k extends r.Readable{constructor(e){super(),this.buf=e}_read(){this.push(this.buf),this.push(null)}} -},{"strtok3/lib/type":"2Fe+","strtok3/lib/core":"tvmF","token-types":"1rOY","debug":"j+D9","stream":"D0Hn","./RiffChunk":"IRRZ","./../wav/WaveChunk":"67Cj","../id3v2/ID3v2Parser":"cAM/","../common/Util":"7/th","../common/FourCC":"ooww","../common/BasicParser":"7c1v"}],"h/aX":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer,t=this&&this.__awaiter||function(e,t,a,i){return new(a||(a=Promise))(function(r,o){function s(e){try{l(i.next(e))}catch(t){o(t)}}function n(e){try{l(i.throw(e))}catch(t){o(t)}}function l(e){e.done?r(e.value):new a(function(t){t(e.value)}).then(s,n)}l((i=i.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const a=require("token-types"),i=require("../apev2/APEv2Parser"),r=require("../common/FourCC"),o=require("../common/BasicParser"),s=[6e3,8e3,9600,11025,12e3,16e3,22050,24e3,32e3,44100,48e3,64e3,88200,96e3,192e3,-1];class n{static isBitSet(e,t){return 1===n.getBitAllignedNumber(e,t,1)}static getBitAllignedNumber(e,t,a){return e>>>t&4294967295>>>32-a}}n.BlockHeaderToken={len:32,get:(e,t)=>{const i=a.UINT32_LE.get(e,t+24);return{BlockID:r.FourCcToken.get(e,t),blockSize:a.UINT32_LE.get(e,t+4),version:a.UINT16_LE.get(e,t+8),totalSamples:(a.UINT8.get(e,t+11)<<32)+a.UINT32_LE.get(e,t+12),blockIndex:(a.UINT8.get(e,t+10)<<32)+a.UINT32_LE.get(e,t+16),blockSamples:a.UINT32_LE.get(e,t+20),flags:{bitsPerSample:8*(1+n.getBitAllignedNumber(i,0,2)),isMono:n.isBitSet(i,2),isHybrid:n.isBitSet(i,3),isJointStereo:n.isBitSet(i,4),crossChannel:n.isBitSet(i,5),hybridNoiseShaping:n.isBitSet(i,6),floatingPoint:n.isBitSet(i,7),samplingRate:s[n.getBitAllignedNumber(i,23,4)],isDSD:n.isBitSet(i,31)},crc:new a.BufferType(4).get(e,t+28)}}},n.MetadataIdToken={len:1,get:(e,t)=>({functionId:n.getBitAllignedNumber(e[t],0,6),isOptional:n.isBitSet(e[t],5),actualDataByteLength:n.isBitSet(e[t],6),largeBlock:n.isBitSet(e[t],7)})};class l extends o.BasicParser{parse(){return t(this,void 0,void 0,function*(){return yield this.parseWavPackBlocks(),i.APEv2Parser.parseTagHeader(this.metadata,this.tokenizer,this.options)})}parseWavPackBlocks(){return t(this,void 0,void 0,function*(){for(;;){if("wvpk"!==(yield this.tokenizer.peekToken(r.FourCcToken)))break;const e=yield this.tokenizer.readToken(n.BlockHeaderToken);if("wvpk"!==e.BlockID)throw new Error("Expected wvpk on beginning of file");0!==e.blockIndex||this.metadata.format.dataformat||(this.metadata.setFormat("dataformat","WavPack"),this.metadata.setFormat("lossless",!e.flags.isHybrid),this.metadata.setFormat("bitsPerSample",e.flags.bitsPerSample),this.metadata.setFormat("sampleRate",e.flags.samplingRate),this.metadata.setFormat("numberOfChannels",e.flags.isMono?1:2),this.metadata.setFormat("duration",e.totalSamples/e.flags.samplingRate));const t=e.blockSize-(n.BlockHeaderToken.len-8);0===e.blockIndex&&0===e.blockSamples?yield this.parseMetadataSubBlock(t):yield this.tokenizer.ignore(t)}})}parseMetadataSubBlock(i){return t(this,void 0,void 0,function*(){do{const t=yield this.tokenizer.readToken(n.MetadataIdToken),r=yield this.tokenizer.readNumber(t.largeBlock?a.UINT24_LE:a.UINT8),o=1+2*r+(t.largeBlock?a.UINT24_LE.len:a.UINT8.len);if(o>i)throw new Error("Metadata exceeding block size");const s=e.alloc(2*r);switch(yield this.tokenizer.readBuffer(s,0,s.length),t.functionId){case 0:break;case 38:this.metadata.setFormat("audioMD5",s)}i-=o}while(i>1)})}}exports.WavPackParser=l; -},{"token-types":"1rOY","../apev2/APEv2Parser":"18SM","../common/FourCC":"ooww","../common/BasicParser":"7c1v","buffer":"aMB2"}],"Ssdi":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer,r=this&&this.__awaiter||function(e,r,a,s){return new(a||(a=Promise))(function(t,c){function n(e){try{u(s.next(e))}catch(r){c(r)}}function i(e){try{u(s.throw(e))}catch(r){c(r)}}function u(e){e.done?t(e.value):new a(function(r){r(e.value)}).then(n,i)}u((s=s.apply(e,r||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const a=require("file-type"),s=require("media-typer"),t=require("debug"),c=require("./common/MetadataCollector"),n=require("./aiff/AiffParser"),i=require("./apev2/APEv2Parser"),u=require("./asf/AsfParser"),o=require("./flac/FlacParser"),p=require("./mp4/MP4Parser"),f=require("./mpeg/MpegParser"),m=require("./musepack"),g=require("./ogg/OggParser"),w=require("./riff/WaveParser"),v=require("./wavpack/WavPackParser"),d=t("music-metadata:parser:factory");class l{constructor(){this.warning=[]}static parse(s,t,c){return r(this,void 0,void 0,function*(){let r=l.getParserIdForMimeType(t)||l.getParserIdForExtension(t);if(!r){d("No parser found for MIME-type / extension: "+t);const n=e.alloc(4100);yield s.peekBuffer(n,0,n.byteLength,s.position,!0);const i=a(n);if(!i)throw new Error("Failed to guess MIME-type");if(!(r=l.getParserIdForMimeType(i.mime)))throw new Error("Guessed MIME-type not supported: "+i.mime);return this._parse(s,r,c)}return this._parse(s,r,c)})}static getParserIdForExtension(e){if(!e)return;switch(this.getExtension(e).toLocaleLowerCase()||e){case".mp2":case".mp3":case".m2a":return"mpeg";case".ape":return"apev2";case".aac":case".mp4":case".m4a":case".m4b":case".m4pa":case".m4v":case".m4r":case".3gp":return"mp4";case".wma":case".wmv":case".asf":return"asf";case".flac":return"flac";case".ogg":case".ogv":case".oga":case".ogm":case".ogx":case".opus":case".spx":return"ogg";case".aif":case".aiff":case".aifc":return"aiff";case".wav":return"riff";case".wv":case".wvp":return"wavpack";case".mpc":return"musepack"}}static loadParser(e,a){return r(this,void 0,void 0,function*(){switch(e){case"aiff":return new n.AIFFParser;case"apev2":return new i.APEv2Parser;case"asf":return new u.AsfParser;case"flac":return new o.FlacParser;case"mp4":return new p.MP4Parser;case"mpeg":return new f.MpegParser;case"musepack":return new m.default;case"ogg":return new g.OggParser;case"riff":return new w.WaveParser;case"wavpack":return new v.WavPackParser;default:throw new Error(`Unknown parser type: ${e}`)}})}static _parse(e,a,s={}){return r(this,void 0,void 0,function*(){const r=yield l.loadParser(a,s),t=new c.MetadataCollector(s);return yield r.init(t,e,s).parse(),t.toCommonMetadata()})}static getExtension(e){const r=e.lastIndexOf(".");return-1===r?"":e.slice(r)}static getParserIdForMimeType(e){let r;try{r=s.parse(e)}catch(t){return void d(`Invalid MIME-type: ${e}`)}const a=0===r.subtype.indexOf("x-")?r.subtype.substring(2):r.subtype;switch(r.type){case"audio":switch(a){case"mp3":case"mpeg":return"mpeg";case"flac":return"flac";case"ape":case"monkeys-audio":return"apev2";case"mp4":case"aac":case"aacp":case"m4a":return"mp4";case"ogg":case"opus":case"speex":return"ogg";case"ms-wma":case"ms-wmv":case"ms-asf":return"asf";case"aiff":case"aif":case"aifc":return"aiff";case"vnd.wave":case"wav":case"wave":return"riff";case"wavpack":return"wavpack";case"musepack":return"musepack"}break;case"video":switch(a){case"ms-asf":case"ms-wmv":return"asf";case"m4v":case"mp4":return"mp4";case"ogg":return"ogg"}break;case"application":switch(a){case"vnd.ms-asf":return"asf";case"ogg":return"ogg"}}}}exports.ParserFactory=l; -},{"file-type":"gPQA","media-typer":"atBn","debug":"j+D9","./common/MetadataCollector":"/KoD","./aiff/AiffParser":"EiO8","./apev2/APEv2Parser":"18SM","./asf/AsfParser":"Olyl","./flac/FlacParser":"5NdD","./mp4/MP4Parser":"fRMT","./mpeg/MpegParser":"xkWl","./musepack":"OSjf","./ogg/OggParser":"Gz8y","./riff/WaveParser":"0dld","./wavpack/WavPackParser":"h/aX","buffer":"aMB2"}],"V9fE":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const r=require("strtok3/lib/core"),e=require("./ParserFactory");function t(e,t,o={}){return i(r.fromStream(e),t,o)}function o(e,t,o={}){return i(r.fromBuffer(e),t,o)}function i(r,t,o={}){return!r.fileSize&&o.fileSize&&(r.fileSize=o.fileSize),e.ParserFactory.parse(r,t,o)}function n(r){const e={};for(const t of r)(e[t.id]=e[t.id]||[]).push(t.value);return e}function s(r){return void 0===r?0:1+Math.round(4*r)}exports.parseStream=t,exports.parseBuffer=o,exports.parseFromTokenizer=i,exports.orderTags=n,exports.ratingToStars=s; -},{"strtok3/lib/core":"tvmF","./ParserFactory":"Ssdi"}],"ugmL":[function(require,module,exports) { -module.exports=n,n.strict=a,n.loose=o;var t=Object.prototype.toString,r={"[object Int8Array]":!0,"[object Int16Array]":!0,"[object Int32Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Uint16Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0};function n(t){return a(t)||o(t)}function a(t){return t instanceof Int8Array||t instanceof Int16Array||t instanceof Int32Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Uint16Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array}function o(n){return r[t.call(n)]} -},{}],"QV2L":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var e=require("buffer").Buffer,r=require("is-typedarray").strict;module.exports=function(t){if(r(t)){var f=e.from(t.buffer);return t.byteLength!==t.buffer.byteLength&&(f=f.slice(t.byteOffset,t.byteOffset+t.byteLength)),f}return e.from(t)}; -},{"is-typedarray":"ugmL","buffer":"aMB2"}],"ktgA":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("stream");class t extends e.Readable{constructor(e){super(),this.bytesRead=0,this.reader=e.getReader()}_read(){this.reader.read().then(e=>{e.done?this.push(null):(this.bytesRead+=e.value.length,this.push(e.value))})}_destroy(e,t){this.reader.cancel().then(()=>{t(null)}).catch(e=>{t(e)})}}exports.Browser2NodeStream=t; -},{"stream":"D0Hn"}],"yy1F":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("debug"),r=require("music-metadata/lib/core"),t=require("typedarray-to-buffer"),o=require("./fetch/Browser2NodeStream"),a=e("music-metadata-browser");function s(e,r,t){const s=new o.Browser2NodeStream(e);return exports.parseNodeStream(s,r,t).then(e=>(a(`Completed parsing from stream 1bytesRead=${s.bytesRead} / fileSize=${t&&t.fileSize?t.fileSize:"?"}`),e))}function n(e,t){return p(e).then(o=>r.parseBuffer(o,e.type,t))}function i(e,r){return fetch(e).then(e=>{const t=e.headers.get("Content-Type"),o=[];if(e.headers.forEach(e=>{o.push(e)}),e.ok)return e.body?this.parseReadableStream(e.body,t,r).then(r=>(e.body.cancel(),r)):e.blob().then(e=>this.parseBlob(e,r));throw new Error(`HTTP error status=${e.status}: ${e.statusText}`)})}function p(e){return new Promise((r,o)=>{const a=new FileReader;a.onloadend=(e=>{let o=e.target.result;o instanceof ArrayBuffer&&(o=t(new Uint8Array(e.target.result))),r(o)}),a.onerror=(e=>{o(new Error(e.type))}),a.onabort=(e=>{o(new Error(e.type))}),a.readAsArrayBuffer(e)})}exports.parseNodeStream=r.parseStream,exports.parseReadableStream=s,exports.parseBuffer=r.parseBuffer,exports.parseBlob=n,exports.fetchFromUrl=i,exports.parseFromTokenizer=r.parseFromTokenizer,exports.orderTags=r.orderTags,exports.ratingToStars=r.ratingToStars; -},{"debug":"j+D9","music-metadata/lib/core":"V9fE","typedarray-to-buffer":"QV2L","./fetch/Browser2NodeStream":"ktgA"}],"pQHU":[function(require,module,exports) { -var Buffer = require("buffer").Buffer; -var t=require("buffer").Buffer;Object.defineProperty(exports,"__esModule",{value:!0});const e=-1;class a{constructor(){this._fileData=[]}addData(t,a){const f=t+a.byteLength-1,s=this._getChunkRange(t,f);if(s.startIx===e)this._fileData.splice(s.insertIx||0,0,{offset:t,data:a});else{const e=this._fileData[s.startIx],i=this._fileData[s.endIx],n=t>e.offset,r=f=f.offset&&e=o&&i<=h){n=this._fileData[r];const h=i-o,l=Math.min(s,n.data.byteLength-h);return t.from(n.data).copy(e,a,h,h+l),l=s-1){f=e;break}}if(f===e)return{startIx:e,endIx:e,insertIx:i};for(let e=f;e=t-1&&(s=e),a<=t+this._fileData[e].data.byteLength+1)break}return s===e&&(s=f),{startIx:f,endIx:s}}}exports.ChunkedFileData=a; -},{"buffer":"aMB2"}],"L2sF":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("debug"),t=require("strtok3/lib/AbstractTokenizer"),n=require("./chunked-file-data"),i=e("xhr");class s extends t.AbstractTokenizer{constructor(e,t){super(),this.url=e,this.config={avoidHeadRequests:!1,initialChunkSize:4096,minimumChunkSize:1024},t&&Object.assign(this.config,t),this._fileData=new n.ChunkedFileData,this._isInitialized=!1,this.fileSize=0}static getContentLength(e){const t=e.get("Content-Length");return t?parseInt(t,10):void 0}readBuffer(e,t=0,n=e.length,s){return s&&(this.position=s),i(`readBuffer position=${this.position} length=${n}`),0===n?Promise.resolve(0):(n||(n=e.length),this.peekBuffer(e,t,n,this.position).then(()=>(this.position+=n,n)))}peekBuffer(e,t=0,n=e.length,s=this.position){i(`peekBuffer position=${s} length=${n}`);const r=s+n-1;return this.loadRange([s,r]).then(()=>(this._fileData.readToBuffer(e,t,s,n),n))}ignore(e){const t=this.fileSize-this.position;return e<=t?(this.position+=e,Promise.resolve(e)):(this.position+=t,Promise.resolve(t))}init(){return this.config.avoidHeadRequests?this._fetchSizeWithGetRequest():this._fetchSizeWithHeadRequest()}loadRange(e){return i(`loadRange ${e[0]}..${e[1]}`),this._fileData.hasDataRange(e[0],Math.min(this.fileSize,e[1]))?(i("Read from cache"),Promise.resolve()):((e=this._roundRange(e))[1]=Math.min(this.fileSize,e[1]),i(`adjust range to: ${e[0]}..${e[1]}`),this._getResponse("GET",e).then(t=>t.arrayBuffer().then(t=>{this._fileData.addData(e[0],t)})))}_fetchSizeWithHeadRequest(){return i("_fetchSizeWithHeadRequest()"),fetch(this.url,{method:"HEAD"}).then(e=>{const t=s.getContentLength(e.headers);if(!t)return i("Content-Length not provided by the server, fallback to GET requests"),this._fetchSizeWithGetRequest();i(`contentLength=${t}`),this.fileSize=t,this.contentType=e.headers.get("Content-Type")})}_fetchSizeWithGetRequest(){const e=this._roundRange([0,this.config.initialChunkSize]);return this._getResponse("GET",e).then(e=>{const t=this._parseContentRange(e.headers);if(i(`_fetchSizeWithGetRequest response: contentRange=${t}`),this.contentType=e.headers.get("Content-Type"),t)return this.fileSize=t.instanceLength,e;throw new Error("Did not get a content range")})}_parseContentRange(e){const t=e.get("Content-Range");if(i(`_parseContentRang response: contentRange=${t}`),t){const e=t.match(/bytes (\d+)-(\d+)\/(?:(\d+)|\*)/i);if(!e)throw new Error("FIXME: Unknown Content-Range syntax: "+t);return{firstBytePosition:parseInt(e[1],10),lastBytePosition:parseInt(e[2],10),instanceLength:e[3]?parseInt(e[3],10):null}}return null}_roundRange(e){const t=e[1]-e[0]+1,n=Math.max(this.config.minimumChunkSize,t);return[e[0],e[0]+n-1]}_getResponse(e,t){i(t?`_makeXHRRequest ${e} ${t[0]}..${t[1]}`:`_makeXHRRequest ${e} (range not provided)`);const n=new Headers;return n.set("Range","bytes="+t[0]+"-"+t[1]),fetch(this.url,{method:e,headers:n}).then(e=>{if(e.ok)return e;throw new Error(`Unexpected HTTP response status=${e.status}`)})}}exports.StreamingHttpTokenReader=s; -},{"debug":"j+D9","strtok3/lib/AbstractTokenizer":"PoRW","./chunked-file-data":"pQHU"}],"Focm":[function(require,module,exports) { -"use strict";var e=t(require("music-metadata-browser")),r=require("streaming-http-token-reader");function t(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var a=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,t):{};a.get||a.set?Object.defineProperty(r,t,a):r[t]=e[t]}return r.default=e,r}self.musicMetadata=e,self.StreamingHttpTokenReader=r.StreamingHttpTokenReader; -},{"music-metadata-browser":"yy1F","streaming-http-token-reader":"L2sF"}]},{},["Focm"], null) \ No newline at end of file -- 2.51.2