A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

Processing Pt. 4

+235 -237
+3 -3
elm.json
··· 24 24 "elm/virtual-dom": "1.0.2", 25 25 "elm-community/list-extra": "8.1.0", 26 26 "elm-community/maybe-extra": "5.0.0", 27 - "icidasset/elm-binary": "1.3.0", 28 - "icidasset/elm-sha": "1.0.0", 27 + "icidasset/elm-binary": "2.1.0", 28 + "icidasset/elm-sha": "2.0.0", 29 29 "jorgengranseth/elm-string-format": "1.0.1", 30 30 "justgage/tachyons-elm": "4.1.1", 31 31 "noahzgordon/elm-color-extra": "1.0.1", ··· 48 48 "direct": {}, 49 49 "indirect": {} 50 50 } 51 - } 51 + }
+1 -1
src/Applications/Brain.elm
··· 89 89 90 90 91 91 92 - -- 📣 ▒▒▒ CHILDREN & REPLIES 92 + -- 📣 ░░░ CHILDREN & REPLIES 93 93 94 94 95 95 translateReply : Reply -> Msg
+2 -13
src/Applications/Brain/Sources/Processing.elm
··· 82 82 _ -> 83 83 ( { model | status = NotProcessing } 84 84 , Cmd.none 85 - , Nothing 85 + , Just [ NudgeUI Alien.FinishedProcessingSources ] 86 86 ) 87 87 88 88 ----------------------------------------- ··· 110 110 -- Make a file list/tree. 111 111 ----------------------------------------- 112 112 TreeStep context (Ok response) -> 113 - let 114 - dbg = 115 - Debug.log "treeStep" response 116 - in 117 113 case model.status of 118 114 Processing ( source, tracks ) rest -> 119 115 ( { model | status = Processing ( context.source, tracks ) rest } ··· 151 147 -- Get the tags for each file in the file list. 152 148 ----------------------------------------- 153 149 TagsStep tagsContext -> 154 - let 155 - dbg = 156 - Debug.log "tags" tagsContext 157 - in 158 150 ( model 159 151 ---------- 160 152 -- Command ··· 162 154 , case model.status of 163 155 Processing ( source, _ ) _ -> 164 156 source 165 - |> Debug.log "tagsSource" 166 157 |> Steps.takeTagsStep model.currentTime tagsContext 167 - |> Debug.log "tagsCmd" 168 - |> Maybe.withDefault Cmd.none 158 + |> Maybe.withDefault (do NextInLine) 169 159 170 160 NotProcessing -> 171 161 Cmd.none ··· 179 169 False -> 180 170 tagsContext 181 171 |> tracksFromTagsContext 182 - |> Debug.log "tracks" 183 172 |> Encode.list Tracks.Encoding.encodeTrack 184 173 |> GiveUI Alien.AddTracks 185 174 |> List.singleton
+28 -4
src/Applications/UI.elm
··· 206 206 | page = Page.fromUrl url 207 207 , url = url 208 208 } 209 - , Ports.removeFocus () 209 + , Cmd.none 210 210 ) 211 211 212 212 213 213 214 - -- 📣 ▒▒▒ CHILDREN & REPLIES 214 + -- 📣 ░░░ CHILDREN & REPLIES 215 215 216 216 217 217 translateReply : Reply -> Msg ··· 252 252 translateAlienEvent : Alien.Event -> Msg 253 253 translateAlienEvent event = 254 254 case Alien.tagFromString event.tag of 255 + Just Alien.AddTracks -> 256 + let 257 + dbg = 258 + -- TODO 259 + Debug.log "addTracks" event 260 + in 261 + Bypass 262 + 263 + Just Alien.FinishedProcessingSources -> 264 + SourcesMsg UI.Sources.FinishedProcessing 265 + 255 266 Just Alien.HideLoadingScreen -> 256 267 ToggleLoadingScreen Off 257 268 ··· 261 272 Just Alien.LoadHypaethralUserData -> 262 273 LoadHypaethralUserData event.data 263 274 275 + Just Alien.RemoveTracksByPath -> 276 + -- TODO 277 + Bypass 278 + 264 279 Just Alien.ReportGenericError -> 265 280 let 266 281 dbg = 282 + -- TODO 267 283 Debug.log "error" event 268 284 in 285 + Bypass 286 + 287 + Just Alien.ReportProcessingError -> 288 + -- TODO 289 + Bypass 290 + 291 + Just Alien.UpdateSourceData -> 292 + -- TODO 269 293 Bypass 270 294 271 295 _ -> ··· 351 375 352 376 353 377 354 - -- 🗺 ▒▒▒ BITS 378 + -- 🗺 ░░░ BITS 355 379 356 380 357 381 content : List (Html msg) -> Html msg ··· 374 398 375 399 376 400 377 - -- 🖼 ▒▒▒ GLOBAL 401 + -- 🖼 ░░░ GLOBAL 378 402 379 403 380 404 globalCss : List Css.Global.Snippet
+1
src/Applications/UI/Navigation.elm
··· 197 197 , Css.borderRight3 (px 1) solid (Color.toElmCssColor localColors.border) 198 198 , Css.borderTop3 (px 2) solid transparent 199 199 , Css.color (Color.toElmCssColor localColors.text) 200 + , Css.flexBasis (px 0) 200 201 , Css.height (px 43) 201 202 , UI.Kit.navFocus 202 203
+1 -4
src/Applications/UI/Ports.elm
··· 1 - port module UI.Ports exposing (fromBrain, removeFocus, toBrain) 1 + port module UI.Ports exposing (fromBrain, toBrain) 2 2 3 3 import Alien 4 4 5 5 6 6 7 7 -- 📣 8 - 9 - 10 - port removeFocus : () -> Cmd msg 11 8 12 9 13 10 port toBrain : Alien.Event -> Cmd msg
+27 -5
src/Applications/UI/Sources.elm
··· 28 28 type alias Model = 29 29 { collection : List Source 30 30 , form : Form.Model 31 + , isProcessing : Bool 31 32 } 32 33 33 34 ··· 35 36 initialModel = 36 37 { collection = [] 37 38 , form = Form.initialModel 39 + , isProcessing = False 38 40 } 39 41 40 42 ··· 44 46 45 47 type Msg 46 48 = Bypass 49 + | FinishedProcessing 47 50 | Process 48 51 ----------------------------------------- 49 52 -- Collection ··· 62 65 Bypass -> 63 66 Return3.withNothing model 64 67 68 + FinishedProcessing -> 69 + ( { model | isProcessing = False } 70 + , Cmd.none 71 + , Nothing 72 + ) 73 + 65 74 Process -> 66 - ( model, Cmd.none, Just [ UI.Reply.ProcessSources ] ) 75 + ( { model | isProcessing = True } 76 + , Cmd.none 77 + , Just [ UI.Reply.ProcessSources ] 78 + ) 67 79 68 80 ----------------------------------------- 69 81 -- Collection ··· 124 136 , Label "Add a new source" Shown 125 137 , GoToPage (Page.Sources New) 126 138 ) 127 - , ( Icon Icons.sync 128 - , Label "Process sources" Shown 129 - , PerformMsg Process 130 - ) 139 + 140 + -- Process 141 + ---------- 142 + , if model.isProcessing then 143 + ( Icon Icons.sync 144 + , Label "Processing sources ..." Shown 145 + , PerformMsg Bypass 146 + ) 147 + 148 + else 149 + ( Icon Icons.sync 150 + , Label "Process sources" Shown 151 + , PerformMsg Process 152 + ) 131 153 ] 132 154 133 155 -----------------------------------------
+1 -9
src/Applications/UI/Sources/Form.elm
··· 116 116 ----------------------------------------- 117 117 -- Command 118 118 ----------------------------------------- 119 - , case msg of 120 - TakeStep -> 121 - UI.Ports.removeFocus () 122 - 123 - TakeStepBackwards -> 124 - UI.Ports.removeFocus () 125 - 126 - _ -> 127 - Cmd.none 119 + , Cmd.none 128 120 ----------------------------------------- 129 121 -- Reply 130 122 -----------------------------------------
+4 -4
src/Applications/UI/UserData.elm
··· 36 36 37 37 38 38 39 - -- 📭 ▒▒▒ IMPORTING HYPAETHRAL 39 + -- 📭 ░░░ IMPORTING HYPAETHRAL 40 40 41 41 42 42 importSources : UI.Sources.Model -> HypaethralBundle -> UI.Sources.Model ··· 45 45 46 46 47 47 48 - -- 📭 ▒▒▒ DECODING 48 + -- 📭 ░░░ DECODING 49 49 50 50 51 51 decode : Decode.Value -> Result Decode.Error HypaethralUserData ··· 61 61 62 62 63 63 64 - -- 📭 ▒▒▒ FALLBACKS 64 + -- 📭 ░░░ FALLBACKS 65 65 66 66 67 67 emptyHypaethralUserData : HypaethralUserData ··· 81 81 82 82 83 83 84 - -- 📮 ▒▒▒ ENCODING 84 + -- 📮 ░░░ ENCODING 85 85 86 86 87 87 encode : UI.Core.Model -> Encode.Value
+14 -4
src/Javascript/index.js
··· 84 84 85 85 86 86 87 - // Other 87 + // Focus 88 88 // ----- 89 89 90 - app.ports.removeFocus.subscribe(_ => { 91 - var n = document.activeElement 92 - if (n && !n.dataset.keepFocus) n.blur() 90 + document.body.addEventListener("click", event => { 91 + if ( 92 + event.target.matches("button, a") || 93 + event.target.closest("button, a") 94 + ) { 95 + removeFocus() 96 + } 93 97 }) 98 + 99 + 100 + function removeFocus() { 101 + const n = document.activeElement 102 + if (n && !n.dataset.keepFocus) n.blur() 103 + }
+3 -2
src/Javascript/processing.js
··· 68 68 69 69 70 70 function pickTags(result) { 71 - const tags = result.common 71 + const tags = result && result.common 72 + if (!tags) return null 72 73 73 74 return { 74 75 disc: tags.disk.no || 1, ··· 76 77 album: tags.album && tags.album.length ? tags.album : "Unknown", 77 78 artist: tags.artist && tags.artist.length ? tags.artist : "Unknown", 78 79 title: tags.title && tags.title.length ? tags.title : "Unknown", 79 - genre: tags.genre && tags.genre[0], 80 + genre: (tags.genre && tags.genre[0]) || null, 80 81 year: tags.year || null, 81 82 picture: null 82 83 }
+7
src/Library/Alien.elm
··· 30 30 | SignOut 31 31 -- to UI 32 32 | AddTracks 33 + | FinishedProcessingSources 33 34 | HideLoadingScreen 34 35 | LoadEnclosedUserData 35 36 | LoadHypaethralUserData ··· 103 104 AddTracks -> 104 105 "ADD_TRACKS" 105 106 107 + FinishedProcessingSources -> 108 + "FINISHED_PROCESSING_SOURCES" 109 + 106 110 HideLoadingScreen -> 107 111 "HIDE_LOADING_SCREEN" 108 112 ··· 160 164 ----------------------------------------- 161 165 "ADD_TRACKS" -> 162 166 Just AddTracks 167 + 168 + "FINISHED_PROCESSING_SOURCES" -> 169 + Just FinishedProcessingSources 163 170 164 171 "HIDE_LOADING_SCREEN" -> 165 172 Just HideLoadingScreen
-58
src/Library/Crypto/Binary.elm
··· 1 - module Crypto.Binary exposing (empty, fromString, toString) 2 - 3 - import Binary exposing (Bits) 4 - 5 - 6 - {-| Convert a string to binary. 7 - Uses the UTF-8 text-encoding. 8 - 9 - >>> import Binary 10 - 11 - >>> "🤶" 12 - ..> |> fromString 13 - ..> |> Binary.toHex 14 - "1F936" 15 - 16 - >>> "abc" 17 - ..> |> fromString 18 - ..> |> Binary.toHex 19 - "616263" 20 - 21 - -} 22 - fromString : String -> Bits 23 - fromString string = 24 - string 25 - |> String.toList 26 - |> List.map (Char.toCode >> Binary.fromDecimal >> Binary.ensureBits 8) 27 - |> Binary.concat 28 - 29 - 30 - {-| Convert bits to a string. 31 - Uses the UTF-8 text-encoding. 32 - 33 - >>> import Binary 34 - 35 - >>> "1F936" 36 - ..> |> Binary.fromHex 37 - ..> |> toString 38 - "🤶" 39 - 40 - >>> "616263" 41 - ..> |> Binary.fromHex 42 - ..> |> toString 43 - "abc" 44 - 45 - -} 46 - toString : Bits -> String 47 - toString bits = 48 - bits 49 - |> Binary.chunksOf 8 50 - |> List.map (Binary.toDecimal >> Char.fromCode) 51 - |> String.fromList 52 - 53 - 54 - {-| Empty binary sequence. 55 - -} 56 - empty : Bits 57 - empty = 58 - Binary.fromBooleans []
+31 -31
src/Library/Crypto/Hmac.elm
··· 4 4 -} 5 5 6 6 import Binary exposing (Bits) 7 - import Crypto.Binary as Binary 8 7 import SHA 9 8 10 9 11 10 type alias HashFunction = 12 - String -> Bits 11 + Bits -> Bits 13 12 14 13 15 14 {-| HMAC encryption for hashing algorithms with a `blockSize` of 64. 16 15 These include: SHA-0, SHA-1, SHA-224, SHA-256, MD5, etc. 17 16 18 17 >>> import Binary 19 - >>> import Crypto.Binary as Binary 20 18 >>> import SHA 21 19 22 - >>> encrypt64 SHA.sha256 "" "" 20 + >>> Binary.fromStringAsUtf8 "" 21 + ..> |> encrypt64 SHA.sha256 "" 23 22 ..> |> Binary.toHex 24 23 ..> |> String.toLower 25 24 "b613679a0814d9ec772f95d778c35fc5ff1697c493715653c6c712144292c5ad" 26 25 27 - >>> encrypt64 SHA.sha256 "The quick brown fox jumps over the lazy dog" "key" 26 + >>> Binary.fromStringAsUtf8 "key" 27 + ..> |> encrypt64 SHA.sha256 "The quick brown fox jumps over the lazy dog" 28 28 ..> |> Binary.toHex 29 29 ..> |> String.toLower 30 30 "f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8" 31 31 32 - >>> "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b" 33 - ..> |> Binary.fromHex 34 - ..> |> Binary.toString 32 + >>> Binary.fromHex "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b" 35 33 ..> |> encrypt64 SHA.sha256 "Hi There" 36 34 ..> |> Binary.toHex 37 35 ..> |> String.toLower 38 36 "b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7" 39 37 40 38 -} 41 - encrypt64 : HashFunction -> String -> String -> Bits 39 + encrypt64 : HashFunction -> String -> Bits -> Bits 42 40 encrypt64 = 43 - encrypt 64 41 + encrypt (64 * 8) 44 42 45 43 46 44 {-| HMAC encryption for hashing algorithms with a `blockSize` of 128. 47 45 These include: SHA-384, SHA-512, etc. 48 46 -} 49 - encrypt128 : HashFunction -> String -> String -> Bits 47 + encrypt128 : HashFunction -> String -> Bits -> Bits 50 48 encrypt128 = 51 - encrypt 128 49 + encrypt (128 * 8) 52 50 53 51 54 52 55 53 -- ENCRYPT 56 54 57 55 58 - encrypt : Int -> HashFunction -> String -> String -> Bits 59 - encrypt blockSize hash message key = 56 + encrypt : Int -> HashFunction -> String -> Bits -> Bits 57 + encrypt blockSize hash messageString key = 60 58 let 61 59 keySize = 62 - String.length key 60 + Binary.width key 63 61 64 62 keyWithBlockSize = 65 63 if keySize > blockSize then 66 64 hash key 67 65 68 66 else if keySize < blockSize then 69 - Binary.fromString <| String.padRight blockSize (Char.fromCode 0) key 67 + False 68 + |> List.repeat (blockSize - keySize) 69 + |> List.append (Binary.toBooleans key) 70 + |> Binary.fromBooleans 70 71 71 72 else 72 - Binary.fromString <| key 73 + key 73 74 74 75 ( binSeqOne, binSeqTwo ) = 75 - keyWithBlockSize 76 - |> Binary.chunksOf 8 77 - |> List.map 78 - (\k -> 79 - ( Binary.xor k (Binary.fromDecimal 0x36) 80 - , Binary.xor k (Binary.fromDecimal 0x5C) 81 - ) 82 - ) 83 - |> List.unzip 84 - |> Tuple.mapBoth Binary.concat Binary.concat 76 + Tuple.mapBoth 77 + (Binary.xor keyWithBlockSize) 78 + (Binary.xor keyWithBlockSize) 79 + (padding <| blockSize // 8) 85 80 in 86 - message 87 - |> Binary.fromString 81 + messageString 82 + |> Binary.fromString 8 88 83 |> Binary.append binSeqOne 89 - |> Binary.toString 90 84 |> hash 91 85 |> Binary.append binSeqTwo 92 - |> Binary.toString 93 86 |> hash 87 + 88 + 89 + padding : Int -> ( Bits, Bits ) 90 + padding blockSize = 91 + ( Binary.concat (List.repeat blockSize <| Binary.fromHex "36") 92 + , Binary.concat (List.repeat blockSize <| Binary.fromHex "5C") 93 + )
+1 -1
src/Library/Replying.elm
··· 47 47 48 48 49 49 50 - -- 🔱 ▒▒▒ TASKS 50 + -- 🔱 ░░░ TASKS 51 51 52 52 53 53 do : msg -> Cmd msg
+1 -1
src/Library/Sources/Pick.elm
··· 25 25 26 26 musicFileRegex : Regex.Regex 27 27 musicFileRegex = 28 - "\\.(mp3|mp4|m4a|flac)$" 28 + "\\.(mp3|mp4|m4a|flac|ogg|wave|webm)$" 29 29 |> Regex.fromStringWith { caseInsensitive = True, multiline = False } 30 30 |> Maybe.withDefault Regex.never
+12 -9
src/Library/Sources/Services/AmazonS3/Presign.elm
··· 1 1 module Sources.Services.AmazonS3.Presign exposing (presignedUrl) 2 2 3 - import Binary 4 - import Crypto.Binary as Binary 3 + import Binary exposing (Bits) 5 4 import Crypto.HMAC as HMAC 6 5 import DateFormat as Date 7 6 import Dict ··· 152 151 [ "AWS4-HMAC-SHA256" 153 152 , timestamp 154 153 , String.join "/" [ date, region, "s3", "aws4_request" ] 155 - , String.toLower (Binary.toHex (SHA.sha256 request)) 154 + 155 + -- 156 + , request 157 + |> Binary.fromStringAsUtf8 158 + |> SHA.sha256 159 + |> Binary.toHex 160 + |> String.toLower 156 161 ] 157 162 158 163 -- Signature 159 164 signature = 160 165 ("AWS4" ++ Dict.fetchUnknown "secretKey" aws) 166 + |> Binary.fromStringAsUtf8 161 167 |> hmacSha256 date 162 168 |> hmacSha256 region 163 169 |> hmacSha256 "s3" 164 170 |> hmacSha256 "aws4_request" 165 171 |> hmacSha256 stringToSign 166 - |> Binary.fromString 167 172 |> Binary.toHex 168 173 |> String.toLower 169 174 in ··· 195 200 query 196 201 197 202 198 - hmacSha256 : String -> String -> String 199 - hmacSha256 message key = 200 - key 201 - |> HMAC.encrypt64 SHA.sha256 message 202 - |> Binary.toString 203 + hmacSha256 : String -> Bits -> Bits 204 + hmacSha256 = 205 + HMAC.encrypt64 SHA.sha256
+98 -88
vendor/music-metadata.min.js
··· 48 48 var e=require("buffer").Buffer;function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return r(e)||m(e)||f()}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function m(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function r(e){if(Array.isArray(e)){for(var t=0,i=new Array(e.length);t<e.length;t++)i[t]=e[t];return i}}var o=function(e){return i(e).map(function(e){return e.charCodeAt(0)})},n=o("META-INF/mozilla.rsa"),a=o("[Content_Types].xml"),p=o("_rels/.rels");function u(e){for(var t=arguments.length>1&&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;i<e.length;i++)if(t.mask){if(e[i]!==(t.mask[i]&m[i+t.offset]))return!1}else if(e[i]!==m[i+t.offset])return!1;return!0},s=function(e,t){return r(o(e),t)};if(r([255,216,255]))return{ext:"jpg",mime:"image/jpeg"};if(r([137,80,78,71,13,10,26,10]))return{ext:"png",mime:"image/png"};if(r([71,73,70]))return{ext:"gif",mime:"image/gif"};if(r([87,69,66,80],{offset:8}))return{ext:"webp",mime:"image/webp"};if(r([70,76,73,70]))return{ext:"flif",mime:"image/flif"};if((r([73,73,42,0])||r([77,77,0,42]))&&r([67,82],{offset:8}))return{ext:"cr2",mime:"image/x-canon-cr2"};if(r([73,73,42,0])||r([77,77,0,42]))return{ext:"tif",mime:"image/tiff"};if(r([66,77]))return{ext:"bmp",mime:"image/bmp"};if(r([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(r([56,66,80,83]))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(r([80,75,3,4])){if(r([109,105,109,101,116,121,112,101,97,112,112,108,105,99,97,116,105,111,110,47,101,112,117,98,43,122,105,112],{offset:30}))return{ext:"epub",mime:"application/epub+zip"};if(r(n,{offset:30}))return{ext:"xpi",mime:"application/x-xpinstall"};if(s("mimetypeapplication/vnd.oasis.opendocument.text",{offset:30}))return{ext:"odt",mime:"application/vnd.oasis.opendocument.text"};if(s("mimetypeapplication/vnd.oasis.opendocument.spreadsheet",{offset:30}))return{ext:"ods",mime:"application/vnd.oasis.opendocument.spreadsheet"};if(s("mimetypeapplication/vnd.oasis.opendocument.presentation",{offset:30}))return{ext:"odp",mime:"application/vnd.oasis.opendocument.presentation"};var x=function(e){var t=arguments.length>1&&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&&j<m.length-16;j++){if(r([73,68,51],{offset:j})||r([255,226],{offset:j,mask:[255,226]}))return{ext:"mp3",mime:"audio/mpeg"};if(r([255,228],{offset:j,mask:[255,228]}))return{ext:"mp2",mime:"audio/mpeg"};if(r([255,248],{offset:j,mask:[255,252]}))return{ext:"mp2",mime:"audio/mpeg"};if(r([255,240],{offset:j,mask:[255,252]}))return{ext:"mp4",mime:"audio/mpeg"}}if(r([102,116,121,112,77,52,65],{offset:4})||r([77,52,65,32]))return{ext:"m4a",mime:"audio/mp4"};if(r([79,112,117,115,72,101,97,100],{offset:28}))return{ext:"opus",mime:"audio/opus"};if(r([79,103,103,83]))return r([128,116,104,101,111,114,97],{offset:28})?{ext:"ogv",mime:"video/ogg"}:r([1,118,105,100,101,111,0],{offset:28})?{ext:"ogm",mime:"video/ogg"}:r([127,70,76,65,67],{offset:28})?{ext:"oga",mime:"audio/ogg"}:r([83,112,101,101,120,32,32],{offset:28})?{ext:"spx",mime:"audio/ogg"}:r([1,118,111,114,98,105,115],{offset:28})?{ext:"ogg",mime:"audio/ogg"}:{ext:"ogx",mime:"application/ogg"};if(r([102,76,97,67]))return{ext:"flac",mime:"audio/x-flac"};if(r([77,65,67,32]))return{ext:"ape",mime:"audio/ape"};if(r([119,118,112,107]))return{ext:"wv",mime:"audio/wavpack"};if(r([35,33,65,77,82,10]))return{ext:"amr",mime:"audio/amr"};if(r([37,80,68,70]))return{ext:"pdf",mime:"application/pdf"};if(r([77,90]))return{ext:"exe",mime:"application/x-msdownload"};if((67===m[0]||70===m[0])&&r([87,83],{offset:1}))return{ext:"swf",mime:"application/x-shockwave-flash"};if(r([123,92,114,116,102]))return{ext:"rtf",mime:"application/rtf"};if(r([0,97,115,109]))return{ext:"wasm",mime:"application/wasm"};if(r([119,79,70,70])&&(r([0,1,0,0],{offset:4})||r([79,84,84,79],{offset:4})))return{ext:"woff",mime:"font/woff"};if(r([119,79,70,50])&&(r([0,1,0,0],{offset:4})||r([79,84,84,79],{offset:4})))return{ext:"woff2",mime:"font/woff2"};if(r([76,80],{offset:34})&&(r([0,0,1],{offset:8})||r([1,0,2],{offset:8})||r([2,0,2],{offset:8})))return{ext:"eot",mime:"application/vnd.ms-fontobject"};if(r([0,1,0,0,0]))return{ext:"ttf",mime:"font/ttf"};if(r([79,84,84,79,0]))return{ext:"otf",mime:"font/otf"};if(r([0,0,1,0]))return{ext:"ico",mime:"image/x-icon"};if(r([0,0,2,0]))return{ext:"cur",mime:"image/x-icon"};if(r([70,76,86,1]))return{ext:"flv",mime:"video/x-flv"};if(r([37,33]))return{ext:"ps",mime:"application/postscript"};if(r([253,55,122,88,90,0]))return{ext:"xz",mime:"application/x-xz"};if(r([83,81,76,105]))return{ext:"sqlite",mime:"application/x-sqlite3"};if(r([78,69,83,26]))return{ext:"nes",mime:"application/x-nintendo-nes-rom"};if(r([67,114,50,52]))return{ext:"crx",mime:"application/x-google-chrome-extension"};if(r([77,83,67,70])||r([73,83,99,40]))return{ext:"cab",mime:"application/vnd.ms-cab-compressed"};if(r([33,60,97,114,99,104,62,10,100,101,98,105,97,110,45,98,105,110,97,114,121]))return{ext:"deb",mime:"application/x-deb"};if(r([33,60,97,114,99,104,62]))return{ext:"ar",mime:"application/x-unix-archive"};if(r([237,171,238,219]))return{ext:"rpm",mime:"application/x-rpm"};if(r([31,160])||r([31,157]))return{ext:"Z",mime:"application/x-compress"};if(r([76,90,73,80]))return{ext:"lz",mime:"application/x-lzip"};if(r([208,207,17,224,161,177,26,225]))return{ext:"msi",mime:"application/x-msi"};if(r([6,14,43,52,2,5,1,1,13,1,2,1,1,2]))return{ext:"mxf",mime:"application/mxf"};if(r([71],{offset:4})&&(r([71],{offset:192})||r([71],{offset:196})))return{ext:"mts",mime:"video/mp2t"};if(r([66,76,69,78,68,69,82]))return{ext:"blend",mime:"application/x-blender"};if(r([66,80,71,251]))return{ext:"bpg",mime:"image/bpg"};if(r([0,0,0,12,106,80,32,32,13,10,135,10])){if(r([106,112,50,32],{offset:20}))return{ext:"jp2",mime:"image/jp2"};if(r([106,112,120,32],{offset:20}))return{ext:"jpx",mime:"image/jpx"};if(r([106,112,109,32],{offset:20}))return{ext:"jpm",mime:"image/jpm"};if(r([109,106,112,50],{offset:20}))return{ext:"mj2",mime:"image/mj2"}}if(r([70,79,82,77,0]))return{ext:"aif",mime:"audio/aiff"};if(s("<?xml "))return{ext:"xml",mime:"application/xml"};if(r([66,79,79,75,77,79,66,73],{offset:60}))return{ext:"mobi",mime:"application/x-mobipocket-ebook"};if(r([102,116,121,112],{offset:4})){if(r([109,105,102,49],{offset:8}))return{ext:"heic",mime:"image/heif"};if(r([109,115,102,49],{offset:8}))return{ext:"heic",mime:"image/heif-sequence"};if(r([104,101,105,99],{offset:8})||r([104,101,105,120],{offset:8}))return{ext:"heic",mime:"image/heic"};if(r([104,101,118,99],{offset:8})||r([104,101,118,120],{offset:8}))return{ext:"heic",mime:"image/heic-sequence"}}return r([171,75,84,88,32,49,49,187,13,10,26,10])?{ext:"ktx",mime:"image/ktx"}:r([68,73,67,77],{offset:128})?{ext:"dcm",mime:"application/dicom"}:r([77,80,43])?{ext:"mpc",mime:"audio/x-musepack"}:r([77,80,67,75])?{ext:"mpc",mime:"audio/x-musepack"}:r([66,69,71,73,78,58])?{ext:"ics",mime:"text/calendar"}:r([103,108,84,70,2,0,0,0])?{ext:"glb",mime:"model/gltf-binary"}:null},Object.defineProperty(module.exports,"minimumBytes",{value:4100}); 49 49 },{"buffer":"aMB2"}],"atBn":[function(require,module,exports) { 50 50 var e=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,r=/^[\u0020-\u007e\u0080-\u00ff]+$/,t=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,a=/\\([\u0000-\u007f])/g,n=/([\\"])/g,o=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,i=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,f=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;function u(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var r=e.parameters,a=e.subtype,n=e.suffix,f=e.type;if(!f||!i.test(f))throw new TypeError("invalid type");if(!a||!o.test(a))throw new TypeError("invalid subtype");var u=f+"/"+a;if(n){if(!i.test(n))throw new TypeError("invalid suffix");u+="+"+n}if(r&&"object"==typeof r)for(var s,p=Object.keys(r).sort(),w=0;w<p.length;w++){if(s=p[w],!t.test(s))throw new TypeError("invalid parameter name");u+="; "+s+"="+y(r[s])}return u}function s(r){if(!r)throw new TypeError("argument string is required");if("object"==typeof r&&(r=p(r)),"string"!=typeof r)throw new TypeError("argument string is required to be a string");var t,n,o,i=r.indexOf(";"),f=w(-1!==i?r.substr(0,i):r),u={};for(e.lastIndex=i;n=e.exec(r);){if(n.index!==i)throw new TypeError("invalid parameter format");i+=n[0].length,t=n[1].toLowerCase(),'"'===(o=n[2])[0]&&(o=o.substr(1,o.length-2).replace(a,"$1")),u[t]=o}if(-1!==i&&i!==r.length)throw new TypeError("invalid parameter format");return f.parameters=u,f}function p(e){return"function"==typeof e.getHeader?e.getHeader("content-type"):"object"==typeof e.headers?e.headers&&e.headers["content-type"]:void 0}function y(e){var a=String(e);if(t.test(a))return a;if(a.length>0&&!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; 51 - },{}],"Wlj4":[function(require,module,exports) { 51 + },{}],"yenf":[function(require,module,exports) { 52 52 "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; 53 - },{}],"0BDm":[function(require,module,exports) { 53 + },{}],"YchG":[function(require,module,exports) { 54 54 "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; 55 - },{}],"5e0M":[function(require,module,exports) { 55 + },{}],"7/th":[function(require,module,exports) { 56 56 "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<r;t+=2){const r=e[t];e[t]=e[t+1],e[t+1]=r}return e}static readUTF16String(t){let e=0;return 254===t[0]&&255===t[1]?(t=r.swapBytes(t),e=2):255===t[0]&&254===t[1]&&(e=2),t.toString("ucs2",e)}static decodeString(t,n){if(255===t[0]&&254===t[1]&&254===t[2]&&255===t[3]&&(t=t.slice(2)),"utf16le"===n||"utf16"===n)return r.readUTF16String(t);if("utf8"===n)return t.toString("utf8");if("iso-8859-1"===n)return e.Windows1292Decoder.decode(t);throw Error(n+" encoding is not supported!")}static stripNulls(t){return t=(t=t.replace(/^\x00+/g,"")).replace(/\x00+$/g,"")}static getBitAllignedNumber(t,e,n,i){const s=n%8;let u=t[e+~~(n/8)];u&=255>>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;r<n;r++){const n=Number(t.charCodeAt(r)).toString(16);e.push(1===n.length?"0"+n:n)}return e.join(" ")}}r.strtokBITSET={get:(t,e,r)=>0!=(t[e]&1<<r),len:1},exports.default=r; 57 - },{"assert":"g2FE","./Windows1292Decoder":"0BDm"}],"1rOY":[function(require,module,exports) { 57 + },{"assert":"g2FE","./Windows1292Decoder":"YchG"}],"1rOY":[function(require,module,exports) { 58 58 "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("assert"),t=(e,t,n,r)=>{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<n;++o)r+=l.codePointToString(l.singleByteDecoder(e[o]));return r}static inRange(e,t,n){return t<=e&&e<=n}static codePointToString(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>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<n&&(o*=256);)r+=e[t+l]*o;return r}function s(e,t,n,r){t=+t,r>>>=0;let o=1,l=0;for(e[n>>>=0]=255&t;++l<r&&(o*=256);)e[n+l]=t/o&255;return n+r}function i(e,t,n){n>>>=0;let r=e[t>>>=0],o=1,l=0;for(;++l<n&&(o*=256);)r+=e[t+l]*o;return r>=(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<r&&(l*=256);)t<0&&0===u&&0!==e[n+o-1]&&(u=1),e[n+o]=(t/l>>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; 59 - },{"assert":"g2FE"}],"O0hF":[function(require,module,exports) { 59 + },{"assert":"g2FE"}],"7c1v":[function(require,module,exports) { 60 60 "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; 61 - },{}],"WTnS":[function(require,module,exports) { 61 + },{}],"ln6R":[function(require,module,exports) { 62 62 "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(e<exports.Genres.length)return exports.Genres[e]}parse(){return e(this,void 0,void 0,function*(){if(!this.tokenizer.fileSize)return void r("Skip checking for ID3v1 because the file-size is unknown");const e=this.tokenizer.fileSize-i.len;if(this.tokenizer.position>e)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; 63 - },{"debug":"j+D9","../common/Util":"5e0M","token-types":"1rOY","../common/BasicParser":"O0hF"}],"QsE/":[function(require,module,exports) { 63 + },{"debug":"j+D9","../common/Util":"7/th","token-types":"1rOY","../common/BasicParser":"7c1v"}],"kygT":[function(require,module,exports) { 64 64 "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; 65 - },{"../id3v1/ID3v1Parser":"WTnS"}],"oC4z":[function(require,module,exports) { 65 + },{"../id3v1/ID3v1Parser":"ln6R"}],"fdYL":[function(require,module,exports) { 66 66 "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; 67 - },{"../common/GenericTagMapper":"QsE/"}],"39L3":[function(require,module,exports) { 67 + },{"../common/GenericTagMapper":"kygT"}],"pl6Q":[function(require,module,exports) { 68 68 "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; 69 - },{"../common/GenericTagMapper":"QsE/","../common/Util":"5e0M"}],"+BSV":[function(require,module,exports) { 69 + },{"../common/GenericTagMapper":"kygT","../common/Util":"7/th"}],"x9MA":[function(require,module,exports) { 70 70 "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; 71 - },{"../common/GenericTagMapper":"QsE/"}],"xe48":[function(require,module,exports) { 71 + },{"../common/GenericTagMapper":"kygT"}],"avvF":[function(require,module,exports) { 72 72 "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; 73 - },{"../common/GenericTagMapper":"QsE/"}],"8e34":[function(require,module,exports) { 73 + },{"../common/GenericTagMapper":"kygT"}],"JzTY":[function(require,module,exports) { 74 74 "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; 75 - },{"../common/GenericTagMapper":"QsE/"}],"a2T+":[function(require,module,exports) { 75 + },{"../common/GenericTagMapper":"kygT"}],"sAeZ":[function(require,module,exports) { 76 76 "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; 77 - },{"../common/GenericTagMapper":"QsE/"}],"ZM9N":[function(require,module,exports) { 77 + },{"../common/GenericTagMapper":"kygT"}],"ww0I":[function(require,module,exports) { 78 78 "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; 79 - },{"../../common/GenericTagMapper":"QsE/"}],"WbCo":[function(require,module,exports) { 79 + },{"../../common/GenericTagMapper":"kygT"}],"1qtS":[function(require,module,exports) { 80 80 "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; 81 - },{"../common/GenericTagMapper":"QsE/"}],"CeTJ":[function(require,module,exports) { 81 + },{"../common/GenericTagMapper":"kygT"}],"EosV":[function(require,module,exports) { 82 82 "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; 83 - },{"../id3v1/ID3v1TagMap":"oC4z","../id3v2/ID3v24TagMapper":"39L3","../asf/AsfTagMapper":"+BSV","../id3v2/ID3v22TagMapper":"xe48","../apev2/APEv2TagMapper":"8e34","../mp4/MP4TagMapper":"a2T+","../ogg/vorbis/VorbisTagMapper":"ZM9N","../riff/RiffInfoTagMap":"WbCo"}],"34Xp":[function(require,module,exports) { 83 + },{"../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) { 84 84 "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(!(o<s))return a(`Ignore native tag (list): ${i}.${e.id} = ${e.value}`);this.common[e.id]=[e.value],this.commonOrigin[e.id]=o}this.opts.observer&&this.opts.observer({metadata:this,tag:{type:"common",id:e.id,value:e.value}})}}function n(i){return i.length>2?i.slice(0,i.length-1).join(", ")+" & "+i[i.length-1]:i.join(" & ")}exports.MetadataCollector=r,exports.joinArtists=n; 85 - },{"debug":"j+D9","./GenericTagTypes":"Wlj4","./CombinedTagMapper":"CeTJ","./GenericTagMapper":"QsE/"}],"5YKB":[function(require,module,exports) { 86 - var Buffer = require("buffer").Buffer; 87 - var e=require("buffer").Buffer,a=this&&this.__awaiter||function(e,a,r,s){return new(r||(r=Promise))(function(t,c){function n(e){try{i(s.next(e))}catch(a){c(a)}}function o(e){try{i(s.throw(e))}catch(a){c(a)}}function i(e){e.done?t(e.value):new r(function(a){a(e.value)}).then(n,o)}i((s=s.apply(e,a||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const r=require("file-type"),s=require("media-typer"),t=require("debug"),c=require("./common/MetadataCollector"),n=t("music-metadata:parser:factory");class o{constructor(){this.warning=[]}static parse(s,t,c){return a(this,void 0,void 0,function*(){let a=o.getParserIdForMimeType(t)||o.getParserIdForExtension(t);if(!a){n("No parser found for MIME-type / extension: "+t);const i=e.alloc(4100);yield s.peekBuffer(i,0,i.byteLength,s.position,!0);const u=r(i);if(!u)throw new Error("Failed to guess MIME-type");if(!(a=o.getParserIdForMimeType(u.mime)))throw new Error("Guessed MIME-type not supported: "+u.mime);return this._parse(s,a,c)}return this._parse(s,a,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,r){return a(this,void 0,void 0,function*(){if(n(`Lazy loading parser: ${e}`),r.loadParser){const a=yield r.loadParser(e);if(!a)throw new Error(`options.loadParser failed to resolve module "${e}".`);return a}return new(require("./"+e+"/index").default)})}static _parse(e,r,s={}){return a(this,void 0,void 0,function*(){const a=yield o.loadParser(r,s),t=new c.MetadataCollector(s);return yield a.init(t,e,s).parse(),t.toCommonMetadata()})}static getExtension(e){const a=e.lastIndexOf(".");return-1===a?"":e.slice(a)}static getParserIdForMimeType(e){let a;try{a=s.parse(e)}catch(t){return void n(`Invalid MIME-type: ${e}`)}const r=0===a.subtype.indexOf("x-")?a.subtype.substring(2):a.subtype;switch(a.type){case"audio":switch(r){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(r){case"ms-asf":case"ms-wmv":return"asf";case"m4v":case"mp4":return"mp4";case"ogg":return"ogg"}break;case"application":switch(r){case"vnd.ms-asf":return"asf";case"ogg":return"ogg"}}}}exports.ParserFactory=o; 88 - },{"file-type":"gPQA","media-typer":"atBn","debug":"j+D9","./common/MetadataCollector":"34Xp","buffer":"aMB2"}],"0Pvp":[function(require,module,exports) { 89 - "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; 90 - },{"strtok3/lib/core":"tvmF","./ParserFactory":"5YKB"}],"ugmL":[function(require,module,exports) { 91 - 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)]} 92 - },{}],"QV2L":[function(require,module,exports) { 93 - var Buffer = require("buffer").Buffer; 94 - 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)}; 95 - },{"is-typedarray":"ugmL","buffer":"aMB2"}],"wIHY":[function(require,module,exports) { 85 + },{"debug":"j+D9","./GenericTagTypes":"yenf","./CombinedTagMapper":"EosV","./GenericTagMapper":"kygT"}],"wIHY":[function(require,module,exports) { 96 86 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;v<o;v++)l[v].apply(this,h);return!0},e.prototype.addListener=function(s,r){var o;if(!t(r))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",s,t(r.listener)?r.listener:r),this._events[s]?i(this._events[s])?this._events[s].push(r):this._events[s]=[this._events[s],r]:this._events[s]=r,i(this._events[s])&&!this._events[s].warned&&(o=n(this._maxListeners)?e.defaultMaxListeners:this._maxListeners)&&o>0&&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)}; 97 87 },{}],"Ldkg":[function(require,module,exports) { 98 88 module.exports=require("events").EventEmitter; ··· 144 134 "use strict";module.exports=t;var r=require("./_stream_transform");function t(e){if(!(this instanceof t))return new t(e);r.call(this,e)}require("inherits")(t,r),t.prototype._transform=function(r,t,e){e(null,r)}; 145 135 },{"./_stream_transform":"oXT5","inherits":"Zvxt"}],"D0Hn":[function(require,module,exports) { 146 136 exports=module.exports=require("./lib/_stream_readable.js"),exports.Stream=exports,exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js"); 147 - },{"./lib/_stream_readable.js":"+Ebo","./lib/_stream_writable.js":"A/6d","./lib/_stream_duplex.js":"4c8A","./lib/_stream_transform.js":"oXT5","./lib/_stream_passthrough.js":"GXpZ"}],"ktgA":[function(require,module,exports) { 148 - "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; 149 - },{"stream":"D0Hn"}],"yy1F":[function(require,module,exports) { 150 - "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; 151 - },{"debug":"j+D9","music-metadata/lib/core":"0Pvp","typedarray-to-buffer":"QV2L","./fetch/Browser2NodeStream":"ktgA"}],"pQHU":[function(require,module,exports) { 137 + },{"./lib/_stream_readable.js":"+Ebo","./lib/_stream_writable.js":"A/6d","./lib/_stream_duplex.js":"4c8A","./lib/_stream_transform.js":"oXT5","./lib/_stream_passthrough.js":"GXpZ"}],"fvjB":[function(require,module,exports) { 138 + "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),t=require("../common/Util");var r;!function(e){e[e.Other=0]="Other",e[e["32x32 pixels 'file icon' (PNG only)"]=1]="32x32 pixels 'file icon' (PNG only)",e[e["Other file icon"]=2]="Other file icon",e[e["Cover (front)"]=3]="Cover (front)",e[e["Cover (back)"]=4]="Cover (back)",e[e["Leaflet page"]=5]="Leaflet page",e[e["Media (e.g. label side of CD)"]=6]="Media (e.g. label side of CD)",e[e["Lead artist/lead performer/soloist"]=7]="Lead artist/lead performer/soloist",e[e["Artist/performer"]=8]="Artist/performer",e[e.Conductor=9]="Conductor",e[e["Band/Orchestra"]=10]="Band/Orchestra",e[e.Composer=11]="Composer",e[e["Lyricist/text writer"]=12]="Lyricist/text writer",e[e["Recording Location"]=13]="Recording Location",e[e["During recording"]=14]="During recording",e[e["During performance"]=15]="During performance",e[e["Movie/video screen capture"]=16]="Movie/video screen capture",e[e["A bright coloured fish"]=17]="A bright coloured fish",e[e.Illustration=18]="Illustration",e[e["Band/artist logotype"]=19]="Band/artist logotype",e[e["Publisher/Studio logotype"]=20]="Publisher/Studio logotype"}(r=exports.AttachedPictureType||(exports.AttachedPictureType={}));class o{}o.UINT32SYNCSAFE={get:(e,t)=>127&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; 139 + },{"token-types":"1rOY","../common/Util":"7/th"}],"Nx0W":[function(require,module,exports) { 152 140 var Buffer = require("buffer").Buffer; 153 - 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<i.offset+i.data.byteLength-1,o={offset:Math.min(t,e.offset),data:a};if(n){const f=e.data.slice(0,t-e.offset);o.data=this._concatData(f,a)}if(r){const t=o.data.slice(0,i.offset-o.offset);o.data=this._concatData(t,i.data)}this._fileData.splice(s.startIx,s.endIx-s.startIx+1,o)}}hasDataRange(t,e){for(let a=0;a<this._fileData.length;a++){const f=this._fileData[a];if(e<f.offset)return!1;if(t>=f.offset&&e<f.offset+f.data.byteLength)return!0}return!1}readToBuffer(e,a,f,s){const i=f;let n;for(let r=0;r<this._fileData.length;r++){const o=this._fileData[r].offset,h=o+this._fileData[r].data.byteLength-1;if(i>=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?this.readToBuffer(e,a+l,f+l,s-l):void 0}}throw new Error(`Offset ${i} hasn't been loaded yet.`)}_concatData(t,e){const a=new Uint8Array(t.byteLength+e.byteLength);return a.set(new Uint8Array(t),0),a.set(new Uint8Array(e),t.byteLength),a.buffer}_getChunkRange(t,a){let f=e,s=e,i=0;for(let e=0;e<this._fileData.length;i=++e){const s=this._fileData[e].offset,i=s+this._fileData[e].data.byteLength;if(a<s-1)break;if(t<=i+1&&a>=s-1){f=e;break}}if(f===e)return{startIx:e,endIx:e,insertIx:i};for(let e=f;e<this._fileData.length;e++){const t=this._fileData[e].offset;if(a>=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; 154 - },{"buffer":"aMB2"}],"L2sF":[function(require,module,exports) { 155 - "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; 156 - },{"debug":"j+D9","strtok3/lib/AbstractTokenizer":"PoRW","./chunked-file-data":"pQHU"}],"SsVx":[function(require,module,exports) { 141 + 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<u;){const e=t.slice(f,f=r.default.findZero(t,f,u,l));f+=5,g.push(r.default.decodeString(e,l))}break;case"ULT":case"USLT":case"COM":case"COMM":f+=1,S.language=r.default.decodeString(t.slice(f,f+3),"iso-8859-1"),f+=3,T=r.default.findZero(t,f,u,l),S.description=r.default.decodeString(t.slice(f,T),l),f=T+p,S.text=r.default.decodeString(t.slice(f,u),l).replace(/\x00+$/,""),g=[S];break;case"UFID":g={owner_identifier:(g=s.readIdentifierAndData(t,f,u,"iso-8859-1")).id,identifier:g.data};break;case"PRIV":g={owner_identifier:(g=s.readIdentifierAndData(t,f,u,"iso-8859-1")).id,data:g.data};break;case"POPM":T=r.default.findZero(t,f,u,l);const b=r.default.decodeString(t.slice(f,T),l),P=u-(f=T+s.getNullTerminatorLength(l));g={email:b,rating:t.readUInt8(f),counter:P>=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<e.length;a+=2){const r=e[a+1].split(",");t[e[a]]=t.hasOwnProperty(e[a])?t[e[a]].concat(r):r}return t}static splitValue(e,t){const a=t.split(e>=4?/\x00/g:/\//g);return s.trimArray(a)}static trimArray(e){for(let t=0;t<e.length;++t)e[t]=e[t].replace(/\x00+$/,"").trim();return e}static readIdentifierAndData(e,t,a,i){const c=r.default.findZero(e,t,a,i),d=r.default.decodeString(e.slice(t,c),i);return t=c+s.getNullTerminatorLength(i),{id:d,data:e.slice(t,a)}}static getTextEncoding(e){switch(e){case 0:return"iso-8859-1";case 1:case 2:return"utf16";case 3:default:return"utf8"}}static getNullTerminatorLength(e){switch(e){case"utf16":return 2;default:return 1}}}exports.default=s; 142 + },{"debug":"j+D9","token-types":"1rOY","../common/Util":"7/th","./ID3v2":"fvjB","buffer":"aMB2"}],"cAM/":[function(require,module,exports) { 143 + var Buffer = require("buffer").Buffer; 144 + var e=require("buffer").Buffer,t=this&&this.__awaiter||function(e,t,r,a){return new(r||(r=Promise))(function(i,s){function n(e){try{o(a.next(e))}catch(t){s(t)}}function d(e){try{o(a.throw(e))}catch(t){s(t)}}function o(e){e.done?i(e.value):new r(function(t){t(e.value)}).then(n,d)}o((a=a.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const r=require("token-types"),a=require("../common/Util"),i=require("./FrameParser"),s=require("./ID3v2");class n{static getInstance(){return new n}static removeUnsyncBytes(e){let t=0,r=0;for(;t<e.length-1;)t!==r&&(e[r]=e[t]),t+=255===e[t]&&0===e[t+1]?2:1,r++;return t<e.length&&(e[r++]=e[t++]),e.slice(0,r)}static readFrameHeader(e,t){let a;switch(t){case 2:a={id:e.toString("ascii",0,3),length:r.UINT24_BE.get(e,3)};break;case 3:a={id:e.toString("ascii",0,4),length:r.UINT32_BE.get(e,4),flags:n.readFrameFlags(e.slice(8,10))};break;case 4:a={id:e.toString("ascii",0,4),length:s.ID3v2Token.UINT32SYNCSAFE.get(e,4),flags:n.readFrameFlags(e.slice(8,10))};break;default:throw new Error("Unexpected majorVer: "+t)}return a}static getFrameHeaderLength(e){switch(e){case 2:return 6;case 3:case 4:return 10;default:throw new Error("header versionIndex is incorrect")}}static readFrameFlags(e){return{status:{tag_alter_preservation:a.default.strtokBITSET.get(e,0,6),file_alter_preservation:a.default.strtokBITSET.get(e,0,5),read_only:a.default.strtokBITSET.get(e,0,4)},format:{grouping_identity:a.default.strtokBITSET.get(e,1,7),compression:a.default.strtokBITSET.get(e,1,3),encryption:a.default.strtokBITSET.get(e,1,2),unsynchronisation:a.default.strtokBITSET.get(e,1,1),data_length_indicator:a.default.strtokBITSET.get(e,1,0)}}}static readFrameData(e,t,r,a){switch(r){case 2:return i.default.readData(e,t.id,r,a);case 3:case 4:return t.flags.format.unsynchronisation&&(e=n.removeUnsyncBytes(e)),t.flags.format.data_length_indicator&&(e=e.slice(4,e.length)),i.default.readData(e,t.id,r,a);default:throw new Error("Unexpected majorVer: "+r)}}static makeDescriptionTagName(e,t){return e+(t?":"+t:"")}parse(e,r,a){return t(this,void 0,void 0,function*(){this.tokenizer=r,this.metadata=e,this.options=a;const t=yield this.tokenizer.readToken(s.ID3v2Token.Header);if("ID3"!==t.fileIdentifier)throw new Error("expected ID3-header file-identifier 'ID3' was not found");return this.id3Header=t,this.headerType="ID3v2."+t.version.major,t.flags.isExtendedHeader?this.parseExtendedHeader():this.parseId3Data(t.size)})}parseExtendedHeader(){return t(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(s.ID3v2Token.ExtendedHeader),t=e.size-s.ID3v2Token.ExtendedHeader.len;return t>0?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; 145 + },{"token-types":"1rOY","../common/Util":"7/th","./FrameParser":"Nx0W","./ID3v2":"fvjB","buffer":"aMB2"}],"ooww":[function(require,module,exports) { 146 + var Buffer = require("buffer").Buffer; 147 + 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)}}; 148 + },{"./Util":"7/th","buffer":"aMB2"}],"5Fqj":[function(require,module,exports) { 149 + "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<<a};if(this.isAifc){if(r.compressionType=s.FourCcToken.get(t,i+18),this.len>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; 150 + },{"token-types":"1rOY","assert":"g2FE","../common/FourCC":"ooww"}],"EiO8":[function(require,module,exports) { 151 + "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)}} 152 + },{"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) { 153 + "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<<t)}!function(e){e[e.text_utf8=0]="text_utf8",e[e.binary=1]="binary",e[e.external_info=2]="external_info",e[e.reserved=3]="reserved"}(r=exports.DataType||(exports.DataType={})),exports.DescriptorParser={len:52,get:(r,a)=>({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; 154 + },{"token-types":"1rOY","../common/FourCC":"ooww"}],"18SM":[function(require,module,exports) { 155 + var Buffer = require("buffer").Buffer; 156 + 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;h<s.fields;h++){const s=l.TagItemHeader.get(n,a);a+=l.TagItemHeader.len;let h=i.default.findZero(n,a,n.length);const u=n.toString("ascii",a,h);switch(a=h+1,s.flags.dataType){case l.DataType.text_utf8:{const e=n.toString("utf8",a,a+=s.size).split(/\x00/g);for(const s of e)r.addTag(d,u,s);break}case l.DataType.binary:if(o){const o=n.slice(a,a+s.size);let l=0;h=i.default.findZero(o,l,o.length);const p=o.toString("utf8",l,h);l=h+1;const f=e.from(o.slice(l)),m=t(f);if(m)if(0===m.mime.indexOf("image/")){const e={description:p,data:f,format:m.mime};a+=s.size,r.addTag(d,u,e)}else c(`Unexpected binary tag of type': ${m.mime}`);else c(`Failed to determine file type for binary tag: ${u}`)}break;case l.DataType.external_info:c(`Ignore external info ${u}`);break;default:throw new Error(`Unexpected data-type: ${s.flags.dataType}`)}}}parse(){return r(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(l.DescriptorParser);a.equal(e.ID,"MAC ","descriptor.ID"),this.ape.descriptor=e;const r=e.descriptorBytes-l.DescriptorParser.len,s=yield r>0?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; 157 + },{"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) { 157 158 var Buffer = require("buffer").Buffer; 158 159 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; 159 - },{"buffer":"aMB2"}],"VWU3":[function(require,module,exports) { 160 + },{"buffer":"aMB2"}],"E0Cs":[function(require,module,exports) { 160 161 var Buffer = require("buffer").Buffer; 161 162 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; 162 - },{"../common/Util":"5e0M","token-types":"1rOY","buffer":"aMB2"}],"GKOa":[function(require,module,exports) { 163 - "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),t=require("../common/Util");var r;!function(e){e[e.Other=0]="Other",e[e["32x32 pixels 'file icon' (PNG only)"]=1]="32x32 pixels 'file icon' (PNG only)",e[e["Other file icon"]=2]="Other file icon",e[e["Cover (front)"]=3]="Cover (front)",e[e["Cover (back)"]=4]="Cover (back)",e[e["Leaflet page"]=5]="Leaflet page",e[e["Media (e.g. label side of CD)"]=6]="Media (e.g. label side of CD)",e[e["Lead artist/lead performer/soloist"]=7]="Lead artist/lead performer/soloist",e[e["Artist/performer"]=8]="Artist/performer",e[e.Conductor=9]="Conductor",e[e["Band/Orchestra"]=10]="Band/Orchestra",e[e.Composer=11]="Composer",e[e["Lyricist/text writer"]=12]="Lyricist/text writer",e[e["Recording Location"]=13]="Recording Location",e[e["During recording"]=14]="During recording",e[e["During performance"]=15]="During performance",e[e["Movie/video screen capture"]=16]="Movie/video screen capture",e[e["A bright coloured fish"]=17]="A bright coloured fish",e[e.Illustration=18]="Illustration",e[e["Band/artist logotype"]=19]="Band/artist logotype",e[e["Publisher/Studio logotype"]=20]="Publisher/Studio logotype"}(r=exports.AttachedPictureType||(exports.AttachedPictureType={}));class o{}o.UINT32SYNCSAFE={get:(e,t)=>127&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; 164 - },{"token-types":"1rOY","../common/Util":"5e0M"}],"RkL5":[function(require,module,exports) { 163 + },{"../common/Util":"7/th","token-types":"1rOY","buffer":"aMB2"}],"u/2J":[function(require,module,exports) { 165 164 var Buffer = require("buffer").Buffer; 166 165 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;n<f.contentDescTags.length;++n){const o=e.readUInt16LE(t+2*n);if(o>0){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<s;o+=1){const t=e.readUInt16LE(n);n+=2;const s=a.AsfUtil.parseUnicodeAttr(e.slice(n,n+t));n+=t;const o=e.readUInt16LE(n);n+=2;const i=e.readUInt16LE(n);n+=2;const c=e.slice(n,n+i);n+=i,this.postProcessTag(r,s,o,c)}return r}}p.guid=s.default.ExtendedContentDescriptionObject,exports.ExtendedContentDescriptionObjectState=p;class g extends i{constructor(e){super(e)}get(e,s){return{startTime:r.UINT64_LE.get(e,s),endTime:r.UINT64_LE.get(e,s+8),dataBitrate:e.readInt32LE(s+12),bufferSize:e.readInt32LE(s+16),initialBufferFullness:e.readInt32LE(s+20),alternateDataBitrate:e.readInt32LE(s+24),alternateBufferSize:e.readInt32LE(s+28),alternateInitialBufferFullness:e.readInt32LE(s+32),maximumObjectSize:e.readInt32LE(s+36),flags:{reliableFlag:t.default.strtokBITSET.get(e,s+40,0),seekableFlag:t.default.strtokBITSET.get(e,s+40,1),resendLiveCleanpointsFlag:t.default.strtokBITSET.get(e,s+40,2)},streamNumber:e.readInt16LE(s+42),streamLanguageId:e.readInt16LE(s+44),averageTimePerFrame:e.readInt32LE(s+52),streamNameCount:e.readInt32LE(s+54),payloadExtensionSystems:e.readInt32LE(s+56),streamNames:[],streamPropertiesObject:null}}}g.guid=s.default.ExtendedStreamPropertiesObject,exports.ExtendedStreamPropertiesObjectState=g;class E extends i{constructor(e){super(e)}get(e,t){const r=[],s=e.readUInt16LE(t);let n=t+2;for(let o=0;o<s;o+=1){n+=4;const t=e.readUInt16LE(n);n+=2;const s=e.readUInt16LE(n);n+=2;const o=e.readUInt32LE(n);n+=4;const i=a.AsfUtil.parseUnicodeAttr(e.slice(n,n+t));n+=t;const c=e.slice(n,n+o);if(n+=o,!a.AsfUtil.getParserForAttr(s))throw new Error("unexpected value headerType: "+s);this.postProcessTag(r,i,s,c)}return r}}E.guid=s.default.MetadataObject,exports.MetadataObjectState=E;class I extends E{constructor(e){super(e)}}I.guid=s.default.MetadataLibraryObject,exports.MetadataLibraryObjectState=I;class T{constructor(e){this.len=e}static fromBase64(t){return this.fromBuffer(e.from(t,"base64"))}static fromBuffer(e){return new T(e.length).get(e,0)}get(e,t){const r=e.readUInt8(t++),s=e.readInt32LE(t);let a=5;for(;0!==e.readUInt16BE(a);)a+=2;const o=e.slice(5,a).toString("utf16le");for(;0!==e.readUInt16BE(a);)a+=2;const i=e.slice(5,a).toString("utf16le");return{type:n.AttachedPictureType[r],format:o,description:i,size:s,data:e.slice(a+4)}}}exports.WmPictureToken=T; 167 - },{"../common/Util":"5e0M","token-types":"1rOY","./GUID":"SsVx","./AsfUtil":"VWU3","../id3v2/ID3v2":"GKOa","buffer":"aMB2"}],"EvYH":[function(require,module,exports) { 166 + },{"../common/Util":"7/th","token-types":"1rOY","./GUID":"vYjs","./AsfUtil":"E0Cs","../id3v2/ID3v2":"fvjB","buffer":"aMB2"}],"Olyl":[function(require,module,exports) { 168 167 "use strict";var e=this&&this.__awaiter||function(e,t,r,a){return new(r||(r=Promise))(function(i,n){function s(e){try{d(a.next(e))}catch(t){n(t)}}function o(e){try{d(a.throw(e))}catch(t){n(t)}}function d(e){e.done?i(e.value):new r(function(t){t(e.value)}).then(s,o)}d((a=a.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("./GUID"),r=require("./AsfObject"),a=require("debug"),i=require("../common/BasicParser"),n=a("music-metadata:parser:ASF"),s="asf";class o extends i.BasicParser{parse(){return e(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(r.TopLevelHeaderObjectToken);if(!e.objectId.equals(t.default.HeaderObject))throw new Error("expected asf header; but was not found; got: "+e.objectId.str);try{yield this.parseObjectHeader(e.numberOfHeaderObjects)}catch(a){n("Error while parsing ASF: %s",a)}})}parseObjectHeader(a){return e(this,void 0,void 0,function*(){let e;do{const a=yield this.tokenizer.readToken(r.HeaderObjectToken);switch(n("header GUID=%s",a.objectId.str),a.objectId.str){case r.FilePropertiesObject.guid.str:const i=yield this.tokenizer.readToken(new r.FilePropertiesObject(a));this.metadata.setFormat("duration",i.playDuration/1e7),this.metadata.setFormat("bitrate",i.maximumBitrate);break;case r.StreamPropertiesObject.guid.str:const s=yield this.tokenizer.readToken(new r.StreamPropertiesObject(a));this.metadata.setFormat("dataformat","ASF/"+s.streamType);break;case r.HeaderExtensionObject.guid.str:const o=yield this.tokenizer.readToken(new r.HeaderExtensionObject);yield this.parseExtensionObject(o.extensionDataSize);break;case r.ContentDescriptionObjectState.guid.str:e=yield this.tokenizer.readToken(new r.ContentDescriptionObjectState(a)),this.addTags(e);break;case r.ExtendedContentDescriptionObjectState.guid.str:e=yield this.tokenizer.readToken(new r.ExtendedContentDescriptionObjectState(a)),this.addTags(e);break;case t.default.CodecListObject.str:case t.default.StreamBitratePropertiesObject.str:yield this.tokenizer.ignore(a.objectSize-r.HeaderObjectToken.len);break;case t.default.PaddingObject.str:n("Padding: %s bytes",a.objectSize-r.HeaderObjectToken.len),yield this.tokenizer.ignore(a.objectSize-r.HeaderObjectToken.len);break;default:this.warnings.push("Ignore ASF-Object-GUID: "+a.objectId.str),n("Ignore ASF-Object-GUID: %s",a.objectId.str),yield this.tokenizer.readToken(new r.IgnoreObjectState(a))}}while(--a)})}addTags(e){e.forEach(e=>{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; 169 - },{"./GUID":"SsVx","./AsfObject":"RkL5","debug":"j+D9","../common/BasicParser":"O0hF"}],"tqmk":[function(require,module,exports) { 170 - "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("./AsfParser");exports.default=e.AsfParser; 171 - },{"./AsfParser":"EvYH"}],"IGPB":[function(require,module,exports) { 168 + },{"./GUID":"vYjs","./AsfObject":"u/2J","debug":"j+D9","../common/BasicParser":"7c1v"}],"+Rr8":[function(require,module,exports) { 172 169 var Buffer = require("buffer").Buffer; 173 170 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)})}; 174 - },{"token-types":"1rOY","../../id3v2/ID3v2":"GKOa","buffer":"aMB2"}],"toCx":[function(require,module,exports) { 175 - var Buffer = require("buffer").Buffer; 176 - 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<u;){const e=t.slice(f,f=r.default.findZero(t,f,u,l));f+=5,g.push(r.default.decodeString(e,l))}break;case"ULT":case"USLT":case"COM":case"COMM":f+=1,S.language=r.default.decodeString(t.slice(f,f+3),"iso-8859-1"),f+=3,T=r.default.findZero(t,f,u,l),S.description=r.default.decodeString(t.slice(f,T),l),f=T+p,S.text=r.default.decodeString(t.slice(f,u),l).replace(/\x00+$/,""),g=[S];break;case"UFID":g={owner_identifier:(g=s.readIdentifierAndData(t,f,u,"iso-8859-1")).id,identifier:g.data};break;case"PRIV":g={owner_identifier:(g=s.readIdentifierAndData(t,f,u,"iso-8859-1")).id,data:g.data};break;case"POPM":T=r.default.findZero(t,f,u,l);const b=r.default.decodeString(t.slice(f,T),l),P=u-(f=T+s.getNullTerminatorLength(l));g={email:b,rating:t.readUInt8(f),counter:P>=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<e.length;a+=2){const r=e[a+1].split(",");t[e[a]]=t.hasOwnProperty(e[a])?t[e[a]].concat(r):r}return t}static splitValue(e,t){const a=t.split(e>=4?/\x00/g:/\//g);return s.trimArray(a)}static trimArray(e){for(let t=0;t<e.length;++t)e[t]=e[t].replace(/\x00+$/,"").trim();return e}static readIdentifierAndData(e,t,a,i){const c=r.default.findZero(e,t,a,i),d=r.default.decodeString(e.slice(t,c),i);return t=c+s.getNullTerminatorLength(i),{id:d,data:e.slice(t,a)}}static getTextEncoding(e){switch(e){case 0:return"iso-8859-1";case 1:case 2:return"utf16";case 3:default:return"utf8"}}static getNullTerminatorLength(e){switch(e){case"utf16":return 2;default:return 1}}}exports.default=s; 177 - },{"debug":"j+D9","token-types":"1rOY","../common/Util":"5e0M","./ID3v2":"GKOa","buffer":"aMB2"}],"pIqu":[function(require,module,exports) { 178 - var Buffer = require("buffer").Buffer; 179 - var e=require("buffer").Buffer,t=this&&this.__awaiter||function(e,t,r,a){return new(r||(r=Promise))(function(i,s){function n(e){try{o(a.next(e))}catch(t){s(t)}}function d(e){try{o(a.throw(e))}catch(t){s(t)}}function o(e){e.done?i(e.value):new r(function(t){t(e.value)}).then(n,d)}o((a=a.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const r=require("token-types"),a=require("../common/Util"),i=require("./FrameParser"),s=require("./ID3v2");class n{static getInstance(){return new n}static removeUnsyncBytes(e){let t=0,r=0;for(;t<e.length-1;)t!==r&&(e[r]=e[t]),t+=255===e[t]&&0===e[t+1]?2:1,r++;return t<e.length&&(e[r++]=e[t++]),e.slice(0,r)}static readFrameHeader(e,t){let a;switch(t){case 2:a={id:e.toString("ascii",0,3),length:r.UINT24_BE.get(e,3)};break;case 3:a={id:e.toString("ascii",0,4),length:r.UINT32_BE.get(e,4),flags:n.readFrameFlags(e.slice(8,10))};break;case 4:a={id:e.toString("ascii",0,4),length:s.ID3v2Token.UINT32SYNCSAFE.get(e,4),flags:n.readFrameFlags(e.slice(8,10))};break;default:throw new Error("Unexpected majorVer: "+t)}return a}static getFrameHeaderLength(e){switch(e){case 2:return 6;case 3:case 4:return 10;default:throw new Error("header versionIndex is incorrect")}}static readFrameFlags(e){return{status:{tag_alter_preservation:a.default.strtokBITSET.get(e,0,6),file_alter_preservation:a.default.strtokBITSET.get(e,0,5),read_only:a.default.strtokBITSET.get(e,0,4)},format:{grouping_identity:a.default.strtokBITSET.get(e,1,7),compression:a.default.strtokBITSET.get(e,1,3),encryption:a.default.strtokBITSET.get(e,1,2),unsynchronisation:a.default.strtokBITSET.get(e,1,1),data_length_indicator:a.default.strtokBITSET.get(e,1,0)}}}static readFrameData(e,t,r,a){switch(r){case 2:return i.default.readData(e,t.id,r,a);case 3:case 4:return t.flags.format.unsynchronisation&&(e=n.removeUnsyncBytes(e)),t.flags.format.data_length_indicator&&(e=e.slice(4,e.length)),i.default.readData(e,t.id,r,a);default:throw new Error("Unexpected majorVer: "+r)}}static makeDescriptionTagName(e,t){return e+(t?":"+t:"")}parse(e,r,a){return t(this,void 0,void 0,function*(){this.tokenizer=r,this.metadata=e,this.options=a;const t=yield this.tokenizer.readToken(s.ID3v2Token.Header);if("ID3"!==t.fileIdentifier)throw new Error("expected ID3-header file-identifier 'ID3' was not found");return this.id3Header=t,this.headerType="ID3v2."+t.version.major,t.flags.isExtendedHeader?this.parseExtendedHeader():this.parseId3Data(t.size)})}parseExtendedHeader(){return t(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(s.ID3v2Token.ExtendedHeader),t=e.size-s.ID3v2Token.ExtendedHeader.len;return t>0?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; 180 - },{"token-types":"1rOY","../common/Util":"5e0M","./FrameParser":"toCx","./ID3v2":"GKOa","buffer":"aMB2"}],"Tc8M":[function(require,module,exports) { 171 + },{"token-types":"1rOY","../../id3v2/ID3v2":"fvjB","buffer":"aMB2"}],"YrDx":[function(require,module,exports) { 181 172 "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; 182 - },{"strtok3/lib/type":"2Fe+","./ID3v2":"GKOa","./ID3v2Parser":"pIqu","../id3v1/ID3v1Parser":"WTnS","debug":"j+D9","../common/BasicParser":"O0hF"}],"P2sd":[function(require,module,exports) { 183 - var Buffer = require("buffer").Buffer; 184 - 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)}}; 185 - },{"./Util":"5e0M","buffer":"aMB2"}],"lnZi":[function(require,module,exports) { 173 + },{"strtok3/lib/type":"2Fe+","./ID3v2":"fvjB","./ID3v2Parser":"cAM/","../id3v1/ID3v1Parser":"ln6R","debug":"j+D9","../common/BasicParser":"7c1v"}],"5NdD":[function(require,module,exports) { 186 174 "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<i;t++){const e=r.readStringUtf8().split("=");this.addTag(e[0].toUpperCase(),e.splice(1).join("="))}})}parsePicture(t){return e(this,void 0,void 0,function*(){if(this.options.skipCovers)return this.tokenizer.ignore(t);{const e=yield this.tokenizer.readToken(new r.VorbisPictureToken(t));this.addTag("METADATA_BLOCK_PICTURE",e)}})}}exports.FlacParser=d;class c{}c.BlockHeader={len:4,get:(e,r)=>({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}} 187 - },{"../common/Util":"5e0M","token-types":"1rOY","../ogg/vorbis/Vorbis":"IGPB","../id3v2/AbstractID3Parser":"Tc8M","../common/FourCC":"P2sd","debug":"j+D9"}],"00rn":[function(require,module,exports) { 188 - "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("./FlacParser");exports.default=e.FlacParser; 189 - },{"./FlacParser":"lnZi"}],"wi0z":[function(require,module,exports) { 190 - "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("token-types"),t=require("../common/FourCC"),r=require("debug"),o=r("music-metadata:parser:MP4:atom");exports.Header={len:8,get:(r,o)=>{const n=e.UINT32_BE.get(r,o);if(n<0)throw new Error("Invalid atom header length");return{length:n,name:t.FourCcToken.get(r,o+4)}},put:(r,o,n)=>(e.UINT32_BE.put(r,o,n.length),t.FourCcToken.put(r,o+4,n.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 n{constructor(e,t,r){if(this.len=e,e<t)throw new Error(`Atom ${r} expected to be ${t}, but specifies ${e} bytes long.`);e>t&&o(`Warning: atom ${r} expected to be ${t}, but was actually ${e} bytes long.`)}}exports.FixedLengthAtom=n;class g extends n{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=g;class s extends n{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=s;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 T{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=T;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),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=a; 191 - },{"token-types":"1rOY","../common/FourCC":"P2sd","debug":"j+D9"}],"0TSH":[function(require,module,exports) { 175 + },{"../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) { 176 + "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,e<t)throw new Error(`Atom ${r} expected to be ${t}, but specifies ${e} bytes long.`);e>t&&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<n.numberOfEntries;++s){const n=e.UINT32_BE.get(t,r);r+=e.UINT32_BE.len,o.push(new l(n).get(t,r)),r+=n}return{header:n,table:o}}}exports.StsdAtom=I; 177 + },{"token-types":"1rOY","../common/FourCC":"ooww","debug":"j+D9"}],"rYrA":[function(require,module,exports) { 192 178 "use strict";var e=this&&this.__awaiter||function(e,t,a,s){return new(a||(a=Promise))(function(n,i){function r(e){try{o(s.next(e))}catch(t){i(t)}}function d(e){try{o(s.throw(e))}catch(t){i(t)}}function o(e){e.done?n(e.value):new a(function(t){t(e.value)}).then(r,d)}o((s=s.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const t=require("strtok3/lib/type"),a=require("debug"),s=require("token-types"),n=require("./AtomToken"),i=a("music-metadata:parser:MP4:Atom");class r{constructor(e,t,a){this.header=e,this.extended=t,this.parent=a,this.children=[],this.atomPath=(this.parent?this.parent.atomPath+"/":"")+this.header.name,this.dataLen=this.header.length-(t?16:8)}readAtoms(a,s,n){return e(this,void 0,void 0,function*(){const e=yield this.readAtom(a,s);return this.children.push(e),void 0===n?this.readAtoms(a,s,n).catch(e=>{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"<id>":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; 193 - },{"strtok3/lib/type":"2Fe+","debug":"j+D9","token-types":"1rOY","./AtomToken":"wi0z"}],"eyoP":[function(require,module,exports) { 179 + },{"strtok3/lib/type":"2Fe+","debug":"j+D9","token-types":"1rOY","./AtomToken":"wmPb"}],"fRMT":[function(require,module,exports) { 194 180 var Buffer = require("buffer").Buffer; 195 - var e=require("buffer").Buffer,t=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))(function(n,i){function s(e){try{o(r.next(e))}catch(t){i(t)}}function d(e){try{o(r.throw(e))}catch(t){i(t)}}function o(e){e.done?n(e.value):new a(function(t){t(e.value)}).then(s,d)}o((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0});const a=require("debug"),r=require("token-types"),n=require("../common/BasicParser"),i=require("./Atom"),s=require("./AtomToken"),d=require("../id3v1/ID3v1Parser"),o=require("../common/Util"),h=a("music-metadata:parser:MP4"),u="iTunes";class m extends n.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","MPEG-4"),new i.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"<id>":return this.parseMetadataItemData(e)}switch(e.header.name){case"ftyp":const t=yield this.parseAtom_ftyp(e.dataLen);return void h(`ftyp: ${t.join("/")}`);case"mdhd":return this.parseAtom_mdhd(e);case"mvhd":return this.parseAtom_mvhd(e)}yield this.tokenizer.readToken(new r.IgnoreType(e.dataLen)),h(`Ignore atom data: path=${e.atomPath}, payload-len=${e.dataLen}`)}),this.tokenizer.fileSize)})}addTag(e,t){this.metadata.addTag(u,e,t)}addWarning(e){h("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 s.NameAtom(e.dataLen));a+=":"+t.name;break;case"mean":const n=yield this.tokenizer.readToken(new s.NameAtom(e.dataLen));a+=":"+n.name;break;default:const i=yield this.tokenizer.readToken(new r.BufferType(e.dataLen));this.addWarning("Unsupported meta-item: "+a+"["+e.header.name+"] => value="+i.toString("hex")+" ascii="+i.toString("ascii"))}}),e.dataLen)}parseValueAtom(a,n){return t(this,void 0,void 0,function*(){const t=yield this.tokenizer.readToken(new s.DataAtom(n.header.length-s.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),n=r.UINT8.get(t.value,5);this.addTag(a,e+"/"+n);break;case"gnre":const i=r.UINT8.get(t.value,1),s=d.Genres[i-1];this.addTag(a,s)}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,m.read_BE_Signed_Integer(t.value));break;case 22:this.addTag(a,m.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 s.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 s.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(s.ftyp);if((e-=s.ftyp.len)>0){const a=yield this.parseAtom_ftyp(e),r=o.default.stripNulls(t.type).trim();return r.length>0&&a.push(r),a}return[]})}}exports.MP4Parser=m; 196 - },{"debug":"j+D9","token-types":"1rOY","../common/BasicParser":"O0hF","./Atom":"0TSH","./AtomToken":"wi0z","../id3v1/ID3v1Parser":"WTnS","../common/Util":"5e0M","buffer":"aMB2"}],"wNE+":[function(require,module,exports) { 197 - "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("./MP4Parser");exports.default=e.MP4Parser; 198 - },{"./MP4Parser":"eyoP"}],"jtQL":[function(require,module,exports) { 181 + 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"<id>":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; 182 + },{"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) { 199 183 "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)})}; 200 - },{"token-types":"1rOY"}],"7/3S":[function(require,module,exports) { 184 + },{"token-types":"1rOY"}],"xkWl":[function(require,module,exports) { 201 185 var Buffer = require("buffer").Buffer; 202 186 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<this.syncPeek.buf.length)throw new Error(a.endOfFile);yield this.tokenizer.ignore(this.syncPeek.len);break}++t,e=!0}}})}parseAudioFrameHeader(){return t(this,void 0,void 0,function*(){let e;0===this.frameCount&&(this.mpegOffset=this.tokenizer.position-1),yield this.tokenizer.peekBuffer(this.buf_frame_header,1,3);try{e=u.FrameHeader.get(this.buf_frame_header,0)}catch(a){return yield this.tokenizer.ignore(1),this.warnings.push("Parse error: "+a.message),!1}yield this.tokenizer.ignore(3);this.metadata.format;this.metadata.setFormat("dataformat","mp"+e.layer),this.metadata.setFormat("lossless",!1),this.metadata.setFormat("bitrate",e.bitrate),this.metadata.setFormat("sampleRate",e.samplingRate),this.metadata.setFormat("numberOfChannels","mono"===e.channelMode?1:2),this.frameCount<2e5&&h("offset=%s MP%s bitrate=%s sample-rate=%s",this.tokenizer.position-4,e.layer,e.bitrate,e.samplingRate);const t=e.calcSlotSize();if(null===t)throw new Error("invalid slot_size");const i=e.calcSamplesPerFrame();h(`samples_per_frame=${i}`);const r=i/8*e.bitrate/e.samplingRate+(e.padding?t:0);if(this.frame_size=Math.floor(r),this.audioFrameHeader=e,this.frameCount++,this.bitrates.push(e.bitrate),1===this.frameCount)return this.offset=u.FrameHeader.len,yield this.skipSideInformation(),!1;if(3===this.frameCount)if(this.areAllSame(this.bitrates)){if(this.samplesPerFrame=i,this.metadata.setFormat("codecProfile","CBR"),this.tokenizer.fileSize)return!0}else if(this.metadata.format.duration||!this.options.duration)return!0;return this.options.duration&&4===this.frameCount&&(this.samplesPerFrame=i,this.calculateEofDuration=!0),this.offset=4,e.isProtectedByCRC?(yield this.parseCrc(),!1):(yield this.skipSideInformation(),!1)})}parseCrc(){return t(this,void 0,void 0,function*(){return this.crc=yield this.tokenizer.readNumber(r.INT16_BE),this.offset+=2,this.skipSideInformation()})}skipSideInformation(){return t(this,void 0,void 0,function*(){const e=this.audioFrameHeader.calculateSideInfoLength();yield this.tokenizer.readToken(new r.BufferType(e)),this.offset+=e,yield this.readXtraInfoHeader()})}readXtraInfoHeader(){return t(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(l.InfoTagHeaderTag);switch(this.offset+=l.InfoTagHeaderTag.len,e){case"Info":return this.metadata.setFormat("codecProfile","CBR"),this.readXingInfoHeader();case"Xing":const t=yield this.readXingInfoHeader(),i=u.getVbrCodecProfile(t.vbrScale);return this.metadata.setFormat("codecProfile",i),null;case"Xtra":break;case"LAME":const r=yield this.tokenizer.readToken(l.LameEncoderVersion);return this.offset+=l.LameEncoderVersion.len,this.metadata.setFormat("encoder","LAME "+r),yield this.skipFrameData(this.frame_size-this.offset),null}const t=this.frame_size-this.offset;return t<0?this.warnings.push("Frame "+this.frameCount+"corrupt: negative frameDataLeft"):yield this.skipFrameData(t),null})}readXingInfoHeader(){return t(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(l.XingInfoTag);if(this.offset+=l.XingInfoTag.len,this.metadata.setFormat("encoder",n.default.stripNulls(e.encoder)),1==(1&e.headerFlags[3])){const t=this.audioFrameHeader.calcDuration(e.numFrames);return this.metadata.setFormat("duration",t),h("Get duration from Xing header: %s",this.metadata.format.duration),e}const t=this.frame_size-this.offset;return yield this.skipFrameData(t),e})}skipFrameData(e){return t(this,void 0,void 0,function*(){i.ok(e>=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; 203 - },{"assert":"g2FE","token-types":"1rOY","strtok3/lib/type":"2Fe+","debug":"j+D9","../common/Util":"5e0M","../id3v2/AbstractID3Parser":"Tc8M","./XingTag":"jtQL","buffer":"aMB2"}],"Af2g":[function(require,module,exports) { 204 - "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("./MpegParser");exports.default=e.MpegParser; 205 - },{"./MpegParser":"7/3S"}],"nYTK":[function(require,module,exports) { 187 + },{"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) { 188 + "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; 189 + },{"token-types":"1rOY","../../common/Util":"7/th","debug":"j+D9"}],"8WHp":[function(require,module,exports) { 190 + "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; 191 + },{"debug":"j+D9","assert":"g2FE","../../common/BasicParser":"7c1v","./StreamVersion8":"YBLm","../../apev2/APEv2Parser":"18SM","../../common/FourCC":"ooww"}],"hUtw":[function(require,module,exports) { 192 + "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}}; 193 + },{"token-types":"1rOY","../../common/Util":"7/th"}],"Kg5s":[function(require,module,exports) { 194 + "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<<o)-1:(this.pos-=32,0===this.pos?(this.dword=void 0,t&(1<<o)-1):(this.dword=yield this.tokenizer.readToken(i.UINT32_LE),this.pos&&(t<<=this.pos,t|=this.dword>>>32-this.pos),t&(1<<o)-1))})}ignore(i){return t(this,void 0,void 0,function*(){if(this.pos>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; 195 + },{"token-types":"1rOY"}],"43mO":[function(require,module,exports) { 196 + "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; 197 + },{"debug":"j+D9","assert":"g2FE","../../common/BasicParser":"7c1v","./StreamVersion7":"hUtw","../../apev2/APEv2Parser":"18SM","./BitReader":"Kg5s"}],"OSjf":[function(require,module,exports) { 198 + "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; 199 + },{"debug":"j+D9","token-types":"1rOY","./sv8/MpcSv8Parser":"8WHp","./sv7/MpcSv7Parser":"43mO","../id3v2/AbstractID3Parser":"YrDx"}],"l6eO":[function(require,module,exports) { 206 200 var Buffer = require("buffer").Buffer; 207 201 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; 208 - },{"token-types":"1rOY","debug":"j+D9","./Vorbis":"IGPB","buffer":"aMB2"}],"rwC0":[function(require,module,exports) { 202 + },{"token-types":"1rOY","debug":"j+D9","./Vorbis":"+Rr8","buffer":"aMB2"}],"1Qh5":[function(require,module,exports) { 209 203 "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; 210 - },{"token-types":"1rOY"}],"Ja40":[function(require,module,exports) { 204 + },{"token-types":"1rOY"}],"kRPc":[function(require,module,exports) { 211 205 "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; 212 - },{"token-types":"1rOY","./Opus":"rwC0","../vorbis/VorbisParser":"nYTK"}],"PMZJ":[function(require,module,exports) { 206 + },{"token-types":"1rOY","./Opus":"1Qh5","../vorbis/VorbisParser":"l6eO"}],"sSTC":[function(require,module,exports) { 213 207 "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)})}; 214 - },{"token-types":"1rOY","../../common/Util":"5e0M"}],"D7fj":[function(require,module,exports) { 208 + },{"token-types":"1rOY","../../common/Util":"7/th"}],"3u/u":[function(require,module,exports) { 215 209 "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; 216 - },{"debug":"j+D9","./Speex":"PMZJ","../vorbis/VorbisParser":"nYTK"}],"fxkA":[function(require,module,exports) { 210 + },{"debug":"j+D9","./Speex":"sSTC","../vorbis/VorbisParser":"l6eO"}],"Gz8y":[function(require,module,exports) { 217 211 "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;s<t+r;++s)a+=e[s];return a}constructor(e){this.len=e.page_segments}get(e,t){return{totalPageSize:p.sum(e,t,this.len)}}}exports.SegmentTable=p;class c extends g.BasicParser{static getInstance(){return new c}parse(){return e(this,void 0,void 0,function*(){u("pos=%s, parsePage()",this.tokenizer.position);try{let r;do{if("OggS"!==(r=yield this.tokenizer.readToken(c.Header)).capturePattern)throw new Error("expected ogg header but was not found");this.header=r,this.pageNumber=r.pageSequenceNo,u("page#=%s, Ogg.id=%s",r.pageSequenceNo,r.capturePattern);const e=yield this.tokenizer.readToken(new p(r));u("totalPageSize=%s",e.totalPageSize);const a=yield this.tokenizer.readToken(new t.BufferType(e.totalPageSize));if(u("firstPage=%s, lastPage=%s, continued=%s",r.headerType.firstPage,r.headerType.lastPage,r.headerType.continued),r.headerType.firstPage){const e=new t.StringType(7,"ascii").get(a,0);switch(e){case"vorbis":u("Set page consumer to Ogg/Vorbis "),this.pageConsumer=new i.VorbisParser(this.metadata,this.options);break;case"OpusHea":u("Set page consumer to Ogg/Opus"),this.pageConsumer=new o.OpusParser(this.metadata,this.options,this.tokenizer);break;case"Speex ":u("Set page consumer to Ogg/Speex"),this.pageConsumer=new n.SpeexParser(this.metadata,this.options,this.tokenizer);break;default:throw new Error("gg audio-codec not recognized (id="+e+")")}}this.metadata.setFormat("dataformat","Ogg/"+this.pageConsumer.codecName),this.pageConsumer.parsePage(r,a)}while(!r.headerType.lastPage)}catch(e){if("End-Of-File"===e.message)return;if(e.message.startsWith("FourCC")&&this.pageNumber>0)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; 218 - },{"token-types":"1rOY","debug":"j+D9","../common/Util":"5e0M","../common/FourCC":"P2sd","./vorbis/VorbisParser":"nYTK","./opus/OpusParser":"Ja40","./speex/SpeexParser":"D7fj","../common/BasicParser":"O0hF"}],"bic0":[function(require,module,exports) { 219 - "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("./OggParser");exports.default=e.OggParser; 220 - },{"./OggParser":"fxkA"}],"xQQP":[function(require,module,exports) { 221 - "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<<t)}!function(e){e[e.text_utf8=0]="text_utf8",e[e.binary=1]="binary",e[e.external_info=2]="external_info",e[e.reserved=3]="reserved"}(r=exports.DataType||(exports.DataType={})),exports.DescriptorParser={len:52,get:(r,a)=>({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; 222 - },{"token-types":"1rOY","../common/FourCC":"P2sd"}],"IhDz":[function(require,module,exports) { 223 - var Buffer = require("buffer").Buffer; 224 - 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;h<s.fields;h++){const s=l.TagItemHeader.get(n,a);a+=l.TagItemHeader.len;let h=i.default.findZero(n,a,n.length);const u=n.toString("ascii",a,h);switch(a=h+1,s.flags.dataType){case l.DataType.text_utf8:{const e=n.toString("utf8",a,a+=s.size).split(/\x00/g);for(const s of e)r.addTag(d,u,s);break}case l.DataType.binary:if(o){const o=n.slice(a,a+s.size);let l=0;h=i.default.findZero(o,l,o.length);const p=o.toString("utf8",l,h);l=h+1;const f=e.from(o.slice(l)),m=t(f);if(m)if(0===m.mime.indexOf("image/")){const e={description:p,data:f,format:m.mime};a+=s.size,r.addTag(d,u,e)}else c(`Unexpected binary tag of type': ${m.mime}`);else c(`Failed to determine file type for binary tag: ${u}`)}break;case l.DataType.external_info:c(`Ignore external info ${u}`);break;default:throw new Error(`Unexpected data-type: ${s.flags.dataType}`)}}}parse(){return r(this,void 0,void 0,function*(){const e=yield this.tokenizer.readToken(l.DescriptorParser);a.equal(e.ID,"MAC ","descriptor.ID"),this.ape.descriptor=e;const r=e.descriptorBytes-l.DescriptorParser.len,s=yield r>0?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; 225 - },{"debug":"j+D9","file-type":"gPQA","token-types":"1rOY","assert":"g2FE","../common/Util":"5e0M","../common/BasicParser":"O0hF","./APEv2Token":"xQQP","buffer":"aMB2"}],"0DiC":[function(require,module,exports) { 212 + },{"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) { 213 + "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; 214 + },{"token-types":"1rOY","../common/FourCC":"ooww"}],"67Cj":[function(require,module,exports) { 215 + "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; 216 + },{"assert":"g2FE"}],"0dld":[function(require,module,exports) { 217 + "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)}} 218 + },{"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) { 226 219 var Buffer = require("buffer").Buffer; 227 220 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; 228 - },{"token-types":"1rOY","../apev2/APEv2Parser":"IhDz","../common/FourCC":"P2sd","../common/BasicParser":"O0hF","buffer":"aMB2"}],"SIzp":[function(require,module,exports) { 229 - "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("./WavPackParser");exports.default=e.WavPackParser; 230 - },{"./WavPackParser":"0DiC"}],"Focm":[function(require,module,exports) { 231 - "use strict";var e=d(require("music-metadata-browser")),t=require("streaming-http-token-reader"),a=c(require("music-metadata/lib/asf")),r=c(require("music-metadata/lib/flac")),i=c(require("music-metadata/lib/mp4")),u=c(require("music-metadata/lib/mpeg")),s=c(require("music-metadata/lib/ogg")),l=c(require("music-metadata/lib/wavpack"));function c(e){return e&&e.__esModule?e:{default:e}}function d(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,a):{};r.get||r.set?Object.defineProperty(t,a,r):t[a]=e[a]}return t.default=e,t}function f(e){return Promise.resolve(new self.musicMetadata.parsers[e])}self.musicMetadata=e,self.musicMetadata.parsers={asf:a.default,flac:r.default,mp4:i.default,mpeg:u.default,ogg:s.default,wavpack:l.default},self.musicMetadata.parsingOptions={loadParser:f},self.StreamingHttpTokenReader=t.StreamingHttpTokenReader; 232 - },{"music-metadata-browser":"yy1F","streaming-http-token-reader":"L2sF","music-metadata/lib/asf":"tqmk","music-metadata/lib/flac":"00rn","music-metadata/lib/mp4":"wNE+","music-metadata/lib/mpeg":"Af2g","music-metadata/lib/ogg":"bic0","music-metadata/lib/wavpack":"SIzp"}]},{},["Focm"], null) 221 + },{"token-types":"1rOY","../apev2/APEv2Parser":"18SM","../common/FourCC":"ooww","../common/BasicParser":"7c1v","buffer":"aMB2"}],"Ssdi":[function(require,module,exports) { 222 + var Buffer = require("buffer").Buffer; 223 + 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; 224 + },{"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) { 225 + "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; 226 + },{"strtok3/lib/core":"tvmF","./ParserFactory":"Ssdi"}],"ugmL":[function(require,module,exports) { 227 + 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)]} 228 + },{}],"QV2L":[function(require,module,exports) { 229 + var Buffer = require("buffer").Buffer; 230 + 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)}; 231 + },{"is-typedarray":"ugmL","buffer":"aMB2"}],"ktgA":[function(require,module,exports) { 232 + "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; 233 + },{"stream":"D0Hn"}],"yy1F":[function(require,module,exports) { 234 + "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; 235 + },{"debug":"j+D9","music-metadata/lib/core":"V9fE","typedarray-to-buffer":"QV2L","./fetch/Browser2NodeStream":"ktgA"}],"pQHU":[function(require,module,exports) { 236 + var Buffer = require("buffer").Buffer; 237 + 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<i.offset+i.data.byteLength-1,o={offset:Math.min(t,e.offset),data:a};if(n){const f=e.data.slice(0,t-e.offset);o.data=this._concatData(f,a)}if(r){const t=o.data.slice(0,i.offset-o.offset);o.data=this._concatData(t,i.data)}this._fileData.splice(s.startIx,s.endIx-s.startIx+1,o)}}hasDataRange(t,e){for(let a=0;a<this._fileData.length;a++){const f=this._fileData[a];if(e<f.offset)return!1;if(t>=f.offset&&e<f.offset+f.data.byteLength)return!0}return!1}readToBuffer(e,a,f,s){const i=f;let n;for(let r=0;r<this._fileData.length;r++){const o=this._fileData[r].offset,h=o+this._fileData[r].data.byteLength-1;if(i>=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?this.readToBuffer(e,a+l,f+l,s-l):void 0}}throw new Error(`Offset ${i} hasn't been loaded yet.`)}_concatData(t,e){const a=new Uint8Array(t.byteLength+e.byteLength);return a.set(new Uint8Array(t),0),a.set(new Uint8Array(e),t.byteLength),a.buffer}_getChunkRange(t,a){let f=e,s=e,i=0;for(let e=0;e<this._fileData.length;i=++e){const s=this._fileData[e].offset,i=s+this._fileData[e].data.byteLength;if(a<s-1)break;if(t<=i+1&&a>=s-1){f=e;break}}if(f===e)return{startIx:e,endIx:e,insertIx:i};for(let e=f;e<this._fileData.length;e++){const t=this._fileData[e].offset;if(a>=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; 238 + },{"buffer":"aMB2"}],"L2sF":[function(require,module,exports) { 239 + "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; 240 + },{"debug":"j+D9","strtok3/lib/AbstractTokenizer":"PoRW","./chunked-file-data":"pQHU"}],"Focm":[function(require,module,exports) { 241 + "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; 242 + },{"music-metadata-browser":"yy1F","streaming-http-token-reader":"L2sF"}]},{},["Focm"], null)