From 8cf9f286dada1b5398931f92ff709c75a52064a0 Mon Sep 17 00:00:00 2001 From: Jason Walton Date: Thu, 14 Jan 2021 12:36:40 -0500 Subject: [PATCH 001/327] Convert src/demux/exp-golomb.js to typescript. --- LICENSE | 2 +- src/demux/{exp-golomb.js => exp-golomb.ts} | 43 +++++++++++++--------- 2 files changed, 27 insertions(+), 18 deletions(-) rename src/demux/{exp-golomb.js => exp-golomb.ts} (93%) diff --git a/LICENSE b/LICENSE index 8f263a03ac6..5123bda03fe 100644 --- a/LICENSE +++ b/LICENSE @@ -12,7 +12,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -src/remux/mp4-generator.js and src/demux/exp-golomb.js implementation in this project +src/remux/mp4-generator.js and src/demux/exp-golomb.ts implementation in this project are derived from the HLS library for video.js (https://github.com/videojs/videojs-contrib-hls) That work is also covered by the Apache 2 License, following copyright: diff --git a/src/demux/exp-golomb.js b/src/demux/exp-golomb.ts similarity index 93% rename from src/demux/exp-golomb.js rename to src/demux/exp-golomb.ts index 3e48649cea0..a94ab38ed3a 100644 --- a/src/demux/exp-golomb.js +++ b/src/demux/exp-golomb.ts @@ -5,7 +5,12 @@ import { logger } from '../utils/logger'; class ExpGolomb { - constructor(data) { + private data: Uint8Array; + public bytesAvailable: number; + private word: number; + private bitsAvailable: number; + + constructor(data: Uint8Array) { this.data = data; // the number of bytes left to examine in this.data this.bytesAvailable = data.byteLength; @@ -16,7 +21,7 @@ class ExpGolomb { } // ():void - loadWord() { + loadWord(): void { const data = this.data; const bytesAvailable = this.bytesAvailable; const position = data.byteLength - bytesAvailable; @@ -34,7 +39,7 @@ class ExpGolomb { } // (count:int):void - skipBits(count) { + skipBits(count: number): void { let skipBytes; // :int if (this.bitsAvailable > count) { this.word <<= count; @@ -51,7 +56,7 @@ class ExpGolomb { } // (size:int):uint - readBits(size) { + readBits(size: number): number { let bits = Math.min(this.bitsAvailable, size); // :uint const valu = this.word >>> (32 - bits); // :uint if (size > 32) { @@ -74,7 +79,7 @@ class ExpGolomb { } // ():uint - skipLZ() { + skipLZ(): number { let leadingZeroCount; // :uint for ( leadingZeroCount = 0; @@ -94,23 +99,23 @@ class ExpGolomb { } // ():void - skipUEG() { + skipUEG(): void { this.skipBits(1 + this.skipLZ()); } // ():void - skipEG() { + skipEG(): void { this.skipBits(1 + this.skipLZ()); } // ():uint - readUEG() { + readUEG(): number { const clz = this.skipLZ(); // :uint return this.readBits(clz + 1) - 1; } // ():int - readEG() { + readEG(): number { const valu = this.readUEG(); // :int if (0x01 & valu) { // the number is odd if the low order bit is set @@ -122,22 +127,22 @@ class ExpGolomb { // Some convenience functions // :Boolean - readBoolean() { + readBoolean(): boolean { return this.readBits(1) === 1; } // ():int - readUByte() { + readUByte(): number { return this.readBits(8); } // ():int - readUShort() { + readUShort(): number { return this.readBits(16); } // ():int - readUInt() { + readUInt(): number { return this.readBits(32); } @@ -145,10 +150,10 @@ class ExpGolomb { * Advance the ExpGolomb decoder past a scaling list. The scaling * list is optionally transmitted as part of a sequence parameter * set and is not relevant to transmuxing. - * @param count {number} the number of entries in this scaling list + * @param count the number of entries in this scaling list * @see Recommendation ITU-T H.264, Section 7.3.2.1.1.1 */ - skipScalingList(count) { + skipScalingList(count: number): void { let lastScale = 8; let nextScale = 8; let deltaScale; @@ -170,7 +175,11 @@ class ExpGolomb { * sequence parameter set, including the dimensions of the * associated video frames. */ - readSPS() { + readSPS(): { + width: number; + height: number; + pixelRatio: [number, number]; + } { let frameCropLeftOffset = 0; let frameCropRightOffset = 0; let frameCropTopOffset = 0; @@ -258,7 +267,7 @@ class ExpGolomb { frameCropTopOffset = readUEG(); frameCropBottomOffset = readUEG(); } - let pixelRatio = [1, 1]; + let pixelRatio: [number, number] = [1, 1]; if (readBoolean()) { // vui_parameters_present_flag if (readBoolean()) { From 2526b10b660af8aca3bf2675a947b83457a0125b Mon Sep 17 00:00:00 2001 From: Jason Walton Date: Thu, 14 Jan 2021 12:05:52 -0500 Subject: [PATCH 002/327] Convert sample-aes.js to typescript. Improve typescript types in tsdemuxer. --- src/demux/base-audio-demuxer.ts | 3 +- src/demux/mp4demuxer.ts | 4 +- src/demux/{sample-aes.js => sample-aes.ts} | 79 ++++++++-- src/demux/transmuxer.ts | 48 +++--- src/demux/tsdemuxer.ts | 164 +++++++++++++-------- src/types/demuxer.ts | 11 +- 6 files changed, 206 insertions(+), 103 deletions(-) rename src/demux/{sample-aes.js => sample-aes.ts} (65%) diff --git a/src/demux/base-audio-demuxer.ts b/src/demux/base-audio-demuxer.ts index fd44c96a4ed..9dec7c2f732 100644 --- a/src/demux/base-audio-demuxer.ts +++ b/src/demux/base-audio-demuxer.ts @@ -7,6 +7,7 @@ import type { DemuxedMetadataTrack, DemuxedAvcTrack, DemuxedUserdataTrack, + KeyData, } from '../types/demuxer'; import { dummyTrack } from './dummy-demuxed-track'; import { appendUint8Array } from '../utils/mp4-tools'; @@ -116,7 +117,7 @@ class BaseAudioDemuxer implements Demuxer { demuxSampleAes( data: Uint8Array, - decryptData: Uint8Array, + keyData: KeyData, timeOffset: number ): Promise { return Promise.reject( diff --git a/src/demux/mp4demuxer.ts b/src/demux/mp4demuxer.ts index cda3f7a7bd0..5666ab6d830 100644 --- a/src/demux/mp4demuxer.ts +++ b/src/demux/mp4demuxer.ts @@ -4,11 +4,11 @@ import { Demuxer, DemuxerResult, - DemuxedTrack, PassthroughVideoTrack, DemuxedAudioTrack, DemuxedUserdataTrack, DemuxedMetadataTrack, + KeyData, } from '../types/demuxer'; import { findBox, @@ -84,7 +84,7 @@ class MP4Demuxer implements Demuxer { demuxSampleAes( data: Uint8Array, - decryptData: Uint8Array, + keyData: KeyData, timeOffset: number ): Promise { return Promise.reject( diff --git a/src/demux/sample-aes.js b/src/demux/sample-aes.ts similarity index 65% rename from src/demux/sample-aes.js rename to src/demux/sample-aes.ts index ebfd3c29d70..e9129315f16 100644 --- a/src/demux/sample-aes.js +++ b/src/demux/sample-aes.ts @@ -2,28 +2,56 @@ * SAMPLE-AES decrypter */ +import { HlsConfig } from '../config'; import Decrypter from '../crypt/decrypter'; +import { HlsEventEmitter } from '../events'; +import { + AudioSample, + AvcSample, + AvcSampleUnit, + DemuxedVideoTrack, + KeyData, +} from '../types/demuxer'; class SampleAesDecrypter { - constructor(observer, config, decryptdata, discardEPB) { - this.decryptdata = decryptdata; + private keyData: KeyData; + private discardEPB: (data: Uint8Array) => Uint8Array; + private decrypter: Decrypter; + + constructor( + observer: HlsEventEmitter, + config: HlsConfig, + keyData: KeyData, + discardEPB: (data: Uint8Array) => Uint8Array + ) { + this.keyData = keyData; this.discardEPB = discardEPB; this.decrypter = new Decrypter(observer, config, { removePKCS7Padding: false, }); } - decryptBuffer(encryptedData, callback) { - this.decrypter.decrypt( + // TODO: Fix callback return type. + decryptBuffer( + encryptedData: Uint8Array | ArrayBufferLike, + callback: (decryptedData: any) => void + ) { + // TODO: `this.decrypter` is an instance of `Decrypter`, which has no function named decrypt!? + (this.decrypter as any).decrypt( encryptedData, - this.decryptdata.key.buffer, - this.decryptdata.iv.buffer, + this.keyData.key.buffer, + this.keyData.iv.buffer, callback ); } // AAC - encrypt all full 16 bytes blocks starting from offset 16 - decryptAacSample(samples, sampleIndex, callback, sync) { + decryptAacSample( + samples: AudioSample[], + sampleIndex: number, + callback: () => void, + sync: boolean + ) { const curUnit = samples[sampleIndex].unit; const encryptedData = curUnit.subarray( 16, @@ -45,7 +73,11 @@ class SampleAesDecrypter { }); } - decryptAacSamples(samples, sampleIndex, callback) { + decryptAacSamples( + samples: AudioSample[], + sampleIndex: number, + callback: () => void + ) { for (; ; sampleIndex++) { if (sampleIndex >= samples.length) { callback(); @@ -67,7 +99,7 @@ class SampleAesDecrypter { } // AVC - encrypt one 16 bytes block out of ten, starting from offset 32 - getAvcEncryptedData(decodedData) { + getAvcEncryptedData(decodedData: Uint8Array) { const encryptedDataLen = Math.floor((decodedData.length - 48) / 160) * 16 + 16; const encryptedData = new Int8Array(encryptedDataLen); @@ -86,8 +118,11 @@ class SampleAesDecrypter { return encryptedData; } - getAvcDecryptedUnit(decodedData, decryptedData) { - decryptedData = new Uint8Array(decryptedData); + getAvcDecryptedUnit( + decodedData: Uint8Array, + decryptedData: ArrayLike | ArrayBuffer | SharedArrayBuffer + ) { + const uint8DecryptedData = new Uint8Array(decryptedData); let inputPos = 0; for ( let outputPos = 32; @@ -95,7 +130,7 @@ class SampleAesDecrypter { outputPos += 160, inputPos += 16 ) { decodedData.set( - decryptedData.subarray(inputPos, inputPos + 16), + uint8DecryptedData.subarray(inputPos, inputPos + 16), outputPos ); } @@ -103,7 +138,14 @@ class SampleAesDecrypter { return decodedData; } - decryptAvcSample(samples, sampleIndex, unitIndex, callback, curUnit, sync) { + decryptAvcSample( + samples: AvcSample[], + sampleIndex: number, + unitIndex: number, + callback: () => void, + curUnit: AvcSampleUnit, + sync: boolean + ) { const decodedData = this.discardEPB(curUnit.data); const encryptedData = this.getAvcEncryptedData(decodedData); const localthis = this; @@ -122,7 +164,16 @@ class SampleAesDecrypter { }); } - decryptAvcSamples(samples, sampleIndex, unitIndex, callback) { + decryptAvcSamples( + samples: DemuxedVideoTrack['samples'], + sampleIndex: number, + unitIndex: number, + callback: () => void + ) { + if (samples instanceof Uint8Array) { + throw new Error('Cannot decrypte samples of type Uint8Array'); + } + for (; ; sampleIndex++, unitIndex = 0) { if (sampleIndex >= samples.length) { callback(); diff --git a/src/demux/transmuxer.ts b/src/demux/transmuxer.ts index 3596f975258..4ccc11b8c97 100644 --- a/src/demux/transmuxer.ts +++ b/src/demux/transmuxer.ts @@ -8,7 +8,7 @@ import TSDemuxer from '../demux/tsdemuxer'; import MP3Demuxer from '../demux/mp3demuxer'; import MP4Remuxer from '../remux/mp4-remuxer'; import PassThroughRemuxer from '../remux/passthrough-remuxer'; -import type { Demuxer } from '../types/demuxer'; +import type { Demuxer, KeyData } from '../types/demuxer'; import type { Remuxer } from '../types/remuxer'; import type { TransmuxerResult, ChunkMetadata } from '../types/transmuxer'; import ChunkCache from './chunk-cache'; @@ -16,6 +16,7 @@ import { appendUint8Array } from '../utils/mp4-tools'; import { logger } from '../utils/logger'; import type { HlsConfig } from '../config'; +import LevelKey from '../loader/level-key'; let now; // performance.now() not available on WebWorker, at least on Safari Desktop @@ -79,7 +80,7 @@ export default class Transmuxer { push( data: ArrayBuffer, - decryptdata: any | null, + decryptdata: LevelKey | null, chunkMeta: ChunkMetadata, state?: TransmuxState ): TransmuxerResult | Promise { @@ -92,8 +93,8 @@ export default class Transmuxer { this.currentTransmuxState = state; } - const encryptionType = getEncryptionType(uintData, decryptdata); - if (encryptionType === 'AES-128') { + const keyData = getEncryptionType(uintData, decryptdata); + if (keyData && keyData.method === 'AES-128') { const decrypter = this.getDecrypter(); // Software decryption is synchronous; webCrypto is not if (config.enableSoftwareAES) { @@ -101,8 +102,8 @@ export default class Transmuxer { // data is handled in the flush() call const decryptedData: ArrayBuffer = decrypter.softwareDecrypt( uintData, - decryptdata.key.buffer, - decryptdata.iv.buffer + keyData.key.buffer, + keyData.iv.buffer ); if (!decryptedData) { stats.executeEnd = now(); @@ -111,11 +112,7 @@ export default class Transmuxer { uintData = new Uint8Array(decryptedData); } else { this.decryptionPromise = decrypter - .webCryptoDecrypt( - uintData, - decryptdata.key.buffer, - decryptdata.iv.buffer - ) + .webCryptoDecrypt(uintData, keyData.key.buffer, keyData.iv.buffer) .then( (decryptedData): TransmuxerResult => { // Calling push here is important; if flush() is called while this is still resolving, this ensures that @@ -181,8 +178,7 @@ export default class Transmuxer { const result = this.transmux( uintData, - decryptdata, - encryptionType, + keyData, timeOffset, accurateTimeOffset, chunkMeta @@ -323,17 +319,16 @@ export default class Transmuxer { private transmux( data: Uint8Array, - decryptData: Uint8Array, - encryptionType: string | null, + keyData: KeyData | null, timeOffset: number, accurateTimeOffset: boolean, chunkMeta: ChunkMetadata ): TransmuxerResult | Promise { let result: TransmuxerResult | Promise; - if (encryptionType === 'SAMPLE-AES') { + if (keyData && keyData.method === 'SAMPLE-AES') { result = this.transmuxSampleAes( data, - decryptData, + keyData, timeOffset, accurateTimeOffset, chunkMeta @@ -375,7 +370,7 @@ export default class Transmuxer { // TODO: Handle flush with Sample-AES private transmuxSampleAes( data: Uint8Array, - decryptData: any, + decryptData: KeyData, timeOffset: number, accurateTimeOffset: boolean, chunkMeta: ChunkMetadata @@ -461,10 +456,19 @@ export default class Transmuxer { } } -function getEncryptionType(data: Uint8Array, decryptData: any): string | null { - let encryptionType = null; - if (data.byteLength > 0 && decryptData != null && decryptData.key != null) { - encryptionType = decryptData.method; +function getEncryptionType( + data: Uint8Array, + decryptData: LevelKey | null +): KeyData | null { + let encryptionType: KeyData | null = null; + if ( + data.byteLength > 0 && + decryptData != null && + decryptData.key != null && + decryptData.iv !== null && + decryptData.method != null + ) { + encryptionType = decryptData as KeyData; } return encryptionType; } diff --git a/src/demux/tsdemuxer.ts b/src/demux/tsdemuxer.ts index 5d8e4e702bf..f13e1847c1b 100644 --- a/src/demux/tsdemuxer.ts +++ b/src/demux/tsdemuxer.ts @@ -26,6 +26,9 @@ import { AvcSample, DemuxedMetadataTrack, DemuxedUserdataTrack, + ElementaryStreamData, + DemuxedVideoTrack, + KeyData, } from '../types/demuxer'; import { appendUint8Array } from '../utils/mp4-tools'; import { utf8ArrayToStr } from '../demux/id3'; @@ -46,12 +49,31 @@ const RemuxerTrackIdConfig = { text: 4, }; +interface PES { + data: Uint8Array; + // TODO: `parsePES()` returns `pts` and `dts` as `number | undefined`, + // but most callers assume `pts` and `dts` are `number` and will never + // be undefined. In most cases, this works out, as either the resulting + // calculations end up with NaN and this is detected, or things just + // happen to work out OK, but there could be some exciting bugs hiding + // here in unusual corner cases. For now we define these as `any` + // to prevent tsc from complaining. + pts: any; + dts: any; + len: number; +} + +export interface TypeSupported { + mpeg: boolean; + mp3: boolean; +} + class TSDemuxer implements Demuxer { static readonly minProbeByteLength = 188; private readonly observer: HlsEventEmitter; private readonly config: HlsConfig; - private typeSupported: any; + private typeSupported: TypeSupported; private sampleAes: any = null; private pmtParsed: boolean = false; @@ -72,13 +94,17 @@ class TSDemuxer implements Demuxer { private avcSample: AvcSample | null = null; private remainderData: Uint8Array | null = null; - constructor(observer: HlsEventEmitter, config: HlsConfig, typeSupported) { + constructor( + observer: HlsEventEmitter, + config: HlsConfig, + typeSupported: TypeSupported + ) { this.observer = observer; this.config = config; this.typeSupported = typeSupported; } - static probe(data) { + static probe(data: Uint8Array) { const syncOffset = TSDemuxer._syncOffset(data); if (syncOffset < 0) { return false; @@ -93,7 +119,7 @@ class TSDemuxer implements Demuxer { } } - static _syncOffset(data) { + static _syncOffset(data: Uint8Array) { // scan 1000 first bytes const scanwindow = Math.min(1000, data.length - 3 * 188); let i = 0; @@ -115,11 +141,14 @@ class TSDemuxer implements Demuxer { /** * Creates a track model internal to demuxer used to drive remuxing input * - * @param {string} type 'audio' | 'video' | 'id3' | 'text' - * @param {number} duration - * @return {object} TSDemuxer's internal track model + * @param type 'audio' | 'video' | 'id3' | 'text' + * @param duration + * @return TSDemuxer's internal track model */ - static createTrack(type, duration): DemuxedTrack { + static createTrack( + type: 'audio' | 'video' | 'id3' | 'text', + duration: number + ): DemuxedTrack { return { container: type === 'video' || type === 'audio' ? 'video/mp2t' : undefined, @@ -138,7 +167,7 @@ class TSDemuxer implements Demuxer { * Initializes a new init segment on the demuxer/remuxer interface. Needed for discontinuities/track-switches (or at stream start) * Resets all internal track instances of the demuxer. */ - resetInitSegment(audioCodec, videoCodec, duration) { + resetInitSegment(audioCodec: string, videoCodec: string, duration: number) { this.pmtParsed = false; this._pmtId = -1; @@ -188,7 +217,7 @@ class TSDemuxer implements Demuxer { demux( data: Uint8Array, - timeOffset, + timeOffset: number, isSampleAes = false, flush = false ): DemuxerResult { @@ -196,12 +225,7 @@ class TSDemuxer implements Demuxer { this.sampleAes = null; } - let start; - let stt; - let pid; - let atf; - let offset; - let pes; + let pes: PES | null; const avcTrack = this._avcTrack; const audioTrack = this._audioTrack; @@ -246,13 +270,15 @@ class TSDemuxer implements Demuxer { } // loop through TS packets - for (start = syncOffset; start < len; start += 188) { + for (let start = syncOffset; start < len; start += 188) { if (data[start] === 0x47) { - stt = !!(data[start + 1] & 0x40); + const stt = !!(data[start + 1] & 0x40); // pid is a 13-bit field starting at the last bit of TS[1] - pid = ((data[start + 1] & 0x1f) << 8) + data[start + 2]; - atf = (data[start + 3] & 0x30) >> 4; + const pid = ((data[start + 1] & 0x1f) << 8) + data[start + 2]; + const atf = (data[start + 3] & 0x30) >> 4; + // if an adaption field is present, its length is specified by the fifth byte of the TS packet header. + let offset: number; if (atf > 1) { offset = start + 5 + data[start + 4]; // continue if there is only adaptation field @@ -408,7 +434,7 @@ class TSDemuxer implements Demuxer { const audioData = audioTrack.pesData; const id3Data = id3Track.pesData; // try to parse last PES packets - let pes; + let pes: PES | null; if (avcData && (pes = parsePES(avcData))) { this._parseAVCPES(pes, true); avcTrack.pesData = null; @@ -445,15 +471,19 @@ class TSDemuxer implements Demuxer { } } - demuxSampleAes(data, decryptData, timeOffset): Promise { + demuxSampleAes( + data: Uint8Array, + keyData: KeyData, + timeOffset: number + ): Promise { const demuxResult = this.demux(data, timeOffset, true); const sampleAes = (this.sampleAes = new SampleAesDecrypter( this.observer, this.config, - decryptData, + keyData, this.discardEPB )); - return new Promise((resolve, reject) => { + return new Promise((resolve) => { this.decrypt( demuxResult.audioTrack, demuxResult.avcTrack, @@ -464,7 +494,11 @@ class TSDemuxer implements Demuxer { }); } - decrypt(audioTrack, videoTrack, sampleAes): Promise { + decrypt( + audioTrack: DemuxedAudioTrack, + videoTrack: DemuxedVideoTrack, + sampleAes: SampleAesDecrypter + ): Promise { return new Promise((resolve) => { if (audioTrack.samples && audioTrack.isAAC) { sampleAes.decryptAacSamples(audioTrack.samples, 0, () => { @@ -512,19 +546,17 @@ class TSDemuxer implements Demuxer { } } - _parseAVCPES(pes, last) { + _parseAVCPES(pes: PES, last: boolean) { // logger.log('parse new PES'); const track = this._avcTrack; const units = this._parseAVCNALu(pes.data); const debug = false; - let expGolombDecoder; let avcSample = this.avcSample; - let push; + let push: boolean; let spsfound = false; - let i; const pushAccessUnit = this.pushAccessUnit.bind(this); // free pes.data to save up some memory - pes.data = null; + (pes as any).data = null; // if new NAL units found and last sample still there, let's push ... // this helps parsing streams with missing AUD (only do this if AUD never found) @@ -600,7 +632,7 @@ class TSDemuxer implements Demuxer { avcSample.debug += 'SEI '; } - expGolombDecoder = new ExpGolomb(this.discardEPB(unit.data)); + const expGolombDecoder = new ExpGolomb(this.discardEPB(unit.data)); // skip frameType expGolombDecoder.readUByte(); @@ -648,7 +680,7 @@ class TSDemuxer implements Demuxer { const totalCCs = 31 & firstByte; const byteArray = [firstByte, secondByte]; - for (i = 0; i < totalCCs; i++) { + for (let i = 0; i < totalCCs; i++) { // 3 bytes per CC byteArray.push(expGolombDecoder.readUByte()); byteArray.push(expGolombDecoder.readUByte()); @@ -672,7 +704,7 @@ class TSDemuxer implements Demuxer { if (payloadSize > 16) { const uuidStrArray: Array = []; - for (i = 0; i < 16; i++) { + for (let i = 0; i < 16; i++) { uuidStrArray.push(expGolombDecoder.readUByte().toString(16)); if (i === 3 || i === 5 || i === 7 || i === 9) { @@ -681,7 +713,7 @@ class TSDemuxer implements Demuxer { } const length = payloadSize - 16; const userDataPayloadBytes = new Uint8Array(length); - for (i = 0; i < length; i++) { + for (let i = 0; i < length; i++) { userDataPayloadBytes[i] = expGolombDecoder.readUByte(); } @@ -694,7 +726,7 @@ class TSDemuxer implements Demuxer { }); } } else if (payloadSize < expGolombDecoder.bytesAvailable) { - for (i = 0; i < payloadSize; i++) { + for (let i = 0; i < payloadSize; i++) { expGolombDecoder.readUByte(); } } @@ -710,16 +742,17 @@ class TSDemuxer implements Demuxer { } if (!track.sps) { - expGolombDecoder = new ExpGolomb(unit.data); + const expGolombDecoder = new ExpGolomb(unit.data); const config = expGolombDecoder.readSPS(); track.width = config.width; track.height = config.height; track.pixelRatio = config.pixelRatio; - track.sps = [unit.data]; + // TODO: `track.sps` is defined as a `number[]`, but we're setting it to a `Uint8Array[]`. + track.sps = [unit.data] as any; track.duration = this._duration; const codecarray = unit.data.subarray(1, 4); let codecstring = 'avc1.'; - for (i = 0; i < 3; i++) { + for (let i = 0; i < 3; i++) { let h = codecarray[i].toString(16); if (h.length < 2) { h = '0' + h; @@ -738,7 +771,8 @@ class TSDemuxer implements Demuxer { } if (!track.pps) { - track.pps = [unit.data]; + // TODO: `track.pss` is defined as a `number[]`, but we're setting it to a `Uint8Array[]`. + track.pps = [unit.data] as any; } break; @@ -814,19 +848,28 @@ class TSDemuxer implements Demuxer { return lastUnit; } - _parseAVCNALu(array): Array { + _parseAVCNALu( + array: Uint8Array + ): Array<{ + data: Uint8Array; + type: number; + state?: number; + }> { const len = array.byteLength; const track = this._avcTrack; let state = track.naluState || 0; const lastState = state; - const units = [] as Array; + const units = [] as Array<{ + data: Uint8Array; + type: number; + state?: number; + }>; let i = 0; let value; let overflow; - let unit; let unitType; let lastUnitStart = -1; - let lastUnitType; + let lastUnitType: number = 0; // logger.log('PES:' + Hex.hexDump(array)); if (state === -1) { @@ -854,7 +897,7 @@ class TSDemuxer implements Demuxer { state = 3; } else if (value === 1) { if (lastUnitStart >= 0) { - unit = { + const unit = { data: array.subarray(lastUnitStart, i - state - 1), type: lastUnitType, }; @@ -906,7 +949,7 @@ class TSDemuxer implements Demuxer { } } if (lastUnitStart >= 0 && state >= 0) { - unit = { + const unit = { data: array.subarray(lastUnitStart, len), type: lastUnitType, state: state, @@ -932,7 +975,7 @@ class TSDemuxer implements Demuxer { /** * remove Emulation Prevention bytes from a RBSP */ - discardEPB(data) { + discardEPB(data: Uint8Array): Uint8Array { const length = data.byteLength; const EPBPositions = [] as Array; let i = 1; @@ -970,7 +1013,7 @@ class TSDemuxer implements Demuxer { return newData; } - _parseAACPES(pes) { + _parseAACPES(pes: PES) { const startOffset = 0; const track = this._audioTrack; const aacLastPTS = this.aacLastPTS; @@ -1026,7 +1069,7 @@ class TSDemuxer implements Demuxer { // first sample PTS should be equal to last sample PTS + frameDuration if (aacOverFlow && aacLastPTS) { const newPTS = aacLastPTS + frameDuration; - if (Math.abs(newPTS - pts) > 1) { + if (pts !== undefined && Math.abs(newPTS - pts) > 1) { logger.log( `[tsdemuxer]: AAC: align PTS for overlapping frames by ${Math.round( (newPTS - pts) / 90 @@ -1068,7 +1111,7 @@ class TSDemuxer implements Demuxer { this.aacLastPTS = stamp; } - _parseMPEGPES(pes) { + _parseMPEGPES(pes: PES) { const data = pes.data; const length = data.length; let frameIndex = 0; @@ -1098,7 +1141,7 @@ class TSDemuxer implements Demuxer { } } - _parseID3PES(pes) { + _parseID3PES(pes: PES) { this._id3Track.samples.push(pes); } } @@ -1208,16 +1251,13 @@ function parsePMT(data, offset, mpegSupported, isSampleAes) { return result; } -function parsePES(stream) { +function parsePES(stream: ElementaryStreamData): PES | null { let i = 0; - let frag; - let pesFlags; - let pesLen; - let pesHdrLen; - let pesData; - let pesPts; - let pesDts; - let payloadStartOffset; + let frag: Uint8Array; + let pesLen: number; + let pesHdrLen: number; + let pesPts: number | undefined; + let pesDts: number | undefined; const data = stream.data; // safety check if (!stream || stream.size === 0) { @@ -1245,7 +1285,7 @@ function parsePES(stream) { return null; } - pesFlags = frag[7]; + const pesFlags = frag[7]; if (pesFlags & 0xc0) { /* PES header described here : http://dvd.sourceforge.net/dvdinfo/pes-hdr.html as PTS / DTS is 33 bit we cannot use bitwise operator in JS, @@ -1279,13 +1319,13 @@ function parsePES(stream) { } pesHdrLen = frag[8]; // 9 bytes : 6 bytes for PES header + 3 bytes for PES extension - payloadStartOffset = pesHdrLen + 9; + let payloadStartOffset = pesHdrLen + 9; if (stream.size <= payloadStartOffset) { return null; } stream.size -= payloadStartOffset; // reassemble PES packet - pesData = new Uint8Array(stream.size); + const pesData = new Uint8Array(stream.size); for (let j = 0, dataLen = data.length; j < dataLen; j++) { frag = data[j]; let len = frag.byteLength; diff --git a/src/types/demuxer.ts b/src/types/demuxer.ts index a1c86af9d7a..13c774e647c 100644 --- a/src/types/demuxer.ts +++ b/src/types/demuxer.ts @@ -6,7 +6,7 @@ export interface Demuxer { ): DemuxerResult; demuxSampleAes( data: Uint8Array, - decryptData: Uint8Array, + keyData: KeyData, timeOffset: number ): Promise; flush(timeOffset?: number): DemuxerResult; @@ -59,7 +59,7 @@ export interface DemuxedAudioTrack extends DemuxedTrack { export interface DemuxedVideoTrack extends DemuxedTrack { width?: number; height?: number; - pixelRatio?: number; + pixelRatio?: [number, number]; audFound?: boolean; pps?: number[]; sps?: number[]; @@ -107,6 +107,7 @@ export interface AvcSample { export interface AvcSampleUnit { data: Uint8Array; + type: number; } export type AudioSample = { @@ -124,3 +125,9 @@ export interface ElementaryStreamData { data: Uint8Array[]; size: number; } + +export interface KeyData { + method: string; + key: Uint8Array; + iv: Uint8Array; +} From 61235c61c58f32aefb80614d735521062b3a0551 Mon Sep 17 00:00:00 2001 From: Jason Walton Date: Fri, 15 Jan 2021 15:33:50 -0500 Subject: [PATCH 003/327] Fixes from code inspect. --- src/demux/sample-aes.ts | 4 ++-- src/demux/tsdemuxer.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/demux/sample-aes.ts b/src/demux/sample-aes.ts index e9129315f16..ce5bd1ba5e5 100644 --- a/src/demux/sample-aes.ts +++ b/src/demux/sample-aes.ts @@ -5,7 +5,7 @@ import { HlsConfig } from '../config'; import Decrypter from '../crypt/decrypter'; import { HlsEventEmitter } from '../events'; -import { +import type { AudioSample, AvcSample, AvcSampleUnit, @@ -171,7 +171,7 @@ class SampleAesDecrypter { callback: () => void ) { if (samples instanceof Uint8Array) { - throw new Error('Cannot decrypte samples of type Uint8Array'); + throw new Error('Cannot decrypt samples of type Uint8Array'); } for (; ; sampleIndex++, unitIndex = 0) { diff --git a/src/demux/tsdemuxer.ts b/src/demux/tsdemuxer.ts index f13e1847c1b..abfc36d8b2f 100644 --- a/src/demux/tsdemuxer.ts +++ b/src/demux/tsdemuxer.ts @@ -66,6 +66,7 @@ interface PES { export interface TypeSupported { mpeg: boolean; mp3: boolean; + mp4: boolean; } class TSDemuxer implements Demuxer { From 9c0a952ed594385d51225755f6f90439a75bbb2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Jan 2021 07:45:16 +0000 Subject: [PATCH 004/327] [skip ci]: Bump husky from 4.3.7 to 4.3.8 Bumps [husky](https://github.com/typicode/husky) from 4.3.7 to 4.3.8. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v4.3.7...v4.3.8) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 21cdf4cc4cc..29d5874dd3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11769,9 +11769,9 @@ "dev": true }, "husky": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz", - "integrity": "sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", + "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", "dev": true, "requires": { "chalk": "^4.0.0", From ce542fd49ddd4d5a9a21c288dbd8a354cb5f58e7 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Mon, 18 Jan 2021 02:44:12 -0500 Subject: [PATCH 005/327] Fix SAMPLE-AES streaming Follow up from #3384 Fixes a regression introduced in 6836ef3e40ee2ed72553856cc1bd6f35f806bf1d --- src/crypt/decrypter.ts | 28 ++++++++++++++++---- src/demux/sample-aes.ts | 40 +++++++++++++++------------- src/demux/transmuxer.ts | 58 +++++++++++++++++++++++------------------ src/demux/tsdemuxer.ts | 39 ++++++++++++--------------- src/types/demuxer.ts | 2 +- 5 files changed, 96 insertions(+), 71 deletions(-) diff --git a/src/crypt/decrypter.ts b/src/crypt/decrypter.ts index 8103e76b88a..3100d73975d 100644 --- a/src/crypt/decrypter.ts +++ b/src/crypt/decrypter.ts @@ -38,20 +38,21 @@ export default class Decrypter { this.subtle = browserCrypto.subtle || ((browserCrypto as any).webkitSubtle as SubtleCrypto); - } else { - this.config.enableSoftwareAES = true; } } catch (e) { /* no-op */ } } + if (this.subtle === null) { + this.config.enableSoftwareAES = true; + } } - isSync() { + public isSync() { return this.config.enableSoftwareAES; } - flush(): Uint8Array | void { + public flush(): Uint8Array | void { const { currentResult } = this; if (!currentResult) { this.reset(); @@ -65,7 +66,7 @@ export default class Decrypter { return data; } - reset() { + public reset() { this.currentResult = null; this.currentIV = null; this.remainderData = null; @@ -74,6 +75,23 @@ export default class Decrypter { } } + public decrypt( + data: Uint8Array | ArrayBuffer, + key: ArrayBuffer, + iv: ArrayBuffer, + callback: (decryptedData: ArrayBuffer) => void + ) { + if (this.config.enableSoftwareAES) { + this.softwareDecrypt(new Uint8Array(data), key, iv); + const decryptResult = this.flush(); + if (decryptResult) { + callback(decryptResult.buffer); + } + } else { + this.webCryptoDecrypt(new Uint8Array(data), key, iv).then(callback); + } + } + public softwareDecrypt( data: Uint8Array, key: ArrayBuffer, diff --git a/src/demux/sample-aes.ts b/src/demux/sample-aes.ts index ce5bd1ba5e5..ca3e907c9a2 100644 --- a/src/demux/sample-aes.ts +++ b/src/demux/sample-aes.ts @@ -31,13 +31,11 @@ class SampleAesDecrypter { }); } - // TODO: Fix callback return type. decryptBuffer( - encryptedData: Uint8Array | ArrayBufferLike, - callback: (decryptedData: any) => void + encryptedData: Uint8Array | ArrayBuffer, + callback: (decryptedData: ArrayBuffer) => void ) { - // TODO: `this.decrypter` is an instance of `Decrypter`, which has no function named decrypt!? - (this.decrypter as any).decrypt( + this.decrypter.decrypt( encryptedData, this.keyData.key.buffer, this.keyData.iv.buffer, @@ -46,7 +44,7 @@ class SampleAesDecrypter { } // AAC - encrypt all full 16 bytes blocks starting from offset 16 - decryptAacSample( + private decryptAacSample( samples: AudioSample[], sampleIndex: number, callback: () => void, @@ -63,8 +61,8 @@ class SampleAesDecrypter { ); const localthis = this; - this.decryptBuffer(encryptedBuffer, function (decryptedData) { - decryptedData = new Uint8Array(decryptedData); + this.decryptBuffer(encryptedBuffer, (decryptedBuffer: ArrayBuffer) => { + const decryptedData = new Uint8Array(decryptedBuffer); curUnit.set(decryptedData, 16); if (!sync) { @@ -150,18 +148,24 @@ class SampleAesDecrypter { const encryptedData = this.getAvcEncryptedData(decodedData); const localthis = this; - this.decryptBuffer(encryptedData.buffer, function (decryptedData) { - curUnit.data = localthis.getAvcDecryptedUnit(decodedData, decryptedData); - - if (!sync) { - localthis.decryptAvcSamples( - samples, - sampleIndex, - unitIndex + 1, - callback + this.decryptBuffer( + encryptedData.buffer, + function (decryptedBuffer: ArrayBuffer) { + curUnit.data = localthis.getAvcDecryptedUnit( + decodedData, + decryptedBuffer ); + + if (!sync) { + localthis.decryptAvcSamples( + samples, + sampleIndex, + unitIndex + 1, + callback + ); + } } - }); + ); } decryptAvcSamples( diff --git a/src/demux/transmuxer.ts b/src/demux/transmuxer.ts index 4ccc11b8c97..f6bcecc98ed 100644 --- a/src/demux/transmuxer.ts +++ b/src/demux/transmuxer.ts @@ -52,7 +52,7 @@ export default class Transmuxer { private vendor: any; private demuxer?: Demuxer; private remuxer?: Remuxer; - private decrypter: any; + private decrypter?: Decrypter; private probe!: Function; private decryptionPromise: Promise | null = null; private transmuxConfig!: TransmuxConfig; @@ -100,7 +100,7 @@ export default class Transmuxer { if (config.enableSoftwareAES) { // Software decryption is progressive. Progressive decryption may not return a result on each call. Any cached // data is handled in the flush() call - const decryptedData: ArrayBuffer = decrypter.softwareDecrypt( + const decryptedData = decrypter.softwareDecrypt( uintData, keyData.key.buffer, keyData.iv.buffer @@ -200,14 +200,7 @@ export default class Transmuxer { const stats = chunkMeta.transmuxing; stats.executeStart = now(); - const { - decrypter, - cache, - currentTransmuxState, - decryptionPromise, - observer, - } = this; - const transmuxResults: Array = []; + const { decrypter, cache, currentTransmuxState, decryptionPromise } = this; if (decryptionPromise) { // Upon resolution, the decryption promise calls push() and returns its TransmuxerResult up the stack. Therefore @@ -217,7 +210,8 @@ export default class Transmuxer { }); } - const { accurateTimeOffset, timeOffset } = currentTransmuxState; + const transmuxResults: Array = []; + const { timeOffset } = currentTransmuxState; if (decrypter) { // The decrypter may have data cached, which needs to be demuxed. In this case we'll have two TransmuxResults // This happens in the case that we receive only 1 push call for a segment (either for non-progressive downloads, @@ -237,7 +231,7 @@ export default class Transmuxer { if (!demuxer || !remuxer) { // If probing failed, and each demuxer saw enough bytes to be able to probe, then Hls.js has been given content its not able to handle if (bytesSeen >= minProbeByteLength) { - observer.emit(Events.ERROR, Events.ERROR, { + this.observer.emit(Events.ERROR, Events.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_PARSING_ERROR, fatal: true, @@ -248,15 +242,28 @@ export default class Transmuxer { return [emptyResult(chunkMeta)]; } - const { audioTrack, avcTrack, id3Track, textTrack } = demuxer.flush( - timeOffset - ); + const demuxResultOrPromise = demuxer.flush(timeOffset); + if (isPromise(demuxResultOrPromise)) { + // Decrypt final SAMPLE-AES samples + return demuxResultOrPromise.then((demuxResult) => { + this.flushRemux(transmuxResults, demuxResult, chunkMeta); + return transmuxResults; + }); + } + + this.flushRemux(transmuxResults, demuxResultOrPromise, chunkMeta); + return transmuxResults; + } + + private flushRemux(transmuxResults, demuxResult, chunkMeta) { + const { audioTrack, avcTrack, id3Track, textTrack } = demuxResult; + const { accurateTimeOffset, timeOffset } = this.currentTransmuxState; logger.log( `[transmuxer.ts]: Flushed fragment ${chunkMeta.sn}${ chunkMeta.part > -1 ? ' p: ' + chunkMeta.part : '' } of level ${chunkMeta.level}` ); - const remuxResult = remuxer.remux( + const remuxResult = this.remuxer!.remux( audioTrack, avcTrack, id3Track, @@ -270,8 +277,7 @@ export default class Transmuxer { chunkMeta, }); - stats.executeEnd = now(); - return transmuxResults; + chunkMeta.transmuxing.executeEnd = now(); } resetInitialTimestamp(defaultInitPts: number | undefined) { @@ -367,7 +373,6 @@ export default class Transmuxer { }; } - // TODO: Handle flush with Sample-AES private transmuxSampleAes( data: Uint8Array, decryptData: KeyData, @@ -377,8 +382,8 @@ export default class Transmuxer { ): Promise { return (this.demuxer as Demuxer) .demuxSampleAes(data, decryptData, timeOffset) - .then((demuxResult) => ({ - remuxResult: this.remuxer!.remux( + .then((demuxResult) => { + const remuxResult = this.remuxer!.remux( demuxResult.audioTrack, demuxResult.avcTrack, demuxResult.id3Track, @@ -386,9 +391,12 @@ export default class Transmuxer { timeOffset, accurateTimeOffset, false - ), - chunkMeta, - })); + ); + return { + remuxResult, + chunkMeta, + }; + }); } private configureTransmuxer( @@ -447,7 +455,7 @@ export default class Transmuxer { return !this.demuxer || discontinuity || trackSwitch; } - private getDecrypter() { + private getDecrypter(): Decrypter { let decrypter = this.decrypter; if (!decrypter) { decrypter = this.decrypter = new Decrypter(this.observer, this.config); diff --git a/src/demux/tsdemuxer.ts b/src/demux/tsdemuxer.ts index abfc36d8b2f..a31d521680b 100644 --- a/src/demux/tsdemuxer.ts +++ b/src/demux/tsdemuxer.ts @@ -76,7 +76,7 @@ class TSDemuxer implements Demuxer { private readonly config: HlsConfig; private typeSupported: TypeSupported; - private sampleAes: any = null; + private sampleAes: SampleAesDecrypter | null = null; private pmtParsed: boolean = false; private contiguous: boolean = false; private audioCodec!: string; @@ -411,10 +411,10 @@ class TSDemuxer implements Demuxer { }; } - flush() { + flush(): DemuxerResult | Promise { const { remainderData } = this; this.remainderData = null; - let result; + let result: DemuxerResult; if (remainderData) { result = this.demux(remainderData, -1, false, true); } else { @@ -426,6 +426,9 @@ class TSDemuxer implements Demuxer { }; } this.extractRemainingSamples(result); + if (this.sampleAes) { + return this.decrypt(result, this.sampleAes); + } return result; } @@ -484,36 +487,28 @@ class TSDemuxer implements Demuxer { keyData, this.discardEPB )); - return new Promise((resolve) => { - this.decrypt( - demuxResult.audioTrack, - demuxResult.avcTrack, - sampleAes - ).then(() => { - resolve(demuxResult); - }); - }); + return this.decrypt(demuxResult, sampleAes); } decrypt( - audioTrack: DemuxedAudioTrack, - videoTrack: DemuxedVideoTrack, + demuxResult: DemuxerResult, sampleAes: SampleAesDecrypter - ): Promise { + ): Promise { return new Promise((resolve) => { + const { audioTrack, avcTrack } = demuxResult; if (audioTrack.samples && audioTrack.isAAC) { sampleAes.decryptAacSamples(audioTrack.samples, 0, () => { - if (videoTrack.samples) { - sampleAes.decryptAvcSamples(videoTrack.samples, 0, 0, () => { - resolve(); + if (avcTrack.samples) { + sampleAes.decryptAvcSamples(avcTrack.samples, 0, 0, () => { + resolve(demuxResult); }); } else { - resolve(); + resolve(demuxResult); } }); - } else if (videoTrack.samples) { - sampleAes.decryptAvcSamples(videoTrack.samples, 0, 0, () => { - resolve(); + } else if (avcTrack.samples) { + sampleAes.decryptAvcSamples(avcTrack.samples, 0, 0, () => { + resolve(demuxResult); }); } }); diff --git a/src/types/demuxer.ts b/src/types/demuxer.ts index 13c774e647c..f398b3e06d0 100644 --- a/src/types/demuxer.ts +++ b/src/types/demuxer.ts @@ -9,7 +9,7 @@ export interface Demuxer { keyData: KeyData, timeOffset: number ): Promise; - flush(timeOffset?: number): DemuxerResult; + flush(timeOffset?: number): DemuxerResult | Promise; destroy(): void; resetInitSegment( audioCodec: string | undefined, From ba450d26e891818f7bcf3eae82a9c90dd2881764 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Jan 2021 08:53:33 +0000 Subject: [PATCH 006/327] [skip ci]: Bump eslint from 7.17.0 to 7.18.0 Bumps [eslint](https://github.com/eslint/eslint) from 7.17.0 to 7.18.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.17.0...v7.18.0) Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29d5874dd3f..06839d9ba74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1249,9 +1249,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -1261,7 +1261,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -9511,13 +9511,13 @@ } }, "eslint": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz", - "integrity": "sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -9541,7 +9541,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", From 6bdfc42b02b378ebf10a8544e3815dc8b4d6268a Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Mon, 18 Jan 2021 16:03:02 -0500 Subject: [PATCH 007/327] MPEG-TS Demuxer PES timestamp TypeScript cleanup ID3 and MP3 PES with no PTS are dropped. AVC and AVC samples use previous PTS where available/ --- src/demux/sample-aes.ts | 12 +- src/demux/tsdemuxer.ts | 322 ++++++++++++++++++++-------------------- 2 files changed, 166 insertions(+), 168 deletions(-) diff --git a/src/demux/sample-aes.ts b/src/demux/sample-aes.ts index ca3e907c9a2..c8c7f8749d9 100644 --- a/src/demux/sample-aes.ts +++ b/src/demux/sample-aes.ts @@ -12,20 +12,14 @@ import type { DemuxedVideoTrack, KeyData, } from '../types/demuxer'; +import { discardEPB } from './tsdemuxer'; class SampleAesDecrypter { private keyData: KeyData; - private discardEPB: (data: Uint8Array) => Uint8Array; private decrypter: Decrypter; - constructor( - observer: HlsEventEmitter, - config: HlsConfig, - keyData: KeyData, - discardEPB: (data: Uint8Array) => Uint8Array - ) { + constructor(observer: HlsEventEmitter, config: HlsConfig, keyData: KeyData) { this.keyData = keyData; - this.discardEPB = discardEPB; this.decrypter = new Decrypter(observer, config, { removePKCS7Padding: false, }); @@ -144,7 +138,7 @@ class SampleAesDecrypter { curUnit: AvcSampleUnit, sync: boolean ) { - const decodedData = this.discardEPB(curUnit.data); + const decodedData = discardEPB(curUnit.data); const encryptedData = this.getAvcEncryptedData(decodedData); const localthis = this; diff --git a/src/demux/tsdemuxer.ts b/src/demux/tsdemuxer.ts index a31d521680b..ce55aa5097e 100644 --- a/src/demux/tsdemuxer.ts +++ b/src/demux/tsdemuxer.ts @@ -11,13 +11,16 @@ import * as ADTS from './adts'; import * as MpegAudio from './mpegaudio'; -import type { HlsEventEmitter } from '../events'; -import { Events } from '../events'; import ExpGolomb from './exp-golomb'; +import { utf8ArrayToStr } from './id3'; import SampleAesDecrypter from './sample-aes'; +import { Events } from '../events'; +import { appendUint8Array } from '../utils/mp4-tools'; import { logger } from '../utils/logger'; import { ErrorTypes, ErrorDetails } from '../errors'; -import { +import type { HlsConfig } from '../config'; +import type { HlsEventEmitter } from '../events'; +import type { DemuxedAvcTrack, DemuxedAudioTrack, DemuxedTrack, @@ -27,12 +30,8 @@ import { DemuxedMetadataTrack, DemuxedUserdataTrack, ElementaryStreamData, - DemuxedVideoTrack, KeyData, } from '../types/demuxer'; -import { appendUint8Array } from '../utils/mp4-tools'; -import { utf8ArrayToStr } from '../demux/id3'; -import type { HlsConfig } from '../config'; // We are using fixed track IDs for driving the MP4 remuxer // instead of following the TS PIDs. @@ -49,19 +48,17 @@ const RemuxerTrackIdConfig = { text: 4, }; -interface PES { +type ParsedTimestamp = { + pts?: number; + dts?: number; +}; + +type PES = ParsedTimestamp & { data: Uint8Array; - // TODO: `parsePES()` returns `pts` and `dts` as `number | undefined`, - // but most callers assume `pts` and `dts` are `number` and will never - // be undefined. In most cases, this works out, as either the resulting - // calculations end up with NaN and this is detected, or things just - // happen to work out OK, but there could be some exciting bugs hiding - // here in unusual corner cases. For now we define these as `any` - // to prevent tsc from complaining. - pts: any; - dts: any; len: number; -} +}; + +type ParsedAvcSample = ParsedTimestamp & Omit; export interface TypeSupported { mpeg: boolean; @@ -78,7 +75,6 @@ class TSDemuxer implements Demuxer { private sampleAes: SampleAesDecrypter | null = null; private pmtParsed: boolean = false; - private contiguous: boolean = false; private audioCodec!: string; private videoCodec!: string; private _duration: number = 0; @@ -92,7 +88,7 @@ class TSDemuxer implements Demuxer { private _id3Track!: DemuxedMetadataTrack; private _txtTrack!: DemuxedUserdataTrack; private aacOverFlow: Uint8Array | null = null; - private avcSample: AvcSample | null = null; + private avcSample: ParsedAvcSample | null = null; private remainderData: Uint8Array | null = null; constructor( @@ -106,7 +102,7 @@ class TSDemuxer implements Demuxer { } static probe(data: Uint8Array) { - const syncOffset = TSDemuxer._syncOffset(data); + const syncOffset = TSDemuxer.syncOffset(data); if (syncOffset < 0) { return false; } else { @@ -120,7 +116,7 @@ class TSDemuxer implements Demuxer { } } - static _syncOffset(data: Uint8Array) { + static syncOffset(data: Uint8Array) { // scan 1000 first bytes const scanwindow = Math.min(1000, data.length - 3 * 188); let i = 0; @@ -168,7 +164,11 @@ class TSDemuxer implements Demuxer { * Initializes a new init segment on the demuxer/remuxer interface. Needed for discontinuities/track-switches (or at stream start) * Resets all internal track instances of the demuxer. */ - resetInitSegment(audioCodec: string, videoCodec: string, duration: number) { + public resetInitSegment( + audioCodec: string, + videoCodec: string, + duration: number + ) { this.pmtParsed = false; this._pmtId = -1; @@ -199,9 +199,9 @@ class TSDemuxer implements Demuxer { this._duration = duration; } - resetTimeStamp() {} + public resetTimeStamp() {} - resetContiguity(): void { + public resetContiguity(): void { const { _audioTrack, _avcTrack, _id3Track } = this; if (_audioTrack) { _audioTrack.pesData = null; @@ -216,7 +216,7 @@ class TSDemuxer implements Demuxer { this.aacLastPTS = null; } - demux( + public demux( data: Uint8Array, timeOffset: number, isSampleAes = false, @@ -259,7 +259,7 @@ class TSDemuxer implements Demuxer { }; } - const syncOffset = Math.max(0, TSDemuxer._syncOffset(data)); + const syncOffset = Math.max(0, TSDemuxer.syncOffset(data)); len -= (len + syncOffset) % 188; if (len < data.byteLength && !flush) { @@ -293,7 +293,7 @@ class TSDemuxer implements Demuxer { case avcId: if (stt) { if (avcData && (pes = parsePES(avcData))) { - this._parseAVCPES(pes, false); + this.parseAVCPES(pes, false); } avcData = { data: [], size: 0 }; @@ -307,9 +307,9 @@ class TSDemuxer implements Demuxer { if (stt) { if (audioData && (pes = parsePES(audioData))) { if (audioTrack.isAAC) { - this._parseAACPES(pes); + this.parseAACPES(pes); } else { - this._parseMPEGPES(pes); + this.parseMPEGPES(pes); } } audioData = { data: [], size: 0 }; @@ -322,7 +322,7 @@ class TSDemuxer implements Demuxer { case id3Id: if (stt) { if (id3Data && (pes = parsePES(id3Data))) { - this._parseID3PES(pes); + this.parseID3PES(pes); } id3Data = { data: [], size: 0 }; @@ -411,7 +411,7 @@ class TSDemuxer implements Demuxer { }; } - flush(): DemuxerResult | Promise { + public flush(): DemuxerResult | Promise { const { remainderData } = this; this.remainderData = null; let result: DemuxerResult; @@ -440,7 +440,7 @@ class TSDemuxer implements Demuxer { // try to parse last PES packets let pes: PES | null; if (avcData && (pes = parsePES(avcData))) { - this._parseAVCPES(pes, true); + this.parseAVCPES(pes, true); avcTrack.pesData = null; } else { // either avcData null or PES truncated, keep it for next frag parsing @@ -449,9 +449,9 @@ class TSDemuxer implements Demuxer { if (audioData && (pes = parsePES(audioData))) { if (audioTrack.isAAC) { - this._parseAACPES(pes); + this.parseAACPES(pes); } else { - this._parseMPEGPES(pes); + this.parseMPEGPES(pes); } audioTrack.pesData = null; @@ -467,7 +467,7 @@ class TSDemuxer implements Demuxer { } if (id3Data && (pes = parsePES(id3Data))) { - this._parseID3PES(pes); + this.parseID3PES(pes); id3Track.pesData = null; } else { // either id3Data null or PES truncated, keep it for next frag parsing @@ -475,7 +475,7 @@ class TSDemuxer implements Demuxer { } } - demuxSampleAes( + public demuxSampleAes( data: Uint8Array, keyData: KeyData, timeOffset: number @@ -484,13 +484,12 @@ class TSDemuxer implements Demuxer { const sampleAes = (this.sampleAes = new SampleAesDecrypter( this.observer, this.config, - keyData, - this.discardEPB + keyData )); return this.decrypt(demuxResult, sampleAes); } - decrypt( + private decrypt( demuxResult: DemuxerResult, sampleAes: SampleAesDecrypter ): Promise { @@ -514,43 +513,18 @@ class TSDemuxer implements Demuxer { }); } - destroy() { + public destroy() { this._initPTS = this._initDTS = null; this._duration = 0; } - pushAccessUnit(avcSample, avcTrack) { - if (avcSample.units.length && avcSample.frame) { - // if sample does not have PTS/DTS, patch with last sample PTS/DTS - if (isNaN(avcSample.pts)) { - const samples = avcTrack.samples; - const nbSamples = samples.length; - if (nbSamples) { - const lastSample = samples[nbSamples - 1]; - avcSample.pts = lastSample.pts; - avcSample.dts = lastSample.dts; - } else { - // dropping samples, no timestamp found - avcTrack.dropped++; - return; - } - } - avcTrack.samples.push(avcSample); - } - if (avcSample.debug.length) { - logger.log(avcSample.pts + '/' + avcSample.dts + ':' + avcSample.debug); - } - } - - _parseAVCPES(pes: PES, last: boolean) { - // logger.log('parse new PES'); + private parseAVCPES(pes: PES, last: boolean) { const track = this._avcTrack; - const units = this._parseAVCNALu(pes.data); + const units = this.parseAVCNALu(pes.data); const debug = false; let avcSample = this.avcSample; let push: boolean; let spsfound = false; - const pushAccessUnit = this.pushAccessUnit.bind(this); // free pes.data to save up some memory (pes as any).data = null; @@ -628,7 +602,7 @@ class TSDemuxer implements Demuxer { avcSample.debug += 'SEI '; } - const expGolombDecoder = new ExpGolomb(this.discardEPB(unit.data)); + const expGolombDecoder = new ExpGolomb(discardEPB(unit.data)); // skip frameType expGolombDecoder.readUByte(); @@ -683,7 +657,7 @@ class TSDemuxer implements Demuxer { byteArray.push(expGolombDecoder.readUByte()); } - this._insertSampleInOrder(this._txtTrack.samples, { + insertSampleInOrder(this._txtTrack.samples, { type: 3, pts: pes.pts, bytes: byteArray, @@ -713,7 +687,7 @@ class TSDemuxer implements Demuxer { userDataPayloadBytes[i] = expGolombDecoder.readUByte(); } - this._insertSampleInOrder(this._txtTrack.samples, { + insertSampleInOrder(this._txtTrack.samples, { pts: pes.pts, payloadType: payloadType, uuid: uuidStrArray.join(''), @@ -811,25 +785,7 @@ class TSDemuxer implements Demuxer { } } - _insertSampleInOrder(arr, data) { - const len = arr.length; - if (len > 0) { - if (data.pts >= arr[len - 1].pts) { - arr.push(data); - } else { - for (let pos = len - 1; pos >= 0; pos--) { - if (data.pts < arr[pos].pts) { - arr.splice(pos, 0, data); - break; - } - } - } - } else { - arr.push(data); - } - } - - _getLastNalUnit() { + private getLastNalUnit() { let avcSample = this.avcSample; let lastUnit; // try to fallback to previous sample if current one is empty @@ -844,7 +800,7 @@ class TSDemuxer implements Demuxer { return lastUnit; } - _parseAVCNALu( + private parseAVCNALu( array: Uint8Array ): Array<{ data: Uint8Array; @@ -904,7 +860,7 @@ class TSDemuxer implements Demuxer { // first check if start code delimiter is overlapping between 2 PES packets, // ie it started in last packet (lastState not zero) // and ended at the beginning of this PES packet (i <= 4 - lastState) - const lastUnit = this._getLastNalUnit(); + const lastUnit = this.getLastNalUnit(); if (lastUnit) { if (lastState && i <= 4 - lastState) { // start delimiter overlapping between PES packets @@ -956,7 +912,7 @@ class TSDemuxer implements Demuxer { // no NALu found if (units.length === 0) { // append pes.data to previous NAL unit - const lastUnit = this._getLastNalUnit(); + const lastUnit = this.getLastNalUnit(); if (lastUnit) { const tmp = new Uint8Array(lastUnit.data.byteLength + array.byteLength); tmp.set(lastUnit.data, 0); @@ -968,58 +924,12 @@ class TSDemuxer implements Demuxer { return units; } - /** - * remove Emulation Prevention bytes from a RBSP - */ - discardEPB(data: Uint8Array): Uint8Array { - const length = data.byteLength; - const EPBPositions = [] as Array; - let i = 1; - - // Find all `Emulation Prevention Bytes` - while (i < length - 2) { - if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0x03) { - EPBPositions.push(i + 2); - i += 2; - } else { - i++; - } - } - - // If no Emulation Prevention Bytes were found just return the original - // array - if (EPBPositions.length === 0) { - return data; - } - - // Create a new array to hold the NAL unit data - const newLength = length - EPBPositions.length; - const newData = new Uint8Array(newLength); - let sourceIndex = 0; - - for (i = 0; i < newLength; sourceIndex++, i++) { - if (sourceIndex === EPBPositions[0]) { - // Skip this byte - sourceIndex++; - // Remove this position index - EPBPositions.shift(); - } - newData[i] = data[sourceIndex]; - } - return newData; - } - - _parseAACPES(pes: PES) { + private parseAACPES(pes: PES) { const startOffset = 0; const track = this._audioTrack; const aacLastPTS = this.aacLastPTS; - let aacOverFlow = this.aacOverFlow; + const aacOverFlow = this.aacOverFlow; let data = pes.data; - let pts = pes.pts; - let frameIndex; - let offset; - let stamp; - let len; if (aacOverFlow) { const tmp = new Uint8Array(aacOverFlow.byteLength + data.byteLength); tmp.set(aacOverFlow, 0); @@ -1028,6 +938,8 @@ class TSDemuxer implements Demuxer { data = tmp; } // look for ADTS header (0xFFFx) + let offset: number; + let len: number; for (offset = startOffset, len = data.length; offset < len - 1; offset++) { if (ADTS.isHeader(data, offset)) { break; @@ -1058,14 +970,23 @@ class TSDemuxer implements Demuxer { ADTS.initTrackConfig(track, this.observer, data, offset, this.audioCodec); - frameIndex = 0; + let frameIndex = 0; const frameDuration = ADTS.getFrameDuration(track.samplerate as number); // if last AAC frame is overflowing, we should ensure timestamps are contiguous: // first sample PTS should be equal to last sample PTS + frameDuration - if (aacOverFlow && aacLastPTS) { + let pts: number; + if (pes.pts !== undefined) { + pts = pes.pts; + } else if (aacLastPTS !== null) { + pts = aacLastPTS; + } else { + logger.warn('[tsdemuxer]: AAC PES unknown PTS'); + return; + } + if (aacOverFlow && aacLastPTS !== null) { const newPTS = aacLastPTS + frameDuration; - if (pts !== undefined && Math.abs(newPTS - pts) > 1) { + if (Math.abs(newPTS - pts) > 1) { logger.log( `[tsdemuxer]: AAC: align PTS for overlapping frames by ${Math.round( (newPTS - pts) / 90 @@ -1076,6 +997,7 @@ class TSDemuxer implements Demuxer { } // scan for aac samples + let stamp: number | null = null; while (offset < len) { if (ADTS.isHeader(data, offset)) { if (offset + 5 < len) { @@ -1096,23 +1018,20 @@ class TSDemuxer implements Demuxer { } } - if (offset < len) { - aacOverFlow = data.subarray(offset, len); - // logger.log(`AAC: overflow detected:${len-offset}`); - } else { - aacOverFlow = null; - } - - this.aacOverFlow = aacOverFlow; + this.aacOverFlow = offset < len ? data.subarray(offset, len) : null; this.aacLastPTS = stamp; } - _parseMPEGPES(pes: PES) { + private parseMPEGPES(pes: PES) { const data = pes.data; const length = data.length; let frameIndex = 0; let offset = 0; const pts = pes.pts; + if (pts === undefined) { + logger.warn('[tsdemuxer]: MPEG PES unknown PTS'); + return; + } while (offset < length) { if (MpegAudio.isHeader(data, offset)) { @@ -1137,17 +1056,21 @@ class TSDemuxer implements Demuxer { } } - _parseID3PES(pes: PES) { - this._id3Track.samples.push(pes); + private parseID3PES(pes: PES) { + if (pes.pts === undefined) { + logger.warn('[tsdemuxer]: ID3 PES unknown PTS'); + return; + } + this._id3Track.samples.push(pes as Required); } } function createAVCSample( key: boolean, - pts: number, - dts: number, + pts: number | undefined, + dts: number | undefined, debug: string -): AvcSample { +): ParsedAvcSample { return { key, frame: false, @@ -1345,9 +1268,90 @@ function parsePES(stream: ElementaryStreamData): PES | null { pesLen -= pesHdrLen + 3; } return { data: pesData, pts: pesPts, dts: pesDts, len: pesLen }; + } + return null; +} + +function pushAccessUnit(avcSample: ParsedAvcSample, avcTrack: DemuxedAvcTrack) { + if (avcSample.units.length && avcSample.frame) { + // if sample does not have PTS/DTS, patch with last sample PTS/DTS + if (avcSample.pts === undefined) { + const samples = avcTrack.samples; + const nbSamples = samples.length; + if (nbSamples) { + const lastSample = samples[nbSamples - 1]; + avcSample.pts = lastSample.pts; + avcSample.dts = lastSample.dts; + } else { + // dropping samples, no timestamp found + avcTrack.dropped++; + return; + } + } + avcTrack.samples.push(avcSample as AvcSample); + } + if (avcSample.debug.length) { + logger.log(avcSample.pts + '/' + avcSample.dts + ':' + avcSample.debug); + } +} + +function insertSampleInOrder(arr, data) { + const len = arr.length; + if (len > 0) { + if (data.pts >= arr[len - 1].pts) { + arr.push(data); + } else { + for (let pos = len - 1; pos >= 0; pos--) { + if (data.pts < arr[pos].pts) { + arr.splice(pos, 0, data); + break; + } + } + } } else { - return null; + arr.push(data); + } +} + +/** + * remove Emulation Prevention bytes from a RBSP + */ +export function discardEPB(data: Uint8Array): Uint8Array { + const length = data.byteLength; + const EPBPositions = [] as Array; + let i = 1; + + // Find all `Emulation Prevention Bytes` + while (i < length - 2) { + if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0x03) { + EPBPositions.push(i + 2); + i += 2; + } else { + i++; + } + } + + // If no Emulation Prevention Bytes were found just return the original + // array + if (EPBPositions.length === 0) { + return data; + } + + // Create a new array to hold the NAL unit data + const newLength = length - EPBPositions.length; + const newData = new Uint8Array(newLength); + let sourceIndex = 0; + + for (i = 0; i < newLength; sourceIndex++, i++) { + if (sourceIndex === EPBPositions[0]) { + // Skip this byte + sourceIndex++; + // Remove this position index + EPBPositions.shift(); + } + newData[i] = data[sourceIndex]; } + return newData; } export default TSDemuxer; From cef3bd732653e6afbdda27b2b4e6ccdcd89282c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jan 2021 06:33:06 +0000 Subject: [PATCH 008/327] [skip ci]: Bump chromedriver from 87.0.5 to 87.0.7 Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from 87.0.5 to 87.0.7. - [Release notes](https://github.com/giggio/node-chromedriver/releases) - [Commits](https://github.com/giggio/node-chromedriver/compare/87.0.5...87.0.7) Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 06839d9ba74..e4f2e44d8c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6542,13 +6542,13 @@ } }, "chromedriver": { - "version": "87.0.5", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-87.0.5.tgz", - "integrity": "sha512-bWAKdZANrt3LXMUOKFP+DgW7DjVKfihCbjej6URkUcKsvbQBDYpf5YY5d/dXE3SOSzIFZ7fmLxogusxpsupCJg==", + "version": "87.0.7", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-87.0.7.tgz", + "integrity": "sha512-7J7iN2rJuSDsKb9BUUMewJt07PuTlZYd809D10dUCT1rjMD3i2jUw7dum9RxdC1xO3aFwMd8TwZ5NR82T+S+Dg==", "dev": true, "requires": { "@testim/chrome-version": "^1.0.7", - "axios": "^0.21.0", + "axios": "^0.21.1", "del": "^6.0.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.0", From f7d79886ba01bbd80c631ac8160cbf0d009061bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jan 2021 07:28:24 +0000 Subject: [PATCH 009/327] [skip ci]: Bump eslint-config-prettier from 7.1.0 to 7.2.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 7.1.0 to 7.2.0. - [Release notes](https://github.com/prettier/eslint-config-prettier/releases) - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v7.1.0...v7.2.0) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e4f2e44d8c4..099be74e678 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9678,9 +9678,9 @@ } }, "eslint-config-prettier": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz", - "integrity": "sha512-9sm5/PxaFG7qNJvJzTROMM1Bk1ozXVTKI0buKOyb0Bsr1hrwi0H/TzxF/COtf1uxikIK8SwhX7K6zg78jAzbeA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", + "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", "dev": true }, "eslint-import-resolver-node": { From 51a3e7ff49a9ad5c02cf09744adde2ba6922aa39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jan 2021 07:52:27 +0000 Subject: [PATCH 010/327] [skip ci]: Bump @typescript-eslint/parser from 4.13.0 to 4.14.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.13.0 to 4.14.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.14.0/packages/parser) Signed-off-by: dependabot[bot] --- package-lock.json | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 099be74e678..d2c0d806c01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4466,41 +4466,41 @@ } }, "@typescript-eslint/parser": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.13.0.tgz", - "integrity": "sha512-KO0J5SRF08pMXzq9+abyHnaGQgUJZ3Z3ax+pmqz9vl81JxmTTOUfQmq7/4awVfq09b6C4owNlOgOwp61pYRBSg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.0.tgz", + "integrity": "sha512-sUDeuCjBU+ZF3Lzw0hphTyScmDDJ5QVkyE21pRoBo8iDl7WBtVFS+WDN3blY1CH3SBt7EmYCw6wfmJjF0l/uYg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.13.0", - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/typescript-estree": "4.13.0", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", "debug": "^4.1.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.13.0.tgz", - "integrity": "sha512-UpK7YLG2JlTp/9G4CHe7GxOwd93RBf3aHO5L+pfjIrhtBvZjHKbMhBXTIQNkbz7HZ9XOe++yKrXutYm5KmjWgQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.0.tgz", + "integrity": "sha512-/J+LlRMdbPh4RdL4hfP1eCwHN5bAhFAGOTsvE6SxsrM/47XQiPSgF5MDgLyp/i9kbZV9Lx80DW0OpPkzL+uf8Q==", "dev": true, "requires": { - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/visitor-keys": "4.13.0" + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0" } }, "@typescript-eslint/types": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.13.0.tgz", - "integrity": "sha512-/+aPaq163oX+ObOG00M0t9tKkOgdv9lq0IQv/y4SqGkAXmhFmCfgsELV7kOCTb2vVU5VOmVwXBXJTDr353C1rQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.0.tgz", + "integrity": "sha512-VsQE4VvpldHrTFuVPY1ZnHn/Txw6cZGjL48e+iBxTi2ksa9DmebKjAeFmTVAYoSkTk7gjA7UqJ7pIsyifTsI4A==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.13.0.tgz", - "integrity": "sha512-9A0/DFZZLlGXn5XA349dWQFwPZxcyYyCFX5X88nWs2uachRDwGeyPz46oTsm9ZJE66EALvEns1lvBwa4d9QxMg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.0.tgz", + "integrity": "sha512-wRjZ5qLao+bvS2F7pX4qi2oLcOONIB+ru8RGBieDptq/SudYwshveORwCVU4/yMAd4GK7Fsf8Uq1tjV838erag==", "dev": true, "requires": { - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/visitor-keys": "4.13.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -4510,12 +4510,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.13.0.tgz", - "integrity": "sha512-6RoxWK05PAibukE7jElqAtNMq+RWZyqJ6Q/GdIxaiUj2Ept8jh8+FUVlbq9WxMYxkmEOPvCE5cRSyupMpwW31g==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.0.tgz", + "integrity": "sha512-MeHHzUyRI50DuiPgV9+LxcM52FCJFYjJiWHtXlbyC27b80mfOwKeiKI+MHOTEpcpfmoPFm/vvQS88bYIx6PZTA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.13.0", + "@typescript-eslint/types": "4.14.0", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { From d3bf3fd7af17dbabfd7646597b1ab019b7850902 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jan 2021 08:23:28 +0000 Subject: [PATCH 011/327] [skip ci]: Bump @typescript-eslint/eslint-plugin from 4.13.0 to 4.14.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.13.0 to 4.14.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.14.0/packages/eslint-plugin) Signed-off-by: dependabot[bot] --- package-lock.json | 106 +++++----------------------------------------- 1 file changed, 11 insertions(+), 95 deletions(-) diff --git a/package-lock.json b/package-lock.json index d2c0d806c01..f41321b83a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4352,117 +4352,33 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.13.0.tgz", - "integrity": "sha512-ygqDUm+BUPvrr0jrXqoteMqmIaZ/bixYOc3A4BRwzEPTZPi6E+n44rzNZWaB0YvtukgP+aoj0i/fyx7FkM2p1w==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.0.tgz", + "integrity": "sha512-IJ5e2W7uFNfg4qh9eHkHRUCbgZ8VKtGwD07kannJvM5t/GU8P8+24NX8gi3Hf5jST5oWPY8kyV1s/WtfiZ4+Ww==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.13.0", - "@typescript-eslint/scope-manager": "4.13.0", + "@typescript-eslint/experimental-utils": "4.14.0", + "@typescript-eslint/scope-manager": "4.14.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", "regexpp": "^3.0.0", "semver": "^7.3.2", "tsutils": "^3.17.1" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.13.0.tgz", - "integrity": "sha512-UpK7YLG2JlTp/9G4CHe7GxOwd93RBf3aHO5L+pfjIrhtBvZjHKbMhBXTIQNkbz7HZ9XOe++yKrXutYm5KmjWgQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/visitor-keys": "4.13.0" - } - }, - "@typescript-eslint/types": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.13.0.tgz", - "integrity": "sha512-/+aPaq163oX+ObOG00M0t9tKkOgdv9lq0IQv/y4SqGkAXmhFmCfgsELV7kOCTb2vVU5VOmVwXBXJTDr353C1rQ==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.13.0.tgz", - "integrity": "sha512-6RoxWK05PAibukE7jElqAtNMq+RWZyqJ6Q/GdIxaiUj2Ept8jh8+FUVlbq9WxMYxkmEOPvCE5cRSyupMpwW31g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.13.0", - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - } } }, "@typescript-eslint/experimental-utils": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.13.0.tgz", - "integrity": "sha512-/ZsuWmqagOzNkx30VWYV3MNB/Re/CGv/7EzlqZo5RegBN8tMuPaBgNK6vPBCQA8tcYrbsrTdbx3ixMRRKEEGVw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.0.tgz", + "integrity": "sha512-6i6eAoiPlXMKRbXzvoQD5Yn9L7k9ezzGRvzC/x1V3650rUk3c3AOjQyGYyF9BDxQQDK2ElmKOZRD0CbtdkMzQQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.13.0", - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/typescript-estree": "4.13.0", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.13.0.tgz", - "integrity": "sha512-UpK7YLG2JlTp/9G4CHe7GxOwd93RBf3aHO5L+pfjIrhtBvZjHKbMhBXTIQNkbz7HZ9XOe++yKrXutYm5KmjWgQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/visitor-keys": "4.13.0" - } - }, - "@typescript-eslint/types": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.13.0.tgz", - "integrity": "sha512-/+aPaq163oX+ObOG00M0t9tKkOgdv9lq0IQv/y4SqGkAXmhFmCfgsELV7kOCTb2vVU5VOmVwXBXJTDr353C1rQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.13.0.tgz", - "integrity": "sha512-9A0/DFZZLlGXn5XA349dWQFwPZxcyYyCFX5X88nWs2uachRDwGeyPz46oTsm9ZJE66EALvEns1lvBwa4d9QxMg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/visitor-keys": "4.13.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.13.0.tgz", - "integrity": "sha512-6RoxWK05PAibukE7jElqAtNMq+RWZyqJ6Q/GdIxaiUj2Ept8jh8+FUVlbq9WxMYxkmEOPvCE5cRSyupMpwW31g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.13.0", - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - } } }, "@typescript-eslint/parser": { From b51643701cf79169d42132d7965c100b8c8268de Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Tue, 19 Jan 2021 15:24:17 -0500 Subject: [PATCH 012/327] Escalate level-contoller error to fatal when level was removed --- src/controller/level-controller.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/controller/level-controller.ts b/src/controller/level-controller.ts index 82074494179..12b4c4a1e1f 100644 --- a/src/controller/level-controller.ts +++ b/src/controller/level-controller.ts @@ -352,6 +352,10 @@ export default class LevelController extends BasePlaylistController { } if (levelIndex !== undefined) { + if (!this._levels[levelIndex]) { + data.fatal = true; + return; + } this.recoverLevel( data, levelIndex, From 8a822ec0a9fb789909599823384b4479df61e7fd Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Thu, 21 Jan 2021 20:28:13 -0500 Subject: [PATCH 013/327] Allow fragment loading error retries to run before level recovery. If level recovery fails for all levels then make frag fragment loading error fatal. Fixes #3381 --- src/controller/audio-stream-controller.ts | 5 ++ src/controller/base-stream-controller.ts | 4 +- src/controller/level-controller.ts | 71 +++++++++-------------- src/controller/stream-controller.ts | 6 ++ src/types/level.ts | 2 +- tests/unit/controller/level-controller.js | 2 +- 6 files changed, 44 insertions(+), 46 deletions(-) diff --git a/src/controller/audio-stream-controller.ts b/src/controller/audio-stream-controller.ts index 5cc71ff810f..a0b02ab455c 100644 --- a/src/controller/audio-stream-controller.ts +++ b/src/controller/audio-stream-controller.ts @@ -633,6 +633,11 @@ class AudioStreamController this.retryDate = performance.now() + delay; // retry loading state this.state = State.FRAG_LOADING_WAITING_RETRY; + } else if (data.levelRetry) { + // Fragment errors that result in a level switch or redundant fail-over + // should reset the audio stream controller state to idle + this.fragLoadError = 0; + this.state = State.IDLE; } else { logger.error( `${data.details} reaches max retry, redispatch as fatal ...` diff --git a/src/controller/base-stream-controller.ts b/src/controller/base-stream-controller.ts index 05054c581a7..747ae01f8e1 100644 --- a/src/controller/base-stream-controller.ts +++ b/src/controller/base-stream-controller.ts @@ -298,11 +298,11 @@ export default class BaseStreamController targetBufferTime, progressCallback ).then((data) => { - this.fragLoadError = 0; if (!data) { // if we're here we probably needed to backtrack or are waiting for more parts return; } + this.fragLoadError = 0; if (this.fragContextChanged(frag)) { if ( this.state === State.FRAG_LOADING || @@ -1080,7 +1080,7 @@ export default class BaseStreamController const previousState = this._state; if (previousState !== nextState) { this._state = nextState; - // this.log(`${previousState}->${nextState}`); + this.log(`${previousState}->${nextState}`); } } diff --git a/src/controller/level-controller.ts b/src/controller/level-controller.ts index 12b4c4a1e1f..3b802eeb74f 100644 --- a/src/controller/level-controller.ts +++ b/src/controller/level-controller.ts @@ -317,7 +317,6 @@ export default class LevelController extends BasePlaylistController { } let levelError = false; - let fragmentError = false; let levelSwitch = true; let levelIndex; @@ -327,11 +326,18 @@ export default class LevelController extends BasePlaylistController { case ErrorDetails.FRAG_LOAD_TIMEOUT: case ErrorDetails.KEY_LOAD_ERROR: case ErrorDetails.KEY_LOAD_TIMEOUT: - // FIXME: What distinguishes these fragment events from level or track fragments? - // We shouldn't recover a level if the fragment or key is for a media track - console.assert(data.frag, 'Event has a fragment defined.'); - levelIndex = (data.frag as Fragment).level; - fragmentError = true; + if (data.frag) { + const level = this._levels[data.frag.level]; + // Set levelIndex when we're out of fragment retries + if (level) { + level.fragmentError++; + if (level.fragmentError > this.hls.config.fragLoadingMaxRetry) { + levelIndex = data.frag.level; + } + } else { + levelIndex = data.frag.level; + } + } break; case ErrorDetails.LEVEL_LOAD_ERROR: case ErrorDetails.LEVEL_LOAD_TIMEOUT: @@ -352,17 +358,7 @@ export default class LevelController extends BasePlaylistController { } if (levelIndex !== undefined) { - if (!this._levels[levelIndex]) { - data.fatal = true; - return; - } - this.recoverLevel( - data, - levelIndex, - levelError, - fragmentError, - levelSwitch - ); + this.recoverLevel(data, levelIndex, levelError, levelSwitch); } } @@ -374,14 +370,12 @@ export default class LevelController extends BasePlaylistController { errorEvent: ErrorData, levelIndex: number, levelError: boolean, - fragmentError: boolean, levelSwitch: boolean ): void { const { details: errorDetails } = errorEvent; const level = this._levels[levelIndex]; level.loadError++; - level.fragmentError = fragmentError; if (levelError) { const retrying = this.retryLoadingOrFail(errorEvent); @@ -394,30 +388,23 @@ export default class LevelController extends BasePlaylistController { } } - // Try any redundant streams if available for both errors: level and fragment - // If level.loadError reaches redundantLevels it means that we tried them all, no hope => let's switch down - if (levelSwitch && (levelError || fragmentError)) { + if (levelSwitch) { const redundantLevels = level.url.length; - + // Try redundant fail-over until level.loadError reaches redundantLevels if (redundantLevels > 1 && level.loadError < redundantLevels) { + errorEvent.levelRetry = true; this.redundantFailover(levelIndex); - } else { - // Search for available level - if (this.manualLevelIndex === -1) { - // When lowest level has been reached, let's start hunt from the top - const nextLevel = - levelIndex === 0 ? this._levels.length - 1 : levelIndex - 1; - if (this.currentLevelIndex !== nextLevel) { - fragmentError = false; - this.warn(`${errorDetails}: switch to ${nextLevel}`); - this.hls.nextAutoLevel = this.currentLevelIndex = nextLevel; - } - } - if (fragmentError) { - // Allow fragment retry as long as configuration allows. - // reset this._level so that another call to set level() will trigger again a frag load - this.warn(`${errorDetails}: reload a fragment`); - this.currentLevelIndex = -1; + } else if (this.manualLevelIndex === -1) { + // Search for available level in auto level selection mode, cycling from highest to lowest bitrate + const nextLevel = + levelIndex === 0 ? this._levels.length - 1 : levelIndex - 1; + if ( + this.currentLevelIndex !== nextLevel && + this._levels[nextLevel].loadError === 0 + ) { + this.warn(`${errorDetails}: switch to ${nextLevel}`); + errorEvent.levelRetry = true; + this.hls.nextAutoLevel = nextLevel; } } } @@ -442,7 +429,7 @@ export default class LevelController extends BasePlaylistController { if (frag !== undefined && frag.type === 'main') { const level = this._levels[frag.level]; if (level !== undefined) { - level.fragmentError = false; + level.fragmentError = 0; level.loadError = 0; } } @@ -463,7 +450,7 @@ export default class LevelController extends BasePlaylistController { // only process level loaded events matching with expected level if (level === this.currentLevelIndex) { // reset level load error counter on successful level loaded only if there is no issues with fragments - if (!curLevel.fragmentError) { + if (curLevel.fragmentError === 0) { curLevel.loadError = 0; this.retryCount = 0; } diff --git a/src/controller/stream-controller.ts b/src/controller/stream-controller.ts index cea86fcc1fb..02c0a1c35af 100644 --- a/src/controller/stream-controller.ts +++ b/src/controller/stream-controller.ts @@ -887,12 +887,18 @@ export default class StreamController } this.fragLoadError++; this.state = State.FRAG_LOADING_WAITING_RETRY; + } else if (data.levelRetry) { + // Fragment errors that result in a level switch or redundant fail-over + // should reset the stream controller state to idle + this.fragLoadError = 0; + this.state = State.IDLE; } else { logger.error( `[stream-controller]: ${data.details} reaches max retry, redispatch as fatal ...` ); // switch error to fatal data.fatal = true; + this.hls.stopLoad(); this.state = State.ERROR; } } diff --git a/src/types/level.ts b/src/types/level.ts index f4f58c852b9..1b664d57b6f 100644 --- a/src/types/level.ts +++ b/src/types/level.ts @@ -95,7 +95,7 @@ export class Level { public readonly unknownCodecs: string[] | undefined; public audioGroupIds?: string[]; public details?: LevelDetails; - public fragmentError: boolean = false; + public fragmentError: number = 0; public loadError: number = 0; public loaded?: { bytes: number; duration: number }; public realBitrate: number = 0; diff --git a/tests/unit/controller/level-controller.js b/tests/unit/controller/level-controller.js index f48edcecb0d..69113ce7f31 100644 --- a/tests/unit/controller/level-controller.js +++ b/tests/unit/controller/level-controller.js @@ -82,7 +82,7 @@ describe('LevelController', function () { bitrate: 246440, codecSet: '', details: data.levels[1].details, - fragmentError: false, + fragmentError: 0, height: 0, id: 2, level: 1, From c333115cd6f62730a9f9f49be2f03246d1a6cc21 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Fri, 22 Jan 2021 10:58:47 -0500 Subject: [PATCH 014/327] Fix audio-stream-controller error event handler, and handling of fragment retries --- src/controller/audio-stream-controller.ts | 60 ++++++++++------------- src/controller/base-stream-controller.ts | 12 +++++ src/controller/stream-controller.ts | 53 +++++++++----------- 3 files changed, 61 insertions(+), 64 deletions(-) diff --git a/src/controller/audio-stream-controller.ts b/src/controller/audio-stream-controller.ts index a0b02ab455c..a954d87dce0 100644 --- a/src/controller/audio-stream-controller.ts +++ b/src/controller/audio-stream-controller.ts @@ -34,6 +34,7 @@ import type { FragParsingUserdataData, FragBufferedData, } from '../types/events'; +import type { ErrorData } from '../types/events'; const TICK_INTERVAL = 100; // how often to tick in ms @@ -556,7 +557,7 @@ class AudioStreamController super._handleFragmentLoadComplete(fragLoadedData); } - onBufferReset() { + onBufferReset(/* event: Events.BUFFER_RESET */) { // reset reference to sourcebuffers this.mediaBuffer = this.videoBuffer = null; this.loadedmetadata = false; @@ -597,43 +598,40 @@ class AudioStreamController this.fragBufferedComplete(frag, part); } - onError(data) { - const frag = data.frag; - // don't handle frag error not related to audio fragment - if (frag && frag.type !== 'audio') { - return; - } - + private onError(event: Events.ERROR, data: ErrorData) { switch (data.details) { case ErrorDetails.FRAG_LOAD_ERROR: - case ErrorDetails.FRAG_LOAD_TIMEOUT: { - const frag = data.frag; - // don't handle frag error not related to audio fragment - if (frag && frag.type !== 'audio') { - break; - } - + case ErrorDetails.FRAG_LOAD_TIMEOUT: + case ErrorDetails.KEY_LOAD_ERROR: + case ErrorDetails.KEY_LOAD_TIMEOUT: { if (!data.fatal) { - let loadError = this.fragLoadError; - if (loadError) { - loadError++; - } else { - loadError = 1; + const frag = data.frag; + const fragCurrent = this.fragCurrent; + // don't handle frag error not related to audio fragment + if (!frag || frag.type !== 'audio') { + break; } - + console.assert( + fragCurrent && + frag.sn === fragCurrent.sn && + frag.level === fragCurrent.level && + frag.urlId === fragCurrent.urlId, + 'Frag load error must match current frag to retry' + ); const config = this.config; - if (loadError <= config.fragLoadingMaxRetry) { - this.fragLoadError = loadError; + if (this.fragLoadError + 1 <= this.config.fragLoadingMaxRetry) { // exponential backoff capped to config.fragLoadingMaxRetryTimeout const delay = Math.min( - Math.pow(2, loadError - 1) * config.fragLoadingRetryDelay, + Math.pow(2, this.fragLoadError) * config.fragLoadingRetryDelay, config.fragLoadingMaxRetryTimeout ); this.warn(`Frag loading failed, retry in ${delay} ms`); this.retryDate = performance.now() + delay; - // retry loading state + this.fragLoadError++; this.state = State.FRAG_LOADING_WAITING_RETRY; } else if (data.levelRetry) { + // Reset current fragment since audio track audio is essential and may not have a fail-over track + this.fragCurrent = null; // Fragment errors that result in a level switch or redundant fail-over // should reset the audio stream controller state to idle this.fragLoadError = 0; @@ -644,6 +642,7 @@ class AudioStreamController ); // switch error to fatal data.fatal = true; + this.hls.stopLoad(); this.state = State.ERROR; } } @@ -651,8 +650,6 @@ class AudioStreamController } case ErrorDetails.AUDIO_TRACK_LOAD_ERROR: case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT: - case ErrorDetails.KEY_LOAD_ERROR: - case ErrorDetails.KEY_LOAD_TIMEOUT: // when in ERROR state, don't switch back to IDLE state in case a non-fatal error is received if (this.state !== State.ERROR && this.state !== State.STOPPED) { // if fatal error, stop processing, otherwise move to IDLE to retry loading @@ -676,14 +673,7 @@ class AudioStreamController BufferHelper.isBuffered(media, currentTime + 0.5); // reduce max buf len if current position is buffered if (mediaBuffered) { - const config = this.config; - if (config.maxMaxBufferLength >= config.maxBufferLength) { - // reduce max buffer length as it might be too high. we do this to avoid loop flushing ... - config.maxMaxBufferLength /= 2; - this.warn( - `Reduce max buffer length to ${config.maxMaxBufferLength}s` - ); - } + this.reduceMaxBufferLength(); this.state = State.IDLE; } else { // current position is not buffered, but browser is still complaining about buffer full error diff --git a/src/controller/base-stream-controller.ts b/src/controller/base-stream-controller.ts index 747ae01f8e1..50cd2b1abb6 100644 --- a/src/controller/base-stream-controller.ts +++ b/src/controller/base-stream-controller.ts @@ -674,6 +674,18 @@ export default class BaseStreamController } } + protected reduceMaxBufferLength(threshold?: number) { + const config = this.config; + const minLength = threshold || config.maxBufferLength; + if (config.maxMaxBufferLength >= minLength) { + // reduce max buffer length as it might be too high. we do this to avoid loop flushing ... + config.maxMaxBufferLength /= 2; + this.warn(`Reduce max buffer length to ${config.maxMaxBufferLength}s`); + return true; + } + return false; + } + protected getNextFragment( pos: number, levelDetails: LevelDetails diff --git a/src/controller/stream-controller.ts b/src/controller/stream-controller.ts index 02c0a1c35af..044faf24cb7 100644 --- a/src/controller/stream-controller.ts +++ b/src/controller/stream-controller.ts @@ -368,7 +368,7 @@ export default class StreamController } } else if (fragState === FragmentState.APPENDING) { // Lower the buffer size and try again - if (this._reduceMaxBufferLength(frag.duration)) { + if (this.reduceMaxBufferLength(frag.duration)) { this.fragmentTracker.removeFragment(frag); } } else if (this.media?.buffered.length === 0) { @@ -847,31 +847,32 @@ export default class StreamController } private onError(event: Events.ERROR, data: ErrorData) { - const frag = data.frag || this.fragCurrent; - // don't handle frag error not related to main fragment - if (frag && frag.type !== 'main') { - return; - } - - // 0.5 : tolerance needed as some browsers stalls playback before reaching buffered end - const mediaBuffered = - !!this.media && - BufferHelper.isBuffered(this.media, this.media.currentTime) && - BufferHelper.isBuffered(this.media, this.media.currentTime + 0.5); - switch (data.details) { case ErrorDetails.FRAG_LOAD_ERROR: case ErrorDetails.FRAG_LOAD_TIMEOUT: case ErrorDetails.KEY_LOAD_ERROR: case ErrorDetails.KEY_LOAD_TIMEOUT: if (!data.fatal) { + const frag = data.frag; + const fragCurrent = this.fragCurrent; + // don't handle frag error not related to main fragment + if (!frag || frag.type !== 'main') { + return; + } + console.assert( + fragCurrent && + frag.sn === fragCurrent.sn && + frag.level === fragCurrent.level && + frag.urlId === fragCurrent.urlId, + 'Frag load error must match current frag to retry' + ); + const config = this.config; // keep retrying until the limit will be reached - if (this.fragLoadError + 1 <= this.config.fragLoadingMaxRetry) { + if (this.fragLoadError + 1 <= config.fragLoadingMaxRetry) { // exponential backoff capped to config.fragLoadingMaxRetryTimeout const delay = Math.min( - Math.pow(2, this.fragLoadError) * - this.config.fragLoadingRetryDelay, - this.config.fragLoadingMaxRetryTimeout + Math.pow(2, this.fragLoadError) * config.fragLoadingRetryDelay, + config.fragLoadingMaxRetryTimeout ); // @ts-ignore - frag is potentially null according to TS here this.warn( @@ -924,9 +925,14 @@ export default class StreamController data.parent === 'main' && (this.state === State.PARSING || this.state === State.PARSED) ) { + // 0.5 : tolerance needed as some browsers stalls playback before reaching buffered end + const mediaBuffered = + !!this.media && + BufferHelper.isBuffered(this.media, this.media.currentTime) && + BufferHelper.isBuffered(this.media, this.media.currentTime + 0.5); // reduce max buf len if current position is buffered if (mediaBuffered) { - this._reduceMaxBufferLength(this.config.maxBufferLength); + this.reduceMaxBufferLength(); this.state = State.IDLE; } else { // current position is not buffered, but browser is still complaining about buffer full error @@ -945,17 +951,6 @@ export default class StreamController } } - private _reduceMaxBufferLength(minLength) { - const config = this.config; - if (config.maxMaxBufferLength >= minLength) { - // reduce max buffer length as it might be too high. we do this to avoid loop flushing ... - config.maxMaxBufferLength /= 2; - this.warn(`Reduce max buffer length to ${config.maxMaxBufferLength}s`); - return true; - } - return false; - } - // Checks the health of the buffer and attempts to resolve playback stalls. private checkBuffer() { const { media, gapController } = this; From 8c5132d0c2920e086a259ffae4b6b61fbdabb076 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Fri, 22 Jan 2021 18:31:04 -0500 Subject: [PATCH 015/327] TypeScript and module export cleanup for fragment loading error handling and codecs module --- src/controller/abr-controller.ts | 25 ++++++++++---------- src/controller/audio-stream-controller.ts | 13 +++++----- src/controller/level-controller.ts | 5 ++-- src/controller/stream-controller.ts | 6 ++--- src/controller/subtitle-stream-controller.ts | 3 ++- src/controller/timeline-controller.ts | 7 +++--- src/loader/m3u8-parser.ts | 9 ++++--- src/utils/codecs.ts | 6 ++--- 8 files changed, 35 insertions(+), 39 deletions(-) diff --git a/src/controller/abr-controller.ts b/src/controller/abr-controller.ts index 0e5b38453f2..d9d0ffd77cc 100644 --- a/src/controller/abr-controller.ts +++ b/src/controller/abr-controller.ts @@ -1,19 +1,11 @@ -/* - * simple ABR Controller - * - compute next level based on last fragment bw heuristics - * - implement an abandon rules triggered if we have less than 2 frag buffered and if computed bw shows that we risk buffer stalling - */ - +import EwmaBandWidthEstimator from '../utils/ewma-bandwidth-estimator'; import { Events } from '../events'; import { BufferHelper } from '../utils/buffer-helper'; import { ErrorDetails } from '../errors'; +import { PlaylistLevelType } from '../types/loader'; import { logger } from '../utils/logger'; -import EwmaBandWidthEstimator from '../utils/ewma-bandwidth-estimator'; - import type { Bufferable } from '../utils/buffer-helper'; -// eslint-disable-next-line import/no-duplicates import type Fragment from '../loader/fragment'; -// eslint-disable-next-line import/no-duplicates import type { Part } from '../loader/fragment'; import type { LoaderStats } from '../types/loader'; import type Hls from '../hls'; @@ -76,7 +68,7 @@ class AbrController implements ComponentAPI { protected onFragLoading(event: Events.FRAG_LOADING, data: FragLoadingData) { const frag = data.frag; - if (frag.type === 'main') { + if (frag.type === PlaylistLevelType.MAIN) { if (!this.timer) { this.fragCurrent = frag; this.partCurrent = data.part ?? null; @@ -214,7 +206,10 @@ class AbrController implements ComponentAPI { event: Events.FRAG_LOADED, { frag, part }: FragLoadedData ) { - if (frag.type === 'main' && Number.isFinite(frag.sn as number)) { + if ( + frag.type === PlaylistLevelType.MAIN && + Number.isFinite(frag.sn as number) + ) { const stats = part ? part.stats : frag.stats; const duration = part ? part.duration : frag.duration; // stop monitoring bw once frag loaded @@ -257,7 +252,11 @@ class AbrController implements ComponentAPI { return; } // Only count non-alt-audio frags which were actually buffered in our BW calculations - if (frag.type !== 'main' || frag.sn === 'initSegment' || frag.bitrateTest) { + if ( + frag.type !== PlaylistLevelType.MAIN || + frag.sn === 'initSegment' || + frag.bitrateTest + ) { return; } // Use the difference between parsing and request instead of buffering and request to compute fragLoadingProcessing; diff --git a/src/controller/audio-stream-controller.ts b/src/controller/audio-stream-controller.ts index a954d87dce0..2971416b64b 100644 --- a/src/controller/audio-stream-controller.ts +++ b/src/controller/audio-stream-controller.ts @@ -575,7 +575,7 @@ class AudioStreamController onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData) { const { frag, part } = data; - if (frag && frag.type !== 'audio') { + if (frag.type !== PlaylistLevelType.AUDIO) { return; } if (this.fragContextChanged(frag)) { @@ -603,19 +603,19 @@ class AudioStreamController case ErrorDetails.FRAG_LOAD_ERROR: case ErrorDetails.FRAG_LOAD_TIMEOUT: case ErrorDetails.KEY_LOAD_ERROR: - case ErrorDetails.KEY_LOAD_TIMEOUT: { + case ErrorDetails.KEY_LOAD_TIMEOUT: if (!data.fatal) { const frag = data.frag; - const fragCurrent = this.fragCurrent; // don't handle frag error not related to audio fragment - if (!frag || frag.type !== 'audio') { - break; + if (!frag || frag.type !== PlaylistLevelType.AUDIO) { + return; } + const fragCurrent = this.fragCurrent; console.assert( fragCurrent && frag.sn === fragCurrent.sn && frag.level === fragCurrent.level && - frag.urlId === fragCurrent.urlId, + frag.urlId === fragCurrent.urlId, // FIXME: audio-group id 'Frag load error must match current frag to retry' ); const config = this.config; @@ -647,7 +647,6 @@ class AudioStreamController } } break; - } case ErrorDetails.AUDIO_TRACK_LOAD_ERROR: case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT: // when in ERROR state, don't switch back to IDLE state in case a non-fatal error is received diff --git a/src/controller/level-controller.ts b/src/controller/level-controller.ts index 3b802eeb74f..bf67da3c141 100644 --- a/src/controller/level-controller.ts +++ b/src/controller/level-controller.ts @@ -16,9 +16,8 @@ import { Events } from '../events'; import { ErrorTypes, ErrorDetails } from '../errors'; import { isCodecSupportedInMp4 } from '../utils/codecs'; import { addGroupId, assignTrackIdsByGroup } from './level-helper'; -import Fragment from '../loader/fragment'; import BasePlaylistController from './base-playlist-controller'; -import { PlaylistContextType } from '../types/loader'; +import { PlaylistContextType, PlaylistLevelType } from '../types/loader'; import type Hls from '../hls'; import type { HlsUrlParameters, LevelParsed } from '../types/level'; import type { MediaPlaylist } from '../types/media-playlist'; @@ -426,7 +425,7 @@ export default class LevelController extends BasePlaylistController { // reset errors on the successful load of a fragment protected onFragLoaded(event: Events.FRAG_LOADED, { frag }: FragLoadedData) { - if (frag !== undefined && frag.type === 'main') { + if (frag !== undefined && frag.type === PlaylistLevelType.MAIN) { const level = this._levels[frag.level]; if (level !== undefined) { level.fragmentError = 0; diff --git a/src/controller/stream-controller.ts b/src/controller/stream-controller.ts index 044faf24cb7..ef9333a589b 100644 --- a/src/controller/stream-controller.ts +++ b/src/controller/stream-controller.ts @@ -825,7 +825,7 @@ export default class StreamController private onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData) { const { frag, part } = data; - if (frag && frag.type !== 'main') { + if (frag && frag.type !== PlaylistLevelType.MAIN) { return; } if (this.fragContextChanged(frag)) { @@ -854,11 +854,11 @@ export default class StreamController case ErrorDetails.KEY_LOAD_TIMEOUT: if (!data.fatal) { const frag = data.frag; - const fragCurrent = this.fragCurrent; // don't handle frag error not related to main fragment - if (!frag || frag.type !== 'main') { + if (!frag || frag.type !== PlaylistLevelType.MAIN) { return; } + const fragCurrent = this.fragCurrent; console.assert( fragCurrent && frag.sn === fragCurrent.sn && diff --git a/src/controller/subtitle-stream-controller.ts b/src/controller/subtitle-stream-controller.ts index 8ecac063281..fdb9962f5fb 100644 --- a/src/controller/subtitle-stream-controller.ts +++ b/src/controller/subtitle-stream-controller.ts @@ -6,6 +6,7 @@ import type { FragmentTracker } from './fragment-tracker'; import { FragmentState } from './fragment-tracker'; import BaseStreamController, { State } from './base-stream-controller'; import FragmentLoader from '../loader/fragment-loader'; +import { PlaylistLevelType } from '../types/loader'; import { Level } from '../types/level'; import type { NetworkComponentAPI } from '../types/component-api'; import type Hls from '../hls'; @@ -152,7 +153,7 @@ export class SubtitleStreamController onError(event: Events.ERROR, data: ErrorData) { const frag = data.frag; // don't handle error not related to subtitle fragment - if (!frag || frag.type !== 'subtitle') { + if (!frag || frag.type !== PlaylistLevelType.SUBTITLE) { return; } diff --git a/src/controller/timeline-controller.ts b/src/controller/timeline-controller.ts index 605852dd4f8..8ed33b04309 100644 --- a/src/controller/timeline-controller.ts +++ b/src/controller/timeline-controller.ts @@ -15,6 +15,7 @@ import { InitPTSFoundData, SubtitleTracksUpdatedData, } from '../types/events'; +import { PlaylistLevelType } from '../types/loader'; import type Hls from '../hls'; import type { ComponentAPI } from '../types/component-api'; import type { HlsConfig } from '../config'; @@ -419,7 +420,7 @@ export class TimelineController implements ComponentAPI { lastSn, unparsedVttFrags, } = this; - if (frag.type === 'main') { + if (frag.type === PlaylistLevelType.MAIN) { const sn = frag.sn; // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack if (sn !== lastSn + 1) { @@ -429,7 +430,7 @@ export class TimelineController implements ComponentAPI { } } this.lastSn = sn as number; - } else if (frag.type === 'subtitle') { + } else if (frag.type === PlaylistLevelType.SUBTITLE) { // If fragment is subtitle type, parse as WebVTT. if (payload.byteLength) { // We need an initial synchronisation PTS. Store fragments as long as none has arrived. @@ -598,7 +599,7 @@ export class TimelineController implements ComponentAPI { onFragDecrypted(event: Events.FRAG_DECRYPTED, data: FragDecryptedData) { const { frag } = data; - if (frag.type === 'subtitle') { + if (frag.type === PlaylistLevelType.SUBTITLE) { if (!Number.isFinite(this.initPTS[frag.cc])) { this.unparsedVttFrags.push((data as unknown) as FragLoadedData); return; diff --git a/src/loader/m3u8-parser.ts b/src/loader/m3u8-parser.ts index 244be19e609..dbe39ce8df9 100644 --- a/src/loader/m3u8-parser.ts +++ b/src/loader/m3u8-parser.ts @@ -75,16 +75,15 @@ export default class M3U8Parser { } static convertAVC1ToAVCOTI(codec) { + // Convert avc1 codec string from RFC-4281 to RFC-6381 for MediaSource.isTypeSupported const avcdata = codec.split('.'); - let result; if (avcdata.length > 2) { - result = avcdata.shift() + '.'; + let result = avcdata.shift() + '.'; result += parseInt(avcdata.shift()).toString(16); result += ('000' + parseInt(avcdata.shift()).toString(16)).substr(-4); - } else { - result = codec; + return result; } - return result; + return codec; } static resolve(url, baseUrl) { diff --git a/src/utils/codecs.ts b/src/utils/codecs.ts index 603af8f0514..c957fee7c72 100644 --- a/src/utils/codecs.ts +++ b/src/utils/codecs.ts @@ -69,15 +69,13 @@ const sampleEntryCodesISO = { export type CodecType = 'audio' | 'video'; -function isCodecType(codec: string, type: CodecType): boolean { +export function isCodecType(codec: string, type: CodecType): boolean { const typeCodes = sampleEntryCodesISO[type]; return !!typeCodes && typeCodes[codec.slice(0, 4)] === true; } -function isCodecSupportedInMp4(codec: string, type: CodecType): boolean { +export function isCodecSupportedInMp4(codec: string, type: CodecType): boolean { return MediaSource.isTypeSupported( `${type || 'video'}/mp4;codecs="${codec}"` ); } - -export { isCodecType, isCodecSupportedInMp4 }; From cd4c841049737d10fdb6af64b02921c9fd957904 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Fri, 22 Jan 2021 20:03:22 -0500 Subject: [PATCH 016/327] Add `currentTime` to logs for flakey "ended" event functional test --- tests/functional/auto/setup.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/functional/auto/setup.js b/tests/functional/auto/setup.js index 1a0c0bef0e3..0ac4879d4b4 100644 --- a/tests/functional/auto/setup.js +++ b/tests/functional/auto/setup.js @@ -217,7 +217,12 @@ async function testSeekOnVOD(url, config) { self.startStream(url, config, callback); const video = self.video; video.ondurationchange = function () { - console.log('[test] > video "durationchange": ' + video.duration); + console.log( + '[test] > video "durationchange": ' + + video.duration + + ', currentTime: ' + + video.currentTime + ); }; video.onloadeddata = function () { console.log('[test] > video "loadeddata"'); @@ -285,7 +290,9 @@ async function testSeekOnVOD(url, config) { }; video.oncanplaythrough = video.onwaiting = function (e) { - console.log('[test] > video "' + e.type + '"'); + console.log( + '[test] > video "' + e.type + '", currentTime: ' + video.currentTime + ); }; }, url, From ffd19981409b0756068a81db1f74793818259077 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Jan 2021 06:39:08 +0000 Subject: [PATCH 017/327] [skip ci]: Bump @typescript-eslint/parser from 4.14.0 to 4.14.1 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.14.0 to 4.14.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.14.1/packages/parser) Signed-off-by: dependabot[bot] --- package-lock.json | 62 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index f41321b83a6..4f1b400b45c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4382,15 +4382,65 @@ } }, "@typescript-eslint/parser": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.0.tgz", - "integrity": "sha512-sUDeuCjBU+ZF3Lzw0hphTyScmDDJ5QVkyE21pRoBo8iDl7WBtVFS+WDN3blY1CH3SBt7EmYCw6wfmJjF0l/uYg==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.1.tgz", + "integrity": "sha512-mL3+gU18g9JPsHZuKMZ8Z0Ss9YP1S5xYZ7n68Z98GnPq02pYNQuRXL85b9GYhl6jpdvUc45Km7hAl71vybjUmw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.14.0", - "@typescript-eslint/types": "4.14.0", - "@typescript-eslint/typescript-estree": "4.14.0", + "@typescript-eslint/scope-manager": "4.14.1", + "@typescript-eslint/types": "4.14.1", + "@typescript-eslint/typescript-estree": "4.14.1", "debug": "^4.1.1" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.1.tgz", + "integrity": "sha512-F4bjJcSqXqHnC9JGUlnqSa3fC2YH5zTtmACS1Hk+WX/nFB0guuynVK5ev35D4XZbdKjulXBAQMyRr216kmxghw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.1", + "@typescript-eslint/visitor-keys": "4.14.1" + } + }, + "@typescript-eslint/types": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.1.tgz", + "integrity": "sha512-SkhzHdI/AllAgQSxXM89XwS1Tkic7csPdndUuTKabEwRcEfR8uQ/iPA3Dgio1rqsV3jtqZhY0QQni8rLswJM2w==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.1.tgz", + "integrity": "sha512-M8+7MbzKC1PvJIA8kR2sSBnex8bsR5auatLCnVlNTJczmJgqRn8M+sAlQfkEq7M4IY3WmaNJ+LJjPVRrREVSHQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.1", + "@typescript-eslint/visitor-keys": "4.14.1", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.1.tgz", + "integrity": "sha512-TAblbDXOI7bd0C/9PE1G+AFo7R5uc+ty1ArDoxmrC1ah61Hn6shURKy7gLdRb1qKJmjHkqu5Oq+e4Kt0jwf1IA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.1", + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + } } }, "@typescript-eslint/scope-manager": { From fc28bc187284df5ee6bff5fde304af28db9c9ce6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Jan 2021 07:30:50 +0000 Subject: [PATCH 018/327] [skip ci]: Bump @typescript-eslint/eslint-plugin from 4.14.0 to 4.14.1 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.14.0 to 4.14.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.14.1/packages/eslint-plugin) Signed-off-by: dependabot[bot] --- package-lock.json | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4f1b400b45c..2341f709af8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4352,13 +4352,13 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.0.tgz", - "integrity": "sha512-IJ5e2W7uFNfg4qh9eHkHRUCbgZ8VKtGwD07kannJvM5t/GU8P8+24NX8gi3Hf5jST5oWPY8kyV1s/WtfiZ4+Ww==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.1.tgz", + "integrity": "sha512-5JriGbYhtqMS1kRcZTQxndz1lKMwwEXKbwZbkUZNnp6MJX0+OVXnG0kOlBZP4LUAxEyzu3cs+EXd/97MJXsGfw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.14.0", - "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/experimental-utils": "4.14.1", + "@typescript-eslint/scope-manager": "4.14.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -4368,15 +4368,15 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.0.tgz", - "integrity": "sha512-6i6eAoiPlXMKRbXzvoQD5Yn9L7k9ezzGRvzC/x1V3650rUk3c3AOjQyGYyF9BDxQQDK2ElmKOZRD0CbtdkMzQQ==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.1.tgz", + "integrity": "sha512-2CuHWOJwvpw0LofbyG5gvYjEyoJeSvVH2PnfUQSn0KQr4v8Dql2pr43ohmx4fdPQ/eVoTSFjTi/bsGEXl/zUUQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.14.0", - "@typescript-eslint/types": "4.14.0", - "@typescript-eslint/typescript-estree": "4.14.0", + "@typescript-eslint/scope-manager": "4.14.1", + "@typescript-eslint/types": "4.14.1", + "@typescript-eslint/typescript-estree": "4.14.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } @@ -4444,29 +4444,29 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.0.tgz", - "integrity": "sha512-/J+LlRMdbPh4RdL4hfP1eCwHN5bAhFAGOTsvE6SxsrM/47XQiPSgF5MDgLyp/i9kbZV9Lx80DW0OpPkzL+uf8Q==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.1.tgz", + "integrity": "sha512-F4bjJcSqXqHnC9JGUlnqSa3fC2YH5zTtmACS1Hk+WX/nFB0guuynVK5ev35D4XZbdKjulXBAQMyRr216kmxghw==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.0", - "@typescript-eslint/visitor-keys": "4.14.0" + "@typescript-eslint/types": "4.14.1", + "@typescript-eslint/visitor-keys": "4.14.1" } }, "@typescript-eslint/types": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.0.tgz", - "integrity": "sha512-VsQE4VvpldHrTFuVPY1ZnHn/Txw6cZGjL48e+iBxTi2ksa9DmebKjAeFmTVAYoSkTk7gjA7UqJ7pIsyifTsI4A==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.1.tgz", + "integrity": "sha512-SkhzHdI/AllAgQSxXM89XwS1Tkic7csPdndUuTKabEwRcEfR8uQ/iPA3Dgio1rqsV3jtqZhY0QQni8rLswJM2w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.0.tgz", - "integrity": "sha512-wRjZ5qLao+bvS2F7pX4qi2oLcOONIB+ru8RGBieDptq/SudYwshveORwCVU4/yMAd4GK7Fsf8Uq1tjV838erag==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.1.tgz", + "integrity": "sha512-M8+7MbzKC1PvJIA8kR2sSBnex8bsR5auatLCnVlNTJczmJgqRn8M+sAlQfkEq7M4IY3WmaNJ+LJjPVRrREVSHQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.0", - "@typescript-eslint/visitor-keys": "4.14.0", + "@typescript-eslint/types": "4.14.1", + "@typescript-eslint/visitor-keys": "4.14.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -4476,12 +4476,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.0.tgz", - "integrity": "sha512-MeHHzUyRI50DuiPgV9+LxcM52FCJFYjJiWHtXlbyC27b80mfOwKeiKI+MHOTEpcpfmoPFm/vvQS88bYIx6PZTA==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.1.tgz", + "integrity": "sha512-TAblbDXOI7bd0C/9PE1G+AFo7R5uc+ty1ArDoxmrC1ah61Hn6shURKy7gLdRb1qKJmjHkqu5Oq+e4Kt0jwf1IA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/types": "4.14.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { From 2c1879e762da458b43b546c8c2056bf4d6104e76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Jan 2021 07:51:20 +0000 Subject: [PATCH 019/327] [skip ci]: Bump @types/chart.js from 2.9.29 to 2.9.30 Bumps [@types/chart.js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chart.js) from 2.9.29 to 2.9.30. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chart.js) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2341f709af8..ec825432d51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4097,9 +4097,9 @@ "dev": true }, "@types/chart.js": { - "version": "2.9.29", - "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.29.tgz", - "integrity": "sha512-WOZMitUU3gHDM0oQsCsVivX+oDsIki93szcTmmUPBm39cCvAELBjokjSDVOoA3xiIEbb+jp17z/3S2tIqruwOQ==", + "version": "2.9.30", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.30.tgz", + "integrity": "sha512-EgjxUUZFvf6ls3kW2CwyrnSJhgyKxgwrlp/W5G9wqyPEO9iFatO63zAA7L24YqgMxiDjQ+tG7ODU+2yWH91lPg==", "dev": true, "requires": { "moment": "^2.10.2" From 1b56f05bf53272694ae1920c01ede16724cf41db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Jan 2021 08:28:37 +0000 Subject: [PATCH 020/327] [skip ci]: Bump sinon from 9.2.3 to 9.2.4 Bumps [sinon](https://github.com/sinonjs/sinon) from 9.2.3 to 9.2.4. - [Release notes](https://github.com/sinonjs/sinon/releases) - [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md) - [Commits](https://github.com/sinonjs/sinon/compare/v9.2.3...v9.2.4) Signed-off-by: dependabot[bot] --- package-lock.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec825432d51..81a02f87d4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4035,9 +4035,9 @@ } }, "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", + "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -4053,9 +4053,9 @@ } }, "@sinonjs/samsam": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.0.tgz", - "integrity": "sha512-hXpcfx3aq+ETVBwPlRFICld5EnrkexXuXDwqUNhDdr5L8VjvMeSRwyOa0qL7XFmR+jVWR4rUZtnxlG7RX72sBg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -18753,14 +18753,14 @@ } }, "sinon": { - "version": "9.2.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.3.tgz", - "integrity": "sha512-m+DyAWvqVHZtjnjX/nuShasykFeiZ+nPuEfD4G3gpvKGkXRhkF/6NSt2qN2FjZhfrcHXFzUzI+NLnk+42fnLEw==", + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", + "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", "dev": true, "requires": { "@sinonjs/commons": "^1.8.1", "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.0", + "@sinonjs/samsam": "^5.3.1", "diff": "^4.0.2", "nise": "^4.0.4", "supports-color": "^7.1.0" From ad5c23b18197c5637db4b3b827455dc1b72722a8 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Tue, 26 Jan 2021 21:09:04 +0000 Subject: [PATCH 021/327] use full commit hashes in workflows (#3419) --- .github/workflows/automerge.yml | 2 +- .github/workflows/build.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 3cf5f8a4cf2..1f173d5dfac 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -22,7 +22,7 @@ jobs: if: needs.config.outputs.hasSecret == 'true' runs-on: ubuntu-latest steps: - - uses: tjenkinson/gh-action-auto-merge-dependency-updates@1ff3f19 + - uses: tjenkinson/gh-action-auto-merge-dependency-updates@1ff3f19509b1965cf1753c294c55e8cdb0528178 with: repo-token: ${{ secrets.CI_GITHUB_TOKEN }} allowed-actors: dependabot[bot] diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index feb99e82746..1817764775b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -312,7 +312,7 @@ jobs: name: build - name: start SauceConnect tunnel - uses: saucelabs/sauce-connect-action@5c0cf29 + uses: saucelabs/sauce-connect-action@5c0cf29805c7fe68f2dec68c6384332fb1ba73f9 with: username: ${{ secrets.SAUCE_USERNAME }} accessKey: ${{ secrets.SAUCE_ACCESS_KEY }} @@ -402,7 +402,7 @@ jobs: name: build - name: start SauceConnect tunnel - uses: saucelabs/sauce-connect-action@5c0cf29 + uses: saucelabs/sauce-connect-action@5c0cf29805c7fe68f2dec68c6384332fb1ba73f9 with: username: ${{ secrets.SAUCE_USERNAME }} accessKey: ${{ secrets.SAUCE_ACCESS_KEY }} From 7be9bad4c3ed7389e6ebb3db01ddfe96eb185ac1 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Mon, 25 Jan 2021 17:35:48 -0500 Subject: [PATCH 022/327] Do not append 608/WebVTT/IMSC cues that have already been appended Fix 608 CC continuity when seeking and while track is disabled Clear tracks when level's text group-id changes Update group-id on level switch not just level loading Merges changes from #3321 into master, while maintaining that `config.cueHandler` must append cues to their supplied TextTrack --- demo/main.js | 63 ++++++-- src/controller/audio-track-controller.ts | 23 ++- src/controller/id3-track-controller.ts | 10 +- src/controller/subtitle-stream-controller.ts | 3 + src/controller/subtitle-track-controller.ts | 15 +- src/controller/timeline-controller.ts | 152 ++++++++++--------- src/utils/cues.ts | 32 ++-- src/utils/imsc1-ttml-parser.ts | 2 + src/utils/texttrack-utils.ts | 78 ++++++++-- src/utils/webvtt-parser.ts | 24 +-- 10 files changed, 272 insertions(+), 130 deletions(-) diff --git a/demo/main.js b/demo/main.js index 2256caa0c56..ddec77283ff 100644 --- a/demo/main.js +++ b/demo/main.js @@ -42,7 +42,7 @@ let stopOnStall = getDemoConfigPropOrDefault('stopOnStall', false); let bufferingIdx = -1; let selectedTestStream = null; -const video = document.querySelector('#video'); +let video = document.querySelector('#video'); const startTime = Date.now(); let lastSeekingIdx; @@ -340,7 +340,32 @@ function loadSelectedStream() { logStatus('Loading manifest and attaching video element...'); + const expiredTracks = [].filter.call( + video.textTracks, + (track) => track.kind !== 'metadata' + ); + if (expiredTracks.length) { + const kinds = expiredTracks + .map((track) => track.kind) + .filter((kind, index, self) => self.indexOf(kind) === index); + logStatus( + `Replacing video element to remove ${kinds.join(' and ')} text tracks` + ); + const videoWithExpiredTextTracks = video; + video = videoWithExpiredTextTracks.cloneNode(false); + video.removeAttribute('src'); + video.volume = videoWithExpiredTextTracks.volume; + video.muted = videoWithExpiredTextTracks.muted; + videoWithExpiredTextTracks.parentNode.insertBefore( + video, + videoWithExpiredTextTracks + ); + videoWithExpiredTextTracks.parentNode.removeChild( + videoWithExpiredTextTracks + ); + } addChartEventListeners(hls); + addVideoEventListeners(video); hls.loadSource(url); hls.autoLevelCapping = levelCapping; @@ -865,7 +890,23 @@ function loadSelectedStream() { stats.fpsTotalDroppedFrames = data.totalDroppedFrames; } }); +} +function addVideoEventListeners(video) { + video.removeEventListener('resize', handleVideoEvent); + video.removeEventListener('seeking', handleVideoEvent); + video.removeEventListener('seeked', handleVideoEvent); + video.removeEventListener('pause', handleVideoEvent); + video.removeEventListener('play', handleVideoEvent); + video.removeEventListener('canplay', handleVideoEvent); + video.removeEventListener('canplaythrough', handleVideoEvent); + video.removeEventListener('ended', handleVideoEvent); + video.removeEventListener('playing', handleVideoEvent); + video.removeEventListener('error', handleVideoEvent); + video.removeEventListener('loadedmetadata', handleVideoEvent); + video.removeEventListener('loadeddata', handleVideoEvent); + video.removeEventListener('durationchange', handleVideoEvent); + video.removeEventListener('volumechange', handleVolumeEvent); video.addEventListener('resize', handleVideoEvent); video.addEventListener('seeking', handleVideoEvent); video.addEventListener('seeked', handleVideoEvent); @@ -879,15 +920,7 @@ function loadSelectedStream() { video.addEventListener('loadedmetadata', handleVideoEvent); video.addEventListener('loadeddata', handleVideoEvent); video.addEventListener('durationchange', handleVideoEvent); - video.addEventListener('volumechange', (evt) => { - localStorage.setItem( - STORAGE_KEYS.volume, - JSON.stringify({ - muted: video.muted, - volume: video.volume, - }) - ); - }); + video.addEventListener('volumechange', handleVolumeEvent); } function handleUnsupported() { @@ -985,6 +1018,16 @@ function handleVideoEvent(evt) { trimEventHistory(); } +function handleVolumeEvent() { + localStorage.setItem( + STORAGE_KEYS.volume, + JSON.stringify({ + muted: video.muted, + volume: video.volume, + }) + ); +} + function handleLevelError(data) { var levelObj = data.context || data; hls.removeLevel(levelObj.level, levelObj.urlId || 0); diff --git a/src/controller/audio-track-controller.ts b/src/controller/audio-track-controller.ts index f0124f13d00..ff6bb59b76b 100644 --- a/src/controller/audio-track-controller.ts +++ b/src/controller/audio-track-controller.ts @@ -6,6 +6,7 @@ import { ErrorData, LevelLoadingData, AudioTrackLoadedData, + LevelSwitchingData, } from '../types/events'; import BasePlaylistController from './base-playlist-controller'; import { PlaylistContextType } from '../types/loader'; @@ -30,6 +31,7 @@ class AudioTrackController extends BasePlaylistController { hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this); hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this); hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this); + hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this); hls.on(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this); hls.on(Events.ERROR, this.onError, this); } @@ -39,6 +41,7 @@ class AudioTrackController extends BasePlaylistController { hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this); hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this); hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this); + hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this); hls.off(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this); hls.off(Events.ERROR, this.onError, this); } @@ -85,18 +88,22 @@ class AudioTrackController extends BasePlaylistController { } } - /** - * When a level is loading, if it has redundant audioGroupIds (in the same ordinality as it's redundant URLs) - * we are setting our audio-group ID internally to the one set, if it is different from the group ID currently set. - * - * If group-ID got update, we re-select the appropriate audio-track with this group-ID matching the currently - * selected one (based on NAME property). - */ protected onLevelLoading( event: Events.LEVEL_LOADING, data: LevelLoadingData ): void { - const levelInfo = this.hls.levels[data.level]; + this.switchLevel(data.level); + } + + protected onLevelSwitching( + event: Events.LEVEL_SWITCHING, + data: LevelSwitchingData + ): void { + this.switchLevel(data.level); + } + + private switchLevel(levelIndex: number) { + const levelInfo = this.hls.levels[levelIndex]; if (!levelInfo?.audioGroupIds) { return; diff --git a/src/controller/id3-track-controller.ts b/src/controller/id3-track-controller.ts index 60b48d9ad8a..e772636b9eb 100644 --- a/src/controller/id3-track-controller.ts +++ b/src/controller/id3-track-controller.ts @@ -2,7 +2,7 @@ import { Events } from '../events'; import { sendAddTrackEvent, clearCurrentCues, - getCuesInRange, + removeCuesInRange, } from '../utils/texttrack-utils'; import * as ID3 from '../demux/id3'; import type { @@ -138,12 +138,8 @@ class ID3TrackController implements ComponentAPI { if (!type || type === 'audio') { // id3 cues come from parsed audio only remove cues when audio buffer is cleared const { id3Track } = this; - if (!id3Track || !id3Track.cues || !id3Track.cues.length) { - return; - } - const cues = getCuesInRange(id3Track.cues, startOffset, endOffset); - for (let i = 0; i < cues.length; i++) { - id3Track.removeCue(cues[i]); + if (id3Track) { + removeCuesInRange(id3Track, startOffset, endOffset); } } } diff --git a/src/controller/subtitle-stream-controller.ts b/src/controller/subtitle-stream-controller.ts index fdb9962f5fb..2bef436a7d2 100644 --- a/src/controller/subtitle-stream-controller.ts +++ b/src/controller/subtitle-stream-controller.ts @@ -140,6 +140,7 @@ export class SubtitleStreamController return; } this.fragmentTracker.removeAllFragments(); + this.fragPrevious = null; this.currentTrackId = -1; this.levels.forEach((level: Level) => { this.tracksBuffered[level.id] = []; @@ -173,6 +174,8 @@ export class SubtitleStreamController this.levels = subtitleTracks.map( (mediaPlaylist) => new Level(mediaPlaylist) ); + this.fragmentTracker.removeAllFragments(); + this.fragPrevious = null; this.levels.forEach((level: Level) => { this.tracksBuffered[level.id] = []; }); diff --git a/src/controller/subtitle-track-controller.ts b/src/controller/subtitle-track-controller.ts index 9452bfc3925..9f9e6226cee 100644 --- a/src/controller/subtitle-track-controller.ts +++ b/src/controller/subtitle-track-controller.ts @@ -8,6 +8,7 @@ import type { MediaAttachedData, SubtitleTracksUpdatedData, ManifestParsedData, + LevelSwitchingData, } from '../types/events'; import type { MediaPlaylist } from '../types/media-playlist'; import { ErrorData, LevelLoadingData } from '../types/events'; @@ -44,6 +45,7 @@ class SubtitleTrackController extends BasePlaylistController { hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this); hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this); hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this); + hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this); hls.on(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this); hls.on(Events.ERROR, this.onError, this); } @@ -55,6 +57,7 @@ class SubtitleTrackController extends BasePlaylistController { hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this); hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this); hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this); + hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this); hls.off(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this); hls.off(Events.ERROR, this.onError, this); } @@ -163,8 +166,18 @@ class SubtitleTrackController extends BasePlaylistController { event: Events.LEVEL_LOADING, data: LevelLoadingData ): void { - const levelInfo = this.hls.levels[data.level]; + this.switchLevel(data.level); + } + + protected onLevelSwitching( + event: Events.LEVEL_SWITCHING, + data: LevelSwitchingData + ): void { + this.switchLevel(data.level); + } + private switchLevel(levelIndex: number) { + const levelInfo = this.hls.levels[levelIndex]; if (!levelInfo?.textGroupIds) { return; } diff --git a/src/controller/timeline-controller.ts b/src/controller/timeline-controller.ts index 8ed33b04309..b2fe9747e29 100644 --- a/src/controller/timeline-controller.ts +++ b/src/controller/timeline-controller.ts @@ -2,9 +2,14 @@ import { Events } from '../events'; import Cea608Parser, { CaptionScreen } from '../utils/cea-608-parser'; import OutputFilter from '../utils/output-filter'; import { parseWebVTT } from '../utils/webvtt-parser'; -import { logger } from '../utils/logger'; -import { sendAddTrackEvent, clearCurrentCues } from '../utils/texttrack-utils'; +import { + sendAddTrackEvent, + clearCurrentCues, + addCueToTrack, + removeCuesInRange, +} from '../utils/texttrack-utils'; import { parseIMSC1, IMSC1_CODEC } from '../utils/imsc1-ttml-parser'; +import { PlaylistLevelType } from '../types/loader'; import Fragment from '../loader/fragment'; import { FragParsingUserdataData, @@ -14,8 +19,9 @@ import { ManifestLoadedData, InitPTSFoundData, SubtitleTracksUpdatedData, + BufferFlushingData, } from '../types/events'; -import { PlaylistLevelType } from '../types/loader'; +import { logger } from '../utils/logger'; import type Hls from '../hls'; import type { ComponentAPI } from '../types/component-api'; import type { HlsConfig } from '../config'; @@ -111,6 +117,7 @@ export class TimelineController implements ComponentAPI { hls.on(Events.FRAG_LOADED, this.onFragLoaded, this); hls.on(Events.INIT_PTS_FOUND, this.onInitPtsFound, this); hls.on(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this); + hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this); } private _unregisterListeners(): void { @@ -125,9 +132,10 @@ export class TimelineController implements ComponentAPI { hls.off(Events.FRAG_LOADED, this.onFragLoaded, this); hls.off(Events.INIT_PTS_FOUND, this.onInitPtsFound, this); hls.off(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this); + hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this); } - addCues( + public addCues( trackName: string, startTime: number, endTime: number, @@ -158,12 +166,8 @@ export class TimelineController implements ComponentAPI { } if (this.config.renderTextTracksNatively) { - this.Cues.newCue( - this.captionsTracks[trackName], - startTime, - endTime, - screen - ); + const track = this.captionsTracks[trackName]; + this.Cues.newCue(track, startTime, endTime, screen); } else { const cues = this.Cues.newCue(null, startTime, endTime, screen); this.hls.trigger(Events.CUES_PARSED, { @@ -175,7 +179,7 @@ export class TimelineController implements ComponentAPI { } // Triggered when an initial PTS is found; used for synchronisation of WebVTT. - onInitPtsFound( + private onInitPtsFound( event: Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale }: InitPTSFoundData ) { @@ -195,7 +199,7 @@ export class TimelineController implements ComponentAPI { } } - getExistingTrack(trackName: string): TextTrack | null { + private getExistingTrack(trackName: string): TextTrack | null { const { media } = this; if (media) { for (let i = 0; i < media.textTracks.length; i++) { @@ -208,7 +212,7 @@ export class TimelineController implements ComponentAPI { return null; } - createCaptionsTrack(trackName: string) { + public createCaptionsTrack(trackName: string) { if (this.config.renderTextTracksNatively) { this.createNativeTrack(trackName); } else { @@ -216,7 +220,7 @@ export class TimelineController implements ComponentAPI { } } - createNativeTrack(trackName: string) { + private createNativeTrack(trackName: string) { if (this.captionsTracks[trackName]) { return; } @@ -238,7 +242,7 @@ export class TimelineController implements ComponentAPI { } } - createNonNativeTrack(trackName: string) { + private createNonNativeTrack(trackName: string) { if (this.nonNativeCaptionsTracks[trackName]) { return; } @@ -259,7 +263,7 @@ export class TimelineController implements ComponentAPI { this.hls.trigger(Events.NON_NATIVE_TEXT_TRACKS_FOUND, { tracks: [track] }); } - createTextTrack( + private createTextTrack( kind: TextTrackKind, label: string, lang?: string @@ -271,16 +275,19 @@ export class TimelineController implements ComponentAPI { return media.addTextTrack(kind, label, lang); } - destroy() { + public destroy() { this._unregisterListeners(); } - onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData) { + private onMediaAttaching( + event: Events.MEDIA_ATTACHING, + data: MediaAttachingData + ) { this.media = data.media; this._cleanTracks(); } - onMediaDetaching() { + private onMediaDetaching() { const { captionsTracks } = this; Object.keys(captionsTracks).forEach((trackName) => { clearCurrentCues(captionsTracks[trackName]); @@ -289,7 +296,7 @@ export class TimelineController implements ComponentAPI { this.nonNativeCaptionsTracks = {}; } - onManifestLoading() { + private onManifestLoading() { this.lastSn = -1; // Detect discontinuity in fragment parsing this.prevCC = -1; this.vttCCs = newVTTCCs(); // Detect discontinuity in subtitle manifests @@ -307,7 +314,7 @@ export class TimelineController implements ComponentAPI { } } - _cleanTracks() { + private _cleanTracks() { // clear outdated subtitles const { media } = this; if (!media) { @@ -321,7 +328,7 @@ export class TimelineController implements ComponentAPI { } } - onSubtitleTracksUpdated( + private onSubtitleTracksUpdated( event: Events.SUBTITLE_TRACKS_UPDATED, data: SubtitleTracksUpdatedData ) { @@ -353,7 +360,9 @@ export class TimelineController implements ComponentAPI { textTrack = inUseTrack; } } - if (!textTrack) { + if (textTrack) { + clearCurrentCues(textTrack); + } else { textTrack = this.createTextTrack( 'subtitles', track.name, @@ -385,7 +394,10 @@ export class TimelineController implements ComponentAPI { } } - onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData) { + private onManifestLoaded( + event: Events.MANIFEST_LOADED, + data: ManifestLoadedData + ) { if (this.config.enableCEA708Captions && data.captions) { data.captions.forEach((captionsTrack) => { const instreamIdMatch = /(?:CC|SERVICE)([1-4])/.exec( @@ -411,26 +423,10 @@ export class TimelineController implements ComponentAPI { } } - onFragLoaded(event: Events.FRAG_LOADED, data: FragLoadedData) { + private onFragLoaded(event: Events.FRAG_LOADED, data: FragLoadedData) { const { frag, payload } = data; - const { - cea608Parser1, - cea608Parser2, - initPTS, - lastSn, - unparsedVttFrags, - } = this; - if (frag.type === PlaylistLevelType.MAIN) { - const sn = frag.sn; - // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack - if (sn !== lastSn + 1) { - if (cea608Parser1 && cea608Parser2) { - cea608Parser1.reset(); - cea608Parser2.reset(); - } - } - this.lastSn = sn as number; - } else if (frag.type === PlaylistLevelType.SUBTITLE) { + const { initPTS, unparsedVttFrags } = this; + if (frag.type === PlaylistLevelType.SUBTITLE) { // If fragment is subtitle type, parse as WebVTT. if (payload.byteLength) { // We need an initial synchronisation PTS. Store fragments as long as none has arrived. @@ -557,39 +553,18 @@ export class TimelineController implements ComponentAPI { } } - private _appendCues(cues, fragLevel) { + private _appendCues(cues: VTTCue[], fragLevel: number) { const hls = this.hls; if (this.config.renderTextTracksNatively) { const textTrack = this.textTracks[fragLevel]; // WebVTTParser.parse is an async method and if the currently selected text track mode is set to "disabled" // before parsing is done then don't try to access currentTrack.cues.getCueById as cues will be null // and trying to access getCueById method of cues will throw an exception - // Because we check if the mode is diabled, we can force check `cues` below. They can't be null. + // Because we check if the mode is disabled, we can force check `cues` below. They can't be null. if (textTrack.mode === 'disabled') { return; } - // Sometimes there are cue overlaps on segmented vtts so the same - // cue can appear more than once in different vtt files. - // This avoid showing duplicated cues with same timecode and text. - cues - .filter((cue) => !textTrack.cues!.getCueById(cue.id)) - .forEach((cue) => { - try { - textTrack.addCue(cue); - if (!textTrack.cues!.getCueById(cue.id)) { - throw new Error(`addCue is failed for: ${cue}`); - } - } catch (err) { - logger.debug(`Failed occurred on adding cues: ${err}`); - const textTrackCue = new (self.TextTrackCue as any)( - cue.startTime, - cue.endTime, - cue.text - ); - textTrackCue.id = cue.id; - textTrack.addCue(textTrackCue); - } - }); + cues.forEach((cue) => addCueToTrack(textTrack, cue)); } else { const currentTrack = this.tracks[fragLevel]; const track = currentTrack.default ? 'default' : 'subtitles' + fragLevel; @@ -597,7 +572,10 @@ export class TimelineController implements ComponentAPI { } } - onFragDecrypted(event: Events.FRAG_DECRYPTED, data: FragDecryptedData) { + private onFragDecrypted( + event: Events.FRAG_DECRYPTED, + data: FragDecryptedData + ) { const { frag } = data; if (frag.type === PlaylistLevelType.SUBTITLE) { if (!Number.isFinite(this.initPTS[frag.cc])) { @@ -611,20 +589,32 @@ export class TimelineController implements ComponentAPI { } } - onSubtitleTracksCleared() { + private onSubtitleTracksCleared() { this.tracks = []; this.captionsTracks = {}; } - onFragParsingUserdata( + private onFragParsingUserdata( event: Events.FRAG_PARSING_USERDATA, data: FragParsingUserdataData ) { - const { cea608Parser1, cea608Parser2 } = this; + const { cea608Parser1, cea608Parser2, lastSn } = this; if (!this.enabled || !(cea608Parser1 && cea608Parser2)) { return; } + // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack + if (data.frag.type === PlaylistLevelType.MAIN) { + const sn = data.frag.sn; + if (sn !== lastSn + 1) { + if (cea608Parser1 && cea608Parser2) { + cea608Parser1.reset(); + cea608Parser2.reset(); + } + } + this.lastSn = sn as number; + } + // If the event contains captions (found in the bytes property), push all bytes into the parser immediately // It will create the proper timestamps based on the PTS value for (let i = 0; i < data.samples.length; i++) { @@ -637,7 +627,25 @@ export class TimelineController implements ComponentAPI { } } - extractCea608Data(byteArray: Uint8Array): number[][] { + onBufferFlushing( + event: Events.BUFFER_FLUSHING, + { startOffset, endOffset, type }: BufferFlushingData + ) { + // Clear 608 CC cues from the back buffer + // Forward cues are never removed because we can loose streamed 608 content from recent fragments + if (!type || type === 'video') { + const { media } = this; + if (!media || media.currentTime < endOffset) { + return; + } + const { captionsTracks } = this; + Object.keys(captionsTracks).forEach((trackName) => + removeCuesInRange(captionsTracks[trackName], startOffset, endOffset) + ); + } + } + + private extractCea608Data(byteArray: Uint8Array): number[][] { const count = byteArray[0] & 31; let position = 2; const actualCCBytes: number[][] = [[], []]; diff --git a/src/utils/cues.ts b/src/utils/cues.ts index f838825ace5..272d316b324 100644 --- a/src/utils/cues.ts +++ b/src/utils/cues.ts @@ -1,5 +1,7 @@ import { fixLineBreaks } from './vttparser'; import type { CaptionScreen, Row } from './cea-608-parser'; +import { generateCueId } from './webvtt-parser'; +import { addCueToTrack } from './texttrack-utils'; const WHITESPACE_CHAR = /\s/; @@ -50,26 +52,32 @@ export function newCue( endTime += 0.0001; } - cue = new Cue(startTime, endTime, fixLineBreaks(text.trim())); - if (indent >= 16) { indent--; } else { indent++; } - cue.line = r + 1; - cue.align = 'left'; - // Clamp the position between 10 and 80 percent (CEA-608 PAC indent code) - // https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/608toVTT.html#positioning-in-cea-608 - // Firefox throws an exception and captions break with out of bounds 0-100 values - cue.position = 10 + Math.min(80, Math.floor((indent * 8) / 32) * 10); - result.push(cue); + const cueText = fixLineBreaks(text.trim()); + const id = generateCueId(startTime, endTime, cueText); + + // If this cue already exists in the track do not push it + if (!track || !track.cues || !track.cues.getCueById(id)) { + cue = new Cue(startTime, endTime, cueText); + cue.id = id; + cue.line = r + 1; + cue.align = 'left'; + // Clamp the position between 10 and 80 percent (CEA-608 PAC indent code) + // https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/608toVTT.html#positioning-in-cea-608 + // Firefox throws an exception and captions break with out of bounds 0-100 values + cue.position = 10 + Math.min(80, Math.floor((indent * 8) / 32) * 10); + result.push(cue); + } } } if (track && result.length) { // Sort bottom cues in reverse order so that they render in line order when overlapping in Chrome - const sortedCues = result.sort((cueA, cueB) => { + result.sort((cueA, cueB) => { if (cueA.line === 'auto' || cueB.line === 'auto') { return 0; } @@ -78,9 +86,7 @@ export function newCue( } return cueA.line - cueB.line; }); - for (let i = 0; i < sortedCues.length; i++) { - track.addCue(sortedCues[i]); - } + result.forEach((cue) => addCueToTrack(track, cue)); } return result; } diff --git a/src/utils/imsc1-ttml-parser.ts b/src/utils/imsc1-ttml-parser.ts index 38cea72feb1..4ed41d528da 100644 --- a/src/utils/imsc1-ttml-parser.ts +++ b/src/utils/imsc1-ttml-parser.ts @@ -3,6 +3,7 @@ import { parseTimeStamp } from './vttparser'; import VTTCue from './vttcue'; import { utf8ArrayToStr } from '../demux/id3'; import { toTimescaleFromScale } from './timescale-conversion'; +import { generateCueId } from './webvtt-parser'; export const IMSC1_CODEC = 'stpp.ttml.im1t'; @@ -91,6 +92,7 @@ function parseTTML(ttml: string, syncTime: number): Array { endTime = startTime + duration; } const cue = new VTTCue(startTime - syncTime, endTime - syncTime, cueText); + cue.id = generateCueId(cue.startTime, cue.endTime, cue.text); const region = regionElements[cueElement.getAttribute('region')]; const style = styleElements[cueElement.getAttribute('style')]; diff --git a/src/utils/texttrack-utils.ts b/src/utils/texttrack-utils.ts index d3e12414a06..ed547230c97 100644 --- a/src/utils/texttrack-utils.ts +++ b/src/utils/texttrack-utils.ts @@ -1,3 +1,5 @@ +import { logger } from './logger'; + export function sendAddTrackEvent(track: TextTrack, videoEl: HTMLMediaElement) { let event: Event; try { @@ -11,18 +13,74 @@ export function sendAddTrackEvent(track: TextTrack, videoEl: HTMLMediaElement) { videoEl.dispatchEvent(event); } -export function clearCurrentCues(track: TextTrack) { - if (track?.cues) { - // When track.mode is disabled, track.cues will be null. - // To guarantee the removal of cues, we need to temporarily - // change the mode to hidden - if (track.mode === 'disabled') { - track.mode = 'hidden'; - } - while (track.cues.length > 0) { - track.removeCue(track.cues[0]); +export function addCueToTrack(track: TextTrack, cue: VTTCue) { + // Sometimes there are cue overlaps on segmented vtts so the same + // cue can appear more than once in different vtt files. + // This avoid showing duplicated cues with same timecode and text. + const mode = track.mode; + if (mode === 'disabled') { + track.mode = 'hidden'; + } + if (track.cues && !track.cues.getCueById(cue.id)) { + try { + track.addCue(cue); + if (!track.cues.getCueById(cue.id)) { + throw new Error(`addCue is failed for: ${cue}`); + } + } catch (err) { + logger.debug(`[texttrack-utils]: ${err}`); + const textTrackCue = new (self.TextTrackCue as any)( + cue.startTime, + cue.endTime, + cue.text + ); + textTrackCue.id = cue.id; + track.addCue(textTrackCue); } } + if (mode === 'disabled') { + track.mode = mode; + } +} + +export function clearCurrentCues(track: TextTrack) { + // When track.mode is disabled, track.cues will be null. + // To guarantee the removal of cues, we need to temporarily + // change the mode to hidden + const mode = track.mode; + if (mode === 'disabled') { + track.mode = 'hidden'; + } + if (!track.cues) { + return; + } + for (let i = track.cues.length; i--; ) { + track.removeCue(track.cues[i]); + } + if (mode === 'disabled') { + track.mode = mode; + } +} + +export function removeCuesInRange( + track: TextTrack, + start: number, + end: number +) { + const mode = track.mode; + if (mode === 'disabled') { + track.mode = 'hidden'; + } + if (!track.cues || !track.cues.length) { + return; + } + const cues = getCuesInRange(track.cues, start, end); + for (let i = 0; i < cues.length; i++) { + track.removeCue(cues[i]); + } + if (mode === 'disabled') { + track.mode = mode; + } } // Find first cue starting after given time. diff --git a/src/utils/webvtt-parser.ts b/src/utils/webvtt-parser.ts index 1d72ca034ad..d86233fc043 100644 --- a/src/utils/webvtt-parser.ts +++ b/src/utils/webvtt-parser.ts @@ -51,6 +51,16 @@ const hash = function (text: string) { return (hash >>> 0).toString(); }; +// Create a unique hash id for a cue based on start/end times and text. +// This helps timeline-controller to avoid showing repeated captions. +export function generateCueId( + startTime: number, + endTime: number, + text: string +) { + return hash(startTime.toString()) + hash(endTime.toString()) + hash(text); +} + const calculateOffset = function (vttCCs: VTTCCs, cc, presentationTime) { let currCC = vttCCs[cc]; let prevCC = vttCCs[currCC.prevCC]; @@ -135,18 +145,14 @@ export function parseWebVTT( cue.endTime = startTime + duration; } - // If the cue was not assigned an id from the VTT file (line above the content), - // then create a unique hash id for a cue based on start/end times. - // This helps timeline-controller to avoid showing repeated captions. + // Fix encoding of special characters + cue.text = decodeURIComponent(encodeURIComponent(cue.text)); + + // If the cue was not assigned an id from the VTT file (line above the content), create one. if (!cue.id) { - cue.id = - hash(cue.startTime.toString()) + - hash(cue.endTime.toString()) + - hash(cue.text); + cue.id = generateCueId(cue.startTime, cue.endTime, cue.text); } - // Fix encoding of special characters - cue.text = decodeURIComponent(encodeURIComponent(cue.text)); if (cue.endTime > 0) { cues.push(cue); } From 23a0cacbc92e2f4efd0290870cbda6de69ea84c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Feb 2021 07:46:10 +0000 Subject: [PATCH 023/327] [skip ci]: Bump eslint from 7.18.0 to 7.19.0 Bumps [eslint](https://github.com/eslint/eslint) from 7.18.0 to 7.19.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.18.0...v7.19.0) Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 81a02f87d4e..0f1b15f14e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9477,9 +9477,9 @@ } }, "eslint": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", - "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz", + "integrity": "sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -10578,9 +10578,9 @@ }, "dependencies": { "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true } } From d609e673c4c6fb1d4fa344716138accf915f55f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Feb 2021 08:59:21 +0000 Subject: [PATCH 024/327] [skip ci]: Bump chromedriver from 87.0.7 to 88.0.0 Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from 87.0.7 to 88.0.0. - [Release notes](https://github.com/giggio/node-chromedriver/releases) - [Commits](https://github.com/giggio/node-chromedriver/compare/87.0.7...88.0.0) Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f1b15f14e2..26ead565695 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5325,9 +5325,9 @@ }, "dependencies": { "follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz", + "integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==", "dev": true } } @@ -6508,9 +6508,9 @@ } }, "chromedriver": { - "version": "87.0.7", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-87.0.7.tgz", - "integrity": "sha512-7J7iN2rJuSDsKb9BUUMewJt07PuTlZYd809D10dUCT1rjMD3i2jUw7dum9RxdC1xO3aFwMd8TwZ5NR82T+S+Dg==", + "version": "88.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-88.0.0.tgz", + "integrity": "sha512-EE8rXh7mikxk3VWKjUsz0KCUX8d3HkQ4HgMNJhWrWjzju12dKPPVHO9MY+YaAI5ryXrXGNf0Y4HcNKgW36P/CA==", "dev": true, "requires": { "@testim/chrome-version": "^1.0.7", @@ -12662,9 +12662,9 @@ }, "dependencies": { "ip-regex": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.2.0.tgz", - "integrity": "sha512-n5cDDeTWWRwK1EBoWwRti+8nP4NbytBBY0pldmnIkq6Z55KNFmWofh4rl9dPZpj+U/nVq7gweR3ylrvMt4YZ5A==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", "dev": true } } diff --git a/package.json b/package.json index bd34f1ee2ae..07edc6ff2cd 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "chai": "^4.2.0", "chart.js": "^2.9.4", "chartjs-plugin-zoom": "^0.7.7", - "chromedriver": "^87.0.4", + "chromedriver": "^88.0.0", "eslint": "^7.16.0", "eslint-config-prettier": "^7.1.0", "eslint-plugin-import": "^2.22.1", From a25f0b1533afd7554f6756dd38f574cd08a1400b Mon Sep 17 00:00:00 2001 From: OrenMe Date: Mon, 1 Feb 2021 17:59:14 +0200 Subject: [PATCH 025/327] fix: duplicate segmented vtt lines --- src/utils/webvtt-parser.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/utils/webvtt-parser.ts b/src/utils/webvtt-parser.ts index d86233fc043..be36bdfebf7 100644 --- a/src/utils/webvtt-parser.ts +++ b/src/utils/webvtt-parser.ts @@ -145,12 +145,15 @@ export function parseWebVTT( cue.endTime = startTime + duration; } + //trim trailing webvtt block whitespaces + const text = cue.text.trim(); + // Fix encoding of special characters - cue.text = decodeURIComponent(encodeURIComponent(cue.text)); + cue.text = decodeURIComponent(encodeURIComponent(text)); // If the cue was not assigned an id from the VTT file (line above the content), create one. if (!cue.id) { - cue.id = generateCueId(cue.startTime, cue.endTime, cue.text); + cue.id = generateCueId(cue.startTime, cue.endTime, text); } if (cue.endTime > 0) { From 02c3c7393d17a5f9a47ddc4a133a51c6219c0766 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Feb 2021 22:37:39 +0000 Subject: [PATCH 026/327] [skip ci]: Bump netlify-cli from 2.71.0 to 3.4.6 (#3429) Bumps [netlify-cli](https://github.com/netlify/cli) from 2.71.0 to 3.4.6. - [Release notes](https://github.com/netlify/cli/releases) - [Changelog](https://github.com/netlify/cli/blob/master/CHANGELOG.md) - [Commits](https://github.com/netlify/cli/compare/v2.71.0...v3.4.6) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 1070 +++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 488 insertions(+), 584 deletions(-) diff --git a/package-lock.json b/package-lock.json index 26ead565695..8de2dc94413 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1180,18 +1180,18 @@ } }, "@bugsnag/browser": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.5.4.tgz", - "integrity": "sha512-WyhDWeE2MXQTo9uJjpCOxqTWDlVgX/yKE/VZ0nVm4em2AxUmjAPM8jk9YOTYCKQfQFnIpgf62DjVlsszikUIBw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.6.0.tgz", + "integrity": "sha512-8sth20TM8BVfebkqxqJQOCM2P2L4foOgFH2QA3ruG0iknDKZDhE7XcoWgmUP9zVSNJqkCyiIzcBOuiwZW8JaSQ==", "dev": true, "requires": { - "@bugsnag/core": "^7.5.4" + "@bugsnag/core": "^7.6.0" } }, "@bugsnag/core": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.5.4.tgz", - "integrity": "sha512-QOvtWzM0XJTk5QCpiDFTva6FJXCKuKQHJu7sjrZwYA/7fblypl+ClP7inz9At5ijkKGm2pLyvZ9vvT2rq9TXuw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.6.0.tgz", + "integrity": "sha512-hBYAZJw4ScqoyM1jA1x/m2e4iS2EqYEs0I2hdzBCZFv2ls17ILmU58eRSyVdUfyzbv0J7Hi6DwwBGC4Yb6ROZA==", "dev": true, "requires": { "@bugsnag/cuid": "^3.0.0", @@ -1208,22 +1208,22 @@ "dev": true }, "@bugsnag/js": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.5.4.tgz", - "integrity": "sha512-V1+482YPndAD0c0ju7Ik1dXunyKAssZWUIqOMs7Ff3PtZb1107sJ4Hw1E7ZusQvvI/IjA6FO3ZJkmzjIJjQ+UA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.6.0.tgz", + "integrity": "sha512-EcI3sTpyOs94/OOjwI7fOg1iZ800o3kkOAipAnULRoP62j1vmErH2l/2xubny7g0JTOL59iZEkt+5O5MhbQJ2A==", "dev": true, "requires": { - "@bugsnag/browser": "^7.5.4", - "@bugsnag/node": "^7.5.4" + "@bugsnag/browser": "^7.6.0", + "@bugsnag/node": "^7.6.0" } }, "@bugsnag/node": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.5.4.tgz", - "integrity": "sha512-lfHEU2wsBO/hhHjsY6kqD/Ga6A3bzROeZEuE7/cT0xzDUvBnUsrw75/xZ5EyY3Xpyfe/Gw9t336semIqz46+cw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.6.0.tgz", + "integrity": "sha512-n3BVb04bq4z16nOM4gbWoXsi6k8R9bryWS/NAYi/jQg6tgyBkNYzmK0ojf3fYJ7uAgCjUJNMX6S9UHSJy/MMcQ==", "dev": true, "requires": { - "@bugsnag/core": "^7.5.4", + "@bugsnag/core": "^7.6.0", "byline": "^5.0.0", "error-stack-parser": "^2.0.2", "iserror": "^0.0.2", @@ -1779,14 +1779,14 @@ } }, "@netlify/build": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-8.0.2.tgz", - "integrity": "sha512-Qz1aRmtCysEy/Kd6SSOxdvrIYW8aFv86ujQJY2SGJpwJtfIAUlNxIHBtyxuv+ReFNQ4ONQNZCfGh+Wo37OnaNg==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@netlify/build/-/build-8.3.4.tgz", + "integrity": "sha512-DHDvJoM/CtlVuUQoeWzluE4nIabwOKJdIp7yfU/MkpXwXjI1RSPCRvmtzK7A1CUkTZ7sH0m2otgpihgf4pgslw==", "dev": true, "requires": { "@bugsnag/js": "^7.0.0", "@netlify/cache-utils": "^1.0.6", - "@netlify/config": "^2.4.3", + "@netlify/config": "^3.0.1", "@netlify/functions-utils": "^1.3.4", "@netlify/git-utils": "^1.0.6", "@netlify/plugin-edge-handlers": "^1.8.0", @@ -2022,9 +2022,9 @@ "dev": true }, "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -2275,11 +2275,12 @@ } }, "@netlify/config": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-2.4.3.tgz", - "integrity": "sha512-Uz7Oo3tJP2VTgNgsJtRlwAhO5jTozkpNMCKALb814ssJKx7nE/4QvNxJPCQNBDXY9BSeXVIPfy0vMfshxatL+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-3.1.1.tgz", + "integrity": "sha512-FUOXzkn/iHrWU8wezWnAVsO7x/l2mPXBpcaP2X2BIcMzOePvzreHPCAplekjNof2Q1QPjHfo746Bd/CyMIUOeg==", "dev": true, "requires": { + "@ungap/from-entries": "^0.2.1", "array-flat-polyfill": "^1.0.1", "chalk": "^3.0.0", "deepmerge": "^4.2.2", @@ -2555,10 +2556,188 @@ } } }, + "@netlify/framework-info": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-2.1.1.tgz", + "integrity": "sha512-JblagtBYtOwuxZy94jXPNc3p+QOuyx+kZurfduswYbT8VWPlyuiL4AQFKaIJvdZS6O9G8uKEiFGsKFhRTx6vAA==", + "dev": true, + "requires": { + "ajv": "^7.0.0", + "filter-obj": "^2.0.1", + "is-plain-obj": "^2.1.0", + "locate-path": "^5.0.0", + "p-filter": "^2.1.0", + "p-locate": "^4.1.0", + "read-pkg-up": "^7.0.1", + "semver": "^7.3.4", + "yargs": "^15.4.1" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "@netlify/functions-utils": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.4.tgz", - "integrity": "sha512-AkVd03D6K7Uwli+t5xTMm5c1jn1HRFY3YgslLV91huHI++3CjOsGpsnDfhoN2kj1aN8OLqliTOvs4PQHC2dKpw==", + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.9.tgz", + "integrity": "sha512-i3HE/2NXqjUvShOqWCwPsBLV7puloMK6R7u3O6M3m7WacYKD8nh7dwkNIZSq7QbEueljslH8rwzbNw5EtyKIHw==", "dev": true, "requires": { "@netlify/zip-it-and-ship-it": "^2.0.0", @@ -2575,15 +2754,15 @@ } }, "@netlify/git-utils": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.6.tgz", - "integrity": "sha512-JpuvzCTf9QXVEgVA4mSshH6fi9Dtg0Pqe5d19yaN2f1H9DNnWro3kJUaoR68Hfo0rBls6kYwWJuNZ/csb03VuQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.7.tgz", + "integrity": "sha512-+CT/1D13Uxi3Qlnf0/F2XpmBsTYGCax0SQJhIrq6hLJXJt0Ej2FBA3Rq7XxOXibAptK1Dw2LUi1JWHQ36H/3aw==", "dev": true, "requires": { "execa": "^3.4.0", "map-obj": "^4.1.0", "micromatch": "^4.0.2", - "moize": "^5.4.7", + "moize": "^6.0.0", "path-exists": "^4.0.0" }, "dependencies": { @@ -2685,27 +2864,27 @@ } }, "@netlify/open-api": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-1.0.0.tgz", - "integrity": "sha512-LAicAlsAZXybGtKzaOTmIYelSe82vgZlc17IeNUQxab2IlUCH7VhTKCx9EyJEgiXhLvmYoOjuYE1Ee9ZsnrybA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-1.3.0.tgz", + "integrity": "sha512-GcCPXIWI8VDBsLN4nPvb6sKS9tbi4lrHLhex90hT27nwTDeu4HgGE93YilcsgZ1LLODJNxC5LdfTNLtvEHMKVg==", "dev": true }, "@netlify/plugin-edge-handlers": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@netlify/plugin-edge-handlers/-/plugin-edge-handlers-1.11.0.tgz", - "integrity": "sha512-2GLEpN+OgzyPFIAhhJxH4ooxKbvemYuCUIMXlOo2ONK7Fa8nsxSq9ngupFRY1Ld5EsypR/Zy5fqGDfuCccSBAw==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@netlify/plugin-edge-handlers/-/plugin-edge-handlers-1.11.3.tgz", + "integrity": "sha512-ewAXDU46PONZ279M1S7hrwIvdyBjwDJL+DkA1iRFKydEMAIl5Z/HyAM4bX2OoRDi2eaIKLRO06dMAjaYgzpaog==", "dev": true, "requires": { "@babel/core": "^7.11.4", "@babel/preset-env": "^7.11.5", "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-commonjs": "^15.0.0", + "@rollup/plugin-commonjs": "^17.0.0", "@rollup/plugin-inject": "^4.0.2", "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^9.0.0", + "@rollup/plugin-node-resolve": "^11.0.0", "@types/node": "^14.0.27", "buffer-es6": "^4.9.3", - "del": "^5.1.0", + "del": "^6.0.0", "make-dir": "^3.1.0", "node-fetch": "^2.6.1", "path-type": "^4.0.0", @@ -2717,9 +2896,31 @@ }, "dependencies": { "@types/node": { - "version": "14.14.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", + "version": "14.14.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", + "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==", + "dev": true + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "make-dir": { @@ -2731,6 +2932,15 @@ "semver": "^6.0.0" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -2852,41 +3062,41 @@ } }, "@netlify/traffic-mesh-agent": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@netlify/traffic-mesh-agent/-/traffic-mesh-agent-0.27.0.tgz", - "integrity": "sha512-a+jXM75Ir9PavNTzDRkZWQT7jHc02wWF8mRYXWbvku+VLqmmkA61RyhAgSeo5dMWSdMofSRkoifnW7leyv7Obw==", + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@netlify/traffic-mesh-agent/-/traffic-mesh-agent-0.27.10.tgz", + "integrity": "sha512-HZXEdIXzg8CpysYRDVXkBpmjOj/C8Zb8Q/qkkt9x+npJ56HeX6sXAE4vK4SMCRLkkbQ2VyYTaDKg++GefeB2Gg==", "dev": true, "requires": { - "@netlify/traffic-mesh-agent-darwin-x64": "^0.27.0", - "@netlify/traffic-mesh-agent-linux-x64": "^0.27.0", - "@netlify/traffic-mesh-agent-win32-x64": "^0.27.0" + "@netlify/traffic-mesh-agent-darwin-x64": "^0.27.10", + "@netlify/traffic-mesh-agent-linux-x64": "^0.27.10", + "@netlify/traffic-mesh-agent-win32-x64": "^0.27.10" } }, "@netlify/traffic-mesh-agent-darwin-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@netlify/traffic-mesh-agent-darwin-x64/-/traffic-mesh-agent-darwin-x64-0.27.0.tgz", - "integrity": "sha512-a0EDNrdLBjxp+GYj/WQSifuQZorFQkY6spO4wuOl3mQV3tKTkBmu09+FsfitYpgZHDMoPzfhvURJrUtJIHTgqQ==", + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@netlify/traffic-mesh-agent-darwin-x64/-/traffic-mesh-agent-darwin-x64-0.27.10.tgz", + "integrity": "sha512-j2blCh3TKNV35VPF9Zf/LM3v6pH/gz/Y7uu/78RLbgNvCW0vGN7b1GgFnXQKwrvbL6tRGumJS2P5PWUfEsKOBA==", "dev": true, "optional": true }, "@netlify/traffic-mesh-agent-linux-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@netlify/traffic-mesh-agent-linux-x64/-/traffic-mesh-agent-linux-x64-0.27.0.tgz", - "integrity": "sha512-m7p/0eTXKILxCpTqQOmBkYdIjYKwSC2KZbPpDJ4sYfnMIF3qa9uMp8qrK9At/oGPckeiTq4Id775veldhwt2lw==", + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@netlify/traffic-mesh-agent-linux-x64/-/traffic-mesh-agent-linux-x64-0.27.10.tgz", + "integrity": "sha512-JdeGT356TtqbxY6IjsS+wik68V0iNGdRsGV4cYOx/aAfclAyZ9DL29A4nzobyq5J+s5binrbKpix26/WKi+sqA==", "dev": true, "optional": true }, "@netlify/traffic-mesh-agent-win32-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@netlify/traffic-mesh-agent-win32-x64/-/traffic-mesh-agent-win32-x64-0.27.0.tgz", - "integrity": "sha512-u6Beazs0KWRcEx9q2n417Sj7+WGrDTtDGmmKPTE6WexFt6uY1oiq3AR+ohCtu1lIIsmAfAYd8O5dSOnyAT8dFg==", + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@netlify/traffic-mesh-agent-win32-x64/-/traffic-mesh-agent-win32-x64-0.27.10.tgz", + "integrity": "sha512-ea6S9ik5X0TlA2e+jXk5D7lfvArPZjyQoIBEo7G1Tjw/vUU5Fx6KLfXv1iy7eJy+ENTLoyidscAjJ2wXlHI47g==", "dev": true, "optional": true }, "@netlify/zip-it-and-ship-it": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-2.0.0.tgz", - "integrity": "sha512-DQQldFTRmEPHpvvKxAKLNk/RqVIfzZGsBcbmruy3zupPG2W+pGHnQUSMNXrUZmMkqekDh0nCHf8MfG0EakRqGg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-2.1.3.tgz", + "integrity": "sha512-nYHM4dnlua/aCe74ZPZcIlWAN1QbyGDaWbJi+Qkb0VSe4yX6PYvPNeymABggDbA9xFhk+nEA98wSu2A/beHPfQ==", "dev": true, "requires": { "archiver": "^4.0.0", @@ -3568,15 +3778,15 @@ "dev": true }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "has-flag": { @@ -3593,14 +3803,6 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - } } }, "load-json-file": { @@ -3669,9 +3871,9 @@ "dev": true }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true } } @@ -3683,21 +3885,21 @@ "dev": true }, "@octokit/auth-token": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.4.tgz", - "integrity": "sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", + "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", "dev": true, "requires": { - "@octokit/types": "^6.0.0" + "@octokit/types": "^6.0.3" } }, "@octokit/endpoint": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.10.tgz", - "integrity": "sha512-9+Xef8nT7OKZglfkOMm7IL6VwxXUQyR7DUSU0LH/F7VNqs8vyd7es5pTfz9E7DwUIx7R3pGscxu1EBhYljyu7Q==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.11.tgz", + "integrity": "sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==", "dev": true, "requires": { - "@octokit/types": "^6.0.0", + "@octokit/types": "^6.0.3", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" }, @@ -3717,9 +3919,9 @@ } }, "@octokit/openapi-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-2.2.0.tgz", - "integrity": "sha512-274lNUDonw10kT8wHg8fCcUc1ZjZHbWv0/TbAwb0ojhBQqZYc1cQ/4yqTVTtPMDeZ//g7xVEYe/s3vURkRghPg==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-3.4.1.tgz", + "integrity": "sha512-7Sjm3UwEAM11f+ck9+qlyEfgl8hCk5sSZBU2qcWY8+8ibowjqcwxhhtvY0/pjHPF8mcvmedFpGmmIYs2qM9/+Q==", "dev": true }, "@octokit/plugin-paginate-rest": { @@ -3743,9 +3945,9 @@ } }, "@octokit/plugin-request-log": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz", - "integrity": "sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz", + "integrity": "sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ==", "dev": true }, "@octokit/plugin-rest-endpoint-methods": { @@ -3770,9 +3972,9 @@ } }, "@octokit/request": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.12.tgz", - "integrity": "sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg==", + "version": "5.4.13", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.13.tgz", + "integrity": "sha512-WcNRH5XPPtg7i1g9Da5U9dvZ6YbTffw9BN2rVezYiE7couoSyaRsw0e+Tl8uk1fArHE7Dn14U7YqUDy59WaqEw==", "dev": true, "requires": { "@octokit/endpoint": "^6.0.1", @@ -3786,12 +3988,12 @@ }, "dependencies": { "@octokit/request-error": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.4.tgz", - "integrity": "sha512-LjkSiTbsxIErBiRh5wSZvpZqT4t0/c9+4dOe0PII+6jXR+oj/h66s7E4a/MghV7iT8W9ffoQ5Skoxzs96+gBPA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.5.tgz", + "integrity": "sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==", "dev": true, "requires": { - "@octokit/types": "^6.0.0", + "@octokit/types": "^6.0.3", "deprecation": "^2.0.0", "once": "^1.4.0" } @@ -3857,19 +4059,19 @@ } }, "@octokit/types": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.2.1.tgz", - "integrity": "sha512-jHs9OECOiZxuEzxMZcXmqrEO8GYraHF+UzNVH2ACYh8e/Y7YoT+hUf9ldvVd6zIvWv4p3NdxbQ0xx3ku5BnSiA==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.7.0.tgz", + "integrity": "sha512-QiE7y2Brh0Bv61K//kFGJ6jCZihCf4fGL1FP0Oims5h2SlSYtDiAQMJW15s8udyLfjo/jY05G1YlN8ED/c6RNw==", "dev": true, "requires": { - "@octokit/openapi-types": "^2.2.0", + "@octokit/openapi-types": "^3.4.1", "@types/node": ">= 8" } }, "@rollup/plugin-babel": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.2.tgz", - "integrity": "sha512-MjmH7GvFT4TW8xFdIeFS3wqIX646y5tACdxkTO+khbHvS3ZcVJL6vkAHLw2wqPmkhwCfWHoNsp15VYNwW6JEJA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.3.tgz", + "integrity": "sha512-DOMc7nx6y5xFi86AotrFssQqCen6CxYn+zts5KSI879d4n1hggSb4TH3mjVgG17Vc3lZziWWfcXzrEmVdzPMdw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.10.4", @@ -3877,9 +4079,9 @@ } }, "@rollup/plugin-commonjs": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz", - "integrity": "sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", + "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -3939,9 +4141,9 @@ } }, "@rollup/plugin-node-resolve": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz", - "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.1.tgz", + "integrity": "sha512-zlBXR4eRS+2m79TsUZWhsd0slrHUYdRx4JF+aVQm+MI0wsKdlpC2vlDVjmlGvtZY1vsefOT9w3JxvmWSBei+Lg==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -3949,7 +4151,7 @@ "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", "is-module": "^1.0.0", - "resolve": "^1.17.0" + "resolve": "^1.19.0" }, "dependencies": { "is-core-module": { @@ -4167,9 +4369,9 @@ } }, "@types/http-proxy": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz", - "integrity": "sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==", + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz", + "integrity": "sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==", "dev": true, "requires": { "@types/node": "*" @@ -4240,9 +4442,9 @@ "dev": true }, "@types/node-fetch": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz", - "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==", + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz", + "integrity": "sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw==", "dev": true, "requires": { "@types/node": "*", @@ -5250,9 +5452,9 @@ "dev": true }, "aws-sdk": { - "version": "2.824.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.824.0.tgz", - "integrity": "sha512-9KNRQBkIMPn+6DWb4gR+RzqTMNyGLEwOgXbE4dDehOIAflfLnv3IFwLnzrhxJnleB4guYrILIsBroJFBzjiekg==", + "version": "2.834.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.834.0.tgz", + "integrity": "sha512-9WRULrn4qAmgXI+tEW/IG5s/6ixJGZqjPOrmJsFZQev7/WRkxAZmJAjcwd4Ifm/jsJbXx2FSwO76gOPEvu2LqA==", "dev": true, "requires": { "buffer": "4.9.2", @@ -5753,9 +5955,9 @@ } }, "before-after-hook": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", - "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.1.tgz", + "integrity": "sha512-5ekuQOvO04MDj7kYZJaMab2S8SPjGJbotVNyv7QYFCOAwrGZs/YnoDNlh1U+m5hl7H2D/+n0taaAV/tfyd3KMA==", "dev": true }, "better-assert": { @@ -6634,9 +6836,9 @@ } }, "cli-progress": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.8.2.tgz", - "integrity": "sha512-qRwBxLldMSfxB+YGFgNRaj5vyyHe1yMpVeDL79c+7puGujdKJHQHydgqXDcrkvQgJ5U/d3lpf6vffSoVVUftVQ==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.9.0.tgz", + "integrity": "sha512-g7rLWfhAo/7pF+a/STFH/xPyosaL1zgADhI0OM83hl3c7S43iGvJWEAV2QuDOnQ8i6EMBj/u4+NTd0d5L+4JfA==", "dev": true, "requires": { "colors": "^1.1.2", @@ -9322,6 +9524,12 @@ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, + "env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "dev": true + }, "envinfo": { "version": "7.7.3", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz", @@ -10295,9 +10503,9 @@ "dev": true }, "fast-equals": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-1.6.3.tgz", - "integrity": "sha512-4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.0.tgz", + "integrity": "sha512-u6RBd8cSiLLxAiC04wVsLV6GBFDOXcTCgWkd3wEoFXgidPSoAJENqC9m7Jb2vewSvjBIfXV6icKeh3GTKfIaXA==", "dev": true }, "fast-glob": { @@ -14254,12 +14462,35 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "fast-equals": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-1.6.3.tgz", + "integrity": "sha512-4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "micro-memoize": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-2.1.2.tgz", + "integrity": "sha512-COjNutiFgnDHXZEIM/jYuZPwq2h8zMUeScf6Sh6so98a+REqdlpaNS7Cb2ffGfK5I+xfgoA3Rx49NGuNJTJq3w==", + "dev": true + }, + "moize": { + "version": "5.4.7", + "resolved": "https://registry.npmjs.org/moize/-/moize-5.4.7.tgz", + "integrity": "sha512-7PZH8QFJ51cIVtDv7wfUREBd3gL59JB0v/ARA3RI9zkSRa9LyGjS1Bdldii2J1/NQXRQ/3OOVOSdnZrCcVaZlw==", + "dev": true, + "requires": { + "fast-equals": "^1.6.0", + "fast-stringify": "^1.1.0", + "micro-memoize": "^2.1.1" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14591,9 +14822,9 @@ "dev": true }, "micro-memoize": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-2.1.2.tgz", - "integrity": "sha512-COjNutiFgnDHXZEIM/jYuZPwq2h8zMUeScf6Sh6so98a+REqdlpaNS7Cb2ffGfK5I+xfgoA3Rx49NGuNJTJq3w==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.0.9.tgz", + "integrity": "sha512-Z2uZi/IUMGQDCXASdujXRqrXXEwSY0XffUrAOllhqzQI3wpUyZbiZTiE2JuYC0HSG2G7DbCS5jZmsEKEGZuemg==", "dev": true }, "micromatch": { @@ -14957,14 +15188,13 @@ } }, "moize": { - "version": "5.4.7", - "resolved": "https://registry.npmjs.org/moize/-/moize-5.4.7.tgz", - "integrity": "sha512-7PZH8QFJ51cIVtDv7wfUREBd3gL59JB0v/ARA3RI9zkSRa9LyGjS1Bdldii2J1/NQXRQ/3OOVOSdnZrCcVaZlw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/moize/-/moize-6.0.0.tgz", + "integrity": "sha512-/GXPWgxfgQAeM2S7IPh29MDbhK9ZF1YjzP6QRcJ1QcYrqehe6eFpAQZ88Xk/s4dy/wYhMY5axT1vaaWC+lllZA==", "dev": true, "requires": { - "fast-equals": "^1.6.0", - "fast-stringify": "^1.1.0", - "micro-memoize": "^2.1.1" + "fast-equals": "2.0.0", + "micro-memoize": "4.0.9" } }, "moment": { @@ -15194,28 +15424,28 @@ "dev": true }, "netlify": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/netlify/-/netlify-6.0.9.tgz", - "integrity": "sha512-izoELW+kE5ClHX85f5EExRo42H3hXESwSr69EJdCuDQlTP3JR09xQgZcWL5t7FNdkfBj7Kdhf62tk02TN4+YzA==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/netlify/-/netlify-6.1.6.tgz", + "integrity": "sha512-hjXoiqKHetP+OD/DmOLHeTW/AZvsitFCz5d1mOAivrnQXVKrKRS6XHbsLELiUuXv8hW1PrWnImFF0VdLPKo0wA==", "dev": true, "requires": { - "@netlify/open-api": "^1.0.0", - "@netlify/zip-it-and-ship-it": "^2.0.0", + "@netlify/open-api": "^1.3.0", + "@netlify/zip-it-and-ship-it": "^2.1.3", "backoff": "^2.5.0", - "clean-deep": "^3.3.0", + "clean-deep": "^3.4.0", "flush-write-stream": "^2.0.0", "folder-walker": "^3.2.0", "from2-array": "0.0.4", - "hasha": "^5.0.0", + "hasha": "^5.2.2", "lodash.camelcase": "^4.3.0", "micro-api-client": "^3.3.0", - "node-fetch": "^2.2.0", + "node-fetch": "^2.6.1", "omit.js": "^2.0.2", "p-map": "^3.0.0", - "p-wait-for": "^3.1.0", - "parallel-transform": "^1.1.0", + "p-wait-for": "^3.2.0", + "parallel-transform": "^1.2.0", "pump": "^3.0.0", - "qs": "^6.9.3", + "qs": "^6.9.6", "rimraf": "^3.0.2", "tempy": "^0.3.0", "through2-filter": "^3.0.0", @@ -15223,23 +15453,24 @@ }, "dependencies": { "qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", "dev": true } } }, "netlify-cli": { - "version": "2.71.0", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-2.71.0.tgz", - "integrity": "sha512-763qnilecCVkY6HsZl9Ke8ab4oXUghBJh2dgtg/ZGwgzuQNCjAlTT8n54DFxEuw9Sx0tySDviOLKimHITKa01Q==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.4.6.tgz", + "integrity": "sha512-ZrD6so7tmmatQTWh4U7gApxKmBj1P27Fzo2cdDqhkPUenJY5Iw3AuUY1AvQUCPyxC5Cbco2d3SQdldKQYoL9Qw==", "dev": true, "requires": { - "@netlify/build": "^8.0.0", - "@netlify/config": "^2.0.9", + "@netlify/build": "^8.0.5", + "@netlify/config": "^3.1.0", + "@netlify/framework-info": "^2.0.0", "@netlify/plugin-edge-handlers": "^1.10.0", - "@netlify/traffic-mesh-agent": "^0.27.0", + "@netlify/traffic-mesh-agent": "^0.27.10", "@netlify/zip-it-and-ship-it": "^2.0.0", "@oclif/command": "^1.6.1", "@oclif/config": "^1.15.1", @@ -15249,6 +15480,7 @@ "@oclif/plugin-not-found": "^1.1.4", "@oclif/plugin-plugins": "^1.9.3", "@octokit/rest": "^16.28.1", + "@sindresorhus/slugify": "^1.1.0", "@ungap/from-entries": "^0.2.1", "ansi-styles": "^5.0.0", "ascii-table": "0.0.9", @@ -15269,8 +15501,9 @@ "del": "^5.1.0", "dot-prop": "^5.1.0", "dotenv": "^8.2.0", + "env-paths": "^2.2.0", "envinfo": "^7.3.1", - "execa": "^3.4.0", + "execa": "^5.0.0", "express": "^4.17.1", "express-logging": "^1.1.1", "filter-obj": "^2.0.1", @@ -15289,14 +15522,15 @@ "isexe": "^2.0.0", "jwt-decode": "^3.0.0", "lambda-local": "^1.7.1", - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "lodash": "^4.17.20", "log-symbols": "^3.0.0", "make-dir": "^3.0.0", + "memoize-one": "^5.1.1", "minimist": "^1.2.5", "multiparty": "^4.2.1", "netlify": "^6.0.0", - "netlify-redirect-parser": "^2.5.0", + "netlify-redirect-parser": "^3.0.0", "netlify-redirector": "^0.2.0", "node-fetch": "^2.6.0", "open": "^7.0.0", @@ -15305,13 +15539,13 @@ "p-wait-for": "^3.0.0", "parse-github-url": "^1.0.2", "parse-gitignore": "^1.0.1", + "path-exists": "^4.0.0", "path-type": "^4.0.0", "prettyjson": "^1.2.1", "random-item": "^3.0.0", "raw-body": "^2.4.1", "resolve": "^1.12.0", "safe-join": "^0.1.3", - "semver": "^7.3.4", "static-server": "^2.2.1", "strip-ansi-control-characters": "^2.0.0", "to-readable-stream": "^2.1.0", @@ -15325,9 +15559,9 @@ }, "dependencies": { "ansi-styles": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.0.0.tgz", - "integrity": "sha512-6564t0m0fuQMnockqBv7wJxo9T5C2V9JpYXyNScfRDPVLusOQQhkpMGrFC17QbiolraQ1sMXX+Y5nJpjqozL4g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.1.0.tgz", + "integrity": "sha512-osxifZo3ar56+e8tdYreU6p8FZGciBHo5O0JoDAxMUqZuyNUb+yHEwYtJZ+Z32R459jEgtwVf1u8D7qYwU0l6w==", "dev": true }, "cookie": { @@ -15348,20 +15582,19 @@ } }, "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, @@ -15373,16 +15606,24 @@ "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + } } }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "dev": true }, "http-errors": { "version": "1.7.3", @@ -15397,6 +15638,12 @@ "toidentifier": "1.0.0" } }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", @@ -15404,12 +15651,32 @@ "dev": true }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } } }, "log-symbols": { @@ -15428,14 +15695,6 @@ "dev": true, "requires": { "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "npm-run-path": { @@ -15447,12 +15706,6 @@ "path-key": "^3.0.0" } }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -15501,6 +15754,12 @@ "unpipe": "1.0.0" } }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -15516,6 +15775,12 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -15558,383 +15823,13 @@ } }, "netlify-redirect-parser": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-2.5.0.tgz", - "integrity": "sha512-pF8BiOr3Pa4kQLLiOu53I0d30EIUDM0DYqYvCQmKD96cMX2qLh/QsxT0Zh18IrL5a0IWQ236/o76lTe0yEEw6w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.2.tgz", + "integrity": "sha512-ZpYwJh/aTBAYuS9dLTVTfDu1rf/+qJ3hsjiawW7A2NmIErN9qb9k08s5I6AUwPQlG4U50MtUnUwpHyMobcbkzA==", "dev": true, "requires": { - "@netlify/config": "^0.11.5", + "@netlify/config": "^3.0.2", "lodash.isplainobject": "^4.0.6" - }, - "dependencies": { - "@netlify/config": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-0.11.11.tgz", - "integrity": "sha512-Z7yzbx5qCX2I5RLlNyo0MMQ6GKJc8o5Nej9yspCavjqgYlUS7VJfbeE67WNxC26FXwDUqq00zJ0MrCS0Un1YOw==", - "dev": true, - "requires": { - "array-flat-polyfill": "^1.0.1", - "chalk": "^3.0.0", - "deepmerge": "^4.2.2", - "execa": "^3.4.0", - "fast-safe-stringify": "^2.0.7", - "filter-obj": "^2.0.1", - "find-up": "^4.1.0", - "indent-string": "^4.0.0", - "is-plain-obj": "^2.1.0", - "js-yaml": "^3.13.1", - "netlify": "^4.1.7", - "p-filter": "^2.1.0", - "p-locate": "^4.1.0", - "path-exists": "^4.0.0", - "toml": "^3.0.0", - "tomlify-j0.4": "^3.0.0", - "yargs": "^15.3.0" - } - }, - "@netlify/open-api": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-0.18.1.tgz", - "integrity": "sha512-kkRCzA71HugJxmPOcWv2B4ArHhSMKjs2ArGBr10ndocVLdAHwCYoJm0X4Xt8IYaOcGD9Lm4fbLjpXDLDRGDzPw==", - "dev": true - }, - "@netlify/zip-it-and-ship-it": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-1.7.0.tgz", - "integrity": "sha512-7Fatc5OoRZ7V2tusx1CBWIdk9hXrr0JWoW547wsmopCkCl5O4TaLxw12CgfW6EQsjaufSnuQddzvnx5y1b5gGQ==", - "dev": true, - "requires": { - "archiver": "^4.0.0", - "common-path-prefix": "^2.0.0", - "cp-file": "^7.0.0", - "elf-cam": "^0.1.1", - "end-of-stream": "^1.4.4", - "find-up": "^4.1.0", - "glob": "^7.1.6", - "junk": "^3.1.0", - "locate-path": "^5.0.0", - "make-dir": "^3.1.0", - "p-map": "^3.0.0", - "path-exists": "^4.0.0", - "pkg-dir": "^4.2.0", - "precinct": "^6.3.1", - "require-package-name": "^2.0.1", - "resolve": "^2.0.0-next.1", - "semver": "^7.3.2", - "unixify": "^1.0.0", - "yargs": "^15.4.1" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "netlify": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/netlify/-/netlify-4.9.0.tgz", - "integrity": "sha512-x+VqJ+yop05OUpeaT4fhz/NAvJQFjtNhW1s+/i6oP/EZS6/+B0u+qCANF8uP9u3UJcmWvlJmrRoDhj62Xvtwug==", - "dev": true, - "requires": { - "@netlify/open-api": "^0.18.0", - "@netlify/zip-it-and-ship-it": "^1.3.12", - "backoff": "^2.5.0", - "clean-deep": "^3.3.0", - "filter-obj": "^2.0.1", - "flush-write-stream": "^2.0.0", - "folder-walker": "^3.2.0", - "from2-array": "0.0.4", - "hasha": "^5.0.0", - "lodash.camelcase": "^4.3.0", - "lodash.flatten": "^4.4.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "micro-api-client": "^3.3.0", - "node-fetch": "^2.2.0", - "p-map": "^3.0.0", - "p-wait-for": "^3.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "qs": "^6.9.3", - "rimraf": "^3.0.2", - "tempy": "^0.3.0", - "through2-filter": "^3.0.0", - "through2-map": "^3.0.0" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", - "dev": true - }, - "resolve": { - "version": "2.0.0-next.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.2.tgz", - "integrity": "sha512-oHC2H45OCkhIeS45uW5zCsSinW+hgWwRtfobOhmkXiO4Q6e6fpZpBuBkZxAqTfoC1O6VIclqK6RjyeGVaxEYtA==", - "dev": true, - "requires": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "netlify-redirector": { @@ -16622,9 +16517,9 @@ } }, "open": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/open/-/open-7.3.1.tgz", - "integrity": "sha512-f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", + "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", "dev": true, "requires": { "is-docker": "^2.0.0", @@ -18195,12 +18090,21 @@ } }, "rollup": { - "version": "2.36.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.36.1.tgz", - "integrity": "sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ==", + "version": "2.38.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.3.tgz", + "integrity": "sha512-FVx/XzR2DtCozKNDBjHJCHIgkC12rNg/ruAeoYWjLeeKfSKgwhh+lDLDhuCkuRG/fsup8py8dKBTlHdvUFX32A==", "dev": true, "requires": { - "fsevents": "~2.1.2" + "fsevents": "~2.3.1" + }, + "dependencies": { + "fsevents": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "dev": true, + "optional": true + } } }, "rollup-plugin-inject": { diff --git a/package.json b/package.json index 07edc6ff2cd..63ccd6bb41a 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "lint-staged": "^10.5.3", "micromatch": "^4.0.2", "mocha": "^8.2.1", - "netlify-cli": "^2.69.11", + "netlify-cli": "^3.4.6", "prettier": "^2.2.1", "promise-polyfill": "^8.2.0", "sauce-connect-launcher": "^1.3.2", From 8ca1ca540ce53a3b106819982ca7e8fa45e97abd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Feb 2021 06:19:58 +0000 Subject: [PATCH 027/327] [skip ci]: Bump @typescript-eslint/eslint-plugin from 4.14.1 to 4.14.2 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.14.1 to 4.14.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.14.2/packages/eslint-plugin) Signed-off-by: dependabot[bot] --- package-lock.json | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8de2dc94413..4d8ab19ecb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4554,13 +4554,13 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.1.tgz", - "integrity": "sha512-5JriGbYhtqMS1kRcZTQxndz1lKMwwEXKbwZbkUZNnp6MJX0+OVXnG0kOlBZP4LUAxEyzu3cs+EXd/97MJXsGfw==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.2.tgz", + "integrity": "sha512-uMGfG7GFYK/nYutK/iqYJv6K/Xuog/vrRRZX9aEP4Zv1jsYXuvFUMDFLhUnc8WFv3D2R5QhNQL3VYKmvLS5zsQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.14.1", - "@typescript-eslint/scope-manager": "4.14.1", + "@typescript-eslint/experimental-utils": "4.14.2", + "@typescript-eslint/scope-manager": "4.14.2", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -4570,15 +4570,15 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.1.tgz", - "integrity": "sha512-2CuHWOJwvpw0LofbyG5gvYjEyoJeSvVH2PnfUQSn0KQr4v8Dql2pr43ohmx4fdPQ/eVoTSFjTi/bsGEXl/zUUQ==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.2.tgz", + "integrity": "sha512-mV9pmET4C2y2WlyHmD+Iun8SAEqkLahHGBkGqDVslHkmoj3VnxnGP4ANlwuxxfq1BsKdl/MPieDbohCEQgKrwA==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.14.1", - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/typescript-estree": "4.14.1", + "@typescript-eslint/scope-manager": "4.14.2", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/typescript-estree": "4.14.2", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } @@ -4646,29 +4646,29 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.1.tgz", - "integrity": "sha512-F4bjJcSqXqHnC9JGUlnqSa3fC2YH5zTtmACS1Hk+WX/nFB0guuynVK5ev35D4XZbdKjulXBAQMyRr216kmxghw==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.2.tgz", + "integrity": "sha512-cuV9wMrzKm6yIuV48aTPfIeqErt5xceTheAgk70N1V4/2Ecj+fhl34iro/vIssJlb7XtzcaD07hWk7Jk0nKghg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/visitor-keys": "4.14.1" + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2" } }, "@typescript-eslint/types": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.1.tgz", - "integrity": "sha512-SkhzHdI/AllAgQSxXM89XwS1Tkic7csPdndUuTKabEwRcEfR8uQ/iPA3Dgio1rqsV3jtqZhY0QQni8rLswJM2w==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.2.tgz", + "integrity": "sha512-LltxawRW6wXy4Gck6ZKlBD05tCHQUj4KLn4iR69IyRiDHX3d3NCAhO+ix5OR2Q+q9bjCrHE/HKt+riZkd1At8Q==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.1.tgz", - "integrity": "sha512-M8+7MbzKC1PvJIA8kR2sSBnex8bsR5auatLCnVlNTJczmJgqRn8M+sAlQfkEq7M4IY3WmaNJ+LJjPVRrREVSHQ==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.2.tgz", + "integrity": "sha512-ESiFl8afXxt1dNj8ENEZT12p+jl9PqRur+Y19m0Z/SPikGL6rqq4e7Me60SU9a2M28uz48/8yct97VQYaGl0Vg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/visitor-keys": "4.14.1", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -4678,12 +4678,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.1.tgz", - "integrity": "sha512-TAblbDXOI7bd0C/9PE1G+AFo7R5uc+ty1ArDoxmrC1ah61Hn6shURKy7gLdRb1qKJmjHkqu5Oq+e4Kt0jwf1IA==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.2.tgz", + "integrity": "sha512-KBB+xLBxnBdTENs/rUgeUKO0UkPBRs2vD09oMRRIkj5BEN8PX1ToXV532desXfpQnZsYTyLLviS7JrPhdL154w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.1", + "@typescript-eslint/types": "4.14.2", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { From 2db41a2ccdb434659e39e3ce56a353d2547916e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Feb 2021 07:24:45 +0000 Subject: [PATCH 028/327] [skip ci]: Bump @typescript-eslint/parser from 4.14.1 to 4.14.2 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.14.1 to 4.14.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.14.2/packages/parser) Signed-off-by: dependabot[bot] --- package-lock.json | 62 +++++------------------------------------------ 1 file changed, 6 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4d8ab19ecb4..97f0fd1f8a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4584,65 +4584,15 @@ } }, "@typescript-eslint/parser": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.1.tgz", - "integrity": "sha512-mL3+gU18g9JPsHZuKMZ8Z0Ss9YP1S5xYZ7n68Z98GnPq02pYNQuRXL85b9GYhl6jpdvUc45Km7hAl71vybjUmw==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.2.tgz", + "integrity": "sha512-ipqSP6EuUsMu3E10EZIApOJgWSpcNXeKZaFeNKQyzqxnQl8eQCbV+TSNsl+s2GViX2d18m1rq3CWgnpOxDPgHg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.14.1", - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/typescript-estree": "4.14.1", + "@typescript-eslint/scope-manager": "4.14.2", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/typescript-estree": "4.14.2", "debug": "^4.1.1" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.1.tgz", - "integrity": "sha512-F4bjJcSqXqHnC9JGUlnqSa3fC2YH5zTtmACS1Hk+WX/nFB0guuynVK5ev35D4XZbdKjulXBAQMyRr216kmxghw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/visitor-keys": "4.14.1" - } - }, - "@typescript-eslint/types": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.1.tgz", - "integrity": "sha512-SkhzHdI/AllAgQSxXM89XwS1Tkic7csPdndUuTKabEwRcEfR8uQ/iPA3Dgio1rqsV3jtqZhY0QQni8rLswJM2w==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.1.tgz", - "integrity": "sha512-M8+7MbzKC1PvJIA8kR2sSBnex8bsR5auatLCnVlNTJczmJgqRn8M+sAlQfkEq7M4IY3WmaNJ+LJjPVRrREVSHQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/visitor-keys": "4.14.1", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.1.tgz", - "integrity": "sha512-TAblbDXOI7bd0C/9PE1G+AFo7R5uc+ty1ArDoxmrC1ah61Hn6shURKy7gLdRb1qKJmjHkqu5Oq+e4Kt0jwf1IA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.14.1", - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - } } }, "@typescript-eslint/scope-manager": { From 484793c590808c5d83d896a97871fa1db989a76b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 06:13:55 +0000 Subject: [PATCH 029/327] [skip ci]: Bump @babel/preset-env from 7.12.11 to 7.12.13 Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.11 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-preset-env) Signed-off-by: dependabot[bot] --- package-lock.json | 2800 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 2365 insertions(+), 435 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97f0fd1f8a8..ee3d06c04f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,9 +13,9 @@ } }, "@babel/compat-data": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", - "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.13.tgz", + "integrity": "sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg==", "dev": true }, "@babel/core": { @@ -123,12 +123,12 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -138,9 +138,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", - "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -151,23 +151,42 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.13.tgz", + "integrity": "sha512-dXof20y/6wB5HnLOGyLh/gobsMvDNoekcC+8MCV2iaTd5JemhFkPD73QB+tK3iFC9P0xJC73B6MvKkyUfS9cCw==", "dev": true, "requires": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", + "@babel/compat-data": "^7.12.13", + "@babel/helper-validator-option": "^7.12.11", "browserslist": "^4.14.5", "semver": "^5.5.0" }, @@ -194,33 +213,41 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.13.tgz", + "integrity": "sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-annotate-as-pure": "^7.12.13", "regexpu-core": "^4.7.1" } }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz", + "integrity": "sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw==", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-function-name": { @@ -244,12 +271,31 @@ } }, "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz", + "integrity": "sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-member-expression-to-functions": { @@ -303,14 +349,33 @@ "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz", + "integrity": "sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-replace-supers": { @@ -365,15 +430,128 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz", + "integrity": "sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helpers": { @@ -405,14 +583,22 @@ "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz", + "integrity": "sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-remap-async-to-generator": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-class-properties": { @@ -436,53 +622,93 @@ } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz", + "integrity": "sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-json-strings": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz", + "integrity": "sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.13.tgz", + "integrity": "sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", - "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-object-rest-spread": { @@ -497,13 +723,21 @@ } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz", + "integrity": "sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-optional-chaining": { @@ -518,342 +752,1624 @@ } }, "@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz", + "integrity": "sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", + "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-syntax-optional-chaining": { + "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-syntax-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", - "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz", - "integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==", + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-transform-dotall-regex": { + "@babel/plugin-syntax-typescript": { "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", + "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz", + "integrity": "sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.13.tgz", + "integrity": "sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-remap-async-to-generator": "^7.12.13" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "@babel/plugin-transform-classes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.13.tgz", + "integrity": "sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.13.tgz", + "integrity": "sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "@babel/plugin-transform-destructuring": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.13.tgz", + "integrity": "sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz", + "integrity": "sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.13.tgz", + "integrity": "sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", + "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz", + "integrity": "sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", + "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz", + "integrity": "sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.12.13", + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", + "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz", + "integrity": "sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", + "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" + "@babel/helper-create-regexp-features-plugin": "^7.12.13" } }, "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-object-assign": { @@ -866,13 +2382,162 @@ } }, "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-parameters": { @@ -885,76 +2550,132 @@ } }, "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.13.tgz", + "integrity": "sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.13.tgz", + "integrity": "sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-typescript": { @@ -969,50 +2690,66 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/preset-env": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz", - "integrity": "sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.13.tgz", + "integrity": "sha512-JUVlizG8SoFTz4LmVUL8++aVwzwxcvey3N0j1tRbMAXVEy95uQ/cnEkmEKHN00Bwq4voAV3imQGnQvpkLAxsrw==", "dev": true, "requires": { - "@babel/compat-data": "^7.12.7", - "@babel/helper-compilation-targets": "^7.12.5", - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/compat-data": "^7.12.13", + "@babel/helper-compilation-targets": "^7.12.13", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/helper-validator-option": "^7.12.11", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.13", + "@babel/plugin-proposal-class-properties": "^7.12.13", "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.7", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.12.13", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.13", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.12.13", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.13", + "@babel/plugin-proposal-optional-chaining": "^7.12.13", + "@babel/plugin-proposal-private-methods": "^7.12.13", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", @@ -1022,55 +2759,248 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.11", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.7", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.10", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.12.13", + "@babel/plugin-transform-async-to-generator": "^7.12.13", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.12.13", + "@babel/plugin-transform-computed-properties": "^7.12.13", + "@babel/plugin-transform-destructuring": "^7.12.13", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.12.13", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.12.13", + "@babel/plugin-transform-modules-commonjs": "^7.12.13", + "@babel/plugin-transform-modules-systemjs": "^7.12.13", + "@babel/plugin-transform-modules-umd": "^7.12.13", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.12.13", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.12.13", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.12.13", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.11", + "@babel/types": "^7.12.13", "core-js-compat": "^3.8.0", "semver": "^5.5.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", + "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, "@babel/helper-validator-identifier": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz", + "integrity": "sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz", + "integrity": "sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.13" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.13.tgz", + "integrity": "sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz", + "integrity": "sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, "@babel/types": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", - "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1124,9 +3054,9 @@ } }, "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz", + "integrity": "sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -6225,16 +8155,16 @@ } }, "browserslist": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", - "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001165", + "caniuse-lite": "^1.0.30001181", "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.621", + "electron-to-chromium": "^1.3.649", "escalade": "^3.1.1", - "node-releases": "^1.1.67" + "node-releases": "^1.1.70" } }, "btoa-lite": { @@ -6488,9 +8418,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001170", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001170.tgz", - "integrity": "sha512-Dd4d/+0tsK0UNLrZs3CvNukqalnVTRrxb5mcQm8rHL49t7V5ZaTygwXkrq+FB+dVDf++4ri8eJnFEJAB8332PA==", + "version": "1.0.30001183", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001183.tgz", + "integrity": "sha512-7JkwTEE1hlRKETbCFd8HDZeLiQIUcl8rC6JgNjvHCNaxOeNmQ9V4LvQXRUsKIV2CC73qKxljwVhToaA3kLRqTw==", "dev": true }, "cardinal": { @@ -7773,12 +9703,12 @@ "dev": true }, "core-js-compat": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", - "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz", + "integrity": "sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==", "dev": true, "requires": { - "browserslist": "^4.15.0", + "browserslist": "^4.16.1", "semver": "7.0.0" }, "dependencies": { @@ -9235,9 +11165,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.630", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.630.tgz", - "integrity": "sha512-HSTsvqOrR3kWsoekKu0EOQXR/YOncKs3HAys9lysvIS2ec/mlfV1ZoLHSx00semK+PscVJwqcvBN4ayGPs++fA==", + "version": "1.3.651", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.651.tgz", + "integrity": "sha512-2gWRGUMZB/BGru4LOQ6w6mZmesBk4pLPvi64x48cL6fwUVBeOenBbnrclLjLsQ/NjG2TWHEnTycWJc3IgEl0vQ==", "dev": true }, "elf-cam": { @@ -15952,9 +17882,9 @@ } }, "node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", - "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "version": "1.1.70", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", + "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", "dev": true }, "node-source-walk": { @@ -17774,9 +19704,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", + "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", "dev": true, "requires": { "jsesc": "~0.5.0" From 2ff7e8ace92359ba8146b01af04c1192223d1870 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 07:22:06 +0000 Subject: [PATCH 030/327] [skip ci]: Bump @babel/register from 7.12.10 to 7.12.13 Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.12.10 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-register) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ee3d06c04f1..b143b6bafb0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3041,9 +3041,9 @@ } }, "@babel/register": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.12.10.tgz", - "integrity": "sha512-EvX/BvMMJRAA3jZgILWgbsrHwBQvllC5T8B29McyME8DvkdOxk4ujESfrMvME8IHSDvWXrmMXxPvA/lx2gqPLQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.12.13.tgz", + "integrity": "sha512-fnCeRXj970S9seY+973oPALQg61TRvAaW0nRDe1f4ytKqM3fZgsNXewTZWmqZedg74LFIRpg/11dsrPZZvYs2g==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", From b9836e9b210b13afbb12bf0fb609cba73d70f827 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 07:44:00 +0000 Subject: [PATCH 031/327] [skip ci]: Bump @babel/plugin-transform-object-assign Bumps [@babel/plugin-transform-object-assign](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-object-assign) from 7.12.1 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-plugin-transform-object-assign) Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b143b6bafb0..d33b1e8d915 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2373,12 +2373,20 @@ } }, "@babel/plugin-transform-object-assign": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.12.1.tgz", - "integrity": "sha512-geUHn4XwHznRAFiuROTy0Hr7bKbpijJCmr1Svt/VNGhpxmp0OrdxURNpWbOAf94nUbL+xj6gbxRVPHWIbRpRoA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.12.13.tgz", + "integrity": "sha512-4QxDMc0lAOkIBSfCrnSGbAJ+4epDBF2XXwcLXuBcG1xl9u7LrktNVD4+LwhL47XuKVPQ7R25e/WdcV+h97HyZA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-object-super": { From 7d0fbba10e89e0b38ebd06d981e362b6e3e23685 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 10:44:18 +0000 Subject: [PATCH 032/327] [skip ci]: Bump @babel/preset-typescript from 7.12.7 to 7.12.13 Bumps [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) from 7.12.7 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-preset-typescript) Signed-off-by: dependabot[bot] --- package-lock.json | 210 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 194 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index d33b1e8d915..737fd936e89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1066,12 +1066,20 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", - "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz", + "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-arrow-functions": { @@ -2687,14 +2695,176 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz", - "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.13.tgz", + "integrity": "sha512-z1VWskPJxK9tfxoYvePWvzSJC+4pxXr8ArmRm5ofqgi+mwpKg6lvtomkIngBYMJVnKhsFYVysCQLDn//v2RHcg==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-typescript": "^7.12.1" + "@babel/helper-create-class-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-typescript": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", + "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", + "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-unicode-escapes": { @@ -3038,14 +3208,22 @@ } }, "@babel/preset-typescript": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.7.tgz", - "integrity": "sha512-nOoIqIqBmHBSEgBXWR4Dv/XBehtIFcw9PqZw6rFYuKrzsZmOQm3PR5siLBnKZFEsDb03IegG8nSjU/iXXXYRmw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.13.tgz", + "integrity": "sha512-gYry7CeXwD2wtw5qHzrtzKaShEhOfTmKb4i0ZxeYBcBosN5VuAudsNbjX7Oj5EAfQ3K4s4HsVMQRRcqGsPvs2A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-transform-typescript": "^7.12.1" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-validator-option": "^7.12.11", + "@babel/plugin-transform-typescript": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/register": { From 0fe6a93aa56a9c122583a8b2171c89e3ee1c5af4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 12:03:44 +0000 Subject: [PATCH 033/327] [skip ci]: Bump @babel/helper-module-imports from 7.12.5 to 7.12.13 Bumps [@babel/helper-module-imports](https://github.com/babel/babel/tree/HEAD/packages/babel-helper-module-imports) from 7.12.5 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-helper-module-imports) Signed-off-by: dependabot[bot] --- package-lock.json | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 737fd936e89..4c913809d7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -308,12 +308,31 @@ } }, "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", "dev": true, "requires": { - "@babel/types": "^7.12.5" + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-transforms": { From 500b621a230bf5220e526d52b4b01a6611b627d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 13:46:27 +0000 Subject: [PATCH 034/327] [skip ci]: Bump @babel/plugin-proposal-optional-chaining Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.12.7 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-plugin-proposal-optional-chaining) Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4c913809d7d..7c7b3509eda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -760,14 +760,22 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", - "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.13.tgz", + "integrity": "sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", "@babel/plugin-syntax-optional-chaining": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-private-methods": { From 1bdf9428f4753bc30c9bcf1d347d1a5b6e528086 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 14:34:27 +0000 Subject: [PATCH 035/327] [skip ci]: Bump @babel/plugin-proposal-object-rest-spread Bumps [@babel/plugin-proposal-object-rest-spread](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-object-rest-spread) from 7.12.1 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-plugin-proposal-object-rest-spread) Signed-off-by: dependabot[bot] --- package-lock.json | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7c7b3509eda..bfc97a92dd0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -731,14 +731,22 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz", + "integrity": "sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" + "@babel/plugin-transform-parameters": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -2584,12 +2592,20 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz", + "integrity": "sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-transform-property-literals": { From e0bc0dedbacc94455b87e0281cd067ac5e497b9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 15:36:35 +0000 Subject: [PATCH 036/327] [skip ci]: Bump @babel/plugin-proposal-class-properties Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-properties) from 7.12.1 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-plugin-proposal-class-properties) Signed-off-by: dependabot[bot] --- package-lock.json | 177 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 164 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index bfc97a92dd0..a104988ad1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -200,16 +200,159 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", + "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.14", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", + "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-create-regexp-features-plugin": { @@ -621,13 +764,21 @@ } }, "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz", + "integrity": "sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-dynamic-import": { From 77e95b606368f84413f4394284d26374d89a0a70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 17:14:53 +0000 Subject: [PATCH 037/327] [skip ci]: Bump netlify-cli from 3.4.6 to 3.4.7 Bumps [netlify-cli](https://github.com/netlify/cli) from 3.4.6 to 3.4.7. - [Release notes](https://github.com/netlify/cli/releases) - [Changelog](https://github.com/netlify/cli/blob/master/CHANGELOG.md) - [Commits](https://github.com/netlify/cli/compare/v3.4.6...v3.4.7) Signed-off-by: dependabot[bot] --- package-lock.json | 52 +++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index a104988ad1a..b2fb0f6d6d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4585,9 +4585,9 @@ } }, "@netlify/config": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-3.1.1.tgz", - "integrity": "sha512-FUOXzkn/iHrWU8wezWnAVsO7x/l2mPXBpcaP2X2BIcMzOePvzreHPCAplekjNof2Q1QPjHfo746Bd/CyMIUOeg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-3.1.2.tgz", + "integrity": "sha512-a56KY1o1oMX5HAIsbQjsIxgZAdyVm8dU98VDxgmPciogJ+ZmlDba4PhZ5FilmUSy2XsCszRg05FtSW9NVzXcEw==", "dev": true, "requires": { "@ungap/from-entries": "^0.2.1", @@ -4884,9 +4884,9 @@ }, "dependencies": { "ajv": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", - "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.4.tgz", + "integrity": "sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -6229,9 +6229,9 @@ } }, "@octokit/openapi-types": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-3.4.1.tgz", - "integrity": "sha512-7Sjm3UwEAM11f+ck9+qlyEfgl8hCk5sSZBU2qcWY8+8ibowjqcwxhhtvY0/pjHPF8mcvmedFpGmmIYs2qM9/+Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-4.0.0.tgz", + "integrity": "sha512-o4Q9VPYaIdzxskfVuWk7Dcb6Ldq2xbd1QKmPCRx29nFdFxm+2Py74QLfbB3CgankZerHnNJ9wgINOkwa/O2qRg==", "dev": true }, "@octokit/plugin-paginate-rest": { @@ -6282,14 +6282,14 @@ } }, "@octokit/request": { - "version": "5.4.13", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.13.tgz", - "integrity": "sha512-WcNRH5XPPtg7i1g9Da5U9dvZ6YbTffw9BN2rVezYiE7couoSyaRsw0e+Tl8uk1fArHE7Dn14U7YqUDy59WaqEw==", + "version": "5.4.14", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.14.tgz", + "integrity": "sha512-VkmtacOIQp9daSnBmDI92xNIeLuSRDOIuplp/CJomkvzt7M18NXgG044Cx/LFKLgjKt9T2tZR6AtJayba9GTSA==", "dev": true, "requires": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.0.0", - "@octokit/types": "^6.0.3", + "@octokit/types": "^6.7.1", "deprecation": "^2.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.1", @@ -6369,12 +6369,12 @@ } }, "@octokit/types": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.7.0.tgz", - "integrity": "sha512-QiE7y2Brh0Bv61K//kFGJ6jCZihCf4fGL1FP0Oims5h2SlSYtDiAQMJW15s8udyLfjo/jY05G1YlN8ED/c6RNw==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.8.2.tgz", + "integrity": "sha512-RpG0NJd7OKSkWptiFhy1xCLkThs5YoDIKM21lEtDmUvSpbaIEfrxzckWLUGDFfF8RydSyngo44gDv8m2hHruUg==", "dev": true, "requires": { - "@octokit/openapi-types": "^3.4.1", + "@octokit/openapi-types": "^4.0.0", "@types/node": ">= 8" } }, @@ -7712,9 +7712,9 @@ "dev": true }, "aws-sdk": { - "version": "2.834.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.834.0.tgz", - "integrity": "sha512-9WRULrn4qAmgXI+tEW/IG5s/6ixJGZqjPOrmJsFZQev7/WRkxAZmJAjcwd4Ifm/jsJbXx2FSwO76gOPEvu2LqA==", + "version": "2.835.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.835.0.tgz", + "integrity": "sha512-codVDhqE6PD4P7m5j8T0o4jer2Gt/oy+QqU+0BhzeuH/ryT+03YJDw8mXlfMWlhQ+6ZQBMZ3+YT69/85VgR6IQ==", "dev": true, "requires": { "buffer": "4.9.2", @@ -17721,9 +17721,9 @@ } }, "netlify-cli": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.4.6.tgz", - "integrity": "sha512-ZrD6so7tmmatQTWh4U7gApxKmBj1P27Fzo2cdDqhkPUenJY5Iw3AuUY1AvQUCPyxC5Cbco2d3SQdldKQYoL9Qw==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.4.7.tgz", + "integrity": "sha512-hPfrUlBIA21FgEc/8gXehR5hQ5N5NvFNE9vXojJ+ou93gkeddh6AfKxx29XsOoH+ht7XqAJMf+vbdSZULo+8XQ==", "dev": true, "requires": { "@netlify/build": "^8.0.5", @@ -20350,9 +20350,9 @@ } }, "rollup": { - "version": "2.38.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.3.tgz", - "integrity": "sha512-FVx/XzR2DtCozKNDBjHJCHIgkC12rNg/ruAeoYWjLeeKfSKgwhh+lDLDhuCkuRG/fsup8py8dKBTlHdvUFX32A==", + "version": "2.38.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.4.tgz", + "integrity": "sha512-B0LcJhjiwKkTl79aGVF/u5KdzsH8IylVfV56Ut6c9ouWLJcUK17T83aZBetNYSnZtXf2OHD4+2PbmRW+Fp5ulg==", "dev": true, "requires": { "fsevents": "~2.3.1" From f335e5b79dbd7a3621dfec8aacbbd9e22b625bab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 18:11:42 +0000 Subject: [PATCH 038/327] [skip ci]: Bump @babel/core from 7.12.10 to 7.12.13 Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.10 to 7.12.13. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-core) Signed-off-by: dependabot[bot] --- package-lock.json | 711 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 578 insertions(+), 133 deletions(-) diff --git a/package-lock.json b/package-lock.json index b2fb0f6d6d9..35cabe33f78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,19 +19,19 @@ "dev": true }, "@babel/core": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", - "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", + "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helpers": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -41,61 +41,110 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", "dev": true, "requires": { - "@babel/types": "^7.12.11", + "@babel/types": "^7.12.13", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, "@babel/helper-validator-identifier": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "version": "7.12.14", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", + "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", - "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.10", - "@babel/types": "^7.12.10", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", - "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -428,43 +477,381 @@ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, - "@babel/types": { + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", + "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", + "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13", + "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.14", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", + "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz", + "integrity": "sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", + "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } - } - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", - "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + }, + "@babel/parser": { + "version": "7.12.14", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", + "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", "dev": true }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, "@babel/types": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", @@ -478,46 +865,12 @@ } } }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { + "@babel/helper-simple-access": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz", - "integrity": "sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA==", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.12.13", "@babel/types": "^7.12.13" }, "dependencies": { @@ -540,27 +893,6 @@ } } }, - "@babel/helper-replace-supers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", - "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, "@babel/helper-skip-transparent-expression-wrappers": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", @@ -717,14 +1049,127 @@ } }, "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", + "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", + "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.14", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", + "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/highlight": { @@ -15648,9 +16093,9 @@ "dev": true }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" From a4eabb3c3262f80746418715889b66c163afa253 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Wed, 3 Feb 2021 16:24:48 -0500 Subject: [PATCH 039/327] Fix 608 parsing continuity regression introduced in #3423 --- src/controller/timeline-controller.ts | 43 ++++++++++++++++----------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/src/controller/timeline-controller.ts b/src/controller/timeline-controller.ts index b2fe9747e29..809b4b2b855 100644 --- a/src/controller/timeline-controller.ts +++ b/src/controller/timeline-controller.ts @@ -20,6 +20,7 @@ import { InitPTSFoundData, SubtitleTracksUpdatedData, BufferFlushingData, + FragLoadingData, } from '../types/events'; import { logger } from '../utils/logger'; import type Hls from '../hls'; @@ -109,12 +110,13 @@ export class TimelineController implements ComponentAPI { const { hls } = this; hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this); hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this); - hls.on(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this); - hls.on(Events.FRAG_DECRYPTED, this.onFragDecrypted, this); hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this); hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this); hls.on(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this); + hls.on(Events.FRAG_LOADING, this.onFragLoading, this); hls.on(Events.FRAG_LOADED, this.onFragLoaded, this); + hls.on(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this); + hls.on(Events.FRAG_DECRYPTED, this.onFragDecrypted, this); hls.on(Events.INIT_PTS_FOUND, this.onInitPtsFound, this); hls.on(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this); hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this); @@ -124,12 +126,13 @@ export class TimelineController implements ComponentAPI { const { hls } = this; hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this); hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this); - hls.off(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this); - hls.off(Events.FRAG_DECRYPTED, this.onFragDecrypted, this); hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this); hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this); hls.off(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this); + hls.off(Events.FRAG_LOADING, this.onFragLoading, this); hls.off(Events.FRAG_LOADED, this.onFragLoaded, this); + hls.off(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this); + hls.off(Events.FRAG_DECRYPTED, this.onFragDecrypted, this); hls.off(Events.INIT_PTS_FOUND, this.onInitPtsFound, this); hls.off(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this); hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this); @@ -423,6 +426,24 @@ export class TimelineController implements ComponentAPI { } } + private onFragLoading(event: Events.FRAG_LOADING, data: FragLoadingData) { + const { cea608Parser1, cea608Parser2, lastSn } = this; + if (!this.enabled || !(cea608Parser1 && cea608Parser2)) { + return; + } + // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack + if (data.frag.type === PlaylistLevelType.MAIN) { + const sn = data.frag.sn; + if (sn !== lastSn + 1) { + if (cea608Parser1 && cea608Parser2) { + cea608Parser1.reset(); + cea608Parser2.reset(); + } + } + this.lastSn = sn as number; + } + } + private onFragLoaded(event: Events.FRAG_LOADED, data: FragLoadedData) { const { frag, payload } = data; const { initPTS, unparsedVttFrags } = this; @@ -598,23 +619,11 @@ export class TimelineController implements ComponentAPI { event: Events.FRAG_PARSING_USERDATA, data: FragParsingUserdataData ) { - const { cea608Parser1, cea608Parser2, lastSn } = this; + const { cea608Parser1, cea608Parser2 } = this; if (!this.enabled || !(cea608Parser1 && cea608Parser2)) { return; } - // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack - if (data.frag.type === PlaylistLevelType.MAIN) { - const sn = data.frag.sn; - if (sn !== lastSn + 1) { - if (cea608Parser1 && cea608Parser2) { - cea608Parser1.reset(); - cea608Parser2.reset(); - } - } - this.lastSn = sn as number; - } - // If the event contains captions (found in the bytes property), push all bytes into the parser immediately // It will create the proper timestamps based on the PTS value for (let i = 0; i < data.samples.length; i++) { From 4203b1d0ce106c4100cdefc59285e7dfb7f60e62 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Mon, 1 Feb 2021 19:48:48 -0500 Subject: [PATCH 040/327] Type vttparser Closes #2070 --- src/utils/{vttparser.js => vttparser.ts} | 168 +++++++++++++---------- src/utils/webvtt-parser.ts | 2 +- 2 files changed, 94 insertions(+), 76 deletions(-) rename src/utils/{vttparser.js => vttparser.ts} (82%) diff --git a/src/utils/vttparser.js b/src/utils/vttparser.ts similarity index 82% rename from src/utils/vttparser.js rename to src/utils/vttparser.ts index b68d45d2e96..ac1f8f99319 100644 --- a/src/utils/vttparser.js +++ b/src/utils/vttparser.ts @@ -1,35 +1,26 @@ /* - * Source: https://github.com/mozilla/vtt.js/blob/master/dist/vtt.js#L1716 + * Source: https://github.com/mozilla/vtt.js/blob/master/dist/vtt.js */ import VTTCue from './vttcue'; -const StringDecoder = function StringDecoder() { - return { - decode: function (data) { - if (!data) { - return ''; - } - - if (typeof data !== 'string') { - throw new Error('Error - expected string data.'); - } +class StringDecoder { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + decode(data: string | any, options?: Object): string | never { + if (!data) { + return ''; + } - return decodeURIComponent(encodeURIComponent(data)); - }, - }; -}; + if (typeof data !== 'string') { + throw new Error('Error - expected string data.'); + } -function VTTParser() { - this.window = self; - this.state = 'INITIAL'; - this.buffer = ''; - this.decoder = new StringDecoder(); - this.regionList = []; + return decodeURIComponent(encodeURIComponent(data)); + } } // Try to parse input as a time stamp. -export function parseTimeStamp(input) { +export function parseTimeStamp(input: string) { function computeSeconds(h, m, s, f) { return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + parseFloat(f || 0); } @@ -39,7 +30,7 @@ export function parseTimeStamp(input) { return null; } - if (m[2] > 59) { + if (parseFloat(m[2]) > 59) { // Timestamp takes the form of [hours]:[minutes].[milliseconds] // First position is hours as it's over 59. return computeSeconds(m[2], m[3], 0, m[4]); @@ -50,51 +41,49 @@ export function parseTimeStamp(input) { // A settings object holds key/value pairs and will ignore anything but the first // assignment to a specific key. -function Settings() { - this.values = Object.create(null); -} +class Settings { + private readonly values: { [key: string]: any } = Object.create(null); -Settings.prototype = { // Only accept the first assignment to any key. - set: function (k, v) { + set(k: string, v: any) { if (!this.get(k) && v !== '') { this.values[k] = v; } - }, + } // Return the value for a key, or a default value. // If 'defaultKey' is passed then 'dflt' is assumed to be an object with // a number of possible default values as properties where 'defaultKey' is // the key of the property that will be chosen; otherwise it's assumed to be // a single value. - get: function (k, dflt, defaultKey) { + get(k: string, dflt?: any, defaultKey?: string): any { if (defaultKey) { return this.has(k) ? this.values[k] : dflt[defaultKey]; } return this.has(k) ? this.values[k] : dflt; - }, + } // Check whether we have a value for a key. - has: function (k) { + has(k: string): boolean { return k in this.values; - }, + } // Accept a setting if its one of the given alternatives. - alt: function (k, v, a) { + alt(k: string, v: any, a: any[]) { for (let n = 0; n < a.length; ++n) { if (v === a[n]) { this.set(k, v); break; } } - }, + } // Accept a setting if its a valid (signed) integer. - integer: function (k, v) { + integer(k: string, v: any) { if (/^-?\d+$/.test(v)) { // integer this.set(k, parseInt(v, 10)); } - }, + } // Accept a setting if its a valid percentage. - percent: function (k, v) { + percent(k: string, v: any): boolean { if (/^([\d]{1,3})(\.[\d]*)?%$/.test(v)) { const percent = parseFloat(v); if (percent >= 0 && percent <= 100) { @@ -103,12 +92,17 @@ Settings.prototype = { } } return false; - }, -}; + } +} // Helper function to parse input into groups separated by 'groupDelim', and -// interprete each group as a key/value pair separated by 'keyValueDelim'. -function parseOptions(input, callback, keyValueDelim, groupDelim) { +// interpret each group as a key/value pair separated by 'keyValueDelim'. +function parseOptions( + input: string, + callback: (k: string, v: any) => void, + keyValueDelim: RegExp, + groupDelim?: RegExp +) { const groups = groupDelim ? input.split(groupDelim) : [input]; for (const i in groups) { if (typeof groups[i] !== 'string') { @@ -126,16 +120,16 @@ function parseOptions(input, callback, keyValueDelim, groupDelim) { } } -const defaults = new VTTCue(0, 0, 0); +const defaults = new VTTCue(0, 0, ''); // 'middle' was changed to 'center' in the spec: https://github.com/w3c/webvtt/pull/244 // Safari doesn't yet support this change, but FF and Chrome do. -const center = defaults.align === 'middle' ? 'middle' : 'center'; +const center = (defaults.align as string) === 'middle' ? 'middle' : 'center'; -function parseCue(input, cue, regionList) { +function parseCue(input: string, cue: VTTCue, regionList: Region[]) { // Remember the original input if we need to throw an error. const oInput = input; // 4.1 WebVTT timestamp - function consumeTimeStamp() { + function consumeTimeStamp(): number | never { const ts = parseTimeStamp(input); if (ts === null) { throw new Error('Malformed timestamp: ' + oInput); @@ -147,7 +141,7 @@ function parseCue(input, cue, regionList) { } // 4.4.2 WebVTT cue settings - function consumeCueSettings(input, cue) { + function consumeCueSettings(input: string, cue: VTTCue) { const settings = new Settings(); parseOptions( @@ -256,12 +250,34 @@ function parseCue(input, cue, regionList) { consumeCueSettings(input, cue); } -function fixLineBreaks(input) { +export function fixLineBreaks(input: string): string { return input.replace(//gi, '\n'); } -VTTParser.prototype = { - parse: function (data) { +type Region = { + id: string; + region: any; +}; + +export class VTTParser { + private state: + | 'INITIAL' + | 'HEADER' + | 'ID' + | 'CUE' + | 'CUETEXT' + | 'NOTE' + | 'BADWEBVTT' + | 'BADCUE' = 'INITIAL'; + private buffer: string = ''; + private decoder: StringDecoder = new StringDecoder(); + private regionList: Region[] = []; + private cue: VTTCue | null = null; + public oncue?: (cue: VTTCue) => void; + public onparsingerror?: (error: Error) => void; + public onflush?: () => void; + + parse(data?: string): VTTParser { const _this = this; // If there is no data then we won't decode it, but will just try to parse @@ -272,8 +288,8 @@ VTTParser.prototype = { _this.buffer += _this.decoder.decode(data, { stream: true }); } - function collectNextLine() { - let buffer = _this.buffer; + function collectNextLine(): string { + let buffer: string = _this.buffer; let pos = 0; buffer = fixLineBreaks(buffer); @@ -286,7 +302,7 @@ VTTParser.prototype = { ++pos; } - const line = buffer.substr(0, pos); + const line: string = buffer.substr(0, pos); // Advance the buffer early in case we fail below. if (buffer[pos] === '\r') { ++pos; @@ -305,13 +321,13 @@ VTTParser.prototype = { parseOptions( input, function (k, v) { - switch (k) { - case 'Region': - // 3.3 WebVTT region metadata header syntax - // console.log('parse region', v); - // parseRegion(v); - break; - } + // switch (k) { + // case 'region': + // 3.3 WebVTT region metadata header syntax + // console.log('parse region', v); + // parseRegion(v); + // break; + // } }, /:/ ); @@ -319,7 +335,7 @@ VTTParser.prototype = { // 5.1 WebVTT file parsing. try { - let line; + let line: string = ''; if (_this.state === 'INITIAL') { // We can't start parsing until we have the first line. if (!/\r\n|\n/.test(_this.buffer)) { @@ -389,6 +405,10 @@ VTTParser.prototype = { /* falls through */ case 'CUE': // 40 - Collect cue timings and settings. + if (!_this.cue) { + _this.state = 'BADCUE'; + continue; + } try { parseCue(line, _this.cue, _this.regionList); } catch (e) { @@ -408,7 +428,7 @@ VTTParser.prototype = { // one as a new cue. if (!line || (hasSubstring && (alreadyCollectedLine = true))) { // We are done parsing self cue. - if (_this.oncue) { + if (_this.oncue && _this.cue) { _this.oncue(_this.cue); } @@ -416,20 +436,21 @@ VTTParser.prototype = { _this.state = 'ID'; continue; } + if (_this.cue === null) { + continue; + } + if (_this.cue.text) { _this.cue.text += '\n'; } - _this.cue.text += line; } continue; - case 'BADCUE': // BADCUE + case 'BADCUE': // 54-62 - Collect and discard the remaining cue. if (!line) { _this.state = 'ID'; } - - continue; } } } catch (e) { @@ -444,12 +465,13 @@ VTTParser.prototype = { _this.state = _this.state === 'INITIAL' ? 'BADWEBVTT' : 'BADCUE'; } return this; - }, - flush: function () { + } + + flush(): VTTParser { const _this = this; try { // Finish decoding the stream. - _this.buffer += _this.decoder.decode(); + // _this.buffer += _this.decoder.decode(); // Synthesize the end of the current cue or region. if (_this.cue || _this.state === 'HEADER') { _this.buffer += '\n\n'; @@ -471,9 +493,5 @@ VTTParser.prototype = { } return this; - }, -}; - -export { fixLineBreaks }; - -export default VTTParser; + } +} diff --git a/src/utils/webvtt-parser.ts b/src/utils/webvtt-parser.ts index d86233fc043..d79c31b02e6 100644 --- a/src/utils/webvtt-parser.ts +++ b/src/utils/webvtt-parser.ts @@ -1,4 +1,4 @@ -import VTTParser from './vttparser'; +import { VTTParser } from './vttparser'; import { utf8ArrayToStr } from '../demux/id3'; import { toMpegTsClockFromTimescale } from './timescale-conversion'; import { PTSNormalize } from '../remux/mp4-remuxer'; From 58f0a619ca57d0e0b8dc3ce2a4f4b429197f3e5f Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Thu, 4 Feb 2021 13:19:53 -0500 Subject: [PATCH 041/327] Change `maxLiveSyncPlaybackRate` default to `1` making live edge `playbackRate` adjustment opt-in --- docs/API.md | 6 +++--- src/config.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/API.md b/docs/API.md index fe1d1d2262c..c047fcb1094 100644 --- a/docs/API.md +++ b/docs/API.md @@ -589,10 +589,10 @@ A value too close from `liveSyncDuration` is likely to cause playback stalls. ### `maxLiveSyncPlaybackRate` -(default: `1.5` min: `1` max: `2`) +(default: `1` min: `1` max: `2`) -Increase `video.playbackRate` up to this value to catch up to target latency (`liveSyncDuration(Count)` or manifest (PART-)HOLD-BACK) in a live stream. -Set `maxLiveSyncPlaybackRate` to `1` to disable setting of playback rate. +When set to a value greater than `1`, the latency-controller will adjust `video.playbackRate` up to `maxLiveSyncPlaybackRate` to catch up to target latency in a live stream. `hls.targetLatency` is based on `liveSyncDuration|Count` or manifest PART-|HOLD-BACK. +Defaults to `1`, which disables playback rate adjustment. Set `maxLiveSyncPlaybackRate` to a value greater than `1` to enable playback rate adjustment at the live edge. ### `liveDurationInfinity` diff --git a/src/config.ts b/src/config.ts index bd28a2a64fc..34836132bcd 100644 --- a/src/config.ts +++ b/src/config.ts @@ -201,7 +201,7 @@ export const hlsDefaultConfig: HlsConfig = { liveMaxLatencyDurationCount: Infinity, // used by latency-controller liveSyncDuration: undefined, // used by latency-controller liveMaxLatencyDuration: undefined, // used by latency-controller - maxLiveSyncPlaybackRate: 1.25, // used by latency-controller + maxLiveSyncPlaybackRate: 1, // used by latency-controller liveDurationInfinity: false, // used by buffer-controller liveBackBufferLength: Infinity, // used by buffer-controller maxMaxBufferLength: 600, // used by stream-controller From 8418d8e62a65f6f21f89b754f1f1401993bb46ee Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Thu, 4 Feb 2021 19:05:36 +0000 Subject: [PATCH 042/327] fix bug if there are no files for prettier on commit (#3432) * fix bug if there are no files for prettier on commit * run prettier --- lint-staged.config.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lint-staged.config.js b/lint-staged.config.js index 77750012b1e..a92b05472eb 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -14,7 +14,9 @@ module.exports = (allStagedFiles) => { prettierSupportedExtensions.map((extension) => `**/*${extension}`) ); return [ - `eslint --cache --fix ${eslintFiles.map(addQuotes).join(' ')}`, - `prettier --write ${prettierFiles.map(addQuotes).join(' ')}`, - ]; + eslintFiles.length && + `eslint --cache --fix ${eslintFiles.map(addQuotes).join(' ')}`, + prettierFiles.length && + `prettier --write ${prettierFiles.map(addQuotes).join(' ')}`, + ].filter(Boolean); }; From badd85d2bc8b1550533118ac3e57ae6f03fb4074 Mon Sep 17 00:00:00 2001 From: Jamie Stackhouse Date: Thu, 4 Feb 2021 23:21:19 -0400 Subject: [PATCH 043/327] Add build:types to GitHub build workflow. The package.json already had a "types" key. So by adding the build:types to the workflow, the next released version of hls.js will have a hls.d.ts. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1817764775b..a4b0a3803f2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,7 +80,7 @@ jobs: - name: build run: | - npm run type-check + npm run build:types npm run build npm run docs # check that hls.js doesn't error if requiring in node From f808fd4bc3c181c60581a9cf32e10c0eac2c7ec7 Mon Sep 17 00:00:00 2001 From: Jamie Stackhouse Date: Thu, 4 Feb 2021 23:24:30 -0400 Subject: [PATCH 044/327] Update types key to point at the generated declaration file. Added build:types to the GitHub workflow for build. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 63ccd6bb41a..f9a53f5a53b 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/video-dev/hls.js/issues" }, "main": "./dist/hls.js", - "types": "./dist/hls.d.ts", + "types": "./dist/src/hls.d.ts", "files": [ "dist/**/*", "src/**/*" From c4b008f88e0dd6771c1dbf87e167d4704c729e0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Feb 2021 06:23:04 +0000 Subject: [PATCH 045/327] [skip ci]: Bump netlify-cli from 3.4.7 to 3.5.0 Bumps [netlify-cli](https://github.com/netlify/cli) from 3.4.7 to 3.5.0. - [Release notes](https://github.com/netlify/cli/releases) - [Changelog](https://github.com/netlify/cli/blob/master/CHANGELOG.md) - [Commits](https://github.com/netlify/cli/compare/v3.4.7...v3.5.0) Signed-off-by: dependabot[bot] --- package-lock.json | 153 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 113 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index 35cabe33f78..8bab8b2c9e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4534,20 +4534,20 @@ } }, "@netlify/build": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-8.3.4.tgz", - "integrity": "sha512-DHDvJoM/CtlVuUQoeWzluE4nIabwOKJdIp7yfU/MkpXwXjI1RSPCRvmtzK7A1CUkTZ7sH0m2otgpihgf4pgslw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@netlify/build/-/build-9.0.0.tgz", + "integrity": "sha512-2Ry0l4E2qTeclDCIVh2SdnB1y7E1nfZZXko2mNx+NKNli81v032c6hGlUsHVN28DUqyomNeKhrH3mDNHhZZiuw==", "dev": true, "requires": { "@bugsnag/js": "^7.0.0", "@netlify/cache-utils": "^1.0.6", - "@netlify/config": "^3.0.1", + "@netlify/config": "^4.0.0", "@netlify/functions-utils": "^1.3.4", "@netlify/git-utils": "^1.0.6", "@netlify/plugin-edge-handlers": "^1.8.0", "@netlify/plugins-list": "^2.0.0", "@netlify/run-utils": "^1.0.5", - "@netlify/zip-it-and-ship-it": "^2.0.0", + "@netlify/zip-it-and-ship-it": "^2.1.3", "@sindresorhus/slugify": "^1.1.0", "@ungap/from-entries": "^0.2.1", "array-flat-polyfill": "^1.0.1", @@ -5030,9 +5030,9 @@ } }, "@netlify/config": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-3.1.2.tgz", - "integrity": "sha512-a56KY1o1oMX5HAIsbQjsIxgZAdyVm8dU98VDxgmPciogJ+ZmlDba4PhZ5FilmUSy2XsCszRg05FtSW9NVzXcEw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-4.0.0.tgz", + "integrity": "sha512-eHuMW6tNwuMTFYUoS8dGi9fsUVQky/qh4lhZNFP1y/HNUO3/iezIm7a/ALfO5PNekOIkf26+23m0pHA85+k3gQ==", "dev": true, "requires": { "@ungap/from-entries": "^0.2.1", @@ -5490,12 +5490,12 @@ } }, "@netlify/functions-utils": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.9.tgz", - "integrity": "sha512-i3HE/2NXqjUvShOqWCwPsBLV7puloMK6R7u3O6M3m7WacYKD8nh7dwkNIZSq7QbEueljslH8rwzbNw5EtyKIHw==", + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.10.tgz", + "integrity": "sha512-cakXwiNWNau80ZLU33nbmBxNfFmMwrwgy+P9U9ep3NXxocWJeMVjCPoXzpoE3VydnOoyVJNy6erTziNdOVykEA==", "dev": true, "requires": { - "@netlify/zip-it-and-ship-it": "^2.0.0", + "@netlify/zip-it-and-ship-it": "^2.1.3", "cpy": "^8.1.0", "path-exists": "^4.0.0" }, @@ -5651,9 +5651,9 @@ }, "dependencies": { "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==", + "version": "14.14.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", + "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", "dev": true }, "del": { @@ -6118,15 +6118,15 @@ }, "dependencies": { "@oclif/plugin-help": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.1.tgz", - "integrity": "sha512-vq7rn16TrQmjX3Al/k1Z5iBZWZ3HE8fDXs52OmDJmmTqryPSNvURH9WCAsqr0PODYCSR17Hy1VTzS0x7vVVLEQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.2.tgz", + "integrity": "sha512-SPZ8U8PBYK0n4srFjCLedk0jWU4QlxgEYLCXIBShJgOwPhTTQknkUlsEwaMIevvCU4iCQZhfMX+D8Pz5GZjFgA==", "dev": true, "requires": { "@oclif/command": "^1.5.20", "@oclif/config": "^1.15.1", "@oclif/errors": "^1.2.2", - "chalk": "^2.4.1", + "chalk": "^4.1.0", "indent-string": "^4.0.0", "lodash.template": "^4.4.0", "string-width": "^4.2.0", @@ -6135,6 +6135,46 @@ "wrap-ansi": "^4.0.0" } }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -6144,6 +6184,15 @@ "ansi-regex": "^5.0.0" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "wrap-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz", @@ -6161,6 +6210,30 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -6674,9 +6747,9 @@ } }, "@octokit/openapi-types": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-4.0.0.tgz", - "integrity": "sha512-o4Q9VPYaIdzxskfVuWk7Dcb6Ldq2xbd1QKmPCRx29nFdFxm+2Py74QLfbB3CgankZerHnNJ9wgINOkwa/O2qRg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-4.0.1.tgz", + "integrity": "sha512-k2hRcfcLRyPJjtYfJLzg404n7HZ6sUpAWAR/uNI8tf96NgatWOpw1ocdF+WFfx/trO1ivBh7ckynO1rn+xAw/Q==", "dev": true }, "@octokit/plugin-paginate-rest": { @@ -8157,9 +8230,9 @@ "dev": true }, "aws-sdk": { - "version": "2.835.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.835.0.tgz", - "integrity": "sha512-codVDhqE6PD4P7m5j8T0o4jer2Gt/oy+QqU+0BhzeuH/ryT+03YJDw8mXlfMWlhQ+6ZQBMZ3+YT69/85VgR6IQ==", + "version": "2.838.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.838.0.tgz", + "integrity": "sha512-XJUumDE7g/tJeDSpHf8ov0f7Xy6DuIYB2S2pOlwAMwqcOcv166kGNJGFOdAFFt/TodhqPPBP2uTXSE9xaj+tDA==", "dev": true, "requires": { "buffer": "4.9.2", @@ -8697,9 +8770,9 @@ } }, "bl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", - "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.4.tgz", + "integrity": "sha512-7tdr4EpSd7jJ6tuQ21vu2ke8w7pNEstzj1O8wwq6sNNzO3UDi5MA8Gny/gquCj7r2C6fHudg8tKRGyjRgmvNxQ==", "dev": true, "requires": { "buffer": "^5.5.0", @@ -18166,13 +18239,13 @@ } }, "netlify-cli": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.4.7.tgz", - "integrity": "sha512-hPfrUlBIA21FgEc/8gXehR5hQ5N5NvFNE9vXojJ+ou93gkeddh6AfKxx29XsOoH+ht7XqAJMf+vbdSZULo+8XQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.5.0.tgz", + "integrity": "sha512-seAaDxlTUQSfEyvK8Y52cRbX16nZuwzNqnFW1Ulw4zy5hGeVozmhnhn87n4TM9Ku73WqqTWNMhkwYbsWq9c69w==", "dev": true, "requires": { - "@netlify/build": "^8.0.5", - "@netlify/config": "^3.1.0", + "@netlify/build": "^9.0.0", + "@netlify/config": "^4.0.0", "@netlify/framework-info": "^2.0.0", "@netlify/plugin-edge-handlers": "^1.10.0", "@netlify/traffic-mesh-agent": "^0.27.10", @@ -18528,12 +18601,12 @@ } }, "netlify-redirect-parser": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.2.tgz", - "integrity": "sha512-ZpYwJh/aTBAYuS9dLTVTfDu1rf/+qJ3hsjiawW7A2NmIErN9qb9k08s5I6AUwPQlG4U50MtUnUwpHyMobcbkzA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.3.tgz", + "integrity": "sha512-Enafs4wGjLXry4SREr0Rhc6A3k7hLhlJA/+M/jYzoDza9aK+xTV6Y0rHmWFW1ffUe2fN8kyrtxW++Fdipxffbw==", "dev": true, "requires": { - "@netlify/config": "^3.0.2", + "@netlify/config": "^4.0.0", "lodash.isplainobject": "^4.0.6" } }, @@ -20795,9 +20868,9 @@ } }, "rollup": { - "version": "2.38.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.4.tgz", - "integrity": "sha512-B0LcJhjiwKkTl79aGVF/u5KdzsH8IylVfV56Ut6c9ouWLJcUK17T83aZBetNYSnZtXf2OHD4+2PbmRW+Fp5ulg==", + "version": "2.38.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", + "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", "dev": true, "requires": { "fsevents": "~2.3.1" From 7840d434de0dc501ef35bf4e4520990c2ec5b074 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Feb 2021 07:29:13 +0000 Subject: [PATCH 046/327] [skip ci]: Bump chai from 4.2.0 to 4.3.0 Bumps [chai](https://github.com/chaijs/chai) from 4.2.0 to 4.3.0. - [Release notes](https://github.com/chaijs/chai/releases) - [Changelog](https://github.com/chaijs/chai/blob/master/History.md) - [Commits](https://github.com/chaijs/chai/compare/4.2.0...4.3.0) Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8bab8b2c9e5..88b78f00bf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9356,9 +9356,9 @@ "dev": true }, "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.0.tgz", + "integrity": "sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA==", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -19910,9 +19910,9 @@ "dev": true }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "pbkdf2": { From 793b34fd432cbd4a1c45743c65f37d4f08176671 Mon Sep 17 00:00:00 2001 From: Jamie Stackhouse Date: Sun, 7 Feb 2021 14:33:39 -0400 Subject: [PATCH 047/327] Setup API extractor. --- .gitignore | 2 + .npmignore | 1 + .prettierignore | 1 + api-extractor.json | 39 + demo/chart/timeline-chart.ts | 14 +- docs/hls.js.api.md | 1861 +++++++++++++++++ package-lock.json | 205 ++ package.json | 5 +- src/config.ts | 26 +- src/controller/abr-controller.ts | 2 +- src/controller/audio-stream-controller.ts | 4 +- src/controller/base-playlist-controller.ts | 2 +- src/controller/base-stream-controller.ts | 4 +- src/controller/buffer-controller.ts | 2 +- src/controller/fragment-finders.ts | 2 +- src/controller/fragment-tracker.ts | 2 +- src/controller/gap-controller.ts | 2 +- src/controller/latency-controller.ts | 2 +- src/controller/level-helper.ts | 4 +- src/controller/stream-controller.ts | 4 +- src/controller/subtitle-stream-controller.ts | 4 +- src/controller/timeline-controller.ts | 2 +- src/demux/transmuxer-interface.ts | 2 +- src/demux/transmuxer.ts | 2 +- src/hls.ts | 141 +- src/loader/fragment-loader.ts | 2 +- src/loader/fragment.ts | 12 +- src/loader/key-loader.ts | 2 +- src/loader/level-details.ts | 7 +- src/loader/level-key.ts | 2 +- src/loader/load-stats.ts | 2 +- src/loader/m3u8-parser.ts | 8 +- src/loader/playlist-loader.ts | 6 +- src/remux/mp4-remuxer.ts | 2 +- src/types/events.ts | 10 +- src/types/fragment-tracker.ts | 2 +- src/types/general.ts | 4 - src/types/level.ts | 4 +- src/types/loader.ts | 12 +- src/utils/attr-list.ts | 10 +- src/utils/discontinuities.ts | 4 +- src/utils/fetch-loader.ts | 2 +- src/utils/xhr-loader.ts | 2 +- tests/mocks/data.js | 2 +- .../buffer-controller-operations.ts | 4 +- tests/unit/controller/fragment-tracker.ts | 4 +- tests/unit/controller/latency-controller.ts | 2 +- tests/unit/controller/level-helper.ts | 8 +- tests/unit/controller/stream-controller.ts | 6 +- .../controller/subtitle-track-controller.js | 4 +- tests/unit/demuxer/transmuxer.ts | 2 +- tests/unit/loader/fragment-loader.ts | 6 +- tests/unit/loader/fragment.js | 2 +- tests/unit/loader/level.js | 2 +- tests/unit/loader/playlist-loader.js | 2 +- tests/unit/utils/attr-list.js | 2 +- tsconfig-lib.json | 18 + tsconfig.json | 15 +- 58 files changed, 2371 insertions(+), 136 deletions(-) create mode 100644 api-extractor.json create mode 100644 docs/hls.js.api.md create mode 100644 tsconfig-lib.json diff --git a/.gitignore b/.gitignore index b0716c30ef6..fe6ecd6149f 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,9 @@ coverage/ .idea/* # Build +/lib /dist +/temp /dist.zip /netlify /api-docs diff --git a/.npmignore b/.npmignore index 46a5d086559..fc57557e3a7 100644 --- a/.npmignore +++ b/.npmignore @@ -7,3 +7,4 @@ bower.json design.md hls.js.sublime-project /streams.js +/lib diff --git a/.prettierignore b/.prettierignore index a6678488399..892d98f2cda 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,3 +3,4 @@ package-lock.json /coverage libs/ +docs/hls.js.api.md diff --git a/api-extractor.json b/api-extractor.json new file mode 100644 index 00000000000..77a97f02f6d --- /dev/null +++ b/api-extractor.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "mainEntryPointFilePath": "/lib/hls.d.ts", + "bundledPackages": [], + "compiler": { + "tsconfigFilePath": "/tsconfig-lib.json" + }, + "apiReport": { + "enabled": true, + "reportFolder": "/docs" + }, + "docModel": { + "enabled": false + }, + "dtsRollup": { + "enabled": true + }, + "tsdocMetadata": { + "enabled": false + }, + "newlineKind": "lf", + "messages": { + "compilerMessageReporting": { + "default": { + "logLevel": "warning" + } + }, + "extractorMessageReporting": { + "default": { + "logLevel": "warning" + } + }, + "tsdocMessageReporting": { + "default": { + "logLevel": "warning" + } + } + } +} diff --git a/demo/chart/timeline-chart.ts b/demo/chart/timeline-chart.ts index 51d92a8140f..a9b05519414 100644 --- a/demo/chart/timeline-chart.ts +++ b/demo/chart/timeline-chart.ts @@ -1,11 +1,11 @@ import Chart from 'chart.js'; import 'chartjs-plugin-zoom'; import { applyChartInstanceOverrides, hhmmss } from './chartjs-horizontal-bar'; -import Fragment from '../../src/loader/fragment'; +import { Fragment } from '../../src/loader/fragment'; import type { Level } from '../../src/types/level'; import type { TrackSet } from '../../src/types/track'; import type { MediaPlaylist } from '../../src/types/media-playlist'; -import type LevelDetails from '../../src/loader/level-details'; +import type { LevelDetails } from '../../src/loader/level-details'; import { FragChangedData, FragLoadedData, @@ -83,7 +83,7 @@ export class TimelineChart { const obj = dataset.data![(element[0] as any)._index]; // eslint-disable-next-line no-console console.log(obj); - if (self.hls && self.hls.media) { + if (self.hls?.media) { const scale = this.chartScales[X_AXIS_SECONDS]; const pos = Chart.helpers.getRelativePosition(event, chart); self.hls.media.currentTime = scale.getValueForPixel(pos.x); @@ -600,7 +600,7 @@ export class TimelineChart { drawCurrentTime() { const chart = this.chart; - if (self.hls && self.hls.media && chart.data.datasets!.length) { + if (self.hls?.media && chart.data.datasets!.length) { const currentTime = self.hls.media.currentTime; const scale = this.chartScales[X_AXIS_SECONDS]; const ctx = chart.ctx; @@ -672,14 +672,12 @@ function datasetWithDefaults(options) { } function getPlaylistStart(details: LevelDetails): number { - return details.fragments && details.fragments.length - ? details.fragments[0].start - : 0; + return details.fragments?.length ? details.fragments[0].start : 0; } function getLevelName(level: Level, index: number) { let label = '(main playlist)'; - if (level.attrs && level.attrs.BANDWIDTH) { + if (level.attrs?.BANDWIDTH) { label = `${getMainLevelAttribute(level)}@${level.attrs.BANDWIDTH}`; if (level.name) { label = `${label} (${level.name})`; diff --git a/docs/hls.js.api.md b/docs/hls.js.api.md new file mode 100644 index 00000000000..5e9235b7880 --- /dev/null +++ b/docs/hls.js.api.md @@ -0,0 +1,1861 @@ +## API Report File for "hls.js" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public (undocumented) +export type ABRControllerConfig = { + abrEwmaFastLive: number; + abrEwmaSlowLive: number; + abrEwmaFastVoD: number; + abrEwmaSlowVoD: number; + abrEwmaDefaultEstimate: number; + abrBandWidthFactor: number; + abrBandWidthUpFactor: number; + abrMaxWithRealBitrate: boolean; + maxStarvationDelay: number; + maxLoadingDelay: number; +}; + +// @public (undocumented) +export class AttrList { + constructor(attrs: string | Record); + // (undocumented) + [key: string]: any; + // (undocumented) + bool(attrName: string): boolean; + // (undocumented) + decimalFloatingPoint(attrName: string): number; + // (undocumented) + decimalInteger(attrName: string): number; + // (undocumented) + decimalResolution(attrName: string): { + width: number; + height: number; + } | undefined; + // (undocumented) + enumeratedString(attrName: string): string | undefined; + // (undocumented) + hexadecimalInteger(attrName: string): Uint8Array | null; + // (undocumented) + hexadecimalIntegerAsNumber(attrName: string): number; + // (undocumented) + optionalFloat(attrName: string, defaultValue: number): number; + // (undocumented) + static parseAttrList(input: string): Record; +} + +// @public (undocumented) +export type AudioPlaylistType = 'AUDIO'; + +// @public (undocumented) +export interface AudioTrackLoadedData extends TrackLoadedData { +} + +// @public (undocumented) +export interface AudioTracksUpdatedData { + // (undocumented) + audioTracks: MediaPlaylist[]; +} + +// @public (undocumented) +export interface AudioTrackSwitchedData { + // (undocumented) + id: number; +} + +// @public (undocumented) +export interface AudioTrackSwitchingData { + // (undocumented) + id: number; + // (undocumented) + type: MediaPlaylistType | 'main'; + // (undocumented) + url: string; +} + +// @public (undocumented) +export class BaseSegment { + constructor(baseurl: string); + // (undocumented) + readonly baseurl: string; + // (undocumented) + get byteRange(): number[]; + // (undocumented) + get byteRangeEndOffset(): number; + // (undocumented) + get byteRangeStartOffset(): number; + // (undocumented) + elementaryStreams: ElementaryStreams; + // (undocumented) + relurl?: string; + // (undocumented) + setByteRange(value: string, previous?: BaseSegment): void; + // (undocumented) + get url(): string; + set url(value: string); + } + +// @public (undocumented) +export interface BufferAppendedData { + // (undocumented) + chunkMeta: ChunkMetadata; + // (undocumented) + frag: Fragment; + // (undocumented) + parent: PlaylistLevelType; + // (undocumented) + part: Part | null; + // (undocumented) + timeRanges: { + audio?: TimeRanges; + video?: TimeRanges; + audiovideo?: TimeRanges; + }; +} + +// @public (undocumented) +export interface BufferAppendingData { + // (undocumented) + chunkMeta: ChunkMetadata; + // (undocumented) + data: Uint8Array; + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; + // (undocumented) + type: SourceBufferName; +} + +// @public (undocumented) +export interface BufferCodecsData { + // (undocumented) + audio?: Track; + // (undocumented) + video?: Track; +} + +// @public (undocumented) +export type BufferControllerConfig = { + appendErrorMaxRetry: number; + liveDurationInfinity: boolean; + liveBackBufferLength: number; +}; + +// @public (undocumented) +export interface BufferCreatedData { + // (undocumented) + tracks: TrackSet; +} + +// @public (undocumented) +export interface BufferEOSData { + // (undocumented) + type?: SourceBufferName; +} + +// @public (undocumented) +export interface BufferFlushedData { + // (undocumented) + type: SourceBufferName; +} + +// @public (undocumented) +export interface BufferFlushingData { + // (undocumented) + endOffset: number; + // (undocumented) + startOffset: number; + // (undocumented) + type: SourceBufferName | null; +} + +// @public (undocumented) +export type CapLevelControllerConfig = { + capLevelToPlayerSize: boolean; +}; + +// @public (undocumented) +export class ChunkMetadata { + constructor(level: number, sn: number, id: number, size?: number, part?: number, partial?: boolean); + // (undocumented) + readonly buffering: { + [key in SourceBufferName]: HlsChunkPerformanceTiming; + }; + // (undocumented) + readonly id: number; + // (undocumented) + readonly level: number; + // (undocumented) + readonly part: number; + // (undocumented) + readonly partial: boolean; + // (undocumented) + readonly size: number; + // (undocumented) + readonly sn: number; + // (undocumented) + readonly transmuxing: HlsChunkPerformanceTiming; +} + +// @public (undocumented) +export interface CuesInterface { + // Warning: (ae-forgotten-export) The symbol "CaptionScreen" needs to be exported by the entry point hls.d.ts + // + // (undocumented) + newCue(track: TextTrack | null, startTime: number, endTime: number, captionScreen: CaptionScreen): VTTCue[]; +} + +// @public (undocumented) +export interface CuesParsedData { + // (undocumented) + cues: any; + // (undocumented) + track: string; + // (undocumented) + type: 'captions' | 'subtitles'; +} + +// @public (undocumented) +export type DRMSystemOptions = { + audioRobustness?: string; + videoRobustness?: string; +}; + +// @public (undocumented) +export interface ElementaryStreamInfo { + // (undocumented) + endDTS: number; + // (undocumented) + endPTS: number; + // (undocumented) + partial?: boolean; + // (undocumented) + startDTS: number; + // (undocumented) + startPTS: number; +} + +// @public (undocumented) +export type ElementaryStreams = Record; + +// @public (undocumented) +export enum ElementaryStreamTypes { + // (undocumented) + AUDIO = "audio", + // (undocumented) + AUDIOVIDEO = "audiovideo", + // (undocumented) + VIDEO = "video" +} + +// @public (undocumented) +export type EMEControllerConfig = { + licenseXhrSetup?: (xhr: XMLHttpRequest, url: string) => void; + emeEnabled: boolean; + widevineLicenseUrl?: string; + drmSystemOptions: DRMSystemOptions; + requestMediaKeySystemAccessFunc: MediaKeyFunc | null; +}; + +// @public (undocumented) +export interface ErrorData { + // (undocumented) + buffer?: number; + // (undocumented) + bytes?: number; + // (undocumented) + context?: PlaylistLoaderContext; + // (undocumented) + details: ErrorDetails; + // (undocumented) + err?: { + message: string; + }; + // (undocumented) + error?: Error; + // (undocumented) + event?: keyof HlsListeners | 'demuxerWorker'; + // (undocumented) + fatal: boolean; + // (undocumented) + frag?: Fragment; + // (undocumented) + level?: number | undefined; + // (undocumented) + levelRetry?: boolean; + // (undocumented) + loader?: Loader; + // (undocumented) + mimeType?: string; + // (undocumented) + networkDetails?: any; + // (undocumented) + parent?: PlaylistLevelType; + // (undocumented) + reason?: string; + // (undocumented) + response?: LoaderResponse; + // (undocumented) + type: ErrorTypes; + // (undocumented) + url?: string; +} + +// @public +export enum ErrorDetails { + // (undocumented) + AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", + // (undocumented) + AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", + // (undocumented) + BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", + // (undocumented) + BUFFER_APPEND_ERROR = "bufferAppendError", + // (undocumented) + BUFFER_APPENDING_ERROR = "bufferAppendingError", + // (undocumented) + BUFFER_FULL_ERROR = "bufferFullError", + // (undocumented) + BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", + // (undocumented) + BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", + // (undocumented) + BUFFER_STALLED_ERROR = "bufferStalledError", + // (undocumented) + FRAG_DECRYPT_ERROR = "fragDecryptError", + // (undocumented) + FRAG_LOAD_ERROR = "fragLoadError", + // (undocumented) + FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", + // (undocumented) + FRAG_PARSING_ERROR = "fragParsingError", + // (undocumented) + INTERNAL_ABORTED = "aborted", + // (undocumented) + INTERNAL_EXCEPTION = "internalException", + // (undocumented) + KEY_LOAD_ERROR = "keyLoadError", + // (undocumented) + KEY_LOAD_TIMEOUT = "keyLoadTimeOut", + // (undocumented) + KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", + // (undocumented) + KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", + // (undocumented) + KEY_SYSTEM_NO_INIT_DATA = "keySystemNoInitData", + // (undocumented) + KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", + // (undocumented) + KEY_SYSTEM_NO_SESSION = "keySystemNoSession", + // (undocumented) + LEVEL_EMPTY_ERROR = "levelEmptyError", + // (undocumented) + LEVEL_LOAD_ERROR = "levelLoadError", + // (undocumented) + LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", + // (undocumented) + LEVEL_SWITCH_ERROR = "levelSwitchError", + // (undocumented) + MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", + // (undocumented) + MANIFEST_LOAD_ERROR = "manifestLoadError", + // (undocumented) + MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", + // (undocumented) + MANIFEST_PARSING_ERROR = "manifestParsingError", + // (undocumented) + REMUX_ALLOC_ERROR = "remuxAllocError", + // (undocumented) + SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError", + // (undocumented) + SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut", + // (undocumented) + UNKNOWN = "unknown" +} + +// @public (undocumented) +export enum ErrorTypes { + // (undocumented) + KEY_SYSTEM_ERROR = "keySystemError", + // (undocumented) + MEDIA_ERROR = "mediaError", + // (undocumented) + MUX_ERROR = "muxError", + // (undocumented) + NETWORK_ERROR = "networkError", + // (undocumented) + OTHER_ERROR = "otherError" +} + +// @public +export enum Events { + // (undocumented) + AUDIO_TRACK_LOADED = "hlsAudioTrackLoaded", + // (undocumented) + AUDIO_TRACK_LOADING = "hlsAudioTrackLoading", + // (undocumented) + AUDIO_TRACK_SWITCHED = "hlsAudioTrackSwitched", + // (undocumented) + AUDIO_TRACK_SWITCHING = "hlsAudioTrackSwitching", + // (undocumented) + AUDIO_TRACKS_UPDATED = "hlsAudioTracksUpdated", + // (undocumented) + BUFFER_APPENDED = "hlsBufferAppended", + // (undocumented) + BUFFER_APPENDING = "hlsBufferAppending", + // (undocumented) + BUFFER_CODECS = "hlsBufferCodecs", + // (undocumented) + BUFFER_CREATED = "hlsBufferCreated", + // (undocumented) + BUFFER_EOS = "hlsBufferEos", + // (undocumented) + BUFFER_FLUSHED = "hlsBufferFlushed", + // (undocumented) + BUFFER_FLUSHING = "hlsBufferFlushing", + // (undocumented) + BUFFER_RESET = "hlsBufferReset", + // (undocumented) + CUES_PARSED = "hlsCuesParsed", + // (undocumented) + DESTROYING = "hlsDestroying", + // (undocumented) + ERROR = "hlsError", + // (undocumented) + FPS_DROP = "hlsFpsDrop", + // (undocumented) + FPS_DROP_LEVEL_CAPPING = "hlsFpsDropLevelCapping", + // (undocumented) + FRAG_BUFFERED = "hlsFragBuffered", + // (undocumented) + FRAG_CHANGED = "hlsFragChanged", + // (undocumented) + FRAG_DECRYPTED = "hlsFragDecrypted", + // (undocumented) + FRAG_LOAD_EMERGENCY_ABORTED = "hlsFragLoadEmergencyAborted", + // (undocumented) + FRAG_LOADED = "hlsFragLoaded", + // (undocumented) + FRAG_LOADING = "hlsFragLoading", + // (undocumented) + FRAG_PARSED = "hlsFragParsed", + // (undocumented) + FRAG_PARSING_INIT_SEGMENT = "hlsFragParsingInitSegment", + // (undocumented) + FRAG_PARSING_METADATA = "hlsFragParsingMetadata", + // (undocumented) + FRAG_PARSING_USERDATA = "hlsFragParsingUserdata", + // (undocumented) + INIT_PTS_FOUND = "hlsInitPtsFound", + // (undocumented) + KEY_LOADED = "hlsKeyLoaded", + // (undocumented) + KEY_LOADING = "hlsKeyLoading", + // (undocumented) + LEVEL_LOADED = "hlsLevelLoaded", + // (undocumented) + LEVEL_LOADING = "hlsLevelLoading", + // (undocumented) + LEVEL_PTS_UPDATED = "hlsLevelPtsUpdated", + // (undocumented) + LEVEL_SWITCHED = "hlsLevelSwitched", + // (undocumented) + LEVEL_SWITCHING = "hlsLevelSwitching", + // (undocumented) + LEVEL_UPDATED = "hlsLevelUpdated", + // (undocumented) + LEVELS_UPDATED = "hlsLevelsUpdated", + // (undocumented) + LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached", + // (undocumented) + MANIFEST_LOADED = "hlsManifestLoaded", + // (undocumented) + MANIFEST_LOADING = "hlsManifestLoading", + // (undocumented) + MANIFEST_PARSED = "hlsManifestParsed", + // (undocumented) + MEDIA_ATTACHED = "hlsMediaAttached", + // (undocumented) + MEDIA_ATTACHING = "hlsMediaAttaching", + // (undocumented) + MEDIA_DETACHED = "hlsMediaDetached", + // (undocumented) + MEDIA_DETACHING = "hlsMediaDetaching", + // (undocumented) + NON_NATIVE_TEXT_TRACKS_FOUND = "hlsNonNativeTextTracksFound", + // (undocumented) + SUBTITLE_FRAG_PROCESSED = "hlsSubtitleFragProcessed", + // (undocumented) + SUBTITLE_TRACK_LOADED = "hlsSubtitleTrackLoaded", + // (undocumented) + SUBTITLE_TRACK_LOADING = "hlsSubtitleTrackLoading", + // (undocumented) + SUBTITLE_TRACK_SWITCH = "hlsSubtitleTrackSwitch", + // (undocumented) + SUBTITLE_TRACKS_CLEARED = "hlsSubtitleTracksCleared", + // (undocumented) + SUBTITLE_TRACKS_UPDATED = "hlsSubtitleTracksUpdated" +} + +// @public (undocumented) +export type FPSControllerConfig = { + capLevelOnFPSDrop: boolean; + fpsDroppedMonitoringPeriod: number; + fpsDroppedMonitoringThreshold: number; +}; + +// @public (undocumented) +export interface FPSDropData { + // (undocumented) + currentDecoded: number; + // (undocumented) + currentDropped: number; + // (undocumented) + totalDroppedFrames: number; +} + +// @public (undocumented) +export interface FPSDropLevelCappingData { + // (undocumented) + droppedLevel: number; + // (undocumented) + level: number; +} + +// @public (undocumented) +export interface FragBufferedData { + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + part: Part | null; + // (undocumented) + stats: LoadStats; +} + +// @public (undocumented) +export interface FragChangedData { + // (undocumented) + frag: Fragment; +} + +// @public (undocumented) +export interface FragDecryptedData { + // (undocumented) + frag: Fragment; + // (undocumented) + payload: ArrayBuffer; + // (undocumented) + stats: { + tstart: number; + tdecrypt: number; + }; +} + +// @public (undocumented) +export interface FragLoadedData { + // (undocumented) + frag: Fragment; + // (undocumented) + networkDetails: unknown; + // (undocumented) + part: Part | null; + // (undocumented) + payload: ArrayBuffer; +} + +// @public (undocumented) +export interface FragLoadEmergencyAbortedData { + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; + // (undocumented) + stats: LoaderStats; +} + +// @public (undocumented) +export interface FragLoadingData { + // (undocumented) + frag: Fragment; + // (undocumented) + part?: Part; + // (undocumented) + targetBufferTime: number | null; +} + +// @public (undocumented) +export class Fragment extends BaseSegment { + constructor(type: PlaylistLevelType, baseurl: string); + // (undocumented) + appendedPTS?: number; + // (undocumented) + bitrateTest: boolean; + // (undocumented) + cc: number; + // (undocumented) + clearElementaryStreamInfo(): void; + createInitializationVector(segmentNumber: number): Uint8Array; + // (undocumented) + data?: Uint8Array; + // (undocumented) + get decryptdata(): LevelKey | null; + // (undocumented) + deltaPTS?: number; + // (undocumented) + duration: number; + // (undocumented) + get encrypted(): boolean; + // (undocumented) + get end(): number; + // (undocumented) + endDTS: number; + // (undocumented) + get endProgramDateTime(): number | null; + // (undocumented) + endPTS?: number; + // (undocumented) + level: number; + // (undocumented) + levelkey?: LevelKey; + // (undocumented) + loader: Loader | null; + // (undocumented) + maxStartPTS?: number; + // (undocumented) + minEndPTS?: number; + // (undocumented) + programDateTime: number | null; + // (undocumented) + rawProgramDateTime: string | null; + setDecryptDataFromLevelKey(levelkey: LevelKey, segmentNumber: number): LevelKey; + // (undocumented) + setElementaryStreamInfo(type: ElementaryStreamTypes, startPTS: number, endPTS: number, startDTS: number, endDTS: number, partial?: boolean): void; + // (undocumented) + sn: number | 'initSegment'; + // (undocumented) + start: number; + // (undocumented) + startDTS: number; + // (undocumented) + startPTS?: number; + // (undocumented) + stats: LoadStats; + // (undocumented) + tagList: Array; + // (undocumented) + title: string | null; + // (undocumented) + readonly type: PlaylistLevelType; + // (undocumented) + urlId: number; +} + +// @public (undocumented) +export type FragmentLoaderConfig = { + fLoader?: { + new (confg: HlsConfig): Loader; + }; + fragLoadingTimeOut: number; + fragLoadingMaxRetry: number; + fragLoadingRetryDelay: number; + fragLoadingMaxRetryTimeout: number; +}; + +// @public (undocumented) +export interface FragmentLoaderContext extends LoaderContext { + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; +} + +// @public (undocumented) +export interface FragParsedData { + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; +} + +// @public (undocumented) +export interface FragParsingInitSegmentData { +} + +// @public (undocumented) +export interface FragParsingMetadataData { + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + samples: MetadataSample[]; +} + +// @public (undocumented) +export interface FragParsingUserdataData { + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + samples: UserdataSample[]; +} + +// @public +class Hls implements HlsEventEmitter { + constructor(userConfig?: Partial); + attachMedia(media: HTMLMediaElement): void; + get audioTrack(): number; + set audioTrack(audioTrackId: number); + get audioTracks(): Array; + get autoLevelCapping(): number; + set autoLevelCapping(newLevel: number); + get autoLevelEnabled(): boolean; + get bandwidthEstimate(): number; + get capLevelToPlayerSize(): boolean; + set capLevelToPlayerSize(shouldStartCapping: boolean); + // (undocumented) + readonly config: HlsConfig; + // (undocumented) + createController(ControllerClass: any, fragmentTracker: any, components: any): any; + get currentLevel(): number; + set currentLevel(newLevel: number); + // (undocumented) + static get DefaultConfig(): HlsConfig; + static set DefaultConfig(defaultConfig: HlsConfig); + destroy(): void; + detachMedia(): void; + // (undocumented) + emit(event: E, name: E, eventObject: Parameters[1]): boolean; + // (undocumented) + static get ErrorDetails(): typeof ErrorDetails; + // (undocumented) + static get ErrorTypes(): typeof ErrorTypes; + // (undocumented) + static get Events(): typeof Events; + get firstLevel(): number; + set firstLevel(newLevel: number); + // (undocumented) + static isSupported(): boolean; + get latency(): number; + get levels(): Array; + // (undocumented) + listenerCount(event: E): number; + // (undocumented) + listeners(event: E): HlsListeners[E][]; + get liveSyncPosition(): number | null; + get loadLevel(): number; + set loadLevel(newLevel: number); + loadSource(url: string): void; + get lowLatencyMode(): boolean; + set lowLatencyMode(mode: boolean); + get manualLevel(): number; + get maxAutoLevel(): number; + get maxLatency(): number; + // (undocumented) + get media(): HTMLMediaElement | null; + get minAutoLevel(): number; + get nextAutoLevel(): number; + set nextAutoLevel(nextLevel: number); + get nextLevel(): number; + set nextLevel(newLevel: number); + get nextLoadLevel(): number; + set nextLoadLevel(level: number); + // (undocumented) + off(event: E, listener?: HlsListeners[E] | undefined, context?: Context, once?: boolean | undefined): void; + // (undocumented) + on(event: E, listener: HlsListeners[E], context?: Context): void; + // (undocumented) + once(event: E, listener: HlsListeners[E], context?: Context): void; + recoverMediaError(): void; + // (undocumented) + removeAllListeners(event?: E | undefined): void; + // (undocumented) + removeLevel(levelIndex: any, urlId?: number): void; + get startLevel(): number; + set startLevel(newLevel: number); + startLoad(startPosition?: number): void; + stopLoad(): void; + get subtitleDisplay(): boolean; + set subtitleDisplay(value: boolean); + get subtitleTrack(): number; + set subtitleTrack(subtitleTrackId: number); + get subtitleTracks(): Array; + swapAudioCodec(): void; + get targetLatency(): number | null; + // (undocumented) + trigger(event: E, eventObject: Parameters[1]): boolean; + // (undocumented) + readonly userConfig: Partial; + // (undocumented) + static get version(): string; +} + +export default Hls; + +// @public (undocumented) +export interface HlsChunkPerformanceTiming extends HlsPerformanceTiming { + // (undocumented) + executeEnd: number; + // (undocumented) + executeStart: number; +} + +// @public (undocumented) +export type HlsConfig = { + debug: boolean; + enableWorker: boolean; + enableSoftwareAES: boolean; + minAutoBitrate: number; + loader: { + new (confg: HlsConfig): Loader; + }; + xhrSetup?: (xhr: XMLHttpRequest, url: string) => void; + audioStreamController?: typeof AudioStreamController; + audioTrackController?: typeof AudioTrackController; + subtitleStreamController?: typeof SubtitleStreamController; + subtitleTrackController?: typeof SubtitleTrackController; + timelineController?: typeof TimelineController; + emeController?: typeof EMEController; + abrController: typeof AbrController; + bufferController: typeof BufferController; + capLevelController: typeof CapLevelController; + fpsController: typeof FPSController; + progressive: boolean; + lowLatencyMode: boolean; +} & ABRControllerConfig & BufferControllerConfig & CapLevelControllerConfig & EMEControllerConfig & FPSControllerConfig & FragmentLoaderConfig & LevelControllerConfig & MP4RemuxerConfig & PlaylistLoaderConfig & StreamControllerConfig & LatencyControllerConfig & TimelineControllerConfig & TSDemuxerConfig; + +// @public (undocumented) +export interface HlsEventEmitter { + // (undocumented) + emit(event: E, name: E, eventObject: Parameters[1]): boolean; + // (undocumented) + listenerCount(event: E): number; + // (undocumented) + listeners(event: E): HlsListeners[E][]; + // (undocumented) + off(event: E, listener?: HlsListeners[E], context?: Context, once?: boolean): void; + // (undocumented) + on(event: E, listener: HlsListeners[E], context?: Context): void; + // (undocumented) + once(event: E, listener: HlsListeners[E], context?: Context): void; + // (undocumented) + removeAllListeners(event?: E): void; +} + +// @public (undocumented) +export interface HlsListeners { + // (undocumented) + [Events.AUDIO_TRACK_LOADED]: (event: Events.AUDIO_TRACK_LOADED, data: AudioTrackLoadedData) => void; + // (undocumented) + [Events.AUDIO_TRACK_LOADING]: (event: Events.AUDIO_TRACK_LOADING, data: TrackLoadingData) => void; + // (undocumented) + [Events.AUDIO_TRACKS_UPDATED]: (event: Events.AUDIO_TRACKS_UPDATED, data: AudioTracksUpdatedData) => void; + // (undocumented) + [Events.AUDIO_TRACK_SWITCHED]: (event: Events.AUDIO_TRACK_SWITCHED, data: AudioTrackSwitchedData) => void; + // (undocumented) + [Events.AUDIO_TRACK_SWITCHING]: (event: Events.AUDIO_TRACK_SWITCHING, data: AudioTrackSwitchingData) => void; + // (undocumented) + [Events.BUFFER_APPENDED]: (event: Events.BUFFER_APPENDED, data: BufferAppendedData) => void; + // (undocumented) + [Events.BUFFER_APPENDING]: (event: Events.BUFFER_APPENDING, data: BufferAppendingData) => void; + // (undocumented) + [Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void; + // (undocumented) + [Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void; + // (undocumented) + [Events.BUFFER_EOS]: (event: Events.BUFFER_EOS, data: BufferEOSData) => void; + // (undocumented) + [Events.BUFFER_FLUSHED]: (event: Events.BUFFER_FLUSHED, data: BufferFlushedData) => void; + // (undocumented) + [Events.BUFFER_FLUSHING]: (event: Events.BUFFER_FLUSHING, data: BufferFlushingData) => void; + // (undocumented) + [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void; + // (undocumented) + [Events.CUES_PARSED]: (event: Events.CUES_PARSED, data: CuesParsedData) => void; + // (undocumented) + [Events.DESTROYING]: (event: Events.DESTROYING) => void; + // (undocumented) + [Events.ERROR]: (event: Events.ERROR, data: ErrorData) => void; + // (undocumented) + [Events.FPS_DROP]: (event: Events.FPS_DROP, data: FPSDropData) => void; + // (undocumented) + [Events.FPS_DROP_LEVEL_CAPPING]: (event: Events.FPS_DROP_LEVEL_CAPPING, data: FPSDropLevelCappingData) => void; + // (undocumented) + [Events.FRAG_BUFFERED]: (event: Events.FRAG_BUFFERED, data: FragBufferedData) => void; + // (undocumented) + [Events.FRAG_CHANGED]: (event: Events.FRAG_CHANGED, data: FragChangedData) => void; + // (undocumented) + [Events.FRAG_DECRYPTED]: (event: Events.FRAG_DECRYPTED, data: FragDecryptedData) => void; + // (undocumented) + [Events.FRAG_LOADED]: (event: Events.FRAG_LOADED, data: FragLoadedData) => void; + // (undocumented) + [Events.FRAG_LOAD_EMERGENCY_ABORTED]: (event: Events.FRAG_LOAD_EMERGENCY_ABORTED, data: FragLoadEmergencyAbortedData) => void; + // (undocumented) + [Events.FRAG_LOADING]: (event: Events.FRAG_LOADING, data: FragLoadingData) => void; + // (undocumented) + [Events.FRAG_PARSED]: (event: Events.FRAG_PARSED, data: FragParsedData) => void; + // (undocumented) + [Events.FRAG_PARSING_INIT_SEGMENT]: (event: Events.FRAG_PARSING_INIT_SEGMENT, data: FragParsingInitSegmentData) => void; + // (undocumented) + [Events.FRAG_PARSING_METADATA]: (event: Events.FRAG_PARSING_METADATA, data: FragParsingMetadataData) => void; + // (undocumented) + [Events.FRAG_PARSING_USERDATA]: (event: Events.FRAG_PARSING_USERDATA, data: FragParsingUserdataData) => void; + // (undocumented) + [Events.INIT_PTS_FOUND]: (event: Events.INIT_PTS_FOUND, data: InitPTSFoundData) => void; + // (undocumented) + [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void; + // (undocumented) + [Events.KEY_LOADING]: (event: Events.KEY_LOADING, data: KeyLoadingData) => void; + // (undocumented) + [Events.LEVEL_LOADED]: (event: Events.LEVEL_LOADED, data: LevelLoadedData) => void; + // (undocumented) + [Events.LEVEL_LOADING]: (event: Events.LEVEL_LOADING, data: LevelLoadingData) => void; + // (undocumented) + [Events.LEVEL_PTS_UPDATED]: (event: Events.LEVEL_PTS_UPDATED, data: LevelPTSUpdatedData) => void; + // (undocumented) + [Events.LEVELS_UPDATED]: (event: Events.LEVELS_UPDATED, data: LevelsUpdatedData) => void; + // (undocumented) + [Events.LEVEL_SWITCHED]: (event: Events.LEVEL_SWITCHED, data: LevelSwitchedData) => void; + // (undocumented) + [Events.LEVEL_SWITCHING]: (event: Events.LEVEL_SWITCHING, data: LevelSwitchingData) => void; + // (undocumented) + [Events.LEVEL_UPDATED]: (event: Events.LEVEL_UPDATED, data: LevelUpdatedData) => void; + // (undocumented) + [Events.LIVE_BACK_BUFFER_REACHED]: (event: Events.LIVE_BACK_BUFFER_REACHED, data: LiveBackBufferData) => void; + // (undocumented) + [Events.MANIFEST_LOADED]: (event: Events.MANIFEST_LOADED, data: ManifestLoadedData) => void; + // (undocumented) + [Events.MANIFEST_LOADING]: (event: Events.MANIFEST_LOADING, data: ManifestLoadingData) => void; + // (undocumented) + [Events.MANIFEST_PARSED]: (event: Events.MANIFEST_PARSED, data: ManifestParsedData) => void; + // (undocumented) + [Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void; + // (undocumented) + [Events.MEDIA_ATTACHING]: (event: Events.MEDIA_ATTACHING, data: MediaAttachingData) => void; + // (undocumented) + [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void; + // (undocumented) + [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void; + // (undocumented) + [Events.NON_NATIVE_TEXT_TRACKS_FOUND]: (event: Events.NON_NATIVE_TEXT_TRACKS_FOUND, data: NonNativeTextTracksData) => void; + // (undocumented) + [Events.SUBTITLE_FRAG_PROCESSED]: (event: Events.SUBTITLE_FRAG_PROCESSED, data: SubtitleFragProcessedData) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_LOADED]: (event: Events.SUBTITLE_TRACK_LOADED, data: SubtitleTrackLoadedData) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_LOADING]: (event: Events.SUBTITLE_TRACK_LOADING, data: TrackLoadingData) => void; + // (undocumented) + [Events.SUBTITLE_TRACKS_CLEARED]: (event: Events.SUBTITLE_TRACKS_CLEARED) => void; + // (undocumented) + [Events.SUBTITLE_TRACKS_UPDATED]: (event: Events.SUBTITLE_TRACKS_UPDATED, data: SubtitleTracksUpdatedData) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_SWITCH]: (event: Events.SUBTITLE_TRACK_SWITCH, data: SubtitleTrackSwitchData) => void; +} + +// @public (undocumented) +export interface HlsPerformanceTiming { + // (undocumented) + end: number; + // (undocumented) + start: number; +} + +// @public (undocumented) +export interface HlsProgressivePerformanceTiming extends HlsPerformanceTiming { + // (undocumented) + first: number; +} + +// @public (undocumented) +export enum HlsSkip { + // (undocumented) + No = "", + // (undocumented) + v2 = "v2", + // (undocumented) + Yes = "YES" +} + +// @public (undocumented) +export class HlsUrlParameters { + constructor(msn: number, part?: number, skip?: HlsSkip); + // (undocumented) + addDirectives(uri: string): string | never; + // (undocumented) + msn: number; + // (undocumented) + part?: number; + // (undocumented) + skip?: HlsSkip; +} + +// @public (undocumented) +export interface InitPTSFoundData { + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + initPTS: number; + // (undocumented) + timescale: number; +} + +// @public (undocumented) +export interface KeyLoadedData { + // (undocumented) + frag: Fragment; +} + +// @public (undocumented) +export interface KeyLoadingData { + // (undocumented) + frag: Fragment; +} + +// @public (undocumented) +export enum KeySystems { + // (undocumented) + PLAYREADY = "com.microsoft.playready", + // (undocumented) + WIDEVINE = "com.widevine.alpha" +} + +// @public (undocumented) +export type LatencyControllerConfig = { + liveSyncDurationCount: number; + liveMaxLatencyDurationCount: number; + liveSyncDuration?: number; + liveMaxLatencyDuration?: number; + maxLiveSyncPlaybackRate: number; +}; + +// @public (undocumented) +export class Level { + constructor(data: LevelParsed); + // (undocumented) + readonly attrs: LevelAttributes; + // (undocumented) + readonly audioCodec: string | undefined; + // (undocumented) + audioGroupIds?: string[]; + // (undocumented) + readonly bitrate: number; + // (undocumented) + readonly codecSet: string; + // (undocumented) + details?: LevelDetails; + // (undocumented) + fragmentError: number; + // (undocumented) + readonly height: number; + // (undocumented) + readonly id: number; + // (undocumented) + loaded?: { + bytes: number; + duration: number; + }; + // (undocumented) + loadError: number; + // (undocumented) + get maxBitrate(): number; + // (undocumented) + readonly name: string | undefined; + // (undocumented) + realBitrate: number; + // (undocumented) + textGroupIds?: string[]; + // (undocumented) + readonly unknownCodecs: string[] | undefined; + // (undocumented) + get uri(): string; + // (undocumented) + url: string[]; + // (undocumented) + get urlId(): number; + set urlId(value: number); + // (undocumented) + readonly videoCodec: string | undefined; + // (undocumented) + readonly width: number; +} + +// @public (undocumented) +export interface LevelAttributes extends AttrList { + // (undocumented) + 'AVERAGE-BANDWIDTH'?: string; + // (undocumented) + 'CLOSED-CAPTIONS'?: string; + // (undocumented) + 'FRAME-RATE'?: string; + // (undocumented) + 'PROGRAM-ID'?: string; + // (undocumented) + AUDIO?: string; + // (undocumented) + AUTOSELECT?: string; + // (undocumented) + BANDWIDTH?: string; + // (undocumented) + BYTERANGE?: string; + // (undocumented) + CODECS?: string; + // (undocumented) + DEFAULT?: string; + // (undocumented) + FORCED?: string; + // (undocumented) + LANGUAGE?: string; + // (undocumented) + NAME?: string; + // (undocumented) + RESOLUTION?: string; + // (undocumented) + SUBTITLES?: string; + // (undocumented) + TYPE?: string; + // (undocumented) + URI?: string; +} + +// @public (undocumented) +export type LevelControllerConfig = { + startLevel?: number; +}; + +// @public (undocumented) +export class LevelDetails { + constructor(baseUrl: any); + // (undocumented) + advanced: boolean; + // (undocumented) + advancedDateTime?: number; + // (undocumented) + get age(): number; + // (undocumented) + ageHeader: number; + // (undocumented) + alignedSliding: boolean; + // (undocumented) + availabilityDelay?: number; + // (undocumented) + averagetargetduration?: number; + // (undocumented) + canBlockReload: boolean; + // (undocumented) + canSkipDateRanges: boolean; + // (undocumented) + canSkipUntil: number; + // (undocumented) + deltaUpdateFailed?: boolean; + // (undocumented) + get edge(): number; + // (undocumented) + endCC: number; + // (undocumented) + endSN: number; + // (undocumented) + get fragmentEnd(): number; + // (undocumented) + fragmentHint?: Fragment; + // (undocumented) + fragments: Fragment[]; + // (undocumented) + get hasProgramDateTime(): boolean; + // (undocumented) + holdBack: number; + // (undocumented) + initSegment: Fragment | null; + // (undocumented) + get lastPartIndex(): number; + // (undocumented) + get lastPartSn(): number; + // (undocumented) + get levelTargetDuration(): number; + // (undocumented) + live: boolean; + // (undocumented) + m3u8: string; + // (undocumented) + misses: number; + // (undocumented) + needSidxRanges: boolean; + // (undocumented) + get partEnd(): number; + // (undocumented) + partHoldBack: number; + // (undocumented) + partList: Part[] | null; + // (undocumented) + partTarget: number; + // (undocumented) + preloadHint?: AttrList; + // (undocumented) + PTSKnown: boolean; + // (undocumented) + recentlyRemovedDateranges?: string[]; + // (undocumented) + reloaded(previous: LevelDetails | undefined): void; + // (undocumented) + renditionReports?: AttrList[]; + // (undocumented) + skippedSegments: number; + // (undocumented) + startCC: number; + // (undocumented) + startSN: number; + // (undocumented) + startTimeOffset: number | null; + // (undocumented) + targetduration: number; + // (undocumented) + totalduration: number; + // (undocumented) + tuneInGoal: number; + // (undocumented) + type: string | null; + // (undocumented) + updated: boolean; + // (undocumented) + url: string; + // (undocumented) + version: number | null; +} + +// @public (undocumented) +export class LevelKey { + // (undocumented) + static fromURI(uri: string): LevelKey; + // (undocumented) + static fromURL(baseUrl: string, relativeUrl: string): LevelKey; + // (undocumented) + iv: Uint8Array | null; + // (undocumented) + key: Uint8Array | null; + // (undocumented) + keyFormat: string | null; + // (undocumented) + keyFormatVersions: string | null; + // (undocumented) + keyID: string | null; + // (undocumented) + method: string | null; + // (undocumented) + get uri(): string | null; + } + +// @public (undocumented) +export interface LevelLoadedData { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + details: LevelDetails; + // (undocumented) + id: number; + // (undocumented) + level: number; + // (undocumented) + networkDetails: any; + // (undocumented) + stats: LoaderStats; +} + +// @public (undocumented) +export interface LevelLoadingData { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + id: number; + // (undocumented) + level: number; + // (undocumented) + url: string; +} + +// @public (undocumented) +export interface LevelParsed { + // (undocumented) + attrs: LevelAttributes; + // (undocumented) + audioCodec?: string; + // (undocumented) + bitrate: number; + // (undocumented) + details?: LevelDetails; + // (undocumented) + height?: number; + // (undocumented) + id?: number; + // (undocumented) + level?: number; + // (undocumented) + name: string; + // (undocumented) + textCodec?: string; + // (undocumented) + unknownCodecs?: string[]; + // (undocumented) + url: string; + // (undocumented) + videoCodec?: string; + // (undocumented) + width?: number; +} + +// @public (undocumented) +export interface LevelPTSUpdatedData { + // (undocumented) + details: LevelDetails; + // (undocumented) + drift: number; + // (undocumented) + end: number; + // (undocumented) + frag: Fragment; + // (undocumented) + level: Level; + // (undocumented) + start: number; + // (undocumented) + type: string; +} + +// @public (undocumented) +export interface LevelsUpdatedData { + // (undocumented) + levels: Array; +} + +// @public (undocumented) +export interface LevelSwitchedData { + // (undocumented) + level: number; +} + +// @public (undocumented) +export interface LevelSwitchingData extends Omit { + // (undocumented) + level: number; +} + +// @public (undocumented) +export interface LevelUpdatedData { + // (undocumented) + details: LevelDetails; + // (undocumented) + level: number; +} + +// @public (undocumented) +export interface LiveBackBufferData { + // (undocumented) + bufferEnd: number; +} + +// @public (undocumented) +export interface Loader { + // (undocumented) + abort(): void; + // (undocumented) + context: T; + // (undocumented) + destroy(): void; + // (undocumented) + getResponseHeader(name: string): string | null; + // (undocumented) + load(context: LoaderContext, config: LoaderConfiguration, callbacks: LoaderCallbacks): void; + // (undocumented) + loader: any; + // (undocumented) + stats: LoaderStats; +} + +// @public (undocumented) +export interface LoaderCallbacks { + // (undocumented) + onAbort?: LoaderOnAbort; + // (undocumented) + onError: LoaderOnError; + // (undocumented) + onProgress?: LoaderOnProgress; + // (undocumented) + onSuccess: LoaderOnSuccess; + // (undocumented) + onTimeout: LoaderOnTimeout; +} + +// @public (undocumented) +export interface LoaderConfiguration { + // (undocumented) + highWaterMark: number; + // (undocumented) + maxRetry: number; + // (undocumented) + maxRetryDelay: number; + // (undocumented) + retryDelay: number; + // (undocumented) + timeout: number; +} + +// @public (undocumented) +export interface LoaderContext { + // (undocumented) + progressData?: boolean; + // (undocumented) + rangeEnd?: number; + // (undocumented) + rangeStart?: number; + // (undocumented) + responseType: string; + // (undocumented) + url: string; +} + +// @public (undocumented) +export type LoaderOnAbort = (stats: LoaderStats, context: T, networkDetails: any) => void; + +// @public (undocumented) +export type LoaderOnError = (error: { + code: number; + text: string; +}, context: T, networkDetails: any) => void; + +// @public (undocumented) +export type LoaderOnProgress = (stats: LoaderStats, context: T, data: string | ArrayBuffer, networkDetails: any) => void; + +// @public (undocumented) +export type LoaderOnSuccess = (response: LoaderResponse, stats: LoaderStats, context: T, networkDetails: any) => void; + +// @public (undocumented) +export type LoaderOnTimeout = (stats: LoaderStats, context: T, networkDetails: any) => void; + +// @public (undocumented) +export interface LoaderResponse { + // (undocumented) + data: string | ArrayBuffer; + // (undocumented) + url: string; +} + +// @public (undocumented) +export interface LoaderStats { + // (undocumented) + aborted: boolean; + // (undocumented) + buffering: HlsProgressivePerformanceTiming; + // (undocumented) + bwEstimate: number; + // (undocumented) + chunkCount: number; + // (undocumented) + loaded: number; + // (undocumented) + loading: HlsProgressivePerformanceTiming; + // (undocumented) + parsing: HlsPerformanceTiming; + // (undocumented) + retry: number; + // (undocumented) + total: number; +} + +// @public (undocumented) +export class LoadStats implements LoaderStats { + // (undocumented) + aborted: boolean; + // (undocumented) + buffering: HlsProgressivePerformanceTiming; + // (undocumented) + bwEstimate: number; + // (undocumented) + chunkCount: number; + // (undocumented) + loaded: number; + // (undocumented) + loading: HlsProgressivePerformanceTiming; + // (undocumented) + parsing: HlsPerformanceTiming; + // (undocumented) + retry: number; + // (undocumented) + total: number; +} + +// @public (undocumented) +export type MainPlaylistType = AudioPlaylistType | 'VIDEO'; + +// @public (undocumented) +export interface ManifestLoadedData { + // (undocumented) + audioTracks: MediaPlaylist[]; + // (undocumented) + captions?: MediaPlaylist[]; + // (undocumented) + levels: LevelParsed[]; + // (undocumented) + networkDetails: any; + // (undocumented) + sessionData: Record | null; + // (undocumented) + stats: LoaderStats; + // (undocumented) + subtitles?: MediaPlaylist[]; + // (undocumented) + url: string; +} + +// @public (undocumented) +export interface ManifestLoadingData { + // (undocumented) + url: string; +} + +// @public (undocumented) +export interface ManifestParsedData { + // (undocumented) + altAudio: boolean; + // (undocumented) + audio: boolean; + // (undocumented) + audioTracks: MediaPlaylist[]; + // (undocumented) + firstLevel: number; + // (undocumented) + levels: Level[]; + // (undocumented) + stats: LoaderStats; + // (undocumented) + subtitleTracks: MediaPlaylist[]; + // (undocumented) + video: boolean; +} + +// @public (undocumented) +export interface MediaAttachedData { + // (undocumented) + media: HTMLMediaElement; +} + +// @public (undocumented) +export interface MediaAttachingData { + // (undocumented) + media: HTMLMediaElement; +} + +// @public (undocumented) +export type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise; + +// @public (undocumented) +export interface MediaPlaylist extends LevelParsed { + // (undocumented) + autoselect: boolean; + // (undocumented) + default: boolean; + // (undocumented) + forced: boolean; + // (undocumented) + groupId?: string; + // (undocumented) + id: number; + // (undocumented) + instreamId?: string; + // (undocumented) + lang?: string; + // (undocumented) + name: string; + // (undocumented) + type: MediaPlaylistType | 'main'; +} + +// @public (undocumented) +export type MediaPlaylistType = MainPlaylistType | SubtitlePlaylistType; + +// @public (undocumented) +export interface MetadataSample { + // (undocumented) + data: Uint8Array; + // (undocumented) + dts: number; + // (undocumented) + len?: number; + // (undocumented) + pts: number; +} + +// @public (undocumented) +export type MP4RemuxerConfig = { + stretchShortVideoTrack: boolean; + maxAudioFramesDrift: number; +}; + +// @public (undocumented) +export interface NonNativeTextTrack { + // (undocumented) + closedCaptions?: MediaPlaylist; + // (undocumented) + default: boolean; + // (undocumented) + _id?: string; + // (undocumented) + kind: string; + // (undocumented) + label: any; + // (undocumented) + subtitleTrack?: MediaPlaylist; +} + +// @public (undocumented) +export interface NonNativeTextTracksData { + // (undocumented) + tracks: Array; +} + +// @public (undocumented) +export class Part extends BaseSegment { + constructor(partAttrs: AttrList, frag: Fragment, baseurl: string, index: number, previous?: Part); + // (undocumented) + readonly duration: number; + // (undocumented) + get end(): number; + // (undocumented) + readonly fragment: Fragment; + // (undocumented) + readonly fragOffset: number; + // (undocumented) + readonly gap: boolean; + // (undocumented) + readonly independent: boolean; + // (undocumented) + readonly index: number; + // (undocumented) + get loaded(): boolean; + // (undocumented) + readonly relurl: string; + // (undocumented) + get start(): number; + // (undocumented) + stats: LoadStats; +} + +// @public (undocumented) +export enum PlaylistContextType { + // (undocumented) + AUDIO_TRACK = "audioTrack", + // (undocumented) + LEVEL = "level", + // (undocumented) + MANIFEST = "manifest", + // (undocumented) + SUBTITLE_TRACK = "subtitleTrack" +} + +// @public (undocumented) +export enum PlaylistLevelType { + // (undocumented) + AUDIO = "audio", + // (undocumented) + MAIN = "main", + // (undocumented) + SUBTITLE = "subtitle" +} + +// @public (undocumented) +export type PlaylistLoaderConfig = { + pLoader?: { + new (confg: HlsConfig): Loader; + }; + manifestLoadingTimeOut: number; + manifestLoadingMaxRetry: number; + manifestLoadingRetryDelay: number; + manifestLoadingMaxRetryTimeout: number; + levelLoadingTimeOut: number; + levelLoadingMaxRetry: number; + levelLoadingRetryDelay: number; + levelLoadingMaxRetryTimeout: number; +}; + +// @public (undocumented) +export interface PlaylistLoaderContext extends LoaderContext { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + groupId: string | null; + // (undocumented) + id: number | null; + // (undocumented) + isSidxRequest?: boolean; + // (undocumented) + level: number | null; + // (undocumented) + levelDetails?: LevelDetails; + // (undocumented) + loader?: Loader; + // (undocumented) + type: PlaylistContextType; +} + +// @public (undocumented) +export type SourceBufferName = 'video' | 'audio' | 'audiovideo'; + +// @public (undocumented) +export type StreamControllerConfig = { + autoStartLoad: boolean; + startPosition: number; + defaultAudioCodec?: string; + initialLiveManifestSize: number; + maxBufferLength: number; + maxBufferSize: number; + maxBufferHole: number; + highBufferWatchdogPeriod: number; + nudgeOffset: number; + nudgeMaxRetry: number; + maxFragLookUpTolerance: number; + maxMaxBufferLength: number; + startFragPrefetch: boolean; + testBandwidth: boolean; +}; + +// @public (undocumented) +export interface SubtitleFragProcessedData { + // (undocumented) + error?: Error; + // (undocumented) + frag: Fragment; + // (undocumented) + success: boolean; +} + +// @public (undocumented) +export type SubtitlePlaylistType = 'SUBTITLES' | 'CLOSED-CAPTIONS'; + +// @public (undocumented) +export interface SubtitleTrackLoadedData extends TrackLoadedData { +} + +// @public (undocumented) +export interface SubtitleTracksUpdatedData { + // (undocumented) + subtitleTracks: MediaPlaylist[]; +} + +// @public (undocumented) +export interface SubtitleTrackSwitchData { + // (undocumented) + id: number; + // (undocumented) + type?: MediaPlaylistType | 'main'; + // (undocumented) + url?: string; +} + +// @public (undocumented) +export type TimelineControllerConfig = { + cueHandler: CuesInterface; + enableCEA708Captions: boolean; + enableWebVTT: boolean; + enableIMSC1: boolean; + captionsTextTrack1Label: string; + captionsTextTrack1LanguageCode: string; + captionsTextTrack2Label: string; + captionsTextTrack2LanguageCode: string; + captionsTextTrack3Label: string; + captionsTextTrack3LanguageCode: string; + captionsTextTrack4Label: string; + captionsTextTrack4LanguageCode: string; + renderTextTracksNatively: boolean; +}; + +// @public (undocumented) +export interface Track { + // (undocumented) + buffer?: SourceBuffer; + // (undocumented) + codec?: string; + // (undocumented) + container: string; + // (undocumented) + id: 'audio' | 'main'; + // (undocumented) + initSegment?: Uint8Array; + // (undocumented) + levelCodec?: string; + // (undocumented) + metadata?: any; +} + +// @public (undocumented) +export interface TrackLoadedData { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + details: LevelDetails; + // (undocumented) + groupId: string; + // (undocumented) + id: number; + // (undocumented) + networkDetails: any; + // (undocumented) + stats: LoaderStats; +} + +// @public (undocumented) +export interface TrackLoadingData { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + groupId: string; + // (undocumented) + id: number; + // (undocumented) + url: string; +} + +// @public (undocumented) +export interface TrackSet { + // (undocumented) + audio?: Track; + // (undocumented) + audiovideo?: Track; + // (undocumented) + video?: Track; +} + +// @public (undocumented) +export type TSDemuxerConfig = { + forceKeyFrameOnDiscontinuity: boolean; +}; + +// @public (undocumented) +export interface UserdataSample { + // (undocumented) + bytes: Uint8Array; + // (undocumented) + pts: number; +} + + +// Warnings were encountered during analysis: +// +// src/config.ts:153:3 - (ae-forgotten-export) The symbol "AudioStreamController" needs to be exported by the entry point hls.d.ts +// src/config.ts:154:3 - (ae-forgotten-export) The symbol "AudioTrackController" needs to be exported by the entry point hls.d.ts +// src/config.ts:156:3 - (ae-forgotten-export) The symbol "SubtitleStreamController" needs to be exported by the entry point hls.d.ts +// src/config.ts:157:3 - (ae-forgotten-export) The symbol "SubtitleTrackController" needs to be exported by the entry point hls.d.ts +// src/config.ts:158:3 - (ae-forgotten-export) The symbol "TimelineController" needs to be exported by the entry point hls.d.ts +// src/config.ts:160:3 - (ae-forgotten-export) The symbol "EMEController" needs to be exported by the entry point hls.d.ts +// src/config.ts:162:3 - (ae-forgotten-export) The symbol "AbrController" needs to be exported by the entry point hls.d.ts +// src/config.ts:163:3 - (ae-forgotten-export) The symbol "BufferController" needs to be exported by the entry point hls.d.ts +// src/config.ts:164:3 - (ae-forgotten-export) The symbol "CapLevelController" needs to be exported by the entry point hls.d.ts +// src/config.ts:165:3 - (ae-forgotten-export) The symbol "FPSController" needs to be exported by the entry point hls.d.ts + +// (No @packageDocumentation comment for this package) + +``` diff --git a/package-lock.json b/package-lock.json index 35cabe33f78..3fd6a951497 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4523,6 +4523,64 @@ "@types/yargs": "^13.0.0" } }, + "@microsoft/api-extractor": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.13.1.tgz", + "integrity": "sha512-mnWb5Vuyn/JnjC359HfsRmLDM4/vzyKcJuxQr5Cg/apbkMHuTB1hQrqA8zBda4N+MJZ5ET2BPsrKaUX1qhz8jw==", + "dev": true, + "requires": { + "@microsoft/api-extractor-model": "7.12.2", + "@microsoft/tsdoc": "0.12.24", + "@rushstack/node-core-library": "3.36.0", + "@rushstack/rig-package": "0.2.9", + "@rushstack/ts-command-line": "4.7.8", + "colors": "~1.2.1", + "lodash": "~4.17.15", + "resolve": "~1.17.0", + "semver": "~7.3.0", + "source-map": "~0.6.1", + "typescript": "~4.1.3" + }, + "dependencies": { + "colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", + "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@microsoft/api-extractor-model": { + "version": "7.12.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.12.2.tgz", + "integrity": "sha512-EU+U09Mj65zUH0qwPF4PFJiL6Y+PQQE/RRGEHEDGJJzab/mRQDpKOyrzSdb00xvcd/URehIHJqC55cY2Y4jGOA==", + "dev": true, + "requires": { + "@microsoft/tsdoc": "0.12.24", + "@rushstack/node-core-library": "3.36.0" + } + }, + "@microsoft/tsdoc": { + "version": "0.12.24", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.12.24.tgz", + "integrity": "sha512-Mfmij13RUTmHEMi9vRUhMXD7rnGR2VvxeNYtaGtaJ4redwwjT4UXYJ+nzmVJF7hhd4pn/Fx5sncDKxMVFJSWPg==", + "dev": true + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -6949,6 +7007,111 @@ } } }, + "@rushstack/node-core-library": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.36.0.tgz", + "integrity": "sha512-bID2vzXpg8zweXdXgQkKToEdZwVrVCN9vE9viTRk58gqzYaTlz4fMId6V3ZfpXN6H0d319uGi2KDlm+lUEeqCg==", + "dev": true, + "requires": { + "@types/node": "10.17.13", + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.17.0", + "semver": "~7.3.0", + "timsort": "~0.3.0", + "z-schema": "~3.18.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.13.tgz", + "integrity": "sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg==", + "dev": true + }, + "colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", + "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "@rushstack/rig-package": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.2.9.tgz", + "integrity": "sha512-4tqsZ/m+BjeNAGeAJYzPF53CT96TsAYeZ3Pq3T4tb1pGGM3d3TWfkmALZdKNhpRlAeShKUrb/o/f/0sAuK/1VQ==", + "dev": true, + "requires": { + "@types/node": "10.17.13", + "resolve": "~1.17.0", + "strip-json-comments": "~3.1.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.13.tgz", + "integrity": "sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "@rushstack/ts-command-line": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.7.8.tgz", + "integrity": "sha512-8ghIWhkph7NnLCMDJtthpsb7TMOsVGXVDvmxjE/CeklTqjbbUFBjGXizJfpbEkRQTELuZQ2+vGn7sGwIWKN2uA==", + "dev": true, + "requires": { + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "colors": "~1.2.1", + "string-argv": "~0.3.1" + }, + "dependencies": { + "colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", + "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", + "dev": true + } + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -7047,6 +7210,12 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, + "@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true + }, "@types/chai": { "version": "4.2.14", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.14.tgz", @@ -15964,6 +16133,12 @@ } } }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", @@ -17021,6 +17196,12 @@ "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", "dev": true }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, "lodash.islength": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.islength/-/lodash.islength-4.0.1.tgz", @@ -22761,6 +22942,12 @@ "setimmediate": "^1.0.4" } }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, "tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -23506,6 +23693,12 @@ "builtins": "^1.0.3" } }, + "validator": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-8.2.0.tgz", + "integrity": "sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==", + "dev": true + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -25371,6 +25564,18 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true }, + "z-schema": { + "version": "3.18.4", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.18.4.tgz", + "integrity": "sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==", + "dev": true, + "requires": { + "commander": "^2.7.1", + "lodash.get": "^4.0.0", + "lodash.isequal": "^4.0.0", + "validator": "^8.0.0" + } + }, "zip-stream": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-3.0.1.tgz", diff --git a/package.json b/package.json index f9a53f5a53b..13496098b2d 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/video-dev/hls.js/issues" }, "main": "./dist/hls.js", - "types": "./dist/src/hls.d.ts", + "types": "./dist/hls.js.d.ts", "files": [ "dist/**/*", "src/**/*" @@ -30,7 +30,7 @@ "build:ci": "webpack", "build:debug": "webpack --progress --env debug --env demo", "build:watch": "webpack --progress --env debug --env demo --watch", - "build:types": "tsc --emitDeclarationOnly", + "build:types": "tsc --build tsconfig-lib.json && api-extractor run", "dev": "webpack serve --progress --env debug --env demo --port 8000", "docs": "esdoc", "lint": "eslint src/ tests/ --ext .js --ext .ts", @@ -69,6 +69,7 @@ "@itsjamie/esdoc-ecmascript-proposal-plugin": "^0.3.1", "@itsjamie/esdoc-standard-plugin": "^0.3.1", "@itsjamie/esdoc-typescript-plugin": "^0.3.1", + "@microsoft/api-extractor": "^7.13.1", "@types/chai": "^4.2.14", "@types/chart.js": "^2.9.29", "@types/mocha": "^8.2.0", diff --git a/src/config.ts b/src/config.ts index 34836132bcd..f93033bf5ac 100644 --- a/src/config.ts +++ b/src/config.ts @@ -10,7 +10,7 @@ import FPSController from './controller/fps-controller'; import EMEController from './controller/eme-controller'; import XhrLoader from './utils/xhr-loader'; import FetchLoader, { fetchSupported } from './utils/fetch-loader'; -import * as Cues from './utils/cues'; +import { CuesInterface, newCue } from './utils/cues'; import { requestMediaKeySystemAccess } from './utils/mediakeys-helper'; import { logger } from './utils/logger'; @@ -22,7 +22,7 @@ import type { PlaylistLoaderContext, } from './types/loader'; -type ABRControllerConfig = { +export type ABRControllerConfig = { abrEwmaFastLive: number; abrEwmaSlowLive: number; abrEwmaFastVoD: number; @@ -41,7 +41,7 @@ export type BufferControllerConfig = { liveBackBufferLength: number; }; -type CapLevelControllerConfig = { +export type CapLevelControllerConfig = { capLevelToPlayerSize: boolean; }; @@ -58,7 +58,7 @@ export type EMEControllerConfig = { requestMediaKeySystemAccessFunc: MediaKeyFunc | null; }; -type FragmentLoaderConfig = { +export type FragmentLoaderConfig = { fLoader?: { new (confg: HlsConfig): Loader }; fragLoadingTimeOut: number; @@ -67,13 +67,13 @@ type FragmentLoaderConfig = { fragLoadingMaxRetryTimeout: number; }; -type FPSControllerConfig = { +export type FPSControllerConfig = { capLevelOnFPSDrop: boolean; fpsDroppedMonitoringPeriod: number; fpsDroppedMonitoringThreshold: number; }; -type LevelControllerConfig = { +export type LevelControllerConfig = { startLevel?: number; }; @@ -82,7 +82,7 @@ export type MP4RemuxerConfig = { maxAudioFramesDrift: number; }; -type PlaylistLoaderConfig = { +export type PlaylistLoaderConfig = { pLoader?: { new (confg: HlsConfig): Loader }; manifestLoadingTimeOut: number; @@ -96,7 +96,7 @@ type PlaylistLoaderConfig = { levelLoadingMaxRetryTimeout: number; }; -type StreamControllerConfig = { +export type StreamControllerConfig = { autoStartLoad: boolean; startPosition: number; defaultAudioCodec?: string; @@ -113,7 +113,7 @@ type StreamControllerConfig = { testBandwidth: boolean; }; -type LatencyControllerConfig = { +export type LatencyControllerConfig = { liveSyncDurationCount: number; liveMaxLatencyDurationCount: number; liveSyncDuration?: number; @@ -121,8 +121,8 @@ type LatencyControllerConfig = { maxLiveSyncPlaybackRate: number; }; -type TimelineControllerConfig = { - cueHandler: Cues.CuesInterface; +export type TimelineControllerConfig = { + cueHandler: CuesInterface; enableCEA708Captions: boolean; enableWebVTT: boolean; enableIMSC1: boolean; @@ -137,7 +137,7 @@ type TimelineControllerConfig = { renderTextTracksNatively: boolean; }; -type TSDemuxerConfig = { +export type TSDemuxerConfig = { forceKeyFrameOnDiscontinuity: boolean; }; @@ -272,7 +272,7 @@ export const hlsDefaultConfig: HlsConfig = { function timelineConfig(): TimelineControllerConfig { return { - cueHandler: Cues, // used by timeline-controller + cueHandler: { newCue }, // used by timeline-controller enableCEA708Captions: __USE_SUBTITLES__, // used by timeline-controller enableWebVTT: __USE_SUBTITLES__, // used by timeline-controller enableIMSC1: __USE_SUBTITLES__, // used by timeline-controller diff --git a/src/controller/abr-controller.ts b/src/controller/abr-controller.ts index d9d0ffd77cc..1cf74502a3c 100644 --- a/src/controller/abr-controller.ts +++ b/src/controller/abr-controller.ts @@ -5,7 +5,7 @@ import { ErrorDetails } from '../errors'; import { PlaylistLevelType } from '../types/loader'; import { logger } from '../utils/logger'; import type { Bufferable } from '../utils/buffer-helper'; -import type Fragment from '../loader/fragment'; +import type { Fragment } from '../loader/fragment'; import type { Part } from '../loader/fragment'; import type { LoaderStats } from '../types/loader'; import type Hls from '../hls'; diff --git a/src/controller/audio-stream-controller.ts b/src/controller/audio-stream-controller.ts index 2971416b64b..96b2aa6d4d2 100644 --- a/src/controller/audio-stream-controller.ts +++ b/src/controller/audio-stream-controller.ts @@ -6,7 +6,7 @@ import type { FragmentTracker } from './fragment-tracker'; import { FragmentState } from './fragment-tracker'; import { Level } from '../types/level'; import { PlaylistLevelType } from '../types/loader'; -import Fragment, { ElementaryStreamTypes, Part } from '../loader/fragment'; +import { Fragment, ElementaryStreamTypes, Part } from '../loader/fragment'; import FragmentLoader from '../loader/fragment-loader'; import ChunkCache from '../demux/chunk-cache'; import TransmuxerInterface from '../demux/transmuxer-interface'; @@ -18,7 +18,7 @@ import { MAX_START_GAP_JUMP } from './gap-controller'; import { ErrorDetails } from '../errors'; import { logger } from '../utils/logger'; import type Hls from '../hls'; -import type LevelDetails from '../loader/level-details'; +import type { LevelDetails } from '../loader/level-details'; import type { TrackSet } from '../types/track'; import type { BufferCreatedData, diff --git a/src/controller/base-playlist-controller.ts b/src/controller/base-playlist-controller.ts index 4b40d4661a3..5cf0baa2a9a 100644 --- a/src/controller/base-playlist-controller.ts +++ b/src/controller/base-playlist-controller.ts @@ -3,7 +3,7 @@ import type { NetworkComponentAPI } from '../types/component-api'; import { getSkipValue, HlsSkip, HlsUrlParameters } from '../types/level'; import { computeReloadInterval } from './level-helper'; import { logger } from '../utils/logger'; -import type LevelDetails from '../loader/level-details'; +import type { LevelDetails } from '../loader/level-details'; import type { MediaPlaylist } from '../types/media-playlist'; import type { AudioTrackLoadedData, diff --git a/src/controller/base-stream-controller.ts b/src/controller/base-stream-controller.ts index 50cd2b1abb6..d0fde54a7f9 100644 --- a/src/controller/base-stream-controller.ts +++ b/src/controller/base-stream-controller.ts @@ -14,12 +14,12 @@ import { findFragWithCC, } from './fragment-finders'; import TransmuxerInterface from '../demux/transmuxer-interface'; -import Fragment, { Part } from '../loader/fragment'; +import { Fragment, Part } from '../loader/fragment'; import FragmentLoader, { FragmentLoadProgressCallback, LoadError, } from '../loader/fragment-loader'; -import LevelDetails from '../loader/level-details'; +import { LevelDetails } from '../loader/level-details'; import { BufferAppendingData, ErrorData, diff --git a/src/controller/buffer-controller.ts b/src/controller/buffer-controller.ts index b3899fe7b57..fac644091c4 100644 --- a/src/controller/buffer-controller.ts +++ b/src/controller/buffer-controller.ts @@ -25,7 +25,7 @@ import type { } from '../types/events'; import type { ComponentAPI } from '../types/component-api'; import type Hls from '../hls'; -import LevelDetails from '../loader/level-details'; +import { LevelDetails } from '../loader/level-details'; const MediaSource = getMediaSource(); const VIDEO_CODEC_PROFILE_REPACE = /([ha]vc.)(?:\.[^.,]+)+/; diff --git a/src/controller/fragment-finders.ts b/src/controller/fragment-finders.ts index da63f2456fa..e933716273a 100644 --- a/src/controller/fragment-finders.ts +++ b/src/controller/fragment-finders.ts @@ -1,5 +1,5 @@ import BinarySearch from '../utils/binary-search'; -import Fragment from '../loader/fragment'; +import { Fragment } from '../loader/fragment'; /** * Returns first fragment whose endPdt value exceeds the given PDT. diff --git a/src/controller/fragment-tracker.ts b/src/controller/fragment-tracker.ts index 2eae19e8bfb..55ad89ec37b 100644 --- a/src/controller/fragment-tracker.ts +++ b/src/controller/fragment-tracker.ts @@ -1,5 +1,5 @@ import { Events } from '../events'; -import Fragment, { Part } from '../loader/fragment'; +import { Fragment, Part } from '../loader/fragment'; import type { SourceBufferName } from '../types/buffer'; import type { FragmentBufferedRange, diff --git a/src/controller/gap-controller.ts b/src/controller/gap-controller.ts index d0a69e5ddac..a116bc1f76e 100644 --- a/src/controller/gap-controller.ts +++ b/src/controller/gap-controller.ts @@ -6,7 +6,7 @@ import { logger } from '../utils/logger'; import type Hls from '../hls'; import type { HlsConfig } from '../config'; import type { FragmentTracker } from './fragment-tracker'; -import Fragment from '../loader/fragment'; +import { Fragment } from '../loader/fragment'; export const STALL_MINIMUM_DURATION_MS = 250; export const MAX_START_GAP_JUMP = 2.0; diff --git a/src/controller/latency-controller.ts b/src/controller/latency-controller.ts index 991e4601226..9295a4c7f66 100644 --- a/src/controller/latency-controller.ts +++ b/src/controller/latency-controller.ts @@ -1,4 +1,4 @@ -import LevelDetails from '../loader/level-details'; +import { LevelDetails } from '../loader/level-details'; import { ErrorDetails } from '../errors'; import { Events } from '../events'; import type { diff --git a/src/controller/level-helper.ts b/src/controller/level-helper.ts index 01468eaaa33..ca20c0c059b 100644 --- a/src/controller/level-helper.ts +++ b/src/controller/level-helper.ts @@ -4,8 +4,8 @@ * */ import { logger } from '../utils/logger'; -import Fragment, { Part } from '../loader/fragment'; -import LevelDetails from '../loader/level-details'; +import { Fragment, Part } from '../loader/fragment'; +import { LevelDetails } from '../loader/level-details'; import type { Level } from '../types/level'; import type { LoaderStats } from '../types/loader'; import type { MediaPlaylist } from '../types/media-playlist'; diff --git a/src/controller/stream-controller.ts b/src/controller/stream-controller.ts index ef9333a589b..caf996285d6 100644 --- a/src/controller/stream-controller.ts +++ b/src/controller/stream-controller.ts @@ -7,7 +7,7 @@ import type { FragmentTracker } from './fragment-tracker'; import { FragmentState } from './fragment-tracker'; import type { Level } from '../types/level'; import { PlaylistLevelType } from '../types/loader'; -import Fragment, { ElementaryStreamTypes } from '../loader/fragment'; +import { Fragment, ElementaryStreamTypes } from '../loader/fragment'; import FragmentLoader from '../loader/fragment-loader'; import TransmuxerInterface from '../demux/transmuxer-interface'; import type { TransmuxerResult } from '../types/transmuxer'; @@ -16,7 +16,7 @@ import GapController, { MAX_START_GAP_JUMP } from './gap-controller'; import { ErrorDetails } from '../errors'; import { logger } from '../utils/logger'; import type Hls from '../hls'; -import type LevelDetails from '../loader/level-details'; +import type { LevelDetails } from '../loader/level-details'; import type { TrackSet } from '../types/track'; import type { SourceBufferName } from '../types/buffer'; import type { diff --git a/src/controller/subtitle-stream-controller.ts b/src/controller/subtitle-stream-controller.ts index 2bef436a7d2..7152456c513 100644 --- a/src/controller/subtitle-stream-controller.ts +++ b/src/controller/subtitle-stream-controller.ts @@ -10,8 +10,8 @@ import { PlaylistLevelType } from '../types/loader'; import { Level } from '../types/level'; import type { NetworkComponentAPI } from '../types/component-api'; import type Hls from '../hls'; -import type LevelDetails from '../loader/level-details'; -import type Fragment from '../loader/fragment'; +import type { LevelDetails } from '../loader/level-details'; +import type { Fragment } from '../loader/fragment'; import type { ErrorData, FragLoadedData, diff --git a/src/controller/timeline-controller.ts b/src/controller/timeline-controller.ts index 809b4b2b855..3439e8da057 100644 --- a/src/controller/timeline-controller.ts +++ b/src/controller/timeline-controller.ts @@ -10,7 +10,7 @@ import { } from '../utils/texttrack-utils'; import { parseIMSC1, IMSC1_CODEC } from '../utils/imsc1-ttml-parser'; import { PlaylistLevelType } from '../types/loader'; -import Fragment from '../loader/fragment'; +import { Fragment } from '../loader/fragment'; import { FragParsingUserdataData, FragLoadedData, diff --git a/src/demux/transmuxer-interface.ts b/src/demux/transmuxer-interface.ts index 43ba84818d6..8008e0fead5 100644 --- a/src/demux/transmuxer-interface.ts +++ b/src/demux/transmuxer-interface.ts @@ -9,7 +9,7 @@ import { logger } from '../utils/logger'; import { ErrorTypes, ErrorDetails } from '../errors'; import { getMediaSource } from '../utils/mediasource-helper'; import { EventEmitter } from 'eventemitter3'; -import Fragment, { Part } from '../loader/fragment'; +import { Fragment, Part } from '../loader/fragment'; import type { ChunkMetadata, TransmuxerResult } from '../types/transmuxer'; import type Hls from '../hls'; import type { HlsEventEmitter } from '../events'; diff --git a/src/demux/transmuxer.ts b/src/demux/transmuxer.ts index f6bcecc98ed..34b31bd2b25 100644 --- a/src/demux/transmuxer.ts +++ b/src/demux/transmuxer.ts @@ -16,7 +16,7 @@ import { appendUint8Array } from '../utils/mp4-tools'; import { logger } from '../utils/logger'; import type { HlsConfig } from '../config'; -import LevelKey from '../loader/level-key'; +import { LevelKey } from '../loader/level-key'; let now; // performance.now() not available on WebWorker, at least on Safari Desktop diff --git a/src/hls.ts b/src/hls.ts index 3ab1ced3d99..de2c05972d6 100644 --- a/src/hls.ts +++ b/src/hls.ts @@ -11,17 +11,12 @@ import LevelController from './controller/level-controller'; import { isSupported } from './is-supported'; import { logger, enableLogs } from './utils/logger'; -import { - enableStreamingMode, - HlsConfig, - hlsDefaultConfig, - mergeConfig, -} from './config'; - +import { enableStreamingMode, hlsDefaultConfig, mergeConfig } from './config'; +import type { HlsConfig } from './config'; import { Events } from './events'; import { EventEmitter } from 'eventemitter3'; import { Level } from './types/level'; -import { MediaPlaylist } from './types/media-playlist'; +import type { MediaPlaylist } from './types/media-playlist'; import AudioTrackController from './controller/audio-track-controller'; import SubtitleTrackController from './controller/subtitle-track-controller'; import ID3TrackController from './controller/id3-track-controller'; @@ -31,6 +26,7 @@ import AbrController from './controller/abr-controller'; import LatencyController from './controller/latency-controller'; import { ComponentAPI, NetworkComponentAPI } from './types/component-api'; import type { HlsEventEmitter, HlsListeners } from './events'; +import { Fragment } from './loader/fragment'; /** * @module Hls @@ -821,3 +817,132 @@ export default class Hls implements HlsEventEmitter { return this.latencyController.targetLatency; } } + +export type { + MediaPlaylist, + ErrorDetails, + ErrorTypes, + Events, + Level, + HlsListeners, + HlsEventEmitter, + HlsConfig, + Fragment, +}; + +export type { + ABRControllerConfig, + BufferControllerConfig, + CapLevelControllerConfig, + EMEControllerConfig, + DRMSystemOptions, + FPSControllerConfig, + FragmentLoaderConfig, + LevelControllerConfig, + MP4RemuxerConfig, + PlaylistLoaderConfig, + StreamControllerConfig, + LatencyControllerConfig, + TimelineControllerConfig, + TSDemuxerConfig, +} from './config'; +export type { CuesInterface } from './utils/cues'; +export type { MediaKeyFunc, KeySystems } from './utils/mediakeys-helper'; +export type { LoadStats } from './loader/load-stats'; +export type { LevelKey } from './loader/level-key'; +export type { LevelDetails } from './loader/level-details'; +export type { SourceBufferName } from './types/buffer'; +export type { MetadataSample, UserdataSample } from './types/demuxer'; +export type { + LevelParsed, + LevelAttributes, + HlsUrlParameters, + HlsSkip, +} from './types/level'; +export type { + PlaylistLevelType, + HlsChunkPerformanceTiming, + HlsPerformanceTiming, + PlaylistContextType, + PlaylistLoaderContext, + FragmentLoaderContext, + Loader, + LoaderStats, + LoaderContext, + LoaderResponse, + LoaderConfiguration, + LoaderCallbacks, + LoaderOnProgress, + LoaderOnAbort, + LoaderOnError, + LoaderOnSuccess, + LoaderOnTimeout, + HlsProgressivePerformanceTiming, +} from './types/loader'; +export type { + MediaPlaylistType, + MainPlaylistType, + AudioPlaylistType, + SubtitlePlaylistType, +} from './types/media-playlist'; +export type { Track, TrackSet } from './types/track'; +export type { ChunkMetadata } from './types/transmuxer'; +export type { + BaseSegment, + Part, + ElementaryStreams, + ElementaryStreamTypes, + ElementaryStreamInfo, +} from './loader/fragment'; +export type { + TrackLoadingData, + TrackLoadedData, + AudioTrackLoadedData, + AudioTracksUpdatedData, + AudioTrackSwitchedData, + AudioTrackSwitchingData, + BufferAppendedData, + BufferAppendingData, + BufferCodecsData, + BufferCreatedData, + BufferEOSData, + BufferFlushedData, + BufferFlushingData, + CuesParsedData, + ErrorData, + FPSDropData, + FPSDropLevelCappingData, + FragBufferedData, + FragChangedData, + FragDecryptedData, + FragLoadedData, + FragLoadEmergencyAbortedData, + FragLoadingData, + FragParsedData, + FragParsingInitSegmentData, + FragParsingMetadataData, + FragParsingUserdataData, + InitPTSFoundData, + KeyLoadedData, + KeyLoadingData, + LevelLoadedData, + LevelLoadingData, + LevelPTSUpdatedData, + LevelsUpdatedData, + LevelSwitchedData, + LevelSwitchingData, + LevelUpdatedData, + LiveBackBufferData, + ManifestLoadedData, + ManifestLoadingData, + ManifestParsedData, + MediaAttachedData, + MediaAttachingData, + NonNativeTextTrack, + NonNativeTextTracksData, + SubtitleFragProcessedData, + SubtitleTrackLoadedData, + SubtitleTracksUpdatedData, + SubtitleTrackSwitchData, +} from './types/events'; +export type { AttrList } from './utils/attr-list'; diff --git a/src/loader/fragment-loader.ts b/src/loader/fragment-loader.ts index d7c33b26311..7cc6d638ea4 100644 --- a/src/loader/fragment-loader.ts +++ b/src/loader/fragment-loader.ts @@ -1,5 +1,5 @@ import { ErrorTypes, ErrorDetails } from '../errors'; -import Fragment from './fragment'; +import { Fragment } from './fragment'; import { Loader, LoaderConfiguration, diff --git a/src/loader/fragment.ts b/src/loader/fragment.ts index e3f836cea0b..e1ee78376fd 100644 --- a/src/loader/fragment.ts +++ b/src/loader/fragment.ts @@ -1,8 +1,8 @@ import { buildAbsoluteURL } from 'url-toolkit'; import { logger } from '../utils/logger'; -import LevelKey from './level-key'; -import LoadStats from './load-stats'; -import AttrList from '../utils/attr-list'; +import { LevelKey } from './level-key'; +import { LoadStats } from './load-stats'; +import { AttrList } from '../utils/attr-list'; import type { FragmentLoaderContext, Loader, @@ -15,7 +15,7 @@ export enum ElementaryStreamTypes { AUDIOVIDEO = 'audiovideo', } -interface ElementaryStreamInfo { +export interface ElementaryStreamInfo { startPTS: number; endPTS: number; startDTS: number; @@ -23,7 +23,7 @@ interface ElementaryStreamInfo { partial?: boolean; } -type ElementaryStreams = Record< +export type ElementaryStreams = Record< ElementaryStreamTypes, ElementaryStreamInfo | null >; @@ -90,7 +90,7 @@ export class BaseSegment { } } -export default class Fragment extends BaseSegment { +export class Fragment extends BaseSegment { private _decryptdata: LevelKey | null = null; public rawProgramDateTime: string | null = null; diff --git a/src/loader/key-loader.ts b/src/loader/key-loader.ts index 89fdd415df2..0b06cd44647 100644 --- a/src/loader/key-loader.ts +++ b/src/loader/key-loader.ts @@ -5,7 +5,7 @@ import { Events } from '../events'; import { ErrorTypes, ErrorDetails } from '../errors'; import { logger } from '../utils/logger'; import type Hls from '../hls'; -import Fragment from './fragment'; +import { Fragment } from './fragment'; import { LoaderStats, LoaderResponse, diff --git a/src/loader/level-details.ts b/src/loader/level-details.ts index 6008a5891c0..1084e588688 100644 --- a/src/loader/level-details.ts +++ b/src/loader/level-details.ts @@ -1,9 +1,10 @@ -import Fragment, { Part } from './fragment'; -import type AttrList from '../utils/attr-list'; +import { Part } from './fragment'; +import type { Fragment } from './fragment'; +import type { AttrList } from '../utils/attr-list'; const DEFAULT_TARGET_DURATION = 10; -export default class LevelDetails { +export class LevelDetails { public PTSKnown: boolean = false; public alignedSliding: boolean = false; public averagetargetduration?: number; diff --git a/src/loader/level-key.ts b/src/loader/level-key.ts index b4db012091f..90fcf253b1b 100644 --- a/src/loader/level-key.ts +++ b/src/loader/level-key.ts @@ -1,6 +1,6 @@ import { buildAbsoluteURL } from 'url-toolkit'; -export default class LevelKey { +export class LevelKey { private _uri: string | null = null; public method: string | null = null; public keyFormat: string | null = null; diff --git a/src/loader/load-stats.ts b/src/loader/load-stats.ts index 267a84a7736..0bb0e6adb54 100644 --- a/src/loader/load-stats.ts +++ b/src/loader/load-stats.ts @@ -4,7 +4,7 @@ import type { LoaderStats, } from '../types/loader'; -export default class LoadStats implements LoaderStats { +export class LoadStats implements LoaderStats { aborted: boolean = false; loaded: number = 0; retry: number = 0; diff --git a/src/loader/m3u8-parser.ts b/src/loader/m3u8-parser.ts index dbe39ce8df9..e3e00c2d51a 100644 --- a/src/loader/m3u8-parser.ts +++ b/src/loader/m3u8-parser.ts @@ -1,10 +1,10 @@ import * as URLToolkit from 'url-toolkit'; -import Fragment, { Part } from './fragment'; -import LevelDetails from './level-details'; -import LevelKey from './level-key'; +import { Fragment, Part } from './fragment'; +import { LevelDetails } from './level-details'; +import { LevelKey } from './level-key'; -import AttrList from '../utils/attr-list'; +import { AttrList } from '../utils/attr-list'; import { logger } from '../utils/logger'; import type { CodecType } from '../utils/codecs'; import { isCodecType } from '../utils/codecs'; diff --git a/src/loader/playlist-loader.ts b/src/loader/playlist-loader.ts index 49ec78621d8..385f8575a79 100644 --- a/src/loader/playlist-loader.ts +++ b/src/loader/playlist-loader.ts @@ -24,10 +24,10 @@ import type { PlaylistLoaderContext, } from '../types/loader'; import { PlaylistContextType, PlaylistLevelType } from '../types/loader'; -import LevelDetails from './level-details'; -import Fragment from './fragment'; +import { LevelDetails } from './level-details'; +import { Fragment } from './fragment'; import type Hls from '../hls'; -import AttrList from '../utils/attr-list'; +import { AttrList } from '../utils/attr-list'; import type { ErrorData, LevelLoadingData, diff --git a/src/remux/mp4-remuxer.ts b/src/remux/mp4-remuxer.ts index 85794209ce2..027d0cdc40e 100644 --- a/src/remux/mp4-remuxer.ts +++ b/src/remux/mp4-remuxer.ts @@ -22,7 +22,7 @@ import type { } from '../types/demuxer'; import type { TrackSet } from '../types/track'; import type { SourceBufferName } from '../types/buffer'; -import Fragment from '../loader/fragment'; +import type { Fragment } from '../loader/fragment'; import type { HlsConfig } from '../config'; import { toMsFromMpegTsClock } from '../utils/timescale-conversion'; diff --git a/src/types/events.ts b/src/types/events.ts index 5b09f5b304d..16528b9708f 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -1,8 +1,8 @@ // eslint-disable-next-line import/no-duplicates -import type Fragment from '../loader/fragment'; +import type { Fragment } from '../loader/fragment'; // eslint-disable-next-line import/no-duplicates import type { Part } from '../loader/fragment'; -import type LevelDetails from '../loader/level-details'; +import type { LevelDetails } from '../loader/level-details'; import type { HlsUrlParameters, Level, LevelParsed } from './level'; import type { MediaPlaylist, MediaPlaylistType } from './media-playlist'; import type { @@ -16,10 +16,10 @@ import type { import type { Track, TrackSet } from './track'; import type { SourceBufferName } from './buffer'; import type { ChunkMetadata } from './transmuxer'; -import type LoadStats from '../loader/load-stats'; +import type { LoadStats } from '../loader/load-stats'; import type { ErrorDetails, ErrorTypes } from '../errors'; import type { MetadataSample, UserdataSample } from './demuxer'; -import type AttrList from '../utils/attr-list'; +import type { AttrList } from '../utils/attr-list'; import type { HlsListeners } from '../events'; export interface MediaAttachingData { @@ -243,7 +243,7 @@ export interface CuesParsedData { track: string; } -interface NonNativeTextTrack { +export interface NonNativeTextTrack { _id?: string; label: any; kind: string; diff --git a/src/types/fragment-tracker.ts b/src/types/fragment-tracker.ts index 7e8fd1aeb2b..4fa1c81cd82 100644 --- a/src/types/fragment-tracker.ts +++ b/src/types/fragment-tracker.ts @@ -1,5 +1,5 @@ // eslint-disable-next-line import/no-duplicates -import type Fragment from '../loader/fragment'; +import type { Fragment } from '../loader/fragment'; // eslint-disable-next-line import/no-duplicates import type { Part } from '../loader/fragment'; import type { SourceBufferName } from './buffer'; diff --git a/src/types/general.ts b/src/types/general.ts index fb3afbf485d..6d92b6abdff 100644 --- a/src/types/general.ts +++ b/src/types/general.ts @@ -1,7 +1,3 @@ -export interface StringMap { - [key: string]: any; -} - /** * Make specific properties in T required */ diff --git a/src/types/level.ts b/src/types/level.ts index 1b664d57b6f..baf455530b2 100644 --- a/src/types/level.ts +++ b/src/types/level.ts @@ -1,5 +1,5 @@ -import LevelDetails from '../loader/level-details'; -import AttrList from '../utils/attr-list'; +import { LevelDetails } from '../loader/level-details'; +import { AttrList } from '../utils/attr-list'; export interface LevelParsed { attrs: LevelAttributes; diff --git a/src/types/loader.ts b/src/types/loader.ts index cbfe6b5f0a8..3bcf950904f 100644 --- a/src/types/loader.ts +++ b/src/types/loader.ts @@ -1,6 +1,6 @@ -import Fragment from '../loader/fragment'; +import type { Fragment } from '../loader/fragment'; import type { Part } from '../loader/fragment'; -import type LevelDetails from '../loader/level-details'; +import type { LevelDetails } from '../loader/level-details'; import type { HlsUrlParameters } from './level'; export interface LoaderContext { @@ -67,7 +67,7 @@ export interface HlsProgressivePerformanceTiming extends HlsPerformanceTiming { first: number; } -type LoaderOnSuccess = ( +export type LoaderOnSuccess = ( response: LoaderResponse, stats: LoaderStats, context: T, @@ -81,7 +81,7 @@ export type LoaderOnProgress = ( networkDetails: any ) => void; -type LoaderOnError = ( +export type LoaderOnError = ( error: { // error status code code: number; @@ -92,13 +92,13 @@ type LoaderOnError = ( networkDetails: any ) => void; -type LoaderOnTimeout = ( +export type LoaderOnTimeout = ( stats: LoaderStats, context: T, networkDetails: any ) => void; -type LoaderOnAbort = ( +export type LoaderOnAbort = ( stats: LoaderStats, context: T, networkDetails: any diff --git a/src/utils/attr-list.ts b/src/utils/attr-list.ts index bdedfea1ec4..3c9b07a5dc1 100755 --- a/src/utils/attr-list.ts +++ b/src/utils/attr-list.ts @@ -1,13 +1,11 @@ -import type { StringMap } from '../types/general'; - const DECIMAL_RESOLUTION_REGEX = /^(\d+)x(\d+)$/; // eslint-disable-line no-useless-escape const ATTR_LIST_REGEX = /\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g; // eslint-disable-line no-useless-escape // adapted from https://github.com/kanongil/node-m3u8parse/blob/master/attrlist.js -class AttrList { +export class AttrList { [key: string]: any; - constructor(attrs: string | StringMap) { + constructor(attrs: string | Record) { if (typeof attrs === 'string') { attrs = AttrList.parseAttrList(attrs); } @@ -89,7 +87,7 @@ class AttrList { }; } - static parseAttrList(input: string): StringMap { + static parseAttrList(input: string): Record { let match; const attrs = {}; const quote = '"'; @@ -109,5 +107,3 @@ class AttrList { return attrs; } } - -export default AttrList; diff --git a/src/utils/discontinuities.ts b/src/utils/discontinuities.ts index c460a3efa99..175d34f0f21 100644 --- a/src/utils/discontinuities.ts +++ b/src/utils/discontinuities.ts @@ -1,7 +1,7 @@ import { logger } from './logger'; -import type Fragment from '../loader/fragment'; -import type LevelDetails from '../loader/level-details'; +import type { Fragment } from '../loader/fragment'; +import type { LevelDetails } from '../loader/level-details'; import type { Level } from '../types/level'; import type { RequiredProperties } from '../types/general'; import { adjustSliding } from '../controller/level-helper'; diff --git a/src/utils/fetch-loader.ts b/src/utils/fetch-loader.ts index 28889e172fd..e8b17ee3fd1 100644 --- a/src/utils/fetch-loader.ts +++ b/src/utils/fetch-loader.ts @@ -6,7 +6,7 @@ import { LoaderConfiguration, LoaderOnProgress, } from '../types/loader'; -import LoadStats from '../loader/load-stats'; +import { LoadStats } from '../loader/load-stats'; import ChunkCache from '../demux/chunk-cache'; export function fetchSupported() { diff --git a/src/utils/xhr-loader.ts b/src/utils/xhr-loader.ts index 95677754d33..f742ea81b96 100644 --- a/src/utils/xhr-loader.ts +++ b/src/utils/xhr-loader.ts @@ -6,7 +6,7 @@ import type { Loader, LoaderConfiguration, } from '../types/loader'; -import LoadStats from '../loader/load-stats'; +import { LoadStats } from '../loader/load-stats'; class XhrLoader implements Loader { private xhrSetup: Function | null; diff --git a/tests/mocks/data.js b/tests/mocks/data.js index 47815ba35bb..71df3645198 100644 --- a/tests/mocks/data.js +++ b/tests/mocks/data.js @@ -1,4 +1,4 @@ -import Fragment from '../../src/loader/fragment'; +import { Fragment } from '../../src/loader/fragment'; import { PlaylistLevelType } from '../../src/types/loader'; function fragment(options) { diff --git a/tests/unit/controller/buffer-controller-operations.ts b/tests/unit/controller/buffer-controller-operations.ts index 89ad2cf286d..ea766233fd2 100644 --- a/tests/unit/controller/buffer-controller-operations.ts +++ b/tests/unit/controller/buffer-controller-operations.ts @@ -9,10 +9,10 @@ import { BufferOperation, SourceBufferName } from '../../../src/types/buffer'; import { BufferAppendingData } from '../../../src/types/events'; import { Events } from '../../../src/events'; import { ErrorDetails, ErrorTypes } from '../../../src/errors'; -import Fragment, { ElementaryStreamTypes } from '../../../src/loader/fragment'; +import { Fragment, ElementaryStreamTypes } from '../../../src/loader/fragment'; import { PlaylistLevelType } from '../../../src/types/loader'; import { ChunkMetadata } from '../../../src/types/transmuxer'; -import LevelDetails from '../../../src/loader/level-details'; +import { LevelDetails } from '../../../src/loader/level-details'; chai.use(sinonChai); const expect = chai.expect; diff --git a/tests/unit/controller/fragment-tracker.ts b/tests/unit/controller/fragment-tracker.ts index 4cdfb9dbdff..9ece7d20220 100644 --- a/tests/unit/controller/fragment-tracker.ts +++ b/tests/unit/controller/fragment-tracker.ts @@ -6,8 +6,8 @@ import { } from '../../../src/controller/fragment-tracker'; import { PlaylistLevelType } from '../../../src/types/loader'; import { ChunkMetadata } from '../../../src/types/transmuxer'; -import Fragment, { ElementaryStreamTypes } from '../../../src/loader/fragment'; -import LoadStats from '../../../src/loader/load-stats'; +import { Fragment, ElementaryStreamTypes } from '../../../src/loader/fragment'; +import { LoadStats } from '../../../src/loader/load-stats'; import type { BufferAppendedData, FragBufferedData, diff --git a/tests/unit/controller/latency-controller.ts b/tests/unit/controller/latency-controller.ts index a151f386671..1c122d413b8 100644 --- a/tests/unit/controller/latency-controller.ts +++ b/tests/unit/controller/latency-controller.ts @@ -2,7 +2,7 @@ import LatencyController from '../../../src/controller/latency-controller'; import Hls from '../../../src/hls'; import { Events } from '../../../src/events'; -import LevelDetails from '../../../src/loader/level-details'; +import { LevelDetails } from '../../../src/loader/level-details'; import { LevelUpdatedData } from '../../../src/types/events'; import * as sinon from 'sinon'; diff --git a/tests/unit/controller/level-helper.ts b/tests/unit/controller/level-helper.ts index cddd926e2ae..d70155c02fe 100644 --- a/tests/unit/controller/level-helper.ts +++ b/tests/unit/controller/level-helper.ts @@ -5,14 +5,14 @@ import { mapPartIntersection, mergeDetails, } from '../../../src/controller/level-helper'; -import LevelDetails from '../../../src/loader/level-details'; -import Fragment, { Part } from '../../../src/loader/fragment'; -import LoadStats from '../../../src/loader/load-stats'; +import { LevelDetails } from '../../../src/loader/level-details'; +import { Fragment, Part } from '../../../src/loader/fragment'; +import { LoadStats } from '../../../src/loader/load-stats'; import { PlaylistLevelType } from '../../../src/types/loader'; import * as sinon from 'sinon'; import * as chai from 'chai'; import * as sinonChai from 'sinon-chai'; -import AttrList from '../../../src/utils/attr-list'; +import { AttrList } from '../../../src/utils/attr-list'; chai.use(sinonChai); const expect = chai.expect; diff --git a/tests/unit/controller/stream-controller.ts b/tests/unit/controller/stream-controller.ts index a57e1208db1..beeb8453601 100644 --- a/tests/unit/controller/stream-controller.ts +++ b/tests/unit/controller/stream-controller.ts @@ -8,11 +8,11 @@ import { import StreamController from '../../../src/controller/stream-controller'; import { State } from '../../../src/controller/base-stream-controller'; import { mockFragments } from '../../mocks/data'; -import Fragment from '../../../src/loader/fragment'; -import LevelDetails from '../../../src/loader/level-details'; +import { Fragment } from '../../../src/loader/fragment'; +import { LevelDetails } from '../../../src/loader/level-details'; import M3U8Parser from '../../../src/loader/m3u8-parser'; import { PlaylistLevelType } from '../../../src/types/loader'; -import AttrList from '../../../src/utils/attr-list'; +import { AttrList } from '../../../src/utils/attr-list'; import { Level, LevelAttributes } from '../../../src/types/level'; import * as sinon from 'sinon'; diff --git a/tests/unit/controller/subtitle-track-controller.js b/tests/unit/controller/subtitle-track-controller.js index dcbd9020ee6..56933a62eb3 100644 --- a/tests/unit/controller/subtitle-track-controller.js +++ b/tests/unit/controller/subtitle-track-controller.js @@ -1,8 +1,8 @@ import SubtitleTrackController from '../../../src/controller/subtitle-track-controller'; import Hls from '../../../src/hls'; import sinon from 'sinon'; -import LoadStats from '../../../src/loader/load-stats'; -import LevelDetails from '../../../src/loader/level-details'; +import { LoadStats } from '../../../src/loader/load-stats'; +import { LevelDetails } from '../../../src/loader/level-details'; import { Events } from '../../../src/events'; describe('SubtitleTrackController', function () { diff --git a/tests/unit/demuxer/transmuxer.ts b/tests/unit/demuxer/transmuxer.ts index cd097a67dce..0ce3758ba83 100644 --- a/tests/unit/demuxer/transmuxer.ts +++ b/tests/unit/demuxer/transmuxer.ts @@ -1,7 +1,7 @@ import TransmuxerInterface from '../../../src/demux/transmuxer-interface'; import { TransmuxState, TransmuxConfig } from '../../../src/demux/transmuxer'; import { ChunkMetadata, TransmuxerResult } from '../../../src/types/transmuxer'; -import Fragment from '../../../src/loader/fragment'; +import { Fragment } from '../../../src/loader/fragment'; import { PlaylistLevelType } from '../../../src/types/loader'; import Hls from '../../../src/hls'; diff --git a/tests/unit/loader/fragment-loader.ts b/tests/unit/loader/fragment-loader.ts index 4212d7051d7..0fd614fc9f2 100644 --- a/tests/unit/loader/fragment-loader.ts +++ b/tests/unit/loader/fragment-loader.ts @@ -1,7 +1,7 @@ import FragmentLoader, { LoadError } from '../../../src/loader/fragment-loader'; -import Fragment from '../../../src/loader/fragment'; +import { Fragment } from '../../../src/loader/fragment'; import { ErrorDetails, ErrorTypes } from '../../../src/errors'; -import LoadStats from '../../../src/loader/load-stats'; +import { LoadStats } from '../../../src/loader/load-stats'; import { FragmentLoaderContext, Loader, @@ -15,7 +15,7 @@ import type { HlsConfig } from '../../../src/config'; import * as sinon from 'sinon'; import * as chai from 'chai'; import * as sinonChai from 'sinon-chai'; -import LevelDetails from '../../../src/loader/level-details'; +import { LevelDetails } from '../../../src/loader/level-details'; chai.use(sinonChai); const expect = chai.expect; diff --git a/tests/unit/loader/fragment.js b/tests/unit/loader/fragment.js index 62bceb14385..07a850966b3 100644 --- a/tests/unit/loader/fragment.js +++ b/tests/unit/loader/fragment.js @@ -1,4 +1,4 @@ -import Fragment from '../../../src/loader/fragment'; +import { Fragment } from '../../../src/loader/fragment'; import LevelKey from '../../../src/loader/level-key'; import { PlaylistLevelType } from '../../../src/types/loader'; diff --git a/tests/unit/loader/level.js b/tests/unit/loader/level.js index 45cd1c53dc3..b96edad7229 100644 --- a/tests/unit/loader/level.js +++ b/tests/unit/loader/level.js @@ -1,4 +1,4 @@ -import LevelDetails from '../../../src/loader/level-details'; +import { LevelDetails } from '../../../src/loader/level-details'; describe('Level Class tests', function () { it('sets programDateTime to true when the first fragment has valid pdt', function () { diff --git a/tests/unit/loader/playlist-loader.js b/tests/unit/loader/playlist-loader.js index e98ebd12020..92a9e9e6e70 100644 --- a/tests/unit/loader/playlist-loader.js +++ b/tests/unit/loader/playlist-loader.js @@ -1,5 +1,5 @@ import M3U8Parser from '../../../src/loader/m3u8-parser'; -import AttrList from '../../../src/utils/attr-list'; +import { AttrList } from '../../../src/utils/attr-list'; import { PlaylistLevelType } from '../../../src/types/loader'; describe('PlaylistLoader', function () { diff --git a/tests/unit/utils/attr-list.js b/tests/unit/utils/attr-list.js index f2f1cd8484f..1b3fa4d7db6 100644 --- a/tests/unit/utils/attr-list.js +++ b/tests/unit/utils/attr-list.js @@ -1,4 +1,4 @@ -import AttrList from '../../../src/utils/attr-list'; +import { AttrList } from '../../../src/utils/attr-list'; describe('AttrList', function () { it('constructor() supports empty arguments', function () { diff --git a/tsconfig-lib.json b/tsconfig-lib.json new file mode 100644 index 00000000000..9ae7562121f --- /dev/null +++ b/tsconfig-lib.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "commonjs", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "strict": false, + "strictNullChecks": true, + "strictPropertyInitialization": true, + "lib": ["dom", "es2015"], + "outDir": "./lib/", + "allowSyntheticDefaultImports": true, + "emitDeclarationOnly": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist/**/*", "demo/libs/**/*", "**/*.spec.*"] +} diff --git a/tsconfig.json b/tsconfig.json index 3c87e29f542..8e975f58387 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,16 +1,7 @@ { + "extends": "./tsconfig-lib.json", "compilerOptions": { - "target": "esnext", - "module": "commonjs", - "declaration": true, - "sourceMap": true, - "strict": false, - "strictNullChecks": true, - "strictPropertyInitialization": true, - "lib": ["dom", "es2015"], - "outDir": "./dist/", - "allowSyntheticDefaultImports": true + "emitDeclarationOnly": false }, - "include": ["src/**/*", "tests/unit/**/*", "demo/**/*"], - "exclude": ["node_modules", "dist/**/*", "demo/libs/**/*", "**/*.spec.*"] + "include": ["src/**/*", "tests/unit/**/*", "demo/**/*"] } From 3c138defe37ec8be59bc12d0033ff9630c8427e6 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:18:17 +0000 Subject: [PATCH 048/327] use build:ci on ci --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a4b0a3803f2..6b613d4144c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,8 +80,7 @@ jobs: - name: build run: | - npm run build:types - npm run build + npm run build:ci npm run docs # check that hls.js doesn't error if requiring in node # see https://github.com/video-dev/hls.js/pull/1642 From 87c45caf6636f1689d7ecec259459e3c7917355f Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:18:56 +0000 Subject: [PATCH 049/327] use specific dir for api-extractor --- .gitignore | 1 - api-extractor.json | 3 ++- api-extractor/.gitignore | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 api-extractor/.gitignore diff --git a/.gitignore b/.gitignore index fe6ecd6149f..fc022768d70 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,6 @@ coverage/ # Build /lib /dist -/temp /dist.zip /netlify /api-docs diff --git a/api-extractor.json b/api-extractor.json index 77a97f02f6d..546957522a9 100644 --- a/api-extractor.json +++ b/api-extractor.json @@ -7,7 +7,8 @@ }, "apiReport": { "enabled": true, - "reportFolder": "/docs" + "reportFolder": "/api-extractor/report", + "reportTempFolder": "/api-extractor/report-temp" }, "docModel": { "enabled": false diff --git a/api-extractor/.gitignore b/api-extractor/.gitignore new file mode 100644 index 00000000000..3047372951a --- /dev/null +++ b/api-extractor/.gitignore @@ -0,0 +1 @@ +/report-temp From a2d4b32adf7675bcda7e5caa8ecfc5f2b9cef9f4 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:19:28 +0000 Subject: [PATCH 050/327] run api-extractor local build on 'npm run build' --- package.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 13496098b2d..ac6c8327d7c 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,10 @@ } }, "scripts": { - "build": "webpack --progress", - "build:ci": "webpack", + "build": "webpack --progress && tsc --build tsconfig-lib.json && api-extractor run --local", + "build:ci": "webpack && tsc --build tsconfig-lib.json && api-extractor run", "build:debug": "webpack --progress --env debug --env demo", "build:watch": "webpack --progress --env debug --env demo --watch", - "build:types": "tsc --build tsconfig-lib.json && api-extractor run", "dev": "webpack serve --progress --env debug --env demo --port 8000", "docs": "esdoc", "lint": "eslint src/ tests/ --ext .js --ext .ts", From 0f9adfc605d8823b2882dfb62a121a3f403af06f Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:19:54 +0000 Subject: [PATCH 051/327] do not include *.spec because we don't have any --- tsconfig-lib.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig-lib.json b/tsconfig-lib.json index 9ae7562121f..a6df3a51dca 100644 --- a/tsconfig-lib.json +++ b/tsconfig-lib.json @@ -14,5 +14,5 @@ "emitDeclarationOnly": true }, "include": ["src/**/*"], - "exclude": ["node_modules", "dist/**/*", "demo/libs/**/*", "**/*.spec.*"] + "exclude": ["node_modules", "dist/**/*", "demo/libs/**/*"] } From 612357a5b2012bbebe0125028d229592d42fb269 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:20:22 +0000 Subject: [PATCH 052/327] disable tsdoc warnings as blockers, but log to file --- api-extractor.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/api-extractor.json b/api-extractor.json index 546957522a9..da59dc1d552 100644 --- a/api-extractor.json +++ b/api-extractor.json @@ -23,17 +23,20 @@ "messages": { "compilerMessageReporting": { "default": { - "logLevel": "warning" + "logLevel": "warning", + "addToApiReportFile": true } }, "extractorMessageReporting": { "default": { - "logLevel": "warning" + "logLevel": "warning", + "addToApiReportFile": true } }, "tsdocMessageReporting": { "default": { - "logLevel": "warning" + "logLevel": "none", + "addToApiReportFile": true } } } From 3b070369adc1bebbe0987b9cc94bf92fc6a8dd7f Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:20:32 +0000 Subject: [PATCH 053/327] add report --- api-extractor/report/hls.js.api.md | 2507 ++++++++++++++++++++++++++++ 1 file changed, 2507 insertions(+) create mode 100644 api-extractor/report/hls.js.api.md diff --git a/api-extractor/report/hls.js.api.md b/api-extractor/report/hls.js.api.md new file mode 100644 index 00000000000..968c369c873 --- /dev/null +++ b/api-extractor/report/hls.js.api.md @@ -0,0 +1,2507 @@ +## API Report File for "hls.js" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +// Warning: (ae-missing-release-tag) "ABRControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type ABRControllerConfig = { + abrEwmaFastLive: number; + abrEwmaSlowLive: number; + abrEwmaFastVoD: number; + abrEwmaSlowVoD: number; + abrEwmaDefaultEstimate: number; + abrBandWidthFactor: number; + abrBandWidthUpFactor: number; + abrMaxWithRealBitrate: boolean; + maxStarvationDelay: number; + maxLoadingDelay: number; +}; + +// Warning: (ae-missing-release-tag) "AttrList" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class AttrList { + constructor(attrs: string | Record); + // (undocumented) + [key: string]: any; + // (undocumented) + bool(attrName: string): boolean; + // (undocumented) + decimalFloatingPoint(attrName: string): number; + // (undocumented) + decimalInteger(attrName: string): number; + // (undocumented) + decimalResolution( + attrName: string + ): + | { + width: number; + height: number; + } + | undefined; + // (undocumented) + enumeratedString(attrName: string): string | undefined; + // (undocumented) + hexadecimalInteger(attrName: string): Uint8Array | null; + // (undocumented) + hexadecimalIntegerAsNumber(attrName: string): number; + // (undocumented) + optionalFloat(attrName: string, defaultValue: number): number; + // (undocumented) + static parseAttrList(input: string): Record; +} + +// Warning: (ae-missing-release-tag) "AudioPlaylistType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type AudioPlaylistType = 'AUDIO'; + +// Warning: (ae-missing-release-tag) "AudioTrackLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface AudioTrackLoadedData extends TrackLoadedData {} + +// Warning: (ae-missing-release-tag) "AudioTracksUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface AudioTracksUpdatedData { + // (undocumented) + audioTracks: MediaPlaylist[]; +} + +// Warning: (ae-missing-release-tag) "AudioTrackSwitchedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface AudioTrackSwitchedData { + // (undocumented) + id: number; +} + +// Warning: (ae-missing-release-tag) "AudioTrackSwitchingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface AudioTrackSwitchingData { + // (undocumented) + id: number; + // (undocumented) + type: MediaPlaylistType | 'main'; + // (undocumented) + url: string; +} + +// Warning: (ae-missing-release-tag) "BaseSegment" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class BaseSegment { + constructor(baseurl: string); + // (undocumented) + readonly baseurl: string; + // (undocumented) + get byteRange(): number[]; + // (undocumented) + get byteRangeEndOffset(): number; + // (undocumented) + get byteRangeStartOffset(): number; + // (undocumented) + elementaryStreams: ElementaryStreams; + // (undocumented) + relurl?: string; + // (undocumented) + setByteRange(value: string, previous?: BaseSegment): void; + // (undocumented) + get url(): string; + set url(value: string); +} + +// Warning: (ae-missing-release-tag) "BufferAppendedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface BufferAppendedData { + // (undocumented) + chunkMeta: ChunkMetadata; + // (undocumented) + frag: Fragment; + // (undocumented) + parent: PlaylistLevelType; + // (undocumented) + part: Part | null; + // (undocumented) + timeRanges: { + audio?: TimeRanges; + video?: TimeRanges; + audiovideo?: TimeRanges; + }; +} + +// Warning: (ae-missing-release-tag) "BufferAppendingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface BufferAppendingData { + // (undocumented) + chunkMeta: ChunkMetadata; + // (undocumented) + data: Uint8Array; + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; + // (undocumented) + type: SourceBufferName; +} + +// Warning: (ae-missing-release-tag) "BufferCodecsData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface BufferCodecsData { + // (undocumented) + audio?: Track; + // (undocumented) + video?: Track; +} + +// Warning: (ae-missing-release-tag) "BufferControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type BufferControllerConfig = { + appendErrorMaxRetry: number; + liveDurationInfinity: boolean; + liveBackBufferLength: number; +}; + +// Warning: (ae-missing-release-tag) "BufferCreatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface BufferCreatedData { + // (undocumented) + tracks: TrackSet; +} + +// Warning: (ae-missing-release-tag) "BufferEOSData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface BufferEOSData { + // (undocumented) + type?: SourceBufferName; +} + +// Warning: (ae-missing-release-tag) "BufferFlushedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface BufferFlushedData { + // (undocumented) + type: SourceBufferName; +} + +// Warning: (ae-missing-release-tag) "BufferFlushingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface BufferFlushingData { + // (undocumented) + endOffset: number; + // (undocumented) + startOffset: number; + // (undocumented) + type: SourceBufferName | null; +} + +// Warning: (ae-missing-release-tag) "CapLevelControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type CapLevelControllerConfig = { + capLevelToPlayerSize: boolean; +}; + +// Warning: (ae-missing-release-tag) "ChunkMetadata" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class ChunkMetadata { + constructor( + level: number, + sn: number, + id: number, + size?: number, + part?: number, + partial?: boolean + ); + // (undocumented) + readonly buffering: { + [key in SourceBufferName]: HlsChunkPerformanceTiming; + }; + // (undocumented) + readonly id: number; + // (undocumented) + readonly level: number; + // (undocumented) + readonly part: number; + // (undocumented) + readonly partial: boolean; + // (undocumented) + readonly size: number; + // (undocumented) + readonly sn: number; + // (undocumented) + readonly transmuxing: HlsChunkPerformanceTiming; +} + +// Warning: (ae-missing-release-tag) "CuesInterface" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface CuesInterface { + // Warning: (ae-forgotten-export) The symbol "CaptionScreen" needs to be exported by the entry point hls.d.ts + // + // (undocumented) + newCue( + track: TextTrack | null, + startTime: number, + endTime: number, + captionScreen: CaptionScreen + ): VTTCue[]; +} + +// Warning: (ae-missing-release-tag) "CuesParsedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface CuesParsedData { + // (undocumented) + cues: any; + // (undocumented) + track: string; + // (undocumented) + type: 'captions' | 'subtitles'; +} + +// Warning: (ae-missing-release-tag) "DRMSystemOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type DRMSystemOptions = { + audioRobustness?: string; + videoRobustness?: string; +}; + +// Warning: (ae-missing-release-tag) "ElementaryStreamInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ElementaryStreamInfo { + // (undocumented) + endDTS: number; + // (undocumented) + endPTS: number; + // (undocumented) + partial?: boolean; + // (undocumented) + startDTS: number; + // (undocumented) + startPTS: number; +} + +// Warning: (ae-missing-release-tag) "ElementaryStreams" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type ElementaryStreams = Record< + ElementaryStreamTypes, + ElementaryStreamInfo | null +>; + +// Warning: (ae-missing-release-tag) "ElementaryStreamTypes" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export enum ElementaryStreamTypes { + // (undocumented) + AUDIO = 'audio', + // (undocumented) + AUDIOVIDEO = 'audiovideo', + // (undocumented) + VIDEO = 'video', +} + +// Warning: (ae-missing-release-tag) "EMEControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type EMEControllerConfig = { + licenseXhrSetup?: (xhr: XMLHttpRequest, url: string) => void; + emeEnabled: boolean; + widevineLicenseUrl?: string; + drmSystemOptions: DRMSystemOptions; + requestMediaKeySystemAccessFunc: MediaKeyFunc | null; +}; + +// Warning: (ae-missing-release-tag) "ErrorData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ErrorData { + // (undocumented) + buffer?: number; + // (undocumented) + bytes?: number; + // (undocumented) + context?: PlaylistLoaderContext; + // (undocumented) + details: ErrorDetails; + // (undocumented) + err?: { + message: string; + }; + // (undocumented) + error?: Error; + // (undocumented) + event?: keyof HlsListeners | 'demuxerWorker'; + // (undocumented) + fatal: boolean; + // (undocumented) + frag?: Fragment; + // (undocumented) + level?: number | undefined; + // (undocumented) + levelRetry?: boolean; + // (undocumented) + loader?: Loader; + // (undocumented) + mimeType?: string; + // (undocumented) + networkDetails?: any; + // (undocumented) + parent?: PlaylistLevelType; + // (undocumented) + reason?: string; + // (undocumented) + response?: LoaderResponse; + // (undocumented) + type: ErrorTypes; + // (undocumented) + url?: string; +} + +// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag +// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" +// Warning: (tsdoc-undefined-tag) The TSDoc tag "@enum" is not defined in this configuration +// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag +// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" +// Warning: (tsdoc-undefined-tag) The TSDoc tag "@typedef" is not defined in this configuration +// Warning: (ae-missing-release-tag) "ErrorDetails" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export enum ErrorDetails { + // (undocumented) + AUDIO_TRACK_LOAD_ERROR = 'audioTrackLoadError', + // (undocumented) + AUDIO_TRACK_LOAD_TIMEOUT = 'audioTrackLoadTimeOut', + // (undocumented) + BUFFER_ADD_CODEC_ERROR = 'bufferAddCodecError', + // (undocumented) + BUFFER_APPEND_ERROR = 'bufferAppendError', + // (undocumented) + BUFFER_APPENDING_ERROR = 'bufferAppendingError', + // (undocumented) + BUFFER_FULL_ERROR = 'bufferFullError', + // (undocumented) + BUFFER_NUDGE_ON_STALL = 'bufferNudgeOnStall', + // (undocumented) + BUFFER_SEEK_OVER_HOLE = 'bufferSeekOverHole', + // (undocumented) + BUFFER_STALLED_ERROR = 'bufferStalledError', + // (undocumented) + FRAG_DECRYPT_ERROR = 'fragDecryptError', + // (undocumented) + FRAG_LOAD_ERROR = 'fragLoadError', + // (undocumented) + FRAG_LOAD_TIMEOUT = 'fragLoadTimeOut', + // (undocumented) + FRAG_PARSING_ERROR = 'fragParsingError', + // (undocumented) + INTERNAL_ABORTED = 'aborted', + // (undocumented) + INTERNAL_EXCEPTION = 'internalException', + // (undocumented) + KEY_LOAD_ERROR = 'keyLoadError', + // (undocumented) + KEY_LOAD_TIMEOUT = 'keyLoadTimeOut', + // (undocumented) + KEY_SYSTEM_LICENSE_REQUEST_FAILED = 'keySystemLicenseRequestFailed', + // (undocumented) + KEY_SYSTEM_NO_ACCESS = 'keySystemNoAccess', + // (undocumented) + KEY_SYSTEM_NO_INIT_DATA = 'keySystemNoInitData', + // (undocumented) + KEY_SYSTEM_NO_KEYS = 'keySystemNoKeys', + // (undocumented) + KEY_SYSTEM_NO_SESSION = 'keySystemNoSession', + // (undocumented) + LEVEL_EMPTY_ERROR = 'levelEmptyError', + // (undocumented) + LEVEL_LOAD_ERROR = 'levelLoadError', + // (undocumented) + LEVEL_LOAD_TIMEOUT = 'levelLoadTimeOut', + // (undocumented) + LEVEL_SWITCH_ERROR = 'levelSwitchError', + // (undocumented) + MANIFEST_INCOMPATIBLE_CODECS_ERROR = 'manifestIncompatibleCodecsError', + // (undocumented) + MANIFEST_LOAD_ERROR = 'manifestLoadError', + // (undocumented) + MANIFEST_LOAD_TIMEOUT = 'manifestLoadTimeOut', + // (undocumented) + MANIFEST_PARSING_ERROR = 'manifestParsingError', + // (undocumented) + REMUX_ALLOC_ERROR = 'remuxAllocError', + // (undocumented) + SUBTITLE_LOAD_ERROR = 'subtitleTrackLoadError', + // (undocumented) + SUBTITLE_TRACK_LOAD_TIMEOUT = 'subtitleTrackLoadTimeOut', + // (undocumented) + UNKNOWN = 'unknown', +} + +// Warning: (ae-missing-release-tag) "ErrorTypes" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export enum ErrorTypes { + // (undocumented) + KEY_SYSTEM_ERROR = 'keySystemError', + // (undocumented) + MEDIA_ERROR = 'mediaError', + // (undocumented) + MUX_ERROR = 'muxError', + // (undocumented) + NETWORK_ERROR = 'networkError', + // (undocumented) + OTHER_ERROR = 'otherError', +} + +// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag +// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" +// Warning: (tsdoc-undefined-tag) The TSDoc tag "@enum" is not defined in this configuration +// Warning: (ae-missing-release-tag) "Events" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export enum Events { + // (undocumented) + AUDIO_TRACK_LOADED = 'hlsAudioTrackLoaded', + // (undocumented) + AUDIO_TRACK_LOADING = 'hlsAudioTrackLoading', + // (undocumented) + AUDIO_TRACK_SWITCHED = 'hlsAudioTrackSwitched', + // (undocumented) + AUDIO_TRACK_SWITCHING = 'hlsAudioTrackSwitching', + // (undocumented) + AUDIO_TRACKS_UPDATED = 'hlsAudioTracksUpdated', + // (undocumented) + BUFFER_APPENDED = 'hlsBufferAppended', + // (undocumented) + BUFFER_APPENDING = 'hlsBufferAppending', + // (undocumented) + BUFFER_CODECS = 'hlsBufferCodecs', + // (undocumented) + BUFFER_CREATED = 'hlsBufferCreated', + // (undocumented) + BUFFER_EOS = 'hlsBufferEos', + // (undocumented) + BUFFER_FLUSHED = 'hlsBufferFlushed', + // (undocumented) + BUFFER_FLUSHING = 'hlsBufferFlushing', + // (undocumented) + BUFFER_RESET = 'hlsBufferReset', + // (undocumented) + CUES_PARSED = 'hlsCuesParsed', + // (undocumented) + DESTROYING = 'hlsDestroying', + // (undocumented) + ERROR = 'hlsError', + // (undocumented) + FPS_DROP = 'hlsFpsDrop', + // (undocumented) + FPS_DROP_LEVEL_CAPPING = 'hlsFpsDropLevelCapping', + // (undocumented) + FRAG_BUFFERED = 'hlsFragBuffered', + // (undocumented) + FRAG_CHANGED = 'hlsFragChanged', + // (undocumented) + FRAG_DECRYPTED = 'hlsFragDecrypted', + // (undocumented) + FRAG_LOAD_EMERGENCY_ABORTED = 'hlsFragLoadEmergencyAborted', + // (undocumented) + FRAG_LOADED = 'hlsFragLoaded', + // (undocumented) + FRAG_LOADING = 'hlsFragLoading', + // (undocumented) + FRAG_PARSED = 'hlsFragParsed', + // (undocumented) + FRAG_PARSING_INIT_SEGMENT = 'hlsFragParsingInitSegment', + // (undocumented) + FRAG_PARSING_METADATA = 'hlsFragParsingMetadata', + // (undocumented) + FRAG_PARSING_USERDATA = 'hlsFragParsingUserdata', + // (undocumented) + INIT_PTS_FOUND = 'hlsInitPtsFound', + // (undocumented) + KEY_LOADED = 'hlsKeyLoaded', + // (undocumented) + KEY_LOADING = 'hlsKeyLoading', + // (undocumented) + LEVEL_LOADED = 'hlsLevelLoaded', + // (undocumented) + LEVEL_LOADING = 'hlsLevelLoading', + // (undocumented) + LEVEL_PTS_UPDATED = 'hlsLevelPtsUpdated', + // (undocumented) + LEVEL_SWITCHED = 'hlsLevelSwitched', + // (undocumented) + LEVEL_SWITCHING = 'hlsLevelSwitching', + // (undocumented) + LEVEL_UPDATED = 'hlsLevelUpdated', + // (undocumented) + LEVELS_UPDATED = 'hlsLevelsUpdated', + // (undocumented) + LIVE_BACK_BUFFER_REACHED = 'hlsLiveBackBufferReached', + // (undocumented) + MANIFEST_LOADED = 'hlsManifestLoaded', + // (undocumented) + MANIFEST_LOADING = 'hlsManifestLoading', + // (undocumented) + MANIFEST_PARSED = 'hlsManifestParsed', + // (undocumented) + MEDIA_ATTACHED = 'hlsMediaAttached', + // (undocumented) + MEDIA_ATTACHING = 'hlsMediaAttaching', + // (undocumented) + MEDIA_DETACHED = 'hlsMediaDetached', + // (undocumented) + MEDIA_DETACHING = 'hlsMediaDetaching', + // (undocumented) + NON_NATIVE_TEXT_TRACKS_FOUND = 'hlsNonNativeTextTracksFound', + // (undocumented) + SUBTITLE_FRAG_PROCESSED = 'hlsSubtitleFragProcessed', + // (undocumented) + SUBTITLE_TRACK_LOADED = 'hlsSubtitleTrackLoaded', + // (undocumented) + SUBTITLE_TRACK_LOADING = 'hlsSubtitleTrackLoading', + // (undocumented) + SUBTITLE_TRACK_SWITCH = 'hlsSubtitleTrackSwitch', + // (undocumented) + SUBTITLE_TRACKS_CLEARED = 'hlsSubtitleTracksCleared', + // (undocumented) + SUBTITLE_TRACKS_UPDATED = 'hlsSubtitleTracksUpdated', +} + +// Warning: (ae-missing-release-tag) "FPSControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type FPSControllerConfig = { + capLevelOnFPSDrop: boolean; + fpsDroppedMonitoringPeriod: number; + fpsDroppedMonitoringThreshold: number; +}; + +// Warning: (ae-missing-release-tag) "FPSDropData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FPSDropData { + // (undocumented) + currentDecoded: number; + // (undocumented) + currentDropped: number; + // (undocumented) + totalDroppedFrames: number; +} + +// Warning: (ae-missing-release-tag) "FPSDropLevelCappingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FPSDropLevelCappingData { + // (undocumented) + droppedLevel: number; + // (undocumented) + level: number; +} + +// Warning: (ae-missing-release-tag) "FragBufferedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragBufferedData { + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + part: Part | null; + // (undocumented) + stats: LoadStats; +} + +// Warning: (ae-missing-release-tag) "FragChangedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragChangedData { + // (undocumented) + frag: Fragment; +} + +// Warning: (ae-missing-release-tag) "FragDecryptedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragDecryptedData { + // (undocumented) + frag: Fragment; + // (undocumented) + payload: ArrayBuffer; + // (undocumented) + stats: { + tstart: number; + tdecrypt: number; + }; +} + +// Warning: (ae-missing-release-tag) "FragLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragLoadedData { + // (undocumented) + frag: Fragment; + // (undocumented) + networkDetails: unknown; + // (undocumented) + part: Part | null; + // (undocumented) + payload: ArrayBuffer; +} + +// Warning: (ae-missing-release-tag) "FragLoadEmergencyAbortedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragLoadEmergencyAbortedData { + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; + // (undocumented) + stats: LoaderStats; +} + +// Warning: (ae-missing-release-tag) "FragLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragLoadingData { + // (undocumented) + frag: Fragment; + // (undocumented) + part?: Part; + // (undocumented) + targetBufferTime: number | null; +} + +// Warning: (ae-missing-release-tag) "Fragment" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class Fragment extends BaseSegment { + constructor(type: PlaylistLevelType, baseurl: string); + // (undocumented) + appendedPTS?: number; + // (undocumented) + bitrateTest: boolean; + // (undocumented) + cc: number; + // (undocumented) + clearElementaryStreamInfo(): void; + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + createInitializationVector(segmentNumber: number): Uint8Array; + // (undocumented) + data?: Uint8Array; + // (undocumented) + get decryptdata(): LevelKey | null; + // (undocumented) + deltaPTS?: number; + // (undocumented) + duration: number; + // (undocumented) + get encrypted(): boolean; + // (undocumented) + get end(): number; + // (undocumented) + endDTS: number; + // (undocumented) + get endProgramDateTime(): number | null; + // (undocumented) + endPTS?: number; + // (undocumented) + level: number; + // (undocumented) + levelkey?: LevelKey; + // (undocumented) + loader: Loader | null; + // (undocumented) + maxStartPTS?: number; + // (undocumented) + minEndPTS?: number; + // (undocumented) + programDateTime: number | null; + // (undocumented) + rawProgramDateTime: string | null; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + setDecryptDataFromLevelKey( + levelkey: LevelKey, + segmentNumber: number + ): LevelKey; + // (undocumented) + setElementaryStreamInfo( + type: ElementaryStreamTypes, + startPTS: number, + endPTS: number, + startDTS: number, + endDTS: number, + partial?: boolean + ): void; + // (undocumented) + sn: number | 'initSegment'; + // (undocumented) + start: number; + // (undocumented) + startDTS: number; + // (undocumented) + startPTS?: number; + // (undocumented) + stats: LoadStats; + // (undocumented) + tagList: Array; + // (undocumented) + title: string | null; + // (undocumented) + readonly type: PlaylistLevelType; + // (undocumented) + urlId: number; +} + +// Warning: (ae-missing-release-tag) "FragmentLoaderConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type FragmentLoaderConfig = { + fLoader?: { + new (confg: HlsConfig): Loader; + }; + fragLoadingTimeOut: number; + fragLoadingMaxRetry: number; + fragLoadingRetryDelay: number; + fragLoadingMaxRetryTimeout: number; +}; + +// Warning: (ae-missing-release-tag) "FragmentLoaderContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragmentLoaderContext extends LoaderContext { + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; +} + +// Warning: (ae-missing-release-tag) "FragParsedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragParsedData { + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; +} + +// Warning: (ae-missing-release-tag) "FragParsingInitSegmentData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragParsingInitSegmentData {} + +// Warning: (ae-missing-release-tag) "FragParsingMetadataData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragParsingMetadataData { + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + samples: MetadataSample[]; +} + +// Warning: (ae-missing-release-tag) "FragParsingUserdataData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface FragParsingUserdataData { + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + samples: UserdataSample[]; +} + +// Warning: (tsdoc-undefined-tag) The TSDoc tag "@module" is not defined in this configuration +// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration +// Warning: (tsdoc-undefined-tag) The TSDoc tag "@constructor" is not defined in this configuration +// Warning: (ae-missing-release-tag) "Hls" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +class Hls implements HlsEventEmitter { + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@constructs" is not defined in this configuration + // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + constructor(userConfig?: Partial); + // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + attachMedia(media: HTMLMediaElement): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get audioTrack(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "audioTrack" must appear on the getter, not the setter. + set audioTrack(audioTrackId: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get audioTracks(): Array; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get autoLevelCapping(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "autoLevelCapping" must appear on the getter, not the setter. + set autoLevelCapping(newLevel: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get autoLevelEnabled(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get bandwidthEstimate(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get capLevelToPlayerSize(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "capLevelToPlayerSize" must appear on the getter, not the setter. + set capLevelToPlayerSize(shouldStartCapping: boolean); + // (undocumented) + readonly config: HlsConfig; + // (undocumented) + createController( + ControllerClass: any, + fragmentTracker: any, + components: any + ): any; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get currentLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "currentLevel" must appear on the getter, not the setter. + set currentLevel(newLevel: number); + // (undocumented) + static get DefaultConfig(): HlsConfig; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "DefaultConfig" must appear on the getter, not the setter. + static set DefaultConfig(defaultConfig: HlsConfig); + destroy(): void; + detachMedia(): void; + // (undocumented) + emit( + event: E, + name: E, + eventObject: Parameters[1] + ): boolean; + // (undocumented) + static get ErrorDetails(): typeof ErrorDetails; + // (undocumented) + static get ErrorTypes(): typeof ErrorTypes; + // (undocumented) + static get Events(): typeof Events; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get firstLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "firstLevel" must appear on the getter, not the setter. + set firstLevel(newLevel: number); + // (undocumented) + static isSupported(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get latency(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get levels(): Array; + // (undocumented) + listenerCount(event: E): number; + // (undocumented) + listeners(event: E): HlsListeners[E][]; + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get liveSyncPosition(): number | null; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get loadLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "loadLevel" must appear on the getter, not the setter. + set loadLevel(newLevel: number); + // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + loadSource(url: string): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get lowLatencyMode(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "lowLatencyMode" must appear on the getter, not the setter. + set lowLatencyMode(mode: boolean); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get manualLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get maxAutoLevel(): number; + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get maxLatency(): number; + // (undocumented) + get media(): HTMLMediaElement | null; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get minAutoLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get nextAutoLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "nextAutoLevel" must appear on the getter, not the setter. + set nextAutoLevel(nextLevel: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get nextLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "nextLevel" must appear on the getter, not the setter. + set nextLevel(newLevel: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get nextLoadLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "nextLoadLevel" must appear on the getter, not the setter. + set nextLoadLevel(level: number); + // (undocumented) + off( + event: E, + listener?: HlsListeners[E] | undefined, + context?: Context, + once?: boolean | undefined + ): void; + // (undocumented) + on( + event: E, + listener: HlsListeners[E], + context?: Context + ): void; + // (undocumented) + once( + event: E, + listener: HlsListeners[E], + context?: Context + ): void; + recoverMediaError(): void; + // (undocumented) + removeAllListeners(event?: E | undefined): void; + // (undocumented) + removeLevel(levelIndex: any, urlId?: number): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get startLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "startLevel" must appear on the getter, not the setter. + set startLevel(newLevel: number); + // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@default" is not defined in this configuration + startLoad(startPosition?: number): void; + stopLoad(): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get subtitleDisplay(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "subtitleDisplay" must appear on the getter, not the setter. + set subtitleDisplay(value: boolean); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get subtitleTrack(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "subtitleTrack" must appear on the getter, not the setter. + set subtitleTrack(subtitleTrackId: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get subtitleTracks(): Array; + swapAudioCodec(): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get targetLatency(): number | null; + // (undocumented) + trigger( + event: E, + eventObject: Parameters[1] + ): boolean; + // (undocumented) + readonly userConfig: Partial; + // (undocumented) + static get version(): string; +} + +export default Hls; + +// Warning: (ae-missing-release-tag) "HlsChunkPerformanceTiming" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface HlsChunkPerformanceTiming extends HlsPerformanceTiming { + // (undocumented) + executeEnd: number; + // (undocumented) + executeStart: number; +} + +// Warning: (ae-missing-release-tag) "HlsConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type HlsConfig = { + debug: boolean; + enableWorker: boolean; + enableSoftwareAES: boolean; + minAutoBitrate: number; + loader: { + new (confg: HlsConfig): Loader; + }; + xhrSetup?: (xhr: XMLHttpRequest, url: string) => void; + audioStreamController?: typeof AudioStreamController; + audioTrackController?: typeof AudioTrackController; + subtitleStreamController?: typeof SubtitleStreamController; + subtitleTrackController?: typeof SubtitleTrackController; + timelineController?: typeof TimelineController; + emeController?: typeof EMEController; + abrController: typeof AbrController; + bufferController: typeof BufferController; + capLevelController: typeof CapLevelController; + fpsController: typeof FPSController; + progressive: boolean; + lowLatencyMode: boolean; +} & ABRControllerConfig & + BufferControllerConfig & + CapLevelControllerConfig & + EMEControllerConfig & + FPSControllerConfig & + FragmentLoaderConfig & + LevelControllerConfig & + MP4RemuxerConfig & + PlaylistLoaderConfig & + StreamControllerConfig & + LatencyControllerConfig & + TimelineControllerConfig & + TSDemuxerConfig; + +// Warning: (ae-missing-release-tag) "HlsEventEmitter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface HlsEventEmitter { + // (undocumented) + emit( + event: E, + name: E, + eventObject: Parameters[1] + ): boolean; + // (undocumented) + listenerCount(event: E): number; + // (undocumented) + listeners(event: E): HlsListeners[E][]; + // (undocumented) + off( + event: E, + listener?: HlsListeners[E], + context?: Context, + once?: boolean + ): void; + // (undocumented) + on( + event: E, + listener: HlsListeners[E], + context?: Context + ): void; + // (undocumented) + once( + event: E, + listener: HlsListeners[E], + context?: Context + ): void; + // (undocumented) + removeAllListeners(event?: E): void; +} + +// Warning: (ae-missing-release-tag) "HlsListeners" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface HlsListeners { + // (undocumented) + [Events.AUDIO_TRACK_LOADED]: ( + event: Events.AUDIO_TRACK_LOADED, + data: AudioTrackLoadedData + ) => void; + // (undocumented) + [Events.AUDIO_TRACK_LOADING]: ( + event: Events.AUDIO_TRACK_LOADING, + data: TrackLoadingData + ) => void; + // (undocumented) + [Events.AUDIO_TRACKS_UPDATED]: ( + event: Events.AUDIO_TRACKS_UPDATED, + data: AudioTracksUpdatedData + ) => void; + // (undocumented) + [Events.AUDIO_TRACK_SWITCHED]: ( + event: Events.AUDIO_TRACK_SWITCHED, + data: AudioTrackSwitchedData + ) => void; + // (undocumented) + [Events.AUDIO_TRACK_SWITCHING]: ( + event: Events.AUDIO_TRACK_SWITCHING, + data: AudioTrackSwitchingData + ) => void; + // (undocumented) + [Events.BUFFER_APPENDED]: ( + event: Events.BUFFER_APPENDED, + data: BufferAppendedData + ) => void; + // (undocumented) + [Events.BUFFER_APPENDING]: ( + event: Events.BUFFER_APPENDING, + data: BufferAppendingData + ) => void; + // (undocumented) + [Events.BUFFER_CODECS]: ( + event: Events.BUFFER_CODECS, + data: BufferCodecsData + ) => void; + // (undocumented) + [Events.BUFFER_CREATED]: ( + event: Events.BUFFER_CREATED, + data: BufferCreatedData + ) => void; + // (undocumented) + [Events.BUFFER_EOS]: (event: Events.BUFFER_EOS, data: BufferEOSData) => void; + // (undocumented) + [Events.BUFFER_FLUSHED]: ( + event: Events.BUFFER_FLUSHED, + data: BufferFlushedData + ) => void; + // (undocumented) + [Events.BUFFER_FLUSHING]: ( + event: Events.BUFFER_FLUSHING, + data: BufferFlushingData + ) => void; + // (undocumented) + [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void; + // (undocumented) + [Events.CUES_PARSED]: ( + event: Events.CUES_PARSED, + data: CuesParsedData + ) => void; + // (undocumented) + [Events.DESTROYING]: (event: Events.DESTROYING) => void; + // (undocumented) + [Events.ERROR]: (event: Events.ERROR, data: ErrorData) => void; + // (undocumented) + [Events.FPS_DROP]: (event: Events.FPS_DROP, data: FPSDropData) => void; + // (undocumented) + [Events.FPS_DROP_LEVEL_CAPPING]: ( + event: Events.FPS_DROP_LEVEL_CAPPING, + data: FPSDropLevelCappingData + ) => void; + // (undocumented) + [Events.FRAG_BUFFERED]: ( + event: Events.FRAG_BUFFERED, + data: FragBufferedData + ) => void; + // (undocumented) + [Events.FRAG_CHANGED]: ( + event: Events.FRAG_CHANGED, + data: FragChangedData + ) => void; + // (undocumented) + [Events.FRAG_DECRYPTED]: ( + event: Events.FRAG_DECRYPTED, + data: FragDecryptedData + ) => void; + // (undocumented) + [Events.FRAG_LOADED]: ( + event: Events.FRAG_LOADED, + data: FragLoadedData + ) => void; + // (undocumented) + [Events.FRAG_LOAD_EMERGENCY_ABORTED]: ( + event: Events.FRAG_LOAD_EMERGENCY_ABORTED, + data: FragLoadEmergencyAbortedData + ) => void; + // (undocumented) + [Events.FRAG_LOADING]: ( + event: Events.FRAG_LOADING, + data: FragLoadingData + ) => void; + // (undocumented) + [Events.FRAG_PARSED]: ( + event: Events.FRAG_PARSED, + data: FragParsedData + ) => void; + // (undocumented) + [Events.FRAG_PARSING_INIT_SEGMENT]: ( + event: Events.FRAG_PARSING_INIT_SEGMENT, + data: FragParsingInitSegmentData + ) => void; + // (undocumented) + [Events.FRAG_PARSING_METADATA]: ( + event: Events.FRAG_PARSING_METADATA, + data: FragParsingMetadataData + ) => void; + // (undocumented) + [Events.FRAG_PARSING_USERDATA]: ( + event: Events.FRAG_PARSING_USERDATA, + data: FragParsingUserdataData + ) => void; + // (undocumented) + [Events.INIT_PTS_FOUND]: ( + event: Events.INIT_PTS_FOUND, + data: InitPTSFoundData + ) => void; + // (undocumented) + [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void; + // (undocumented) + [Events.KEY_LOADING]: ( + event: Events.KEY_LOADING, + data: KeyLoadingData + ) => void; + // (undocumented) + [Events.LEVEL_LOADED]: ( + event: Events.LEVEL_LOADED, + data: LevelLoadedData + ) => void; + // (undocumented) + [Events.LEVEL_LOADING]: ( + event: Events.LEVEL_LOADING, + data: LevelLoadingData + ) => void; + // (undocumented) + [Events.LEVEL_PTS_UPDATED]: ( + event: Events.LEVEL_PTS_UPDATED, + data: LevelPTSUpdatedData + ) => void; + // (undocumented) + [Events.LEVELS_UPDATED]: ( + event: Events.LEVELS_UPDATED, + data: LevelsUpdatedData + ) => void; + // (undocumented) + [Events.LEVEL_SWITCHED]: ( + event: Events.LEVEL_SWITCHED, + data: LevelSwitchedData + ) => void; + // (undocumented) + [Events.LEVEL_SWITCHING]: ( + event: Events.LEVEL_SWITCHING, + data: LevelSwitchingData + ) => void; + // (undocumented) + [Events.LEVEL_UPDATED]: ( + event: Events.LEVEL_UPDATED, + data: LevelUpdatedData + ) => void; + // (undocumented) + [Events.LIVE_BACK_BUFFER_REACHED]: ( + event: Events.LIVE_BACK_BUFFER_REACHED, + data: LiveBackBufferData + ) => void; + // (undocumented) + [Events.MANIFEST_LOADED]: ( + event: Events.MANIFEST_LOADED, + data: ManifestLoadedData + ) => void; + // (undocumented) + [Events.MANIFEST_LOADING]: ( + event: Events.MANIFEST_LOADING, + data: ManifestLoadingData + ) => void; + // (undocumented) + [Events.MANIFEST_PARSED]: ( + event: Events.MANIFEST_PARSED, + data: ManifestParsedData + ) => void; + // (undocumented) + [Events.MEDIA_ATTACHED]: ( + event: Events.MEDIA_ATTACHED, + data: MediaAttachedData + ) => void; + // (undocumented) + [Events.MEDIA_ATTACHING]: ( + event: Events.MEDIA_ATTACHING, + data: MediaAttachingData + ) => void; + // (undocumented) + [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void; + // (undocumented) + [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void; + // (undocumented) + [Events.NON_NATIVE_TEXT_TRACKS_FOUND]: ( + event: Events.NON_NATIVE_TEXT_TRACKS_FOUND, + data: NonNativeTextTracksData + ) => void; + // (undocumented) + [Events.SUBTITLE_FRAG_PROCESSED]: ( + event: Events.SUBTITLE_FRAG_PROCESSED, + data: SubtitleFragProcessedData + ) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_LOADED]: ( + event: Events.SUBTITLE_TRACK_LOADED, + data: SubtitleTrackLoadedData + ) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_LOADING]: ( + event: Events.SUBTITLE_TRACK_LOADING, + data: TrackLoadingData + ) => void; + // (undocumented) + [Events.SUBTITLE_TRACKS_CLEARED]: ( + event: Events.SUBTITLE_TRACKS_CLEARED + ) => void; + // (undocumented) + [Events.SUBTITLE_TRACKS_UPDATED]: ( + event: Events.SUBTITLE_TRACKS_UPDATED, + data: SubtitleTracksUpdatedData + ) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_SWITCH]: ( + event: Events.SUBTITLE_TRACK_SWITCH, + data: SubtitleTrackSwitchData + ) => void; +} + +// Warning: (ae-missing-release-tag) "HlsPerformanceTiming" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface HlsPerformanceTiming { + // (undocumented) + end: number; + // (undocumented) + start: number; +} + +// Warning: (ae-missing-release-tag) "HlsProgressivePerformanceTiming" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface HlsProgressivePerformanceTiming extends HlsPerformanceTiming { + // (undocumented) + first: number; +} + +// Warning: (ae-missing-release-tag) "HlsSkip" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export enum HlsSkip { + // (undocumented) + No = '', + // (undocumented) + v2 = 'v2', + // (undocumented) + Yes = 'YES', +} + +// Warning: (ae-missing-release-tag) "HlsUrlParameters" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class HlsUrlParameters { + constructor(msn: number, part?: number, skip?: HlsSkip); + // (undocumented) + addDirectives(uri: string): string | never; + // (undocumented) + msn: number; + // (undocumented) + part?: number; + // (undocumented) + skip?: HlsSkip; +} + +// Warning: (ae-missing-release-tag) "InitPTSFoundData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface InitPTSFoundData { + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + initPTS: number; + // (undocumented) + timescale: number; +} + +// Warning: (ae-missing-release-tag) "KeyLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface KeyLoadedData { + // (undocumented) + frag: Fragment; +} + +// Warning: (ae-missing-release-tag) "KeyLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface KeyLoadingData { + // (undocumented) + frag: Fragment; +} + +// Warning: (tsdoc-unsupported-tag) The TSDoc tag "@see" is not supported by this tool +// Warning: (ae-missing-release-tag) "KeySystems" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export enum KeySystems { + // (undocumented) + PLAYREADY = 'com.microsoft.playready', + // (undocumented) + WIDEVINE = 'com.widevine.alpha', +} + +// Warning: (ae-missing-release-tag) "LatencyControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type LatencyControllerConfig = { + liveSyncDurationCount: number; + liveMaxLatencyDurationCount: number; + liveSyncDuration?: number; + liveMaxLatencyDuration?: number; + maxLiveSyncPlaybackRate: number; +}; + +// Warning: (ae-missing-release-tag) "Level" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class Level { + constructor(data: LevelParsed); + // (undocumented) + readonly attrs: LevelAttributes; + // (undocumented) + readonly audioCodec: string | undefined; + // (undocumented) + audioGroupIds?: string[]; + // (undocumented) + readonly bitrate: number; + // (undocumented) + readonly codecSet: string; + // (undocumented) + details?: LevelDetails; + // (undocumented) + fragmentError: number; + // (undocumented) + readonly height: number; + // (undocumented) + readonly id: number; + // (undocumented) + loaded?: { + bytes: number; + duration: number; + }; + // (undocumented) + loadError: number; + // (undocumented) + get maxBitrate(): number; + // (undocumented) + readonly name: string | undefined; + // (undocumented) + realBitrate: number; + // (undocumented) + textGroupIds?: string[]; + // (undocumented) + readonly unknownCodecs: string[] | undefined; + // (undocumented) + get uri(): string; + // (undocumented) + url: string[]; + // (undocumented) + get urlId(): number; + set urlId(value: number); + // (undocumented) + readonly videoCodec: string | undefined; + // (undocumented) + readonly width: number; +} + +// Warning: (ae-missing-release-tag) "LevelAttributes" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelAttributes extends AttrList { + // (undocumented) + 'AVERAGE-BANDWIDTH'?: string; + // (undocumented) + 'CLOSED-CAPTIONS'?: string; + // (undocumented) + 'FRAME-RATE'?: string; + // (undocumented) + 'PROGRAM-ID'?: string; + // (undocumented) + AUDIO?: string; + // (undocumented) + AUTOSELECT?: string; + // (undocumented) + BANDWIDTH?: string; + // (undocumented) + BYTERANGE?: string; + // (undocumented) + CODECS?: string; + // (undocumented) + DEFAULT?: string; + // (undocumented) + FORCED?: string; + // (undocumented) + LANGUAGE?: string; + // (undocumented) + NAME?: string; + // (undocumented) + RESOLUTION?: string; + // (undocumented) + SUBTITLES?: string; + // (undocumented) + TYPE?: string; + // (undocumented) + URI?: string; +} + +// Warning: (ae-missing-release-tag) "LevelControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type LevelControllerConfig = { + startLevel?: number; +}; + +// Warning: (ae-missing-release-tag) "LevelDetails" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class LevelDetails { + constructor(baseUrl: any); + // (undocumented) + advanced: boolean; + // (undocumented) + advancedDateTime?: number; + // (undocumented) + get age(): number; + // (undocumented) + ageHeader: number; + // (undocumented) + alignedSliding: boolean; + // (undocumented) + availabilityDelay?: number; + // (undocumented) + averagetargetduration?: number; + // (undocumented) + canBlockReload: boolean; + // (undocumented) + canSkipDateRanges: boolean; + // (undocumented) + canSkipUntil: number; + // (undocumented) + deltaUpdateFailed?: boolean; + // (undocumented) + get edge(): number; + // (undocumented) + endCC: number; + // (undocumented) + endSN: number; + // (undocumented) + get fragmentEnd(): number; + // (undocumented) + fragmentHint?: Fragment; + // (undocumented) + fragments: Fragment[]; + // (undocumented) + get hasProgramDateTime(): boolean; + // (undocumented) + holdBack: number; + // (undocumented) + initSegment: Fragment | null; + // (undocumented) + get lastPartIndex(): number; + // (undocumented) + get lastPartSn(): number; + // (undocumented) + get levelTargetDuration(): number; + // (undocumented) + live: boolean; + // (undocumented) + m3u8: string; + // (undocumented) + misses: number; + // (undocumented) + needSidxRanges: boolean; + // (undocumented) + get partEnd(): number; + // (undocumented) + partHoldBack: number; + // (undocumented) + partList: Part[] | null; + // (undocumented) + partTarget: number; + // (undocumented) + preloadHint?: AttrList; + // (undocumented) + PTSKnown: boolean; + // (undocumented) + recentlyRemovedDateranges?: string[]; + // (undocumented) + reloaded(previous: LevelDetails | undefined): void; + // (undocumented) + renditionReports?: AttrList[]; + // (undocumented) + skippedSegments: number; + // (undocumented) + startCC: number; + // (undocumented) + startSN: number; + // (undocumented) + startTimeOffset: number | null; + // (undocumented) + targetduration: number; + // (undocumented) + totalduration: number; + // (undocumented) + tuneInGoal: number; + // (undocumented) + type: string | null; + // (undocumented) + updated: boolean; + // (undocumented) + url: string; + // (undocumented) + version: number | null; +} + +// Warning: (ae-missing-release-tag) "LevelKey" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class LevelKey { + // (undocumented) + static fromURI(uri: string): LevelKey; + // (undocumented) + static fromURL(baseUrl: string, relativeUrl: string): LevelKey; + // (undocumented) + iv: Uint8Array | null; + // (undocumented) + key: Uint8Array | null; + // (undocumented) + keyFormat: string | null; + // (undocumented) + keyFormatVersions: string | null; + // (undocumented) + keyID: string | null; + // (undocumented) + method: string | null; + // (undocumented) + get uri(): string | null; +} + +// Warning: (ae-missing-release-tag) "LevelLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelLoadedData { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + details: LevelDetails; + // (undocumented) + id: number; + // (undocumented) + level: number; + // (undocumented) + networkDetails: any; + // (undocumented) + stats: LoaderStats; +} + +// Warning: (ae-missing-release-tag) "LevelLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelLoadingData { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + id: number; + // (undocumented) + level: number; + // (undocumented) + url: string; +} + +// Warning: (ae-missing-release-tag) "LevelParsed" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelParsed { + // (undocumented) + attrs: LevelAttributes; + // (undocumented) + audioCodec?: string; + // (undocumented) + bitrate: number; + // (undocumented) + details?: LevelDetails; + // (undocumented) + height?: number; + // (undocumented) + id?: number; + // (undocumented) + level?: number; + // (undocumented) + name: string; + // (undocumented) + textCodec?: string; + // (undocumented) + unknownCodecs?: string[]; + // (undocumented) + url: string; + // (undocumented) + videoCodec?: string; + // (undocumented) + width?: number; +} + +// Warning: (ae-missing-release-tag) "LevelPTSUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelPTSUpdatedData { + // (undocumented) + details: LevelDetails; + // (undocumented) + drift: number; + // (undocumented) + end: number; + // (undocumented) + frag: Fragment; + // (undocumented) + level: Level; + // (undocumented) + start: number; + // (undocumented) + type: string; +} + +// Warning: (ae-missing-release-tag) "LevelsUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelsUpdatedData { + // (undocumented) + levels: Array; +} + +// Warning: (ae-missing-release-tag) "LevelSwitchedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelSwitchedData { + // (undocumented) + level: number; +} + +// Warning: (ae-missing-release-tag) "LevelSwitchingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelSwitchingData extends Omit { + // (undocumented) + level: number; +} + +// Warning: (ae-missing-release-tag) "LevelUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LevelUpdatedData { + // (undocumented) + details: LevelDetails; + // (undocumented) + level: number; +} + +// Warning: (ae-missing-release-tag) "LiveBackBufferData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LiveBackBufferData { + // (undocumented) + bufferEnd: number; +} + +// Warning: (ae-missing-release-tag) "Loader" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface Loader { + // (undocumented) + abort(): void; + // (undocumented) + context: T; + // (undocumented) + destroy(): void; + // (undocumented) + getResponseHeader(name: string): string | null; + // (undocumented) + load( + context: LoaderContext, + config: LoaderConfiguration, + callbacks: LoaderCallbacks + ): void; + // (undocumented) + loader: any; + // (undocumented) + stats: LoaderStats; +} + +// Warning: (ae-missing-release-tag) "LoaderCallbacks" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LoaderCallbacks { + // (undocumented) + onAbort?: LoaderOnAbort; + // (undocumented) + onError: LoaderOnError; + // (undocumented) + onProgress?: LoaderOnProgress; + // (undocumented) + onSuccess: LoaderOnSuccess; + // (undocumented) + onTimeout: LoaderOnTimeout; +} + +// Warning: (ae-missing-release-tag) "LoaderConfiguration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LoaderConfiguration { + // (undocumented) + highWaterMark: number; + // (undocumented) + maxRetry: number; + // (undocumented) + maxRetryDelay: number; + // (undocumented) + retryDelay: number; + // (undocumented) + timeout: number; +} + +// Warning: (ae-missing-release-tag) "LoaderContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LoaderContext { + // (undocumented) + progressData?: boolean; + // (undocumented) + rangeEnd?: number; + // (undocumented) + rangeStart?: number; + // (undocumented) + responseType: string; + // (undocumented) + url: string; +} + +// Warning: (ae-missing-release-tag) "LoaderOnAbort" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type LoaderOnAbort = ( + stats: LoaderStats, + context: T, + networkDetails: any +) => void; + +// Warning: (ae-missing-release-tag) "LoaderOnError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type LoaderOnError = ( + error: { + code: number; + text: string; + }, + context: T, + networkDetails: any +) => void; + +// Warning: (ae-missing-release-tag) "LoaderOnProgress" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type LoaderOnProgress = ( + stats: LoaderStats, + context: T, + data: string | ArrayBuffer, + networkDetails: any +) => void; + +// Warning: (ae-missing-release-tag) "LoaderOnSuccess" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type LoaderOnSuccess = ( + response: LoaderResponse, + stats: LoaderStats, + context: T, + networkDetails: any +) => void; + +// Warning: (ae-missing-release-tag) "LoaderOnTimeout" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type LoaderOnTimeout = ( + stats: LoaderStats, + context: T, + networkDetails: any +) => void; + +// Warning: (ae-missing-release-tag) "LoaderResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LoaderResponse { + // (undocumented) + data: string | ArrayBuffer; + // (undocumented) + url: string; +} + +// Warning: (ae-missing-release-tag) "LoaderStats" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface LoaderStats { + // (undocumented) + aborted: boolean; + // (undocumented) + buffering: HlsProgressivePerformanceTiming; + // (undocumented) + bwEstimate: number; + // (undocumented) + chunkCount: number; + // (undocumented) + loaded: number; + // (undocumented) + loading: HlsProgressivePerformanceTiming; + // (undocumented) + parsing: HlsPerformanceTiming; + // (undocumented) + retry: number; + // (undocumented) + total: number; +} + +// Warning: (ae-missing-release-tag) "LoadStats" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class LoadStats implements LoaderStats { + // (undocumented) + aborted: boolean; + // (undocumented) + buffering: HlsProgressivePerformanceTiming; + // (undocumented) + bwEstimate: number; + // (undocumented) + chunkCount: number; + // (undocumented) + loaded: number; + // (undocumented) + loading: HlsProgressivePerformanceTiming; + // (undocumented) + parsing: HlsPerformanceTiming; + // (undocumented) + retry: number; + // (undocumented) + total: number; +} + +// Warning: (ae-missing-release-tag) "MainPlaylistType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type MainPlaylistType = AudioPlaylistType | 'VIDEO'; + +// Warning: (ae-missing-release-tag) "ManifestLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ManifestLoadedData { + // (undocumented) + audioTracks: MediaPlaylist[]; + // (undocumented) + captions?: MediaPlaylist[]; + // (undocumented) + levels: LevelParsed[]; + // (undocumented) + networkDetails: any; + // (undocumented) + sessionData: Record | null; + // (undocumented) + stats: LoaderStats; + // (undocumented) + subtitles?: MediaPlaylist[]; + // (undocumented) + url: string; +} + +// Warning: (ae-missing-release-tag) "ManifestLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ManifestLoadingData { + // (undocumented) + url: string; +} + +// Warning: (ae-missing-release-tag) "ManifestParsedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ManifestParsedData { + // (undocumented) + altAudio: boolean; + // (undocumented) + audio: boolean; + // (undocumented) + audioTracks: MediaPlaylist[]; + // (undocumented) + firstLevel: number; + // (undocumented) + levels: Level[]; + // (undocumented) + stats: LoaderStats; + // (undocumented) + subtitleTracks: MediaPlaylist[]; + // (undocumented) + video: boolean; +} + +// Warning: (ae-missing-release-tag) "MediaAttachedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface MediaAttachedData { + // (undocumented) + media: HTMLMediaElement; +} + +// Warning: (ae-missing-release-tag) "MediaAttachingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface MediaAttachingData { + // (undocumented) + media: HTMLMediaElement; +} + +// Warning: (ae-missing-release-tag) "MediaKeyFunc" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type MediaKeyFunc = ( + keySystem: KeySystems, + supportedConfigurations: MediaKeySystemConfiguration[] +) => Promise; + +// Warning: (ae-missing-release-tag) "MediaPlaylist" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface MediaPlaylist extends LevelParsed { + // (undocumented) + autoselect: boolean; + // (undocumented) + default: boolean; + // (undocumented) + forced: boolean; + // (undocumented) + groupId?: string; + // (undocumented) + id: number; + // (undocumented) + instreamId?: string; + // (undocumented) + lang?: string; + // (undocumented) + name: string; + // (undocumented) + type: MediaPlaylistType | 'main'; +} + +// Warning: (ae-missing-release-tag) "MediaPlaylistType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type MediaPlaylistType = MainPlaylistType | SubtitlePlaylistType; + +// Warning: (ae-missing-release-tag) "MetadataSample" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface MetadataSample { + // (undocumented) + data: Uint8Array; + // (undocumented) + dts: number; + // (undocumented) + len?: number; + // (undocumented) + pts: number; +} + +// Warning: (ae-missing-release-tag) "MP4RemuxerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type MP4RemuxerConfig = { + stretchShortVideoTrack: boolean; + maxAudioFramesDrift: number; +}; + +// Warning: (ae-missing-release-tag) "NonNativeTextTrack" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface NonNativeTextTrack { + // (undocumented) + closedCaptions?: MediaPlaylist; + // (undocumented) + default: boolean; + // (undocumented) + _id?: string; + // (undocumented) + kind: string; + // (undocumented) + label: any; + // (undocumented) + subtitleTrack?: MediaPlaylist; +} + +// Warning: (ae-missing-release-tag) "NonNativeTextTracksData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface NonNativeTextTracksData { + // (undocumented) + tracks: Array; +} + +// Warning: (ae-missing-release-tag) "Part" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class Part extends BaseSegment { + constructor( + partAttrs: AttrList, + frag: Fragment, + baseurl: string, + index: number, + previous?: Part + ); + // (undocumented) + readonly duration: number; + // (undocumented) + get end(): number; + // (undocumented) + readonly fragment: Fragment; + // (undocumented) + readonly fragOffset: number; + // (undocumented) + readonly gap: boolean; + // (undocumented) + readonly independent: boolean; + // (undocumented) + readonly index: number; + // (undocumented) + get loaded(): boolean; + // (undocumented) + readonly relurl: string; + // (undocumented) + get start(): number; + // (undocumented) + stats: LoadStats; +} + +// Warning: (ae-missing-release-tag) "PlaylistContextType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export enum PlaylistContextType { + // (undocumented) + AUDIO_TRACK = 'audioTrack', + // (undocumented) + LEVEL = 'level', + // (undocumented) + MANIFEST = 'manifest', + // (undocumented) + SUBTITLE_TRACK = 'subtitleTrack', +} + +// Warning: (ae-missing-release-tag) "PlaylistLevelType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export enum PlaylistLevelType { + // (undocumented) + AUDIO = 'audio', + // (undocumented) + MAIN = 'main', + // (undocumented) + SUBTITLE = 'subtitle', +} + +// Warning: (ae-missing-release-tag) "PlaylistLoaderConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type PlaylistLoaderConfig = { + pLoader?: { + new (confg: HlsConfig): Loader; + }; + manifestLoadingTimeOut: number; + manifestLoadingMaxRetry: number; + manifestLoadingRetryDelay: number; + manifestLoadingMaxRetryTimeout: number; + levelLoadingTimeOut: number; + levelLoadingMaxRetry: number; + levelLoadingRetryDelay: number; + levelLoadingMaxRetryTimeout: number; +}; + +// Warning: (ae-missing-release-tag) "PlaylistLoaderContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface PlaylistLoaderContext extends LoaderContext { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + groupId: string | null; + // (undocumented) + id: number | null; + // (undocumented) + isSidxRequest?: boolean; + // (undocumented) + level: number | null; + // (undocumented) + levelDetails?: LevelDetails; + // (undocumented) + loader?: Loader; + // (undocumented) + type: PlaylistContextType; +} + +// Warning: (ae-missing-release-tag) "SourceBufferName" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type SourceBufferName = 'video' | 'audio' | 'audiovideo'; + +// Warning: (ae-missing-release-tag) "StreamControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type StreamControllerConfig = { + autoStartLoad: boolean; + startPosition: number; + defaultAudioCodec?: string; + initialLiveManifestSize: number; + maxBufferLength: number; + maxBufferSize: number; + maxBufferHole: number; + highBufferWatchdogPeriod: number; + nudgeOffset: number; + nudgeMaxRetry: number; + maxFragLookUpTolerance: number; + maxMaxBufferLength: number; + startFragPrefetch: boolean; + testBandwidth: boolean; +}; + +// Warning: (ae-missing-release-tag) "SubtitleFragProcessedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface SubtitleFragProcessedData { + // (undocumented) + error?: Error; + // (undocumented) + frag: Fragment; + // (undocumented) + success: boolean; +} + +// Warning: (ae-missing-release-tag) "SubtitlePlaylistType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type SubtitlePlaylistType = 'SUBTITLES' | 'CLOSED-CAPTIONS'; + +// Warning: (ae-missing-release-tag) "SubtitleTrackLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface SubtitleTrackLoadedData extends TrackLoadedData {} + +// Warning: (ae-missing-release-tag) "SubtitleTracksUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface SubtitleTracksUpdatedData { + // (undocumented) + subtitleTracks: MediaPlaylist[]; +} + +// Warning: (ae-missing-release-tag) "SubtitleTrackSwitchData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface SubtitleTrackSwitchData { + // (undocumented) + id: number; + // (undocumented) + type?: MediaPlaylistType | 'main'; + // (undocumented) + url?: string; +} + +// Warning: (ae-missing-release-tag) "TimelineControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type TimelineControllerConfig = { + cueHandler: CuesInterface; + enableCEA708Captions: boolean; + enableWebVTT: boolean; + enableIMSC1: boolean; + captionsTextTrack1Label: string; + captionsTextTrack1LanguageCode: string; + captionsTextTrack2Label: string; + captionsTextTrack2LanguageCode: string; + captionsTextTrack3Label: string; + captionsTextTrack3LanguageCode: string; + captionsTextTrack4Label: string; + captionsTextTrack4LanguageCode: string; + renderTextTracksNatively: boolean; +}; + +// Warning: (ae-missing-release-tag) "Track" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface Track { + // (undocumented) + buffer?: SourceBuffer; + // (undocumented) + codec?: string; + // (undocumented) + container: string; + // (undocumented) + id: 'audio' | 'main'; + // (undocumented) + initSegment?: Uint8Array; + // (undocumented) + levelCodec?: string; + // (undocumented) + metadata?: any; +} + +// Warning: (ae-missing-release-tag) "TrackLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface TrackLoadedData { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + details: LevelDetails; + // (undocumented) + groupId: string; + // (undocumented) + id: number; + // (undocumented) + networkDetails: any; + // (undocumented) + stats: LoaderStats; +} + +// Warning: (ae-missing-release-tag) "TrackLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface TrackLoadingData { + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + groupId: string; + // (undocumented) + id: number; + // (undocumented) + url: string; +} + +// Warning: (ae-missing-release-tag) "TrackSet" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface TrackSet { + // (undocumented) + audio?: Track; + // (undocumented) + audiovideo?: Track; + // (undocumented) + video?: Track; +} + +// Warning: (ae-missing-release-tag) "TSDemuxerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type TSDemuxerConfig = { + forceKeyFrameOnDiscontinuity: boolean; +}; + +// Warning: (ae-missing-release-tag) "UserdataSample" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface UserdataSample { + // (undocumented) + bytes: Uint8Array; + // (undocumented) + pts: number; +} + +// Warnings were encountered during analysis: +// +// src/config.ts:153:3 - (ae-forgotten-export) The symbol "AudioStreamController" needs to be exported by the entry point hls.d.ts +// src/config.ts:154:3 - (ae-forgotten-export) The symbol "AudioTrackController" needs to be exported by the entry point hls.d.ts +// src/config.ts:156:3 - (ae-forgotten-export) The symbol "SubtitleStreamController" needs to be exported by the entry point hls.d.ts +// src/config.ts:157:3 - (ae-forgotten-export) The symbol "SubtitleTrackController" needs to be exported by the entry point hls.d.ts +// src/config.ts:158:3 - (ae-forgotten-export) The symbol "TimelineController" needs to be exported by the entry point hls.d.ts +// src/config.ts:160:3 - (ae-forgotten-export) The symbol "EMEController" needs to be exported by the entry point hls.d.ts +// src/config.ts:162:3 - (ae-forgotten-export) The symbol "AbrController" needs to be exported by the entry point hls.d.ts +// src/config.ts:163:3 - (ae-forgotten-export) The symbol "BufferController" needs to be exported by the entry point hls.d.ts +// src/config.ts:164:3 - (ae-forgotten-export) The symbol "CapLevelController" needs to be exported by the entry point hls.d.ts +// src/config.ts:165:3 - (ae-forgotten-export) The symbol "FPSController" needs to be exported by the entry point hls.d.ts + +// (No @packageDocumentation comment for this package) +``` From 4d08cd2a94632be26137442741a6c74357403fd2 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:24:14 +0000 Subject: [PATCH 054/327] fix comment warning --- .prettierignore | 2 +- api-extractor/report/hls.js.api.md | 3343 +++++++++---------- src/controller/subtitle-track-controller.ts | 3 +- 3 files changed, 1551 insertions(+), 1797 deletions(-) diff --git a/.prettierignore b/.prettierignore index 892d98f2cda..4415419ddc1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,4 +3,4 @@ package-lock.json /coverage libs/ -docs/hls.js.api.md +api-extractor/report* diff --git a/api-extractor/report/hls.js.api.md b/api-extractor/report/hls.js.api.md index 968c369c873..66da72dd1a7 100644 --- a/api-extractor/report/hls.js.api.md +++ b/api-extractor/report/hls.js.api.md @@ -3,54 +3,51 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts + // Warning: (ae-missing-release-tag) "ABRControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type ABRControllerConfig = { - abrEwmaFastLive: number; - abrEwmaSlowLive: number; - abrEwmaFastVoD: number; - abrEwmaSlowVoD: number; - abrEwmaDefaultEstimate: number; - abrBandWidthFactor: number; - abrBandWidthUpFactor: number; - abrMaxWithRealBitrate: boolean; - maxStarvationDelay: number; - maxLoadingDelay: number; + abrEwmaFastLive: number; + abrEwmaSlowLive: number; + abrEwmaFastVoD: number; + abrEwmaSlowVoD: number; + abrEwmaDefaultEstimate: number; + abrBandWidthFactor: number; + abrBandWidthUpFactor: number; + abrMaxWithRealBitrate: boolean; + maxStarvationDelay: number; + maxLoadingDelay: number; }; // Warning: (ae-missing-release-tag) "AttrList" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class AttrList { - constructor(attrs: string | Record); - // (undocumented) - [key: string]: any; - // (undocumented) - bool(attrName: string): boolean; - // (undocumented) - decimalFloatingPoint(attrName: string): number; - // (undocumented) - decimalInteger(attrName: string): number; - // (undocumented) - decimalResolution( - attrName: string - ): - | { + constructor(attrs: string | Record); + // (undocumented) + [key: string]: any; + // (undocumented) + bool(attrName: string): boolean; + // (undocumented) + decimalFloatingPoint(attrName: string): number; + // (undocumented) + decimalInteger(attrName: string): number; + // (undocumented) + decimalResolution(attrName: string): { width: number; height: number; - } - | undefined; - // (undocumented) - enumeratedString(attrName: string): string | undefined; - // (undocumented) - hexadecimalInteger(attrName: string): Uint8Array | null; - // (undocumented) - hexadecimalIntegerAsNumber(attrName: string): number; - // (undocumented) - optionalFloat(attrName: string, defaultValue: number): number; - // (undocumented) - static parseAttrList(input: string): Record; + } | undefined; + // (undocumented) + enumeratedString(attrName: string): string | undefined; + // (undocumented) + hexadecimalInteger(attrName: string): Uint8Array | null; + // (undocumented) + hexadecimalIntegerAsNumber(attrName: string): number; + // (undocumented) + optionalFloat(attrName: string, defaultValue: number): number; + // (undocumented) + static parseAttrList(input: string): Record; } // Warning: (ae-missing-release-tag) "AudioPlaylistType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -61,316 +58,302 @@ export type AudioPlaylistType = 'AUDIO'; // Warning: (ae-missing-release-tag) "AudioTrackLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export interface AudioTrackLoadedData extends TrackLoadedData {} +export interface AudioTrackLoadedData extends TrackLoadedData { +} // Warning: (ae-missing-release-tag) "AudioTracksUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface AudioTracksUpdatedData { - // (undocumented) - audioTracks: MediaPlaylist[]; + // (undocumented) + audioTracks: MediaPlaylist[]; } // Warning: (ae-missing-release-tag) "AudioTrackSwitchedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface AudioTrackSwitchedData { - // (undocumented) - id: number; + // (undocumented) + id: number; } // Warning: (ae-missing-release-tag) "AudioTrackSwitchingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface AudioTrackSwitchingData { - // (undocumented) - id: number; - // (undocumented) - type: MediaPlaylistType | 'main'; - // (undocumented) - url: string; + // (undocumented) + id: number; + // (undocumented) + type: MediaPlaylistType | 'main'; + // (undocumented) + url: string; } // Warning: (ae-missing-release-tag) "BaseSegment" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class BaseSegment { - constructor(baseurl: string); - // (undocumented) - readonly baseurl: string; - // (undocumented) - get byteRange(): number[]; - // (undocumented) - get byteRangeEndOffset(): number; - // (undocumented) - get byteRangeStartOffset(): number; - // (undocumented) - elementaryStreams: ElementaryStreams; - // (undocumented) - relurl?: string; - // (undocumented) - setByteRange(value: string, previous?: BaseSegment): void; - // (undocumented) - get url(): string; - set url(value: string); -} + constructor(baseurl: string); + // (undocumented) + readonly baseurl: string; + // (undocumented) + get byteRange(): number[]; + // (undocumented) + get byteRangeEndOffset(): number; + // (undocumented) + get byteRangeStartOffset(): number; + // (undocumented) + elementaryStreams: ElementaryStreams; + // (undocumented) + relurl?: string; + // (undocumented) + setByteRange(value: string, previous?: BaseSegment): void; + // (undocumented) + get url(): string; + set url(value: string); + } // Warning: (ae-missing-release-tag) "BufferAppendedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface BufferAppendedData { - // (undocumented) - chunkMeta: ChunkMetadata; - // (undocumented) - frag: Fragment; - // (undocumented) - parent: PlaylistLevelType; - // (undocumented) - part: Part | null; - // (undocumented) - timeRanges: { - audio?: TimeRanges; - video?: TimeRanges; - audiovideo?: TimeRanges; - }; + // (undocumented) + chunkMeta: ChunkMetadata; + // (undocumented) + frag: Fragment; + // (undocumented) + parent: PlaylistLevelType; + // (undocumented) + part: Part | null; + // (undocumented) + timeRanges: { + audio?: TimeRanges; + video?: TimeRanges; + audiovideo?: TimeRanges; + }; } // Warning: (ae-missing-release-tag) "BufferAppendingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface BufferAppendingData { - // (undocumented) - chunkMeta: ChunkMetadata; - // (undocumented) - data: Uint8Array; - // (undocumented) - frag: Fragment; - // (undocumented) - part: Part | null; - // (undocumented) - type: SourceBufferName; + // (undocumented) + chunkMeta: ChunkMetadata; + // (undocumented) + data: Uint8Array; + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; + // (undocumented) + type: SourceBufferName; } // Warning: (ae-missing-release-tag) "BufferCodecsData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface BufferCodecsData { - // (undocumented) - audio?: Track; - // (undocumented) - video?: Track; + // (undocumented) + audio?: Track; + // (undocumented) + video?: Track; } // Warning: (ae-missing-release-tag) "BufferControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type BufferControllerConfig = { - appendErrorMaxRetry: number; - liveDurationInfinity: boolean; - liveBackBufferLength: number; + appendErrorMaxRetry: number; + liveDurationInfinity: boolean; + liveBackBufferLength: number; }; // Warning: (ae-missing-release-tag) "BufferCreatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface BufferCreatedData { - // (undocumented) - tracks: TrackSet; + // (undocumented) + tracks: TrackSet; } // Warning: (ae-missing-release-tag) "BufferEOSData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface BufferEOSData { - // (undocumented) - type?: SourceBufferName; + // (undocumented) + type?: SourceBufferName; } // Warning: (ae-missing-release-tag) "BufferFlushedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface BufferFlushedData { - // (undocumented) - type: SourceBufferName; + // (undocumented) + type: SourceBufferName; } // Warning: (ae-missing-release-tag) "BufferFlushingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface BufferFlushingData { - // (undocumented) - endOffset: number; - // (undocumented) - startOffset: number; - // (undocumented) - type: SourceBufferName | null; + // (undocumented) + endOffset: number; + // (undocumented) + startOffset: number; + // (undocumented) + type: SourceBufferName | null; } // Warning: (ae-missing-release-tag) "CapLevelControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type CapLevelControllerConfig = { - capLevelToPlayerSize: boolean; + capLevelToPlayerSize: boolean; }; // Warning: (ae-missing-release-tag) "ChunkMetadata" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class ChunkMetadata { - constructor( - level: number, - sn: number, - id: number, - size?: number, - part?: number, - partial?: boolean - ); - // (undocumented) - readonly buffering: { - [key in SourceBufferName]: HlsChunkPerformanceTiming; - }; - // (undocumented) - readonly id: number; - // (undocumented) - readonly level: number; - // (undocumented) - readonly part: number; - // (undocumented) - readonly partial: boolean; - // (undocumented) - readonly size: number; - // (undocumented) - readonly sn: number; - // (undocumented) - readonly transmuxing: HlsChunkPerformanceTiming; + constructor(level: number, sn: number, id: number, size?: number, part?: number, partial?: boolean); + // (undocumented) + readonly buffering: { + [key in SourceBufferName]: HlsChunkPerformanceTiming; + }; + // (undocumented) + readonly id: number; + // (undocumented) + readonly level: number; + // (undocumented) + readonly part: number; + // (undocumented) + readonly partial: boolean; + // (undocumented) + readonly size: number; + // (undocumented) + readonly sn: number; + // (undocumented) + readonly transmuxing: HlsChunkPerformanceTiming; } // Warning: (ae-missing-release-tag) "CuesInterface" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface CuesInterface { - // Warning: (ae-forgotten-export) The symbol "CaptionScreen" needs to be exported by the entry point hls.d.ts - // - // (undocumented) - newCue( - track: TextTrack | null, - startTime: number, - endTime: number, - captionScreen: CaptionScreen - ): VTTCue[]; + // Warning: (ae-forgotten-export) The symbol "CaptionScreen" needs to be exported by the entry point hls.d.ts + // + // (undocumented) + newCue(track: TextTrack | null, startTime: number, endTime: number, captionScreen: CaptionScreen): VTTCue[]; } // Warning: (ae-missing-release-tag) "CuesParsedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface CuesParsedData { - // (undocumented) - cues: any; - // (undocumented) - track: string; - // (undocumented) - type: 'captions' | 'subtitles'; + // (undocumented) + cues: any; + // (undocumented) + track: string; + // (undocumented) + type: 'captions' | 'subtitles'; } // Warning: (ae-missing-release-tag) "DRMSystemOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type DRMSystemOptions = { - audioRobustness?: string; - videoRobustness?: string; + audioRobustness?: string; + videoRobustness?: string; }; // Warning: (ae-missing-release-tag) "ElementaryStreamInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface ElementaryStreamInfo { - // (undocumented) - endDTS: number; - // (undocumented) - endPTS: number; - // (undocumented) - partial?: boolean; - // (undocumented) - startDTS: number; - // (undocumented) - startPTS: number; + // (undocumented) + endDTS: number; + // (undocumented) + endPTS: number; + // (undocumented) + partial?: boolean; + // (undocumented) + startDTS: number; + // (undocumented) + startPTS: number; } // Warning: (ae-missing-release-tag) "ElementaryStreams" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type ElementaryStreams = Record< - ElementaryStreamTypes, - ElementaryStreamInfo | null ->; +export type ElementaryStreams = Record; // Warning: (ae-missing-release-tag) "ElementaryStreamTypes" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export enum ElementaryStreamTypes { - // (undocumented) - AUDIO = 'audio', - // (undocumented) - AUDIOVIDEO = 'audiovideo', - // (undocumented) - VIDEO = 'video', + // (undocumented) + AUDIO = "audio", + // (undocumented) + AUDIOVIDEO = "audiovideo", + // (undocumented) + VIDEO = "video" } // Warning: (ae-missing-release-tag) "EMEControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type EMEControllerConfig = { - licenseXhrSetup?: (xhr: XMLHttpRequest, url: string) => void; - emeEnabled: boolean; - widevineLicenseUrl?: string; - drmSystemOptions: DRMSystemOptions; - requestMediaKeySystemAccessFunc: MediaKeyFunc | null; + licenseXhrSetup?: (xhr: XMLHttpRequest, url: string) => void; + emeEnabled: boolean; + widevineLicenseUrl?: string; + drmSystemOptions: DRMSystemOptions; + requestMediaKeySystemAccessFunc: MediaKeyFunc | null; }; // Warning: (ae-missing-release-tag) "ErrorData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface ErrorData { - // (undocumented) - buffer?: number; - // (undocumented) - bytes?: number; - // (undocumented) - context?: PlaylistLoaderContext; - // (undocumented) - details: ErrorDetails; - // (undocumented) - err?: { - message: string; - }; - // (undocumented) - error?: Error; - // (undocumented) - event?: keyof HlsListeners | 'demuxerWorker'; - // (undocumented) - fatal: boolean; - // (undocumented) - frag?: Fragment; - // (undocumented) - level?: number | undefined; - // (undocumented) - levelRetry?: boolean; - // (undocumented) - loader?: Loader; - // (undocumented) - mimeType?: string; - // (undocumented) - networkDetails?: any; - // (undocumented) - parent?: PlaylistLevelType; - // (undocumented) - reason?: string; - // (undocumented) - response?: LoaderResponse; - // (undocumented) - type: ErrorTypes; - // (undocumented) - url?: string; + // (undocumented) + buffer?: number; + // (undocumented) + bytes?: number; + // (undocumented) + context?: PlaylistLoaderContext; + // (undocumented) + details: ErrorDetails; + // (undocumented) + err?: { + message: string; + }; + // (undocumented) + error?: Error; + // (undocumented) + event?: keyof HlsListeners | 'demuxerWorker'; + // (undocumented) + fatal: boolean; + // (undocumented) + frag?: Fragment; + // (undocumented) + level?: number | undefined; + // (undocumented) + levelRetry?: boolean; + // (undocumented) + loader?: Loader; + // (undocumented) + mimeType?: string; + // (undocumented) + networkDetails?: any; + // (undocumented) + parent?: PlaylistLevelType; + // (undocumented) + reason?: string; + // (undocumented) + response?: LoaderResponse; + // (undocumented) + type: ErrorTypes; + // (undocumented) + url?: string; } // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag @@ -383,90 +366,90 @@ export interface ErrorData { // // @public export enum ErrorDetails { - // (undocumented) - AUDIO_TRACK_LOAD_ERROR = 'audioTrackLoadError', - // (undocumented) - AUDIO_TRACK_LOAD_TIMEOUT = 'audioTrackLoadTimeOut', - // (undocumented) - BUFFER_ADD_CODEC_ERROR = 'bufferAddCodecError', - // (undocumented) - BUFFER_APPEND_ERROR = 'bufferAppendError', - // (undocumented) - BUFFER_APPENDING_ERROR = 'bufferAppendingError', - // (undocumented) - BUFFER_FULL_ERROR = 'bufferFullError', - // (undocumented) - BUFFER_NUDGE_ON_STALL = 'bufferNudgeOnStall', - // (undocumented) - BUFFER_SEEK_OVER_HOLE = 'bufferSeekOverHole', - // (undocumented) - BUFFER_STALLED_ERROR = 'bufferStalledError', - // (undocumented) - FRAG_DECRYPT_ERROR = 'fragDecryptError', - // (undocumented) - FRAG_LOAD_ERROR = 'fragLoadError', - // (undocumented) - FRAG_LOAD_TIMEOUT = 'fragLoadTimeOut', - // (undocumented) - FRAG_PARSING_ERROR = 'fragParsingError', - // (undocumented) - INTERNAL_ABORTED = 'aborted', - // (undocumented) - INTERNAL_EXCEPTION = 'internalException', - // (undocumented) - KEY_LOAD_ERROR = 'keyLoadError', - // (undocumented) - KEY_LOAD_TIMEOUT = 'keyLoadTimeOut', - // (undocumented) - KEY_SYSTEM_LICENSE_REQUEST_FAILED = 'keySystemLicenseRequestFailed', - // (undocumented) - KEY_SYSTEM_NO_ACCESS = 'keySystemNoAccess', - // (undocumented) - KEY_SYSTEM_NO_INIT_DATA = 'keySystemNoInitData', - // (undocumented) - KEY_SYSTEM_NO_KEYS = 'keySystemNoKeys', - // (undocumented) - KEY_SYSTEM_NO_SESSION = 'keySystemNoSession', - // (undocumented) - LEVEL_EMPTY_ERROR = 'levelEmptyError', - // (undocumented) - LEVEL_LOAD_ERROR = 'levelLoadError', - // (undocumented) - LEVEL_LOAD_TIMEOUT = 'levelLoadTimeOut', - // (undocumented) - LEVEL_SWITCH_ERROR = 'levelSwitchError', - // (undocumented) - MANIFEST_INCOMPATIBLE_CODECS_ERROR = 'manifestIncompatibleCodecsError', - // (undocumented) - MANIFEST_LOAD_ERROR = 'manifestLoadError', - // (undocumented) - MANIFEST_LOAD_TIMEOUT = 'manifestLoadTimeOut', - // (undocumented) - MANIFEST_PARSING_ERROR = 'manifestParsingError', - // (undocumented) - REMUX_ALLOC_ERROR = 'remuxAllocError', - // (undocumented) - SUBTITLE_LOAD_ERROR = 'subtitleTrackLoadError', - // (undocumented) - SUBTITLE_TRACK_LOAD_TIMEOUT = 'subtitleTrackLoadTimeOut', - // (undocumented) - UNKNOWN = 'unknown', + // (undocumented) + AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", + // (undocumented) + AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", + // (undocumented) + BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", + // (undocumented) + BUFFER_APPEND_ERROR = "bufferAppendError", + // (undocumented) + BUFFER_APPENDING_ERROR = "bufferAppendingError", + // (undocumented) + BUFFER_FULL_ERROR = "bufferFullError", + // (undocumented) + BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", + // (undocumented) + BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", + // (undocumented) + BUFFER_STALLED_ERROR = "bufferStalledError", + // (undocumented) + FRAG_DECRYPT_ERROR = "fragDecryptError", + // (undocumented) + FRAG_LOAD_ERROR = "fragLoadError", + // (undocumented) + FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", + // (undocumented) + FRAG_PARSING_ERROR = "fragParsingError", + // (undocumented) + INTERNAL_ABORTED = "aborted", + // (undocumented) + INTERNAL_EXCEPTION = "internalException", + // (undocumented) + KEY_LOAD_ERROR = "keyLoadError", + // (undocumented) + KEY_LOAD_TIMEOUT = "keyLoadTimeOut", + // (undocumented) + KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", + // (undocumented) + KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", + // (undocumented) + KEY_SYSTEM_NO_INIT_DATA = "keySystemNoInitData", + // (undocumented) + KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", + // (undocumented) + KEY_SYSTEM_NO_SESSION = "keySystemNoSession", + // (undocumented) + LEVEL_EMPTY_ERROR = "levelEmptyError", + // (undocumented) + LEVEL_LOAD_ERROR = "levelLoadError", + // (undocumented) + LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", + // (undocumented) + LEVEL_SWITCH_ERROR = "levelSwitchError", + // (undocumented) + MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", + // (undocumented) + MANIFEST_LOAD_ERROR = "manifestLoadError", + // (undocumented) + MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", + // (undocumented) + MANIFEST_PARSING_ERROR = "manifestParsingError", + // (undocumented) + REMUX_ALLOC_ERROR = "remuxAllocError", + // (undocumented) + SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError", + // (undocumented) + SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut", + // (undocumented) + UNKNOWN = "unknown" } // Warning: (ae-missing-release-tag) "ErrorTypes" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export enum ErrorTypes { - // (undocumented) - KEY_SYSTEM_ERROR = 'keySystemError', - // (undocumented) - MEDIA_ERROR = 'mediaError', - // (undocumented) - MUX_ERROR = 'muxError', - // (undocumented) - NETWORK_ERROR = 'networkError', - // (undocumented) - OTHER_ERROR = 'otherError', + // (undocumented) + KEY_SYSTEM_ERROR = "keySystemError", + // (undocumented) + MEDIA_ERROR = "mediaError", + // (undocumented) + MUX_ERROR = "muxError", + // (undocumented) + NETWORK_ERROR = "networkError", + // (undocumented) + OTHER_ERROR = "otherError" } // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag @@ -476,364 +459,355 @@ export enum ErrorTypes { // // @public export enum Events { - // (undocumented) - AUDIO_TRACK_LOADED = 'hlsAudioTrackLoaded', - // (undocumented) - AUDIO_TRACK_LOADING = 'hlsAudioTrackLoading', - // (undocumented) - AUDIO_TRACK_SWITCHED = 'hlsAudioTrackSwitched', - // (undocumented) - AUDIO_TRACK_SWITCHING = 'hlsAudioTrackSwitching', - // (undocumented) - AUDIO_TRACKS_UPDATED = 'hlsAudioTracksUpdated', - // (undocumented) - BUFFER_APPENDED = 'hlsBufferAppended', - // (undocumented) - BUFFER_APPENDING = 'hlsBufferAppending', - // (undocumented) - BUFFER_CODECS = 'hlsBufferCodecs', - // (undocumented) - BUFFER_CREATED = 'hlsBufferCreated', - // (undocumented) - BUFFER_EOS = 'hlsBufferEos', - // (undocumented) - BUFFER_FLUSHED = 'hlsBufferFlushed', - // (undocumented) - BUFFER_FLUSHING = 'hlsBufferFlushing', - // (undocumented) - BUFFER_RESET = 'hlsBufferReset', - // (undocumented) - CUES_PARSED = 'hlsCuesParsed', - // (undocumented) - DESTROYING = 'hlsDestroying', - // (undocumented) - ERROR = 'hlsError', - // (undocumented) - FPS_DROP = 'hlsFpsDrop', - // (undocumented) - FPS_DROP_LEVEL_CAPPING = 'hlsFpsDropLevelCapping', - // (undocumented) - FRAG_BUFFERED = 'hlsFragBuffered', - // (undocumented) - FRAG_CHANGED = 'hlsFragChanged', - // (undocumented) - FRAG_DECRYPTED = 'hlsFragDecrypted', - // (undocumented) - FRAG_LOAD_EMERGENCY_ABORTED = 'hlsFragLoadEmergencyAborted', - // (undocumented) - FRAG_LOADED = 'hlsFragLoaded', - // (undocumented) - FRAG_LOADING = 'hlsFragLoading', - // (undocumented) - FRAG_PARSED = 'hlsFragParsed', - // (undocumented) - FRAG_PARSING_INIT_SEGMENT = 'hlsFragParsingInitSegment', - // (undocumented) - FRAG_PARSING_METADATA = 'hlsFragParsingMetadata', - // (undocumented) - FRAG_PARSING_USERDATA = 'hlsFragParsingUserdata', - // (undocumented) - INIT_PTS_FOUND = 'hlsInitPtsFound', - // (undocumented) - KEY_LOADED = 'hlsKeyLoaded', - // (undocumented) - KEY_LOADING = 'hlsKeyLoading', - // (undocumented) - LEVEL_LOADED = 'hlsLevelLoaded', - // (undocumented) - LEVEL_LOADING = 'hlsLevelLoading', - // (undocumented) - LEVEL_PTS_UPDATED = 'hlsLevelPtsUpdated', - // (undocumented) - LEVEL_SWITCHED = 'hlsLevelSwitched', - // (undocumented) - LEVEL_SWITCHING = 'hlsLevelSwitching', - // (undocumented) - LEVEL_UPDATED = 'hlsLevelUpdated', - // (undocumented) - LEVELS_UPDATED = 'hlsLevelsUpdated', - // (undocumented) - LIVE_BACK_BUFFER_REACHED = 'hlsLiveBackBufferReached', - // (undocumented) - MANIFEST_LOADED = 'hlsManifestLoaded', - // (undocumented) - MANIFEST_LOADING = 'hlsManifestLoading', - // (undocumented) - MANIFEST_PARSED = 'hlsManifestParsed', - // (undocumented) - MEDIA_ATTACHED = 'hlsMediaAttached', - // (undocumented) - MEDIA_ATTACHING = 'hlsMediaAttaching', - // (undocumented) - MEDIA_DETACHED = 'hlsMediaDetached', - // (undocumented) - MEDIA_DETACHING = 'hlsMediaDetaching', - // (undocumented) - NON_NATIVE_TEXT_TRACKS_FOUND = 'hlsNonNativeTextTracksFound', - // (undocumented) - SUBTITLE_FRAG_PROCESSED = 'hlsSubtitleFragProcessed', - // (undocumented) - SUBTITLE_TRACK_LOADED = 'hlsSubtitleTrackLoaded', - // (undocumented) - SUBTITLE_TRACK_LOADING = 'hlsSubtitleTrackLoading', - // (undocumented) - SUBTITLE_TRACK_SWITCH = 'hlsSubtitleTrackSwitch', - // (undocumented) - SUBTITLE_TRACKS_CLEARED = 'hlsSubtitleTracksCleared', - // (undocumented) - SUBTITLE_TRACKS_UPDATED = 'hlsSubtitleTracksUpdated', + // (undocumented) + AUDIO_TRACK_LOADED = "hlsAudioTrackLoaded", + // (undocumented) + AUDIO_TRACK_LOADING = "hlsAudioTrackLoading", + // (undocumented) + AUDIO_TRACK_SWITCHED = "hlsAudioTrackSwitched", + // (undocumented) + AUDIO_TRACK_SWITCHING = "hlsAudioTrackSwitching", + // (undocumented) + AUDIO_TRACKS_UPDATED = "hlsAudioTracksUpdated", + // (undocumented) + BUFFER_APPENDED = "hlsBufferAppended", + // (undocumented) + BUFFER_APPENDING = "hlsBufferAppending", + // (undocumented) + BUFFER_CODECS = "hlsBufferCodecs", + // (undocumented) + BUFFER_CREATED = "hlsBufferCreated", + // (undocumented) + BUFFER_EOS = "hlsBufferEos", + // (undocumented) + BUFFER_FLUSHED = "hlsBufferFlushed", + // (undocumented) + BUFFER_FLUSHING = "hlsBufferFlushing", + // (undocumented) + BUFFER_RESET = "hlsBufferReset", + // (undocumented) + CUES_PARSED = "hlsCuesParsed", + // (undocumented) + DESTROYING = "hlsDestroying", + // (undocumented) + ERROR = "hlsError", + // (undocumented) + FPS_DROP = "hlsFpsDrop", + // (undocumented) + FPS_DROP_LEVEL_CAPPING = "hlsFpsDropLevelCapping", + // (undocumented) + FRAG_BUFFERED = "hlsFragBuffered", + // (undocumented) + FRAG_CHANGED = "hlsFragChanged", + // (undocumented) + FRAG_DECRYPTED = "hlsFragDecrypted", + // (undocumented) + FRAG_LOAD_EMERGENCY_ABORTED = "hlsFragLoadEmergencyAborted", + // (undocumented) + FRAG_LOADED = "hlsFragLoaded", + // (undocumented) + FRAG_LOADING = "hlsFragLoading", + // (undocumented) + FRAG_PARSED = "hlsFragParsed", + // (undocumented) + FRAG_PARSING_INIT_SEGMENT = "hlsFragParsingInitSegment", + // (undocumented) + FRAG_PARSING_METADATA = "hlsFragParsingMetadata", + // (undocumented) + FRAG_PARSING_USERDATA = "hlsFragParsingUserdata", + // (undocumented) + INIT_PTS_FOUND = "hlsInitPtsFound", + // (undocumented) + KEY_LOADED = "hlsKeyLoaded", + // (undocumented) + KEY_LOADING = "hlsKeyLoading", + // (undocumented) + LEVEL_LOADED = "hlsLevelLoaded", + // (undocumented) + LEVEL_LOADING = "hlsLevelLoading", + // (undocumented) + LEVEL_PTS_UPDATED = "hlsLevelPtsUpdated", + // (undocumented) + LEVEL_SWITCHED = "hlsLevelSwitched", + // (undocumented) + LEVEL_SWITCHING = "hlsLevelSwitching", + // (undocumented) + LEVEL_UPDATED = "hlsLevelUpdated", + // (undocumented) + LEVELS_UPDATED = "hlsLevelsUpdated", + // (undocumented) + LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached", + // (undocumented) + MANIFEST_LOADED = "hlsManifestLoaded", + // (undocumented) + MANIFEST_LOADING = "hlsManifestLoading", + // (undocumented) + MANIFEST_PARSED = "hlsManifestParsed", + // (undocumented) + MEDIA_ATTACHED = "hlsMediaAttached", + // (undocumented) + MEDIA_ATTACHING = "hlsMediaAttaching", + // (undocumented) + MEDIA_DETACHED = "hlsMediaDetached", + // (undocumented) + MEDIA_DETACHING = "hlsMediaDetaching", + // (undocumented) + NON_NATIVE_TEXT_TRACKS_FOUND = "hlsNonNativeTextTracksFound", + // (undocumented) + SUBTITLE_FRAG_PROCESSED = "hlsSubtitleFragProcessed", + // (undocumented) + SUBTITLE_TRACK_LOADED = "hlsSubtitleTrackLoaded", + // (undocumented) + SUBTITLE_TRACK_LOADING = "hlsSubtitleTrackLoading", + // (undocumented) + SUBTITLE_TRACK_SWITCH = "hlsSubtitleTrackSwitch", + // (undocumented) + SUBTITLE_TRACKS_CLEARED = "hlsSubtitleTracksCleared", + // (undocumented) + SUBTITLE_TRACKS_UPDATED = "hlsSubtitleTracksUpdated" } // Warning: (ae-missing-release-tag) "FPSControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type FPSControllerConfig = { - capLevelOnFPSDrop: boolean; - fpsDroppedMonitoringPeriod: number; - fpsDroppedMonitoringThreshold: number; + capLevelOnFPSDrop: boolean; + fpsDroppedMonitoringPeriod: number; + fpsDroppedMonitoringThreshold: number; }; // Warning: (ae-missing-release-tag) "FPSDropData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FPSDropData { - // (undocumented) - currentDecoded: number; - // (undocumented) - currentDropped: number; - // (undocumented) - totalDroppedFrames: number; + // (undocumented) + currentDecoded: number; + // (undocumented) + currentDropped: number; + // (undocumented) + totalDroppedFrames: number; } // Warning: (ae-missing-release-tag) "FPSDropLevelCappingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FPSDropLevelCappingData { - // (undocumented) - droppedLevel: number; - // (undocumented) - level: number; + // (undocumented) + droppedLevel: number; + // (undocumented) + level: number; } // Warning: (ae-missing-release-tag) "FragBufferedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragBufferedData { - // (undocumented) - frag: Fragment; - // (undocumented) - id: string; - // (undocumented) - part: Part | null; - // (undocumented) - stats: LoadStats; + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + part: Part | null; + // (undocumented) + stats: LoadStats; } // Warning: (ae-missing-release-tag) "FragChangedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragChangedData { - // (undocumented) - frag: Fragment; + // (undocumented) + frag: Fragment; } // Warning: (ae-missing-release-tag) "FragDecryptedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragDecryptedData { - // (undocumented) - frag: Fragment; - // (undocumented) - payload: ArrayBuffer; - // (undocumented) - stats: { - tstart: number; - tdecrypt: number; - }; + // (undocumented) + frag: Fragment; + // (undocumented) + payload: ArrayBuffer; + // (undocumented) + stats: { + tstart: number; + tdecrypt: number; + }; } // Warning: (ae-missing-release-tag) "FragLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragLoadedData { - // (undocumented) - frag: Fragment; - // (undocumented) - networkDetails: unknown; - // (undocumented) - part: Part | null; - // (undocumented) - payload: ArrayBuffer; + // (undocumented) + frag: Fragment; + // (undocumented) + networkDetails: unknown; + // (undocumented) + part: Part | null; + // (undocumented) + payload: ArrayBuffer; } // Warning: (ae-missing-release-tag) "FragLoadEmergencyAbortedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragLoadEmergencyAbortedData { - // (undocumented) - frag: Fragment; - // (undocumented) - part: Part | null; - // (undocumented) - stats: LoaderStats; + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; + // (undocumented) + stats: LoaderStats; } // Warning: (ae-missing-release-tag) "FragLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragLoadingData { - // (undocumented) - frag: Fragment; - // (undocumented) - part?: Part; - // (undocumented) - targetBufferTime: number | null; + // (undocumented) + frag: Fragment; + // (undocumented) + part?: Part; + // (undocumented) + targetBufferTime: number | null; } // Warning: (ae-missing-release-tag) "Fragment" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class Fragment extends BaseSegment { - constructor(type: PlaylistLevelType, baseurl: string); - // (undocumented) - appendedPTS?: number; - // (undocumented) - bitrateTest: boolean; - // (undocumented) - cc: number; - // (undocumented) - clearElementaryStreamInfo(): void; - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - createInitializationVector(segmentNumber: number): Uint8Array; - // (undocumented) - data?: Uint8Array; - // (undocumented) - get decryptdata(): LevelKey | null; - // (undocumented) - deltaPTS?: number; - // (undocumented) - duration: number; - // (undocumented) - get encrypted(): boolean; - // (undocumented) - get end(): number; - // (undocumented) - endDTS: number; - // (undocumented) - get endProgramDateTime(): number | null; - // (undocumented) - endPTS?: number; - // (undocumented) - level: number; - // (undocumented) - levelkey?: LevelKey; - // (undocumented) - loader: Loader | null; - // (undocumented) - maxStartPTS?: number; - // (undocumented) - minEndPTS?: number; - // (undocumented) - programDateTime: number | null; - // (undocumented) - rawProgramDateTime: string | null; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - setDecryptDataFromLevelKey( - levelkey: LevelKey, - segmentNumber: number - ): LevelKey; - // (undocumented) - setElementaryStreamInfo( - type: ElementaryStreamTypes, - startPTS: number, - endPTS: number, - startDTS: number, - endDTS: number, - partial?: boolean - ): void; - // (undocumented) - sn: number | 'initSegment'; - // (undocumented) - start: number; - // (undocumented) - startDTS: number; - // (undocumented) - startPTS?: number; - // (undocumented) - stats: LoadStats; - // (undocumented) - tagList: Array; - // (undocumented) - title: string | null; - // (undocumented) - readonly type: PlaylistLevelType; - // (undocumented) - urlId: number; + constructor(type: PlaylistLevelType, baseurl: string); + // (undocumented) + appendedPTS?: number; + // (undocumented) + bitrateTest: boolean; + // (undocumented) + cc: number; + // (undocumented) + clearElementaryStreamInfo(): void; + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + createInitializationVector(segmentNumber: number): Uint8Array; + // (undocumented) + data?: Uint8Array; + // (undocumented) + get decryptdata(): LevelKey | null; + // (undocumented) + deltaPTS?: number; + // (undocumented) + duration: number; + // (undocumented) + get encrypted(): boolean; + // (undocumented) + get end(): number; + // (undocumented) + endDTS: number; + // (undocumented) + get endProgramDateTime(): number | null; + // (undocumented) + endPTS?: number; + // (undocumented) + level: number; + // (undocumented) + levelkey?: LevelKey; + // (undocumented) + loader: Loader | null; + // (undocumented) + maxStartPTS?: number; + // (undocumented) + minEndPTS?: number; + // (undocumented) + programDateTime: number | null; + // (undocumented) + rawProgramDateTime: string | null; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + setDecryptDataFromLevelKey(levelkey: LevelKey, segmentNumber: number): LevelKey; + // (undocumented) + setElementaryStreamInfo(type: ElementaryStreamTypes, startPTS: number, endPTS: number, startDTS: number, endDTS: number, partial?: boolean): void; + // (undocumented) + sn: number | 'initSegment'; + // (undocumented) + start: number; + // (undocumented) + startDTS: number; + // (undocumented) + startPTS?: number; + // (undocumented) + stats: LoadStats; + // (undocumented) + tagList: Array; + // (undocumented) + title: string | null; + // (undocumented) + readonly type: PlaylistLevelType; + // (undocumented) + urlId: number; } // Warning: (ae-missing-release-tag) "FragmentLoaderConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type FragmentLoaderConfig = { - fLoader?: { - new (confg: HlsConfig): Loader; - }; - fragLoadingTimeOut: number; - fragLoadingMaxRetry: number; - fragLoadingRetryDelay: number; - fragLoadingMaxRetryTimeout: number; + fLoader?: { + new (confg: HlsConfig): Loader; + }; + fragLoadingTimeOut: number; + fragLoadingMaxRetry: number; + fragLoadingRetryDelay: number; + fragLoadingMaxRetryTimeout: number; }; // Warning: (ae-missing-release-tag) "FragmentLoaderContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragmentLoaderContext extends LoaderContext { - // (undocumented) - frag: Fragment; - // (undocumented) - part: Part | null; + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; } // Warning: (ae-missing-release-tag) "FragParsedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragParsedData { - // (undocumented) - frag: Fragment; - // (undocumented) - part: Part | null; + // (undocumented) + frag: Fragment; + // (undocumented) + part: Part | null; } // Warning: (ae-missing-release-tag) "FragParsingInitSegmentData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export interface FragParsingInitSegmentData {} +export interface FragParsingInitSegmentData { +} // Warning: (ae-missing-release-tag) "FragParsingMetadataData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragParsingMetadataData { - // (undocumented) - frag: Fragment; - // (undocumented) - id: string; - // (undocumented) - samples: MetadataSample[]; + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + samples: MetadataSample[]; } // Warning: (ae-missing-release-tag) "FragParsingUserdataData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface FragParsingUserdataData { - // (undocumented) - frag: Fragment; - // (undocumented) - id: string; - // (undocumented) - samples: UserdataSample[]; + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + samples: UserdataSample[]; } // Warning: (tsdoc-undefined-tag) The TSDoc tag "@module" is not defined in this configuration @@ -843,265 +817,241 @@ export interface FragParsingUserdataData { // // @public class Hls implements HlsEventEmitter { - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@constructs" is not defined in this configuration - // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' - constructor(userConfig?: Partial); - // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' - attachMedia(media: HTMLMediaElement): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get audioTrack(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "audioTrack" must appear on the getter, not the setter. - set audioTrack(audioTrackId: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get audioTracks(): Array; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get autoLevelCapping(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "autoLevelCapping" must appear on the getter, not the setter. - set autoLevelCapping(newLevel: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get autoLevelEnabled(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get bandwidthEstimate(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get capLevelToPlayerSize(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "capLevelToPlayerSize" must appear on the getter, not the setter. - set capLevelToPlayerSize(shouldStartCapping: boolean); - // (undocumented) - readonly config: HlsConfig; - // (undocumented) - createController( - ControllerClass: any, - fragmentTracker: any, - components: any - ): any; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get currentLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "currentLevel" must appear on the getter, not the setter. - set currentLevel(newLevel: number); - // (undocumented) - static get DefaultConfig(): HlsConfig; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "DefaultConfig" must appear on the getter, not the setter. - static set DefaultConfig(defaultConfig: HlsConfig); - destroy(): void; - detachMedia(): void; - // (undocumented) - emit( - event: E, - name: E, - eventObject: Parameters[1] - ): boolean; - // (undocumented) - static get ErrorDetails(): typeof ErrorDetails; - // (undocumented) - static get ErrorTypes(): typeof ErrorTypes; - // (undocumented) - static get Events(): typeof Events; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get firstLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "firstLevel" must appear on the getter, not the setter. - set firstLevel(newLevel: number); - // (undocumented) - static isSupported(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get latency(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get levels(): Array; - // (undocumented) - listenerCount(event: E): number; - // (undocumented) - listeners(event: E): HlsListeners[E][]; - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get liveSyncPosition(): number | null; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get loadLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "loadLevel" must appear on the getter, not the setter. - set loadLevel(newLevel: number); - // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' - loadSource(url: string): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get lowLatencyMode(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "lowLatencyMode" must appear on the getter, not the setter. - set lowLatencyMode(mode: boolean); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get manualLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get maxAutoLevel(): number; - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get maxLatency(): number; - // (undocumented) - get media(): HTMLMediaElement | null; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get minAutoLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get nextAutoLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "nextAutoLevel" must appear on the getter, not the setter. - set nextAutoLevel(nextLevel: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get nextLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "nextLevel" must appear on the getter, not the setter. - set nextLevel(newLevel: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get nextLoadLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "nextLoadLevel" must appear on the getter, not the setter. - set nextLoadLevel(level: number); - // (undocumented) - off( - event: E, - listener?: HlsListeners[E] | undefined, - context?: Context, - once?: boolean | undefined - ): void; - // (undocumented) - on( - event: E, - listener: HlsListeners[E], - context?: Context - ): void; - // (undocumented) - once( - event: E, - listener: HlsListeners[E], - context?: Context - ): void; - recoverMediaError(): void; - // (undocumented) - removeAllListeners(event?: E | undefined): void; - // (undocumented) - removeLevel(levelIndex: any, urlId?: number): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get startLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "startLevel" must appear on the getter, not the setter. - set startLevel(newLevel: number); - // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@default" is not defined in this configuration - startLoad(startPosition?: number): void; - stopLoad(): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get subtitleDisplay(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "subtitleDisplay" must appear on the getter, not the setter. - set subtitleDisplay(value: boolean); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get subtitleTrack(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - // Warning: (ae-setter-with-docs) The doc comment for the property "subtitleTrack" must appear on the getter, not the setter. - set subtitleTrack(subtitleTrackId: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get subtitleTracks(): Array; - swapAudioCodec(): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration - get targetLatency(): number | null; - // (undocumented) - trigger( - event: E, - eventObject: Parameters[1] - ): boolean; - // (undocumented) - readonly userConfig: Partial; - // (undocumented) - static get version(): string; + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@constructs" is not defined in this configuration + // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + constructor(userConfig?: Partial); + // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + attachMedia(media: HTMLMediaElement): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get audioTrack(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "audioTrack" must appear on the getter, not the setter. + set audioTrack(audioTrackId: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get audioTracks(): Array; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get autoLevelCapping(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "autoLevelCapping" must appear on the getter, not the setter. + set autoLevelCapping(newLevel: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get autoLevelEnabled(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get bandwidthEstimate(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get capLevelToPlayerSize(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "capLevelToPlayerSize" must appear on the getter, not the setter. + set capLevelToPlayerSize(shouldStartCapping: boolean); + // (undocumented) + readonly config: HlsConfig; + // (undocumented) + createController(ControllerClass: any, fragmentTracker: any, components: any): any; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get currentLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "currentLevel" must appear on the getter, not the setter. + set currentLevel(newLevel: number); + // (undocumented) + static get DefaultConfig(): HlsConfig; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "DefaultConfig" must appear on the getter, not the setter. + static set DefaultConfig(defaultConfig: HlsConfig); + destroy(): void; + detachMedia(): void; + // (undocumented) + emit(event: E, name: E, eventObject: Parameters[1]): boolean; + // (undocumented) + static get ErrorDetails(): typeof ErrorDetails; + // (undocumented) + static get ErrorTypes(): typeof ErrorTypes; + // (undocumented) + static get Events(): typeof Events; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get firstLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "firstLevel" must appear on the getter, not the setter. + set firstLevel(newLevel: number); + // (undocumented) + static isSupported(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get latency(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get levels(): Array; + // (undocumented) + listenerCount(event: E): number; + // (undocumented) + listeners(event: E): HlsListeners[E][]; + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get liveSyncPosition(): number | null; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get loadLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "loadLevel" must appear on the getter, not the setter. + set loadLevel(newLevel: number); + // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + loadSource(url: string): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get lowLatencyMode(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "lowLatencyMode" must appear on the getter, not the setter. + set lowLatencyMode(mode: boolean); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get manualLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get maxAutoLevel(): number; + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get maxLatency(): number; + // (undocumented) + get media(): HTMLMediaElement | null; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get minAutoLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get nextAutoLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "nextAutoLevel" must appear on the getter, not the setter. + set nextAutoLevel(nextLevel: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get nextLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "nextLevel" must appear on the getter, not the setter. + set nextLevel(newLevel: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get nextLoadLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "nextLoadLevel" must appear on the getter, not the setter. + set nextLoadLevel(level: number); + // (undocumented) + off(event: E, listener?: HlsListeners[E] | undefined, context?: Context, once?: boolean | undefined): void; + // (undocumented) + on(event: E, listener: HlsListeners[E], context?: Context): void; + // (undocumented) + once(event: E, listener: HlsListeners[E], context?: Context): void; + recoverMediaError(): void; + // (undocumented) + removeAllListeners(event?: E | undefined): void; + // (undocumented) + removeLevel(levelIndex: any, urlId?: number): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get startLevel(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "startLevel" must appear on the getter, not the setter. + set startLevel(newLevel: number); + // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen + // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@default" is not defined in this configuration + startLoad(startPosition?: number): void; + stopLoad(): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get subtitleDisplay(): boolean; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "subtitleDisplay" must appear on the getter, not the setter. + set subtitleDisplay(value: boolean); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get subtitleTrack(): number; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + // Warning: (ae-setter-with-docs) The doc comment for the property "subtitleTrack" must appear on the getter, not the setter. + set subtitleTrack(subtitleTrackId: number); + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get subtitleTracks(): Array; + swapAudioCodec(): void; + // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag + // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" + // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration + get targetLatency(): number | null; + // (undocumented) + trigger(event: E, eventObject: Parameters[1]): boolean; + // (undocumented) + readonly userConfig: Partial; + // (undocumented) + static get version(): string; } export default Hls; @@ -1110,406 +1060,243 @@ export default Hls; // // @public (undocumented) export interface HlsChunkPerformanceTiming extends HlsPerformanceTiming { - // (undocumented) - executeEnd: number; - // (undocumented) - executeStart: number; + // (undocumented) + executeEnd: number; + // (undocumented) + executeStart: number; } // Warning: (ae-missing-release-tag) "HlsConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type HlsConfig = { - debug: boolean; - enableWorker: boolean; - enableSoftwareAES: boolean; - minAutoBitrate: number; - loader: { - new (confg: HlsConfig): Loader; - }; - xhrSetup?: (xhr: XMLHttpRequest, url: string) => void; - audioStreamController?: typeof AudioStreamController; - audioTrackController?: typeof AudioTrackController; - subtitleStreamController?: typeof SubtitleStreamController; - subtitleTrackController?: typeof SubtitleTrackController; - timelineController?: typeof TimelineController; - emeController?: typeof EMEController; - abrController: typeof AbrController; - bufferController: typeof BufferController; - capLevelController: typeof CapLevelController; - fpsController: typeof FPSController; - progressive: boolean; - lowLatencyMode: boolean; -} & ABRControllerConfig & - BufferControllerConfig & - CapLevelControllerConfig & - EMEControllerConfig & - FPSControllerConfig & - FragmentLoaderConfig & - LevelControllerConfig & - MP4RemuxerConfig & - PlaylistLoaderConfig & - StreamControllerConfig & - LatencyControllerConfig & - TimelineControllerConfig & - TSDemuxerConfig; + debug: boolean; + enableWorker: boolean; + enableSoftwareAES: boolean; + minAutoBitrate: number; + loader: { + new (confg: HlsConfig): Loader; + }; + xhrSetup?: (xhr: XMLHttpRequest, url: string) => void; + audioStreamController?: typeof AudioStreamController; + audioTrackController?: typeof AudioTrackController; + subtitleStreamController?: typeof SubtitleStreamController; + subtitleTrackController?: typeof SubtitleTrackController; + timelineController?: typeof TimelineController; + emeController?: typeof EMEController; + abrController: typeof AbrController; + bufferController: typeof BufferController; + capLevelController: typeof CapLevelController; + fpsController: typeof FPSController; + progressive: boolean; + lowLatencyMode: boolean; +} & ABRControllerConfig & BufferControllerConfig & CapLevelControllerConfig & EMEControllerConfig & FPSControllerConfig & FragmentLoaderConfig & LevelControllerConfig & MP4RemuxerConfig & PlaylistLoaderConfig & StreamControllerConfig & LatencyControllerConfig & TimelineControllerConfig & TSDemuxerConfig; // Warning: (ae-missing-release-tag) "HlsEventEmitter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface HlsEventEmitter { - // (undocumented) - emit( - event: E, - name: E, - eventObject: Parameters[1] - ): boolean; - // (undocumented) - listenerCount(event: E): number; - // (undocumented) - listeners(event: E): HlsListeners[E][]; - // (undocumented) - off( - event: E, - listener?: HlsListeners[E], - context?: Context, - once?: boolean - ): void; - // (undocumented) - on( - event: E, - listener: HlsListeners[E], - context?: Context - ): void; - // (undocumented) - once( - event: E, - listener: HlsListeners[E], - context?: Context - ): void; - // (undocumented) - removeAllListeners(event?: E): void; + // (undocumented) + emit(event: E, name: E, eventObject: Parameters[1]): boolean; + // (undocumented) + listenerCount(event: E): number; + // (undocumented) + listeners(event: E): HlsListeners[E][]; + // (undocumented) + off(event: E, listener?: HlsListeners[E], context?: Context, once?: boolean): void; + // (undocumented) + on(event: E, listener: HlsListeners[E], context?: Context): void; + // (undocumented) + once(event: E, listener: HlsListeners[E], context?: Context): void; + // (undocumented) + removeAllListeners(event?: E): void; } // Warning: (ae-missing-release-tag) "HlsListeners" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface HlsListeners { - // (undocumented) - [Events.AUDIO_TRACK_LOADED]: ( - event: Events.AUDIO_TRACK_LOADED, - data: AudioTrackLoadedData - ) => void; - // (undocumented) - [Events.AUDIO_TRACK_LOADING]: ( - event: Events.AUDIO_TRACK_LOADING, - data: TrackLoadingData - ) => void; - // (undocumented) - [Events.AUDIO_TRACKS_UPDATED]: ( - event: Events.AUDIO_TRACKS_UPDATED, - data: AudioTracksUpdatedData - ) => void; - // (undocumented) - [Events.AUDIO_TRACK_SWITCHED]: ( - event: Events.AUDIO_TRACK_SWITCHED, - data: AudioTrackSwitchedData - ) => void; - // (undocumented) - [Events.AUDIO_TRACK_SWITCHING]: ( - event: Events.AUDIO_TRACK_SWITCHING, - data: AudioTrackSwitchingData - ) => void; - // (undocumented) - [Events.BUFFER_APPENDED]: ( - event: Events.BUFFER_APPENDED, - data: BufferAppendedData - ) => void; - // (undocumented) - [Events.BUFFER_APPENDING]: ( - event: Events.BUFFER_APPENDING, - data: BufferAppendingData - ) => void; - // (undocumented) - [Events.BUFFER_CODECS]: ( - event: Events.BUFFER_CODECS, - data: BufferCodecsData - ) => void; - // (undocumented) - [Events.BUFFER_CREATED]: ( - event: Events.BUFFER_CREATED, - data: BufferCreatedData - ) => void; - // (undocumented) - [Events.BUFFER_EOS]: (event: Events.BUFFER_EOS, data: BufferEOSData) => void; - // (undocumented) - [Events.BUFFER_FLUSHED]: ( - event: Events.BUFFER_FLUSHED, - data: BufferFlushedData - ) => void; - // (undocumented) - [Events.BUFFER_FLUSHING]: ( - event: Events.BUFFER_FLUSHING, - data: BufferFlushingData - ) => void; - // (undocumented) - [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void; - // (undocumented) - [Events.CUES_PARSED]: ( - event: Events.CUES_PARSED, - data: CuesParsedData - ) => void; - // (undocumented) - [Events.DESTROYING]: (event: Events.DESTROYING) => void; - // (undocumented) - [Events.ERROR]: (event: Events.ERROR, data: ErrorData) => void; - // (undocumented) - [Events.FPS_DROP]: (event: Events.FPS_DROP, data: FPSDropData) => void; - // (undocumented) - [Events.FPS_DROP_LEVEL_CAPPING]: ( - event: Events.FPS_DROP_LEVEL_CAPPING, - data: FPSDropLevelCappingData - ) => void; - // (undocumented) - [Events.FRAG_BUFFERED]: ( - event: Events.FRAG_BUFFERED, - data: FragBufferedData - ) => void; - // (undocumented) - [Events.FRAG_CHANGED]: ( - event: Events.FRAG_CHANGED, - data: FragChangedData - ) => void; - // (undocumented) - [Events.FRAG_DECRYPTED]: ( - event: Events.FRAG_DECRYPTED, - data: FragDecryptedData - ) => void; - // (undocumented) - [Events.FRAG_LOADED]: ( - event: Events.FRAG_LOADED, - data: FragLoadedData - ) => void; - // (undocumented) - [Events.FRAG_LOAD_EMERGENCY_ABORTED]: ( - event: Events.FRAG_LOAD_EMERGENCY_ABORTED, - data: FragLoadEmergencyAbortedData - ) => void; - // (undocumented) - [Events.FRAG_LOADING]: ( - event: Events.FRAG_LOADING, - data: FragLoadingData - ) => void; - // (undocumented) - [Events.FRAG_PARSED]: ( - event: Events.FRAG_PARSED, - data: FragParsedData - ) => void; - // (undocumented) - [Events.FRAG_PARSING_INIT_SEGMENT]: ( - event: Events.FRAG_PARSING_INIT_SEGMENT, - data: FragParsingInitSegmentData - ) => void; - // (undocumented) - [Events.FRAG_PARSING_METADATA]: ( - event: Events.FRAG_PARSING_METADATA, - data: FragParsingMetadataData - ) => void; - // (undocumented) - [Events.FRAG_PARSING_USERDATA]: ( - event: Events.FRAG_PARSING_USERDATA, - data: FragParsingUserdataData - ) => void; - // (undocumented) - [Events.INIT_PTS_FOUND]: ( - event: Events.INIT_PTS_FOUND, - data: InitPTSFoundData - ) => void; - // (undocumented) - [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void; - // (undocumented) - [Events.KEY_LOADING]: ( - event: Events.KEY_LOADING, - data: KeyLoadingData - ) => void; - // (undocumented) - [Events.LEVEL_LOADED]: ( - event: Events.LEVEL_LOADED, - data: LevelLoadedData - ) => void; - // (undocumented) - [Events.LEVEL_LOADING]: ( - event: Events.LEVEL_LOADING, - data: LevelLoadingData - ) => void; - // (undocumented) - [Events.LEVEL_PTS_UPDATED]: ( - event: Events.LEVEL_PTS_UPDATED, - data: LevelPTSUpdatedData - ) => void; - // (undocumented) - [Events.LEVELS_UPDATED]: ( - event: Events.LEVELS_UPDATED, - data: LevelsUpdatedData - ) => void; - // (undocumented) - [Events.LEVEL_SWITCHED]: ( - event: Events.LEVEL_SWITCHED, - data: LevelSwitchedData - ) => void; - // (undocumented) - [Events.LEVEL_SWITCHING]: ( - event: Events.LEVEL_SWITCHING, - data: LevelSwitchingData - ) => void; - // (undocumented) - [Events.LEVEL_UPDATED]: ( - event: Events.LEVEL_UPDATED, - data: LevelUpdatedData - ) => void; - // (undocumented) - [Events.LIVE_BACK_BUFFER_REACHED]: ( - event: Events.LIVE_BACK_BUFFER_REACHED, - data: LiveBackBufferData - ) => void; - // (undocumented) - [Events.MANIFEST_LOADED]: ( - event: Events.MANIFEST_LOADED, - data: ManifestLoadedData - ) => void; - // (undocumented) - [Events.MANIFEST_LOADING]: ( - event: Events.MANIFEST_LOADING, - data: ManifestLoadingData - ) => void; - // (undocumented) - [Events.MANIFEST_PARSED]: ( - event: Events.MANIFEST_PARSED, - data: ManifestParsedData - ) => void; - // (undocumented) - [Events.MEDIA_ATTACHED]: ( - event: Events.MEDIA_ATTACHED, - data: MediaAttachedData - ) => void; - // (undocumented) - [Events.MEDIA_ATTACHING]: ( - event: Events.MEDIA_ATTACHING, - data: MediaAttachingData - ) => void; - // (undocumented) - [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void; - // (undocumented) - [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void; - // (undocumented) - [Events.NON_NATIVE_TEXT_TRACKS_FOUND]: ( - event: Events.NON_NATIVE_TEXT_TRACKS_FOUND, - data: NonNativeTextTracksData - ) => void; - // (undocumented) - [Events.SUBTITLE_FRAG_PROCESSED]: ( - event: Events.SUBTITLE_FRAG_PROCESSED, - data: SubtitleFragProcessedData - ) => void; - // (undocumented) - [Events.SUBTITLE_TRACK_LOADED]: ( - event: Events.SUBTITLE_TRACK_LOADED, - data: SubtitleTrackLoadedData - ) => void; - // (undocumented) - [Events.SUBTITLE_TRACK_LOADING]: ( - event: Events.SUBTITLE_TRACK_LOADING, - data: TrackLoadingData - ) => void; - // (undocumented) - [Events.SUBTITLE_TRACKS_CLEARED]: ( - event: Events.SUBTITLE_TRACKS_CLEARED - ) => void; - // (undocumented) - [Events.SUBTITLE_TRACKS_UPDATED]: ( - event: Events.SUBTITLE_TRACKS_UPDATED, - data: SubtitleTracksUpdatedData - ) => void; - // (undocumented) - [Events.SUBTITLE_TRACK_SWITCH]: ( - event: Events.SUBTITLE_TRACK_SWITCH, - data: SubtitleTrackSwitchData - ) => void; + // (undocumented) + [Events.AUDIO_TRACK_LOADED]: (event: Events.AUDIO_TRACK_LOADED, data: AudioTrackLoadedData) => void; + // (undocumented) + [Events.AUDIO_TRACK_LOADING]: (event: Events.AUDIO_TRACK_LOADING, data: TrackLoadingData) => void; + // (undocumented) + [Events.AUDIO_TRACKS_UPDATED]: (event: Events.AUDIO_TRACKS_UPDATED, data: AudioTracksUpdatedData) => void; + // (undocumented) + [Events.AUDIO_TRACK_SWITCHED]: (event: Events.AUDIO_TRACK_SWITCHED, data: AudioTrackSwitchedData) => void; + // (undocumented) + [Events.AUDIO_TRACK_SWITCHING]: (event: Events.AUDIO_TRACK_SWITCHING, data: AudioTrackSwitchingData) => void; + // (undocumented) + [Events.BUFFER_APPENDED]: (event: Events.BUFFER_APPENDED, data: BufferAppendedData) => void; + // (undocumented) + [Events.BUFFER_APPENDING]: (event: Events.BUFFER_APPENDING, data: BufferAppendingData) => void; + // (undocumented) + [Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void; + // (undocumented) + [Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void; + // (undocumented) + [Events.BUFFER_EOS]: (event: Events.BUFFER_EOS, data: BufferEOSData) => void; + // (undocumented) + [Events.BUFFER_FLUSHED]: (event: Events.BUFFER_FLUSHED, data: BufferFlushedData) => void; + // (undocumented) + [Events.BUFFER_FLUSHING]: (event: Events.BUFFER_FLUSHING, data: BufferFlushingData) => void; + // (undocumented) + [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void; + // (undocumented) + [Events.CUES_PARSED]: (event: Events.CUES_PARSED, data: CuesParsedData) => void; + // (undocumented) + [Events.DESTROYING]: (event: Events.DESTROYING) => void; + // (undocumented) + [Events.ERROR]: (event: Events.ERROR, data: ErrorData) => void; + // (undocumented) + [Events.FPS_DROP]: (event: Events.FPS_DROP, data: FPSDropData) => void; + // (undocumented) + [Events.FPS_DROP_LEVEL_CAPPING]: (event: Events.FPS_DROP_LEVEL_CAPPING, data: FPSDropLevelCappingData) => void; + // (undocumented) + [Events.FRAG_BUFFERED]: (event: Events.FRAG_BUFFERED, data: FragBufferedData) => void; + // (undocumented) + [Events.FRAG_CHANGED]: (event: Events.FRAG_CHANGED, data: FragChangedData) => void; + // (undocumented) + [Events.FRAG_DECRYPTED]: (event: Events.FRAG_DECRYPTED, data: FragDecryptedData) => void; + // (undocumented) + [Events.FRAG_LOADED]: (event: Events.FRAG_LOADED, data: FragLoadedData) => void; + // (undocumented) + [Events.FRAG_LOAD_EMERGENCY_ABORTED]: (event: Events.FRAG_LOAD_EMERGENCY_ABORTED, data: FragLoadEmergencyAbortedData) => void; + // (undocumented) + [Events.FRAG_LOADING]: (event: Events.FRAG_LOADING, data: FragLoadingData) => void; + // (undocumented) + [Events.FRAG_PARSED]: (event: Events.FRAG_PARSED, data: FragParsedData) => void; + // (undocumented) + [Events.FRAG_PARSING_INIT_SEGMENT]: (event: Events.FRAG_PARSING_INIT_SEGMENT, data: FragParsingInitSegmentData) => void; + // (undocumented) + [Events.FRAG_PARSING_METADATA]: (event: Events.FRAG_PARSING_METADATA, data: FragParsingMetadataData) => void; + // (undocumented) + [Events.FRAG_PARSING_USERDATA]: (event: Events.FRAG_PARSING_USERDATA, data: FragParsingUserdataData) => void; + // (undocumented) + [Events.INIT_PTS_FOUND]: (event: Events.INIT_PTS_FOUND, data: InitPTSFoundData) => void; + // (undocumented) + [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void; + // (undocumented) + [Events.KEY_LOADING]: (event: Events.KEY_LOADING, data: KeyLoadingData) => void; + // (undocumented) + [Events.LEVEL_LOADED]: (event: Events.LEVEL_LOADED, data: LevelLoadedData) => void; + // (undocumented) + [Events.LEVEL_LOADING]: (event: Events.LEVEL_LOADING, data: LevelLoadingData) => void; + // (undocumented) + [Events.LEVEL_PTS_UPDATED]: (event: Events.LEVEL_PTS_UPDATED, data: LevelPTSUpdatedData) => void; + // (undocumented) + [Events.LEVELS_UPDATED]: (event: Events.LEVELS_UPDATED, data: LevelsUpdatedData) => void; + // (undocumented) + [Events.LEVEL_SWITCHED]: (event: Events.LEVEL_SWITCHED, data: LevelSwitchedData) => void; + // (undocumented) + [Events.LEVEL_SWITCHING]: (event: Events.LEVEL_SWITCHING, data: LevelSwitchingData) => void; + // (undocumented) + [Events.LEVEL_UPDATED]: (event: Events.LEVEL_UPDATED, data: LevelUpdatedData) => void; + // (undocumented) + [Events.LIVE_BACK_BUFFER_REACHED]: (event: Events.LIVE_BACK_BUFFER_REACHED, data: LiveBackBufferData) => void; + // (undocumented) + [Events.MANIFEST_LOADED]: (event: Events.MANIFEST_LOADED, data: ManifestLoadedData) => void; + // (undocumented) + [Events.MANIFEST_LOADING]: (event: Events.MANIFEST_LOADING, data: ManifestLoadingData) => void; + // (undocumented) + [Events.MANIFEST_PARSED]: (event: Events.MANIFEST_PARSED, data: ManifestParsedData) => void; + // (undocumented) + [Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void; + // (undocumented) + [Events.MEDIA_ATTACHING]: (event: Events.MEDIA_ATTACHING, data: MediaAttachingData) => void; + // (undocumented) + [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void; + // (undocumented) + [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void; + // (undocumented) + [Events.NON_NATIVE_TEXT_TRACKS_FOUND]: (event: Events.NON_NATIVE_TEXT_TRACKS_FOUND, data: NonNativeTextTracksData) => void; + // (undocumented) + [Events.SUBTITLE_FRAG_PROCESSED]: (event: Events.SUBTITLE_FRAG_PROCESSED, data: SubtitleFragProcessedData) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_LOADED]: (event: Events.SUBTITLE_TRACK_LOADED, data: SubtitleTrackLoadedData) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_LOADING]: (event: Events.SUBTITLE_TRACK_LOADING, data: TrackLoadingData) => void; + // (undocumented) + [Events.SUBTITLE_TRACKS_CLEARED]: (event: Events.SUBTITLE_TRACKS_CLEARED) => void; + // (undocumented) + [Events.SUBTITLE_TRACKS_UPDATED]: (event: Events.SUBTITLE_TRACKS_UPDATED, data: SubtitleTracksUpdatedData) => void; + // (undocumented) + [Events.SUBTITLE_TRACK_SWITCH]: (event: Events.SUBTITLE_TRACK_SWITCH, data: SubtitleTrackSwitchData) => void; } // Warning: (ae-missing-release-tag) "HlsPerformanceTiming" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface HlsPerformanceTiming { - // (undocumented) - end: number; - // (undocumented) - start: number; + // (undocumented) + end: number; + // (undocumented) + start: number; } // Warning: (ae-missing-release-tag) "HlsProgressivePerformanceTiming" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface HlsProgressivePerformanceTiming extends HlsPerformanceTiming { - // (undocumented) - first: number; + // (undocumented) + first: number; } // Warning: (ae-missing-release-tag) "HlsSkip" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export enum HlsSkip { - // (undocumented) - No = '', - // (undocumented) - v2 = 'v2', - // (undocumented) - Yes = 'YES', + // (undocumented) + No = "", + // (undocumented) + v2 = "v2", + // (undocumented) + Yes = "YES" } // Warning: (ae-missing-release-tag) "HlsUrlParameters" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class HlsUrlParameters { - constructor(msn: number, part?: number, skip?: HlsSkip); - // (undocumented) - addDirectives(uri: string): string | never; - // (undocumented) - msn: number; - // (undocumented) - part?: number; - // (undocumented) - skip?: HlsSkip; + constructor(msn: number, part?: number, skip?: HlsSkip); + // (undocumented) + addDirectives(uri: string): string | never; + // (undocumented) + msn: number; + // (undocumented) + part?: number; + // (undocumented) + skip?: HlsSkip; } // Warning: (ae-missing-release-tag) "InitPTSFoundData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface InitPTSFoundData { - // (undocumented) - frag: Fragment; - // (undocumented) - id: string; - // (undocumented) - initPTS: number; - // (undocumented) - timescale: number; + // (undocumented) + frag: Fragment; + // (undocumented) + id: string; + // (undocumented) + initPTS: number; + // (undocumented) + timescale: number; } // Warning: (ae-missing-release-tag) "KeyLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface KeyLoadedData { - // (undocumented) - frag: Fragment; + // (undocumented) + frag: Fragment; } // Warning: (ae-missing-release-tag) "KeyLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface KeyLoadingData { - // (undocumented) - frag: Fragment; + // (undocumented) + frag: Fragment; } // Warning: (tsdoc-unsupported-tag) The TSDoc tag "@see" is not supported by this tool @@ -1517,552 +1304,526 @@ export interface KeyLoadingData { // // @public (undocumented) export enum KeySystems { - // (undocumented) - PLAYREADY = 'com.microsoft.playready', - // (undocumented) - WIDEVINE = 'com.widevine.alpha', + // (undocumented) + PLAYREADY = "com.microsoft.playready", + // (undocumented) + WIDEVINE = "com.widevine.alpha" } // Warning: (ae-missing-release-tag) "LatencyControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type LatencyControllerConfig = { - liveSyncDurationCount: number; - liveMaxLatencyDurationCount: number; - liveSyncDuration?: number; - liveMaxLatencyDuration?: number; - maxLiveSyncPlaybackRate: number; + liveSyncDurationCount: number; + liveMaxLatencyDurationCount: number; + liveSyncDuration?: number; + liveMaxLatencyDuration?: number; + maxLiveSyncPlaybackRate: number; }; // Warning: (ae-missing-release-tag) "Level" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class Level { - constructor(data: LevelParsed); - // (undocumented) - readonly attrs: LevelAttributes; - // (undocumented) - readonly audioCodec: string | undefined; - // (undocumented) - audioGroupIds?: string[]; - // (undocumented) - readonly bitrate: number; - // (undocumented) - readonly codecSet: string; - // (undocumented) - details?: LevelDetails; - // (undocumented) - fragmentError: number; - // (undocumented) - readonly height: number; - // (undocumented) - readonly id: number; - // (undocumented) - loaded?: { - bytes: number; - duration: number; - }; - // (undocumented) - loadError: number; - // (undocumented) - get maxBitrate(): number; - // (undocumented) - readonly name: string | undefined; - // (undocumented) - realBitrate: number; - // (undocumented) - textGroupIds?: string[]; - // (undocumented) - readonly unknownCodecs: string[] | undefined; - // (undocumented) - get uri(): string; - // (undocumented) - url: string[]; - // (undocumented) - get urlId(): number; - set urlId(value: number); - // (undocumented) - readonly videoCodec: string | undefined; - // (undocumented) - readonly width: number; + constructor(data: LevelParsed); + // (undocumented) + readonly attrs: LevelAttributes; + // (undocumented) + readonly audioCodec: string | undefined; + // (undocumented) + audioGroupIds?: string[]; + // (undocumented) + readonly bitrate: number; + // (undocumented) + readonly codecSet: string; + // (undocumented) + details?: LevelDetails; + // (undocumented) + fragmentError: number; + // (undocumented) + readonly height: number; + // (undocumented) + readonly id: number; + // (undocumented) + loaded?: { + bytes: number; + duration: number; + }; + // (undocumented) + loadError: number; + // (undocumented) + get maxBitrate(): number; + // (undocumented) + readonly name: string | undefined; + // (undocumented) + realBitrate: number; + // (undocumented) + textGroupIds?: string[]; + // (undocumented) + readonly unknownCodecs: string[] | undefined; + // (undocumented) + get uri(): string; + // (undocumented) + url: string[]; + // (undocumented) + get urlId(): number; + set urlId(value: number); + // (undocumented) + readonly videoCodec: string | undefined; + // (undocumented) + readonly width: number; } // Warning: (ae-missing-release-tag) "LevelAttributes" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelAttributes extends AttrList { - // (undocumented) - 'AVERAGE-BANDWIDTH'?: string; - // (undocumented) - 'CLOSED-CAPTIONS'?: string; - // (undocumented) - 'FRAME-RATE'?: string; - // (undocumented) - 'PROGRAM-ID'?: string; - // (undocumented) - AUDIO?: string; - // (undocumented) - AUTOSELECT?: string; - // (undocumented) - BANDWIDTH?: string; - // (undocumented) - BYTERANGE?: string; - // (undocumented) - CODECS?: string; - // (undocumented) - DEFAULT?: string; - // (undocumented) - FORCED?: string; - // (undocumented) - LANGUAGE?: string; - // (undocumented) - NAME?: string; - // (undocumented) - RESOLUTION?: string; - // (undocumented) - SUBTITLES?: string; - // (undocumented) - TYPE?: string; - // (undocumented) - URI?: string; + // (undocumented) + 'AVERAGE-BANDWIDTH'?: string; + // (undocumented) + 'CLOSED-CAPTIONS'?: string; + // (undocumented) + 'FRAME-RATE'?: string; + // (undocumented) + 'PROGRAM-ID'?: string; + // (undocumented) + AUDIO?: string; + // (undocumented) + AUTOSELECT?: string; + // (undocumented) + BANDWIDTH?: string; + // (undocumented) + BYTERANGE?: string; + // (undocumented) + CODECS?: string; + // (undocumented) + DEFAULT?: string; + // (undocumented) + FORCED?: string; + // (undocumented) + LANGUAGE?: string; + // (undocumented) + NAME?: string; + // (undocumented) + RESOLUTION?: string; + // (undocumented) + SUBTITLES?: string; + // (undocumented) + TYPE?: string; + // (undocumented) + URI?: string; } // Warning: (ae-missing-release-tag) "LevelControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type LevelControllerConfig = { - startLevel?: number; + startLevel?: number; }; // Warning: (ae-missing-release-tag) "LevelDetails" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class LevelDetails { - constructor(baseUrl: any); - // (undocumented) - advanced: boolean; - // (undocumented) - advancedDateTime?: number; - // (undocumented) - get age(): number; - // (undocumented) - ageHeader: number; - // (undocumented) - alignedSliding: boolean; - // (undocumented) - availabilityDelay?: number; - // (undocumented) - averagetargetduration?: number; - // (undocumented) - canBlockReload: boolean; - // (undocumented) - canSkipDateRanges: boolean; - // (undocumented) - canSkipUntil: number; - // (undocumented) - deltaUpdateFailed?: boolean; - // (undocumented) - get edge(): number; - // (undocumented) - endCC: number; - // (undocumented) - endSN: number; - // (undocumented) - get fragmentEnd(): number; - // (undocumented) - fragmentHint?: Fragment; - // (undocumented) - fragments: Fragment[]; - // (undocumented) - get hasProgramDateTime(): boolean; - // (undocumented) - holdBack: number; - // (undocumented) - initSegment: Fragment | null; - // (undocumented) - get lastPartIndex(): number; - // (undocumented) - get lastPartSn(): number; - // (undocumented) - get levelTargetDuration(): number; - // (undocumented) - live: boolean; - // (undocumented) - m3u8: string; - // (undocumented) - misses: number; - // (undocumented) - needSidxRanges: boolean; - // (undocumented) - get partEnd(): number; - // (undocumented) - partHoldBack: number; - // (undocumented) - partList: Part[] | null; - // (undocumented) - partTarget: number; - // (undocumented) - preloadHint?: AttrList; - // (undocumented) - PTSKnown: boolean; - // (undocumented) - recentlyRemovedDateranges?: string[]; - // (undocumented) - reloaded(previous: LevelDetails | undefined): void; - // (undocumented) - renditionReports?: AttrList[]; - // (undocumented) - skippedSegments: number; - // (undocumented) - startCC: number; - // (undocumented) - startSN: number; - // (undocumented) - startTimeOffset: number | null; - // (undocumented) - targetduration: number; - // (undocumented) - totalduration: number; - // (undocumented) - tuneInGoal: number; - // (undocumented) - type: string | null; - // (undocumented) - updated: boolean; - // (undocumented) - url: string; - // (undocumented) - version: number | null; + constructor(baseUrl: any); + // (undocumented) + advanced: boolean; + // (undocumented) + advancedDateTime?: number; + // (undocumented) + get age(): number; + // (undocumented) + ageHeader: number; + // (undocumented) + alignedSliding: boolean; + // (undocumented) + availabilityDelay?: number; + // (undocumented) + averagetargetduration?: number; + // (undocumented) + canBlockReload: boolean; + // (undocumented) + canSkipDateRanges: boolean; + // (undocumented) + canSkipUntil: number; + // (undocumented) + deltaUpdateFailed?: boolean; + // (undocumented) + get edge(): number; + // (undocumented) + endCC: number; + // (undocumented) + endSN: number; + // (undocumented) + get fragmentEnd(): number; + // (undocumented) + fragmentHint?: Fragment; + // (undocumented) + fragments: Fragment[]; + // (undocumented) + get hasProgramDateTime(): boolean; + // (undocumented) + holdBack: number; + // (undocumented) + initSegment: Fragment | null; + // (undocumented) + get lastPartIndex(): number; + // (undocumented) + get lastPartSn(): number; + // (undocumented) + get levelTargetDuration(): number; + // (undocumented) + live: boolean; + // (undocumented) + m3u8: string; + // (undocumented) + misses: number; + // (undocumented) + needSidxRanges: boolean; + // (undocumented) + get partEnd(): number; + // (undocumented) + partHoldBack: number; + // (undocumented) + partList: Part[] | null; + // (undocumented) + partTarget: number; + // (undocumented) + preloadHint?: AttrList; + // (undocumented) + PTSKnown: boolean; + // (undocumented) + recentlyRemovedDateranges?: string[]; + // (undocumented) + reloaded(previous: LevelDetails | undefined): void; + // (undocumented) + renditionReports?: AttrList[]; + // (undocumented) + skippedSegments: number; + // (undocumented) + startCC: number; + // (undocumented) + startSN: number; + // (undocumented) + startTimeOffset: number | null; + // (undocumented) + targetduration: number; + // (undocumented) + totalduration: number; + // (undocumented) + tuneInGoal: number; + // (undocumented) + type: string | null; + // (undocumented) + updated: boolean; + // (undocumented) + url: string; + // (undocumented) + version: number | null; } // Warning: (ae-missing-release-tag) "LevelKey" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class LevelKey { - // (undocumented) - static fromURI(uri: string): LevelKey; - // (undocumented) - static fromURL(baseUrl: string, relativeUrl: string): LevelKey; - // (undocumented) - iv: Uint8Array | null; - // (undocumented) - key: Uint8Array | null; - // (undocumented) - keyFormat: string | null; - // (undocumented) - keyFormatVersions: string | null; - // (undocumented) - keyID: string | null; - // (undocumented) - method: string | null; - // (undocumented) - get uri(): string | null; -} + // (undocumented) + static fromURI(uri: string): LevelKey; + // (undocumented) + static fromURL(baseUrl: string, relativeUrl: string): LevelKey; + // (undocumented) + iv: Uint8Array | null; + // (undocumented) + key: Uint8Array | null; + // (undocumented) + keyFormat: string | null; + // (undocumented) + keyFormatVersions: string | null; + // (undocumented) + keyID: string | null; + // (undocumented) + method: string | null; + // (undocumented) + get uri(): string | null; + } // Warning: (ae-missing-release-tag) "LevelLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelLoadedData { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - details: LevelDetails; - // (undocumented) - id: number; - // (undocumented) - level: number; - // (undocumented) - networkDetails: any; - // (undocumented) - stats: LoaderStats; + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + details: LevelDetails; + // (undocumented) + id: number; + // (undocumented) + level: number; + // (undocumented) + networkDetails: any; + // (undocumented) + stats: LoaderStats; } // Warning: (ae-missing-release-tag) "LevelLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelLoadingData { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - id: number; - // (undocumented) - level: number; - // (undocumented) - url: string; + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + id: number; + // (undocumented) + level: number; + // (undocumented) + url: string; } // Warning: (ae-missing-release-tag) "LevelParsed" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelParsed { - // (undocumented) - attrs: LevelAttributes; - // (undocumented) - audioCodec?: string; - // (undocumented) - bitrate: number; - // (undocumented) - details?: LevelDetails; - // (undocumented) - height?: number; - // (undocumented) - id?: number; - // (undocumented) - level?: number; - // (undocumented) - name: string; - // (undocumented) - textCodec?: string; - // (undocumented) - unknownCodecs?: string[]; - // (undocumented) - url: string; - // (undocumented) - videoCodec?: string; - // (undocumented) - width?: number; + // (undocumented) + attrs: LevelAttributes; + // (undocumented) + audioCodec?: string; + // (undocumented) + bitrate: number; + // (undocumented) + details?: LevelDetails; + // (undocumented) + height?: number; + // (undocumented) + id?: number; + // (undocumented) + level?: number; + // (undocumented) + name: string; + // (undocumented) + textCodec?: string; + // (undocumented) + unknownCodecs?: string[]; + // (undocumented) + url: string; + // (undocumented) + videoCodec?: string; + // (undocumented) + width?: number; } // Warning: (ae-missing-release-tag) "LevelPTSUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelPTSUpdatedData { - // (undocumented) - details: LevelDetails; - // (undocumented) - drift: number; - // (undocumented) - end: number; - // (undocumented) - frag: Fragment; - // (undocumented) - level: Level; - // (undocumented) - start: number; - // (undocumented) - type: string; + // (undocumented) + details: LevelDetails; + // (undocumented) + drift: number; + // (undocumented) + end: number; + // (undocumented) + frag: Fragment; + // (undocumented) + level: Level; + // (undocumented) + start: number; + // (undocumented) + type: string; } // Warning: (ae-missing-release-tag) "LevelsUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelsUpdatedData { - // (undocumented) - levels: Array; + // (undocumented) + levels: Array; } // Warning: (ae-missing-release-tag) "LevelSwitchedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelSwitchedData { - // (undocumented) - level: number; + // (undocumented) + level: number; } // Warning: (ae-missing-release-tag) "LevelSwitchingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelSwitchingData extends Omit { - // (undocumented) - level: number; + // (undocumented) + level: number; } // Warning: (ae-missing-release-tag) "LevelUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LevelUpdatedData { - // (undocumented) - details: LevelDetails; - // (undocumented) - level: number; + // (undocumented) + details: LevelDetails; + // (undocumented) + level: number; } // Warning: (ae-missing-release-tag) "LiveBackBufferData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LiveBackBufferData { - // (undocumented) - bufferEnd: number; + // (undocumented) + bufferEnd: number; } // Warning: (ae-missing-release-tag) "Loader" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface Loader { - // (undocumented) - abort(): void; - // (undocumented) - context: T; - // (undocumented) - destroy(): void; - // (undocumented) - getResponseHeader(name: string): string | null; - // (undocumented) - load( - context: LoaderContext, - config: LoaderConfiguration, - callbacks: LoaderCallbacks - ): void; - // (undocumented) - loader: any; - // (undocumented) - stats: LoaderStats; + // (undocumented) + abort(): void; + // (undocumented) + context: T; + // (undocumented) + destroy(): void; + // (undocumented) + getResponseHeader(name: string): string | null; + // (undocumented) + load(context: LoaderContext, config: LoaderConfiguration, callbacks: LoaderCallbacks): void; + // (undocumented) + loader: any; + // (undocumented) + stats: LoaderStats; } // Warning: (ae-missing-release-tag) "LoaderCallbacks" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LoaderCallbacks { - // (undocumented) - onAbort?: LoaderOnAbort; - // (undocumented) - onError: LoaderOnError; - // (undocumented) - onProgress?: LoaderOnProgress; - // (undocumented) - onSuccess: LoaderOnSuccess; - // (undocumented) - onTimeout: LoaderOnTimeout; + // (undocumented) + onAbort?: LoaderOnAbort; + // (undocumented) + onError: LoaderOnError; + // (undocumented) + onProgress?: LoaderOnProgress; + // (undocumented) + onSuccess: LoaderOnSuccess; + // (undocumented) + onTimeout: LoaderOnTimeout; } // Warning: (ae-missing-release-tag) "LoaderConfiguration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LoaderConfiguration { - // (undocumented) - highWaterMark: number; - // (undocumented) - maxRetry: number; - // (undocumented) - maxRetryDelay: number; - // (undocumented) - retryDelay: number; - // (undocumented) - timeout: number; + // (undocumented) + highWaterMark: number; + // (undocumented) + maxRetry: number; + // (undocumented) + maxRetryDelay: number; + // (undocumented) + retryDelay: number; + // (undocumented) + timeout: number; } // Warning: (ae-missing-release-tag) "LoaderContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LoaderContext { - // (undocumented) - progressData?: boolean; - // (undocumented) - rangeEnd?: number; - // (undocumented) - rangeStart?: number; - // (undocumented) - responseType: string; - // (undocumented) - url: string; + // (undocumented) + progressData?: boolean; + // (undocumented) + rangeEnd?: number; + // (undocumented) + rangeStart?: number; + // (undocumented) + responseType: string; + // (undocumented) + url: string; } // Warning: (ae-missing-release-tag) "LoaderOnAbort" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type LoaderOnAbort = ( - stats: LoaderStats, - context: T, - networkDetails: any -) => void; +export type LoaderOnAbort = (stats: LoaderStats, context: T, networkDetails: any) => void; // Warning: (ae-missing-release-tag) "LoaderOnError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type LoaderOnError = ( - error: { +export type LoaderOnError = (error: { code: number; text: string; - }, - context: T, - networkDetails: any -) => void; +}, context: T, networkDetails: any) => void; // Warning: (ae-missing-release-tag) "LoaderOnProgress" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type LoaderOnProgress = ( - stats: LoaderStats, - context: T, - data: string | ArrayBuffer, - networkDetails: any -) => void; +export type LoaderOnProgress = (stats: LoaderStats, context: T, data: string | ArrayBuffer, networkDetails: any) => void; // Warning: (ae-missing-release-tag) "LoaderOnSuccess" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type LoaderOnSuccess = ( - response: LoaderResponse, - stats: LoaderStats, - context: T, - networkDetails: any -) => void; +export type LoaderOnSuccess = (response: LoaderResponse, stats: LoaderStats, context: T, networkDetails: any) => void; // Warning: (ae-missing-release-tag) "LoaderOnTimeout" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type LoaderOnTimeout = ( - stats: LoaderStats, - context: T, - networkDetails: any -) => void; +export type LoaderOnTimeout = (stats: LoaderStats, context: T, networkDetails: any) => void; // Warning: (ae-missing-release-tag) "LoaderResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LoaderResponse { - // (undocumented) - data: string | ArrayBuffer; - // (undocumented) - url: string; + // (undocumented) + data: string | ArrayBuffer; + // (undocumented) + url: string; } // Warning: (ae-missing-release-tag) "LoaderStats" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface LoaderStats { - // (undocumented) - aborted: boolean; - // (undocumented) - buffering: HlsProgressivePerformanceTiming; - // (undocumented) - bwEstimate: number; - // (undocumented) - chunkCount: number; - // (undocumented) - loaded: number; - // (undocumented) - loading: HlsProgressivePerformanceTiming; - // (undocumented) - parsing: HlsPerformanceTiming; - // (undocumented) - retry: number; - // (undocumented) - total: number; + // (undocumented) + aborted: boolean; + // (undocumented) + buffering: HlsProgressivePerformanceTiming; + // (undocumented) + bwEstimate: number; + // (undocumented) + chunkCount: number; + // (undocumented) + loaded: number; + // (undocumented) + loading: HlsProgressivePerformanceTiming; + // (undocumented) + parsing: HlsPerformanceTiming; + // (undocumented) + retry: number; + // (undocumented) + total: number; } // Warning: (ae-missing-release-tag) "LoadStats" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class LoadStats implements LoaderStats { - // (undocumented) - aborted: boolean; - // (undocumented) - buffering: HlsProgressivePerformanceTiming; - // (undocumented) - bwEstimate: number; - // (undocumented) - chunkCount: number; - // (undocumented) - loaded: number; - // (undocumented) - loading: HlsProgressivePerformanceTiming; - // (undocumented) - parsing: HlsPerformanceTiming; - // (undocumented) - retry: number; - // (undocumented) - total: number; + // (undocumented) + aborted: boolean; + // (undocumented) + buffering: HlsProgressivePerformanceTiming; + // (undocumented) + bwEstimate: number; + // (undocumented) + chunkCount: number; + // (undocumented) + loaded: number; + // (undocumented) + loading: HlsProgressivePerformanceTiming; + // (undocumented) + parsing: HlsPerformanceTiming; + // (undocumented) + retry: number; + // (undocumented) + total: number; } // Warning: (ae-missing-release-tag) "MainPlaylistType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -2074,100 +1835,97 @@ export type MainPlaylistType = AudioPlaylistType | 'VIDEO'; // // @public (undocumented) export interface ManifestLoadedData { - // (undocumented) - audioTracks: MediaPlaylist[]; - // (undocumented) - captions?: MediaPlaylist[]; - // (undocumented) - levels: LevelParsed[]; - // (undocumented) - networkDetails: any; - // (undocumented) - sessionData: Record | null; - // (undocumented) - stats: LoaderStats; - // (undocumented) - subtitles?: MediaPlaylist[]; - // (undocumented) - url: string; + // (undocumented) + audioTracks: MediaPlaylist[]; + // (undocumented) + captions?: MediaPlaylist[]; + // (undocumented) + levels: LevelParsed[]; + // (undocumented) + networkDetails: any; + // (undocumented) + sessionData: Record | null; + // (undocumented) + stats: LoaderStats; + // (undocumented) + subtitles?: MediaPlaylist[]; + // (undocumented) + url: string; } // Warning: (ae-missing-release-tag) "ManifestLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface ManifestLoadingData { - // (undocumented) - url: string; + // (undocumented) + url: string; } // Warning: (ae-missing-release-tag) "ManifestParsedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface ManifestParsedData { - // (undocumented) - altAudio: boolean; - // (undocumented) - audio: boolean; - // (undocumented) - audioTracks: MediaPlaylist[]; - // (undocumented) - firstLevel: number; - // (undocumented) - levels: Level[]; - // (undocumented) - stats: LoaderStats; - // (undocumented) - subtitleTracks: MediaPlaylist[]; - // (undocumented) - video: boolean; + // (undocumented) + altAudio: boolean; + // (undocumented) + audio: boolean; + // (undocumented) + audioTracks: MediaPlaylist[]; + // (undocumented) + firstLevel: number; + // (undocumented) + levels: Level[]; + // (undocumented) + stats: LoaderStats; + // (undocumented) + subtitleTracks: MediaPlaylist[]; + // (undocumented) + video: boolean; } // Warning: (ae-missing-release-tag) "MediaAttachedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface MediaAttachedData { - // (undocumented) - media: HTMLMediaElement; + // (undocumented) + media: HTMLMediaElement; } // Warning: (ae-missing-release-tag) "MediaAttachingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface MediaAttachingData { - // (undocumented) - media: HTMLMediaElement; + // (undocumented) + media: HTMLMediaElement; } // Warning: (ae-missing-release-tag) "MediaKeyFunc" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type MediaKeyFunc = ( - keySystem: KeySystems, - supportedConfigurations: MediaKeySystemConfiguration[] -) => Promise; +export type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise; // Warning: (ae-missing-release-tag) "MediaPlaylist" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface MediaPlaylist extends LevelParsed { - // (undocumented) - autoselect: boolean; - // (undocumented) - default: boolean; - // (undocumented) - forced: boolean; - // (undocumented) - groupId?: string; - // (undocumented) - id: number; - // (undocumented) - instreamId?: string; - // (undocumented) - lang?: string; - // (undocumented) - name: string; - // (undocumented) - type: MediaPlaylistType | 'main'; + // (undocumented) + autoselect: boolean; + // (undocumented) + default: boolean; + // (undocumented) + forced: boolean; + // (undocumented) + groupId?: string; + // (undocumented) + id: number; + // (undocumented) + instreamId?: string; + // (undocumented) + lang?: string; + // (undocumented) + name: string; + // (undocumented) + type: MediaPlaylistType | 'main'; } // Warning: (ae-missing-release-tag) "MediaPlaylistType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -2179,148 +1937,142 @@ export type MediaPlaylistType = MainPlaylistType | SubtitlePlaylistType; // // @public (undocumented) export interface MetadataSample { - // (undocumented) - data: Uint8Array; - // (undocumented) - dts: number; - // (undocumented) - len?: number; - // (undocumented) - pts: number; + // (undocumented) + data: Uint8Array; + // (undocumented) + dts: number; + // (undocumented) + len?: number; + // (undocumented) + pts: number; } // Warning: (ae-missing-release-tag) "MP4RemuxerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type MP4RemuxerConfig = { - stretchShortVideoTrack: boolean; - maxAudioFramesDrift: number; + stretchShortVideoTrack: boolean; + maxAudioFramesDrift: number; }; // Warning: (ae-missing-release-tag) "NonNativeTextTrack" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface NonNativeTextTrack { - // (undocumented) - closedCaptions?: MediaPlaylist; - // (undocumented) - default: boolean; - // (undocumented) - _id?: string; - // (undocumented) - kind: string; - // (undocumented) - label: any; - // (undocumented) - subtitleTrack?: MediaPlaylist; + // (undocumented) + closedCaptions?: MediaPlaylist; + // (undocumented) + default: boolean; + // (undocumented) + _id?: string; + // (undocumented) + kind: string; + // (undocumented) + label: any; + // (undocumented) + subtitleTrack?: MediaPlaylist; } // Warning: (ae-missing-release-tag) "NonNativeTextTracksData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface NonNativeTextTracksData { - // (undocumented) - tracks: Array; + // (undocumented) + tracks: Array; } // Warning: (ae-missing-release-tag) "Part" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export class Part extends BaseSegment { - constructor( - partAttrs: AttrList, - frag: Fragment, - baseurl: string, - index: number, - previous?: Part - ); - // (undocumented) - readonly duration: number; - // (undocumented) - get end(): number; - // (undocumented) - readonly fragment: Fragment; - // (undocumented) - readonly fragOffset: number; - // (undocumented) - readonly gap: boolean; - // (undocumented) - readonly independent: boolean; - // (undocumented) - readonly index: number; - // (undocumented) - get loaded(): boolean; - // (undocumented) - readonly relurl: string; - // (undocumented) - get start(): number; - // (undocumented) - stats: LoadStats; + constructor(partAttrs: AttrList, frag: Fragment, baseurl: string, index: number, previous?: Part); + // (undocumented) + readonly duration: number; + // (undocumented) + get end(): number; + // (undocumented) + readonly fragment: Fragment; + // (undocumented) + readonly fragOffset: number; + // (undocumented) + readonly gap: boolean; + // (undocumented) + readonly independent: boolean; + // (undocumented) + readonly index: number; + // (undocumented) + get loaded(): boolean; + // (undocumented) + readonly relurl: string; + // (undocumented) + get start(): number; + // (undocumented) + stats: LoadStats; } // Warning: (ae-missing-release-tag) "PlaylistContextType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export enum PlaylistContextType { - // (undocumented) - AUDIO_TRACK = 'audioTrack', - // (undocumented) - LEVEL = 'level', - // (undocumented) - MANIFEST = 'manifest', - // (undocumented) - SUBTITLE_TRACK = 'subtitleTrack', + // (undocumented) + AUDIO_TRACK = "audioTrack", + // (undocumented) + LEVEL = "level", + // (undocumented) + MANIFEST = "manifest", + // (undocumented) + SUBTITLE_TRACK = "subtitleTrack" } // Warning: (ae-missing-release-tag) "PlaylistLevelType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export enum PlaylistLevelType { - // (undocumented) - AUDIO = 'audio', - // (undocumented) - MAIN = 'main', - // (undocumented) - SUBTITLE = 'subtitle', + // (undocumented) + AUDIO = "audio", + // (undocumented) + MAIN = "main", + // (undocumented) + SUBTITLE = "subtitle" } // Warning: (ae-missing-release-tag) "PlaylistLoaderConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type PlaylistLoaderConfig = { - pLoader?: { - new (confg: HlsConfig): Loader; - }; - manifestLoadingTimeOut: number; - manifestLoadingMaxRetry: number; - manifestLoadingRetryDelay: number; - manifestLoadingMaxRetryTimeout: number; - levelLoadingTimeOut: number; - levelLoadingMaxRetry: number; - levelLoadingRetryDelay: number; - levelLoadingMaxRetryTimeout: number; + pLoader?: { + new (confg: HlsConfig): Loader; + }; + manifestLoadingTimeOut: number; + manifestLoadingMaxRetry: number; + manifestLoadingRetryDelay: number; + manifestLoadingMaxRetryTimeout: number; + levelLoadingTimeOut: number; + levelLoadingMaxRetry: number; + levelLoadingRetryDelay: number; + levelLoadingMaxRetryTimeout: number; }; // Warning: (ae-missing-release-tag) "PlaylistLoaderContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface PlaylistLoaderContext extends LoaderContext { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - groupId: string | null; - // (undocumented) - id: number | null; - // (undocumented) - isSidxRequest?: boolean; - // (undocumented) - level: number | null; - // (undocumented) - levelDetails?: LevelDetails; - // (undocumented) - loader?: Loader; - // (undocumented) - type: PlaylistContextType; + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + groupId: string | null; + // (undocumented) + id: number | null; + // (undocumented) + isSidxRequest?: boolean; + // (undocumented) + level: number | null; + // (undocumented) + levelDetails?: LevelDetails; + // (undocumented) + loader?: Loader; + // (undocumented) + type: PlaylistContextType; } // Warning: (ae-missing-release-tag) "SourceBufferName" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -2332,32 +2084,32 @@ export type SourceBufferName = 'video' | 'audio' | 'audiovideo'; // // @public (undocumented) export type StreamControllerConfig = { - autoStartLoad: boolean; - startPosition: number; - defaultAudioCodec?: string; - initialLiveManifestSize: number; - maxBufferLength: number; - maxBufferSize: number; - maxBufferHole: number; - highBufferWatchdogPeriod: number; - nudgeOffset: number; - nudgeMaxRetry: number; - maxFragLookUpTolerance: number; - maxMaxBufferLength: number; - startFragPrefetch: boolean; - testBandwidth: boolean; + autoStartLoad: boolean; + startPosition: number; + defaultAudioCodec?: string; + initialLiveManifestSize: number; + maxBufferLength: number; + maxBufferSize: number; + maxBufferHole: number; + highBufferWatchdogPeriod: number; + nudgeOffset: number; + nudgeMaxRetry: number; + maxFragLookUpTolerance: number; + maxMaxBufferLength: number; + startFragPrefetch: boolean; + testBandwidth: boolean; }; // Warning: (ae-missing-release-tag) "SubtitleFragProcessedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface SubtitleFragProcessedData { - // (undocumented) - error?: Error; - // (undocumented) - frag: Fragment; - // (undocumented) - success: boolean; + // (undocumented) + error?: Error; + // (undocumented) + frag: Fragment; + // (undocumented) + success: boolean; } // Warning: (ae-missing-release-tag) "SubtitlePlaylistType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -2368,128 +2120,130 @@ export type SubtitlePlaylistType = 'SUBTITLES' | 'CLOSED-CAPTIONS'; // Warning: (ae-missing-release-tag) "SubtitleTrackLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export interface SubtitleTrackLoadedData extends TrackLoadedData {} +export interface SubtitleTrackLoadedData extends TrackLoadedData { +} // Warning: (ae-missing-release-tag) "SubtitleTracksUpdatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface SubtitleTracksUpdatedData { - // (undocumented) - subtitleTracks: MediaPlaylist[]; + // (undocumented) + subtitleTracks: MediaPlaylist[]; } // Warning: (ae-missing-release-tag) "SubtitleTrackSwitchData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface SubtitleTrackSwitchData { - // (undocumented) - id: number; - // (undocumented) - type?: MediaPlaylistType | 'main'; - // (undocumented) - url?: string; + // (undocumented) + id: number; + // (undocumented) + type?: MediaPlaylistType | 'main'; + // (undocumented) + url?: string; } // Warning: (ae-missing-release-tag) "TimelineControllerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type TimelineControllerConfig = { - cueHandler: CuesInterface; - enableCEA708Captions: boolean; - enableWebVTT: boolean; - enableIMSC1: boolean; - captionsTextTrack1Label: string; - captionsTextTrack1LanguageCode: string; - captionsTextTrack2Label: string; - captionsTextTrack2LanguageCode: string; - captionsTextTrack3Label: string; - captionsTextTrack3LanguageCode: string; - captionsTextTrack4Label: string; - captionsTextTrack4LanguageCode: string; - renderTextTracksNatively: boolean; + cueHandler: CuesInterface; + enableCEA708Captions: boolean; + enableWebVTT: boolean; + enableIMSC1: boolean; + captionsTextTrack1Label: string; + captionsTextTrack1LanguageCode: string; + captionsTextTrack2Label: string; + captionsTextTrack2LanguageCode: string; + captionsTextTrack3Label: string; + captionsTextTrack3LanguageCode: string; + captionsTextTrack4Label: string; + captionsTextTrack4LanguageCode: string; + renderTextTracksNatively: boolean; }; // Warning: (ae-missing-release-tag) "Track" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface Track { - // (undocumented) - buffer?: SourceBuffer; - // (undocumented) - codec?: string; - // (undocumented) - container: string; - // (undocumented) - id: 'audio' | 'main'; - // (undocumented) - initSegment?: Uint8Array; - // (undocumented) - levelCodec?: string; - // (undocumented) - metadata?: any; + // (undocumented) + buffer?: SourceBuffer; + // (undocumented) + codec?: string; + // (undocumented) + container: string; + // (undocumented) + id: 'audio' | 'main'; + // (undocumented) + initSegment?: Uint8Array; + // (undocumented) + levelCodec?: string; + // (undocumented) + metadata?: any; } // Warning: (ae-missing-release-tag) "TrackLoadedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface TrackLoadedData { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - details: LevelDetails; - // (undocumented) - groupId: string; - // (undocumented) - id: number; - // (undocumented) - networkDetails: any; - // (undocumented) - stats: LoaderStats; + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + details: LevelDetails; + // (undocumented) + groupId: string; + // (undocumented) + id: number; + // (undocumented) + networkDetails: any; + // (undocumented) + stats: LoaderStats; } // Warning: (ae-missing-release-tag) "TrackLoadingData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface TrackLoadingData { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - groupId: string; - // (undocumented) - id: number; - // (undocumented) - url: string; + // (undocumented) + deliveryDirectives: HlsUrlParameters | null; + // (undocumented) + groupId: string; + // (undocumented) + id: number; + // (undocumented) + url: string; } // Warning: (ae-missing-release-tag) "TrackSet" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface TrackSet { - // (undocumented) - audio?: Track; - // (undocumented) - audiovideo?: Track; - // (undocumented) - video?: Track; + // (undocumented) + audio?: Track; + // (undocumented) + audiovideo?: Track; + // (undocumented) + video?: Track; } // Warning: (ae-missing-release-tag) "TSDemuxerConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export type TSDemuxerConfig = { - forceKeyFrameOnDiscontinuity: boolean; + forceKeyFrameOnDiscontinuity: boolean; }; // Warning: (ae-missing-release-tag) "UserdataSample" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export interface UserdataSample { - // (undocumented) - bytes: Uint8Array; - // (undocumented) - pts: number; + // (undocumented) + bytes: Uint8Array; + // (undocumented) + pts: number; } + // Warnings were encountered during analysis: // // src/config.ts:153:3 - (ae-forgotten-export) The symbol "AudioStreamController" needs to be exported by the entry point hls.d.ts @@ -2504,4 +2258,5 @@ export interface UserdataSample { // src/config.ts:165:3 - (ae-forgotten-export) The symbol "FPSController" needs to be exported by the entry point hls.d.ts // (No @packageDocumentation comment for this package) + ``` diff --git a/src/controller/subtitle-track-controller.ts b/src/controller/subtitle-track-controller.ts index 9f9e6226cee..6a397aeb157 100644 --- a/src/controller/subtitle-track-controller.ts +++ b/src/controller/subtitle-track-controller.ts @@ -241,12 +241,11 @@ class SubtitleTrackController extends BasePlaylistController { return this.tracksInGroup; } - /** get index of the selected subtitle track (index in subtitle track lists) **/ + /** get/set index of the selected subtitle track (based on index in subtitle track lists) **/ get subtitleTrack(): number { return this.trackId; } - /** select a subtitle track, based on its index in subtitle track lists**/ set subtitleTrack(newId: number) { this.selectDefaultTrack = false; const lastTrack = this.tracksInGroup From 8e06640d81ad294cb8ead17806fe1016932900b9 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:30:03 +0000 Subject: [PATCH 055/327] Delete hls.js.api.md --- docs/hls.js.api.md | 1861 -------------------------------------------- 1 file changed, 1861 deletions(-) delete mode 100644 docs/hls.js.api.md diff --git a/docs/hls.js.api.md b/docs/hls.js.api.md deleted file mode 100644 index 5e9235b7880..00000000000 --- a/docs/hls.js.api.md +++ /dev/null @@ -1,1861 +0,0 @@ -## API Report File for "hls.js" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts - -// @public (undocumented) -export type ABRControllerConfig = { - abrEwmaFastLive: number; - abrEwmaSlowLive: number; - abrEwmaFastVoD: number; - abrEwmaSlowVoD: number; - abrEwmaDefaultEstimate: number; - abrBandWidthFactor: number; - abrBandWidthUpFactor: number; - abrMaxWithRealBitrate: boolean; - maxStarvationDelay: number; - maxLoadingDelay: number; -}; - -// @public (undocumented) -export class AttrList { - constructor(attrs: string | Record); - // (undocumented) - [key: string]: any; - // (undocumented) - bool(attrName: string): boolean; - // (undocumented) - decimalFloatingPoint(attrName: string): number; - // (undocumented) - decimalInteger(attrName: string): number; - // (undocumented) - decimalResolution(attrName: string): { - width: number; - height: number; - } | undefined; - // (undocumented) - enumeratedString(attrName: string): string | undefined; - // (undocumented) - hexadecimalInteger(attrName: string): Uint8Array | null; - // (undocumented) - hexadecimalIntegerAsNumber(attrName: string): number; - // (undocumented) - optionalFloat(attrName: string, defaultValue: number): number; - // (undocumented) - static parseAttrList(input: string): Record; -} - -// @public (undocumented) -export type AudioPlaylistType = 'AUDIO'; - -// @public (undocumented) -export interface AudioTrackLoadedData extends TrackLoadedData { -} - -// @public (undocumented) -export interface AudioTracksUpdatedData { - // (undocumented) - audioTracks: MediaPlaylist[]; -} - -// @public (undocumented) -export interface AudioTrackSwitchedData { - // (undocumented) - id: number; -} - -// @public (undocumented) -export interface AudioTrackSwitchingData { - // (undocumented) - id: number; - // (undocumented) - type: MediaPlaylistType | 'main'; - // (undocumented) - url: string; -} - -// @public (undocumented) -export class BaseSegment { - constructor(baseurl: string); - // (undocumented) - readonly baseurl: string; - // (undocumented) - get byteRange(): number[]; - // (undocumented) - get byteRangeEndOffset(): number; - // (undocumented) - get byteRangeStartOffset(): number; - // (undocumented) - elementaryStreams: ElementaryStreams; - // (undocumented) - relurl?: string; - // (undocumented) - setByteRange(value: string, previous?: BaseSegment): void; - // (undocumented) - get url(): string; - set url(value: string); - } - -// @public (undocumented) -export interface BufferAppendedData { - // (undocumented) - chunkMeta: ChunkMetadata; - // (undocumented) - frag: Fragment; - // (undocumented) - parent: PlaylistLevelType; - // (undocumented) - part: Part | null; - // (undocumented) - timeRanges: { - audio?: TimeRanges; - video?: TimeRanges; - audiovideo?: TimeRanges; - }; -} - -// @public (undocumented) -export interface BufferAppendingData { - // (undocumented) - chunkMeta: ChunkMetadata; - // (undocumented) - data: Uint8Array; - // (undocumented) - frag: Fragment; - // (undocumented) - part: Part | null; - // (undocumented) - type: SourceBufferName; -} - -// @public (undocumented) -export interface BufferCodecsData { - // (undocumented) - audio?: Track; - // (undocumented) - video?: Track; -} - -// @public (undocumented) -export type BufferControllerConfig = { - appendErrorMaxRetry: number; - liveDurationInfinity: boolean; - liveBackBufferLength: number; -}; - -// @public (undocumented) -export interface BufferCreatedData { - // (undocumented) - tracks: TrackSet; -} - -// @public (undocumented) -export interface BufferEOSData { - // (undocumented) - type?: SourceBufferName; -} - -// @public (undocumented) -export interface BufferFlushedData { - // (undocumented) - type: SourceBufferName; -} - -// @public (undocumented) -export interface BufferFlushingData { - // (undocumented) - endOffset: number; - // (undocumented) - startOffset: number; - // (undocumented) - type: SourceBufferName | null; -} - -// @public (undocumented) -export type CapLevelControllerConfig = { - capLevelToPlayerSize: boolean; -}; - -// @public (undocumented) -export class ChunkMetadata { - constructor(level: number, sn: number, id: number, size?: number, part?: number, partial?: boolean); - // (undocumented) - readonly buffering: { - [key in SourceBufferName]: HlsChunkPerformanceTiming; - }; - // (undocumented) - readonly id: number; - // (undocumented) - readonly level: number; - // (undocumented) - readonly part: number; - // (undocumented) - readonly partial: boolean; - // (undocumented) - readonly size: number; - // (undocumented) - readonly sn: number; - // (undocumented) - readonly transmuxing: HlsChunkPerformanceTiming; -} - -// @public (undocumented) -export interface CuesInterface { - // Warning: (ae-forgotten-export) The symbol "CaptionScreen" needs to be exported by the entry point hls.d.ts - // - // (undocumented) - newCue(track: TextTrack | null, startTime: number, endTime: number, captionScreen: CaptionScreen): VTTCue[]; -} - -// @public (undocumented) -export interface CuesParsedData { - // (undocumented) - cues: any; - // (undocumented) - track: string; - // (undocumented) - type: 'captions' | 'subtitles'; -} - -// @public (undocumented) -export type DRMSystemOptions = { - audioRobustness?: string; - videoRobustness?: string; -}; - -// @public (undocumented) -export interface ElementaryStreamInfo { - // (undocumented) - endDTS: number; - // (undocumented) - endPTS: number; - // (undocumented) - partial?: boolean; - // (undocumented) - startDTS: number; - // (undocumented) - startPTS: number; -} - -// @public (undocumented) -export type ElementaryStreams = Record; - -// @public (undocumented) -export enum ElementaryStreamTypes { - // (undocumented) - AUDIO = "audio", - // (undocumented) - AUDIOVIDEO = "audiovideo", - // (undocumented) - VIDEO = "video" -} - -// @public (undocumented) -export type EMEControllerConfig = { - licenseXhrSetup?: (xhr: XMLHttpRequest, url: string) => void; - emeEnabled: boolean; - widevineLicenseUrl?: string; - drmSystemOptions: DRMSystemOptions; - requestMediaKeySystemAccessFunc: MediaKeyFunc | null; -}; - -// @public (undocumented) -export interface ErrorData { - // (undocumented) - buffer?: number; - // (undocumented) - bytes?: number; - // (undocumented) - context?: PlaylistLoaderContext; - // (undocumented) - details: ErrorDetails; - // (undocumented) - err?: { - message: string; - }; - // (undocumented) - error?: Error; - // (undocumented) - event?: keyof HlsListeners | 'demuxerWorker'; - // (undocumented) - fatal: boolean; - // (undocumented) - frag?: Fragment; - // (undocumented) - level?: number | undefined; - // (undocumented) - levelRetry?: boolean; - // (undocumented) - loader?: Loader; - // (undocumented) - mimeType?: string; - // (undocumented) - networkDetails?: any; - // (undocumented) - parent?: PlaylistLevelType; - // (undocumented) - reason?: string; - // (undocumented) - response?: LoaderResponse; - // (undocumented) - type: ErrorTypes; - // (undocumented) - url?: string; -} - -// @public -export enum ErrorDetails { - // (undocumented) - AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", - // (undocumented) - AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", - // (undocumented) - BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", - // (undocumented) - BUFFER_APPEND_ERROR = "bufferAppendError", - // (undocumented) - BUFFER_APPENDING_ERROR = "bufferAppendingError", - // (undocumented) - BUFFER_FULL_ERROR = "bufferFullError", - // (undocumented) - BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", - // (undocumented) - BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", - // (undocumented) - BUFFER_STALLED_ERROR = "bufferStalledError", - // (undocumented) - FRAG_DECRYPT_ERROR = "fragDecryptError", - // (undocumented) - FRAG_LOAD_ERROR = "fragLoadError", - // (undocumented) - FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", - // (undocumented) - FRAG_PARSING_ERROR = "fragParsingError", - // (undocumented) - INTERNAL_ABORTED = "aborted", - // (undocumented) - INTERNAL_EXCEPTION = "internalException", - // (undocumented) - KEY_LOAD_ERROR = "keyLoadError", - // (undocumented) - KEY_LOAD_TIMEOUT = "keyLoadTimeOut", - // (undocumented) - KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", - // (undocumented) - KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", - // (undocumented) - KEY_SYSTEM_NO_INIT_DATA = "keySystemNoInitData", - // (undocumented) - KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", - // (undocumented) - KEY_SYSTEM_NO_SESSION = "keySystemNoSession", - // (undocumented) - LEVEL_EMPTY_ERROR = "levelEmptyError", - // (undocumented) - LEVEL_LOAD_ERROR = "levelLoadError", - // (undocumented) - LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", - // (undocumented) - LEVEL_SWITCH_ERROR = "levelSwitchError", - // (undocumented) - MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", - // (undocumented) - MANIFEST_LOAD_ERROR = "manifestLoadError", - // (undocumented) - MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", - // (undocumented) - MANIFEST_PARSING_ERROR = "manifestParsingError", - // (undocumented) - REMUX_ALLOC_ERROR = "remuxAllocError", - // (undocumented) - SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError", - // (undocumented) - SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut", - // (undocumented) - UNKNOWN = "unknown" -} - -// @public (undocumented) -export enum ErrorTypes { - // (undocumented) - KEY_SYSTEM_ERROR = "keySystemError", - // (undocumented) - MEDIA_ERROR = "mediaError", - // (undocumented) - MUX_ERROR = "muxError", - // (undocumented) - NETWORK_ERROR = "networkError", - // (undocumented) - OTHER_ERROR = "otherError" -} - -// @public -export enum Events { - // (undocumented) - AUDIO_TRACK_LOADED = "hlsAudioTrackLoaded", - // (undocumented) - AUDIO_TRACK_LOADING = "hlsAudioTrackLoading", - // (undocumented) - AUDIO_TRACK_SWITCHED = "hlsAudioTrackSwitched", - // (undocumented) - AUDIO_TRACK_SWITCHING = "hlsAudioTrackSwitching", - // (undocumented) - AUDIO_TRACKS_UPDATED = "hlsAudioTracksUpdated", - // (undocumented) - BUFFER_APPENDED = "hlsBufferAppended", - // (undocumented) - BUFFER_APPENDING = "hlsBufferAppending", - // (undocumented) - BUFFER_CODECS = "hlsBufferCodecs", - // (undocumented) - BUFFER_CREATED = "hlsBufferCreated", - // (undocumented) - BUFFER_EOS = "hlsBufferEos", - // (undocumented) - BUFFER_FLUSHED = "hlsBufferFlushed", - // (undocumented) - BUFFER_FLUSHING = "hlsBufferFlushing", - // (undocumented) - BUFFER_RESET = "hlsBufferReset", - // (undocumented) - CUES_PARSED = "hlsCuesParsed", - // (undocumented) - DESTROYING = "hlsDestroying", - // (undocumented) - ERROR = "hlsError", - // (undocumented) - FPS_DROP = "hlsFpsDrop", - // (undocumented) - FPS_DROP_LEVEL_CAPPING = "hlsFpsDropLevelCapping", - // (undocumented) - FRAG_BUFFERED = "hlsFragBuffered", - // (undocumented) - FRAG_CHANGED = "hlsFragChanged", - // (undocumented) - FRAG_DECRYPTED = "hlsFragDecrypted", - // (undocumented) - FRAG_LOAD_EMERGENCY_ABORTED = "hlsFragLoadEmergencyAborted", - // (undocumented) - FRAG_LOADED = "hlsFragLoaded", - // (undocumented) - FRAG_LOADING = "hlsFragLoading", - // (undocumented) - FRAG_PARSED = "hlsFragParsed", - // (undocumented) - FRAG_PARSING_INIT_SEGMENT = "hlsFragParsingInitSegment", - // (undocumented) - FRAG_PARSING_METADATA = "hlsFragParsingMetadata", - // (undocumented) - FRAG_PARSING_USERDATA = "hlsFragParsingUserdata", - // (undocumented) - INIT_PTS_FOUND = "hlsInitPtsFound", - // (undocumented) - KEY_LOADED = "hlsKeyLoaded", - // (undocumented) - KEY_LOADING = "hlsKeyLoading", - // (undocumented) - LEVEL_LOADED = "hlsLevelLoaded", - // (undocumented) - LEVEL_LOADING = "hlsLevelLoading", - // (undocumented) - LEVEL_PTS_UPDATED = "hlsLevelPtsUpdated", - // (undocumented) - LEVEL_SWITCHED = "hlsLevelSwitched", - // (undocumented) - LEVEL_SWITCHING = "hlsLevelSwitching", - // (undocumented) - LEVEL_UPDATED = "hlsLevelUpdated", - // (undocumented) - LEVELS_UPDATED = "hlsLevelsUpdated", - // (undocumented) - LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached", - // (undocumented) - MANIFEST_LOADED = "hlsManifestLoaded", - // (undocumented) - MANIFEST_LOADING = "hlsManifestLoading", - // (undocumented) - MANIFEST_PARSED = "hlsManifestParsed", - // (undocumented) - MEDIA_ATTACHED = "hlsMediaAttached", - // (undocumented) - MEDIA_ATTACHING = "hlsMediaAttaching", - // (undocumented) - MEDIA_DETACHED = "hlsMediaDetached", - // (undocumented) - MEDIA_DETACHING = "hlsMediaDetaching", - // (undocumented) - NON_NATIVE_TEXT_TRACKS_FOUND = "hlsNonNativeTextTracksFound", - // (undocumented) - SUBTITLE_FRAG_PROCESSED = "hlsSubtitleFragProcessed", - // (undocumented) - SUBTITLE_TRACK_LOADED = "hlsSubtitleTrackLoaded", - // (undocumented) - SUBTITLE_TRACK_LOADING = "hlsSubtitleTrackLoading", - // (undocumented) - SUBTITLE_TRACK_SWITCH = "hlsSubtitleTrackSwitch", - // (undocumented) - SUBTITLE_TRACKS_CLEARED = "hlsSubtitleTracksCleared", - // (undocumented) - SUBTITLE_TRACKS_UPDATED = "hlsSubtitleTracksUpdated" -} - -// @public (undocumented) -export type FPSControllerConfig = { - capLevelOnFPSDrop: boolean; - fpsDroppedMonitoringPeriod: number; - fpsDroppedMonitoringThreshold: number; -}; - -// @public (undocumented) -export interface FPSDropData { - // (undocumented) - currentDecoded: number; - // (undocumented) - currentDropped: number; - // (undocumented) - totalDroppedFrames: number; -} - -// @public (undocumented) -export interface FPSDropLevelCappingData { - // (undocumented) - droppedLevel: number; - // (undocumented) - level: number; -} - -// @public (undocumented) -export interface FragBufferedData { - // (undocumented) - frag: Fragment; - // (undocumented) - id: string; - // (undocumented) - part: Part | null; - // (undocumented) - stats: LoadStats; -} - -// @public (undocumented) -export interface FragChangedData { - // (undocumented) - frag: Fragment; -} - -// @public (undocumented) -export interface FragDecryptedData { - // (undocumented) - frag: Fragment; - // (undocumented) - payload: ArrayBuffer; - // (undocumented) - stats: { - tstart: number; - tdecrypt: number; - }; -} - -// @public (undocumented) -export interface FragLoadedData { - // (undocumented) - frag: Fragment; - // (undocumented) - networkDetails: unknown; - // (undocumented) - part: Part | null; - // (undocumented) - payload: ArrayBuffer; -} - -// @public (undocumented) -export interface FragLoadEmergencyAbortedData { - // (undocumented) - frag: Fragment; - // (undocumented) - part: Part | null; - // (undocumented) - stats: LoaderStats; -} - -// @public (undocumented) -export interface FragLoadingData { - // (undocumented) - frag: Fragment; - // (undocumented) - part?: Part; - // (undocumented) - targetBufferTime: number | null; -} - -// @public (undocumented) -export class Fragment extends BaseSegment { - constructor(type: PlaylistLevelType, baseurl: string); - // (undocumented) - appendedPTS?: number; - // (undocumented) - bitrateTest: boolean; - // (undocumented) - cc: number; - // (undocumented) - clearElementaryStreamInfo(): void; - createInitializationVector(segmentNumber: number): Uint8Array; - // (undocumented) - data?: Uint8Array; - // (undocumented) - get decryptdata(): LevelKey | null; - // (undocumented) - deltaPTS?: number; - // (undocumented) - duration: number; - // (undocumented) - get encrypted(): boolean; - // (undocumented) - get end(): number; - // (undocumented) - endDTS: number; - // (undocumented) - get endProgramDateTime(): number | null; - // (undocumented) - endPTS?: number; - // (undocumented) - level: number; - // (undocumented) - levelkey?: LevelKey; - // (undocumented) - loader: Loader | null; - // (undocumented) - maxStartPTS?: number; - // (undocumented) - minEndPTS?: number; - // (undocumented) - programDateTime: number | null; - // (undocumented) - rawProgramDateTime: string | null; - setDecryptDataFromLevelKey(levelkey: LevelKey, segmentNumber: number): LevelKey; - // (undocumented) - setElementaryStreamInfo(type: ElementaryStreamTypes, startPTS: number, endPTS: number, startDTS: number, endDTS: number, partial?: boolean): void; - // (undocumented) - sn: number | 'initSegment'; - // (undocumented) - start: number; - // (undocumented) - startDTS: number; - // (undocumented) - startPTS?: number; - // (undocumented) - stats: LoadStats; - // (undocumented) - tagList: Array; - // (undocumented) - title: string | null; - // (undocumented) - readonly type: PlaylistLevelType; - // (undocumented) - urlId: number; -} - -// @public (undocumented) -export type FragmentLoaderConfig = { - fLoader?: { - new (confg: HlsConfig): Loader; - }; - fragLoadingTimeOut: number; - fragLoadingMaxRetry: number; - fragLoadingRetryDelay: number; - fragLoadingMaxRetryTimeout: number; -}; - -// @public (undocumented) -export interface FragmentLoaderContext extends LoaderContext { - // (undocumented) - frag: Fragment; - // (undocumented) - part: Part | null; -} - -// @public (undocumented) -export interface FragParsedData { - // (undocumented) - frag: Fragment; - // (undocumented) - part: Part | null; -} - -// @public (undocumented) -export interface FragParsingInitSegmentData { -} - -// @public (undocumented) -export interface FragParsingMetadataData { - // (undocumented) - frag: Fragment; - // (undocumented) - id: string; - // (undocumented) - samples: MetadataSample[]; -} - -// @public (undocumented) -export interface FragParsingUserdataData { - // (undocumented) - frag: Fragment; - // (undocumented) - id: string; - // (undocumented) - samples: UserdataSample[]; -} - -// @public -class Hls implements HlsEventEmitter { - constructor(userConfig?: Partial); - attachMedia(media: HTMLMediaElement): void; - get audioTrack(): number; - set audioTrack(audioTrackId: number); - get audioTracks(): Array; - get autoLevelCapping(): number; - set autoLevelCapping(newLevel: number); - get autoLevelEnabled(): boolean; - get bandwidthEstimate(): number; - get capLevelToPlayerSize(): boolean; - set capLevelToPlayerSize(shouldStartCapping: boolean); - // (undocumented) - readonly config: HlsConfig; - // (undocumented) - createController(ControllerClass: any, fragmentTracker: any, components: any): any; - get currentLevel(): number; - set currentLevel(newLevel: number); - // (undocumented) - static get DefaultConfig(): HlsConfig; - static set DefaultConfig(defaultConfig: HlsConfig); - destroy(): void; - detachMedia(): void; - // (undocumented) - emit(event: E, name: E, eventObject: Parameters[1]): boolean; - // (undocumented) - static get ErrorDetails(): typeof ErrorDetails; - // (undocumented) - static get ErrorTypes(): typeof ErrorTypes; - // (undocumented) - static get Events(): typeof Events; - get firstLevel(): number; - set firstLevel(newLevel: number); - // (undocumented) - static isSupported(): boolean; - get latency(): number; - get levels(): Array; - // (undocumented) - listenerCount(event: E): number; - // (undocumented) - listeners(event: E): HlsListeners[E][]; - get liveSyncPosition(): number | null; - get loadLevel(): number; - set loadLevel(newLevel: number); - loadSource(url: string): void; - get lowLatencyMode(): boolean; - set lowLatencyMode(mode: boolean); - get manualLevel(): number; - get maxAutoLevel(): number; - get maxLatency(): number; - // (undocumented) - get media(): HTMLMediaElement | null; - get minAutoLevel(): number; - get nextAutoLevel(): number; - set nextAutoLevel(nextLevel: number); - get nextLevel(): number; - set nextLevel(newLevel: number); - get nextLoadLevel(): number; - set nextLoadLevel(level: number); - // (undocumented) - off(event: E, listener?: HlsListeners[E] | undefined, context?: Context, once?: boolean | undefined): void; - // (undocumented) - on(event: E, listener: HlsListeners[E], context?: Context): void; - // (undocumented) - once(event: E, listener: HlsListeners[E], context?: Context): void; - recoverMediaError(): void; - // (undocumented) - removeAllListeners(event?: E | undefined): void; - // (undocumented) - removeLevel(levelIndex: any, urlId?: number): void; - get startLevel(): number; - set startLevel(newLevel: number); - startLoad(startPosition?: number): void; - stopLoad(): void; - get subtitleDisplay(): boolean; - set subtitleDisplay(value: boolean); - get subtitleTrack(): number; - set subtitleTrack(subtitleTrackId: number); - get subtitleTracks(): Array; - swapAudioCodec(): void; - get targetLatency(): number | null; - // (undocumented) - trigger(event: E, eventObject: Parameters[1]): boolean; - // (undocumented) - readonly userConfig: Partial; - // (undocumented) - static get version(): string; -} - -export default Hls; - -// @public (undocumented) -export interface HlsChunkPerformanceTiming extends HlsPerformanceTiming { - // (undocumented) - executeEnd: number; - // (undocumented) - executeStart: number; -} - -// @public (undocumented) -export type HlsConfig = { - debug: boolean; - enableWorker: boolean; - enableSoftwareAES: boolean; - minAutoBitrate: number; - loader: { - new (confg: HlsConfig): Loader; - }; - xhrSetup?: (xhr: XMLHttpRequest, url: string) => void; - audioStreamController?: typeof AudioStreamController; - audioTrackController?: typeof AudioTrackController; - subtitleStreamController?: typeof SubtitleStreamController; - subtitleTrackController?: typeof SubtitleTrackController; - timelineController?: typeof TimelineController; - emeController?: typeof EMEController; - abrController: typeof AbrController; - bufferController: typeof BufferController; - capLevelController: typeof CapLevelController; - fpsController: typeof FPSController; - progressive: boolean; - lowLatencyMode: boolean; -} & ABRControllerConfig & BufferControllerConfig & CapLevelControllerConfig & EMEControllerConfig & FPSControllerConfig & FragmentLoaderConfig & LevelControllerConfig & MP4RemuxerConfig & PlaylistLoaderConfig & StreamControllerConfig & LatencyControllerConfig & TimelineControllerConfig & TSDemuxerConfig; - -// @public (undocumented) -export interface HlsEventEmitter { - // (undocumented) - emit(event: E, name: E, eventObject: Parameters[1]): boolean; - // (undocumented) - listenerCount(event: E): number; - // (undocumented) - listeners(event: E): HlsListeners[E][]; - // (undocumented) - off(event: E, listener?: HlsListeners[E], context?: Context, once?: boolean): void; - // (undocumented) - on(event: E, listener: HlsListeners[E], context?: Context): void; - // (undocumented) - once(event: E, listener: HlsListeners[E], context?: Context): void; - // (undocumented) - removeAllListeners(event?: E): void; -} - -// @public (undocumented) -export interface HlsListeners { - // (undocumented) - [Events.AUDIO_TRACK_LOADED]: (event: Events.AUDIO_TRACK_LOADED, data: AudioTrackLoadedData) => void; - // (undocumented) - [Events.AUDIO_TRACK_LOADING]: (event: Events.AUDIO_TRACK_LOADING, data: TrackLoadingData) => void; - // (undocumented) - [Events.AUDIO_TRACKS_UPDATED]: (event: Events.AUDIO_TRACKS_UPDATED, data: AudioTracksUpdatedData) => void; - // (undocumented) - [Events.AUDIO_TRACK_SWITCHED]: (event: Events.AUDIO_TRACK_SWITCHED, data: AudioTrackSwitchedData) => void; - // (undocumented) - [Events.AUDIO_TRACK_SWITCHING]: (event: Events.AUDIO_TRACK_SWITCHING, data: AudioTrackSwitchingData) => void; - // (undocumented) - [Events.BUFFER_APPENDED]: (event: Events.BUFFER_APPENDED, data: BufferAppendedData) => void; - // (undocumented) - [Events.BUFFER_APPENDING]: (event: Events.BUFFER_APPENDING, data: BufferAppendingData) => void; - // (undocumented) - [Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void; - // (undocumented) - [Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void; - // (undocumented) - [Events.BUFFER_EOS]: (event: Events.BUFFER_EOS, data: BufferEOSData) => void; - // (undocumented) - [Events.BUFFER_FLUSHED]: (event: Events.BUFFER_FLUSHED, data: BufferFlushedData) => void; - // (undocumented) - [Events.BUFFER_FLUSHING]: (event: Events.BUFFER_FLUSHING, data: BufferFlushingData) => void; - // (undocumented) - [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void; - // (undocumented) - [Events.CUES_PARSED]: (event: Events.CUES_PARSED, data: CuesParsedData) => void; - // (undocumented) - [Events.DESTROYING]: (event: Events.DESTROYING) => void; - // (undocumented) - [Events.ERROR]: (event: Events.ERROR, data: ErrorData) => void; - // (undocumented) - [Events.FPS_DROP]: (event: Events.FPS_DROP, data: FPSDropData) => void; - // (undocumented) - [Events.FPS_DROP_LEVEL_CAPPING]: (event: Events.FPS_DROP_LEVEL_CAPPING, data: FPSDropLevelCappingData) => void; - // (undocumented) - [Events.FRAG_BUFFERED]: (event: Events.FRAG_BUFFERED, data: FragBufferedData) => void; - // (undocumented) - [Events.FRAG_CHANGED]: (event: Events.FRAG_CHANGED, data: FragChangedData) => void; - // (undocumented) - [Events.FRAG_DECRYPTED]: (event: Events.FRAG_DECRYPTED, data: FragDecryptedData) => void; - // (undocumented) - [Events.FRAG_LOADED]: (event: Events.FRAG_LOADED, data: FragLoadedData) => void; - // (undocumented) - [Events.FRAG_LOAD_EMERGENCY_ABORTED]: (event: Events.FRAG_LOAD_EMERGENCY_ABORTED, data: FragLoadEmergencyAbortedData) => void; - // (undocumented) - [Events.FRAG_LOADING]: (event: Events.FRAG_LOADING, data: FragLoadingData) => void; - // (undocumented) - [Events.FRAG_PARSED]: (event: Events.FRAG_PARSED, data: FragParsedData) => void; - // (undocumented) - [Events.FRAG_PARSING_INIT_SEGMENT]: (event: Events.FRAG_PARSING_INIT_SEGMENT, data: FragParsingInitSegmentData) => void; - // (undocumented) - [Events.FRAG_PARSING_METADATA]: (event: Events.FRAG_PARSING_METADATA, data: FragParsingMetadataData) => void; - // (undocumented) - [Events.FRAG_PARSING_USERDATA]: (event: Events.FRAG_PARSING_USERDATA, data: FragParsingUserdataData) => void; - // (undocumented) - [Events.INIT_PTS_FOUND]: (event: Events.INIT_PTS_FOUND, data: InitPTSFoundData) => void; - // (undocumented) - [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void; - // (undocumented) - [Events.KEY_LOADING]: (event: Events.KEY_LOADING, data: KeyLoadingData) => void; - // (undocumented) - [Events.LEVEL_LOADED]: (event: Events.LEVEL_LOADED, data: LevelLoadedData) => void; - // (undocumented) - [Events.LEVEL_LOADING]: (event: Events.LEVEL_LOADING, data: LevelLoadingData) => void; - // (undocumented) - [Events.LEVEL_PTS_UPDATED]: (event: Events.LEVEL_PTS_UPDATED, data: LevelPTSUpdatedData) => void; - // (undocumented) - [Events.LEVELS_UPDATED]: (event: Events.LEVELS_UPDATED, data: LevelsUpdatedData) => void; - // (undocumented) - [Events.LEVEL_SWITCHED]: (event: Events.LEVEL_SWITCHED, data: LevelSwitchedData) => void; - // (undocumented) - [Events.LEVEL_SWITCHING]: (event: Events.LEVEL_SWITCHING, data: LevelSwitchingData) => void; - // (undocumented) - [Events.LEVEL_UPDATED]: (event: Events.LEVEL_UPDATED, data: LevelUpdatedData) => void; - // (undocumented) - [Events.LIVE_BACK_BUFFER_REACHED]: (event: Events.LIVE_BACK_BUFFER_REACHED, data: LiveBackBufferData) => void; - // (undocumented) - [Events.MANIFEST_LOADED]: (event: Events.MANIFEST_LOADED, data: ManifestLoadedData) => void; - // (undocumented) - [Events.MANIFEST_LOADING]: (event: Events.MANIFEST_LOADING, data: ManifestLoadingData) => void; - // (undocumented) - [Events.MANIFEST_PARSED]: (event: Events.MANIFEST_PARSED, data: ManifestParsedData) => void; - // (undocumented) - [Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void; - // (undocumented) - [Events.MEDIA_ATTACHING]: (event: Events.MEDIA_ATTACHING, data: MediaAttachingData) => void; - // (undocumented) - [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void; - // (undocumented) - [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void; - // (undocumented) - [Events.NON_NATIVE_TEXT_TRACKS_FOUND]: (event: Events.NON_NATIVE_TEXT_TRACKS_FOUND, data: NonNativeTextTracksData) => void; - // (undocumented) - [Events.SUBTITLE_FRAG_PROCESSED]: (event: Events.SUBTITLE_FRAG_PROCESSED, data: SubtitleFragProcessedData) => void; - // (undocumented) - [Events.SUBTITLE_TRACK_LOADED]: (event: Events.SUBTITLE_TRACK_LOADED, data: SubtitleTrackLoadedData) => void; - // (undocumented) - [Events.SUBTITLE_TRACK_LOADING]: (event: Events.SUBTITLE_TRACK_LOADING, data: TrackLoadingData) => void; - // (undocumented) - [Events.SUBTITLE_TRACKS_CLEARED]: (event: Events.SUBTITLE_TRACKS_CLEARED) => void; - // (undocumented) - [Events.SUBTITLE_TRACKS_UPDATED]: (event: Events.SUBTITLE_TRACKS_UPDATED, data: SubtitleTracksUpdatedData) => void; - // (undocumented) - [Events.SUBTITLE_TRACK_SWITCH]: (event: Events.SUBTITLE_TRACK_SWITCH, data: SubtitleTrackSwitchData) => void; -} - -// @public (undocumented) -export interface HlsPerformanceTiming { - // (undocumented) - end: number; - // (undocumented) - start: number; -} - -// @public (undocumented) -export interface HlsProgressivePerformanceTiming extends HlsPerformanceTiming { - // (undocumented) - first: number; -} - -// @public (undocumented) -export enum HlsSkip { - // (undocumented) - No = "", - // (undocumented) - v2 = "v2", - // (undocumented) - Yes = "YES" -} - -// @public (undocumented) -export class HlsUrlParameters { - constructor(msn: number, part?: number, skip?: HlsSkip); - // (undocumented) - addDirectives(uri: string): string | never; - // (undocumented) - msn: number; - // (undocumented) - part?: number; - // (undocumented) - skip?: HlsSkip; -} - -// @public (undocumented) -export interface InitPTSFoundData { - // (undocumented) - frag: Fragment; - // (undocumented) - id: string; - // (undocumented) - initPTS: number; - // (undocumented) - timescale: number; -} - -// @public (undocumented) -export interface KeyLoadedData { - // (undocumented) - frag: Fragment; -} - -// @public (undocumented) -export interface KeyLoadingData { - // (undocumented) - frag: Fragment; -} - -// @public (undocumented) -export enum KeySystems { - // (undocumented) - PLAYREADY = "com.microsoft.playready", - // (undocumented) - WIDEVINE = "com.widevine.alpha" -} - -// @public (undocumented) -export type LatencyControllerConfig = { - liveSyncDurationCount: number; - liveMaxLatencyDurationCount: number; - liveSyncDuration?: number; - liveMaxLatencyDuration?: number; - maxLiveSyncPlaybackRate: number; -}; - -// @public (undocumented) -export class Level { - constructor(data: LevelParsed); - // (undocumented) - readonly attrs: LevelAttributes; - // (undocumented) - readonly audioCodec: string | undefined; - // (undocumented) - audioGroupIds?: string[]; - // (undocumented) - readonly bitrate: number; - // (undocumented) - readonly codecSet: string; - // (undocumented) - details?: LevelDetails; - // (undocumented) - fragmentError: number; - // (undocumented) - readonly height: number; - // (undocumented) - readonly id: number; - // (undocumented) - loaded?: { - bytes: number; - duration: number; - }; - // (undocumented) - loadError: number; - // (undocumented) - get maxBitrate(): number; - // (undocumented) - readonly name: string | undefined; - // (undocumented) - realBitrate: number; - // (undocumented) - textGroupIds?: string[]; - // (undocumented) - readonly unknownCodecs: string[] | undefined; - // (undocumented) - get uri(): string; - // (undocumented) - url: string[]; - // (undocumented) - get urlId(): number; - set urlId(value: number); - // (undocumented) - readonly videoCodec: string | undefined; - // (undocumented) - readonly width: number; -} - -// @public (undocumented) -export interface LevelAttributes extends AttrList { - // (undocumented) - 'AVERAGE-BANDWIDTH'?: string; - // (undocumented) - 'CLOSED-CAPTIONS'?: string; - // (undocumented) - 'FRAME-RATE'?: string; - // (undocumented) - 'PROGRAM-ID'?: string; - // (undocumented) - AUDIO?: string; - // (undocumented) - AUTOSELECT?: string; - // (undocumented) - BANDWIDTH?: string; - // (undocumented) - BYTERANGE?: string; - // (undocumented) - CODECS?: string; - // (undocumented) - DEFAULT?: string; - // (undocumented) - FORCED?: string; - // (undocumented) - LANGUAGE?: string; - // (undocumented) - NAME?: string; - // (undocumented) - RESOLUTION?: string; - // (undocumented) - SUBTITLES?: string; - // (undocumented) - TYPE?: string; - // (undocumented) - URI?: string; -} - -// @public (undocumented) -export type LevelControllerConfig = { - startLevel?: number; -}; - -// @public (undocumented) -export class LevelDetails { - constructor(baseUrl: any); - // (undocumented) - advanced: boolean; - // (undocumented) - advancedDateTime?: number; - // (undocumented) - get age(): number; - // (undocumented) - ageHeader: number; - // (undocumented) - alignedSliding: boolean; - // (undocumented) - availabilityDelay?: number; - // (undocumented) - averagetargetduration?: number; - // (undocumented) - canBlockReload: boolean; - // (undocumented) - canSkipDateRanges: boolean; - // (undocumented) - canSkipUntil: number; - // (undocumented) - deltaUpdateFailed?: boolean; - // (undocumented) - get edge(): number; - // (undocumented) - endCC: number; - // (undocumented) - endSN: number; - // (undocumented) - get fragmentEnd(): number; - // (undocumented) - fragmentHint?: Fragment; - // (undocumented) - fragments: Fragment[]; - // (undocumented) - get hasProgramDateTime(): boolean; - // (undocumented) - holdBack: number; - // (undocumented) - initSegment: Fragment | null; - // (undocumented) - get lastPartIndex(): number; - // (undocumented) - get lastPartSn(): number; - // (undocumented) - get levelTargetDuration(): number; - // (undocumented) - live: boolean; - // (undocumented) - m3u8: string; - // (undocumented) - misses: number; - // (undocumented) - needSidxRanges: boolean; - // (undocumented) - get partEnd(): number; - // (undocumented) - partHoldBack: number; - // (undocumented) - partList: Part[] | null; - // (undocumented) - partTarget: number; - // (undocumented) - preloadHint?: AttrList; - // (undocumented) - PTSKnown: boolean; - // (undocumented) - recentlyRemovedDateranges?: string[]; - // (undocumented) - reloaded(previous: LevelDetails | undefined): void; - // (undocumented) - renditionReports?: AttrList[]; - // (undocumented) - skippedSegments: number; - // (undocumented) - startCC: number; - // (undocumented) - startSN: number; - // (undocumented) - startTimeOffset: number | null; - // (undocumented) - targetduration: number; - // (undocumented) - totalduration: number; - // (undocumented) - tuneInGoal: number; - // (undocumented) - type: string | null; - // (undocumented) - updated: boolean; - // (undocumented) - url: string; - // (undocumented) - version: number | null; -} - -// @public (undocumented) -export class LevelKey { - // (undocumented) - static fromURI(uri: string): LevelKey; - // (undocumented) - static fromURL(baseUrl: string, relativeUrl: string): LevelKey; - // (undocumented) - iv: Uint8Array | null; - // (undocumented) - key: Uint8Array | null; - // (undocumented) - keyFormat: string | null; - // (undocumented) - keyFormatVersions: string | null; - // (undocumented) - keyID: string | null; - // (undocumented) - method: string | null; - // (undocumented) - get uri(): string | null; - } - -// @public (undocumented) -export interface LevelLoadedData { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - details: LevelDetails; - // (undocumented) - id: number; - // (undocumented) - level: number; - // (undocumented) - networkDetails: any; - // (undocumented) - stats: LoaderStats; -} - -// @public (undocumented) -export interface LevelLoadingData { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - id: number; - // (undocumented) - level: number; - // (undocumented) - url: string; -} - -// @public (undocumented) -export interface LevelParsed { - // (undocumented) - attrs: LevelAttributes; - // (undocumented) - audioCodec?: string; - // (undocumented) - bitrate: number; - // (undocumented) - details?: LevelDetails; - // (undocumented) - height?: number; - // (undocumented) - id?: number; - // (undocumented) - level?: number; - // (undocumented) - name: string; - // (undocumented) - textCodec?: string; - // (undocumented) - unknownCodecs?: string[]; - // (undocumented) - url: string; - // (undocumented) - videoCodec?: string; - // (undocumented) - width?: number; -} - -// @public (undocumented) -export interface LevelPTSUpdatedData { - // (undocumented) - details: LevelDetails; - // (undocumented) - drift: number; - // (undocumented) - end: number; - // (undocumented) - frag: Fragment; - // (undocumented) - level: Level; - // (undocumented) - start: number; - // (undocumented) - type: string; -} - -// @public (undocumented) -export interface LevelsUpdatedData { - // (undocumented) - levels: Array; -} - -// @public (undocumented) -export interface LevelSwitchedData { - // (undocumented) - level: number; -} - -// @public (undocumented) -export interface LevelSwitchingData extends Omit { - // (undocumented) - level: number; -} - -// @public (undocumented) -export interface LevelUpdatedData { - // (undocumented) - details: LevelDetails; - // (undocumented) - level: number; -} - -// @public (undocumented) -export interface LiveBackBufferData { - // (undocumented) - bufferEnd: number; -} - -// @public (undocumented) -export interface Loader { - // (undocumented) - abort(): void; - // (undocumented) - context: T; - // (undocumented) - destroy(): void; - // (undocumented) - getResponseHeader(name: string): string | null; - // (undocumented) - load(context: LoaderContext, config: LoaderConfiguration, callbacks: LoaderCallbacks): void; - // (undocumented) - loader: any; - // (undocumented) - stats: LoaderStats; -} - -// @public (undocumented) -export interface LoaderCallbacks { - // (undocumented) - onAbort?: LoaderOnAbort; - // (undocumented) - onError: LoaderOnError; - // (undocumented) - onProgress?: LoaderOnProgress; - // (undocumented) - onSuccess: LoaderOnSuccess; - // (undocumented) - onTimeout: LoaderOnTimeout; -} - -// @public (undocumented) -export interface LoaderConfiguration { - // (undocumented) - highWaterMark: number; - // (undocumented) - maxRetry: number; - // (undocumented) - maxRetryDelay: number; - // (undocumented) - retryDelay: number; - // (undocumented) - timeout: number; -} - -// @public (undocumented) -export interface LoaderContext { - // (undocumented) - progressData?: boolean; - // (undocumented) - rangeEnd?: number; - // (undocumented) - rangeStart?: number; - // (undocumented) - responseType: string; - // (undocumented) - url: string; -} - -// @public (undocumented) -export type LoaderOnAbort = (stats: LoaderStats, context: T, networkDetails: any) => void; - -// @public (undocumented) -export type LoaderOnError = (error: { - code: number; - text: string; -}, context: T, networkDetails: any) => void; - -// @public (undocumented) -export type LoaderOnProgress = (stats: LoaderStats, context: T, data: string | ArrayBuffer, networkDetails: any) => void; - -// @public (undocumented) -export type LoaderOnSuccess = (response: LoaderResponse, stats: LoaderStats, context: T, networkDetails: any) => void; - -// @public (undocumented) -export type LoaderOnTimeout = (stats: LoaderStats, context: T, networkDetails: any) => void; - -// @public (undocumented) -export interface LoaderResponse { - // (undocumented) - data: string | ArrayBuffer; - // (undocumented) - url: string; -} - -// @public (undocumented) -export interface LoaderStats { - // (undocumented) - aborted: boolean; - // (undocumented) - buffering: HlsProgressivePerformanceTiming; - // (undocumented) - bwEstimate: number; - // (undocumented) - chunkCount: number; - // (undocumented) - loaded: number; - // (undocumented) - loading: HlsProgressivePerformanceTiming; - // (undocumented) - parsing: HlsPerformanceTiming; - // (undocumented) - retry: number; - // (undocumented) - total: number; -} - -// @public (undocumented) -export class LoadStats implements LoaderStats { - // (undocumented) - aborted: boolean; - // (undocumented) - buffering: HlsProgressivePerformanceTiming; - // (undocumented) - bwEstimate: number; - // (undocumented) - chunkCount: number; - // (undocumented) - loaded: number; - // (undocumented) - loading: HlsProgressivePerformanceTiming; - // (undocumented) - parsing: HlsPerformanceTiming; - // (undocumented) - retry: number; - // (undocumented) - total: number; -} - -// @public (undocumented) -export type MainPlaylistType = AudioPlaylistType | 'VIDEO'; - -// @public (undocumented) -export interface ManifestLoadedData { - // (undocumented) - audioTracks: MediaPlaylist[]; - // (undocumented) - captions?: MediaPlaylist[]; - // (undocumented) - levels: LevelParsed[]; - // (undocumented) - networkDetails: any; - // (undocumented) - sessionData: Record | null; - // (undocumented) - stats: LoaderStats; - // (undocumented) - subtitles?: MediaPlaylist[]; - // (undocumented) - url: string; -} - -// @public (undocumented) -export interface ManifestLoadingData { - // (undocumented) - url: string; -} - -// @public (undocumented) -export interface ManifestParsedData { - // (undocumented) - altAudio: boolean; - // (undocumented) - audio: boolean; - // (undocumented) - audioTracks: MediaPlaylist[]; - // (undocumented) - firstLevel: number; - // (undocumented) - levels: Level[]; - // (undocumented) - stats: LoaderStats; - // (undocumented) - subtitleTracks: MediaPlaylist[]; - // (undocumented) - video: boolean; -} - -// @public (undocumented) -export interface MediaAttachedData { - // (undocumented) - media: HTMLMediaElement; -} - -// @public (undocumented) -export interface MediaAttachingData { - // (undocumented) - media: HTMLMediaElement; -} - -// @public (undocumented) -export type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise; - -// @public (undocumented) -export interface MediaPlaylist extends LevelParsed { - // (undocumented) - autoselect: boolean; - // (undocumented) - default: boolean; - // (undocumented) - forced: boolean; - // (undocumented) - groupId?: string; - // (undocumented) - id: number; - // (undocumented) - instreamId?: string; - // (undocumented) - lang?: string; - // (undocumented) - name: string; - // (undocumented) - type: MediaPlaylistType | 'main'; -} - -// @public (undocumented) -export type MediaPlaylistType = MainPlaylistType | SubtitlePlaylistType; - -// @public (undocumented) -export interface MetadataSample { - // (undocumented) - data: Uint8Array; - // (undocumented) - dts: number; - // (undocumented) - len?: number; - // (undocumented) - pts: number; -} - -// @public (undocumented) -export type MP4RemuxerConfig = { - stretchShortVideoTrack: boolean; - maxAudioFramesDrift: number; -}; - -// @public (undocumented) -export interface NonNativeTextTrack { - // (undocumented) - closedCaptions?: MediaPlaylist; - // (undocumented) - default: boolean; - // (undocumented) - _id?: string; - // (undocumented) - kind: string; - // (undocumented) - label: any; - // (undocumented) - subtitleTrack?: MediaPlaylist; -} - -// @public (undocumented) -export interface NonNativeTextTracksData { - // (undocumented) - tracks: Array; -} - -// @public (undocumented) -export class Part extends BaseSegment { - constructor(partAttrs: AttrList, frag: Fragment, baseurl: string, index: number, previous?: Part); - // (undocumented) - readonly duration: number; - // (undocumented) - get end(): number; - // (undocumented) - readonly fragment: Fragment; - // (undocumented) - readonly fragOffset: number; - // (undocumented) - readonly gap: boolean; - // (undocumented) - readonly independent: boolean; - // (undocumented) - readonly index: number; - // (undocumented) - get loaded(): boolean; - // (undocumented) - readonly relurl: string; - // (undocumented) - get start(): number; - // (undocumented) - stats: LoadStats; -} - -// @public (undocumented) -export enum PlaylistContextType { - // (undocumented) - AUDIO_TRACK = "audioTrack", - // (undocumented) - LEVEL = "level", - // (undocumented) - MANIFEST = "manifest", - // (undocumented) - SUBTITLE_TRACK = "subtitleTrack" -} - -// @public (undocumented) -export enum PlaylistLevelType { - // (undocumented) - AUDIO = "audio", - // (undocumented) - MAIN = "main", - // (undocumented) - SUBTITLE = "subtitle" -} - -// @public (undocumented) -export type PlaylistLoaderConfig = { - pLoader?: { - new (confg: HlsConfig): Loader; - }; - manifestLoadingTimeOut: number; - manifestLoadingMaxRetry: number; - manifestLoadingRetryDelay: number; - manifestLoadingMaxRetryTimeout: number; - levelLoadingTimeOut: number; - levelLoadingMaxRetry: number; - levelLoadingRetryDelay: number; - levelLoadingMaxRetryTimeout: number; -}; - -// @public (undocumented) -export interface PlaylistLoaderContext extends LoaderContext { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - groupId: string | null; - // (undocumented) - id: number | null; - // (undocumented) - isSidxRequest?: boolean; - // (undocumented) - level: number | null; - // (undocumented) - levelDetails?: LevelDetails; - // (undocumented) - loader?: Loader; - // (undocumented) - type: PlaylistContextType; -} - -// @public (undocumented) -export type SourceBufferName = 'video' | 'audio' | 'audiovideo'; - -// @public (undocumented) -export type StreamControllerConfig = { - autoStartLoad: boolean; - startPosition: number; - defaultAudioCodec?: string; - initialLiveManifestSize: number; - maxBufferLength: number; - maxBufferSize: number; - maxBufferHole: number; - highBufferWatchdogPeriod: number; - nudgeOffset: number; - nudgeMaxRetry: number; - maxFragLookUpTolerance: number; - maxMaxBufferLength: number; - startFragPrefetch: boolean; - testBandwidth: boolean; -}; - -// @public (undocumented) -export interface SubtitleFragProcessedData { - // (undocumented) - error?: Error; - // (undocumented) - frag: Fragment; - // (undocumented) - success: boolean; -} - -// @public (undocumented) -export type SubtitlePlaylistType = 'SUBTITLES' | 'CLOSED-CAPTIONS'; - -// @public (undocumented) -export interface SubtitleTrackLoadedData extends TrackLoadedData { -} - -// @public (undocumented) -export interface SubtitleTracksUpdatedData { - // (undocumented) - subtitleTracks: MediaPlaylist[]; -} - -// @public (undocumented) -export interface SubtitleTrackSwitchData { - // (undocumented) - id: number; - // (undocumented) - type?: MediaPlaylistType | 'main'; - // (undocumented) - url?: string; -} - -// @public (undocumented) -export type TimelineControllerConfig = { - cueHandler: CuesInterface; - enableCEA708Captions: boolean; - enableWebVTT: boolean; - enableIMSC1: boolean; - captionsTextTrack1Label: string; - captionsTextTrack1LanguageCode: string; - captionsTextTrack2Label: string; - captionsTextTrack2LanguageCode: string; - captionsTextTrack3Label: string; - captionsTextTrack3LanguageCode: string; - captionsTextTrack4Label: string; - captionsTextTrack4LanguageCode: string; - renderTextTracksNatively: boolean; -}; - -// @public (undocumented) -export interface Track { - // (undocumented) - buffer?: SourceBuffer; - // (undocumented) - codec?: string; - // (undocumented) - container: string; - // (undocumented) - id: 'audio' | 'main'; - // (undocumented) - initSegment?: Uint8Array; - // (undocumented) - levelCodec?: string; - // (undocumented) - metadata?: any; -} - -// @public (undocumented) -export interface TrackLoadedData { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - details: LevelDetails; - // (undocumented) - groupId: string; - // (undocumented) - id: number; - // (undocumented) - networkDetails: any; - // (undocumented) - stats: LoaderStats; -} - -// @public (undocumented) -export interface TrackLoadingData { - // (undocumented) - deliveryDirectives: HlsUrlParameters | null; - // (undocumented) - groupId: string; - // (undocumented) - id: number; - // (undocumented) - url: string; -} - -// @public (undocumented) -export interface TrackSet { - // (undocumented) - audio?: Track; - // (undocumented) - audiovideo?: Track; - // (undocumented) - video?: Track; -} - -// @public (undocumented) -export type TSDemuxerConfig = { - forceKeyFrameOnDiscontinuity: boolean; -}; - -// @public (undocumented) -export interface UserdataSample { - // (undocumented) - bytes: Uint8Array; - // (undocumented) - pts: number; -} - - -// Warnings were encountered during analysis: -// -// src/config.ts:153:3 - (ae-forgotten-export) The symbol "AudioStreamController" needs to be exported by the entry point hls.d.ts -// src/config.ts:154:3 - (ae-forgotten-export) The symbol "AudioTrackController" needs to be exported by the entry point hls.d.ts -// src/config.ts:156:3 - (ae-forgotten-export) The symbol "SubtitleStreamController" needs to be exported by the entry point hls.d.ts -// src/config.ts:157:3 - (ae-forgotten-export) The symbol "SubtitleTrackController" needs to be exported by the entry point hls.d.ts -// src/config.ts:158:3 - (ae-forgotten-export) The symbol "TimelineController" needs to be exported by the entry point hls.d.ts -// src/config.ts:160:3 - (ae-forgotten-export) The symbol "EMEController" needs to be exported by the entry point hls.d.ts -// src/config.ts:162:3 - (ae-forgotten-export) The symbol "AbrController" needs to be exported by the entry point hls.d.ts -// src/config.ts:163:3 - (ae-forgotten-export) The symbol "BufferController" needs to be exported by the entry point hls.d.ts -// src/config.ts:164:3 - (ae-forgotten-export) The symbol "CapLevelController" needs to be exported by the entry point hls.d.ts -// src/config.ts:165:3 - (ae-forgotten-export) The symbol "FPSController" needs to be exported by the entry point hls.d.ts - -// (No @packageDocumentation comment for this package) - -``` From 35abdc604de4eabea530c5e11af52b69151c4c60 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:38:49 +0000 Subject: [PATCH 056/327] don't include tsdoc warnings in report --- api-extractor.json | 2 +- api-extractor/report/hls.js.api.md | 153 ----------------------------- 2 files changed, 1 insertion(+), 154 deletions(-) diff --git a/api-extractor.json b/api-extractor.json index da59dc1d552..bbcfdc2f8e3 100644 --- a/api-extractor.json +++ b/api-extractor.json @@ -36,7 +36,7 @@ "tsdocMessageReporting": { "default": { "logLevel": "none", - "addToApiReportFile": true + "addToApiReportFile": false } } } diff --git a/api-extractor/report/hls.js.api.md b/api-extractor/report/hls.js.api.md index 66da72dd1a7..cd1c1fcf88c 100644 --- a/api-extractor/report/hls.js.api.md +++ b/api-extractor/report/hls.js.api.md @@ -356,12 +356,6 @@ export interface ErrorData { url?: string; } -// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag -// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" -// Warning: (tsdoc-undefined-tag) The TSDoc tag "@enum" is not defined in this configuration -// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag -// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" -// Warning: (tsdoc-undefined-tag) The TSDoc tag "@typedef" is not defined in this configuration // Warning: (ae-missing-release-tag) "ErrorDetails" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public @@ -452,9 +446,6 @@ export enum ErrorTypes { OTHER_ERROR = "otherError" } -// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag -// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" -// Warning: (tsdoc-undefined-tag) The TSDoc tag "@enum" is not defined in this configuration // Warning: (ae-missing-release-tag) "Events" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public @@ -686,9 +677,6 @@ export class Fragment extends BaseSegment { cc: number; // (undocumented) clearElementaryStreamInfo(): void; - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" createInitializationVector(segmentNumber: number): Uint8Array; // (undocumented) data?: Uint8Array; @@ -722,8 +710,6 @@ export class Fragment extends BaseSegment { programDateTime: number | null; // (undocumented) rawProgramDateTime: string | null; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" setDecryptDataFromLevelKey(levelkey: LevelKey, segmentNumber: number): LevelKey; // (undocumented) setElementaryStreamInfo(type: ElementaryStreamTypes, startPTS: number, endPTS: number, startDTS: number, endDTS: number, partial?: boolean): void; @@ -810,77 +796,33 @@ export interface FragParsingUserdataData { samples: UserdataSample[]; } -// Warning: (tsdoc-undefined-tag) The TSDoc tag "@module" is not defined in this configuration -// Warning: (tsdoc-undefined-tag) The TSDoc tag "@class" is not defined in this configuration -// Warning: (tsdoc-undefined-tag) The TSDoc tag "@constructor" is not defined in this configuration // Warning: (ae-missing-release-tag) "Hls" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public class Hls implements HlsEventEmitter { - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@constructs" is not defined in this configuration - // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' constructor(userConfig?: Partial); - // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' attachMedia(media: HTMLMediaElement): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get audioTrack(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "audioTrack" must appear on the getter, not the setter. set audioTrack(audioTrackId: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get audioTracks(): Array; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get autoLevelCapping(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "autoLevelCapping" must appear on the getter, not the setter. set autoLevelCapping(newLevel: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get autoLevelEnabled(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get bandwidthEstimate(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get capLevelToPlayerSize(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "capLevelToPlayerSize" must appear on the getter, not the setter. set capLevelToPlayerSize(shouldStartCapping: boolean); // (undocumented) readonly config: HlsConfig; // (undocumented) createController(ControllerClass: any, fragmentTracker: any, components: any): any; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get currentLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "currentLevel" must appear on the getter, not the setter. set currentLevel(newLevel: number); // (undocumented) static get DefaultConfig(): HlsConfig; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "DefaultConfig" must appear on the getter, not the setter. static set DefaultConfig(defaultConfig: HlsConfig); destroy(): void; @@ -893,105 +835,38 @@ class Hls implements HlsEventEmitter { static get ErrorTypes(): typeof ErrorTypes; // (undocumented) static get Events(): typeof Events; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get firstLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "firstLevel" must appear on the getter, not the setter. set firstLevel(newLevel: number); // (undocumented) static isSupported(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get latency(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get levels(): Array; // (undocumented) listenerCount(event: E): number; // (undocumented) listeners(event: E): HlsListeners[E][]; - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get liveSyncPosition(): number | null; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get loadLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "loadLevel" must appear on the getter, not the setter. set loadLevel(newLevel: number); - // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' loadSource(url: string): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get lowLatencyMode(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "lowLatencyMode" must appear on the getter, not the setter. set lowLatencyMode(mode: boolean); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get manualLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get maxAutoLevel(): number; - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-code-fence-opening-indent) The opening backtick for a code fence must appear at the start of the line - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get maxLatency(): number; // (undocumented) get media(): HTMLMediaElement | null; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get minAutoLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get nextAutoLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "nextAutoLevel" must appear on the getter, not the setter. set nextAutoLevel(nextLevel: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get nextLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "nextLevel" must appear on the getter, not the setter. set nextLevel(newLevel: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get nextLoadLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "nextLoadLevel" must appear on the getter, not the setter. set nextLoadLevel(level: number); // (undocumented) @@ -1005,46 +880,19 @@ class Hls implements HlsEventEmitter { removeAllListeners(event?: E | undefined): void; // (undocumented) removeLevel(levelIndex: any, urlId?: number): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get startLevel(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "startLevel" must appear on the getter, not the setter. set startLevel(newLevel: number); - // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen - // Warning: (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@default" is not defined in this configuration startLoad(startPosition?: number): void; stopLoad(): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get subtitleDisplay(): boolean; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "subtitleDisplay" must appear on the getter, not the setter. set subtitleDisplay(value: boolean); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get subtitleTrack(): number; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration // Warning: (ae-setter-with-docs) The doc comment for the property "subtitleTrack" must appear on the getter, not the setter. set subtitleTrack(subtitleTrackId: number); - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get subtitleTracks(): Array; swapAudioCodec(): void; - // Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag - // Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" - // Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration get targetLatency(): number | null; // (undocumented) trigger(event: E, eventObject: Parameters[1]): boolean; @@ -1299,7 +1147,6 @@ export interface KeyLoadingData { frag: Fragment; } -// Warning: (tsdoc-unsupported-tag) The TSDoc tag "@see" is not supported by this tool // Warning: (ae-missing-release-tag) "KeySystems" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) From bddadc9fa88fec99bfe23dd4d4ca053b0da9b6fe Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:42:00 +0000 Subject: [PATCH 057/327] fix import in test --- tests/unit/loader/fragment.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/loader/fragment.js b/tests/unit/loader/fragment.js index 07a850966b3..ab222fe62bd 100644 --- a/tests/unit/loader/fragment.js +++ b/tests/unit/loader/fragment.js @@ -1,5 +1,5 @@ import { Fragment } from '../../../src/loader/fragment'; -import LevelKey from '../../../src/loader/level-key'; +import { LevelKey } from '../../../src/loader/level-key'; import { PlaylistLevelType } from '../../../src/types/loader'; describe('Fragment class tests', function () { From 5e70713aff2457a9216f3cefa5663b98bd32ccb3 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 20:45:14 +0000 Subject: [PATCH 058/327] specify untrimmedFilePath --- api-extractor.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api-extractor.json b/api-extractor.json index bbcfdc2f8e3..f3aa1965b4a 100644 --- a/api-extractor.json +++ b/api-extractor.json @@ -14,7 +14,8 @@ "enabled": false }, "dtsRollup": { - "enabled": true + "enabled": true, + "untrimmedFilePath": "/dist/hls.js.d.ts" }, "tsdocMetadata": { "enabled": false From 04cf043ad7a327fda4847533cf684d3e6ab3cf8f Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 7 Feb 2021 21:35:12 +0000 Subject: [PATCH 059/327] Update .prettierignore --- .prettierignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index 4415419ddc1..70bcd295c56 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,4 +3,4 @@ package-lock.json /coverage libs/ -api-extractor/report* +/api-extractor/report* From 15bd2e3563a17aff5bf11183b1ab25c48a68dfa0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Feb 2021 07:13:10 +0000 Subject: [PATCH 060/327] [skip ci]: Bump lint-staged from 10.5.3 to 10.5.4 Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.5.3 to 10.5.4. - [Release notes](https://github.com/okonet/lint-staged/releases) - [Commits](https://github.com/okonet/lint-staged/compare/v10.5.3...v10.5.4) Signed-off-by: dependabot[bot] --- package-lock.json | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 88b78f00bf2..43b4fce229a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16699,9 +16699,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.3", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.3.tgz", - "integrity": "sha512-TanwFfuqUBLufxCc3RUtFEkFraSPNR3WzWcGF39R3f2J7S9+iF9W0KTVLfSy09lYGmZS5NDCxjNvhGMSJyFCWg==", + "version": "10.5.4", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", + "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -16879,9 +16879,9 @@ } }, "listr2": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.3.tgz", - "integrity": "sha512-vUb80S2dSUi8YxXahO8/I/s29GqnOL8ozgHVLjfWQXa03BNEeS1TpBLjh2ruaqq5ufx46BRGvfymdBSuoXET5w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", + "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -16891,7 +16891,8 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8" + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -16943,6 +16944,15 @@ "aggregate-error": "^3.0.0" } }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -16951,6 +16961,17 @@ "requires": { "has-flag": "^4.0.0" } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, From 1ba6b999470f74a23b791678bbdd6bba9a56882e Mon Sep 17 00:00:00 2001 From: Jamie Stackhouse Date: Mon, 8 Feb 2021 09:07:04 -0400 Subject: [PATCH 061/327] Remove unnecessary .npmignore file. Package.json has a "files" key that sets what is part of the npm package. --- .npmignore | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 .npmignore diff --git a/.npmignore b/.npmignore deleted file mode 100644 index fc57557e3a7..00000000000 --- a/.npmignore +++ /dev/null @@ -1,10 +0,0 @@ -demo -docs/html -misc -test -API.md -bower.json -design.md -hls.js.sublime-project -/streams.js -/lib From aff3cd7cef887cbbd4b4a1b436c3376ffdedc271 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Mon, 8 Feb 2021 14:32:19 +0000 Subject: [PATCH 062/327] bring back build:types because people might be used to using it, and also might want to run it whilst/after using build:watch --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ac6c8327d7c..828f9fceb59 100644 --- a/package.json +++ b/package.json @@ -26,10 +26,11 @@ } }, "scripts": { - "build": "webpack --progress && tsc --build tsconfig-lib.json && api-extractor run --local", + "build": "webpack --progress && npm run build:types", "build:ci": "webpack && tsc --build tsconfig-lib.json && api-extractor run", "build:debug": "webpack --progress --env debug --env demo", "build:watch": "webpack --progress --env debug --env demo --watch", + "build:types": "tsc --build tsconfig-lib.json && api-extractor run --local", "dev": "webpack serve --progress --env debug --env demo --port 8000", "docs": "esdoc", "lint": "eslint src/ tests/ --ext .js --ext .ts", From 9fe5ce210b2e6fb16b6c70ded4d3ddf90fc7e107 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Feb 2021 15:49:47 +0000 Subject: [PATCH 063/327] [skip ci]: Bump karma from 5.2.3 to 6.1.0 (#3439) Bumps [karma](https://github.com/karma-runner/karma) from 5.2.3 to 6.1.0. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](https://github.com/karma-runner/karma/compare/v5.2.3...v6.1.0) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 557 ++++++++++++++-------------------------------- package.json | 2 +- 2 files changed, 168 insertions(+), 391 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43b4fce229a..85fa64ae721 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7135,6 +7135,24 @@ "moment": "^2.10.2" } }, + "@types/component-emitter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", + "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "dev": true + }, + "@types/cors": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.9.tgz", + "integrity": "sha512-zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg==", + "dev": true + }, "@types/decompress": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.3.tgz", @@ -7747,12 +7765,6 @@ "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "dev": true }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, "agent-base": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", @@ -8080,12 +8092,6 @@ "es-abstract": "^1.17.0-next.1" } }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, "arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -8611,12 +8617,6 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, "backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", @@ -8738,15 +8738,6 @@ "integrity": "sha512-5ekuQOvO04MDj7kYZJaMab2S8SPjGJbotVNyv7QYFCOAwrGZs/YnoDNlh1U+m5hl7H2D/+n0taaAV/tfyd3KMA==", "dev": true }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -8780,12 +8771,6 @@ "readable-stream": "^3.4.0" } }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -9297,12 +9282,6 @@ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -10059,24 +10038,12 @@ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, "compress-commons": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-3.0.0.tgz", @@ -10379,9 +10346,9 @@ } }, "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", "dev": true }, "cookie-signature": { @@ -10624,6 +10591,16 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "corser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", @@ -12131,93 +12108,44 @@ } }, "engine.io": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", - "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", + "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "2.0.0", - "cookie": "0.3.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "^7.1.2" - } - }, - "engine.io-client": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", - "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", - "dev": true, - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" }, "dependencies": { - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", - "dev": true - }, - "parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", - "dev": true - }, "ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", + "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "dev": true } } }, "engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", "dev": true, "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" + "base64-arraybuffer": "0.1.4" } }, "enhanced-resolve": { @@ -14217,29 +14145,6 @@ } } }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -15067,12 +14972,6 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -16258,9 +16157,9 @@ "dev": true }, "karma": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", - "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.1.0.tgz", + "integrity": "sha512-QmRZ6HdKe6mHd89Az6yb85URRyDbXmn2IBo3lic7cwkkLjDWpjrMJxPAKlwNa5dFM1iHdT+kjtNJM0J5YAH90A==", "dev": true, "requires": { "body-parser": "^1.19.0", @@ -16281,95 +16180,58 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^2.3.0", + "socket.io": "^3.1.0", "source-map": "^0.6.1", "tmp": "0.2.1", - "ua-parser-js": "0.7.22", - "yargs": "^15.3.1" + "ua-parser-js": "^0.7.23", + "yargs": "^16.1.1" }, "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "color-convert": "^2.0.1" } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "color-name": "~1.1.4" } }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "graceful-fs": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz", + "integrity": "sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==", "dev": true }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "mime": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", + "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", "dev": true }, "source-map": { @@ -16378,17 +16240,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -16398,34 +16249,43 @@ "ansi-regex": "^5.0.0" } }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true + }, "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, @@ -19148,12 +19008,6 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -19836,24 +19690,6 @@ "@types/node": "*" } }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -20864,9 +20700,9 @@ "dev": true }, "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.2.0.tgz", + "integrity": "sha512-ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA==", "dev": true }, "rimraf": { @@ -21664,111 +21500,70 @@ } }, "socket.io": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", - "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", - "dev": true, - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.4.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.3.0", - "socket.io-parser": "~3.4.0" - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.1.tgz", + "integrity": "sha512-7cBWdsDC7bbyEF6WbBqffjizc/H4YF1wLdZoOzuYfo2uMNSFjJKuQ36t0H40o9B20DO6p+mSytEd92oP4S15bA==", "dev": true, "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": "^14.14.10", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" }, "dependencies": { - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "@types/node": { + "version": "14.14.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", + "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", "dev": true }, - "socket.io-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", - "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "ms": "2.1.2" } } } }, + "socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "dev": true + }, "socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" }, "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } } } }, @@ -22873,12 +22668,6 @@ "tmp": "^0.2.0" } }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -23130,9 +22919,9 @@ "dev": true }, "ua-parser-js": { - "version": "0.7.22", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", - "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", + "version": "0.7.23", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz", + "integrity": "sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA==", "dev": true }, "uid-safe": { @@ -25285,12 +25074,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -25453,12 +25236,6 @@ "fd-slicer": "~1.1.0" } }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 63ccd6bb41a..c5a7b293334 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "http-server": "^0.12.3", "husky": "^4.3.6", "istanbul-instrumenter-loader": "^3.0.1", - "karma": "^5.2.3", + "karma": "^6.1.0", "karma-chrome-launcher": "^3.1.0", "karma-coverage-istanbul-reporter": "^3.0.2", "karma-mocha": "^2.0.1", From e7a7615f6c021fd6057c1f669589cc88a2ccea95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Feb 2021 16:45:34 +0000 Subject: [PATCH 064/327] [skip ci]: Bump webpack-cli from 4.2.0 to 4.5.0 (#3447) * [skip ci]: Bump webpack-cli from 4.2.0 to 4.5.0 Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.2.0 to 4.5.0. - [Release notes](https://github.com/webpack/webpack-cli/releases) - [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.2.0...webpack-cli@4.5.0) Signed-off-by: dependabot[bot] * filter WEBPACK_* properties from env Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tom Jenkinson Co-authored-by: Tom Jenkinson --- package-lock.json | 157 ++++++++++++++++++---------------------------- webpack.config.js | 10 +-- 2 files changed, 68 insertions(+), 99 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85fa64ae721..b0e6413063b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4003,6 +4003,12 @@ "kuler": "^2.0.0" } }, + "@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true + }, "@eslint/eslintrc": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", @@ -7678,19 +7684,25 @@ "@xtuc/long": "4.2.2" } }, + "@webpack-cli/configtest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz", + "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", + "dev": true + }, "@webpack-cli/info": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.1.0.tgz", - "integrity": "sha512-uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz", + "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", "dev": true, "requires": { "envinfo": "^7.7.3" } }, "@webpack-cli/serve": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.1.0.tgz", - "integrity": "sha512-7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz", + "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", "dev": true }, "@xtuc/ieee754": { @@ -8029,12 +8041,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-back": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", - "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", - "dev": true - }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", @@ -10002,18 +10008,6 @@ "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", "dev": true }, - "command-line-usage": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz", - "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", - "dev": true, - "requires": { - "array-back": "^4.0.1", - "chalk": "^2.4.2", - "table-layout": "^1.0.1", - "typical": "^5.2.0" - } - }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -13252,6 +13246,12 @@ "integrity": "sha512-SfslXjiH8km0WnRiuPfpUKwlZjW5I878qsOm+2x8x3TgqmElOOLh1rgJFb+PolNdNRK3r8urEefqx0wt7vx1dA==", "dev": true }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, "fastq": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz", @@ -20358,12 +20358,6 @@ "esprima": "~4.0.0" } }, - "reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "dev": true - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -22337,18 +22331,6 @@ } } }, - "table-layout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.1.tgz", - "integrity": "sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q==", - "dev": true, - "requires": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - } - }, "taffydb": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.7.3.tgz", @@ -22912,12 +22894,6 @@ "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - }, "ua-parser-js": { "version": "0.7.23", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz", @@ -23977,30 +23953,31 @@ } }, "webpack-cli": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.2.0.tgz", - "integrity": "sha512-EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz", + "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", "dev": true, "requires": { - "@webpack-cli/info": "^1.1.0", - "@webpack-cli/serve": "^1.1.0", + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.1", + "@webpack-cli/info": "^1.2.2", + "@webpack-cli/serve": "^1.3.0", "colorette": "^1.2.1", - "command-line-usage": "^6.1.0", - "commander": "^6.2.0", + "commander": "^7.0.0", "enquirer": "^2.3.6", - "execa": "^4.1.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^2.2.0", - "leven": "^3.1.0", "rechoir": "^0.7.0", "v8-compile-cache": "^2.2.0", - "webpack-merge": "^4.2.2" + "webpack-merge": "^5.7.3" }, "dependencies": { "commander": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", - "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz", + "integrity": "sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==", "dev": true }, "cross-spawn": { @@ -24015,19 +23992,19 @@ } }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, @@ -24042,13 +24019,16 @@ } }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true }, "import-local": { "version": "3.0.2", @@ -24159,14 +24139,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true }, "which": { "version": "2.0.2", @@ -24921,16 +24898,6 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, - "wordwrapjs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.0.tgz", - "integrity": "sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ==", - "dev": true, - "requires": { - "reduce-flatten": "^2.0.0", - "typical": "^5.0.0" - } - }, "worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", diff --git a/webpack.config.js b/webpack.config.js index 62ccabdfb62..758ab232917 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -272,20 +272,22 @@ const multiConfig = [ // webpack matches the --env arguments to a string; for example, --env.debug.min translates to { debug: true, min: true } module.exports = (envArgs) => { + const requestedConfigs = Object.keys(envArgs).filter( + (key) => !/^WEBPACK_/.test(key) + ); let configs; - if (!envArgs) { + if (!requestedConfigs.length) { // If no arguments are specified, return every configuration configs = multiConfig; } else { - const enabledConfigNames = Object.keys(envArgs); // Filter out enabled configs const enabledConfigs = multiConfig.filter((config) => - enabledConfigNames.includes(config.name) + requestedConfigs.includes(config.name) ); if (!enabledConfigs.length) { throw new Error( `Couldn't find a valid config with the names ${JSON.stringify( - enabledConfigNames + requestedConfigs )}. Known configs are: ${multiConfig .map((config) => config.name) .join(', ')}` From 300631f2882ad756f17c49b920eb022e1322ccf8 Mon Sep 17 00:00:00 2001 From: Joe Bartlett Date: Tue, 9 Feb 2021 09:02:03 -0600 Subject: [PATCH 065/327] Support backbuffer constraint in VOD content Per conversation in #3457 this commit adds a backBufferLength configuration to set the backbuffer constraint for both live and VOD content. The original liveBackBufferLength config property has been deprecated and defaults to null, but is still supported for live content. --- demo/main.js | 2 +- docs/API.md | 15 +++-- src/config.ts | 6 +- src/controller/buffer-controller.ts | 20 +++--- src/events.ts | 12 ++-- src/types/events.ts | 2 +- .../buffer-controller-operations.ts | 66 +++++++++++-------- tests/unit/controller/buffer-controller.js | 34 +++++----- 8 files changed, 88 insertions(+), 69 deletions(-) diff --git a/demo/main.js b/demo/main.js index ddec77283ff..267f7499969 100644 --- a/demo/main.js +++ b/demo/main.js @@ -29,7 +29,7 @@ const hlsjsDefaults = { debug: true, enableWorker: true, lowLatencyMode: true, - liveBackBufferLength: 60 * 1.5, + backBufferLength: 60 * 1.5, }; let enableStreaming = getDemoConfigPropOrDefault('enableStreaming', true); diff --git a/docs/API.md b/docs/API.md index c047fcb1094..020180ab724 100644 --- a/docs/API.md +++ b/docs/API.md @@ -25,6 +25,7 @@ - [`defaultAudioCodec`](#defaultaudiocodec) - [`initialLiveManifestSize`](#initiallivemanifestsize) - [`maxBufferLength`](#maxbufferlength) + - [`backBufferLength`](#backbufferlength) - [`maxBufferSize`](#maxbuffersize) - [`maxBufferHole`](#maxbufferhole) - [`maxStarvationDelay`](#maxstarvationdelay) @@ -41,7 +42,7 @@ - [`liveMaxLatencyDuration`](#livemaxlatencyduration) - [`maxLiveSyncPlaybackRate`](#maxLiveSyncPlaybackRate) - [`liveDurationInfinity`](#livedurationinfinity) - - [`liveBackBufferLength`](#livebackbufferlength) + - [`liveBackBufferLength`](#livebackbufferlength) (deprecated) - [`enableWorker`](#enableworker) - [`enableSoftwareAES`](#enablesoftwareaes) - [`startLevel`](#startlevel) @@ -324,6 +325,7 @@ var config = { initialLiveManifestSize: 1, maxBufferLength: 30, maxMaxBufferLength: 600, + backBufferLength: Infinity, maxBufferSize: 60 * 1000 * 1000, maxBufferHole: 0.5, highBufferWatchdogPeriod: 2, @@ -333,7 +335,6 @@ var config = { liveSyncDurationCount: 3, liveMaxLatencyDurationCount: Infinity, liveDurationInfinity: false, - liveBackBufferLength: Infinity, enableWorker: true, enableSoftwareAES: true, manifestLoadingTimeOut: 10000, @@ -460,6 +461,12 @@ number of segments needed to start a playback of Live stream. Buffering will beg Maximum buffer length in seconds. If buffer length is/become less than this value, a new fragment will be loaded. This is the guaranteed buffer length hls.js will try to reach, regardless of maxBufferSize. +### `backBufferLength` + +(default: `Infinity`) + +The maximum duration of buffered media to keep once it has been played, in seconds. Any video buffered past this duration will be evicted. `Infinity` means no restriction on back buffer length; `0` keeps the minimum amount. The minimum amount is equal to the target duration of a segment to ensure that current playback is not interrupted. + ### `maxBufferSize` (default: 60 MB) @@ -604,9 +611,7 @@ If you want to have a native Live UI in environments like iOS Safari, Safari, An ### `liveBackBufferLength` -(default: `Infinity`) - -Sets the maximum length of the buffer, in seconds, to keep during a live stream. Any video buffered past this time will be evicted. `Infinity` means no restriction on back buffer length; `0` keeps the minimum amount. The minimum amount is equal to the target duration of a segment to ensure that current playback is not interrupted. +`liveBackBufferLength` has been deprecated. Use `backBufferLength` instead. ### `enableWorker` diff --git a/src/config.ts b/src/config.ts index 34836132bcd..263c861e659 100644 --- a/src/config.ts +++ b/src/config.ts @@ -38,7 +38,7 @@ type ABRControllerConfig = { export type BufferControllerConfig = { appendErrorMaxRetry: number; liveDurationInfinity: boolean; - liveBackBufferLength: number; + liveBackBufferLength: number | null; }; type CapLevelControllerConfig = { @@ -102,6 +102,7 @@ type StreamControllerConfig = { defaultAudioCodec?: string; initialLiveManifestSize: number; maxBufferLength: number; + backBufferLength: number; maxBufferSize: number; maxBufferHole: number; highBufferWatchdogPeriod: number; @@ -191,6 +192,7 @@ export const hlsDefaultConfig: HlsConfig = { capLevelToPlayerSize: false, // used by cap-level-controller initialLiveManifestSize: 1, // used by stream-controller maxBufferLength: 30, // used by stream-controller + backBufferLength: Infinity, // used by buffer-controller maxBufferSize: 60 * 1000 * 1000, // used by stream-controller maxBufferHole: 0.1, // used by stream-controller highBufferWatchdogPeriod: 2, // used by stream-controller @@ -203,7 +205,7 @@ export const hlsDefaultConfig: HlsConfig = { liveMaxLatencyDuration: undefined, // used by latency-controller maxLiveSyncPlaybackRate: 1, // used by latency-controller liveDurationInfinity: false, // used by buffer-controller - liveBackBufferLength: Infinity, // used by buffer-controller + liveBackBufferLength: null, // used by buffer-controller maxMaxBufferLength: 600, // used by stream-controller enableWorker: true, // used by demuxer enableSoftwareAES: true, // used by decrypter diff --git a/src/controller/buffer-controller.ts b/src/controller/buffer-controller.ts index b3899fe7b57..fe36c5dd3d0 100644 --- a/src/controller/buffer-controller.ts +++ b/src/controller/buffer-controller.ts @@ -483,7 +483,7 @@ export default class BufferController implements ComponentAPI { } this.blockBuffers(onUnblocked, buffersAppendedTo); - this.flushLiveBackBuffer(); + this.flushBackBuffer(); } // on BUFFER_EOS mark matching sourcebuffer(s) as ended and trigger checkEos() @@ -526,21 +526,25 @@ export default class BufferController implements ComponentAPI { } } - flushLiveBackBuffer() { - // clear back buffer for live only + flushBackBuffer() { const { hls, details, media, sourceBuffer } = this; - if (!media || details === null || details.live === false) { + if (!media || details === null) { return; } - const liveBackBufferLength = hls.config.liveBackBufferLength; - if (!Number.isFinite(liveBackBufferLength) || liveBackBufferLength < 0) { + // Support for deprecated liveBackBufferLength + const backBufferLength = + details.live && hls.config.liveBackBufferLength !== null + ? hls.config.liveBackBufferLength + : hls.config.backBufferLength; + + if (!Number.isFinite(backBufferLength) || backBufferLength < 0) { return; } const currentTime = media.currentTime; const targetBackBufferPosition = - currentTime - Math.max(liveBackBufferLength, details.levelTargetDuration); + currentTime - Math.max(backBufferLength, details.levelTargetDuration); this.getSourceBufferTypes().forEach((type: SourceBufferName) => { const sb = sourceBuffer[type]; if (sb) { @@ -550,7 +554,7 @@ export default class BufferController implements ComponentAPI { buffered.length > 0 && targetBackBufferPosition > buffered.start(0) ) { - hls.trigger(Events.LIVE_BACK_BUFFER_REACHED, { + hls.trigger(Events.BACK_BUFFER_REACHED, { bufferEnd: targetBackBufferPosition, }); hls.trigger(Events.BUFFER_FLUSHING, { diff --git a/src/events.ts b/src/events.ts index 4168e5ef17d..42fd27cbdd7 100644 --- a/src/events.ts +++ b/src/events.ts @@ -43,7 +43,7 @@ import { FragParsedData, AudioTracksUpdatedData, FragLoadEmergencyAbortedData, - LiveBackBufferData, + BackBufferData, TrackLoadingData, BufferFlushedData, } from './types/events'; @@ -161,8 +161,8 @@ export enum Events { KEY_LOADING = 'hlsKeyLoading', // fired when a decrypt key loading is completed - data: { frag : fragment object, payload : key payload, stats : LoaderStats } KEY_LOADED = 'hlsKeyLoaded', - // fired when the live back buffer is reached defined by the liveBackBufferLength config option - data : { bufferEnd: number } - LIVE_BACK_BUFFER_REACHED = 'hlsLiveBackBufferReached', + // fired when the back buffer is reached as defined by the backBufferLength config option - data : { bufferEnd: number } + BACK_BUFFER_REACHED = 'hlsBackBufferReached', } export interface HlsListeners { @@ -351,9 +351,9 @@ export interface HlsListeners { data: KeyLoadingData ) => void; [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void; - [Events.LIVE_BACK_BUFFER_REACHED]: ( - event: Events.LIVE_BACK_BUFFER_REACHED, - data: LiveBackBufferData + [Events.BACK_BUFFER_REACHED]: ( + event: Events.BACK_BUFFER_REACHED, + data: BackBufferData ) => void; } export interface HlsEventEmitter { diff --git a/src/types/events.ts b/src/types/events.ts index 5b09f5b304d..3c8d56ba2ad 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -335,6 +335,6 @@ export interface KeyLoadedData { frag: Fragment; } -export interface LiveBackBufferData { +export interface BackBufferData { bufferEnd: number; } diff --git a/tests/unit/controller/buffer-controller-operations.ts b/tests/unit/controller/buffer-controller-operations.ts index 89ad2cf286d..f7a0ffe90ec 100644 --- a/tests/unit/controller/buffer-controller-operations.ts +++ b/tests/unit/controller/buffer-controller-operations.ts @@ -242,9 +242,9 @@ describe('BufferController', function () { describe('onFragParsed', function () { it('should trigger FRAG_BUFFERED when all audio/video data has been buffered', function () { - const flushLiveBackBufferSpy = sandbox.spy( + const flushBackBufferSpy = sandbox.spy( bufferController, - 'flushLiveBackBuffer' + 'flushBackBuffer' ); const frag = new Fragment(PlaylistLevelType.MAIN, ''); frag.setElementaryStreamInfo(ElementaryStreamTypes.AUDIO, 0, 0, 0, 0); @@ -252,7 +252,7 @@ describe('BufferController', function () { bufferController.onFragParsed(Events.FRAG_PARSED, { frag }); expect(queueAppendBlockerSpy).to.have.been.calledTwice; - expect(flushLiveBackBufferSpy).to.have.been.calledOnce; + expect(flushBackBufferSpy).to.have.been.calledOnce; return new Promise((resolve, reject) => { hls.on(Events.FRAG_BUFFERED, (event, data) => { try { @@ -367,13 +367,12 @@ describe('BufferController', function () { }); }); - describe('flushLiveBackBuffer', function () { + describe('flushBackBuffer', function () { beforeEach(function () { bufferController.details = { - live: true, levelTargetDuration: 10, }; - hls.config.liveBackBufferLength = 10; + hls.config.backBufferLength = 10; queueNames.forEach((name) => { const sb = bufferController.sourceBuffer[name]; sb.setBuffered(0, 30); @@ -383,33 +382,43 @@ describe('BufferController', function () { it('exits early if no media is defined', function () { delete bufferController.media; - bufferController.flushLiveBackBuffer(); + bufferController.flushBackBuffer(); expect(triggerSpy, 'BUFFER_FLUSHING should not have been triggered').to .have.not.been.called; }); - it('exits early if the stream is not live', function () { - bufferController.details = { - live: false, - }; - bufferController.flushLiveBackBuffer(); + it('exits early if the backBufferLength config is not a finite number, or less than 0', function () { + hls.config.backBufferLength = null; + bufferController.flushBackBuffer(); + hls.config.backBufferLength = -1; + bufferController.flushBackBuffer(); + hls.config.backBufferLength = Infinity; + bufferController.flushBackBuffer(); expect(triggerSpy, 'BUFFER_FLUSHING should not have been triggered').to .have.not.been.called; }); - it('exits early if the liveBackBufferLength config is not a finite number, or less than 0', function () { - hls.config.liveBackBufferLength = null; - bufferController.flushLiveBackBuffer(); - hls.config.liveBackBufferLength = -1; - bufferController.flushLiveBackBuffer(); - hls.config.liveBackBufferLength = Infinity; - bufferController.flushLiveBackBuffer(); - expect(triggerSpy, 'BUFFER_FLUSHING should not have been triggered').to - .have.not.been.called; + it('should execute a remove operation if flushing a valid backBuffer range', function () { + bufferController.flushBackBuffer(); + expect(triggerSpy).to.have.callCount(4); + queueNames.forEach((name) => { + expect( + triggerSpy, + `BUFFER_FLUSHING should have been triggered for the ${name} SourceBuffer` + ).to.have.been.calledWith(Events.BUFFER_FLUSHING, { + startOffset: 0, + endOffset: 20, + type: name, + }); + }); }); - it('should execute a remove operation if flushing a valid backBuffer range', function () { - bufferController.flushLiveBackBuffer(); + it('should support the deprecated liveBackBufferLength for live content', function () { + bufferController.details.live = true; + hls.config.backBufferLength = Infinity; + hls.config.liveBackBufferLength = 10; + bufferController.flushBackBuffer(); + expect(triggerSpy).to.have.callCount(4); queueNames.forEach((name) => { expect( @@ -425,8 +434,8 @@ describe('BufferController', function () { it('removes a maximum of one targetDuration from currentTime', function () { mockMedia.currentTime = 25; - hls.config.liveBackBufferLength = 5; - bufferController.flushLiveBackBuffer(); + hls.config.backBufferLength = 5; + bufferController.flushBackBuffer(); queueNames.forEach((name) => { expect( triggerSpy, @@ -445,7 +454,7 @@ describe('BufferController', function () { const buffer = bufferController.sourceBuffer[name]; buffer.setBuffered(10, 30); }); - bufferController.flushLiveBackBuffer(); + bufferController.flushBackBuffer(); expect(triggerSpy, 'BUFFER_FLUSHING should not have been triggered').to .have.not.been.called; }); @@ -455,10 +464,10 @@ describe('BufferController', function () { const buffer = bufferController.sourceBuffer[name]; buffer.setBuffered(0, 0); }); - bufferController.flushLiveBackBuffer(); + bufferController.flushBackBuffer(); bufferController.sourceBuffer = {}; - bufferController.flushLiveBackBuffer(); + bufferController.flushBackBuffer(); expect(triggerSpy, 'BUFFER_FLUSHING should not have been triggered').to .have.not.been.called; @@ -470,7 +479,6 @@ describe('BufferController', function () { beforeEach(function () { const details = Object.assign(new LevelDetails(''), { averagetargetduration: 6, - live: true, totalduration: 5, fragments: [{ start: 5 }], }); diff --git a/tests/unit/controller/buffer-controller.js b/tests/unit/controller/buffer-controller.js index c5373c1aac2..071ce2326d1 100644 --- a/tests/unit/controller/buffer-controller.js +++ b/tests/unit/controller/buffer-controller.js @@ -65,30 +65,30 @@ describe('BufferController tests', function () { // } // }; // bufferController._live = true; - // hls.config.liveBackBufferLength = 10; + // hls.config.backBufferLength = 10; // }); // // it('exits early if not live', function () { - // bufferController.flushLiveBackBuffer(); + // bufferController.flushBackBuffer(); // expect(removeStub).to.not.have.been.called; // }); // - // it('exits early if liveBackBufferLength is not a finite number, or is less than 0', function () { - // hls.config.liveBackBufferLength = 'foo'; - // bufferController.flushLiveBackBuffer(); + // it('exits early if backBufferLength is not a finite number, or is less than 0', function () { + // hls.config.backBufferLength = 'foo'; + // bufferController.flushBackBuffer(); // - // hls.config.liveBackBufferLength = -1; - // bufferController.flushLiveBackBuffer(); + // hls.config.backBufferLength = -1; + // bufferController.flushBackBuffer(); // // expect(removeStub).to.not.have.been.called; // }); // // it('does not flush if nothing is buffered', function () { // delete mockSourceBuffer.buffered; - // bufferController.flushLiveBackBuffer(); + // bufferController.flushBackBuffer(); // // mockSourceBuffer = null; - // bufferController.flushLiveBackBuffer(); + // bufferController.flushBackBuffer(); // // expect(removeStub).to.not.have.been.called; // }); @@ -96,30 +96,30 @@ describe('BufferController tests', function () { // it('does not flush if no buffered range intersects with back buffer limit', function () { // bufStart = 5; // mockMedia.currentTime = 10; - // bufferController.flushLiveBackBuffer(); + // bufferController.flushBackBuffer(); // expect(removeStub).to.not.have.been.called; // }); // - // it('does not flush if the liveBackBufferLength is Infinity', function () { - // hls.config.liveBackBufferLength = Infinity; + // it('does not flush if the backBufferLength is Infinity', function () { + // hls.config.backBufferLength = Infinity; // mockMedia.currentTime = 15; - // bufferController.flushLiveBackBuffer(); + // bufferController.flushBackBuffer(); // expect(removeStub).to.not.have.been.called; // }); // // it('flushes up to the back buffer limit if the buffer intersects with that point', function () { // mockMedia.currentTime = 15; - // bufferController.flushLiveBackBuffer(); + // bufferController.flushBackBuffer(); // expect(removeStub).to.have.been.calledOnce; // expect(bufferController.flushBufferCounter).to.equal(0); // expect(removeStub).to.have.been.calledWith('video', mockSourceBuffer.video, 0, 5); // }); // - // it('flushes to a max of one targetDuration from currentTime, regardless of liveBackBufferLength', function () { + // it('flushes to a max of one targetDuration from currentTime, regardless of backBufferLength', function () { // mockMedia.currentTime = 15; // bufferController._levelTargetDuration = 5; - // hls.config.liveBackBufferLength = 0; - // bufferController.flushLiveBackBuffer(); + // hls.config.backBufferLength = 0; + // bufferController.flushBackBuffer(); // expect(removeStub).to.have.been.calledWith('video', mockSourceBuffer.video, 0, 10); // }); // From 4fe92d547391fab938b95eeb66b775092a0c3fb4 Mon Sep 17 00:00:00 2001 From: Jamie Stackhouse Date: Wed, 10 Feb 2021 10:11:33 -0400 Subject: [PATCH 066/327] Remove note about @types/hls.js from README --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 65ddb53a891..a4fc45f7de3 100644 --- a/README.md +++ b/README.md @@ -223,12 +223,6 @@ Or type npm install --save hls.js ``` -Optionally there is a declaration file available to help with code completion and hinting within your IDE for the hls.js api - -```sh -npm install --save-dev @types/hls.js -``` - ### Server-side-rendering (SSR) and `require` from a Node.js runtime We support this now. You can safely require this library in Node and absolutely nothing will happen :) See https://github.com/video-dev/hls.js/pull/1841 From 54c4bce2e4b64416de07853b38e34ece0f71884b Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Thu, 11 Feb 2021 16:59:51 +0000 Subject: [PATCH 067/327] update dependabot prefix so that actions still trigger (#3468) Fixes #3466 --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0a3403b27ae..0d5feb15d8f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,6 +6,6 @@ updates: interval: daily commit-message: # prevent netlify build - prefix: '[skip ci]' + prefix: '[skip netlify]' open-pull-requests-limit: 99 versioning-strategy: increase-if-necessary From b86540dea8afe6d4d996d0f8fc5680b04457069d Mon Sep 17 00:00:00 2001 From: Joe Bartlett Date: Thu, 11 Feb 2021 18:02:57 -0600 Subject: [PATCH 068/327] Provide a public LiveBackBufferData interface The LiveBackBufferData interface is now public, so I've updated the event types to provide backward compatibility and a deprecation notice. --- src/config.ts | 2 +- src/hls.ts | 1 + src/types/events.ts | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index be9ca90c4ed..acaa20e9135 100644 --- a/src/config.ts +++ b/src/config.ts @@ -37,6 +37,7 @@ export type ABRControllerConfig = { export type BufferControllerConfig = { appendErrorMaxRetry: number; + backBufferLength: number; liveDurationInfinity: boolean; liveBackBufferLength: number | null; }; @@ -102,7 +103,6 @@ export type StreamControllerConfig = { defaultAudioCodec?: string; initialLiveManifestSize: number; maxBufferLength: number; - backBufferLength: number; maxBufferSize: number; maxBufferHole: number; highBufferWatchdogPeriod: number; diff --git a/src/hls.ts b/src/hls.ts index de2c05972d6..9e954166172 100644 --- a/src/hls.ts +++ b/src/hls.ts @@ -901,6 +901,7 @@ export type { AudioTracksUpdatedData, AudioTrackSwitchedData, AudioTrackSwitchingData, + BackBufferData, BufferAppendedData, BufferAppendingData, BufferCodecsData, diff --git a/src/types/events.ts b/src/types/events.ts index 7aeb4caa2ed..6d76e9ce9f1 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -338,3 +338,8 @@ export interface KeyLoadedData { export interface BackBufferData { bufferEnd: number; } + +/** + * Deprecated; please use BackBufferData + */ +export interface LiveBackBufferData extends BackBufferData {} From 61975957e976350e3846bcfbb4009e9e299fb6eb Mon Sep 17 00:00:00 2001 From: Joe Bartlett Date: Thu, 11 Feb 2021 19:02:11 -0600 Subject: [PATCH 069/327] Update API report with backBuffer changes --- api-extractor/report/hls.js.api.md | 45 +++++++++++++++++------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/api-extractor/report/hls.js.api.md b/api-extractor/report/hls.js.api.md index cd1c1fcf88c..8bc844c4984 100644 --- a/api-extractor/report/hls.js.api.md +++ b/api-extractor/report/hls.js.api.md @@ -89,6 +89,14 @@ export interface AudioTrackSwitchingData { url: string; } +// Warning: (ae-missing-release-tag) "BackBufferData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface BackBufferData { + // (undocumented) + bufferEnd: number; +} + // Warning: (ae-missing-release-tag) "BaseSegment" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -164,8 +172,9 @@ export interface BufferCodecsData { // @public (undocumented) export type BufferControllerConfig = { appendErrorMaxRetry: number; + backBufferLength: number; liveDurationInfinity: boolean; - liveBackBufferLength: number; + liveBackBufferLength: number | null; }; // Warning: (ae-missing-release-tag) "BufferCreatedData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -461,6 +470,8 @@ export enum Events { // (undocumented) AUDIO_TRACKS_UPDATED = "hlsAudioTracksUpdated", // (undocumented) + BACK_BUFFER_REACHED = "hlsBackBufferReached", + // (undocumented) BUFFER_APPENDED = "hlsBufferAppended", // (undocumented) BUFFER_APPENDING = "hlsBufferAppending", @@ -527,8 +538,6 @@ export enum Events { // (undocumented) LEVELS_UPDATED = "hlsLevelsUpdated", // (undocumented) - LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached", - // (undocumented) MANIFEST_LOADED = "hlsManifestLoaded", // (undocumented) MANIFEST_LOADING = "hlsManifestLoading", @@ -975,6 +984,8 @@ export interface HlsListeners { // (undocumented) [Events.AUDIO_TRACK_SWITCHING]: (event: Events.AUDIO_TRACK_SWITCHING, data: AudioTrackSwitchingData) => void; // (undocumented) + [Events.BACK_BUFFER_REACHED]: (event: Events.BACK_BUFFER_REACHED, data: BackBufferData) => void; + // (undocumented) [Events.BUFFER_APPENDED]: (event: Events.BUFFER_APPENDED, data: BufferAppendedData) => void; // (undocumented) [Events.BUFFER_APPENDING]: (event: Events.BUFFER_APPENDING, data: BufferAppendingData) => void; @@ -1041,8 +1052,6 @@ export interface HlsListeners { // (undocumented) [Events.LEVEL_UPDATED]: (event: Events.LEVEL_UPDATED, data: LevelUpdatedData) => void; // (undocumented) - [Events.LIVE_BACK_BUFFER_REACHED]: (event: Events.LIVE_BACK_BUFFER_REACHED, data: LiveBackBufferData) => void; - // (undocumented) [Events.MANIFEST_LOADED]: (event: Events.MANIFEST_LOADED, data: ManifestLoadedData) => void; // (undocumented) [Events.MANIFEST_LOADING]: (event: Events.MANIFEST_LOADING, data: ManifestLoadingData) => void; @@ -1513,10 +1522,8 @@ export interface LevelUpdatedData { // Warning: (ae-missing-release-tag) "LiveBackBufferData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // -// @public (undocumented) -export interface LiveBackBufferData { - // (undocumented) - bufferEnd: number; +// @public +export interface LiveBackBufferData extends BackBufferData { } // Warning: (ae-missing-release-tag) "Loader" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -2093,16 +2100,16 @@ export interface UserdataSample { // Warnings were encountered during analysis: // -// src/config.ts:153:3 - (ae-forgotten-export) The symbol "AudioStreamController" needs to be exported by the entry point hls.d.ts -// src/config.ts:154:3 - (ae-forgotten-export) The symbol "AudioTrackController" needs to be exported by the entry point hls.d.ts -// src/config.ts:156:3 - (ae-forgotten-export) The symbol "SubtitleStreamController" needs to be exported by the entry point hls.d.ts -// src/config.ts:157:3 - (ae-forgotten-export) The symbol "SubtitleTrackController" needs to be exported by the entry point hls.d.ts -// src/config.ts:158:3 - (ae-forgotten-export) The symbol "TimelineController" needs to be exported by the entry point hls.d.ts -// src/config.ts:160:3 - (ae-forgotten-export) The symbol "EMEController" needs to be exported by the entry point hls.d.ts -// src/config.ts:162:3 - (ae-forgotten-export) The symbol "AbrController" needs to be exported by the entry point hls.d.ts -// src/config.ts:163:3 - (ae-forgotten-export) The symbol "BufferController" needs to be exported by the entry point hls.d.ts -// src/config.ts:164:3 - (ae-forgotten-export) The symbol "CapLevelController" needs to be exported by the entry point hls.d.ts -// src/config.ts:165:3 - (ae-forgotten-export) The symbol "FPSController" needs to be exported by the entry point hls.d.ts +// src/config.ts:154:3 - (ae-forgotten-export) The symbol "AudioStreamController" needs to be exported by the entry point hls.d.ts +// src/config.ts:155:3 - (ae-forgotten-export) The symbol "AudioTrackController" needs to be exported by the entry point hls.d.ts +// src/config.ts:157:3 - (ae-forgotten-export) The symbol "SubtitleStreamController" needs to be exported by the entry point hls.d.ts +// src/config.ts:158:3 - (ae-forgotten-export) The symbol "SubtitleTrackController" needs to be exported by the entry point hls.d.ts +// src/config.ts:159:3 - (ae-forgotten-export) The symbol "TimelineController" needs to be exported by the entry point hls.d.ts +// src/config.ts:161:3 - (ae-forgotten-export) The symbol "EMEController" needs to be exported by the entry point hls.d.ts +// src/config.ts:163:3 - (ae-forgotten-export) The symbol "AbrController" needs to be exported by the entry point hls.d.ts +// src/config.ts:164:3 - (ae-forgotten-export) The symbol "BufferController" needs to be exported by the entry point hls.d.ts +// src/config.ts:165:3 - (ae-forgotten-export) The symbol "CapLevelController" needs to be exported by the entry point hls.d.ts +// src/config.ts:166:3 - (ae-forgotten-export) The symbol "FPSController" needs to be exported by the entry point hls.d.ts // (No @packageDocumentation comment for this package) From 7d8b282e658bd6c6fe81c8fa9525953e9c035361 Mon Sep 17 00:00:00 2001 From: Joe Bartlett Date: Thu, 11 Feb 2021 20:40:45 -0600 Subject: [PATCH 070/327] Provide support for LIVE_BACK_BUFFER_REACHED Per 3b07036 the LIVE_BACK_BUFFER_REACHED event is technically part of the public API and should be supported as a deprecated event. Generics convention enforcement prohibits creating an alias of the BACK_BUFFER_REACHED event, so this commit adds a duplicate for the old name. --- src/controller/buffer-controller.ts | 6 ++++++ src/events.ts | 7 +++++++ .../controller/buffer-controller-operations.ts | 16 ++++------------ 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/controller/buffer-controller.ts b/src/controller/buffer-controller.ts index c41d4a802d7..f320366b415 100644 --- a/src/controller/buffer-controller.ts +++ b/src/controller/buffer-controller.ts @@ -557,6 +557,12 @@ export default class BufferController implements ComponentAPI { hls.trigger(Events.BACK_BUFFER_REACHED, { bufferEnd: targetBackBufferPosition, }); + + // Support for deprecated event: + hls.trigger(Events.LIVE_BACK_BUFFER_REACHED, { + bufferEnd: targetBackBufferPosition, + }); + hls.trigger(Events.BUFFER_FLUSHING, { startOffset: 0, endOffset: targetBackBufferPosition, diff --git a/src/events.ts b/src/events.ts index 42fd27cbdd7..ebb46669594 100644 --- a/src/events.ts +++ b/src/events.ts @@ -44,6 +44,7 @@ import { AudioTracksUpdatedData, FragLoadEmergencyAbortedData, BackBufferData, + LiveBackBufferData, TrackLoadingData, BufferFlushedData, } from './types/events'; @@ -161,6 +162,8 @@ export enum Events { KEY_LOADING = 'hlsKeyLoading', // fired when a decrypt key loading is completed - data: { frag : fragment object, payload : key payload, stats : LoaderStats } KEY_LOADED = 'hlsKeyLoaded', + // deprecated; please use BACK_BUFFER_REACHED - data : { bufferEnd: number } + LIVE_BACK_BUFFER_REACHED = 'hlsLiveBackBufferReached', // fired when the back buffer is reached as defined by the backBufferLength config option - data : { bufferEnd: number } BACK_BUFFER_REACHED = 'hlsBackBufferReached', } @@ -351,6 +354,10 @@ export interface HlsListeners { data: KeyLoadingData ) => void; [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void; + [Events.LIVE_BACK_BUFFER_REACHED]: ( + event: Events.LIVE_BACK_BUFFER_REACHED, + data: LiveBackBufferData + ) => void; [Events.BACK_BUFFER_REACHED]: ( event: Events.BACK_BUFFER_REACHED, data: BackBufferData diff --git a/tests/unit/controller/buffer-controller-operations.ts b/tests/unit/controller/buffer-controller-operations.ts index a854e1e6070..e8c49f0b293 100644 --- a/tests/unit/controller/buffer-controller-operations.ts +++ b/tests/unit/controller/buffer-controller-operations.ts @@ -400,7 +400,7 @@ describe('BufferController', function () { it('should execute a remove operation if flushing a valid backBuffer range', function () { bufferController.flushBackBuffer(); - expect(triggerSpy).to.have.callCount(4); + expect(triggerSpy.withArgs(Events.BUFFER_FLUSHING)).to.have.callCount(2); queueNames.forEach((name) => { expect( triggerSpy, @@ -419,17 +419,9 @@ describe('BufferController', function () { hls.config.liveBackBufferLength = 10; bufferController.flushBackBuffer(); - expect(triggerSpy).to.have.callCount(4); - queueNames.forEach((name) => { - expect( - triggerSpy, - `BUFFER_FLUSHING should have been triggered for the ${name} SourceBuffer` - ).to.have.been.calledWith(Events.BUFFER_FLUSHING, { - startOffset: 0, - endOffset: 20, - type: name, - }); - }); + expect( + triggerSpy.withArgs(Events.LIVE_BACK_BUFFER_REACHED) + ).to.have.callCount(2); }); it('removes a maximum of one targetDuration from currentTime', function () { From 5f7e6b8c31575ef594b87f62c62019963c995682 Mon Sep 17 00:00:00 2001 From: Joe Bartlett Date: Thu, 11 Feb 2021 20:45:46 -0600 Subject: [PATCH 071/327] Restore LIVE_BACK_BUFFER_REACHED to API report --- api-extractor/report/hls.js.api.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/api-extractor/report/hls.js.api.md b/api-extractor/report/hls.js.api.md index 8bc844c4984..9fb93273622 100644 --- a/api-extractor/report/hls.js.api.md +++ b/api-extractor/report/hls.js.api.md @@ -538,6 +538,8 @@ export enum Events { // (undocumented) LEVELS_UPDATED = "hlsLevelsUpdated", // (undocumented) + LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached", + // (undocumented) MANIFEST_LOADED = "hlsManifestLoaded", // (undocumented) MANIFEST_LOADING = "hlsManifestLoading", @@ -1052,6 +1054,8 @@ export interface HlsListeners { // (undocumented) [Events.LEVEL_UPDATED]: (event: Events.LEVEL_UPDATED, data: LevelUpdatedData) => void; // (undocumented) + [Events.LIVE_BACK_BUFFER_REACHED]: (event: Events.LIVE_BACK_BUFFER_REACHED, data: LiveBackBufferData) => void; + // (undocumented) [Events.MANIFEST_LOADED]: (event: Events.MANIFEST_LOADED, data: ManifestLoadedData) => void; // (undocumented) [Events.MANIFEST_LOADING]: (event: Events.MANIFEST_LOADING, data: ManifestLoadingData) => void; From f02907d44dcf346c2c8ed3ececae5da00fbe8a00 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Feb 2021 06:16:47 +0000 Subject: [PATCH 072/327] [skip netlify]: Bump @babel/core from 7.12.13 to 7.12.16 Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.13 to 7.12.16. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.16/packages/babel-core) Signed-off-by: dependabot[bot] --- package-lock.json | 64 +++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 605a3f7817b..9a695a301ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,16 +19,16 @@ "dev": true }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.16.tgz", + "integrity": "sha512-t/hHIB504wWceOeaOoONOhu+gX+hpjfeN6YRBT209X/4sibZQfSF1I0HFRRlBe97UZZosGx5XwUg1ZgNbelmNw==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", + "@babel/generator": "^7.12.15", "@babel/helper-module-transforms": "^7.12.13", "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", + "@babel/parser": "^7.12.16", "@babel/template": "^7.12.13", "@babel/traverse": "^7.12.13", "@babel/types": "^7.12.13", @@ -51,9 +51,9 @@ } }, "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "version": "7.12.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", + "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", "dev": true, "requires": { "@babel/types": "^7.12.13", @@ -108,9 +108,9 @@ } }, "@babel/parser": { - "version": "7.12.14", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", - "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", "dev": true }, "@babel/template": { @@ -491,9 +491,9 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz", + "integrity": "sha512-zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ==", "dev": true, "requires": { "@babel/types": "^7.12.13" @@ -573,9 +573,9 @@ } }, "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "version": "7.12.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", + "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", "dev": true, "requires": { "@babel/types": "^7.12.13", @@ -630,9 +630,9 @@ } }, "@babel/parser": { - "version": "7.12.14", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", - "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", "dev": true }, "@babel/template": { @@ -762,9 +762,9 @@ } }, "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "version": "7.12.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", + "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", "dev": true, "requires": { "@babel/types": "^7.12.13", @@ -819,9 +819,9 @@ } }, "@babel/parser": { - "version": "7.12.14", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", - "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", "dev": true }, "@babel/template": { @@ -1069,9 +1069,9 @@ } }, "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "version": "7.12.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", + "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", "dev": true, "requires": { "@babel/types": "^7.12.13", @@ -1126,9 +1126,9 @@ } }, "@babel/parser": { - "version": "7.12.14", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.14.tgz", - "integrity": "sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", "dev": true }, "@babel/template": { From 8d7b9daedbe7d2966f15f03c847071f5da91303f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Feb 2021 07:25:03 +0000 Subject: [PATCH 073/327] [skip netlify]: Bump @babel/plugin-proposal-optional-chaining Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.12.13 to 7.12.16. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.16/packages/babel-plugin-proposal-optional-chaining) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a695a301ff..78dbe911221 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1364,9 +1364,9 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.13.tgz", - "integrity": "sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.16.tgz", + "integrity": "sha512-O3ohPwOhkwji5Mckb7F/PJpJVJY3DpPsrt/F0Bk40+QMk9QpAIqeGusHWqu/mYqsM8oBa6TziL/2mbERWsUZjg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.12.13", From 8628a55fb4b6992317fd7e8e4e5498d9f73fb104 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Feb 2021 07:52:19 +0000 Subject: [PATCH 074/327] [skip netlify]: Bump @babel/preset-env from 7.12.13 to 7.12.16 Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.13 to 7.12.16. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.16/packages/babel-preset-env) Signed-off-by: dependabot[bot] --- package-lock.json | 1454 ++++----------------------------------------- 1 file changed, 105 insertions(+), 1349 deletions(-) diff --git a/package-lock.json b/package-lock.json index 78dbe911221..5379e65005f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -229,17 +229,23 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.13.tgz", - "integrity": "sha512-dXof20y/6wB5HnLOGyLh/gobsMvDNoekcC+8MCV2iaTd5JemhFkPD73QB+tK3iFC9P0xJC73B6MvKkyUfS9cCw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.16.tgz", + "integrity": "sha512-dBHNEEaZx7F3KoUYqagIhRIeqyyuI65xMndMZ3WwGwEBI609I4TleYQHcrS627vbKyNTXqShoN+fvYD9HuQxAg==", "dev": true, "requires": { "@babel/compat-data": "^7.12.13", - "@babel/helper-validator-option": "^7.12.11", + "@babel/helper-validator-option": "^7.12.16", "browserslist": "^4.14.5", "semver": "^5.5.0" }, "dependencies": { + "@babel/helper-validator-option": { + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.16.tgz", + "integrity": "sha512-uCgsDBPUQDvzr11ePPo4TVEocxj8RXjUVSC/Y8N1YpVAI/XDdUwGJu78xmlGhTxj2ntaWM7n9LQdRtyhOzT2YQ==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -405,9 +411,9 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.13.tgz", - "integrity": "sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.16.tgz", + "integrity": "sha512-jAcQ1biDYZBdaAxB4yg46/XirgX7jBDiMHDbwYQOgtViLBXGxJpZQ24jutmBqAIB/q+AwB6j+NbBXjKxEY8vqg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.12.13", @@ -945,9 +951,9 @@ } }, "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", + "version": "7.12.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", + "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", "dev": true, "requires": { "@babel/types": "^7.12.13", @@ -1002,9 +1008,9 @@ } }, "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", "dev": true }, "@babel/template": { @@ -1227,13 +1233,21 @@ } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.16.tgz", + "integrity": "sha512-yiDkYFapVxNOCcBfLnsb/qdsliroM+vc3LHiZwS4gh7pFjo5Xq3BDhYBNn3H3ao+hWPvqeeTdU+s+FIvokov+w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } } }, "@babel/plugin-proposal-export-namespace-from": { @@ -1392,165 +1406,11 @@ "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", - "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", - "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } } } }, @@ -1741,37 +1601,11 @@ "@babel/helper-remap-async-to-generator": "^7.12.13" }, "dependencies": { - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } } } }, @@ -1833,17 +1667,6 @@ "@babel/highlight": "^7.12.13" } }, - "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, "@babel/helper-function-name": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", @@ -1864,42 +1687,12 @@ "@babel/types": "^7.12.13" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, "@babel/helper-split-export-declaration": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", @@ -1927,9 +1720,9 @@ } }, "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", "dev": true }, "@babel/template": { @@ -1943,23 +1736,6 @@ "@babel/types": "^7.12.13" } }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, "@babel/types": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", @@ -2140,9 +1916,9 @@ } }, "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", "dev": true }, "@babel/template": { @@ -2214,187 +1990,11 @@ "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", - "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } } } }, @@ -2410,578 +2010,56 @@ "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { - "@babel/code-frame": { + "@babel/helper-plugin-utils": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true + } + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz", + "integrity": "sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.12.13", + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", + "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "dev": true }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", - "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz", - "integrity": "sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", - "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz", - "integrity": "sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + } + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz", + "integrity": "sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", - "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } } } }, @@ -3030,160 +2108,19 @@ }, "@babel/plugin-transform-object-super": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", - "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + }, + "dependencies": { "@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", - "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } } } }, @@ -3542,19 +2479,19 @@ } }, "@babel/preset-env": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.13.tgz", - "integrity": "sha512-JUVlizG8SoFTz4LmVUL8++aVwzwxcvey3N0j1tRbMAXVEy95uQ/cnEkmEKHN00Bwq4voAV3imQGnQvpkLAxsrw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.16.tgz", + "integrity": "sha512-BXCAXy8RE/TzX416pD2hsVdkWo0G+tYd16pwnRV4Sc0fRwTLRS/Ssv8G5RLXUGQv7g4FG7TXkdDJxCjQ5I+Zjg==", "dev": true, "requires": { "@babel/compat-data": "^7.12.13", - "@babel/helper-compilation-targets": "^7.12.13", + "@babel/helper-compilation-targets": "^7.12.16", "@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-option": "^7.12.11", + "@babel/helper-validator-option": "^7.12.16", "@babel/plugin-proposal-async-generator-functions": "^7.12.13", "@babel/plugin-proposal-class-properties": "^7.12.13", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.16", "@babel/plugin-proposal-export-namespace-from": "^7.12.13", "@babel/plugin-proposal-json-strings": "^7.12.13", "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13", @@ -3562,7 +2499,7 @@ "@babel/plugin-proposal-numeric-separator": "^7.12.13", "@babel/plugin-proposal-object-rest-spread": "^7.12.13", "@babel/plugin-proposal-optional-catch-binding": "^7.12.13", - "@babel/plugin-proposal-optional-chaining": "^7.12.13", + "@babel/plugin-proposal-optional-chaining": "^7.12.16", "@babel/plugin-proposal-private-methods": "^7.12.13", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.0", @@ -3615,205 +2552,24 @@ "semver": "^5.5.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", - "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-validator-identifier": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "@babel/helper-validator-option": { + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.16.tgz", + "integrity": "sha512-uCgsDBPUQDvzr11ePPo4TVEocxj8RXjUVSC/Y8N1YpVAI/XDdUwGJu78xmlGhTxj2ntaWM7n9LQdRtyhOzT2YQ==", "dev": true }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz", - "integrity": "sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz", - "integrity": "sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.13" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.13.tgz", - "integrity": "sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz", - "integrity": "sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, "@babel/types": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", @@ -9470,9 +8226,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001183", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001183.tgz", - "integrity": "sha512-7JkwTEE1hlRKETbCFd8HDZeLiQIUcl8rC6JgNjvHCNaxOeNmQ9V4LvQXRUsKIV2CC73qKxljwVhToaA3kLRqTw==", + "version": "1.0.30001185", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz", + "integrity": "sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==", "dev": true }, "cardinal": { @@ -12203,9 +10959,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.651", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.651.tgz", - "integrity": "sha512-2gWRGUMZB/BGru4LOQ6w6mZmesBk4pLPvi64x48cL6fwUVBeOenBbnrclLjLsQ/NjG2TWHEnTycWJc3IgEl0vQ==", + "version": "1.3.663", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.663.tgz", + "integrity": "sha512-xkVkzHj6k3oRRGlmdgUCCLSLhtFYHDCTH7SeK+LJdJjnsLcrdbpr8EYmfMQhez3V/KPO5UScSpzQ0feYX6Qoyw==", "dev": true }, "elf-cam": { From 90c4e56dfba3e57eaa73934f21ffbde24764426c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Feb 2021 08:13:08 +0000 Subject: [PATCH 075/327] [skip netlify]: Bump mocha from 8.2.1 to 8.3.0 Bumps [mocha](https://github.com/mochajs/mocha) from 8.2.1 to 8.3.0. - [Release notes](https://github.com/mochajs/mocha/releases) - [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md) - [Commits](https://github.com/mochajs/mocha/compare/v8.2.1...v8.3.0) Signed-off-by: dependabot[bot] --- package-lock.json | 191 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 156 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5379e65005f..efd46704723 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16602,35 +16602,35 @@ } }, "mocha": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", - "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.0.tgz", + "integrity": "sha512-TQqyC89V1J/Vxx0DhJIXlq9gbbL9XFNdeLQ1+JsnZsVaSOV1z3tWfw0qZmQJGQRIfkvZcs7snQnZnOCKoldq1Q==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.4.3", - "debug": "4.2.0", - "diff": "4.0.2", + "chokidar": "3.5.1", + "debug": "4.3.1", + "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.1.6", "growl": "1.10.5", "he": "1.2.0", - "js-yaml": "3.14.0", + "js-yaml": "4.0.0", "log-symbols": "4.0.0", "minimatch": "3.0.4", - "ms": "2.1.2", - "nanoid": "3.1.12", + "ms": "2.1.3", + "nanoid": "3.1.20", "serialize-javascript": "5.0.1", "strip-json-comments": "3.1.1", - "supports-color": "7.2.0", + "supports-color": "8.1.1", "which": "2.0.2", "wide-align": "1.1.3", - "workerpool": "6.0.2", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", + "workerpool": "6.1.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { @@ -16649,6 +16649,12 @@ "color-convert": "^2.0.1" } }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", @@ -16657,6 +16663,44 @@ "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "color-convert": { @@ -16675,14 +16719,28 @@ "dev": true }, "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -16699,12 +16757,28 @@ "path-exists": "^4.0.0" } }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -16723,13 +16797,19 @@ "chalk": "^4.0.0" } }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { @@ -16741,22 +16821,25 @@ "p-limit": "^3.0.2" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -16770,6 +16853,44 @@ "requires": { "isexe": "^2.0.0" } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, @@ -16965,9 +17086,9 @@ "optional": true }, "nanoid": { - "version": "3.1.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", - "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", + "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", "dev": true }, "nanomatch": { @@ -23857,9 +23978,9 @@ } }, "workerpool": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", - "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", + "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", "dev": true }, "wrap-ansi": { From aa93fe97c05a3fc27b8da2b72064e417ac9a0d54 Mon Sep 17 00:00:00 2001 From: Tom Jenkinson Date: Sun, 14 Feb 2021 10:06:40 +0000 Subject: [PATCH 076/327] handle comment in master playlist before url (#3481) * handle comment in master playlist before url * require the first character to be # given the spec says it must match the start of the line --- src/loader/m3u8-parser.ts | 2 +- tests/unit/loader/playlist-loader.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/loader/m3u8-parser.ts b/src/loader/m3u8-parser.ts index e3e00c2d51a..b7096a3ee6e 100644 --- a/src/loader/m3u8-parser.ts +++ b/src/loader/m3u8-parser.ts @@ -19,7 +19,7 @@ import type { LevelAttributes, LevelParsed } from '../types/level'; type M3U8ParserFragments = Array; // https://regex101.com is your friend -const MASTER_PLAYLIST_REGEX = /#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)|#EXT-X-SESSION-DATA:([^\n\r]*)[\r\n]+/g; +const MASTER_PLAYLIST_REGEX = /#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-SESSION-DATA:([^\r\n]*)[\r\n]+/g; const MASTER_PLAYLIST_MEDIA_REGEX = /#EXT-X-MEDIA:(.*)/g; const LEVEL_PLAYLIST_REGEX_FAST = new RegExp( diff --git a/tests/unit/loader/playlist-loader.js b/tests/unit/loader/playlist-loader.js index 92a9e9e6e70..ba6f02c5315 100644 --- a/tests/unit/loader/playlist-loader.js +++ b/tests/unit/loader/playlist-loader.js @@ -45,6 +45,22 @@ http://proxy-62.dailymotion.com/sec(3ae40f708f79ca9471f52b86da76a3a8)/video/107/ expect(result.sessionData).to.equal(null); }); + it('parses manifest containing comment', function () { + const manifest = `#EXTM3U +#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=836280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=848x360,NAME="480" +# some comment +http://proxy-62.dailymotion.com/sec(3ae40f708f79ca9471f52b86da76a3a8)/video/107/282/158282701_mp4_h264_aac_hq.m3u8#cell=core`; + + const result = M3U8Parser.parseMasterPlaylist( + manifest, + 'http://www.dailymotion.com' + ); + expect(result.levels).to.have.lengthOf(1); + expect(result.levels[0].url).to.equal( + 'http://proxy-62.dailymotion.com/sec(3ae40f708f79ca9471f52b86da76a3a8)/video/107/282/158282701_mp4_h264_aac_hq.m3u8#cell=core' + ); + }); + it('parses manifest without codecs', function () { const manifest = `#EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=836280,RESOLUTION=848x360,NAME="480" From 0ac248ec0b1a4a7513491c6ece420e9d21a1a1be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Feb 2021 08:33:02 +0000 Subject: [PATCH 077/327] [skip netlify]: Bump netlify-cli from 3.5.0 to 3.8.0 Bumps [netlify-cli](https://github.com/netlify/cli) from 3.5.0 to 3.8.0. - [Release notes](https://github.com/netlify/cli/releases) - [Changelog](https://github.com/netlify/cli/blob/master/CHANGELOG.md) - [Commits](https://github.com/netlify/cli/compare/v3.5.0...v3.8.0) Signed-off-by: dependabot[bot] --- package-lock.json | 524 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 426 insertions(+), 98 deletions(-) diff --git a/package-lock.json b/package-lock.json index efd46704723..93e83f48259 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3354,9 +3354,9 @@ } }, "@netlify/build": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-9.0.0.tgz", - "integrity": "sha512-2Ry0l4E2qTeclDCIVh2SdnB1y7E1nfZZXko2mNx+NKNli81v032c6hGlUsHVN28DUqyomNeKhrH3mDNHhZZiuw==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@netlify/build/-/build-9.1.2.tgz", + "integrity": "sha512-GvAx6f3T8MZRHDEPNOsGdsAfW188FjKTGpA04G2QoMJdLHgzAp6gI6J6m7B9b16Sw7qs5U+JX2A9JjZRHmOAsg==", "dev": true, "requires": { "@bugsnag/js": "^7.0.0", @@ -3367,7 +3367,7 @@ "@netlify/plugin-edge-handlers": "^1.8.0", "@netlify/plugins-list": "^2.0.0", "@netlify/run-utils": "^1.0.5", - "@netlify/zip-it-and-ship-it": "^2.1.3", + "@netlify/zip-it-and-ship-it": "^2.2.0", "@sindresorhus/slugify": "^1.1.0", "@ungap/from-entries": "^0.2.1", "array-flat-polyfill": "^1.0.1", @@ -3516,6 +3516,15 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", @@ -3661,12 +3670,12 @@ } }, "resolve": { - "version": "2.0.0-next.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.2.tgz", - "integrity": "sha512-oHC2H45OCkhIeS45uW5zCsSinW+hgWwRtfobOhmkXiO4Q6e6fpZpBuBkZxAqTfoC1O6VIclqK6RjyeGVaxEYtA==", + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", "dev": true, "requires": { - "is-core-module": "^2.0.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -3850,9 +3859,9 @@ } }, "@netlify/config": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-4.0.0.tgz", - "integrity": "sha512-eHuMW6tNwuMTFYUoS8dGi9fsUVQky/qh4lhZNFP1y/HNUO3/iezIm7a/ALfO5PNekOIkf26+23m0pHA85+k3gQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-4.0.1.tgz", + "integrity": "sha512-qI/PxBx5RGuQbVgYOtbEJ498+yDWqfqetDOHYzxJEFZYpZjS5Effu4jt92amnW55pzOZvTk/vQZQx8zLb4N2WQ==", "dev": true, "requires": { "@ungap/from-entries": "^0.2.1", @@ -4132,9 +4141,9 @@ } }, "@netlify/framework-info": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-2.1.1.tgz", - "integrity": "sha512-JblagtBYtOwuxZy94jXPNc3p+QOuyx+kZurfduswYbT8VWPlyuiL4AQFKaIJvdZS6O9G8uKEiFGsKFhRTx6vAA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-2.3.0.tgz", + "integrity": "sha512-vqy9wbBRP8qWnkzA/OQsThr1+cfqapMrORJ4hWcrjhIPRmXIJtwB6OWuLIUalMeSGCwqZjYpKfudc4BLuxxvjw==", "dev": true, "requires": { "ajv": "^7.0.0", @@ -4149,9 +4158,9 @@ }, "dependencies": { "ajv": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.4.tgz", - "integrity": "sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.0.tgz", + "integrity": "sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -4310,9 +4319,9 @@ } }, "@netlify/functions-utils": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.10.tgz", - "integrity": "sha512-cakXwiNWNau80ZLU33nbmBxNfFmMwrwgy+P9U9ep3NXxocWJeMVjCPoXzpoE3VydnOoyVJNy6erTziNdOVykEA==", + "version": "1.3.12", + "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.12.tgz", + "integrity": "sha512-u2t6AVKsg9MuXicYETMqWubOXUayNdCU0GuMl2u5T3bz9E7mVCnCB4VVkEVDqlC8GnrdbVHzEu+OPmbv+dkzJA==", "dev": true, "requires": { "@netlify/zip-it-and-ship-it": "^2.1.3", @@ -4471,9 +4480,9 @@ }, "dependencies": { "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.28.tgz", + "integrity": "sha512-lg55ArB+ZiHHbBBttLpzD07akz0QPrZgUODNakeC09i62dnrywr9mFErHuaPlB6I7z+sEbK+IYmplahvplCj2g==", "dev": true }, "del": { @@ -4493,9 +4502,9 @@ } }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "make-dir": { @@ -4523,9 +4532,9 @@ "dev": true }, "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", + "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", "dev": true } } @@ -4669,9 +4678,9 @@ "optional": true }, "@netlify/zip-it-and-ship-it": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-2.1.3.tgz", - "integrity": "sha512-nYHM4dnlua/aCe74ZPZcIlWAN1QbyGDaWbJi+Qkb0VSe4yX6PYvPNeymABggDbA9xFhk+nEA98wSu2A/beHPfQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-2.3.0.tgz", + "integrity": "sha512-dqYXA/e2ZY6bO7fvp18YKXLYE/CK8cAbjBE2mo339sA+xchoV3ryYEjsLpoYqFWofUBLQnCYahm4D9a4H7RT0A==", "dev": true, "requires": { "archiver": "^4.0.0", @@ -4679,6 +4688,7 @@ "cp-file": "^7.0.0", "elf-cam": "^0.1.1", "end-of-stream": "^1.4.4", + "esbuild": "^0.8.36", "find-up": "^4.1.0", "glob": "^7.1.6", "junk": "^3.1.0", @@ -4716,6 +4726,15 @@ "path-exists": "^4.0.0" } }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -4782,12 +4801,12 @@ } }, "resolve": { - "version": "2.0.0-next.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.2.tgz", - "integrity": "sha512-oHC2H45OCkhIeS45uW5zCsSinW+hgWwRtfobOhmkXiO4Q6e6fpZpBuBkZxAqTfoC1O6VIclqK6RjyeGVaxEYtA==", + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", "dev": true, "requires": { - "is-core-module": "^2.0.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -5567,9 +5586,9 @@ } }, "@octokit/openapi-types": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-4.0.1.tgz", - "integrity": "sha512-k2hRcfcLRyPJjtYfJLzg404n7HZ6sUpAWAR/uNI8tf96NgatWOpw1ocdF+WFfx/trO1ivBh7ckynO1rn+xAw/Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-4.0.4.tgz", + "integrity": "sha512-31zY8JIuz3h6RAFOnyA8FbOwhILILiBu1qD81RyZZWY7oMBhIdBn6MaAmnnptLhB4jk0g50nkQkUVP4kUzppcA==", "dev": true }, "@octokit/plugin-paginate-rest": { @@ -5707,19 +5726,18 @@ } }, "@octokit/types": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.8.2.tgz", - "integrity": "sha512-RpG0NJd7OKSkWptiFhy1xCLkThs5YoDIKM21lEtDmUvSpbaIEfrxzckWLUGDFfF8RydSyngo44gDv8m2hHruUg==", + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.8.5.tgz", + "integrity": "sha512-ZsQawftZoi0kSF2pCsdgLURbOjtVcHnBOXiSxBKSNF56CRjARt5rb/g8WJgqB8vv4lgUEHrv06EdDKYQ22vA9Q==", "dev": true, "requires": { - "@octokit/openapi-types": "^4.0.0", - "@types/node": ">= 8" + "@octokit/openapi-types": "^4.0.3" } }, "@rollup/plugin-babel": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.3.tgz", - "integrity": "sha512-DOMc7nx6y5xFi86AotrFssQqCen6CxYn+zts5KSI879d4n1hggSb4TH3mjVgG17Vc3lZziWWfcXzrEmVdzPMdw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", + "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.10.4", @@ -5757,12 +5775,12 @@ } }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } } @@ -5789,9 +5807,9 @@ } }, "@rollup/plugin-node-resolve": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.1.tgz", - "integrity": "sha512-zlBXR4eRS+2m79TsUZWhsd0slrHUYdRx4JF+aVQm+MI0wsKdlpC2vlDVjmlGvtZY1vsefOT9w3JxvmWSBei+Lg==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.0.tgz", + "integrity": "sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -5812,12 +5830,12 @@ } }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } } @@ -5947,6 +5965,15 @@ } } }, + "@samverschueren/stream-to-observable": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", + "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "dev": true, + "requires": { + "any-observable": "^0.3.0" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -6812,6 +6839,12 @@ "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", "dev": true }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", @@ -7167,9 +7200,9 @@ "dev": true }, "aws-sdk": { - "version": "2.838.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.838.0.tgz", - "integrity": "sha512-XJUumDE7g/tJeDSpHf8ov0f7Xy6DuIYB2S2pOlwAMwqcOcv166kGNJGFOdAFFt/TodhqPPBP2uTXSE9xaj+tDA==", + "version": "2.843.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.843.0.tgz", + "integrity": "sha512-wTHKHDzblaNjWsdCuKTnfAr2zSLgN+Nc2yGpqPxnr7emEQG4V3B0gYEfV9rvv9dVq5Jw8Y1q6VNWS6k8oclnSw==", "dev": true, "requires": { "buffer": "4.9.2", @@ -7692,9 +7725,9 @@ } }, "bl": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.4.tgz", - "integrity": "sha512-7tdr4EpSd7jJ6tuQ21vu2ke8w7pNEstzj1O8wwq6sNNzO3UDi5MA8Gny/gquCj7r2C6fHudg8tKRGyjRgmvNxQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "requires": { "buffer": "^5.5.0", @@ -8832,6 +8865,12 @@ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, "codecov": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.1.tgz", @@ -9999,6 +10038,12 @@ } } }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, "date-format": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", @@ -10546,9 +10591,9 @@ } }, "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", + "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", "dev": true } } @@ -10964,6 +11009,12 @@ "integrity": "sha512-xkVkzHj6k3oRRGlmdgUCCLSLhtFYHDCTH7SeK+LJdJjnsLcrdbpr8EYmfMQhez3V/KPO5UScSpzQ0feYX6Qoyw==", "dev": true }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, "elf-cam": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/elf-cam/-/elf-cam-0.1.1.tgz", @@ -11224,6 +11275,12 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "esbuild": { + "version": "0.8.46", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.8.46.tgz", + "integrity": "sha512-xck9sXNCNmjDHCCfxTCyhKTiFuEBweh+IDAhMLOJI990v1Fzii6MyIkT1LbkvjgoVgPX2SK1kpi5eZVGNrl8yg==", + "dev": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -13175,6 +13232,23 @@ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, + "hasbin": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/hasbin/-/hasbin-1.2.3.tgz", + "integrity": "sha1-eMWSaJPIAhXCtWiuH9P8q3omlrA=", + "dev": true, + "requires": { + "async": "~1.5" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, "hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -14332,6 +14406,15 @@ "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", "dev": true }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "^1.1.0" + } + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -14379,6 +14462,12 @@ "isobject": "^3.0.1" } }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, "is-reference": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", @@ -15669,6 +15758,233 @@ } } }, + "listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + } + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + } + } + }, + "listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "dependencies": { + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + } + } + }, "listr2": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", @@ -17141,13 +17457,13 @@ "dev": true }, "netlify": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/netlify/-/netlify-6.1.6.tgz", - "integrity": "sha512-hjXoiqKHetP+OD/DmOLHeTW/AZvsitFCz5d1mOAivrnQXVKrKRS6XHbsLELiUuXv8hW1PrWnImFF0VdLPKo0wA==", + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/netlify/-/netlify-6.1.8.tgz", + "integrity": "sha512-x1PmAlf41NebEq1k8JP36pkUImq1a7pedCTOQngLqtWXwaKFsHLWxkKBJZsYiCxWI+vu8ZoIeopsm7hYiArC0g==", "dev": true, "requires": { "@netlify/open-api": "^1.3.0", - "@netlify/zip-it-and-ship-it": "^2.1.3", + "@netlify/zip-it-and-ship-it": "^2.3.0", "backoff": "^2.5.0", "clean-deep": "^3.4.0", "flush-write-stream": "^2.0.0", @@ -17178,9 +17494,9 @@ } }, "netlify-cli": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.5.0.tgz", - "integrity": "sha512-seAaDxlTUQSfEyvK8Y52cRbX16nZuwzNqnFW1Ulw4zy5hGeVozmhnhn87n4TM9Ku73WqqTWNMhkwYbsWq9c69w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.8.0.tgz", + "integrity": "sha512-QRD6lLMd7/U/KWSPlrCZVfaDGcWS1K9UOjWrH8l1Q4eAK5mCiz252GCsHPHYEIfSMQS2JenJRlzAjWfwJYKJ/g==", "dev": true, "requires": { "@netlify/build": "^9.0.0", @@ -17230,6 +17546,7 @@ "gh-release-fetch": "^1.1.0", "git-repo-info": "^2.1.0", "gitconfiglocal": "^2.1.0", + "hasbin": "^1.2.3", "http-proxy": "^1.18.0", "http-proxy-middleware": "^1.0.0", "https-proxy-agent": "^5.0.0", @@ -17239,6 +17556,7 @@ "isexe": "^2.0.0", "jwt-decode": "^3.0.0", "lambda-local": "^1.7.1", + "listr": "^0.14.3", "locate-path": "^6.0.0", "lodash": "^4.17.20", "log-symbols": "^3.0.0", @@ -17257,12 +17575,14 @@ "parse-github-url": "^1.0.2", "parse-gitignore": "^1.0.1", "path-exists": "^4.0.0", + "path-key": "^3.1.1", "path-type": "^4.0.0", "prettyjson": "^1.2.1", "random-item": "^3.0.0", "raw-body": "^2.4.1", "resolve": "^1.12.0", "safe-join": "^0.1.3", + "semver": "^7.3.4", "static-server": "^2.2.1", "strip-ansi-control-characters": "^2.0.0", "to-readable-stream": "^2.1.0", @@ -17281,12 +17601,6 @@ "integrity": "sha512-osxifZo3ar56+e8tdYreU6p8FZGciBHo5O0JoDAxMUqZuyNUb+yHEwYtJZ+Z32R459jEgtwVf1u8D7qYwU0l6w==", "dev": true }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -17412,6 +17726,14 @@ "dev": true, "requires": { "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "npm-run-path": { @@ -17471,12 +17793,6 @@ "unpipe": "1.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -17807,6 +18123,12 @@ "boolbase": "~1.0.0" } }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, "nwmatcher": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", @@ -18228,9 +18550,9 @@ } }, "open": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", - "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.1.tgz", + "integrity": "sha512-Pxv+fKRsd/Ozflgn2Gjev1HZveJJeKR6hKKmdaImJMuEZ6htAvCTbcMABJo+qevlAelTLCrEK3YTKZ9fVTcSPw==", "dev": true, "requires": { "is-docker": "^2.0.0", @@ -19777,18 +20099,18 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.39.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.39.0.tgz", + "integrity": "sha512-+WR3bttcq7zE+BntH09UxaW3bQo3vItuYeLsyk4dL2tuwbeSKJuvwiawyhEnvRdRgrII0Uzk00FpctHO/zB1kw==", "dev": true, "requires": { "fsevents": "~2.3.1" }, "dependencies": { "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true } @@ -21351,6 +21673,12 @@ } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -21498,9 +21826,9 @@ "dev": true }, "terser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", - "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz", + "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", "dev": true, "requires": { "commander": "^2.20.0", From 5098e8d43033df0778d10eb42c5e5827a75dfc92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Feb 2021 08:53:38 +0000 Subject: [PATCH 078/327] [skip netlify]: Bump karma from 6.1.0 to 6.1.1 Bumps [karma](https://github.com/karma-runner/karma) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](https://github.com/karma-runner/karma/compare/v6.1.0...v6.1.1) Signed-off-by: dependabot[bot] --- package-lock.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 93e83f48259..a80186af896 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6106,9 +6106,9 @@ "dev": true }, "@types/cors": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.9.tgz", - "integrity": "sha512-zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg==", + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", + "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", "dev": true }, "@types/decompress": { @@ -15177,9 +15177,9 @@ "dev": true }, "karma": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.1.0.tgz", - "integrity": "sha512-QmRZ6HdKe6mHd89Az6yb85URRyDbXmn2IBo3lic7cwkkLjDWpjrMJxPAKlwNa5dFM1iHdT+kjtNJM0J5YAH90A==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.1.1.tgz", + "integrity": "sha512-vVDFxFGAsclgmFjZA/qGw5xqWdZIWxVD7xLyCukYUYd5xs/uGzYbXGOT5zOruVBQleKEmXIr4H2hzGCTn+M9Cg==", "dev": true, "requires": { "body-parser": "^1.19.0", @@ -15243,9 +15243,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz", - "integrity": "sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "mime": { @@ -15302,9 +15302,9 @@ } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz", + "integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==", "dev": true } } @@ -20891,9 +20891,9 @@ }, "dependencies": { "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.28.tgz", + "integrity": "sha512-lg55ArB+ZiHHbBBttLpzD07akz0QPrZgUODNakeC09i62dnrywr9mFErHuaPlB6I7z+sEbK+IYmplahvplCj2g==", "dev": true }, "debug": { @@ -22287,9 +22287,9 @@ "dev": true }, "ua-parser-js": { - "version": "0.7.23", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz", - "integrity": "sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA==", + "version": "0.7.24", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", + "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==", "dev": true }, "uid-safe": { From 969efeb8588191cc035f4ba6bdcbcf86c5063f7f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Feb 2021 09:14:25 +0000 Subject: [PATCH 079/327] [skip netlify]: Bump eslint from 7.19.0 to 7.20.0 Bumps [eslint](https://github.com/eslint/eslint) from 7.19.0 to 7.20.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.19.0...v7.20.0) Signed-off-by: dependabot[bot] --- package-lock.json | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index a80186af896..44c28725d7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11367,12 +11367,12 @@ } }, "eslint": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz", - "integrity": "sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.20.0.tgz", + "integrity": "sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -11384,7 +11384,7 @@ "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", - "esquery": "^1.2.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", @@ -11411,6 +11411,15 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11776,9 +11785,9 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -21698,9 +21707,9 @@ }, "dependencies": { "ajv": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", - "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.0.tgz", + "integrity": "sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", From 3f0dfd02952f77fc8f8c39480e3a0cdb86fa8f99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Feb 2021 09:58:32 +0000 Subject: [PATCH 080/327] [skip netlify]: Bump @babel/preset-typescript from 7.12.13 to 7.12.16 Bumps [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) from 7.12.13 to 7.12.16. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.16/packages/babel-preset-typescript) Signed-off-by: dependabot[bot] --- package-lock.json | 96 ++++++++++------------------------------------- 1 file changed, 19 insertions(+), 77 deletions(-) diff --git a/package-lock.json b/package-lock.json index 44c28725d7f..d4f62b962d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -924,9 +924,9 @@ "dev": true }, "@babel/helper-validator-option": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", - "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.16.tgz", + "integrity": "sha512-uCgsDBPUQDvzr11ePPo4TVEocxj8RXjUVSC/Y8N1YpVAI/XDdUwGJu78xmlGhTxj2ntaWM7n9LQdRtyhOzT2YQ==", "dev": true }, "@babel/helper-wrap-function": { @@ -2271,12 +2271,12 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.13.tgz", - "integrity": "sha512-z1VWskPJxK9tfxoYvePWvzSJC+4pxXr8ArmRm5ofqgi+mwpKg6lvtomkIngBYMJVnKhsFYVysCQLDn//v2RHcg==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.16.tgz", + "integrity": "sha512-88hep+B6dtDOiEqtRzwHp2TYO+CN8nbAV3eh5OpBGPsedug9J6y1JwLKzXRIGGQZDC8NlpxpQMIIxcfIW96Wgw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.13", + "@babel/helper-create-class-features-plugin": "^7.12.16", "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-typescript": "^7.12.13" }, @@ -2290,25 +2290,14 @@ "@babel/highlight": "^7.12.13" } }, - "@babel/generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.13.tgz", - "integrity": "sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", - "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.16.tgz", + "integrity": "sha512-KbSEj8l9zYkMVHpQqM3wJNxS1d9h3U9vm/uE5tpjMbaj3lTp+0noe3KPsV5dSD9jxKnf9jO9Ip9FX5PKNZCKow==", "dev": true, "requires": { "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.12.16", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/helper-replace-supers": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13" @@ -2334,42 +2323,12 @@ "@babel/types": "^7.12.13" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, "@babel/helper-split-export-declaration": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", @@ -2397,9 +2356,9 @@ } }, "@babel/parser": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.13.tgz", - "integrity": "sha512-z7n7ybOUzaRc3wwqLpAX8UFIXsrVXUJhtNGBwAnLz6d1KUapqyq7ad2La8gZ6CXhHmGAIL32cop8Tst4/PNWLw==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", "dev": true }, "@babel/template": { @@ -2413,23 +2372,6 @@ "@babel/types": "^7.12.13" } }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, "@babel/types": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", @@ -2603,14 +2545,14 @@ } }, "@babel/preset-typescript": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.13.tgz", - "integrity": "sha512-gYry7CeXwD2wtw5qHzrtzKaShEhOfTmKb4i0ZxeYBcBosN5VuAudsNbjX7Oj5EAfQ3K4s4HsVMQRRcqGsPvs2A==", + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.16.tgz", + "integrity": "sha512-IrYNrpDSuQfNHeqh7gsJsO35xTGyAyGkI1VxOpBEADFtxCqZ77a1RHbJqM3YJhroj7qMkNMkNtcw0lqeZUrzow==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-option": "^7.12.11", - "@babel/plugin-transform-typescript": "^7.12.13" + "@babel/helper-validator-option": "^7.12.16", + "@babel/plugin-transform-typescript": "^7.12.16" }, "dependencies": { "@babel/helper-plugin-utils": { From d5a244d797dffec096af53a4fc219b520c6122d0 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Sun, 14 Feb 2021 04:47:22 -0500 Subject: [PATCH 081/327] Update README supported and unsupported Features section --- README.md | 79 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index a4fc45f7de3..379427b70fe 100644 --- a/README.md +++ b/README.md @@ -157,25 +157,11 @@ Video is controlled through HTML `