Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

hls-parser

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hls-parser - npm Package Compare versions

Comparing version 0.8.0 to 0.9.0

2

dist/hls-parser.min.js
/*! For license information please see hls-parser.min.js.LICENSE.txt */
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.HLS=e():t.HLS=e()}(self,(function(){return t={851:(t,e,n)=>{var a=n(771),r=a.getOptions,i=a.setOptions,o=n(463),s=n(367),c=n(890);t.exports={parse:o,stringify:s,types:c,getOptions:r,setOptions:i}},463:(t,e,n)=>{function a(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=i(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var a=0,r=function(){};return{s:r,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){c=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw o}}}}function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(t){r=!0,i=t}finally{try{a||null==s.return||s.return()}finally{if(r)throw i}}return n}}(t,e)||i(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}var s=n(771),c=n(890),u=c.Rendition,T=c.Variant,l=c.SessionData,E=c.Key,f=c.MediaInitializationSection,I=c.DateRange,h=c.SpliceInfo,A=c.MasterPlaylist,p=c.MediaPlaylist,d=c.Segment,S=c.PartialSegment,N=c.PrefetchSegment,y=c.RenditionReport;function X(t){return s.trim(t,'"')}function v(t){var e=s.splitAt(t,",");return{duration:s.toNumber(e[0]),title:decodeURIComponent(escape(e[1]))}}function m(t){var e=s.splitAt(t,"@");return{length:s.toNumber(e[0]),offset:e[1]?s.toNumber(e[1]):-1}}function R(t,e){e.IV&&t.compatibleVersion<2&&(t.compatibleVersion=2),(e.KEYFORMAT||e.KEYFORMATVERSIONS)&&t.compatibleVersion<5&&(t.compatibleVersion=5)}function D(t){var e=s.splitByCommaWithPreservingQuotes(t),n={};return e.forEach((function(t){var e,a,i=r(s.splitAt(t,"="),2),o=i[0],c=i[1],u=X(c);switch(o){case"URI":n[o]=u;break;case"START-DATE":case"END-DATE":n[o]=new Date(u);break;case"IV":n[o]=(e=u,16!==(a=s.hexToByteSequence(e)).length&&s.INVALIDPLAYLIST("IV must be a 128-bit unsigned integer"),a);break;case"BYTERANGE":n[o]=m(u);break;case"RESOLUTION":n[o]=function(t){var e=s.splitAt(t,"x");return{width:s.toNumber(e[0]),height:s.toNumber(e[1])}}(u);break;case"END-ON-NEXT":case"DEFAULT":case"AUTOSELECT":case"FORCED":case"PRECISE":case"CAN-BLOCK-RELOAD":case"INDEPENDENT":case"GAP":n[o]="YES"===u;break;case"DURATION":case"PLANNED-DURATION":case"BANDWIDTH":case"AVERAGE-BANDWIDTH":case"FRAME-RATE":case"TIME-OFFSET":case"CAN-SKIP-UNTIL":case"HOLD-BACK":case"PART-HOLD-BACK":case"PART-TARGET":case"BYTERANGE-START":case"BYTERANGE-LENGTH":case"LAST-MSN":case"LAST-PART":case"SKIPPED-SEGMENTS":n[o]=s.toNumber(u);break;default:o.startsWith("SCTE35-")?n[o]=s.hexToByteSequence(u):o.startsWith("X-")?n[o]=function(t){return t.startsWith('"')?X(t):t.startsWith("0x")||t.startsWith("0X")?s.hexToByteSequence(t):s.toNumber(t)}(c):n[o]=u}})),n}function L(){s.INVALIDPLAYLIST("The file contains both media and master playlist tags.")}function g(t,e,n){var r,i=(r=e.attributes,new u({type:r.TYPE,uri:r.URI,groupId:r["GROUP-ID"],language:r.LANGUAGE,assocLanguage:r["ASSOC-LANGUAGE"],name:r.NAME,isDefault:r.DEFAULT,autoselect:r.AUTOSELECT,forced:r.FORCED,instreamId:r["INSTREAM-ID"],characteristics:r.CHARACTERISTICS,channels:r.CHANNELS})),o=t[s.camelify(n)],c=function(t,e){var n,r=!1,i=a(t);try{for(i.s();!(n=i.n()).done;){var o=n.value;if(o.name===e.name)return"All EXT-X-MEDIA tags in the same Group MUST have different NAME attributes.";o.isDefault&&(r=!0)}}catch(t){i.e(t)}finally{i.f()}return r&&e.isDefault?"EXT-X-MEDIA A Group MUST NOT have more than one member with a DEFAULT attribute of YES.":""}(o,i);c&&s.INVALIDPLAYLIST(c),o.push(i),i.isDefault&&(t.currentRenditions[s.camelify(n)]=o.length-1)}function P(t,e,n,r,i){var o,c=new T({uri:n,bandwidth:e.BANDWIDTH,averageBandwidth:e["AVERAGE-BANDWIDTH"],codecs:e.CODECS,resolution:e.RESOLUTION,frameRate:e["FRAME-RATE"],hdcpLevel:e["HDCP-LEVEL"]}),u=a(t);try{for(u.s();!(o=u.n()).done;){var l=o.value;if("EXT-X-MEDIA"===l.name){var E=l.attributes,f=E.TYPE;if(f&&E["GROUP-ID"]||s.INVALIDPLAYLIST("EXT-X-MEDIA TYPE attribute is REQUIRED."),e[f]===E["GROUP-ID"]&&(g(c,l,f),"CLOSED-CAPTIONS"===f)){var I,h=a(c.closedCaptions);try{for(h.s();!(I=h.n()).done;){var A=I.value.instreamId;if(A&&A.startsWith("SERVICE")&&i.compatibleVersion<7){i.compatibleVersion=7;break}}}catch(t){h.e(t)}finally{h.f()}}}}}catch(t){u.e(t)}finally{u.f()}return function(t,e,n){["AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS"].forEach((function(a){"CLOSED-CAPTIONS"===a&&"NONE"===t[a]?(n.isClosedCaptionsNone=!0,e.closedCaptions=[]):t[a]&&!e[s.camelify(a)].some((function(e){return e.groupId===t[a]}))&&s.INVALIDPLAYLIST("".concat(a," attribute MUST match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag whose TYPE attribute is ").concat(a,"."))}))}(e,c,i),c.isIFrameOnly=r,c}function O(t,e){if(t.method!==e.method)return!1;if(t.uri!==e.uri)return!1;if(t.iv){if(!e.iv)return!1;if(t.iv.length!==e.iv.length)return!1;for(var n=0;n<t.iv.length;n++)if(t.iv[n]!==e.iv[n])return!1}else if(e.iv)return!1;return t.format===e.format&&t.formatVersion===e.formatVersion}function b(t,e,n,a,r,i,o){for(var c=new d({uri:e,mediaSequenceNumber:r,discontinuitySequence:i}),u=!1,T=!1,l=function(e){var n=t[e],a=n.name,r=n.value,i=n.attributes;if("EXTINF"===a)!Number.isInteger(r.duration)&&o.compatibleVersion<3&&(o.compatibleVersion=3),Math.round(r.duration)>o.targetDuration&&s.INVALIDPLAYLIST("EXTINF duration, when rounded to the nearest integer, MUST be less than or equal to the target duration"),c.duration=r.duration,c.title=r.title;else if("EXT-X-BYTERANGE"===a)o.compatibleVersion<4&&(o.compatibleVersion=4),c.byterange=r;else if("EXT-X-DISCONTINUITY"===a)c.parts.length>0&&s.INVALIDPLAYLIST("EXT-X-DISCONTINUITY must appear before the first EXT-X-PART tag of the Parent Segment."),c.discontinuity=!0;else if("EXT-X-KEY"===a)c.parts.length>0&&s.INVALIDPLAYLIST("EXT-X-KEY must appear before the first EXT-X-PART tag of the Parent Segment."),R(o,i),c.key=new E({method:i.METHOD,uri:i.URI,iv:i.IV,format:i.KEYFORMAT,formatVersion:i.KEYFORMATVERSIONS});else if("EXT-X-MAP"===a)c.parts.length>0&&s.INVALIDPLAYLIST("EXT-X-MAP must appear before the first EXT-X-PART tag of the Parent Segment."),o.compatibleVersion<5&&(o.compatibleVersion=5),o.hasMap=!0,c.map=new f({uri:i.URI,byterange:i.BYTERANGE});else if("EXT-X-PROGRAM-DATE-TIME"===a)c.programDateTime=r;else if("EXT-X-DATERANGE"===a){var l={};Object.keys(i).forEach((function(t){(t.startsWith("SCTE35-")||t.startsWith("X-"))&&(l[t]=i[t])})),c.dateRange=new I({id:i.ID,classId:i.CLASS,start:i["START-DATE"],end:i["END-DATE"],duration:i.DURATION,plannedDuration:i["PLANNED-DURATION"],endOnNext:i["END-ON-NEXT"],attributes:l})}else if("EXT-X-CUE-OUT"===a)c.markers.push(new h({type:"OUT",duration:r}));else if("EXT-X-CUE-IN"===a)c.markers.push(new h({type:"IN"}));else if("EXT-X-CUE-OUT-CONT"===a||"EXT-X-CUE"===a||"EXT-OATCLS-SCTE35"===a||"EXT-X-ASSET"===a||"EXT-X-SCTE35"===a)c.markers.push(new h({type:"RAW",tagName:a,value:r}));else if("EXT-X-PRELOAD-HINT"!==a||i.TYPE)if("EXT-X-PRELOAD-HINT"===a&&"PART"===i.TYPE&&T)s.INVALIDPLAYLIST("Servers should not add more than one EXT-X-PRELOAD-HINT tag with the same TYPE attribute to a Playlist.");else if("EXT-X-PART"!==a&&"EXT-X-PRELOAD-HINT"!==a||i.URI){if("EXT-X-PRELOAD-HINT"===a&&"MAP"===i.TYPE)u&&s.INVALIDPLAYLIST("Servers should not add more than one EXT-X-PRELOAD-HINT tag with the same TYPE attribute to a Playlist."),u=!0,o.hasMap=!0,c.map=new f({hint:!0,uri:i.URI,byterange:{length:i["BYTERANGE-LENGTH"],offset:i["BYTERANGE-START"]||0}});else if("EXT-X-PART"===a||"EXT-X-PRELOAD-HINT"===a&&"PART"===i.TYPE){"EXT-X-PART"!==a||i.DURATION||s.INVALIDPLAYLIST("EXT-X-PART: DURATION attribute is mandatory"),"EXT-X-PRELOAD-HINT"===a&&(T=!0);var A=new S({hint:"EXT-X-PRELOAD-HINT"===a,uri:i.URI,byterange:"EXT-X-PART"===a?i.BYTERANGE:{length:i["BYTERANGE-LENGTH"],offset:i["BYTERANGE-START"]||0},duration:i.DURATION,independent:i.INDEPENDENT,gap:i.GAP});c.parts.push(A)}}else s.INVALIDPLAYLIST("EXT-X-PART / EXT-X-PRELOAD-HINT: URI attribute is mandatory");else s.INVALIDPLAYLIST("EXT-X-PRELOAD-HINT: TYPE attribute is mandatory")},A=n;A<=a;A++)l(A);return c}function C(t,e,n,a,r,i,o){for(var c=new N({uri:e,mediaSequenceNumber:r,discontinuitySequence:i}),u=n;u<=a;u++){var T=t[u],l=T.name,f=T.attributes;"EXTINF"===l?s.INVALIDPLAYLIST("A prefetch segment must not be advertised with an EXTINF tag."):"EXT-X-DISCONTINUITY"===l?s.INVALIDPLAYLIST("A prefetch segment must not be advertised with an EXT-X-DISCONTINUITY tag."):"EXT-X-PREFETCH-DISCONTINUITY"===l?c.discontinuity=!0:"EXT-X-KEY"===l?(R(o,f),c.key=new E({method:f.METHOD,uri:f.URI,iv:f.IV,format:f.KEYFORMAT,formatVersion:f.KEYFORMATVERSIONS})):"EXT-X-MAP"===l&&s.INVALIDPLAYLIST("Prefetch segments must not be advertised with an EXT-X-MAP tag.")}return c}function M(t,e){var n,i=new p,o=-1,c=0,u=!1,T=!1,l=0,E=null,f=null,I=!1,h=a(t.entries());try{for(h.s();!(n=h.n()).done;){var A=r(n.value,2),d=A[0],S=A[1],N=S.name,X=S.value,v=S.attributes;if("Segment"!==S.category){if("EXT-X-VERSION"===N)void 0===i.version?i.version=X:s.INVALIDPLAYLIST("A Playlist file MUST NOT contain more than one EXT-X-VERSION tag.");else if("EXT-X-TARGETDURATION"===N)i.targetDuration=e.targetDuration=X;else if("EXT-X-MEDIA-SEQUENCE"===N)i.segments.length>0&&s.INVALIDPLAYLIST("The EXT-X-MEDIA-SEQUENCE tag MUST appear before the first Media Segment in the Playlist."),i.mediaSequenceBase=c=X;else if("EXT-X-DISCONTINUITY-SEQUENCE"===N)i.segments.length>0&&s.INVALIDPLAYLIST("The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before the first Media Segment in the Playlist."),u&&s.INVALIDPLAYLIST("The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before any EXT-X-DISCONTINUITY tag."),i.discontinuitySequenceBase=l=X;else if("EXT-X-ENDLIST"===N)i.endlist=!0;else if("EXT-X-PLAYLIST-TYPE"===N)i.playlistType=X;else if("EXT-X-I-FRAMES-ONLY"===N)e.compatibleVersion<4&&(e.compatibleVersion=4),i.isIFrame=!0;else if("EXT-X-INDEPENDENT-SEGMENTS"===N)i.independentSegments&&s.INVALIDPLAYLIST("EXT-X-INDEPENDENT-SEGMENTS tag MUST NOT appear more than once in a Playlist"),i.independentSegments=!0;else if("EXT-X-START"===N)i.start&&s.INVALIDPLAYLIST("EXT-X-START tag MUST NOT appear more than once in a Playlist"),"number"!=typeof v["TIME-OFFSET"]&&s.INVALIDPLAYLIST("EXT-X-START: TIME-OFFSET attribute is REQUIRED"),i.start={offset:v["TIME-OFFSET"],precise:v.PRECISE||!1};else if("EXT-X-SERVER-CONTROL"===N)v["CAN-BLOCK-RELOAD"]||s.INVALIDPLAYLIST("EXT-X-SERVER-CONTROL: CAN-BLOCK-RELOAD=YES is mandatory for Low-Latency HLS"),i.lowLatencyCompatibility={canBlockReload:v["CAN-BLOCK-RELOAD"],canSkipUntil:v["CAN-SKIP-UNTIL"],holdBack:v["HOLD-BACK"],partHoldBack:v["PART-HOLD-BACK"]};else if("EXT-X-PART-INF"===N)v["PART-TARGET"]||s.INVALIDPLAYLIST("EXT-X-PART-INF: PART-TARGET attribute is mandatory"),i.partTargetDuration=v["PART-TARGET"];else if("EXT-X-RENDITION-REPORT"===N)v.URI||s.INVALIDPLAYLIST("EXT-X-RENDITION-REPORT: URI attribute is mandatory"),0===v.URI.search(/^[a-z]+:/)&&s.INVALIDPLAYLIST("EXT-X-RENDITION-REPORT: URI must be relative to the playlist uri"),i.renditionReports.push(new y({uri:v.URI,lastMSN:v["LAST-MSN"],lastPart:v["LAST-PART"]}));else if("EXT-X-SKIP"===N)v["SKIPPED-SEGMENTS"]||s.INVALIDPLAYLIST("EXT-X-SKIP: SKIPPED-SEGMENTS attribute is mandatory"),e.compatibleVersion<9&&(e.compatibleVersion=9),i.skip=v["SKIPPED-SEGMENTS"],c+=i.skip;else if("EXT-X-PREFETCH"===N){var m=C(t,X,-1===o?d:o,d-1,c++,l,e);m&&(m.discontinuity&&(m.discontinuitySequence++,l=m.discontinuitySequence),m.key?E=m.key:m.key=E,i.prefetchSegments.push(m)),T=!0,o=-1}else if("string"==typeof S){-1===o&&s.INVALIDPLAYLIST("A URI line is not preceded by any segment tags"),i.targetDuration||s.INVALIDPLAYLIST("The EXT-X-TARGETDURATION tag is REQUIRED"),T&&s.INVALIDPLAYLIST("These segments must appear after all complete segments.");var R=b(t,S,o,d-1,c++,l,e);if(R){var D=r(U(i,R,l,E,f),3);l=D[0],E=D[1],f=D[2],!I&&R.parts.length>0&&(I=!0)}o=-1}}else-1===o&&(o=d),"EXT-X-DISCONTINUITY"===N&&(u=!0)}}catch(t){h.e(t)}finally{h.f()}if(-1!==o){var L=b(t,"",o,t.length-1,c++,l,e);if(L){var g=L.parts;g.length>0&&!i.endlist&&!g[g.length-1].hint&&s.INVALIDPLAYLIST("If the Playlist contains EXT-X-PART tags and does not contain an EXT-X-ENDLIST tag, the Playlist must contain an EXT-X-PRELOAD-HINT tag with a TYPE=PART attribute"),U(i,L,E,f),!I&&L.parts.length>0&&(I=!0)}}return function(t){for(var e=new Map,n=new Map,r=!1,i=!1,o=t.length-1;o>=0;o--){var c=t[o],u=c.programDateTime,T=c.dateRange;if(u&&(i=!0),T&&T.start){r=!0,T.endOnNext&&(T.end||T.duration)&&s.INVALIDPLAYLIST("An EXT-X-DATERANGE tag with an END-ON-NEXT=YES attribute MUST NOT contain DURATION or END-DATE attributes.");var l=T.start.getTime(),E=T.duration||0;T.end&&T.duration&&l+1e3*E!==T.end.getTime()&&s.INVALIDPLAYLIST("END-DATE MUST be equal to the value of the START-DATE attribute plus the value of the DURATION"),T.endOnNext&&(T.end=e.get(T.classId)),e.set(T.classId,T.start);var f=T.end?T.end.getTime():T.start.getTime()+1e3*(T.duration||0),I=n.get(T.classId);if(I){var h,A=a(I);try{for(A.s();!(h=A.n()).done;){var p=h.value;(p.start<=l&&p.end>l||p.start>=l&&p.start<f)&&s.INVALIDPLAYLIST("DATERANGE tags with the same CLASS should not overlap")}}catch(t){A.e(t)}finally{A.f()}I.push({start:l,end:f})}else n.set(T.classId,[{start:l,end:f}])}}r&&!i&&s.INVALIDPLAYLIST("If a Playlist contains an EXT-X-DATERANGE tag, it MUST also contain at least one EXT-X-PROGRAM-DATE-TIME tag.")}(i.segments),i.lowLatencyCompatibility&&function(t,e){var n=t.lowLatencyCompatibility,i=t.targetDuration,o=t.partTargetDuration,c=t.segments,u=t.renditionReports,T=n.canSkipUntil,l=n.holdBack,E=n.partHoldBack;if(T<6*i&&s.INVALIDPLAYLIST("The Skip Boundary must be at least six times the EXT-X-TARGETDURATION."),l<3*i&&s.INVALIDPLAYLIST("HOLD-BACK must be at least three times the EXT-X-TARGETDURATION."),e){void 0===o&&s.INVALIDPLAYLIST("EXT-X-PART-INF is required if a Playlist contains one or more EXT-X-PART tags"),void 0===E&&s.INVALIDPLAYLIST("EXT-X-PART: PART-HOLD-BACK attribute is mandatory"),E<o&&s.INVALIDPLAYLIST("PART-HOLD-BACK must be at least PART-TARGET");var f,I=a(c.entries());try{for(I.s();!(f=I.n()).done;){var h=r(f.value,2),A=h[0],p=h[1].parts;p.length>0&&A<c.length-3&&s.INVALIDPLAYLIST("Remove EXT-X-PART tags from the Playlist after they are greater than three target durations from the end of the Playlist.");var d,S=a(p.entries());try{for(S.s();!(d=S.n()).done;){var N=r(d.value,2),y=N[0],X=N[1].duration;void 0!==X&&(X>o&&s.INVALIDPLAYLIST("PART-TARGET is the maximum duration of any Partial Segment"),y<p.length-1&&X<.85*o&&s.INVALIDPLAYLIST("All Partial Segments except the last part of a segment must have a duration of at least 85% of PART-TARGET"))}}catch(t){S.e(t)}finally{S.f()}}}catch(t){I.e(t)}finally{I.f()}}var v,m=a(u);try{for(m.s();!(v=m.n()).done;){var R=v.value,D=c[c.length-1];R.lastMSN||(R.lastMSN=D.mediaSequenceNumber),!R.lastPart&&D.parts.length>0&&(R.lastPart=D.parts.length-1)}}catch(t){m.e(t)}finally{m.f()}}(i,I),i}function U(t,e,n,a,r){var i=e.discontinuity,o=e.key,c=e.map,u=e.byterange,T=e.uri;if(i&&(e.discontinuitySequence=n+1),o||(e.key=a),c||(e.map=r),u&&-1===u.offset){var l=t.segments;if(l.length>0){var E=l[l.length-1];E.byterange&&E.uri===T?u.offset=E.byterange.offset+E.byterange.length:s.INVALIDPLAYLIST("If offset of EXT-X-BYTERANGE is not present, a previous Media Segment MUST be a sub-range of the same media resource")}else s.INVALIDPLAYLIST("If offset of EXT-X-BYTERANGE is not present, a previous Media Segment MUST appear in the Playlist file")}return t.segments.push(e),[e.discontinuitySequence,e.key,e.map]}function Y(t,e){var n=r(function(t){var e=t.indexOf(":");return-1===e?[t.slice(1).trim(),null]:[t.slice(1,e).trim(),t.slice(e+1).trim()]}(t),2),a=n[0],i=n[1],o=function(t){switch(t){case"EXTM3U":case"EXT-X-VERSION":return"Basic";case"EXTINF":case"EXT-X-BYTERANGE":case"EXT-X-DISCONTINUITY":case"EXT-X-PREFETCH-DISCONTINUITY":case"EXT-X-KEY":case"EXT-X-MAP":case"EXT-X-PROGRAM-DATE-TIME":case"EXT-X-DATERANGE":case"EXT-X-CUE-OUT":case"EXT-X-CUE-IN":case"EXT-X-CUE-OUT-CONT":case"EXT-X-CUE":case"EXT-OATCLS-SCTE35":case"EXT-X-ASSET":case"EXT-X-SCTE35":case"EXT-X-PART":case"EXT-X-PRELOAD-HINT":return"Segment";case"EXT-X-TARGETDURATION":case"EXT-X-MEDIA-SEQUENCE":case"EXT-X-DISCONTINUITY-SEQUENCE":case"EXT-X-ENDLIST":case"EXT-X-PLAYLIST-TYPE":case"EXT-X-I-FRAMES-ONLY":case"EXT-X-SERVER-CONTROL":case"EXT-X-PART-INF":case"EXT-X-PREFETCH":case"EXT-X-RENDITION-REPORT":case"EXT-X-SKIP":return"MediaPlaylist";case"EXT-X-MEDIA":case"EXT-X-STREAM-INF":case"EXT-X-I-FRAME-STREAM-INF":case"EXT-X-SESSION-DATA":case"EXT-X-SESSION-KEY":return"MasterPlaylist";case"EXT-X-INDEPENDENT-SEGMENTS":case"EXT-X-START":return"MediaorMasterPlaylist";default:return"Unknown"}}(a);if(function(t,e){if("Segment"===t||"MediaPlaylist"===t)return void 0===e.isMasterPlaylist?void(e.isMasterPlaylist=!1):void(e.isMasterPlaylist&&L());if("MasterPlaylist"===t){if(void 0===e.isMasterPlaylist)return void(e.isMasterPlaylist=!0);!1===e.isMasterPlaylist&&L()}}(o,e),"Unknown"===o)return null;"MediaPlaylist"===o&&"EXT-X-RENDITION-REPORT"!==a&&"EXT-X-PREFETCH"!==a&&(e.hash[a]&&s.INVALIDPLAYLIST("There MUST NOT be more than one Media Playlist tag of each type in any Media Playlist"),e.hash[a]=!0);var c=r(function(t,e){switch(t){case"EXTM3U":case"EXT-X-DISCONTINUITY":case"EXT-X-ENDLIST":case"EXT-X-I-FRAMES-ONLY":case"EXT-X-INDEPENDENT-SEGMENTS":case"EXT-X-CUE-IN":return[null,null];case"EXT-X-VERSION":case"EXT-X-TARGETDURATION":case"EXT-X-MEDIA-SEQUENCE":case"EXT-X-DISCONTINUITY-SEQUENCE":case"EXT-X-CUE-OUT":return[s.toNumber(e),null];case"EXT-X-KEY":case"EXT-X-MAP":case"EXT-X-DATERANGE":case"EXT-X-MEDIA":case"EXT-X-STREAM-INF":case"EXT-X-I-FRAME-STREAM-INF":case"EXT-X-SESSION-DATA":case"EXT-X-SESSION-KEY":case"EXT-X-START":case"EXT-X-SERVER-CONTROL":case"EXT-X-PART-INF":case"EXT-X-PART":case"EXT-X-PRELOAD-HINT":case"EXT-X-RENDITION-REPORT":case"EXT-X-SKIP":return[null,D(e)];case"EXTINF":return[v(e),null];case"EXT-X-BYTERANGE":return[m(e),null];case"EXT-X-PROGRAM-DATE-TIME":return[new Date(e),null];case"EXT-X-PLAYLIST-TYPE":default:return[e,null]}}(a,i),2);return{name:a,category:o,value:c[0],attributes:c[1]}}function V(t,e){var n;return e.isMasterPlaylist?n=function(t,e){var n,i=new A,o=a(t.entries());try{for(o.s();!(n=o.n()).done;){var c=r(n.value,2),u=c[0],T=c[1],f=T.name,I=T.value,h=T.attributes;if("EXT-X-VERSION"===f)i.version=I;else if("EXT-X-STREAM-INF"===f){var p=t[u+1];("string"!=typeof p||p.startsWith("#EXT"))&&s.INVALIDPLAYLIST("EXT-X-STREAM-INF must be followed by a URI line");var d=P(t,h,p,!1,e);d&&i.variants.push(d)}else if("EXT-X-I-FRAME-STREAM-INF"===f){var S=P(t,h,h.URI,!0,e);S&&i.variants.push(S)}else"EXT-X-SESSION-DATA"===f?function(){var t=new l({id:h["DATA-ID"],value:h.VALUE,uri:h.URI,language:h.LANGUAGE});i.sessionDataList.some((function(e){return e.id===t.id&&e.language===t.language}))&&s.INVALIDPLAYLIST("A Playlist MUST NOT contain more than one EXT-X-SESSION-DATA tag with the same DATA-ID attribute and the same LANGUAGE attribute."),i.sessionDataList.push(t)}():"EXT-X-SESSION-KEY"===f?function(){"NONE"===h.METHOD&&s.INVALIDPLAYLIST("EXT-X-SESSION-KEY: The value of the METHOD attribute MUST NOT be NONE");var t=new E({method:h.METHOD,uri:h.URI,iv:h.IV,format:h.KEYFORMAT,formatVersion:h.KEYFORMATVERSIONS});i.sessionKeyList.some((function(e){return O(e,t)}))&&s.INVALIDPLAYLIST("A Master Playlist MUST NOT contain more than one EXT-X-SESSION-KEY tag with the same METHOD, URI, IV, KEYFORMAT, and KEYFORMATVERSIONS attribute values."),R(e,h),i.sessionKeyList.push(t)}():"EXT-X-INDEPENDENT-SEGMENTS"===f?(i.independentSegments&&s.INVALIDPLAYLIST("EXT-X-INDEPENDENT-SEGMENTS tag MUST NOT appear more than once in a Playlist"),i.independentSegments=!0):"EXT-X-START"===f&&(i.start&&s.INVALIDPLAYLIST("EXT-X-START tag MUST NOT appear more than once in a Playlist"),"number"!=typeof h["TIME-OFFSET"]&&s.INVALIDPLAYLIST("EXT-X-START: TIME-OFFSET attribute is REQUIRED"),i.start={offset:h["TIME-OFFSET"],precise:h.PRECISE||!1})}}catch(t){o.e(t)}finally{o.f()}if(e.isClosedCaptionsNone){var N,y=a(i.variants);try{for(y.s();!(N=y.n()).done;)N.value.closedCaptions.length>0&&s.INVALIDPLAYLIST("If there is a variant with CLOSED-CAPTIONS attribute of NONE, all EXT-X-STREAM-INF tags MUST have this attribute with a value of NONE")}catch(t){y.e(t)}finally{y.f()}}return i}(t,e):!(n=M(t,e)).isIFrame&&e.hasMap&&e.compatibleVersion<6&&(e.compatibleVersion=6),e.compatibleVersion>1&&(!n.version||n.version<e.compatibleVersion)&&s.INVALIDPLAYLIST("EXT-X-VERSION needs to be ".concat(e.compatibleVersion," or higher.")),n}t.exports=function(t){var e={version:void 0,isMasterPlaylist:void 0,hasMap:!1,targetDuration:0,compatibleVersion:1,isClosedCaptionsNone:!1,hash:{}},n=V(function(t,e){var n=[];return t.split("\n").forEach((function(t){var a=t.trim();if(a)if(a.startsWith("#")){if(a.startsWith("#EXT")){var r=Y(a,e);return void(r&&n.push(r))}}else n.push(a)})),0!==n.length&&"EXTM3U"===n[0].name||s.INVALIDPLAYLIST("The EXTM3U tag MUST be the first line."),n}(t,e),e);return n.source=t,n}},367:(t,e,n)=>{function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(t){r=!0,i=t}finally{try{a||null==s.return||s.return()}finally{if(r)throw i}}return n}}(t,e)||o(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=o(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var a=0,r=function(){};return{s:r,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){c=!0,i=t},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw i}}}}function o(t,e){if(t){if("string"==typeof t)return s(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(t,e):void 0}}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function c(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}function u(t,e,n){return(u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var a=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=h(t)););return t}(t,e);if(a){var r=Object.getOwnPropertyDescriptor(a,e);return r.get?r.get.call(n):r.value}})(t,e,n||t)}function T(t,e){return!e||"object"!==a(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function l(t){var e="function"==typeof Map?new Map:void 0;return(l=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf("[native code]")))return t;var n;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,a)}function a(){return E(t,arguments,h(this).constructor)}return a.prototype=Object.create(t.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),I(a,t)})(t)}function E(t,e,n){return(E=f()?Reflect.construct:function(t,e,n){var a=[null];a.push.apply(a,e);var r=new(Function.bind.apply(t,a));return n&&I(r,n.prototype),r}).apply(null,arguments)}function f(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}function I(t,e){return(I=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var A=n(771),p=["#EXTINF","#EXT-X-BYTERANGE","#EXT-X-DISCONTINUITY","#EXT-X-STREAM-INF","#EXT-X-CUE-OUT","#EXT-X-CUE-IN","#EXT-X-KEY","#EXT-X-MAP"],d=["#EXT-X-MEDIA"],S=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&I(t,e)}(s,t);var e,n,a,r,i,o=(e=s,n=f(),function(){var t,a=h(e);if(n){var r=h(this).constructor;t=Reflect.construct(a,arguments,r)}else t=a.apply(this,arguments);return T(this,t)});function s(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),(e=o.call(this)).baseUri=t,e}return a=s,(r=[{key:"push",value:function(){for(var t=this,e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];for(var r=function(){var e=o[i];if(!e.startsWith("#"))return u(h(s.prototype),"push",t).call(t,e),"continue";if(p.some((function(t){return e.startsWith(t)})))return u(h(s.prototype),"push",t).call(t,e),"continue";if(t.includes(e)){if(d.some((function(t){return e.startsWith(t)})))return"continue";A.INVALIDPLAYLIST("Redundant item (".concat(e,")"))}u(h(s.prototype),"push",t).call(t,e)},i=0,o=n;i<o.length;i++)r()}}])&&c(a.prototype,r),i&&c(a,i),s}(l(Array));function N(t,e){var n=1e3;e&&(n=Math.pow(10,e));var a=Math.round(t*n)/n;return e?a.toFixed(e):a}function y(t){var e=t.toString(10),n=e.indexOf(".");return-1===n?0:e.length-n-1}function X(t){var e=['DATA-ID="'.concat(t.id,'"')];return t.language&&e.push('LANGUAGE="'.concat(t.language,'"')),t.value?e.push('VALUE="'.concat(t.value,'"')):t.uri&&e.push('URI="'.concat(t.uri,'"')),"#EXT-X-SESSION-DATA:".concat(e.join(","))}function v(t,e){var n=e?"#EXT-X-SESSION-KEY":"#EXT-X-KEY",a=["METHOD=".concat(t.method)];return t.uri&&a.push('URI="'.concat(t.uri,'"')),t.iv&&(16!==t.iv.length&&A.INVALIDPLAYLIST("IV must be a 128-bit unsigned integer"),a.push("IV=".concat(A.byteSequenceToHex(t.iv)))),t.format&&a.push('KEYFORMAT="'.concat(t.format,'"')),t.formatVersion&&a.push('KEYFORMATVERSIONS="'.concat(t.formatVersion,'"')),"".concat(n,":").concat(a.join(","))}function m(t,e){var n=e.isIFrameOnly?"#EXT-X-I-FRAME-STREAM-INF":"#EXT-X-STREAM-INF",a=["BANDWIDTH=".concat(e.bandwidth)];if(e.averageBandwidth&&a.push("AVERAGE-BANDWIDTH=".concat(e.averageBandwidth)),e.isIFrameOnly&&a.push('URI="'.concat(e.uri,'"')),e.codecs&&a.push('CODECS="'.concat(e.codecs,'"')),e.resolution&&a.push("RESOLUTION=".concat(e.resolution.width,"x").concat(e.resolution.height)),e.frameRate&&a.push("FRAME-RATE=".concat(N(e.frameRate,3))),e.hdcpLevel&&a.push("HDCP-LEVEL=".concat(e.hdcpLevel)),e.audio.length>0){a.push('AUDIO="'.concat(e.audio[0].groupId,'"'));var r,o=i(e.audio);try{for(o.s();!(r=o.n()).done;){var s=r.value;t.push(R(s))}}catch(t){o.e(t)}finally{o.f()}}if(e.video.length>0){a.push('VIDEO="'.concat(e.video[0].groupId,'"'));var c,u=i(e.video);try{for(u.s();!(c=u.n()).done;){var T=c.value;t.push(R(T))}}catch(t){u.e(t)}finally{u.f()}}if(e.subtitles.length>0){a.push('SUBTITLES="'.concat(e.subtitles[0].groupId,'"'));var l,E=i(e.subtitles);try{for(E.s();!(l=E.n()).done;){var f=l.value;t.push(R(f))}}catch(t){E.e(t)}finally{E.f()}}if(A.getOptions().allowClosedCaptionsNone&&0===e.closedCaptions.length)a.push("CLOSED-CAPTIONS=NONE");else if(e.closedCaptions.length>0){a.push('CLOSED-CAPTIONS="'.concat(e.closedCaptions[0].groupId,'"'));var I,h=i(e.closedCaptions);try{for(h.s();!(I=h.n()).done;){var p=I.value;t.push(R(p))}}catch(t){h.e(t)}finally{h.f()}}t.push("".concat(n,":").concat(a.join(","))),e.isIFrameOnly||t.push("".concat(e.uri))}function R(t){var e=["TYPE=".concat(t.type),'GROUP-ID="'.concat(t.groupId,'"'),'NAME="'.concat(t.name,'"')];return void 0!==t.isDefault&&e.push("DEFAULT=".concat(t.isDefault?"YES":"NO")),void 0!==t.autoselect&&e.push("AUTOSELECT=".concat(t.autoselect?"YES":"NO")),void 0!==t.forced&&e.push("FORCED=".concat(t.forced?"YES":"NO")),t.language&&e.push('LANGUAGE="'.concat(t.language,'"')),t.assocLanguage&&e.push('ASSOC-LANGUAGE="'.concat(t.assocLanguage,'"')),t.instreamId&&e.push('INSTREAM-ID="'.concat(t.instreamId,'"')),t.characteristics&&e.push('CHARACTERISTICS="'.concat(t.characteristics,'"')),t.channels&&e.push('CHANNELS="'.concat(t.channels,'"')),t.uri&&e.push('URI="'.concat(t.uri,'"')),"#EXT-X-MEDIA:".concat(e.join(","))}function D(t,e,n,a){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=!1;if(e.byterange&&t.push("#EXT-X-BYTERANGE:".concat(g(e.byterange))),e.discontinuity&&t.push("#EXT-X-DISCONTINUITY"),e.key){var o=v(e.key);o!==n&&(t.push(o),n=o)}if(e.map){var s=L(e.map);s!==a&&(t.push(s),a=s)}if(e.programDateTime&&t.push("#EXT-X-PROGRAM-DATE-TIME:".concat(A.formatDate(e.programDateTime))),e.dateRange&&t.push(P(e.dateRange)),e.markers.length>0&&O(t,e.markers),e.parts.length>0&&(i=b(t,e.parts)),i)return[n,a];var c=r<3?Math.round(e.duration):N(e.duration,y(e.duration));return t.push("#EXTINF:".concat(c,",").concat(unescape(encodeURIComponent(e.title||"")))),Array.prototype.push.call(t,"".concat(e.uri)),[n,a]}function L(t){var e=['URI="'.concat(t.uri,'"')];return t.byterange&&e.push('BYTERANGE="'.concat(g(t.byterange),'"')),"#EXT-X-MAP:".concat(e.join(","))}function g(t){var e=t.offset,n=t.length;return"".concat(n,"@").concat(e)}function P(t){var e=['ID="'.concat(t.id,'"')];return t.start&&e.push('START-DATE="'.concat(A.formatDate(t.start),'"')),t.end&&e.push('END-DATE="'.concat(t.end,'"')),t.duration&&e.push("DURATION=".concat(t.duration)),t.plannedDuration&&e.push("PLANNED-DURATION=".concat(t.plannedDuration)),t.classId&&e.push('CLASS="'.concat(t.classId,'"')),t.endOnNext&&e.push("END-ON-NEXT=YES"),Object.keys(t.attributes).forEach((function(n){n.startsWith("X-")?"number"==typeof t.attributes[n]?e.push("".concat(n,"=").concat(t.attributes[n])):e.push("".concat(n,'="').concat(t.attributes[n],'"')):n.startsWith("SCTE35-")&&e.push("".concat(n,"=").concat(A.byteSequenceToHex(t.attributes[n])))})),"#EXT-X-DATERANGE:".concat(e.join(","))}function O(t,e){var n,a=i(e);try{for(a.s();!(n=a.n()).done;){var r=n.value;if("OUT"===r.type)t.push("#EXT-X-CUE-OUT:".concat(r.duration));else if("IN"===r.type)t.push("#EXT-X-CUE-IN");else if("RAW"===r.type){var o=r.value?":".concat(r.value):"";t.push("#".concat(r.tagName).concat(o))}}}catch(t){a.e(t)}finally{a.f()}}function b(t,e){var n,a=!1,r=i(e);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(o.hint){var s=[];if(s.push("TYPE=PART"),s.push('URI="'.concat(o.uri,'"')),o.byterange){var c=o.byterange,u=c.offset,T=c.length;s.push("BYTERANGE-START=".concat(u)),T&&s.push("BYTERANGE-LENGTH=".concat(T))}t.push("#EXT-X-PRELOAD-HINT:".concat(s.join(","))),a=!0}else{var l=[];l.push("DURATION=".concat(o.duration)),l.push('URI="'.concat(o.uri,'"')),o.byterange&&l.push("BYTERANGE=".concat(g(o.byterange))),o.independent&&l.push("INDEPENDENT=YES"),o.gap&&l.push("GAP=YES"),t.push("#EXT-X-PART:".concat(l.join(",")))}}}catch(t){r.e(t)}finally{r.f()}return a}t.exports=function(t){A.PARAMCHECK(t),A.ASSERT("Not a playlist","playlist"===t.type);var e=new S(t.uri);return e.push("#EXTM3U"),t.version&&e.push("#EXT-X-VERSION:".concat(t.version)),t.independentSegments&&e.push("#EXT-X-INDEPENDENT-SEGMENTS"),t.start&&e.push("#EXT-X-START:TIME-OFFSET=".concat(N(t.start.offset)).concat(t.start.precise?",PRECISE=YES":"")),t.isMasterPlaylist?function(t,e){var n,a=i(e.sessionDataList);try{for(a.s();!(n=a.n()).done;){var r=n.value;t.push(X(r))}}catch(t){a.e(t)}finally{a.f()}var o,s=i(e.sessionKeyList);try{for(s.s();!(o=s.n()).done;){var c=o.value;t.push(v(c,!0))}}catch(t){s.e(t)}finally{s.f()}var u,T=i(e.variants);try{for(T.s();!(u=T.n()).done;)m(t,u.value)}catch(t){T.e(t)}finally{T.f()}}(e,t):function(t,e){var n="",a="";if(e.targetDuration&&t.push("#EXT-X-TARGETDURATION:".concat(e.targetDuration)),e.lowLatencyCompatibility){var o=e.lowLatencyCompatibility,s=o.canBlockReload,c=o.canSkipUntil,u=o.holdBack,T=o.partHoldBack,l=[];l.push("CAN-BLOCK-RELOAD=".concat(s?"YES":"NO")),void 0!==c&&l.push("CAN-SKIP-UNTIL=".concat(c)),void 0!==u&&l.push("HOLD-BACK=".concat(u)),void 0!==T&&l.push("PART-HOLD-BACK=".concat(T)),t.push("#EXT-X-SERVER-CONTROL:".concat(l.join(",")))}e.partTargetDuration&&t.push("#EXT-X-PART-INF:PART-TARGET=".concat(e.partTargetDuration)),e.mediaSequenceBase&&t.push("#EXT-X-MEDIA-SEQUENCE:".concat(e.mediaSequenceBase)),e.discontinuitySequenceBase&&t.push("#EXT-X-DISCONTINUITY-SEQUENCE:".concat(e.discontinuitySequenceBase)),e.playlistType&&t.push("#EXT-X-PLAYLIST-TYPE:".concat(e.playlistType)),e.isIFrame&&t.push("#EXT-X-I-FRAMES-ONLY"),e.skip>0&&t.push("#EXT-X-SKIP:SKIPPED-SEGMENTS=".concat(e.skip));var E,f=i(e.segments);try{for(f.s();!(E=f.n()).done;){var I=r(D(t,E.value,n,a,e.version),2);n=I[0],a=I[1]}}catch(t){f.e(t)}finally{f.f()}e.prefetchSegments.length>2&&A.INVALIDPLAYLIST("The server must deliver no more than two prefetch segments");var h,p=i(e.prefetchSegments);try{for(p.s();!(h=p.n()).done;){var d=h.value;d.discontinuity&&t.push("#EXT-X-PREFETCH-DISCONTINUITY"),t.push("#EXT-X-PREFETCH:".concat(d.uri))}}catch(t){p.e(t)}finally{p.f()}e.endlist&&t.push("#EXT-X-ENDLIST");var S,N=i(e.renditionReports);try{for(N.s();!(S=N.n()).done;){var y=S.value,X=[];X.push('URI="'.concat(y.uri,'"')),X.push("LAST-MSN=".concat(y.lastMSN)),void 0!==y.lastPart&&X.push("LAST-PART=".concat(y.lastPart)),t.push("#EXT-X-RENDITION-REPORT:".concat(X.join(",")))}}catch(t){N.e(t)}finally{N.f()}}(e,t),e.join("\n")}},890:(t,e,n)=>{function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&i(t,e)}function i(t,e){return(i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,a=c(t);if(e){var r=c(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return s(this,n)}}function s(t,e){return!e||"object"!==a(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var T=n(771),l=function t(e){u(this,t),T.PARAMCHECK(e),this.type=e},E=function(t){r(n,t);var e=o(n);function n(t){var a,r=t.isMasterPlaylist,i=t.uri,o=t.version,s=t.independentSegments,c=void 0!==s&&s,l=t.start,E=t.source;return u(this,n),a=e.call(this,"playlist"),T.PARAMCHECK(r),a.isMasterPlaylist=r,a.uri=i,a.version=o,a.independentSegments=c,a.start=l,a.source=E,a}return n}(l),f=function(t){r(n,t);var e=o(n);function n(){var t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,n),a.isMasterPlaylist=!0,t=e.call(this,a);var r=a.variants,i=void 0===r?[]:r,o=a.currentVariant,s=a.sessionDataList,c=void 0===s?[]:s,T=a.sessionKeyList,l=void 0===T?[]:T;return t.variants=i,t.currentVariant=o,t.sessionDataList=c,t.sessionKeyList=l,t}return n}(E),I=function(t){r(n,t);var e=o(n);function n(){var t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,n),a.isMasterPlaylist=!1,t=e.call(this,a);var r=a.targetDuration,i=a.mediaSequenceBase,o=void 0===i?0:i,s=a.discontinuitySequenceBase,c=void 0===s?0:s,T=a.endlist,l=void 0!==T&&T,E=a.playlistType,f=a.isIFrame,I=a.segments,h=void 0===I?[]:I,A=a.prefetchSegments,p=void 0===A?[]:A,d=a.lowLatencyCompatibility,S=a.partTargetDuration,N=a.renditionReports,y=void 0===N?[]:N,X=a.skip,v=void 0===X?0:X,m=a.hash;return t.targetDuration=r,t.mediaSequenceBase=o,t.discontinuitySequenceBase=c,t.endlist=l,t.playlistType=E,t.isIFrame=f,t.segments=h,t.prefetchSegments=p,t.lowLatencyCompatibility=d,t.partTargetDuration=S,t.renditionReports=y,t.skip=v,t.hash=m,t}return n}(E),h=function(t){r(n,t);var e=o(n);function n(t){var a,r=t.uri,i=t.mimeType,o=t.data,s=t.duration,c=t.title,T=t.byterange,l=t.discontinuity,E=t.mediaSequenceNumber,f=void 0===E?0:E,I=t.discontinuitySequence,h=void 0===I?0:I,A=t.key,p=t.map,d=t.programDateTime,S=t.dateRange,N=t.markers,y=void 0===N?[]:N,X=t.parts,v=void 0===X?[]:X;return u(this,n),(a=e.call(this,"segment")).uri=r,a.mimeType=i,a.data=o,a.duration=s,a.title=c,a.byterange=T,a.discontinuity=l,a.mediaSequenceNumber=f,a.discontinuitySequence=h,a.key=A,a.map=p,a.programDateTime=d,a.dateRange=S,a.markers=y,a.parts=v,a}return n}(l),A=function(t){r(n,t);var e=o(n);function n(t){var a,r=t.hint,i=void 0!==r&&r,o=t.uri,s=t.duration,c=t.independent,l=t.byterange,E=t.gap;return u(this,n),a=e.call(this,"part"),T.PARAMCHECK(o),a.hint=i,a.uri=o,a.duration=s,a.independent=c,a.duration=s,a.byterange=l,a.gap=E,a}return n}(l),p=function(t){r(n,t);var e=o(n);function n(t){var a,r=t.uri,i=t.discontinuity,o=t.mediaSequenceNumber,s=void 0===o?0:o,c=t.discontinuitySequence,l=void 0===c?0:c,E=t.key;return u(this,n),a=e.call(this,"prefetch"),T.PARAMCHECK(r),a.uri=r,a.discontinuity=i,a.mediaSequenceNumber=s,a.discontinuitySequence=l,a.key=E,a}return n}(l);t.exports={Rendition:function t(e){var n=e.type,a=e.uri,r=e.groupId,i=e.language,o=e.assocLanguage,s=e.name,c=e.isDefault,l=e.autoselect,E=e.forced,f=e.instreamId,I=e.characteristics,h=e.channels;u(this,t),T.PARAMCHECK(n,r,s),T.CONDITIONALASSERT(["SUBTITLES"===n,a],["CLOSED-CAPTIONS"===n,f],["CLOSED-CAPTIONS"===n,!a],[E,"SUBTITLES"===n]),this.type=n,this.uri=a,this.groupId=r,this.language=i,this.assocLanguage=o,this.name=s,this.isDefault=c,this.autoselect=l,this.forced=E,this.instreamId=f,this.characteristics=I,this.channels=h},Variant:function t(e){var n=e.uri,a=e.isIFrameOnly,r=void 0!==a&&a,i=e.bandwidth,o=e.averageBandwidth,s=e.codecs,c=e.resolution,l=e.frameRate,E=e.hdcpLevel,f=e.audio,I=void 0===f?[]:f,h=e.video,A=void 0===h?[]:h,p=e.subtitles,d=void 0===p?[]:p,S=e.closedCaptions,N=void 0===S?[]:S,y=e.currentRenditions,X=void 0===y?{audio:0,video:0,subtitles:0,closedCaptions:0}:y;u(this,t),T.PARAMCHECK(n,i),this.uri=n,this.isIFrameOnly=r,this.bandwidth=i,this.averageBandwidth=o,this.codecs=s,this.resolution=c,this.frameRate=l,this.hdcpLevel=E,this.audio=I,this.video=A,this.subtitles=d,this.closedCaptions=N,this.currentRenditions=X},SessionData:function t(e){var n=e.id,a=e.value,r=e.uri,i=e.language;u(this,t),T.PARAMCHECK(n,a||r),T.ASSERT("SessionData cannot have both value and uri, shoud be either.",!(a&&r)),this.id=n,this.value=a,this.uri=r,this.language=i},Key:function t(e){var n=e.method,a=e.uri,r=e.iv,i=e.format,o=e.formatVersion;u(this,t),T.PARAMCHECK(n),T.CONDITIONALPARAMCHECK(["NONE"!==n,a]),T.CONDITIONALASSERT(["NONE"===n,!(a||r||i||o)]),this.method=n,this.uri=a,this.iv=r,this.format=i,this.formatVersion=o},MediaInitializationSection:function t(e){var n=e.hint,a=void 0!==n&&n,r=e.uri,i=e.mimeType,o=e.byterange;u(this,t),T.PARAMCHECK(r),this.hint=a,this.uri=r,this.mimeType=i,this.byterange=o},DateRange:function t(e){var n=e.id,a=e.classId,r=e.start,i=e.end,o=e.duration,s=e.plannedDuration,c=e.endOnNext,l=e.attributes,E=void 0===l?{}:l;u(this,t),T.PARAMCHECK(n),T.CONDITIONALPARAMCHECK([!0===c,a]),T.CONDITIONALASSERT([i,r],[i,r<=i],[o,o>=0],[s,s>=0]),this.id=n,this.classId=a,this.start=r,this.end=i,this.duration=o,this.plannedDuration=s,this.endOnNext=c,this.attributes=E},SpliceInfo:function t(e){var n=e.type,a=e.duration,r=e.tagName,i=e.value;u(this,t),T.PARAMCHECK(n),T.CONDITIONALPARAMCHECK(["OUT"===n,a]),T.CONDITIONALPARAMCHECK(["RAW"===n,r]),this.type=n,this.duration=a,this.tagName=r,this.value=i},Playlist:E,MasterPlaylist:f,MediaPlaylist:I,Segment:h,PartialSegment:A,PrefetchSegment:p,RenditionReport:function t(e){var n=e.uri,a=e.lastMSN,r=e.lastPart;u(this,t),T.PARAMCHECK(n),this.uri=n,this.lastMSN=a,this.lastPart=r}}},771:t=>{function e(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(t){r=!0,i=t}finally{try{a||null==s.return||s.return()}finally{if(r)throw i}}return n}}(t,e)||a(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=a(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){c=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw o}}}}function a(t,e){if(t){if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}var i={};function o(t){if(i.strictMode)throw t;i.silent||console.error(t.message)}function s(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;if("number"==typeof t)return t;var n=10===e?Number.parseFloat(t,e):Number.parseInt(t,e);return Number.isNaN(n)?0:n}t.exports={THROW:o,ASSERT:function(t){for(var a=arguments.length,r=new Array(a>1?a-1:0),i=1;i<a;i++)r[i-1]=arguments[i];var s,c=n(r.entries());try{for(c.s();!(s=c.n()).done;){var u=e(s.value,2),T=u[0],l=u[1];l||o(new Error("".concat(t," : Failed at [").concat(T,"]")))}}catch(t){c.e(t)}finally{c.f()}},CONDITIONALASSERT:function(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];var i,s=n(a.entries());try{for(s.s();!(i=s.n()).done;){var c=e(i.value,2),u=c[0],T=e(c[1],2),l=T[0],E=T[1];l&&(E||o(new Error("Conditional Assert : Failed at [".concat(u,"]"))))}}catch(t){s.e(t)}finally{s.f()}},PARAMCHECK:function(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];var i,s=n(a.entries());try{for(s.s();!(i=s.n()).done;){var c=e(i.value,2),u=c[0],T=c[1];void 0===T&&o(new Error("Param Check : Failed at [".concat(u,"]")))}}catch(t){s.e(t)}finally{s.f()}},CONDITIONALPARAMCHECK:function(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];var i,s=n(a.entries());try{for(s.s();!(i=s.n()).done;){var c=e(i.value,2),u=c[0],T=e(c[1],2),l=T[0],E=T[1];l&&void 0===E&&o(new Error("Conditional Param Check : Failed at [".concat(u,"]")))}}catch(t){s.e(t)}finally{s.f()}},INVALIDPLAYLIST:function(t){o(new Error("Invalid Playlist : ".concat(t)))},toNumber:s,hexToByteSequence:function(t){(t.startsWith("0x")||t.startsWith("0X"))&&(t=t.slice(2));for(var e=[],n=0;n<t.length;n+=2)e.push(s(t.slice(n,n+2),16));return Buffer.from(e)},byteSequenceToHex:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length;n<=e&&o(new Error("end must be larger than start : start=".concat(e,", end=").concat(n)));for(var a=[],r=e;r<n;r++)a.push("0".concat((255&t[r]).toString(16).toUpperCase()).slice(-2));return"0x".concat(a.join(""))},tryCatch:function(t,e){try{return t()}catch(t){return e(t)}},splitAt:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=-1,r=0,i=0;r<t.length;r++)if(t[r]===e){if(i++===n)return[t.slice(0,r),t.slice(r+1)];a=r}return-1!==a?[t.slice(0,a),t.slice(a+1)]:[t]},trim:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return t?(t=t.trim()," "===e||(t.startsWith(e)&&(t=t.slice(1)),t.endsWith(e)&&(t=t.slice(0,-1))),t):t},splitByCommaWithPreservingQuotes:function(t){for(var e=[],n=!0,a=0,r=[],i=0;i<t.length;i++){var o=t[i];n&&","===o?(e.push(t.slice(a,i).trim()),a=i+1):'"'!==o&&"'"!==o||(n?(r.push(o),n=!1):o===r[r.length-1]?(r.pop(),n=!0):r.push(o))}return e.push(t.slice(a).trim()),e},camelify:function(t){var e,a=[],r=!1,i=n(t);try{for(i.s();!(e=i.n()).done;){var o=e.value;"-"!==o&&"_"!==o?r?(a.push(o.toUpperCase()),r=!1):a.push(o.toLowerCase()):r=!0}}catch(t){i.e(t)}finally{i.f()}return a.join("")},formatDate:function(t){var e=t.getUTCFullYear(),n=("0"+(t.getUTCMonth()+1)).slice(-2),a=("0"+t.getUTCDate()).slice(-2),r=("0"+t.getUTCHours()).slice(-2),i=("0"+t.getUTCMinutes()).slice(-2),o=("0"+t.getUTCSeconds()).slice(-2),s=("00"+t.getUTCMilliseconds()).slice(-3);return"".concat(e,"-").concat(n,"-").concat(a,"T").concat(r,":").concat(i,":").concat(o,".").concat(s,"Z")},hasOwnProp:function(t,e){return Object.hasOwnProperty.call(t,e)},setOptions:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i=Object.assign(i,t)},getOptions:function(){return Object.assign({},i)}}}},e={},function n(a){if(e[a])return e[a].exports;var r=e[a]={exports:{}};return t[a](r,r.exports,n),r.exports}(851);var t,e}));
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.HLS=e():t.HLS=e()}(self,(function(){return t={851:(t,e,n)=>{var a=n(771),r=a.getOptions,i=a.setOptions,o=n(463),s=n(367),c=n(890);t.exports={parse:o,stringify:s,types:c,getOptions:r,setOptions:i}},463:(t,e,n)=>{function a(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(t){r=!0,i=t}finally{try{a||null==s.return||s.return()}finally{if(r)throw i}}return n}}(t,e)||i(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=i(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var a=0,r=function(){};return{s:r,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){c=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw o}}}}function i(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}var s=n(771),c=n(890),u=c.Rendition,l=c.Variant,T=c.SessionData,E=c.Key,f=c.MediaInitializationSection,I=c.DateRange,h=c.SpliceInfo,A=c.MasterPlaylist,p=c.MediaPlaylist,d=c.Segment,S=c.PartialSegment,N=c.PrefetchSegment,y=c.RenditionReport;function X(t){return s.trim(t,'"')}function v(t){var e=s.splitAt(t,",");return{duration:s.toNumber(e[0]),title:decodeURIComponent(escape(e[1]))}}function m(t){var e=s.splitAt(t,"@");return{length:s.toNumber(e[0]),offset:e[1]?s.toNumber(e[1]):-1}}function R(t){var e=s.splitAt(t,"x");return{width:s.toNumber(e[0]),height:s.toNumber(e[1])}}function L(t){var e="ALLOWED-CPC: Each entry must consit of KEYFORMAT and Content Protection Configuration",n=t.split(",");0===n.length&&s.INVALIDPLAYLIST(e);var i,o=[],c=r(n);try{for(c.s();!(i=c.n()).done;){var u=i.value,l=a(s.splitAt(u,":"),2),T=l[0],E=l[1];T&&E?o.push({format:T,cpcList:E.split("/")}):s.INVALIDPLAYLIST(e)}}catch(t){c.e(t)}finally{c.f()}return o}function D(t){return t.startsWith('"')?X(t):t.startsWith("0x")||t.startsWith("0X")?s.hexToByteSequence(t):s.toNumber(t)}function g(t,e){e.IV&&t.compatibleVersion<2&&(t.compatibleVersion=2),(e.KEYFORMAT||e.KEYFORMATVERSIONS)&&t.compatibleVersion<5&&(t.compatibleVersion=5)}function O(t){var e,n,i,o={},c=r(s.splitByCommaWithPreservingQuotes(t));try{for(c.s();!(e=c.n()).done;){var u=e.value,l=a(s.splitAt(u,"="),2),T=l[0],E=l[1],f=X(E);switch(T){case"URI":o[T]=f;break;case"START-DATE":case"END-DATE":o[T]=new Date(f);break;case"IV":o[T]=(n=f,i=void 0,16!==(i=s.hexToByteSequence(n)).length&&s.INVALIDPLAYLIST("IV must be a 128-bit unsigned integer"),i);break;case"BYTERANGE":o[T]=m(f);break;case"RESOLUTION":o[T]=R(f);break;case"ALLOWED-CPC":o[T]=L(f);break;case"END-ON-NEXT":case"DEFAULT":case"AUTOSELECT":case"FORCED":case"PRECISE":case"CAN-BLOCK-RELOAD":case"INDEPENDENT":case"GAP":o[T]="YES"===f;break;case"DURATION":case"PLANNED-DURATION":case"BANDWIDTH":case"AVERAGE-BANDWIDTH":case"FRAME-RATE":case"TIME-OFFSET":case"CAN-SKIP-UNTIL":case"HOLD-BACK":case"PART-HOLD-BACK":case"PART-TARGET":case"BYTERANGE-START":case"BYTERANGE-LENGTH":case"LAST-MSN":case"LAST-PART":case"SKIPPED-SEGMENTS":case"SCORE":o[T]=s.toNumber(f);break;default:T.startsWith("SCTE35-")?o[T]=s.hexToByteSequence(f):T.startsWith("X-")?o[T]=D(E):("VIDEO-RANGE"===T&&"SDR"!==f&&"HLG"!==f&&"PQ"!==f&&s.INVALIDPLAYLIST('VIDEO-RANGE: unknown value "'.concat(f,'"')),o[T]=f)}}}catch(t){c.e(t)}finally{c.f()}return o}function P(){s.INVALIDPLAYLIST("The file contains both media and master playlist tags.")}function b(t,e,n){var a,i=(a=e.attributes,new u({type:a.TYPE,uri:a.URI,groupId:a["GROUP-ID"],language:a.LANGUAGE,assocLanguage:a["ASSOC-LANGUAGE"],name:a.NAME,isDefault:a.DEFAULT,autoselect:a.AUTOSELECT,forced:a.FORCED,instreamId:a["INSTREAM-ID"],characteristics:a.CHARACTERISTICS,channels:a.CHANNELS})),o=t[s.camelify(n)],c=function(t,e){var n,a=!1,i=r(t);try{for(i.s();!(n=i.n()).done;){var o=n.value;if(o.name===e.name)return"All EXT-X-MEDIA tags in the same Group MUST have different NAME attributes.";o.isDefault&&(a=!0)}}catch(t){i.e(t)}finally{i.f()}return a&&e.isDefault?"EXT-X-MEDIA A Group MUST NOT have more than one member with a DEFAULT attribute of YES.":""}(o,i);c&&s.INVALIDPLAYLIST(c),o.push(i),i.isDefault&&(t.currentRenditions[s.camelify(n)]=o.length-1)}function C(t,e,n,a,i){var o,c=new l({uri:n,bandwidth:e.BANDWIDTH,averageBandwidth:e["AVERAGE-BANDWIDTH"],score:e.SCORE,codecs:e.CODECS,resolution:e.RESOLUTION,frameRate:e["FRAME-RATE"],hdcpLevel:e["HDCP-LEVEL"],allowedCpc:e["ALLOWED-CPC"],videoRange:e["VIDEO-RANGE"],stableVariantId:e["STABLE-VARIANT-ID"]}),u=r(t);try{for(u.s();!(o=u.n()).done;){var T=o.value;if("EXT-X-MEDIA"===T.name){var E=T.attributes,f=E.TYPE;if(f&&E["GROUP-ID"]||s.INVALIDPLAYLIST("EXT-X-MEDIA TYPE attribute is REQUIRED."),e[f]===E["GROUP-ID"]&&(b(c,T,f),"CLOSED-CAPTIONS"===f)){var I,h=r(c.closedCaptions);try{for(h.s();!(I=h.n()).done;){var A=I.value.instreamId;if(A&&A.startsWith("SERVICE")&&i.compatibleVersion<7){i.compatibleVersion=7;break}}}catch(t){h.e(t)}finally{h.f()}}}}}catch(t){u.e(t)}finally{u.f()}return function(t,e,n){for(var a=function(){var a=i[r];"CLOSED-CAPTIONS"===a&&"NONE"===t[a]?(n.isClosedCaptionsNone=!0,e.closedCaptions=[]):t[a]&&!e[s.camelify(a)].some((function(e){return e.groupId===t[a]}))&&s.INVALIDPLAYLIST("".concat(a," attribute MUST match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag whose TYPE attribute is ").concat(a,"."))},r=0,i=["AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS"];r<i.length;r++)a()}(e,c,i),c.isIFrameOnly=a,c}function M(t,e){if(t.method!==e.method)return!1;if(t.uri!==e.uri)return!1;if(t.iv){if(!e.iv)return!1;if(t.iv.length!==e.iv.length)return!1;for(var n=0;n<t.iv.length;n++)if(t.iv[n]!==e.iv[n])return!1}else if(e.iv)return!1;return t.format===e.format&&t.formatVersion===e.formatVersion}function U(t,e,n,a,r,i,o){for(var c=new d({uri:e,mediaSequenceNumber:r,discontinuitySequence:i}),u=!1,l=!1,T=n;T<=a;T++){var A=t[T],p=A.name,N=A.value,y=A.attributes;if("EXTINF"===p)!Number.isInteger(N.duration)&&o.compatibleVersion<3&&(o.compatibleVersion=3),Math.round(N.duration)>o.targetDuration&&s.INVALIDPLAYLIST("EXTINF duration, when rounded to the nearest integer, MUST be less than or equal to the target duration"),c.duration=N.duration,c.title=N.title;else if("EXT-X-BYTERANGE"===p)o.compatibleVersion<4&&(o.compatibleVersion=4),c.byterange=N;else if("EXT-X-DISCONTINUITY"===p)c.parts.length>0&&s.INVALIDPLAYLIST("EXT-X-DISCONTINUITY must appear before the first EXT-X-PART tag of the Parent Segment."),c.discontinuity=!0;else if("EXT-X-KEY"===p)c.parts.length>0&&s.INVALIDPLAYLIST("EXT-X-KEY must appear before the first EXT-X-PART tag of the Parent Segment."),g(o,y),c.key=new E({method:y.METHOD,uri:y.URI,iv:y.IV,format:y.KEYFORMAT,formatVersion:y.KEYFORMATVERSIONS});else if("EXT-X-MAP"===p)c.parts.length>0&&s.INVALIDPLAYLIST("EXT-X-MAP must appear before the first EXT-X-PART tag of the Parent Segment."),o.compatibleVersion<5&&(o.compatibleVersion=5),o.hasMap=!0,c.map=new f({uri:y.URI,byterange:y.BYTERANGE});else if("EXT-X-PROGRAM-DATE-TIME"===p)c.programDateTime=N;else if("EXT-X-DATERANGE"===p){for(var X={},v=0,m=Object.keys(y);v<m.length;v++){var R=m[v];(R.startsWith("SCTE35-")||R.startsWith("X-"))&&(X[R]=y[R])}c.dateRange=new I({id:y.ID,classId:y.CLASS,start:y["START-DATE"],end:y["END-DATE"],duration:y.DURATION,plannedDuration:y["PLANNED-DURATION"],endOnNext:y["END-ON-NEXT"],attributes:X})}else if("EXT-X-CUE-OUT"===p)c.markers.push(new h({type:"OUT",duration:N}));else if("EXT-X-CUE-IN"===p)c.markers.push(new h({type:"IN"}));else if("EXT-X-CUE-OUT-CONT"===p||"EXT-X-CUE"===p||"EXT-OATCLS-SCTE35"===p||"EXT-X-ASSET"===p||"EXT-X-SCTE35"===p)c.markers.push(new h({type:"RAW",tagName:p,value:N}));else if("EXT-X-PRELOAD-HINT"!==p||y.TYPE)if("EXT-X-PRELOAD-HINT"===p&&"PART"===y.TYPE&&l)s.INVALIDPLAYLIST("Servers should not add more than one EXT-X-PRELOAD-HINT tag with the same TYPE attribute to a Playlist.");else if("EXT-X-PART"!==p&&"EXT-X-PRELOAD-HINT"!==p||y.URI){if("EXT-X-PRELOAD-HINT"===p&&"MAP"===y.TYPE)u&&s.INVALIDPLAYLIST("Servers should not add more than one EXT-X-PRELOAD-HINT tag with the same TYPE attribute to a Playlist."),u=!0,o.hasMap=!0,c.map=new f({hint:!0,uri:y.URI,byterange:{length:y["BYTERANGE-LENGTH"],offset:y["BYTERANGE-START"]||0}});else if("EXT-X-PART"===p||"EXT-X-PRELOAD-HINT"===p&&"PART"===y.TYPE){"EXT-X-PART"!==p||y.DURATION||s.INVALIDPLAYLIST("EXT-X-PART: DURATION attribute is mandatory"),"EXT-X-PRELOAD-HINT"===p&&(l=!0);var L=new S({hint:"EXT-X-PRELOAD-HINT"===p,uri:y.URI,byterange:"EXT-X-PART"===p?y.BYTERANGE:{length:y["BYTERANGE-LENGTH"],offset:y["BYTERANGE-START"]||0},duration:y.DURATION,independent:y.INDEPENDENT,gap:y.GAP});c.parts.push(L)}}else s.INVALIDPLAYLIST("EXT-X-PART / EXT-X-PRELOAD-HINT: URI attribute is mandatory");else s.INVALIDPLAYLIST("EXT-X-PRELOAD-HINT: TYPE attribute is mandatory")}return c}function Y(t,e,n,a,r,i,o){for(var c=new N({uri:e,mediaSequenceNumber:r,discontinuitySequence:i}),u=n;u<=a;u++){var l=t[u],T=l.name,f=l.attributes;"EXTINF"===T?s.INVALIDPLAYLIST("A prefetch segment must not be advertised with an EXTINF tag."):"EXT-X-DISCONTINUITY"===T?s.INVALIDPLAYLIST("A prefetch segment must not be advertised with an EXT-X-DISCONTINUITY tag."):"EXT-X-PREFETCH-DISCONTINUITY"===T?c.discontinuity=!0:"EXT-X-KEY"===T?(g(o,f),c.key=new E({method:f.METHOD,uri:f.URI,iv:f.IV,format:f.KEYFORMAT,formatVersion:f.KEYFORMATVERSIONS})):"EXT-X-MAP"===T&&s.INVALIDPLAYLIST("Prefetch segments must not be advertised with an EXT-X-MAP tag.")}return c}function V(t,e){var n,i=new p,o=-1,c=0,u=!1,l=!1,T=0,E=null,f=null,I=!1,h=r(t.entries());try{for(h.s();!(n=h.n()).done;){var A=a(n.value,2),d=A[0],S=A[1],N=S.name,X=S.value,v=S.attributes;if("Segment"!==S.category){if("EXT-X-VERSION"===N)void 0===i.version?i.version=X:s.INVALIDPLAYLIST("A Playlist file MUST NOT contain more than one EXT-X-VERSION tag.");else if("EXT-X-TARGETDURATION"===N)i.targetDuration=e.targetDuration=X;else if("EXT-X-MEDIA-SEQUENCE"===N)i.segments.length>0&&s.INVALIDPLAYLIST("The EXT-X-MEDIA-SEQUENCE tag MUST appear before the first Media Segment in the Playlist."),i.mediaSequenceBase=c=X;else if("EXT-X-DISCONTINUITY-SEQUENCE"===N)i.segments.length>0&&s.INVALIDPLAYLIST("The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before the first Media Segment in the Playlist."),u&&s.INVALIDPLAYLIST("The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before any EXT-X-DISCONTINUITY tag."),i.discontinuitySequenceBase=T=X;else if("EXT-X-ENDLIST"===N)i.endlist=!0;else if("EXT-X-PLAYLIST-TYPE"===N)i.playlistType=X;else if("EXT-X-I-FRAMES-ONLY"===N)e.compatibleVersion<4&&(e.compatibleVersion=4),i.isIFrame=!0;else if("EXT-X-INDEPENDENT-SEGMENTS"===N)i.independentSegments&&s.INVALIDPLAYLIST("EXT-X-INDEPENDENT-SEGMENTS tag MUST NOT appear more than once in a Playlist"),i.independentSegments=!0;else if("EXT-X-START"===N)i.start&&s.INVALIDPLAYLIST("EXT-X-START tag MUST NOT appear more than once in a Playlist"),"number"!=typeof v["TIME-OFFSET"]&&s.INVALIDPLAYLIST("EXT-X-START: TIME-OFFSET attribute is REQUIRED"),i.start={offset:v["TIME-OFFSET"],precise:v.PRECISE||!1};else if("EXT-X-SERVER-CONTROL"===N)v["CAN-BLOCK-RELOAD"]||s.INVALIDPLAYLIST("EXT-X-SERVER-CONTROL: CAN-BLOCK-RELOAD=YES is mandatory for Low-Latency HLS"),i.lowLatencyCompatibility={canBlockReload:v["CAN-BLOCK-RELOAD"],canSkipUntil:v["CAN-SKIP-UNTIL"],holdBack:v["HOLD-BACK"],partHoldBack:v["PART-HOLD-BACK"]};else if("EXT-X-PART-INF"===N)v["PART-TARGET"]||s.INVALIDPLAYLIST("EXT-X-PART-INF: PART-TARGET attribute is mandatory"),i.partTargetDuration=v["PART-TARGET"];else if("EXT-X-RENDITION-REPORT"===N)v.URI||s.INVALIDPLAYLIST("EXT-X-RENDITION-REPORT: URI attribute is mandatory"),0===v.URI.search(/^[a-z]+:/)&&s.INVALIDPLAYLIST("EXT-X-RENDITION-REPORT: URI must be relative to the playlist uri"),i.renditionReports.push(new y({uri:v.URI,lastMSN:v["LAST-MSN"],lastPart:v["LAST-PART"]}));else if("EXT-X-SKIP"===N)v["SKIPPED-SEGMENTS"]||s.INVALIDPLAYLIST("EXT-X-SKIP: SKIPPED-SEGMENTS attribute is mandatory"),e.compatibleVersion<9&&(e.compatibleVersion=9),i.skip=v["SKIPPED-SEGMENTS"],c+=i.skip;else if("EXT-X-PREFETCH"===N){var m=Y(t,X,-1===o?d:o,d-1,c++,T,e);m&&(m.discontinuity&&(m.discontinuitySequence++,T=m.discontinuitySequence),m.key?E=m.key:m.key=E,i.prefetchSegments.push(m)),l=!0,o=-1}else if("string"==typeof S){-1===o&&s.INVALIDPLAYLIST("A URI line is not preceded by any segment tags"),i.targetDuration||s.INVALIDPLAYLIST("The EXT-X-TARGETDURATION tag is REQUIRED"),l&&s.INVALIDPLAYLIST("These segments must appear after all complete segments.");var R=U(t,S,o,d-1,c++,T,e);if(R){var L=a(w(i,R,T,E,f),3);T=L[0],E=L[1],f=L[2],!I&&R.parts.length>0&&(I=!0)}o=-1}}else-1===o&&(o=d),"EXT-X-DISCONTINUITY"===N&&(u=!0)}}catch(t){h.e(t)}finally{h.f()}if(-1!==o){var D=U(t,"",o,t.length-1,c++,T,e);if(D){var g=D.parts;g.length>0&&!i.endlist&&!g[g.length-1].hint&&s.INVALIDPLAYLIST("If the Playlist contains EXT-X-PART tags and does not contain an EXT-X-ENDLIST tag, the Playlist must contain an EXT-X-PRELOAD-HINT tag with a TYPE=PART attribute"),w(i,D,E,f),!I&&D.parts.length>0&&(I=!0)}}return function(t){for(var e=new Map,n=new Map,a=!1,i=!1,o=t.length-1;o>=0;o--){var c=t[o],u=c.programDateTime,l=c.dateRange;if(u&&(i=!0),l&&l.start){a=!0,l.endOnNext&&(l.end||l.duration)&&s.INVALIDPLAYLIST("An EXT-X-DATERANGE tag with an END-ON-NEXT=YES attribute MUST NOT contain DURATION or END-DATE attributes.");var T=l.start.getTime(),E=l.duration||0;l.end&&l.duration&&T+1e3*E!==l.end.getTime()&&s.INVALIDPLAYLIST("END-DATE MUST be equal to the value of the START-DATE attribute plus the value of the DURATION"),l.endOnNext&&(l.end=e.get(l.classId)),e.set(l.classId,l.start);var f=l.end?l.end.getTime():l.start.getTime()+1e3*(l.duration||0),I=n.get(l.classId);if(I){var h,A=r(I);try{for(A.s();!(h=A.n()).done;){var p=h.value;(p.start<=T&&p.end>T||p.start>=T&&p.start<f)&&s.INVALIDPLAYLIST("DATERANGE tags with the same CLASS should not overlap")}}catch(t){A.e(t)}finally{A.f()}I.push({start:T,end:f})}else n.set(l.classId,[{start:T,end:f}])}}a&&!i&&s.INVALIDPLAYLIST("If a Playlist contains an EXT-X-DATERANGE tag, it MUST also contain at least one EXT-X-PROGRAM-DATE-TIME tag.")}(i.segments),i.lowLatencyCompatibility&&function(t,e){var n=t.lowLatencyCompatibility,i=t.targetDuration,o=t.partTargetDuration,c=t.segments,u=t.renditionReports,l=n.canSkipUntil,T=n.holdBack,E=n.partHoldBack;if(l<6*i&&s.INVALIDPLAYLIST("The Skip Boundary must be at least six times the EXT-X-TARGETDURATION."),T<3*i&&s.INVALIDPLAYLIST("HOLD-BACK must be at least three times the EXT-X-TARGETDURATION."),e){void 0===o&&s.INVALIDPLAYLIST("EXT-X-PART-INF is required if a Playlist contains one or more EXT-X-PART tags"),void 0===E&&s.INVALIDPLAYLIST("EXT-X-PART: PART-HOLD-BACK attribute is mandatory"),E<o&&s.INVALIDPLAYLIST("PART-HOLD-BACK must be at least PART-TARGET");var f,I=r(c.entries());try{for(I.s();!(f=I.n()).done;){var h=a(f.value,2),A=h[0],p=h[1].parts;p.length>0&&A<c.length-3&&s.INVALIDPLAYLIST("Remove EXT-X-PART tags from the Playlist after they are greater than three target durations from the end of the Playlist.");var d,S=r(p.entries());try{for(S.s();!(d=S.n()).done;){var N=a(d.value,2),y=N[0],X=N[1].duration;void 0!==X&&(X>o&&s.INVALIDPLAYLIST("PART-TARGET is the maximum duration of any Partial Segment"),y<p.length-1&&X<.85*o&&s.INVALIDPLAYLIST("All Partial Segments except the last part of a segment must have a duration of at least 85% of PART-TARGET"))}}catch(t){S.e(t)}finally{S.f()}}}catch(t){I.e(t)}finally{I.f()}}var v,m=r(u);try{for(m.s();!(v=m.n()).done;){var R=v.value,L=c[c.length-1];R.lastMSN||(R.lastMSN=L.mediaSequenceNumber),!R.lastPart&&L.parts.length>0&&(R.lastPart=L.parts.length-1)}}catch(t){m.e(t)}finally{m.f()}}(i,I),i}function w(t,e,n,a,r){var i=e.discontinuity,o=e.key,c=e.map,u=e.byterange,l=e.uri;if(i&&(e.discontinuitySequence=n+1),o||(e.key=a),c||(e.map=r),u&&-1===u.offset){var T=t.segments;if(T.length>0){var E=T[T.length-1];E.byterange&&E.uri===l?u.offset=E.byterange.offset+E.byterange.length:s.INVALIDPLAYLIST("If offset of EXT-X-BYTERANGE is not present, a previous Media Segment MUST be a sub-range of the same media resource")}else s.INVALIDPLAYLIST("If offset of EXT-X-BYTERANGE is not present, a previous Media Segment MUST appear in the Playlist file")}return t.segments.push(e),[e.discontinuitySequence,e.key,e.map]}function F(t,e){var n=a(function(t){var e=t.indexOf(":");return-1===e?[t.slice(1).trim(),null]:[t.slice(1,e).trim(),t.slice(e+1).trim()]}(t),2),r=n[0],i=n[1],o=function(t){switch(t){case"EXTM3U":case"EXT-X-VERSION":return"Basic";case"EXTINF":case"EXT-X-BYTERANGE":case"EXT-X-DISCONTINUITY":case"EXT-X-PREFETCH-DISCONTINUITY":case"EXT-X-KEY":case"EXT-X-MAP":case"EXT-X-PROGRAM-DATE-TIME":case"EXT-X-DATERANGE":case"EXT-X-CUE-OUT":case"EXT-X-CUE-IN":case"EXT-X-CUE-OUT-CONT":case"EXT-X-CUE":case"EXT-OATCLS-SCTE35":case"EXT-X-ASSET":case"EXT-X-SCTE35":case"EXT-X-PART":case"EXT-X-PRELOAD-HINT":return"Segment";case"EXT-X-TARGETDURATION":case"EXT-X-MEDIA-SEQUENCE":case"EXT-X-DISCONTINUITY-SEQUENCE":case"EXT-X-ENDLIST":case"EXT-X-PLAYLIST-TYPE":case"EXT-X-I-FRAMES-ONLY":case"EXT-X-SERVER-CONTROL":case"EXT-X-PART-INF":case"EXT-X-PREFETCH":case"EXT-X-RENDITION-REPORT":case"EXT-X-SKIP":return"MediaPlaylist";case"EXT-X-MEDIA":case"EXT-X-STREAM-INF":case"EXT-X-I-FRAME-STREAM-INF":case"EXT-X-SESSION-DATA":case"EXT-X-SESSION-KEY":return"MasterPlaylist";case"EXT-X-INDEPENDENT-SEGMENTS":case"EXT-X-START":return"MediaorMasterPlaylist";default:return"Unknown"}}(r);if(function(t,e){if("Segment"===t||"MediaPlaylist"===t)return void 0===e.isMasterPlaylist?void(e.isMasterPlaylist=!1):void(e.isMasterPlaylist&&P());if("MasterPlaylist"===t){if(void 0===e.isMasterPlaylist)return void(e.isMasterPlaylist=!0);!1===e.isMasterPlaylist&&P()}}(o,e),"Unknown"===o)return null;"MediaPlaylist"===o&&"EXT-X-RENDITION-REPORT"!==r&&"EXT-X-PREFETCH"!==r&&(e.hash[r]&&s.INVALIDPLAYLIST("There MUST NOT be more than one Media Playlist tag of each type in any Media Playlist"),e.hash[r]=!0);var c=a(function(t,e){switch(t){case"EXTM3U":case"EXT-X-DISCONTINUITY":case"EXT-X-ENDLIST":case"EXT-X-I-FRAMES-ONLY":case"EXT-X-INDEPENDENT-SEGMENTS":case"EXT-X-CUE-IN":return[null,null];case"EXT-X-VERSION":case"EXT-X-TARGETDURATION":case"EXT-X-MEDIA-SEQUENCE":case"EXT-X-DISCONTINUITY-SEQUENCE":case"EXT-X-CUE-OUT":return[s.toNumber(e),null];case"EXT-X-KEY":case"EXT-X-MAP":case"EXT-X-DATERANGE":case"EXT-X-MEDIA":case"EXT-X-STREAM-INF":case"EXT-X-I-FRAME-STREAM-INF":case"EXT-X-SESSION-DATA":case"EXT-X-SESSION-KEY":case"EXT-X-START":case"EXT-X-SERVER-CONTROL":case"EXT-X-PART-INF":case"EXT-X-PART":case"EXT-X-PRELOAD-HINT":case"EXT-X-RENDITION-REPORT":case"EXT-X-SKIP":return[null,O(e)];case"EXTINF":return[v(e),null];case"EXT-X-BYTERANGE":return[m(e),null];case"EXT-X-PROGRAM-DATE-TIME":return[new Date(e),null];case"EXT-X-PLAYLIST-TYPE":default:return[e,null]}}(r,i),2);return{name:r,category:o,value:c[0],attributes:c[1]}}function G(t,e){var n;return e.isMasterPlaylist?n=function(t,e){var n,i=new A,o=!1,c=r(t.entries());try{for(c.s();!(n=c.n()).done;){var u=a(n.value,2),l=u[0],f=u[1],I=f.name,h=f.value,p=f.attributes;if("EXT-X-VERSION"===I)i.version=h;else if("EXT-X-STREAM-INF"===I){var d=t[l+1];("string"!=typeof d||d.startsWith("#EXT"))&&s.INVALIDPLAYLIST("EXT-X-STREAM-INF must be followed by a URI line");var S=C(t,p,d,!1,e);S&&("number"==typeof S.score&&(o=!0,S.score<0&&s.INVALIDPLAYLIST("SCORE attribute on EXT-X-STREAM-INF must be positive decimal-floating-point number.")),i.variants.push(S))}else if("EXT-X-I-FRAME-STREAM-INF"===I){var N=C(t,p,p.URI,!0,e);N&&i.variants.push(N)}else"EXT-X-SESSION-DATA"===I?function(){var t=new T({id:p["DATA-ID"],value:p.VALUE,uri:p.URI,language:p.LANGUAGE});i.sessionDataList.some((function(e){return e.id===t.id&&e.language===t.language}))&&s.INVALIDPLAYLIST("A Playlist MUST NOT contain more than one EXT-X-SESSION-DATA tag with the same DATA-ID attribute and the same LANGUAGE attribute."),i.sessionDataList.push(t)}():"EXT-X-SESSION-KEY"===I?function(){"NONE"===p.METHOD&&s.INVALIDPLAYLIST("EXT-X-SESSION-KEY: The value of the METHOD attribute MUST NOT be NONE");var t=new E({method:p.METHOD,uri:p.URI,iv:p.IV,format:p.KEYFORMAT,formatVersion:p.KEYFORMATVERSIONS});i.sessionKeyList.some((function(e){return M(e,t)}))&&s.INVALIDPLAYLIST("A Master Playlist MUST NOT contain more than one EXT-X-SESSION-KEY tag with the same METHOD, URI, IV, KEYFORMAT, and KEYFORMATVERSIONS attribute values."),g(e,p),i.sessionKeyList.push(t)}():"EXT-X-INDEPENDENT-SEGMENTS"===I?(i.independentSegments&&s.INVALIDPLAYLIST("EXT-X-INDEPENDENT-SEGMENTS tag MUST NOT appear more than once in a Playlist"),i.independentSegments=!0):"EXT-X-START"===I&&(i.start&&s.INVALIDPLAYLIST("EXT-X-START tag MUST NOT appear more than once in a Playlist"),"number"!=typeof p["TIME-OFFSET"]&&s.INVALIDPLAYLIST("EXT-X-START: TIME-OFFSET attribute is REQUIRED"),i.start={offset:p["TIME-OFFSET"],precise:p.PRECISE||!1})}}catch(t){c.e(t)}finally{c.f()}if(o){var y,X=r(i.variants);try{for(X.s();!(y=X.n()).done;)"number"!=typeof y.value.score&&s.INVALIDPLAYLIST("If any Variant Stream contains the SCORE attribute, then all Variant Streams in the Master Playlist SHOULD have a SCORE attribute")}catch(t){X.e(t)}finally{X.f()}}if(e.isClosedCaptionsNone){var v,m=r(i.variants);try{for(m.s();!(v=m.n()).done;)v.value.closedCaptions.length>0&&s.INVALIDPLAYLIST("If there is a variant with CLOSED-CAPTIONS attribute of NONE, all EXT-X-STREAM-INF tags MUST have this attribute with a value of NONE")}catch(t){m.e(t)}finally{m.f()}}return i}(t,e):!(n=V(t,e)).isIFrame&&e.hasMap&&e.compatibleVersion<6&&(e.compatibleVersion=6),e.compatibleVersion>1&&(!n.version||n.version<e.compatibleVersion)&&s.INVALIDPLAYLIST("EXT-X-VERSION needs to be ".concat(e.compatibleVersion," or higher.")),n}t.exports=function(t){var e={version:void 0,isMasterPlaylist:void 0,hasMap:!1,targetDuration:0,compatibleVersion:1,isClosedCaptionsNone:!1,hash:{}},n=G(function(t,e){var n,a=[],i=r(t.split("\n"));try{for(i.s();!(n=i.n()).done;){var o=n.value.trim();if(o)if(o.startsWith("#")){if(o.startsWith("#EXT")){var c=F(o,e);c&&a.push(c)}}else a.push(o)}}catch(t){i.e(t)}finally{i.f()}return 0!==a.length&&"EXTM3U"===a[0].name||s.INVALIDPLAYLIST("The EXTM3U tag MUST be the first line."),a}(t,e),e);return n.source=t,n}},367:(t,e,n)=>{function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(t){r=!0,i=t}finally{try{a||null==s.return||s.return()}finally{if(r)throw i}}return n}}(t,e)||o(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=o(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var a=0,r=function(){};return{s:r,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){c=!0,i=t},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw i}}}}function o(t,e){if(t){if("string"==typeof t)return s(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(t,e):void 0}}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function c(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}function u(t,e,n){return(u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var a=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=h(t)););return t}(t,e);if(a){var r=Object.getOwnPropertyDescriptor(a,e);return r.get?r.get.call(n):r.value}})(t,e,n||t)}function l(t,e){return!e||"object"!==a(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function T(t){var e="function"==typeof Map?new Map:void 0;return(T=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf("[native code]")))return t;var n;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,a)}function a(){return E(t,arguments,h(this).constructor)}return a.prototype=Object.create(t.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),I(a,t)})(t)}function E(t,e,n){return(E=f()?Reflect.construct:function(t,e,n){var a=[null];a.push.apply(a,e);var r=new(Function.bind.apply(t,a));return n&&I(r,n.prototype),r}).apply(null,arguments)}function f(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function I(t,e){return(I=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var A=n(771),p=["#EXTINF","#EXT-X-BYTERANGE","#EXT-X-DISCONTINUITY","#EXT-X-STREAM-INF","#EXT-X-CUE-OUT","#EXT-X-CUE-IN","#EXT-X-KEY","#EXT-X-MAP"],d=["#EXT-X-MEDIA"],S=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&I(t,e)}(s,t);var e,n,a,r,i,o=(e=s,n=f(),function(){var t,a=h(e);if(n){var r=h(this).constructor;t=Reflect.construct(a,arguments,r)}else t=a.apply(this,arguments);return l(this,t)});function s(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),(e=o.call(this)).baseUri=t,e}return a=s,(r=[{key:"push",value:function(){for(var t=this,e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];for(var r=function(){var e=o[i];if(!e.startsWith("#"))return u(h(s.prototype),"push",t).call(t,e),"continue";if(p.some((function(t){return e.startsWith(t)})))return u(h(s.prototype),"push",t).call(t,e),"continue";if(t.includes(e)){if(d.some((function(t){return e.startsWith(t)})))return"continue";A.INVALIDPLAYLIST("Redundant item (".concat(e,")"))}u(h(s.prototype),"push",t).call(t,e)},i=0,o=n;i<o.length;i++)r()}}])&&c(a.prototype,r),i&&c(a,i),s}(T(Array));function N(t,e){var n=1e3;e&&(n=Math.pow(10,e));var a=Math.round(t*n)/n;return e?a.toFixed(e):a}function y(t){var e=t.toString(10),n=e.indexOf(".");return-1===n?0:e.length-n-1}function X(t){var e=['DATA-ID="'.concat(t.id,'"')];return t.language&&e.push('LANGUAGE="'.concat(t.language,'"')),t.value?e.push('VALUE="'.concat(t.value,'"')):t.uri&&e.push('URI="'.concat(t.uri,'"')),"#EXT-X-SESSION-DATA:".concat(e.join(","))}function v(t,e){var n=e?"#EXT-X-SESSION-KEY":"#EXT-X-KEY",a=["METHOD=".concat(t.method)];return t.uri&&a.push('URI="'.concat(t.uri,'"')),t.iv&&(16!==t.iv.length&&A.INVALIDPLAYLIST("IV must be a 128-bit unsigned integer"),a.push("IV=".concat(A.byteSequenceToHex(t.iv)))),t.format&&a.push('KEYFORMAT="'.concat(t.format,'"')),t.formatVersion&&a.push('KEYFORMATVERSIONS="'.concat(t.formatVersion,'"')),"".concat(n,":").concat(a.join(","))}function m(t,e){var n=e.isIFrameOnly?"#EXT-X-I-FRAME-STREAM-INF":"#EXT-X-STREAM-INF",a=["BANDWIDTH=".concat(e.bandwidth)];if(e.averageBandwidth&&a.push("AVERAGE-BANDWIDTH=".concat(e.averageBandwidth)),e.isIFrameOnly&&a.push('URI="'.concat(e.uri,'"')),e.codecs&&a.push('CODECS="'.concat(e.codecs,'"')),e.resolution&&a.push("RESOLUTION=".concat(e.resolution.width,"x").concat(e.resolution.height)),e.frameRate&&a.push("FRAME-RATE=".concat(N(e.frameRate,3))),e.hdcpLevel&&a.push("HDCP-LEVEL=".concat(e.hdcpLevel)),e.audio.length>0){a.push('AUDIO="'.concat(e.audio[0].groupId,'"'));var r,o=i(e.audio);try{for(o.s();!(r=o.n()).done;){var s=r.value;t.push(R(s))}}catch(t){o.e(t)}finally{o.f()}}if(e.video.length>0){a.push('VIDEO="'.concat(e.video[0].groupId,'"'));var c,u=i(e.video);try{for(u.s();!(c=u.n()).done;){var l=c.value;t.push(R(l))}}catch(t){u.e(t)}finally{u.f()}}if(e.subtitles.length>0){a.push('SUBTITLES="'.concat(e.subtitles[0].groupId,'"'));var T,E=i(e.subtitles);try{for(E.s();!(T=E.n()).done;){var f=T.value;t.push(R(f))}}catch(t){E.e(t)}finally{E.f()}}if(A.getOptions().allowClosedCaptionsNone&&0===e.closedCaptions.length)a.push("CLOSED-CAPTIONS=NONE");else if(e.closedCaptions.length>0){a.push('CLOSED-CAPTIONS="'.concat(e.closedCaptions[0].groupId,'"'));var I,h=i(e.closedCaptions);try{for(h.s();!(I=h.n()).done;){var p=I.value;t.push(R(p))}}catch(t){h.e(t)}finally{h.f()}}if(e.score&&a.push("SCORE=".concat(e.score)),e.allowedCpc){var d,S=[],y=i(e.allowedCpc);try{for(y.s();!(d=y.n()).done;){var X=d.value,v=X.format,m=X.cpcList;S.push("".concat(v,":").concat(m.join("/")))}}catch(t){y.e(t)}finally{y.f()}a.push('ALLOWED-CPC="'.concat(S.join(","),'"'))}e.videoRange&&a.push("VIDEO-RANGE=".concat(e.videoRange)),e.stableVariantId&&a.push('STABLE-VARIANT-ID="'.concat(e.stableVariantId,'"')),t.push("".concat(n,":").concat(a.join(","))),e.isIFrameOnly||t.push("".concat(e.uri))}function R(t){var e=["TYPE=".concat(t.type),'GROUP-ID="'.concat(t.groupId,'"'),'NAME="'.concat(t.name,'"')];return void 0!==t.isDefault&&e.push("DEFAULT=".concat(t.isDefault?"YES":"NO")),void 0!==t.autoselect&&e.push("AUTOSELECT=".concat(t.autoselect?"YES":"NO")),void 0!==t.forced&&e.push("FORCED=".concat(t.forced?"YES":"NO")),t.language&&e.push('LANGUAGE="'.concat(t.language,'"')),t.assocLanguage&&e.push('ASSOC-LANGUAGE="'.concat(t.assocLanguage,'"')),t.instreamId&&e.push('INSTREAM-ID="'.concat(t.instreamId,'"')),t.characteristics&&e.push('CHARACTERISTICS="'.concat(t.characteristics,'"')),t.channels&&e.push('CHANNELS="'.concat(t.channels,'"')),t.uri&&e.push('URI="'.concat(t.uri,'"')),"#EXT-X-MEDIA:".concat(e.join(","))}function L(t,e,n,a){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=!1,o="";if(e.byterange&&t.push("#EXT-X-BYTERANGE:".concat(g(e.byterange))),e.discontinuity&&t.push("#EXT-X-DISCONTINUITY"),e.key){var s=v(e.key);s!==n&&(t.push(s),n=s)}if(e.map){var c=D(e.map);c!==a&&(t.push(c),a=c)}if(e.programDateTime&&t.push("#EXT-X-PROGRAM-DATE-TIME:".concat(A.formatDate(e.programDateTime))),e.dateRange&&t.push(O(e.dateRange)),e.markers.length>0&&(o=P(t,e.markers)),e.parts.length>0&&(i=b(t,e.parts)),i)return[n,a];var u=r<3?Math.round(e.duration):N(e.duration,y(e.duration));return t.push("#EXTINF:".concat(u,",").concat(unescape(encodeURIComponent(e.title||"")))),Array.prototype.push.call(t,"".concat(e.uri)),[n,a,o]}function D(t){var e=['URI="'.concat(t.uri,'"')];return t.byterange&&e.push('BYTERANGE="'.concat(g(t.byterange),'"')),"#EXT-X-MAP:".concat(e.join(","))}function g(t){var e=t.offset,n=t.length;return"".concat(n,"@").concat(e)}function O(t){var e=['ID="'.concat(t.id,'"')];t.start&&e.push('START-DATE="'.concat(A.formatDate(t.start),'"')),t.end&&e.push('END-DATE="'.concat(t.end,'"')),t.duration&&e.push("DURATION=".concat(t.duration)),t.plannedDuration&&e.push("PLANNED-DURATION=".concat(t.plannedDuration)),t.classId&&e.push('CLASS="'.concat(t.classId,'"')),t.endOnNext&&e.push("END-ON-NEXT=YES");for(var n=0,a=Object.keys(t.attributes);n<a.length;n++){var r=a[n];r.startsWith("X-")?"number"==typeof t.attributes[r]?e.push("".concat(r,"=").concat(t.attributes[r])):e.push("".concat(r,'="').concat(t.attributes[r],'"')):r.startsWith("SCTE35-")&&e.push("".concat(r,"=").concat(A.byteSequenceToHex(t.attributes[r])))}return"#EXT-X-DATERANGE:".concat(e.join(","))}function P(t,e){var n,a="",r=i(e);try{for(r.s();!(n=r.n()).done;){var o=n.value;if("OUT"===o.type)a="OUT",t.push("#EXT-X-CUE-OUT:".concat(o.duration));else if("IN"===o.type)a="IN",t.push("#EXT-X-CUE-IN");else if("RAW"===o.type){var s=o.value?":".concat(o.value):"";t.push("#".concat(o.tagName).concat(s))}}}catch(t){r.e(t)}finally{r.f()}return a}function b(t,e){var n,a=!1,r=i(e);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(o.hint){var s=[];if(s.push("TYPE=PART",'URI="'.concat(o.uri,'"')),o.byterange){var c=o.byterange,u=c.offset,l=c.length;s.push("BYTERANGE-START=".concat(u)),l&&s.push("BYTERANGE-LENGTH=".concat(l))}t.push("#EXT-X-PRELOAD-HINT:".concat(s.join(","))),a=!0}else{var T=[];T.push("DURATION=".concat(o.duration),'URI="'.concat(o.uri,'"')),o.byterange&&T.push("BYTERANGE=".concat(g(o.byterange))),o.independent&&T.push("INDEPENDENT=YES"),o.gap&&T.push("GAP=YES"),t.push("#EXT-X-PART:".concat(T.join(",")))}}}catch(t){r.e(t)}finally{r.f()}return a}t.exports=function(t){A.PARAMCHECK(t),A.ASSERT("Not a playlist","playlist"===t.type);var e=new S(t.uri);return e.push("#EXTM3U"),t.version&&e.push("#EXT-X-VERSION:".concat(t.version)),t.independentSegments&&e.push("#EXT-X-INDEPENDENT-SEGMENTS"),t.start&&e.push("#EXT-X-START:TIME-OFFSET=".concat(N(t.start.offset)).concat(t.start.precise?",PRECISE=YES":"")),t.isMasterPlaylist?function(t,e){var n,a=i(e.sessionDataList);try{for(a.s();!(n=a.n()).done;){var r=n.value;t.push(X(r))}}catch(t){a.e(t)}finally{a.f()}var o,s=i(e.sessionKeyList);try{for(s.s();!(o=s.n()).done;){var c=o.value;t.push(v(c,!0))}}catch(t){s.e(t)}finally{s.f()}var u,l=i(e.variants);try{for(l.s();!(u=l.n()).done;)m(t,u.value)}catch(t){l.e(t)}finally{l.f()}}(e,t):function(t,e){var n="",a="",o=!1;if(e.targetDuration&&t.push("#EXT-X-TARGETDURATION:".concat(e.targetDuration)),e.lowLatencyCompatibility){var s=e.lowLatencyCompatibility,c=s.canBlockReload,u=s.canSkipUntil,l=s.holdBack,T=s.partHoldBack,E=[];E.push("CAN-BLOCK-RELOAD=".concat(c?"YES":"NO")),void 0!==u&&E.push("CAN-SKIP-UNTIL=".concat(u)),void 0!==l&&E.push("HOLD-BACK=".concat(l)),void 0!==T&&E.push("PART-HOLD-BACK=".concat(T)),t.push("#EXT-X-SERVER-CONTROL:".concat(E.join(",")))}e.partTargetDuration&&t.push("#EXT-X-PART-INF:PART-TARGET=".concat(e.partTargetDuration)),e.mediaSequenceBase&&t.push("#EXT-X-MEDIA-SEQUENCE:".concat(e.mediaSequenceBase)),e.discontinuitySequenceBase&&t.push("#EXT-X-DISCONTINUITY-SEQUENCE:".concat(e.discontinuitySequenceBase)),e.playlistType&&t.push("#EXT-X-PLAYLIST-TYPE:".concat(e.playlistType)),e.isIFrame&&t.push("#EXT-X-I-FRAMES-ONLY"),e.skip>0&&t.push("#EXT-X-SKIP:SKIPPED-SEGMENTS=".concat(e.skip));var f,I=i(e.segments);try{for(I.s();!(f=I.n()).done;){var h,p=r(L(t,f.value,n,a,e.version),3);n=p[0],a=p[1],"OUT"===(h=p[2])?o=!0:"IN"===h&&o&&(o=!1)}}catch(t){I.e(t)}finally{I.f()}"VOD"===e.playlistType&&o&&t.push("#EXT-X-CUE-IN"),e.prefetchSegments.length>2&&A.INVALIDPLAYLIST("The server must deliver no more than two prefetch segments");var d,S=i(e.prefetchSegments);try{for(S.s();!(d=S.n()).done;){var N=d.value;N.discontinuity&&t.push("#EXT-X-PREFETCH-DISCONTINUITY"),t.push("#EXT-X-PREFETCH:".concat(N.uri))}}catch(t){S.e(t)}finally{S.f()}e.endlist&&t.push("#EXT-X-ENDLIST");var y,X=i(e.renditionReports);try{for(X.s();!(y=X.n()).done;){var v=y.value,m=[];m.push('URI="'.concat(v.uri,'"'),"LAST-MSN=".concat(v.lastMSN)),void 0!==v.lastPart&&m.push("LAST-PART=".concat(v.lastPart)),t.push("#EXT-X-RENDITION-REPORT:".concat(m.join(",")))}}catch(t){X.e(t)}finally{X.f()}}(e,t),e.join("\n")}},890:(t,e,n)=>{function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&i(t,e)}function i(t,e){return(i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,a=c(t);if(e){var r=c(this).constructor;n=Reflect.construct(a,arguments,r)}else n=a.apply(this,arguments);return s(this,n)}}function s(t,e){return!e||"object"!==a(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var l=n(771),T=function t(e){u(this,t),l.PARAMCHECK(e),this.type=e},E=function(t){r(n,t);var e=o(n);function n(t){var a,r=t.isMasterPlaylist,i=t.uri,o=t.version,s=t.independentSegments,c=void 0!==s&&s,T=t.start,E=t.source;return u(this,n),a=e.call(this,"playlist"),l.PARAMCHECK(r),a.isMasterPlaylist=r,a.uri=i,a.version=o,a.independentSegments=c,a.start=T,a.source=E,a}return n}(T),f=function(t){r(n,t);var e=o(n);function n(){var t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,n),a.isMasterPlaylist=!0,t=e.call(this,a);var r=a.variants,i=void 0===r?[]:r,o=a.currentVariant,s=a.sessionDataList,c=void 0===s?[]:s,l=a.sessionKeyList,T=void 0===l?[]:l;return t.variants=i,t.currentVariant=o,t.sessionDataList=c,t.sessionKeyList=T,t}return n}(E),I=function(t){r(n,t);var e=o(n);function n(){var t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,n),a.isMasterPlaylist=!1,t=e.call(this,a);var r=a.targetDuration,i=a.mediaSequenceBase,o=void 0===i?0:i,s=a.discontinuitySequenceBase,c=void 0===s?0:s,l=a.endlist,T=void 0!==l&&l,E=a.playlistType,f=a.isIFrame,I=a.segments,h=void 0===I?[]:I,A=a.prefetchSegments,p=void 0===A?[]:A,d=a.lowLatencyCompatibility,S=a.partTargetDuration,N=a.renditionReports,y=void 0===N?[]:N,X=a.skip,v=void 0===X?0:X,m=a.hash;return t.targetDuration=r,t.mediaSequenceBase=o,t.discontinuitySequenceBase=c,t.endlist=T,t.playlistType=E,t.isIFrame=f,t.segments=h,t.prefetchSegments=p,t.lowLatencyCompatibility=d,t.partTargetDuration=S,t.renditionReports=y,t.skip=v,t.hash=m,t}return n}(E),h=function(t){r(n,t);var e=o(n);function n(t){var a,r=t.uri,i=t.mimeType,o=t.data,s=t.duration,c=t.title,l=t.byterange,T=t.discontinuity,E=t.mediaSequenceNumber,f=void 0===E?0:E,I=t.discontinuitySequence,h=void 0===I?0:I,A=t.key,p=t.map,d=t.programDateTime,S=t.dateRange,N=t.markers,y=void 0===N?[]:N,X=t.parts,v=void 0===X?[]:X;return u(this,n),(a=e.call(this,"segment")).uri=r,a.mimeType=i,a.data=o,a.duration=s,a.title=c,a.byterange=l,a.discontinuity=T,a.mediaSequenceNumber=f,a.discontinuitySequence=h,a.key=A,a.map=p,a.programDateTime=d,a.dateRange=S,a.markers=y,a.parts=v,a}return n}(T),A=function(t){r(n,t);var e=o(n);function n(t){var a,r=t.hint,i=void 0!==r&&r,o=t.uri,s=t.duration,c=t.independent,T=t.byterange,E=t.gap;return u(this,n),a=e.call(this,"part"),l.PARAMCHECK(o),a.hint=i,a.uri=o,a.duration=s,a.independent=c,a.duration=s,a.byterange=T,a.gap=E,a}return n}(T),p=function(t){r(n,t);var e=o(n);function n(t){var a,r=t.uri,i=t.discontinuity,o=t.mediaSequenceNumber,s=void 0===o?0:o,c=t.discontinuitySequence,T=void 0===c?0:c,E=t.key;return u(this,n),a=e.call(this,"prefetch"),l.PARAMCHECK(r),a.uri=r,a.discontinuity=i,a.mediaSequenceNumber=s,a.discontinuitySequence=T,a.key=E,a}return n}(T);t.exports={Rendition:function t(e){var n=e.type,a=e.uri,r=e.groupId,i=e.language,o=e.assocLanguage,s=e.name,c=e.isDefault,T=e.autoselect,E=e.forced,f=e.instreamId,I=e.characteristics,h=e.channels;u(this,t),l.PARAMCHECK(n,r,s),l.CONDITIONALASSERT(["SUBTITLES"===n,a],["CLOSED-CAPTIONS"===n,f],["CLOSED-CAPTIONS"===n,!a],[E,"SUBTITLES"===n]),this.type=n,this.uri=a,this.groupId=r,this.language=i,this.assocLanguage=o,this.name=s,this.isDefault=c,this.autoselect=T,this.forced=E,this.instreamId=f,this.characteristics=I,this.channels=h},Variant:function t(e){var n=e.uri,a=e.isIFrameOnly,r=void 0!==a&&a,i=e.bandwidth,o=e.averageBandwidth,s=e.score,c=e.codecs,T=e.resolution,E=e.frameRate,f=e.hdcpLevel,I=e.allowedCpc,h=e.videoRange,A=e.stableVariantId,p=e.audio,d=void 0===p?[]:p,S=e.video,N=void 0===S?[]:S,y=e.subtitles,X=void 0===y?[]:y,v=e.closedCaptions,m=void 0===v?[]:v,R=e.currentRenditions,L=void 0===R?{audio:0,video:0,subtitles:0,closedCaptions:0}:R;u(this,t),l.PARAMCHECK(n,i),this.uri=n,this.isIFrameOnly=r,this.bandwidth=i,this.averageBandwidth=o,this.score=s,this.codecs=c,this.resolution=T,this.frameRate=E,this.hdcpLevel=f,this.allowedCpc=I,this.videoRange=h,this.stableVariantId=A,this.audio=d,this.video=N,this.subtitles=X,this.closedCaptions=m,this.currentRenditions=L},SessionData:function t(e){var n=e.id,a=e.value,r=e.uri,i=e.language;u(this,t),l.PARAMCHECK(n,a||r),l.ASSERT("SessionData cannot have both value and uri, shoud be either.",!(a&&r)),this.id=n,this.value=a,this.uri=r,this.language=i},Key:function t(e){var n=e.method,a=e.uri,r=e.iv,i=e.format,o=e.formatVersion;u(this,t),l.PARAMCHECK(n),l.CONDITIONALPARAMCHECK(["NONE"!==n,a]),l.CONDITIONALASSERT(["NONE"===n,!(a||r||i||o)]),this.method=n,this.uri=a,this.iv=r,this.format=i,this.formatVersion=o},MediaInitializationSection:function t(e){var n=e.hint,a=void 0!==n&&n,r=e.uri,i=e.mimeType,o=e.byterange;u(this,t),l.PARAMCHECK(r),this.hint=a,this.uri=r,this.mimeType=i,this.byterange=o},DateRange:function t(e){var n=e.id,a=e.classId,r=e.start,i=e.end,o=e.duration,s=e.plannedDuration,c=e.endOnNext,T=e.attributes,E=void 0===T?{}:T;u(this,t),l.PARAMCHECK(n),l.CONDITIONALPARAMCHECK([!0===c,a]),l.CONDITIONALASSERT([i,r],[i,r<=i],[o,o>=0],[s,s>=0]),this.id=n,this.classId=a,this.start=r,this.end=i,this.duration=o,this.plannedDuration=s,this.endOnNext=c,this.attributes=E},SpliceInfo:function t(e){var n=e.type,a=e.duration,r=e.tagName,i=e.value;u(this,t),l.PARAMCHECK(n),l.CONDITIONALPARAMCHECK(["OUT"===n,a]),l.CONDITIONALPARAMCHECK(["RAW"===n,r]),this.type=n,this.duration=a,this.tagName=r,this.value=i},Playlist:E,MasterPlaylist:f,MediaPlaylist:I,Segment:h,PartialSegment:A,PrefetchSegment:p,RenditionReport:function t(e){var n=e.uri,a=e.lastMSN,r=e.lastPart;u(this,t),l.PARAMCHECK(n),this.uri=n,this.lastMSN=a,this.lastPart=r}}},771:t=>{function e(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(t){r=!0,i=t}finally{try{a||null==s.return||s.return()}finally{if(r)throw i}}return n}}(t,e)||a(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=a(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){c=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw o}}}}function a(t,e){if(t){if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}var i={};function o(t){if(i.strictMode)throw t;i.silent||console.error(t.message)}function s(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;if("number"==typeof t)return t;var n=10===e?Number.parseFloat(t,e):Number.parseInt(t,e);return Number.isNaN(n)?0:n}t.exports={THROW:o,ASSERT:function(t){for(var a=arguments.length,r=new Array(a>1?a-1:0),i=1;i<a;i++)r[i-1]=arguments[i];var s,c=n(r.entries());try{for(c.s();!(s=c.n()).done;){var u=e(s.value,2),l=u[0],T=u[1];T||o(new Error("".concat(t," : Failed at [").concat(l,"]")))}}catch(t){c.e(t)}finally{c.f()}},CONDITIONALASSERT:function(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];var i,s=n(a.entries());try{for(s.s();!(i=s.n()).done;){var c=e(i.value,2),u=c[0],l=e(c[1],2),T=l[0],E=l[1];T&&(E||o(new Error("Conditional Assert : Failed at [".concat(u,"]"))))}}catch(t){s.e(t)}finally{s.f()}},PARAMCHECK:function(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];var i,s=n(a.entries());try{for(s.s();!(i=s.n()).done;){var c=e(i.value,2),u=c[0],l=c[1];void 0===l&&o(new Error("Param Check : Failed at [".concat(u,"]")))}}catch(t){s.e(t)}finally{s.f()}},CONDITIONALPARAMCHECK:function(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];var i,s=n(a.entries());try{for(s.s();!(i=s.n()).done;){var c=e(i.value,2),u=c[0],l=e(c[1],2),T=l[0],E=l[1];T&&void 0===E&&o(new Error("Conditional Param Check : Failed at [".concat(u,"]")))}}catch(t){s.e(t)}finally{s.f()}},INVALIDPLAYLIST:function(t){o(new Error("Invalid Playlist : ".concat(t)))},toNumber:s,hexToByteSequence:function(t){(t.startsWith("0x")||t.startsWith("0X"))&&(t=t.slice(2));for(var e=[],n=0;n<t.length;n+=2)e.push(s(t.slice(n,n+2),16));return Buffer.from(e)},byteSequenceToHex:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length;n<=e&&o(new Error("end must be larger than start : start=".concat(e,", end=").concat(n)));for(var a=[],r=e;r<n;r++)a.push("0".concat((255&t[r]).toString(16).toUpperCase()).slice(-2));return"0x".concat(a.join(""))},tryCatch:function(t,e){try{return t()}catch(t){return e(t)}},splitAt:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=-1,r=0,i=0;r<t.length;r++)if(t[r]===e){if(i++===n)return[t.slice(0,r),t.slice(r+1)];a=r}return-1!==a?[t.slice(0,a),t.slice(a+1)]:[t]},trim:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return t?(t=t.trim()," "===e||(t.startsWith(e)&&(t=t.slice(1)),t.endsWith(e)&&(t=t.slice(0,-1))),t):t},splitByCommaWithPreservingQuotes:function(t){for(var e=[],n=!0,a=0,r=[],i=0;i<t.length;i++){var o=t[i];n&&","===o?(e.push(t.slice(a,i).trim()),a=i+1):'"'!==o&&"'"!==o||(n?(r.push(o),n=!1):o===r[r.length-1]?(r.pop(),n=!0):r.push(o))}return e.push(t.slice(a).trim()),e},camelify:function(t){var e,a=[],r=!1,i=n(t);try{for(i.s();!(e=i.n()).done;){var o=e.value;"-"!==o&&"_"!==o?r?(a.push(o.toUpperCase()),r=!1):a.push(o.toLowerCase()):r=!0}}catch(t){i.e(t)}finally{i.f()}return a.join("")},formatDate:function(t){var e=t.getUTCFullYear(),n=("0"+(t.getUTCMonth()+1)).slice(-2),a=("0"+t.getUTCDate()).slice(-2),r=("0"+t.getUTCHours()).slice(-2),i=("0"+t.getUTCMinutes()).slice(-2),o=("0"+t.getUTCSeconds()).slice(-2),s=("00"+t.getUTCMilliseconds()).slice(-3);return"".concat(e,"-").concat(n,"-").concat(a,"T").concat(r,":").concat(i,":").concat(o,".").concat(s,"Z")},hasOwnProp:function(t,e){return Object.hasOwnProperty.call(t,e)},setOptions:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i=Object.assign(i,t)},getOptions:function(){return Object.assign({},i)}}}},e={},function n(a){if(e[a])return e[a].exports;var r=e[a]={exports:{}};return t[a](r,r.exports,n),r.exports}(851);var t,e}));
//# sourceMappingURL=hls-parser.min.js.map
{
"name": "hls-parser",
"version": "0.8.0",
"version": "0.9.0",
"description": "A simple library to read/write HLS playlists",

@@ -31,6 +31,5 @@ "main": "index.js",

"homepage": "https://github.com/kuu/hls-parser#readme",
"dependencies": {},
"devDependencies": {
"@babel/core": "^7.12.16",
"@babel/preset-env": "^7.12.16",
"@babel/core": "^7.13.8",
"@babel/preset-env": "^7.13.9",
"ava": "^3.15.0",

@@ -42,5 +41,5 @@ "babel-loader": "^8.2.2",

"terser-webpack-plugin": "^5.1.1",
"webpack": "^5.21.2",
"webpack": "^5.24.2",
"webpack-cli": "^4.5.0",
"xo": "^0.37.1"
"xo": "0.38.2"
},

@@ -68,2 +67,10 @@ "xo": {

},
"overrides": [
{
"files": "test/**/*.js",
"rules": {
"unicorn/no-array-push-push": 0
}
}
],
"settings": {

@@ -70,0 +77,0 @@ "import/resolver": {

@@ -86,2 +86,20 @@ const utils = require('./utils');

function parseAllowedCpc(str) {
const message = 'ALLOWED-CPC: Each entry must consit of KEYFORMAT and Content Protection Configuration';
const list = str.split(',');
if (list.length === 0) {
utils.INVALIDPLAYLIST(message);
}
const allowedCpcList = [];
for (const item of list) {
const [format, cpcText] = utils.splitAt(item, ':');
if (!format || !cpcText) {
utils.INVALIDPLAYLIST(message);
continue;
}
allowedCpcList.push({format, cpcList: cpcText.split('/')});
}
return allowedCpcList;
}
function parseIV(str) {

@@ -115,5 +133,4 @@ const iv = utils.hexToByteSequence(str);

function parseAttributeList(param) {
const list = utils.splitByCommaWithPreservingQuotes(param);
const attributes = {};
list.forEach(item => {
for (const item of utils.splitByCommaWithPreservingQuotes(param)) {
const [key, value] = utils.splitAt(item, '=');

@@ -138,2 +155,5 @@ const val = unquote(value);

break;
case 'ALLOWED-CPC':
attributes[key] = parseAllowedCpc(val);
break;
case 'END-ON-NEXT':

@@ -164,2 +184,3 @@ case 'DEFAULT':

case 'SKIPPED-SEGMENTS':
case 'SCORE':
attributes[key] = utils.toNumber(val);

@@ -173,6 +194,9 @@ break;

} else {
if (key === 'VIDEO-RANGE' && val !== 'SDR' && val !== 'HLG' && val !== 'PQ') {
utils.INVALIDPLAYLIST(`VIDEO-RANGE: unknown value "${val}"`);
}
attributes[key] = val;
}
}
});
}
return attributes;

@@ -285,3 +309,3 @@ }

function matchTypes(attrs, variant, params) {
['AUDIO', 'VIDEO', 'SUBTITLES', 'CLOSED-CAPTIONS'].forEach(type => {
for (const type of ['AUDIO', 'VIDEO', 'SUBTITLES', 'CLOSED-CAPTIONS']) {
if (type === 'CLOSED-CAPTIONS' && attrs[type] === 'NONE') {

@@ -293,3 +317,3 @@ params.isClosedCaptionsNone = true;

}
});
}
}

@@ -302,6 +326,10 @@

averageBandwidth: variantAttrs['AVERAGE-BANDWIDTH'],
score: variantAttrs['SCORE'],
codecs: variantAttrs['CODECS'],
resolution: variantAttrs['RESOLUTION'],
frameRate: variantAttrs['FRAME-RATE'],
hdcpLevel: variantAttrs['HDCP-LEVEL']
hdcpLevel: variantAttrs['HDCP-LEVEL'],
allowedCpc: variantAttrs['ALLOWED-CPC'],
videoRange: variantAttrs['VIDEO-RANGE'],
stableVariantId: variantAttrs['STABLE-VARIANT-ID']
});

@@ -366,2 +394,3 @@ for (const line of lines) {

const playlist = new MasterPlaylist();
let variantIsScored = false;
for (const [index, {name, value, attributes}] of lines.entries()) {

@@ -377,2 +406,8 @@ if (name === 'EXT-X-VERSION') {

if (variant) {
if (typeof variant.score === 'number') {
variantIsScored = true;
if (variant.score < 0) {
utils.INVALIDPLAYLIST('SCORE attribute on EXT-X-STREAM-INF must be positive decimal-floating-point number.');
}
}
playlist.variants.push(variant);

@@ -427,2 +462,9 @@ }

}
if (variantIsScored) {
for (const variant of playlist.variants) {
if (typeof variant.score !== 'number') {
utils.INVALIDPLAYLIST('If any Variant Stream contains the SCORE attribute, then all Variant Streams in the Master Playlist SHOULD have a SCORE attribute');
}
}
}
if (params.isClosedCaptionsNone) {

@@ -491,7 +533,7 @@ for (const variant of playlist.variants) {

const attrs = {};
Object.keys(attributes).forEach(key => {
for (const key of Object.keys(attributes)) {
if (key.startsWith('SCTE35-') || key.startsWith('X-')) {
attrs[key] = attributes[key];
}
});
}
segment.dateRange = new DateRange({

@@ -911,7 +953,7 @@ id: attributes['ID'],

const lines = [];
text.split('\n').forEach(l => {
for (const l of text.split('\n')) {
const line = l.trim();
if (!line) {
// empty line
return;
continue;
}

@@ -925,10 +967,9 @@ if (line.startsWith('#')) {

}
return;
}
// comment
return;
continue;
}
// uri
lines.push(line);
});
}
if (lines.length === 0 || lines[0].name !== 'EXTM3U') {

@@ -935,0 +976,0 @@ utils.INVALIDPLAYLIST('The EXTM3U tag MUST be the first line.');

@@ -138,2 +138,3 @@ [![Build Status](https://travis-ci.org/kuu/hls-parser.svg?branch=master)](https://travis-ci.org/kuu/hls-parser)

| `averageBandwidth` | number | No | undefined | See AVERAGE-BANDWIDTH attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |
| `score` | number | No | undefined | See SCORE attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.6.2) |
| `codecs` | string | No | undefined | See CODECS attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |

@@ -143,2 +144,5 @@ | `resolution` | object ({width: number, height: number}) | No | undefined | See RESOLUTION attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |

| `hdcpLevel` | string | No | undefined | See HDCP-LEVEL attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |
| `allowedCpc` | [object ({format: string, cpcList: [string]})] | No | undefined | See ALLOWED-CPC attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.6.2) |
| `videoRange` | string {"SDR","HLG","PQ"} | No | undefined | See VIDEO-RANGE attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.6.2) |
| `stableVariantId` | string | No | undefined | See STABLE-VARIANT-ID attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.6.2) |
| `audio` | [`Rendition`(type='AUDIO')] | No | [] | See AUDIO attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |

@@ -145,0 +149,0 @@ | `video` | [`Rendition`(type='VIDEO')] | No | [] | See VIDEO attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |

@@ -158,2 +158,18 @@ const utils = require('./utils');

}
if (variant.score) {
attrs.push(`SCORE=${variant.score}`);
}
if (variant.allowedCpc) {
const list = [];
for (const {format, cpcList} of variant.allowedCpc) {
list.push(`${format}:${cpcList.join('/')}`);
}
attrs.push(`ALLOWED-CPC="${list.join(',')}"`);
}
if (variant.videoRange) {
attrs.push(`VIDEO-RANGE=${variant.videoRange}`);
}
if (variant.stableVariantId) {
attrs.push(`STABLE-VARIANT-ID="${variant.stableVariantId}"`);
}
lines.push(`${name}:${attrs.join(',')}`);

@@ -204,2 +220,3 @@ if (!variant.isIFrameOnly) {

let lastMap = '';
let unclosedCueIn = false;

@@ -243,4 +260,13 @@ if (playlist.targetDuration) {

for (const segment of playlist.segments) {
[lastKey, lastMap] = buildSegment(lines, segment, lastKey, lastMap, playlist.version);
let markerType = '';
[lastKey, lastMap, markerType] = buildSegment(lines, segment, lastKey, lastMap, playlist.version);
if (markerType === 'OUT') {
unclosedCueIn = true;
} else if (markerType === 'IN' && unclosedCueIn) {
unclosedCueIn = false;
}
}
if (playlist.playlistType === 'VOD' && unclosedCueIn) {
lines.push('#EXT-X-CUE-IN');
}
if (playlist.prefetchSegments.length > 2) {

@@ -260,4 +286,3 @@ utils.INVALIDPLAYLIST('The server must deliver no more than two prefetch segments');

const params = [];
params.push(`URI="${report.uri}"`);
params.push(`LAST-MSN=${report.lastMSN}`);
params.push(`URI="${report.uri}"`, `LAST-MSN=${report.lastMSN}`);
if (report.lastPart !== undefined) {

@@ -272,2 +297,4 @@ params.push(`LAST-PART=${report.lastPart}`);

let hint = false;
let markerType = '';
if (segment.byterange) {

@@ -300,3 +327,3 @@ lines.push(`#EXT-X-BYTERANGE:${buildByteRange(segment.byterange)}`);

if (segment.markers.length > 0) {
buildMarkers(lines, segment.markers);
markerType = buildMarkers(lines, segment.markers);
}

@@ -312,3 +339,3 @@ if (segment.parts.length > 0) {

Array.prototype.push.call(lines, `${segment.uri}`); // URIs could be redundant when EXT-X-BYTERANGE is used
return [lastKey, lastMap];
return [lastKey, lastMap, markerType];
}

@@ -350,3 +377,3 @@

}
Object.keys(dateRange.attributes).forEach(key => {
for (const key of Object.keys(dateRange.attributes)) {
if (key.startsWith('X-')) {

@@ -361,3 +388,3 @@ if (typeof dateRange.attributes[key] === 'number') {

}
});
}
return `#EXT-X-DATERANGE:${attrs.join(',')}`;

@@ -367,6 +394,9 @@ }

function buildMarkers(lines, markers) {
let type = '';
for (const marker of markers) {
if (marker.type === 'OUT') {
type = 'OUT';
lines.push(`#EXT-X-CUE-OUT:${marker.duration}`);
} else if (marker.type === 'IN') {
type = 'IN';
lines.push('#EXT-X-CUE-IN');

@@ -378,2 +408,3 @@ } else if (marker.type === 'RAW') {

}
return type;
}

@@ -386,4 +417,3 @@

const params = [];
params.push('TYPE=PART');
params.push(`URI="${part.uri}"`);
params.push('TYPE=PART', `URI="${part.uri}"`);
if (part.byterange) {

@@ -400,4 +430,3 @@ const {offset, length} = part.byterange;

const params = [];
params.push(`DURATION=${part.duration}`);
params.push(`URI="${part.uri}"`);
params.push(`DURATION=${part.duration}`, `URI="${part.uri}"`);
if (part.byterange) {

@@ -404,0 +433,0 @@ params.push(`BYTERANGE=${buildByteRange(part.byterange)}`);

@@ -41,2 +41,3 @@ const utils = require('./utils');

averageBandwidth,
score,
codecs, // required?

@@ -46,2 +47,5 @@ resolution,

hdcpLevel,
allowedCpc,
videoRange,
stableVariantId,
audio = [],

@@ -59,2 +63,3 @@ video = [],

this.averageBandwidth = averageBandwidth;
this.score = score;
this.codecs = codecs;

@@ -64,2 +69,5 @@ this.resolution = resolution;

this.hdcpLevel = hdcpLevel;
this.allowedCpc = allowedCpc;
this.videoRange = videoRange;
this.stableVariantId = stableVariantId;
this.audio = audio;

@@ -66,0 +74,0 @@ this.video = video;

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc