createViewManagers(ReactApplicationContext reactContext) {
- if (config == null) {
- config = new DefaultReactExoplayerConfig(reactContext);
- }
- return Collections.singletonList(new ReactExoplayerViewManager(config));
- }
-}
diff --git a/android-exoplayer/README.md b/android/README.md
similarity index 96%
rename from android-exoplayer/README.md
rename to android/README.md
index 9396763b..07c85afd 100644
--- a/android-exoplayer/README.md
+++ b/android/README.md
@@ -9,7 +9,7 @@ https://github.com/google/ExoPlayer
## Benefits over `react-native-video@0.9.0`:
- Android Video library built by Google, with a lot of support
-- Supports DASH, HlS, & SmoothStreaming adaptive streams
+- Supports DASH, HLS, & SmoothStreaming adaptive streams
- Supports formats such as MP4, M4A, FMP4, WebM, MKV, MP3, Ogg, WAV, MPEG-TS, MPEG-PS, FLV and ADTS (AAC).
- Fewer device specific issues
- Highly customisable
diff --git a/android/build.gradle b/android/build.gradle
index 2fb8dfd2..a93e7599 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -5,22 +5,46 @@ def safeExtGet(prop, fallback) {
}
android {
- compileSdkVersion safeExtGet('compileSdkVersion', 28)
- buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3')
+ compileSdkVersion safeExtGet('compileSdkVersion', 31)
+ buildToolsVersion safeExtGet('buildToolsVersion', '30.0.2')
+
+ compileOptions {
+ targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_1_8
+ }
defaultConfig {
- minSdkVersion safeExtGet('minSdkVersion', 16)
+ minSdkVersion safeExtGet('minSdkVersion', 21)
targetSdkVersion safeExtGet('targetSdkVersion', 28)
versionCode 1
versionName "1.0"
- ndk {
- abiFilters "armeabi-v7a", "x86"
- }
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
}
}
-dependencies {
- //noinspection GradleDynamicVersion
- implementation "com.facebook.react:react-native:${safeExtGet('reactNativeVersion', '+')}"
- implementation 'com.yqritc:android-scalablevideoview:1.0.4'
+repositories {
+ // Remove this repository line after google releases to google() or mavenCentral()
+ maven { url "https://dl.google.com/android/maven2" }
+}
+
+dependencies {
+ implementation "com.facebook.react:react-native:${safeExtGet('reactNativeVersion', '+')}"
+ implementation('com.google.android.exoplayer:exoplayer:2.17.1') {
+ exclude group: 'com.android.support'
+ }
+
+ // All support libs must use the same version
+ implementation "androidx.annotation:annotation:1.1.0"
+ implementation "androidx.core:core:1.1.0"
+ implementation "androidx.media:media:1.1.0"
+
+ implementation('com.google.android.exoplayer:extension-okhttp:2.17.1') {
+ exclude group: 'com.squareup.okhttp3', module: 'okhttp'
+ }
+ implementation 'com.squareup.okhttp3:okhttp:${OKHTTP_VERSION}'
+
}
diff --git a/android/src/main/java/com/android/vending/expansion/zipfile/APEZProvider.java b/android/src/main/java/com/android/vending/expansion/zipfile/APEZProvider.java
deleted file mode 100644
index 1ba910bf..00000000
--- a/android/src/main/java/com/android/vending/expansion/zipfile/APEZProvider.java
+++ /dev/null
@@ -1,287 +0,0 @@
-package com.android.vending.expansion.zipfile;
-
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * 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.
- */
-
-//To implement APEZProvider in your application, you'll want to change
-//the AUTHORITY to match what you define in the manifest.
-
-import com.android.vending.expansion.zipfile.ZipResourceFile.ZipEntryRO;
-
-import android.content.ContentProvider;
-import android.content.ContentProviderOperation;
-import android.content.ContentProviderResult;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.OperationApplicationException;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ProviderInfo;
-import android.content.res.AssetFileDescriptor;
-import android.database.Cursor;
-import android.database.MatrixCursor;
-import android.net.Uri;
-import android.os.ParcelFileDescriptor;
-import android.provider.BaseColumns;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-
-/**
- * This content provider is an optional part of the library.
- *
- * Most apps don't need to use this class. This defines a
- * ContentProvider that marshalls the data from the ZIP files through a
- * content provider Uri in order to provide file access for certain Android APIs
- * that expect Uri access to media files.
- *
- */
-public abstract class APEZProvider extends ContentProvider {
-
- private ZipResourceFile mAPKExtensionFile;
- private boolean mInit;
-
- public static final String FILEID = BaseColumns._ID;
- public static final String FILENAME = "ZPFN";
- public static final String ZIPFILE = "ZFIL";
- public static final String MODIFICATION = "ZMOD";
- public static final String CRC32 = "ZCRC";
- public static final String COMPRESSEDLEN = "ZCOL";
- public static final String UNCOMPRESSEDLEN = "ZUNL";
- public static final String COMPRESSIONTYPE = "ZTYP";
-
- public static final String[] ALL_FIELDS = {
- FILEID,
- FILENAME,
- ZIPFILE,
- MODIFICATION,
- CRC32,
- COMPRESSEDLEN,
- UNCOMPRESSEDLEN,
- COMPRESSIONTYPE
- };
-
- public static final int FILEID_IDX = 0;
- public static final int FILENAME_IDX = 1;
- public static final int ZIPFILE_IDX = 2;
- public static final int MOD_IDX = 3;
- public static final int CRC_IDX = 4;
- public static final int COMPLEN_IDX = 5;
- public static final int UNCOMPLEN_IDX = 6;
- public static final int COMPTYPE_IDX = 7;
-
- public static final int[] ALL_FIELDS_INT = {
- FILEID_IDX,
- FILENAME_IDX,
- ZIPFILE_IDX,
- MOD_IDX,
- CRC_IDX,
- COMPLEN_IDX,
- UNCOMPLEN_IDX,
- COMPTYPE_IDX
- };
-
- /**
- * This needs to match the authority in your manifest
- */
- public abstract String getAuthority();
-
- @Override
- public int delete(Uri arg0, String arg1, String[] arg2) {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public String getType(Uri uri) {
- return "vnd.android.cursor.item/asset";
- }
-
- @Override
- public Uri insert(Uri uri, ContentValues values) {
- // TODO Auto-generated method stub
- return null;
- }
-
- static private final String NO_FILE = "N";
-
- private boolean initIfNecessary() {
- if ( !mInit ) {
- Context ctx = getContext();
- PackageManager pm = ctx.getPackageManager();
- ProviderInfo pi = pm.resolveContentProvider(getAuthority(), PackageManager.GET_META_DATA);
- PackageInfo packInfo;
- try {
- packInfo = pm.getPackageInfo(ctx.getPackageName(), 0);
- } catch (NameNotFoundException e1) {
- e1.printStackTrace();
- return false;
- }
- int patchFileVersion;
- int mainFileVersion;
- int appVersionCode = packInfo.versionCode;
- String[] resourceFiles = null;
- if ( null != pi.metaData ) {
- mainFileVersion = pi.metaData.getInt("mainVersion", appVersionCode);
- patchFileVersion = pi.metaData.getInt("patchVersion", appVersionCode);
- String mainFileName = pi.metaData.getString("mainFilename", NO_FILE);
- if ( NO_FILE != mainFileName ) {
- String patchFileName = pi.metaData.getString("patchFilename", NO_FILE);
- if ( NO_FILE != patchFileName ) {
- resourceFiles = new String[] { mainFileName, patchFileName };
- } else {
- resourceFiles = new String[] { mainFileName };
- }
- }
- } else {
- mainFileVersion = patchFileVersion = appVersionCode;
- }
- try {
- if ( null == resourceFiles ) {
- mAPKExtensionFile = APKExpansionSupport.getAPKExpansionZipFile(ctx, mainFileVersion, patchFileVersion);
- } else {
- mAPKExtensionFile = APKExpansionSupport.getResourceZipFile(resourceFiles);
- }
- mInit = true;
- return true;
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return false;
- }
-
- @Override
- public boolean onCreate() {
- return true;
- }
-
- @Override
- public AssetFileDescriptor openAssetFile(Uri uri, String mode)
- throws FileNotFoundException {
- initIfNecessary();
- String path = uri.getEncodedPath();
- if ( path.startsWith("/") ) {
- path = path.substring(1);
- }
- return mAPKExtensionFile.getAssetFileDescriptor(path);
- }
-
- @Override
- public ContentProviderResult[] applyBatch(
- ArrayList operations)
- throws OperationApplicationException {
- initIfNecessary();
- return super.applyBatch(operations);
- }
-
- @Override
- public ParcelFileDescriptor openFile(Uri uri, String mode)
- throws FileNotFoundException {
- initIfNecessary();
- AssetFileDescriptor af = openAssetFile(uri, mode);
- if ( null != af ) {
- return af.getParcelFileDescriptor();
- }
- return null;
- }
-
- @Override
- public Cursor query(Uri uri, String[] projection, String selection,
- String[] selectionArgs, String sortOrder) {
- initIfNecessary();
- // lists all of the items in the file that match
- ZipEntryRO[] zipEntries;
- if ( null == mAPKExtensionFile ) {
- zipEntries = new ZipEntryRO[0];
- } else {
- zipEntries = mAPKExtensionFile.getAllEntries();
- }
- int[] intProjection;
- if ( null == projection ) {
- intProjection = ALL_FIELDS_INT;
- projection = ALL_FIELDS;
- } else {
- int len = projection.length;
- intProjection = new int[len];
- for ( int i = 0; i < len; i++ ) {
- if ( projection[i].equals(FILEID) ) {
- intProjection[i] = FILEID_IDX;
- } else if ( projection[i].equals(FILENAME) ) {
- intProjection[i] = FILENAME_IDX;
- } else if ( projection[i].equals(ZIPFILE) ) {
- intProjection[i] = ZIPFILE_IDX;
- } else if ( projection[i].equals(MODIFICATION) ) {
- intProjection[i] = MOD_IDX;
- } else if ( projection[i].equals(CRC32) ) {
- intProjection[i] = CRC_IDX;
- } else if ( projection[i].equals(COMPRESSEDLEN) ) {
- intProjection[i] = COMPLEN_IDX;
- } else if ( projection[i].equals(UNCOMPRESSEDLEN) ) {
- intProjection[i] = UNCOMPLEN_IDX;
- } else if ( projection[i].equals(COMPRESSIONTYPE) ) {
- intProjection[i] = COMPTYPE_IDX;
- } else {
- throw new RuntimeException();
- }
- }
- }
- MatrixCursor mc = new MatrixCursor(projection, zipEntries.length);
- int len = intProjection.length;
- for ( ZipEntryRO zer : zipEntries ) {
- MatrixCursor.RowBuilder rb = mc.newRow();
- for ( int i = 0; i < len; i++ ) {
- switch (intProjection[i]) {
- case FILEID_IDX:
- rb.add(i);
- break;
- case FILENAME_IDX:
- rb.add(zer.mFileName);
- break;
- case ZIPFILE_IDX:
- rb.add(zer.getZipFileName());
- break;
- case MOD_IDX:
- rb.add(zer.mWhenModified);
- break;
- case CRC_IDX:
- rb.add(zer.mCRC32);
- break;
- case COMPLEN_IDX:
- rb.add(zer.mCompressedLength);
- break;
- case UNCOMPLEN_IDX:
- rb.add(zer.mUncompressedLength);
- break;
- case COMPTYPE_IDX:
- rb.add(zer.mMethod);
- break;
- }
- }
- }
- return mc;
- }
-
- @Override
- public int update(Uri uri, ContentValues values, String selection,
- String[] selectionArgs) {
- // TODO Auto-generated method stub
- return 0;
- }
-
-}
diff --git a/android/src/main/java/com/android/vending/expansion/zipfile/APKExpansionSupport.java b/android/src/main/java/com/android/vending/expansion/zipfile/APKExpansionSupport.java
deleted file mode 100644
index 34669c1d..00000000
--- a/android/src/main/java/com/android/vending/expansion/zipfile/APKExpansionSupport.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.android.vending.expansion.zipfile;
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * 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.
- */
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.Vector;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import android.content.Context;
-import android.os.Environment;
-import android.util.Log;
-
-public class APKExpansionSupport {
- // The shared path to all app expansion files
- private final static String EXP_PATH = "/Android/obb/";
-
- static String[] getAPKExpansionFiles(Context ctx, int mainVersion, int patchVersion) {
- String packageName = ctx.getPackageName();
- Vector ret = new Vector();
- if (Environment.getExternalStorageState().equals(
- Environment.MEDIA_MOUNTED)) {
- // Build the full path to the app's expansion files
- File root = Environment.getExternalStorageDirectory();
- File expPath = new File(root.toString() + EXP_PATH + packageName);
-
- // Check that expansion file path exists
- if (expPath.exists()) {
- if ( mainVersion > 0 ) {
- String strMainPath = expPath + File.separator + "main." + mainVersion + "." + packageName + ".obb";
-// Log.d("APKEXPANSION", strMainPath);
- File main = new File(strMainPath);
- if ( main.isFile() ) {
- ret.add(strMainPath);
- }
- }
- if ( patchVersion > 0 ) {
- String strPatchPath = expPath + File.separator + "patch." + patchVersion + "." + packageName + ".obb";
- File main = new File(strPatchPath);
- if ( main.isFile() ) {
- ret.add(strPatchPath);
- }
- }
- }
- }
- String[] retArray = new String[ret.size()];
- ret.toArray(retArray);
- return retArray;
- }
-
- static public ZipResourceFile getResourceZipFile(String[] expansionFiles) throws IOException {
- ZipResourceFile apkExpansionFile = null;
- for (String expansionFilePath : expansionFiles) {
- if ( null == apkExpansionFile ) {
- apkExpansionFile = new ZipResourceFile(expansionFilePath);
- } else {
- apkExpansionFile.addPatchFile(expansionFilePath);
- }
- }
- return apkExpansionFile;
- }
-
- static public ZipResourceFile getAPKExpansionZipFile(Context ctx, int mainVersion, int patchVersion) throws IOException{
- String[] expansionFiles = getAPKExpansionFiles(ctx, mainVersion, patchVersion);
- return getResourceZipFile(expansionFiles);
- }
-}
diff --git a/android/src/main/java/com/android/vending/expansion/zipfile/ZipResourceFile.java b/android/src/main/java/com/android/vending/expansion/zipfile/ZipResourceFile.java
deleted file mode 100644
index 902af3c4..00000000
--- a/android/src/main/java/com/android/vending/expansion/zipfile/ZipResourceFile.java
+++ /dev/null
@@ -1,428 +0,0 @@
-
-package com.android.vending.expansion.zipfile;
-
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * 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.
- */
-import android.content.res.AssetFileDescriptor;
-import android.os.ParcelFileDescriptor;
-import android.util.Log;
-
-import java.io.EOFException;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.RandomAccessFile;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.MappedByteBuffer;
-import java.nio.channels.FileChannel;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Vector;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-public class ZipResourceFile {
-
- //
- // Read-only access to Zip archives, with minimal heap allocation.
- //
- static final String LOG_TAG = "zipro";
- static final boolean LOGV = false;
-
- // 4-byte number
- static private int swapEndian(int i)
- {
- return ((i & 0xff) << 24) + ((i & 0xff00) << 8) + ((i & 0xff0000) >>> 8)
- + ((i >>> 24) & 0xff);
- }
-
- // 2-byte number
- static private int swapEndian(short i)
- {
- return ((i & 0x00FF) << 8 | (i & 0xFF00) >>> 8);
- }
-
- /*
- * Zip file constants.
- */
- static final int kEOCDSignature = 0x06054b50;
- static final int kEOCDLen = 22;
- static final int kEOCDNumEntries = 8; // offset to #of entries in file
- static final int kEOCDSize = 12; // size of the central directory
- static final int kEOCDFileOffset = 16; // offset to central directory
-
- static final int kMaxCommentLen = 65535; // longest possible in ushort
- static final int kMaxEOCDSearch = (kMaxCommentLen + kEOCDLen);
-
- static final int kLFHSignature = 0x04034b50;
- static final int kLFHLen = 30; // excluding variable-len fields
- static final int kLFHNameLen = 26; // offset to filename length
- static final int kLFHExtraLen = 28; // offset to extra length
-
- static final int kCDESignature = 0x02014b50;
- static final int kCDELen = 46; // excluding variable-len fields
- static final int kCDEMethod = 10; // offset to compression method
- static final int kCDEModWhen = 12; // offset to modification timestamp
- static final int kCDECRC = 16; // offset to entry CRC
- static final int kCDECompLen = 20; // offset to compressed length
- static final int kCDEUncompLen = 24; // offset to uncompressed length
- static final int kCDENameLen = 28; // offset to filename length
- static final int kCDEExtraLen = 30; // offset to extra length
- static final int kCDECommentLen = 32; // offset to comment length
- static final int kCDELocalOffset = 42; // offset to local hdr
-
- static final int kCompressStored = 0; // no compression
- static final int kCompressDeflated = 8; // standard deflate
-
- /*
- * The values we return for ZipEntryRO use 0 as an invalid value, so we want
- * to adjust the hash table index by a fixed amount. Using a large value
- * helps insure that people don't mix & match arguments, e.g. to
- * findEntryByIndex().
- */
- static final int kZipEntryAdj = 10000;
-
- static public final class ZipEntryRO {
- public ZipEntryRO(final String zipFileName, final File file, final String fileName) {
- mFileName = fileName;
- mZipFileName = zipFileName;
- mFile = file;
- }
-
- public final File mFile;
- public final String mFileName;
- public final String mZipFileName;
- public long mLocalHdrOffset; // offset of local file header
-
- /* useful stuff from the directory entry */
- public int mMethod;
- public long mWhenModified;
- public long mCRC32;
- public long mCompressedLength;
- public long mUncompressedLength;
-
- public long mOffset = -1;
-
- public void setOffsetFromFile(RandomAccessFile f, ByteBuffer buf) throws IOException {
- long localHdrOffset = mLocalHdrOffset;
- try {
- f.seek(localHdrOffset);
- f.readFully(buf.array());
- if (buf.getInt(0) != kLFHSignature) {
- Log.w(LOG_TAG, "didn't find signature at start of lfh");
- throw new IOException();
- }
- int nameLen = buf.getShort(kLFHNameLen) & 0xFFFF;
- int extraLen = buf.getShort(kLFHExtraLen) & 0xFFFF;
- mOffset = localHdrOffset + kLFHLen + nameLen + extraLen;
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
-
- /**
- * Calculates the offset of the start of the Zip file entry within the
- * Zip file.
- *
- * @return the offset, in bytes from the start of the file of the entry
- */
- public long getOffset() {
- return mOffset;
- }
-
- /**
- * isUncompressed
- *
- * @return true if the file is stored in uncompressed form
- */
- public boolean isUncompressed() {
- return mMethod == kCompressStored;
- }
-
- public AssetFileDescriptor getAssetFileDescriptor() {
- if (mMethod == kCompressStored) {
- ParcelFileDescriptor pfd;
- try {
- pfd = ParcelFileDescriptor.open(mFile, ParcelFileDescriptor.MODE_READ_ONLY);
- return new AssetFileDescriptor(pfd, getOffset(), mUncompressedLength);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- return null;
- }
-
- public String getZipFileName() {
- return mZipFileName;
- }
-
- public File getZipFile() {
- return mFile;
- }
-
- }
-
- private HashMap mHashMap = new HashMap();
-
- /* for reading compressed files */
- public HashMap mZipFiles = new HashMap();
-
- public ZipResourceFile(String zipFileName) throws IOException {
- addPatchFile(zipFileName);
- }
-
- ZipEntryRO[] getEntriesAt(String path) {
- Vector zev = new Vector();
- Collection values = mHashMap.values();
- if (null == path)
- path = "";
- int length = path.length();
- for (ZipEntryRO ze : values) {
- if (ze.mFileName.startsWith(path)) {
- if (-1 == ze.mFileName.indexOf('/', length)) {
- zev.add(ze);
- }
- }
- }
- ZipEntryRO[] entries = new ZipEntryRO[zev.size()];
- return zev.toArray(entries);
- }
-
- public ZipEntryRO[] getAllEntries() {
- Collection values = mHashMap.values();
- return values.toArray(new ZipEntryRO[values.size()]);
- }
-
- /**
- * getAssetFileDescriptor allows for ZipResourceFile to directly feed
- * Android API's that want an fd, offset, and length such as the
- * MediaPlayer. It also allows for the class to be used in a content
- * provider that can feed video players. The file must be stored
- * (non-compressed) in the Zip file for this to work.
- *
- * @param assetPath
- * @return the asset file descriptor for the file, or null if the file isn't
- * present or is stored compressed
- */
- public AssetFileDescriptor getAssetFileDescriptor(String assetPath) {
- ZipEntryRO entry = mHashMap.get(assetPath);
- if (null != entry) {
- return entry.getAssetFileDescriptor();
- }
- return null;
- }
-
- /**
- * getInputStream returns an AssetFileDescriptor.AutoCloseInputStream
- * associated with the asset that is contained in the Zip file, or a
- * standard ZipInputStream if necessary to uncompress the file
- *
- * @param assetPath
- * @return an input stream for the named asset path, or null if not found
- * @throws IOException
- */
- public InputStream getInputStream(String assetPath) throws IOException {
- ZipEntryRO entry = mHashMap.get(assetPath);
- if (null != entry) {
- if (entry.isUncompressed()) {
- return entry.getAssetFileDescriptor().createInputStream();
- } else {
- ZipFile zf = mZipFiles.get(entry.getZipFile());
- /** read compressed files **/
- if (null == zf) {
- zf = new ZipFile(entry.getZipFile(), ZipFile.OPEN_READ);
- mZipFiles.put(entry.getZipFile(), zf);
- }
- ZipEntry zi = zf.getEntry(assetPath);
- if (null != zi)
- return zf.getInputStream(zi);
- }
- }
- return null;
- }
-
- ByteBuffer mLEByteBuffer = ByteBuffer.allocate(4);
-
- static private int read4LE(RandomAccessFile f) throws EOFException, IOException {
- return swapEndian(f.readInt());
- }
-
- /*
- * Opens the specified file read-only. We memory-map the entire thing and
- * close the file before returning.
- */
- void addPatchFile(String zipFileName) throws IOException
- {
- File file = new File(zipFileName);
- RandomAccessFile f = new RandomAccessFile(file, "r");
- long fileLength = f.length();
-
- if (fileLength < kEOCDLen) {
- throw new java.io.IOException();
- }
-
- long readAmount = kMaxEOCDSearch;
- if (readAmount > fileLength)
- readAmount = fileLength;
-
- /*
- * Make sure this is a Zip archive.
- */
- f.seek(0);
-
- int header = read4LE(f);
- if (header == kEOCDSignature) {
- Log.i(LOG_TAG, "Found Zip archive, but it looks empty");
- throw new IOException();
- } else if (header != kLFHSignature) {
- Log.v(LOG_TAG, "Not a Zip archive");
- throw new IOException();
- }
-
- /*
- * Perform the traditional EOCD snipe hunt. We're searching for the End
- * of Central Directory magic number, which appears at the start of the
- * EOCD block. It's followed by 18 bytes of EOCD stuff and up to 64KB of
- * archive comment. We need to read the last part of the file into a
- * buffer, dig through it to find the magic number, parse some values
- * out, and use those to determine the extent of the CD. We start by
- * pulling in the last part of the file.
- */
- long searchStart = fileLength - readAmount;
-
- f.seek(searchStart);
- ByteBuffer bbuf = ByteBuffer.allocate((int) readAmount);
- byte[] buffer = bbuf.array();
- f.readFully(buffer);
- bbuf.order(ByteOrder.LITTLE_ENDIAN);
-
- /*
- * Scan backward for the EOCD magic. In an archive without a trailing
- * comment, we'll find it on the first try. (We may want to consider
- * doing an initial minimal read; if we don't find it, retry with a
- * second read as above.)
- */
-
- // EOCD == 0x50, 0x4b, 0x05, 0x06
- int eocdIdx;
- for (eocdIdx = buffer.length - kEOCDLen; eocdIdx >= 0; eocdIdx--) {
- if (buffer[eocdIdx] == 0x50 && bbuf.getInt(eocdIdx) == kEOCDSignature)
- {
- if (LOGV) {
- Log.v(LOG_TAG, "+++ Found EOCD at index: " + eocdIdx);
- }
- break;
- }
- }
-
- if (eocdIdx < 0) {
- Log.d(LOG_TAG, "Zip: EOCD not found, " + zipFileName + " is not zip");
- }
-
- /*
- * Grab the CD offset and size, and the number of entries in the
- * archive. After that, we can release our EOCD hunt buffer.
- */
-
- int numEntries = bbuf.getShort(eocdIdx + kEOCDNumEntries);
- long dirSize = bbuf.getInt(eocdIdx + kEOCDSize) & 0xffffffffL;
- long dirOffset = bbuf.getInt(eocdIdx + kEOCDFileOffset) & 0xffffffffL;
-
- // Verify that they look reasonable.
- if (dirOffset + dirSize > fileLength) {
- Log.w(LOG_TAG, "bad offsets (dir " + dirOffset + ", size " + dirSize + ", eocd "
- + eocdIdx + ")");
- throw new IOException();
- }
- if (numEntries == 0) {
- Log.w(LOG_TAG, "empty archive?");
- throw new IOException();
- }
-
- if (LOGV) {
- Log.v(LOG_TAG, "+++ numEntries=" + numEntries + " dirSize=" + dirSize + " dirOffset="
- + dirOffset);
- }
-
- MappedByteBuffer directoryMap = f.getChannel()
- .map(FileChannel.MapMode.READ_ONLY, dirOffset, dirSize);
- directoryMap.order(ByteOrder.LITTLE_ENDIAN);
-
- byte[] tempBuf = new byte[0xffff];
-
- /*
- * Walk through the central directory, adding entries to the hash table.
- */
-
- int currentOffset = 0;
-
- /*
- * Allocate the local directory information
- */
- ByteBuffer buf = ByteBuffer.allocate(kLFHLen);
- buf.order(ByteOrder.LITTLE_ENDIAN);
-
- for (int i = 0; i < numEntries; i++) {
- if (directoryMap.getInt(currentOffset) != kCDESignature) {
- Log.w(LOG_TAG, "Missed a central dir sig (at " + currentOffset + ")");
- throw new IOException();
- }
-
- /* useful stuff from the directory entry */
- int fileNameLen = directoryMap.getShort(currentOffset + kCDENameLen) & 0xffff;
- int extraLen = directoryMap.getShort(currentOffset + kCDEExtraLen) & 0xffff;
- int commentLen = directoryMap.getShort(currentOffset + kCDECommentLen) & 0xffff;
-
- /* get the CDE filename */
-
- directoryMap.position(currentOffset + kCDELen);
- directoryMap.get(tempBuf, 0, fileNameLen);
- directoryMap.position(0);
-
- /* UTF-8 on Android */
- String str = new String(tempBuf, 0, fileNameLen);
- if (LOGV) {
- Log.v(LOG_TAG, "Filename: " + str);
- }
-
- ZipEntryRO ze = new ZipEntryRO(zipFileName, file, str);
- ze.mMethod = directoryMap.getShort(currentOffset + kCDEMethod) & 0xffff;
- ze.mWhenModified = directoryMap.getInt(currentOffset + kCDEModWhen) & 0xffffffffL;
- ze.mCRC32 = directoryMap.getLong(currentOffset + kCDECRC) & 0xffffffffL;
- ze.mCompressedLength = directoryMap.getLong(currentOffset + kCDECompLen) & 0xffffffffL;
- ze.mUncompressedLength = directoryMap.getLong(currentOffset + kCDEUncompLen) & 0xffffffffL;
- ze.mLocalHdrOffset = directoryMap.getInt(currentOffset + kCDELocalOffset) & 0xffffffffL;
-
- // set the offsets
- buf.clear();
- ze.setOffsetFromFile(f, buf);
-
- // put file into hash
- mHashMap.put(str, ze);
-
- // go to next directory entry
- currentOffset += kCDELen + fileNameLen + extraLen + commentLen;
- }
- if (LOGV) {
- Log.v(LOG_TAG, "+++ zip good scan " + numEntries + " entries");
- }
- }
-}
diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/AspectRatioFrameLayout.java b/android/src/main/java/com/brentvatne/exoplayer/AspectRatioFrameLayout.java
similarity index 100%
rename from android-exoplayer/src/main/java/com/brentvatne/exoplayer/AspectRatioFrameLayout.java
rename to android/src/main/java/com/brentvatne/exoplayer/AspectRatioFrameLayout.java
diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java b/android/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java
similarity index 89%
rename from android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java
rename to android/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java
index 19dda002..c5e7047b 100644
--- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java
+++ b/android/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java
@@ -4,13 +4,14 @@ import com.facebook.react.bridge.ReactContext;
import com.facebook.react.modules.network.CookieJarContainer;
import com.facebook.react.modules.network.ForwardingCookieHandler;
import com.facebook.react.modules.network.OkHttpClientProvider;
-import com.google.android.exoplayer2.ext.okhttp.OkHttpDataSourceFactory;
+import com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
-import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
+import com.google.android.exoplayer2.upstream.DefaultDataSource;
import com.google.android.exoplayer2.upstream.HttpDataSource;
import com.google.android.exoplayer2.util.Util;
+import okhttp3.Call;
import okhttp3.JavaNetCookieJar;
import okhttp3.OkHttpClient;
import java.util.Map;
@@ -75,7 +76,7 @@ public class DataSourceUtil {
}
private static DataSource.Factory buildDataSourceFactory(ReactContext context, DefaultBandwidthMeter bandwidthMeter, Map requestHeaders) {
- return new DefaultDataSourceFactory(context, bandwidthMeter,
+ return new DefaultDataSource.Factory(context,
buildHttpDataSourceFactory(context, bandwidthMeter, requestHeaders));
}
@@ -84,10 +85,12 @@ public class DataSourceUtil {
CookieJarContainer container = (CookieJarContainer) client.cookieJar();
ForwardingCookieHandler handler = new ForwardingCookieHandler(context);
container.setCookieJar(new JavaNetCookieJar(handler));
- OkHttpDataSourceFactory okHttpDataSourceFactory = new OkHttpDataSourceFactory(client, getUserAgent(context), bandwidthMeter);
+ OkHttpDataSource.Factory okHttpDataSourceFactory = new OkHttpDataSource.Factory((Call.Factory) client)
+ .setUserAgent(getUserAgent(context))
+ .setTransferListener(bandwidthMeter);
if (requestHeaders != null)
- okHttpDataSourceFactory.getDefaultRequestProperties().set(requestHeaders);
+ okHttpDataSourceFactory.setDefaultRequestProperties(requestHeaders);
return okHttpDataSourceFactory;
}
diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.java b/android/src/main/java/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.java
similarity index 60%
rename from android-exoplayer/src/main/java/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.java
rename to android/src/main/java/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.java
index d68274b7..3475273c 100644
--- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.java
+++ b/android/src/main/java/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.java
@@ -9,16 +9,28 @@ import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy;
public class DefaultReactExoplayerConfig implements ReactExoplayerConfig {
private final DefaultBandwidthMeter bandwidthMeter;
+ private boolean disableDisconnectError = false;
public DefaultReactExoplayerConfig(Context context) {
this.bandwidthMeter = new DefaultBandwidthMeter.Builder(context).build();
}
- @Override
public LoadErrorHandlingPolicy buildLoadErrorHandlingPolicy(int minLoadRetryCount) {
+ if (this.disableDisconnectError) {
+ // Use custom error handling policy to prevent throwing an error when losing network connection
+ return new ReactExoplayerLoadErrorHandlingPolicy(minLoadRetryCount);
+ }
return new DefaultLoadErrorHandlingPolicy(minLoadRetryCount);
}
+ public void setDisableDisconnectError(boolean disableDisconnectError) {
+ this.disableDisconnectError = disableDisconnectError;
+ }
+
+ public boolean getDisableDisconnectError() {
+ return this.disableDisconnectError;
+ }
+
@Override
public DefaultBandwidthMeter getBandwidthMeter() {
return bandwidthMeter;
diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java b/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java
similarity index 79%
rename from android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java
rename to android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java
index 61cb0dd6..a6cd1c4f 100644
--- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java
+++ b/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java
@@ -13,18 +13,16 @@ import android.view.ViewGroup;
import android.widget.FrameLayout;
import com.google.android.exoplayer2.C;
-import com.google.android.exoplayer2.ExoPlaybackException;
-import com.google.android.exoplayer2.ExoPlayer;
+import com.google.android.exoplayer2.PlaybackException;
import com.google.android.exoplayer2.PlaybackParameters;
-import com.google.android.exoplayer2.SimpleExoPlayer;
-import com.google.android.exoplayer2.video.VideoListener;
+import com.google.android.exoplayer2.Player;
+import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline;
-import com.google.android.exoplayer2.source.TrackGroupArray;
+import com.google.android.exoplayer2.TracksInfo;
import com.google.android.exoplayer2.text.Cue;
-import com.google.android.exoplayer2.text.TextRenderer;
-import com.google.android.exoplayer2.text.TextOutput;
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.ui.SubtitleView;
+import com.google.android.exoplayer2.video.VideoSize;
import java.util.List;
@@ -36,11 +34,12 @@ public final class ExoPlayerView extends FrameLayout {
private final SubtitleView subtitleLayout;
private final AspectRatioFrameLayout layout;
private final ComponentListener componentListener;
- private SimpleExoPlayer player;
+ private ExoPlayer player;
private Context context;
private ViewGroup.LayoutParams layoutParams;
private boolean useTextureView = true;
+ private boolean useSecureView = false;
private boolean hideShutterView = false;
public ExoPlayerView(Context context) {
@@ -103,7 +102,15 @@ public final class ExoPlayerView extends FrameLayout {
}
private void updateSurfaceView() {
- View view = useTextureView ? new TextureView(context) : new SurfaceView(context);
+ View view;
+ if (!useTextureView || useSecureView) {
+ view = new SurfaceView(context);
+ if (useSecureView) {
+ ((SurfaceView)view).setSecure(true);
+ }
+ } else {
+ view = new TextureView(context);
+ }
view.setLayoutParams(layoutParams);
surfaceView = view;
@@ -122,29 +129,25 @@ public final class ExoPlayerView extends FrameLayout {
}
/**
- * Set the {@link SimpleExoPlayer} to use. The {@link SimpleExoPlayer#addTextOutput} and
- * {@link SimpleExoPlayer#addVideoListener} method of the player will be called and previous
+ * Set the {@link ExoPlayer} to use. The {@link ExoPlayer#addListener} method of the
+ * player will be called and previous
* assignments are overridden.
*
- * @param player The {@link SimpleExoPlayer} to use.
+ * @param player The {@link ExoPlayer} to use.
*/
- public void setPlayer(SimpleExoPlayer player) {
+ public void setPlayer(ExoPlayer player) {
if (this.player == player) {
return;
}
if (this.player != null) {
- this.player.removeTextOutput(componentListener);
- this.player.removeVideoListener(componentListener);
this.player.removeListener(componentListener);
clearVideoView();
}
this.player = player;
- shutterView.setVisibility(VISIBLE);
+ shutterView.setVisibility(this.hideShutterView ? View.INVISIBLE : View.VISIBLE);
if (player != null) {
setVideoView();
- player.addVideoListener(componentListener);
player.addListener(componentListener);
- player.addTextOutput(componentListener);
}
}
@@ -178,6 +181,13 @@ public final class ExoPlayerView extends FrameLayout {
}
}
+ public void useSecureView(boolean useSecureView) {
+ if (useSecureView != this.useSecureView) {
+ this.useSecureView = useSecureView;
+ updateSurfaceView();
+ }
+ }
+
public void setHideShutterView(boolean hideShutterView) {
this.hideShutterView = hideShutterView;
updateShutterViewVisibility();
@@ -206,7 +216,7 @@ public final class ExoPlayerView extends FrameLayout {
}
}
// Video disabled so the shutter must be closed.
- shutterView.setVisibility(VISIBLE);
+ shutterView.setVisibility(this.hideShutterView ? View.INVISIBLE : View.VISIBLE);
}
public void invalidateAspectRatio() {
@@ -214,8 +224,7 @@ public final class ExoPlayerView extends FrameLayout {
layout.invalidateAspectRatio();
}
- private final class ComponentListener implements VideoListener,
- TextOutput, ExoPlayer.EventListener {
+ private final class ComponentListener implements Player.Listener {
// TextRenderer.Output implementation
@@ -224,12 +233,12 @@ public final class ExoPlayerView extends FrameLayout {
subtitleLayout.onCues(cues);
}
- // SimpleExoPlayer.VideoListener implementation
+ // ExoPlayer.VideoListener implementation
@Override
- public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) {
+ public void onVideoSizeChanged(VideoSize videoSize) {
boolean isInitialRatio = layout.getAspectRatio() == 0;
- layout.setAspectRatio(height == 0 ? 1 : (width * pixelWidthHeightRatio) / height);
+ layout.setAspectRatio(videoSize.height == 0 ? 1 : (videoSize.width * videoSize.pixelWidthHeightRatio) / videoSize.height);
// React native workaround for measuring and layout on initial load.
if (isInitialRatio) {
@@ -245,32 +254,37 @@ public final class ExoPlayerView extends FrameLayout {
// ExoPlayer.EventListener implementation
@Override
- public void onLoadingChanged(boolean isLoading) {
+ public void onIsLoadingChanged(boolean isLoading) {
// Do nothing.
}
@Override
- public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
+ public void onPlaybackStateChanged(int playbackState) {
// Do nothing.
}
@Override
- public void onPlayerError(ExoPlaybackException e) {
+ public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
// Do nothing.
}
@Override
- public void onPositionDiscontinuity(int reason) {
+ public void onPlayerError(PlaybackException e) {
// Do nothing.
}
@Override
- public void onTimelineChanged(Timeline timeline, Object manifest, int reason) {
+ public void onPositionDiscontinuity(Player.PositionInfo oldPosition, Player.PositionInfo newPosition, int reason) {
// Do nothing.
}
@Override
- public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
+ public void onTimelineChanged(Timeline timeline, int reason) {
+ // Do nothing.
+ }
+
+ @Override
+ public void onTracksInfoChanged(TracksInfo tracksInfo) {
updateForCurrentTrackSelections();
}
@@ -279,11 +293,6 @@ public final class ExoPlayerView extends FrameLayout {
// Do nothing
}
- @Override
- public void onSeekProcessed() {
- // Do nothing.
- }
-
@Override
public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) {
// Do nothing.
diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/RawResourceDataSourceFactory.java b/android/src/main/java/com/brentvatne/exoplayer/RawResourceDataSourceFactory.java
similarity index 100%
rename from android-exoplayer/src/main/java/com/brentvatne/exoplayer/RawResourceDataSourceFactory.java
rename to android/src/main/java/com/brentvatne/exoplayer/RawResourceDataSourceFactory.java
diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerConfig.java b/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerConfig.java
similarity index 78%
rename from android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerConfig.java
rename to android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerConfig.java
index 522578b7..2cc56f9a 100644
--- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerConfig.java
+++ b/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerConfig.java
@@ -9,5 +9,8 @@ import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy;
public interface ReactExoplayerConfig {
LoadErrorHandlingPolicy buildLoadErrorHandlingPolicy(int minLoadRetryCount);
+ void setDisableDisconnectError(boolean disableDisconnectError);
+ boolean getDisableDisconnectError();
+
DefaultBandwidthMeter getBandwidthMeter();
}
diff --git a/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.java b/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.java
new file mode 100644
index 00000000..d0d68de1
--- /dev/null
+++ b/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.java
@@ -0,0 +1,36 @@
+package com.brentvatne.exoplayer;
+
+import java.io.IOException;
+import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy;
+import com.google.android.exoplayer2.upstream.HttpDataSource.HttpDataSourceException;
+import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy.LoadErrorInfo;
+import com.google.android.exoplayer2.C;
+
+public final class ReactExoplayerLoadErrorHandlingPolicy extends DefaultLoadErrorHandlingPolicy {
+ private int minLoadRetryCount = Integer.MAX_VALUE;
+
+ public ReactExoplayerLoadErrorHandlingPolicy(int minLoadRetryCount) {
+ super(minLoadRetryCount);
+ this.minLoadRetryCount = minLoadRetryCount;
+ }
+
+ @Override
+ public long getRetryDelayMsFor(LoadErrorInfo loadErrorInfo) {
+ if (
+ loadErrorInfo.exception instanceof HttpDataSourceException &&
+ (loadErrorInfo.exception.getMessage() == "Unable to connect" || loadErrorInfo.exception.getMessage() == "Software caused connection abort")
+ ) {
+ // Capture the error we get when there is no network connectivity and keep retrying it
+ return 1000; // Retry every second
+ } else if(loadErrorInfo.errorCount < this.minLoadRetryCount) {
+ return Math.min((loadErrorInfo.errorCount - 1) * 1000, 5000); // Default timeout handling
+ } else {
+ return C.TIME_UNSET; // Done retrying and will return the error immediately
+ }
+ }
+
+ @Override
+ public int getMinimumLoadableRetryCount(int dataType) {
+ return Integer.MAX_VALUE;
+ }
+}
\ No newline at end of file
diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
similarity index 54%
rename from android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
rename to android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
index fe95fdf4..fdbbff44 100644
--- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
+++ b/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
@@ -2,10 +2,12 @@ package com.brentvatne.exoplayer;
import android.annotation.SuppressLint;
import android.app.Activity;
+import android.app.ActivityManager;
import android.content.Context;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Handler;
+import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
@@ -26,27 +28,34 @@ import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.ThemedReactContext;
+import com.facebook.react.util.RNLog;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.DefaultLoadControl;
import com.google.android.exoplayer2.DefaultRenderersFactory;
import com.google.android.exoplayer2.ExoPlaybackException;
-import com.google.android.exoplayer2.ExoPlayerFactory;
+import com.google.android.exoplayer2.drm.MediaDrmCallbackException;
+import com.google.android.exoplayer2.drm.DrmSession.DrmSessionException;
import com.google.android.exoplayer2.Format;
+import com.google.android.exoplayer2.MediaItem;
+import com.google.android.exoplayer2.PlaybackException;
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Player;
-import com.google.android.exoplayer2.SimpleExoPlayer;
+import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline;
+import com.google.android.exoplayer2.TracksInfo;
import com.google.android.exoplayer2.drm.DefaultDrmSessionManager;
import com.google.android.exoplayer2.drm.DrmSessionEventListener;
import com.google.android.exoplayer2.drm.DrmSessionManager;
-import com.google.android.exoplayer2.drm.FrameworkMediaCrypto;
+import com.google.android.exoplayer2.drm.DrmSessionManagerProvider;
+import com.google.android.exoplayer2.drm.ExoMediaDrm;
import com.google.android.exoplayer2.drm.FrameworkMediaDrm;
import com.google.android.exoplayer2.drm.HttpMediaDrmCallback;
+import com.google.android.exoplayer2.drm.MediaDrmCallbackException;
import com.google.android.exoplayer2.drm.UnsupportedDrmException;
+import com.google.android.exoplayer2.mediacodec.MediaCodecInfo;
import com.google.android.exoplayer2.mediacodec.MediaCodecRenderer;
import com.google.android.exoplayer2.mediacodec.MediaCodecUtil;
import com.google.android.exoplayer2.metadata.Metadata;
-import com.google.android.exoplayer2.metadata.MetadataOutput;
import com.google.android.exoplayer2.source.BehindLiveWindowException;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.MergingMediaSource;
@@ -63,33 +72,56 @@ import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
import com.google.android.exoplayer2.trackselection.ExoTrackSelection;
-import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
+import com.google.android.exoplayer2.trackselection.TrackSelectionOverrides;
+import com.google.android.exoplayer2.trackselection.TrackSelectionOverrides.TrackSelectionOverride;
import com.google.android.exoplayer2.ui.PlayerControlView;
import com.google.android.exoplayer2.upstream.BandwidthMeter;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultAllocator;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.upstream.HttpDataSource;
+import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util;
+import com.google.android.exoplayer2.trackselection.TrackSelection;
+import com.google.android.exoplayer2.source.dash.DashUtil;
+import com.google.android.exoplayer2.source.dash.manifest.DashManifest;
+import com.google.android.exoplayer2.source.dash.manifest.Period;
+import com.google.android.exoplayer2.source.dash.manifest.AdaptationSet;
+import com.google.android.exoplayer2.source.dash.manifest.Representation;
+import com.google.android.exoplayer2.source.dash.manifest.Descriptor;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
import java.util.UUID;
import java.util.Map;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.List;
+import java.lang.Thread;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Callable;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.lang.Integer;
@SuppressLint("ViewConstructor")
class ReactExoplayerView extends FrameLayout implements
LifecycleEventListener,
- Player.EventListener,
+ Player.Listener,
BandwidthMeter.EventListener,
BecomingNoisyListener,
AudioManager.OnAudioFocusChangeListener,
- MetadataOutput,
DrmSessionEventListener {
+ public static final double DEFAULT_MAX_HEAP_ALLOCATION_PERCENT = 1;
+ public static final double DEFAULT_MIN_BACK_BUFFER_MEMORY_RESERVE = 0;
+ public static final double DEFAULT_MIN_BUFFER_MEMORY_RESERVE = 0;
+
private static final String TAG = "ReactExoplayerView";
private static final CookieManager DEFAULT_COOKIE_MANAGER;
@@ -105,12 +137,12 @@ class ReactExoplayerView extends FrameLayout implements
private final DefaultBandwidthMeter bandwidthMeter;
private PlayerControlView playerControlView;
private View playPauseControlContainer;
- private Player.EventListener eventListener;
+ private Player.Listener eventListener;
private ExoPlayerView exoPlayerView;
private DataSource.Factory mediaDataSourceFactory;
- private SimpleExoPlayer player;
+ private ExoPlayer player;
private DefaultTrackSelector trackSelector;
private boolean playerNeedsSource;
@@ -128,15 +160,21 @@ class ReactExoplayerView extends FrameLayout implements
private int minLoadRetryCount = 3;
private int maxBitRate = 0;
private long seekTime = C.TIME_UNSET;
+ private boolean hasDrmFailed = false;
+ private boolean isUsingContentResolution = false;
+ private boolean selectTrackWhenReady = false;
private int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS;
private int maxBufferMs = DefaultLoadControl.DEFAULT_MAX_BUFFER_MS;
private int bufferForPlaybackMs = DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS;
private int bufferForPlaybackAfterRebufferMs = DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS;
-
+ private double maxHeapAllocationPercent = ReactExoplayerView.DEFAULT_MAX_HEAP_ALLOCATION_PERCENT;
+ private double minBackBufferMemoryReservePercent = ReactExoplayerView.DEFAULT_MIN_BACK_BUFFER_MEMORY_RESERVE;
+ private double minBufferMemoryReservePercent = ReactExoplayerView.DEFAULT_MIN_BUFFER_MEMORY_RESERVE;
private Handler mainHandler;
// Props from React
+ private int backBufferDurationMs = DefaultLoadControl.DEFAULT_BACK_BUFFER_DURATION_MS;
private Uri srcUri;
private String extension;
private boolean repeat;
@@ -148,6 +186,9 @@ class ReactExoplayerView extends FrameLayout implements
private Dynamic textTrackValue;
private ReadableArray textTracks;
private boolean disableFocus;
+ private boolean disableBuffering;
+ private long contentStartTime = -1L;
+ private boolean disableDisconnectError;
private boolean preventsDisplaySleepDuringVideoPlayback = true;
private float mProgressUpdateInterval = 250.0f;
private boolean playInBackground = false;
@@ -164,18 +205,29 @@ class ReactExoplayerView extends FrameLayout implements
private final AudioManager audioManager;
private final AudioBecomingNoisyReceiver audioBecomingNoisyReceiver;
- private final Handler progressHandler = new Handler() {
+ // store last progress event values to avoid sending unnecessary messages
+ private long lastPos = -1;
+ private long lastBufferDuration = -1;
+ private long lastDuration = -1;
+
+ private final Handler progressHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SHOW_PROGRESS:
- if (player != null
- && player.getPlaybackState() == Player.STATE_READY
- && player.getPlayWhenReady()
- ) {
+ if (player != null) {
long pos = player.getCurrentPosition();
long bufferedDuration = player.getBufferedPercentage() * player.getDuration() / 100;
- eventEmitter.progressChanged(pos, bufferedDuration, player.getDuration(), getPositionInFirstPeriodMsForCurrentWindow(pos));
+ long duration = player.getDuration();
+
+ if (lastPos != pos
+ || lastBufferDuration != bufferedDuration
+ || lastDuration != duration) {
+ lastPos = pos;
+ lastBufferDuration = bufferedDuration;
+ lastDuration = duration;
+ eventEmitter.progressChanged(pos, bufferedDuration, player.getDuration(), getPositionInFirstPeriodMsForCurrentWindow(pos));
+ }
msg = obtainMessage(SHOW_PROGRESS);
sendMessageDelayed(msg, Math.round(mProgressUpdateInterval));
}
@@ -183,11 +235,11 @@ class ReactExoplayerView extends FrameLayout implements
}
}
};
-
+
public double getPositionInFirstPeriodMsForCurrentWindow(long currentPosition) {
Timeline.Window window = new Timeline.Window();
- if(!player.getCurrentTimeline().isEmpty()) {
- player.getCurrentTimeline().getWindow(player.getCurrentWindowIndex(), window);
+ if(!player.getCurrentTimeline().isEmpty()) {
+ player.getCurrentTimeline().getWindow(player.getCurrentMediaItemIndex(), window);
}
return window.windowStartTimeMs + currentPosition;
}
@@ -347,10 +399,17 @@ class ReactExoplayerView extends FrameLayout implements
}
});
- // Invoking onPlayerStateChanged event for Player
- eventListener = new Player.EventListener() {
+ // Invoking onPlaybackStateChanged and onPlayWhenReadyChanged events for Player
+ eventListener = new Player.Listener() {
@Override
- public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
+ public void onPlaybackStateChanged(int playbackState) {
+ reLayout(playPauseControlContainer);
+ //Remove this eventListener once its executed. since UI will work fine once after the reLayout is done
+ player.removeListener(eventListener);
+ }
+
+ @Override
+ public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
reLayout(playPauseControlContainer);
//Remove this eventListener once its executed. since UI will work fine once after the reLayout is done
player.removeListener(eventListener);
@@ -388,147 +447,300 @@ class ReactExoplayerView extends FrameLayout implements
view.layout(view.getLeft(), view.getTop(), view.getMeasuredWidth(), view.getMeasuredHeight());
}
+ private class RNVLoadControl extends DefaultLoadControl {
+ private int availableHeapInBytes = 0;
+ private Runtime runtime;
+ public RNVLoadControl(DefaultAllocator allocator, int minBufferMs, int maxBufferMs, int bufferForPlaybackMs, int bufferForPlaybackAfterRebufferMs, int targetBufferBytes, boolean prioritizeTimeOverSizeThresholds, int backBufferDurationMs, boolean retainBackBufferFromKeyframe) {
+ super(allocator,
+ minBufferMs,
+ maxBufferMs,
+ bufferForPlaybackMs,
+ bufferForPlaybackAfterRebufferMs,
+ targetBufferBytes,
+ prioritizeTimeOverSizeThresholds,
+ backBufferDurationMs,
+ retainBackBufferFromKeyframe);
+ runtime = Runtime.getRuntime();
+ ActivityManager activityManager = (ActivityManager) themedReactContext.getSystemService(themedReactContext.ACTIVITY_SERVICE);
+ availableHeapInBytes = (int) Math.floor(activityManager.getMemoryClass() * maxHeapAllocationPercent * 1024 * 1024);
+ }
+
+ @Override
+ public boolean shouldContinueLoading(long playbackPositionUs, long bufferedDurationUs, float playbackSpeed) {
+ if (ReactExoplayerView.this.disableBuffering) {
+ return false;
+ }
+ int loadedBytes = getAllocator().getTotalBytesAllocated();
+ boolean isHeapReached = availableHeapInBytes > 0 && loadedBytes >= availableHeapInBytes;
+ if (isHeapReached) {
+ return false;
+ }
+ long usedMemory = runtime.totalMemory() - runtime.freeMemory();
+ long freeMemory = runtime.maxMemory() - usedMemory;
+ long reserveMemory = (long)minBufferMemoryReservePercent * runtime.maxMemory();
+ long bufferedMs = bufferedDurationUs / (long)1000;
+ if (reserveMemory > freeMemory && bufferedMs > 2000) {
+ // We don't have enough memory in reserve so we stop buffering to allow other components to use it instead
+ return false;
+ }
+ if (runtime.freeMemory() == 0) {
+ Log.w("ExoPlayer Warning", "Free memory reached 0, forcing garbage collection");
+ runtime.gc();
+ return false;
+ }
+ return super.shouldContinueLoading(playbackPositionUs, bufferedDurationUs, playbackSpeed);
+ }
+ }
+
+ private void startBufferCheckTimer() {
+ Player player = this.player;
+ VideoEventEmitter eventEmitter = this.eventEmitter;
+ Handler mainHandler = this.mainHandler;
+
+ }
+
private void initializePlayer() {
ReactExoplayerView self = this;
+ Activity activity = themedReactContext.getCurrentActivity();
// This ensures all props have been settled, to avoid async racing conditions.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
- if (player == null) {
- ExoTrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory();
- trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
- trackSelector.setParameters(trackSelector.buildUponParameters()
- .setMaxVideoBitrate(maxBitRate == 0 ? Integer.MAX_VALUE : maxBitRate));
+ try {
+ if (player == null) {
+ // Initialize core configuration and listeners
+ initializePlayerCore(self);
+ }
+ if (playerNeedsSource && srcUri != null) {
+ exoPlayerView.invalidateAspectRatio();
+ // DRM session manager creation must be done on a different thread to prevent crashes so we start a new thread
+ ExecutorService es = Executors.newSingleThreadExecutor();
+ es.execute(new Runnable() {
+ @Override
+ public void run() {
+ // DRM initialization must run on a different thread
+ DrmSessionManager drmSessionManager = initializePlayerDrm(self);
+ if (drmSessionManager == null && self.drmUUID != null) {
+ // Failed to intialize DRM session manager - cannot continue
+ Log.e("ExoPlayer Exception", "Failed to initialize DRM Session Manager Framework!");
+ eventEmitter.error("Failed to initialize DRM Session Manager Framework!", new Exception("DRM Session Manager Framework failure!"), "3003");
+ return;
+ }
- DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE);
- DefaultLoadControl.Builder defaultLoadControlBuilder = new DefaultLoadControl.Builder();
- defaultLoadControlBuilder.setAllocator(allocator);
- defaultLoadControlBuilder.setBufferDurationsMs(minBufferMs, maxBufferMs, bufferForPlaybackMs, bufferForPlaybackAfterRebufferMs);
- defaultLoadControlBuilder.setTargetBufferBytes(-1);
- defaultLoadControlBuilder.setPrioritizeTimeOverSizeThresholds(true);
- DefaultLoadControl defaultLoadControl = defaultLoadControlBuilder.createDefaultLoadControl();
- DefaultRenderersFactory renderersFactory =
- new DefaultRenderersFactory(getContext())
- .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF);
- player = new SimpleExoPlayer.Builder(getContext(), renderersFactory)
- .setTrackSelector(trackSelector)
- .setBandwidthMeter(bandwidthMeter)
- .setLoadControl(defaultLoadControl)
- .build();
- player.addListener(self);
- player.addMetadataOutput(self);
- exoPlayerView.setPlayer(player);
- audioBecomingNoisyReceiver.setListener(self);
- bandwidthMeter.addEventListener(new Handler(), self);
- setPlayWhenReady(!isPaused);
- playerNeedsSource = true;
-
- PlaybackParameters params = new PlaybackParameters(rate, 1f);
- player.setPlaybackParameters(params);
+ // Initialize handler to run on the main thread
+ activity.runOnUiThread(new Runnable() {
+ public void run() {
+ try {
+ // Source initialization must run on the main thread
+ initializePlayerSource(self, drmSessionManager);
+ } catch (Exception ex) {
+ self.playerNeedsSource = true;
+ Log.e("ExoPlayer Exception", "Failed to initialize Player!");
+ Log.e("ExoPlayer Exception", ex.toString());
+ self.eventEmitter.error(ex.toString(), ex, "1001");
+ }
+ }
+ });
+ }
+ });
+ } else if (srcUri != null) {
+ initializePlayerSource(self, null);
+ }
+ } catch (Exception ex) {
+ self.playerNeedsSource = true;
+ Log.e("ExoPlayer Exception", "Failed to initialize Player!");
+ Log.e("ExoPlayer Exception", ex.toString());
+ eventEmitter.error(ex.toString(), ex, "1001");
}
- if (playerNeedsSource && srcUri != null) {
- exoPlayerView.invalidateAspectRatio();
-
- // DRM
- DrmSessionManager drmSessionManager = null;
- if (self.drmUUID != null) {
- try {
- drmSessionManager = buildDrmSessionManager(self.drmUUID, self.drmLicenseUrl,
- self.drmLicenseHeader);
- } catch (UnsupportedDrmException e) {
- int errorStringId = Util.SDK_INT < 18 ? R.string.error_drm_not_supported
- : (e.reason == UnsupportedDrmException.REASON_UNSUPPORTED_SCHEME
- ? R.string.error_drm_unsupported_scheme : R.string.error_drm_unknown);
- eventEmitter.error(getResources().getString(errorStringId), e);
- return;
- }
- }
- // End DRM
-
- ArrayList mediaSourceList = buildTextSources();
- MediaSource videoSource = buildMediaSource(srcUri, extension, drmSessionManager);
- MediaSource mediaSource;
- if (mediaSourceList.size() == 0) {
- mediaSource = videoSource;
- } else {
- mediaSourceList.add(0, videoSource);
- MediaSource[] textSourceArray = mediaSourceList.toArray(
- new MediaSource[mediaSourceList.size()]
- );
- mediaSource = new MergingMediaSource(textSourceArray);
- }
-
- boolean haveResumePosition = resumeWindow != C.INDEX_UNSET;
- if (haveResumePosition) {
- player.seekTo(resumeWindow, resumePosition);
- }
- player.prepare(mediaSource, !haveResumePosition, false);
- playerNeedsSource = false;
-
- reLayout(exoPlayerView);
- eventEmitter.loadStart();
- loadVideoStarted = true;
- }
-
- // Initializing the playerControlView
- initializePlayerControl();
- setControls(controls);
- applyModifiers();
}
}, 1);
+
}
- private DrmSessionManager buildDrmSessionManager(UUID uuid,
- String licenseUrl, String[] keyRequestPropertiesArray) throws UnsupportedDrmException {
+ private void initializePlayerCore(ReactExoplayerView self) {
+ ExoTrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory();
+ self.trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
+ self.trackSelector.setParameters(trackSelector.buildUponParameters()
+ .setMaxVideoBitrate(maxBitRate == 0 ? Integer.MAX_VALUE : maxBitRate));
+
+ DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE);
+ RNVLoadControl loadControl = new RNVLoadControl(
+ allocator,
+ minBufferMs,
+ maxBufferMs,
+ bufferForPlaybackMs,
+ bufferForPlaybackAfterRebufferMs,
+ -1,
+ true,
+ backBufferDurationMs,
+ DefaultLoadControl.DEFAULT_RETAIN_BACK_BUFFER_FROM_KEYFRAME
+ );
+ DefaultRenderersFactory renderersFactory =
+ new DefaultRenderersFactory(getContext())
+ .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF);
+ player = new ExoPlayer.Builder(getContext(), renderersFactory)
+ .setTrackSelector(self.trackSelector)
+ .setBandwidthMeter(bandwidthMeter)
+ .setLoadControl(loadControl)
+ .build();
+ player.addListener(self);
+ exoPlayerView.setPlayer(player);
+ audioBecomingNoisyReceiver.setListener(self);
+ bandwidthMeter.addEventListener(new Handler(), self);
+ setPlayWhenReady(!isPaused);
+ playerNeedsSource = true;
+
+ PlaybackParameters params = new PlaybackParameters(rate, 1f);
+ player.setPlaybackParameters(params);
+ }
+
+ private DrmSessionManager initializePlayerDrm(ReactExoplayerView self) {
+ DrmSessionManager drmSessionManager = null;
+ if (self.drmUUID != null) {
+ try {
+ drmSessionManager = self.buildDrmSessionManager(self.drmUUID, self.drmLicenseUrl,
+ self.drmLicenseHeader);
+ } catch (UnsupportedDrmException e) {
+ int errorStringId = Util.SDK_INT < 18 ? R.string.error_drm_not_supported
+ : (e.reason == UnsupportedDrmException.REASON_UNSUPPORTED_SCHEME
+ ? R.string.error_drm_unsupported_scheme : R.string.error_drm_unknown);
+ eventEmitter.error(getResources().getString(errorStringId), e, "3003");
+ return null;
+ }
+ }
+ return drmSessionManager;
+ }
+
+ private void initializePlayerSource(ReactExoplayerView self, DrmSessionManager drmSessionManager) {
+ ArrayList mediaSourceList = buildTextSources();
+ MediaSource videoSource = buildMediaSource(self.srcUri, self.extension, drmSessionManager);
+ MediaSource mediaSource;
+ if (mediaSourceList.size() == 0) {
+ mediaSource = videoSource;
+ } else {
+ mediaSourceList.add(0, videoSource);
+ MediaSource[] textSourceArray = mediaSourceList.toArray(
+ new MediaSource[mediaSourceList.size()]
+ );
+ mediaSource = new MergingMediaSource(textSourceArray);
+ }
+
+ // wait for player to be set
+ while (player == null) {
+ try {
+ wait();
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ Log.e("ExoPlayer Exception", ex.toString());
+ }
+ }
+
+ boolean haveResumePosition = resumeWindow != C.INDEX_UNSET;
+ if (haveResumePosition) {
+ player.seekTo(resumeWindow, resumePosition);
+ }
+ player.prepare(mediaSource, !haveResumePosition, false);
+ playerNeedsSource = false;
+
+ reLayout(exoPlayerView);
+ eventEmitter.loadStart();
+ loadVideoStarted = true;
+
+ finishPlayerInitialization();
+ }
+
+ private void finishPlayerInitialization() {
+ // Initializing the playerControlView
+ initializePlayerControl();
+ setControls(controls);
+ applyModifiers();
+ startBufferCheckTimer();
+ }
+
+ private DrmSessionManager buildDrmSessionManager(UUID uuid, String licenseUrl, String[] keyRequestPropertiesArray) throws UnsupportedDrmException {
+ return buildDrmSessionManager(uuid, licenseUrl, keyRequestPropertiesArray, 0);
+ }
+
+ private DrmSessionManager buildDrmSessionManager(UUID uuid, String licenseUrl, String[] keyRequestPropertiesArray, int retryCount) throws UnsupportedDrmException {
if (Util.SDK_INT < 18) {
return null;
}
- HttpMediaDrmCallback drmCallback = new HttpMediaDrmCallback(licenseUrl,
- buildHttpDataSourceFactory(false));
- if (keyRequestPropertiesArray != null) {
- for (int i = 0; i < keyRequestPropertiesArray.length - 1; i += 2) {
- drmCallback.setKeyRequestProperty(keyRequestPropertiesArray[i],
- keyRequestPropertiesArray[i + 1]);
+ try {
+ HttpMediaDrmCallback drmCallback = new HttpMediaDrmCallback(licenseUrl,
+ buildHttpDataSourceFactory(false));
+ if (keyRequestPropertiesArray != null) {
+ for (int i = 0; i < keyRequestPropertiesArray.length - 1; i += 2) {
+ drmCallback.setKeyRequestProperty(keyRequestPropertiesArray[i], keyRequestPropertiesArray[i + 1]);
+ }
}
+ FrameworkMediaDrm mediaDrm = FrameworkMediaDrm.newInstance(uuid);
+ if (hasDrmFailed) {
+ // When DRM fails using L1 we want to switch to L3
+ mediaDrm.setPropertyString("securityLevel", "L3");
+ }
+ return new DefaultDrmSessionManager(uuid, mediaDrm, drmCallback, null, false, 3);
+ } catch(UnsupportedDrmException ex) {
+ // Unsupported DRM exceptions are handled by the calling method
+ throw ex;
+ } catch (Exception ex) {
+ if (retryCount < 3) {
+ // Attempt retry 3 times in case where the OS Media DRM Framework fails for whatever reason
+ return buildDrmSessionManager(uuid, licenseUrl, keyRequestPropertiesArray, ++retryCount);
+ }
+ // Handle the unknow exception and emit to JS
+ eventEmitter.error(ex.toString(), ex, "3006");
+ return null;
}
- return new DefaultDrmSessionManager(uuid,
- FrameworkMediaDrm.newInstance(uuid), drmCallback, null, false, 3);
}
private MediaSource buildMediaSource(Uri uri, String overrideExtension, DrmSessionManager drmSessionManager) {
+ if (uri == null) {
+ throw new IllegalStateException("Invalid video uri");
+ }
int type = Util.inferContentType(!TextUtils.isEmpty(overrideExtension) ? "." + overrideExtension
: uri.getLastPathSegment());
+ config.setDisableDisconnectError(this.disableDisconnectError);
+ MediaItem mediaItem = new MediaItem.Builder().setUri(uri).build();
+ DrmSessionManagerProvider drmProvider = null;
+ if (drmSessionManager != null) {
+ drmProvider = new DrmSessionManagerProvider() {
+ @Override
+ public DrmSessionManager get(MediaItem mediaItem) {
+ return drmSessionManager;
+ }
+ };
+ }
switch (type) {
case C.TYPE_SS:
return new SsMediaSource.Factory(
new DefaultSsChunkSource.Factory(mediaDataSourceFactory),
buildDataSourceFactory(false)
- ).setDrmSessionManager(drmSessionManager)
+ ).setDrmSessionManagerProvider(drmProvider)
.setLoadErrorHandlingPolicy(
config.buildLoadErrorHandlingPolicy(minLoadRetryCount)
- ).createMediaSource(uri);
+ ).createMediaSource(mediaItem);
case C.TYPE_DASH:
return new DashMediaSource.Factory(
new DefaultDashChunkSource.Factory(mediaDataSourceFactory),
buildDataSourceFactory(false)
- ).setDrmSessionManager(drmSessionManager)
+ ).setDrmSessionManagerProvider(drmProvider)
.setLoadErrorHandlingPolicy(
config.buildLoadErrorHandlingPolicy(minLoadRetryCount)
- ).createMediaSource(uri);
+ ).createMediaSource(mediaItem);
case C.TYPE_HLS:
return new HlsMediaSource.Factory(
mediaDataSourceFactory
- ).setDrmSessionManager(drmSessionManager)
+ ).setDrmSessionManagerProvider(drmProvider)
.setLoadErrorHandlingPolicy(
config.buildLoadErrorHandlingPolicy(minLoadRetryCount)
- ).createMediaSource(uri);
+ ).createMediaSource(mediaItem);
case C.TYPE_OTHER:
return new ProgressiveMediaSource.Factory(
mediaDataSourceFactory
- ).setDrmSessionManager(drmSessionManager)
+ ).setDrmSessionManagerProvider(drmProvider)
.setLoadErrorHandlingPolicy(
config.buildLoadErrorHandlingPolicy(minLoadRetryCount)
- ).createMediaSource(uri);
+ ).createMediaSource(mediaItem);
default: {
throw new IllegalStateException("Unsupported type: " + type);
}
@@ -557,16 +769,22 @@ class ReactExoplayerView extends FrameLayout implements
}
private MediaSource buildTextSource(String title, Uri uri, String mimeType, String language) {
- Format textFormat = Format.createTextSampleFormat(title, mimeType, Format.NO_VALUE, language);
+ MediaItem.SubtitleConfiguration subtitleConfiguration = new MediaItem.SubtitleConfiguration.Builder(uri)
+ .setMimeType(mimeType)
+ .setLanguage(language)
+ .setSelectionFlags(C.SELECTION_FLAG_DEFAULT)
+ .setRoleFlags(C.ROLE_FLAG_SUBTITLE)
+ .setLabel(title)
+ .build();
return new SingleSampleMediaSource.Factory(mediaDataSourceFactory)
- .createMediaSource(uri, textFormat, C.TIME_UNSET);
+ .createMediaSource(subtitleConfiguration, C.TIME_UNSET);
}
private void releasePlayer() {
if (player != null) {
updateResumePosition();
player.release();
- player.removeMetadataOutput(this);
+ player.removeListener(this);
trackSelector = null;
player = null;
}
@@ -617,7 +835,6 @@ class ReactExoplayerView extends FrameLayout implements
default:
break;
}
-
} else {
initializePlayer();
}
@@ -648,8 +865,8 @@ class ReactExoplayerView extends FrameLayout implements
}
private void updateResumePosition() {
- resumeWindow = player.getCurrentWindowIndex();
- resumePosition = player.isCurrentWindowSeekable() ? Math.max(0, player.getCurrentPosition())
+ resumeWindow = player.getCurrentMediaItemIndex();
+ resumePosition = player.isCurrentMediaItemSeekable() ? Math.max(0, player.getCurrentPosition())
: C.TIME_UNSET;
}
@@ -726,25 +943,29 @@ class ReactExoplayerView extends FrameLayout implements
eventEmitter.audioBecomingNoisy();
}
- // Player.EventListener implementation
+ // Player.Listener implementation
@Override
- public void onLoadingChanged(boolean isLoading) {
+ public void onIsLoadingChanged(boolean isLoading) {
// Do nothing.
}
@Override
- public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
- String text = "onStateChanged: playWhenReady=" + playWhenReady + ", playbackState=";
- switch (playbackState) {
- case Player.STATE_IDLE:
- text += "idle";
- eventEmitter.idle();
- clearProgressMessageHandler();
- if (!playWhenReady) {
- setKeepScreenOn(false);
- }
- break;
+ public void onEvents(Player player, Player.Events events) {
+ if (events.contains(Player.EVENT_PLAYBACK_STATE_CHANGED) || events.contains(Player.EVENT_PLAY_WHEN_READY_CHANGED)) {
+ int playbackState = player.getPlaybackState();
+ boolean playWhenReady = player.getPlayWhenReady();
+ String text = "onStateChanged: playWhenReady=" + playWhenReady + ", playbackState=";
+ eventEmitter.playbackRateChange(playWhenReady && playbackState == ExoPlayer.STATE_READY ? 1.0f : 0.0f);
+ switch (playbackState) {
+ case Player.STATE_IDLE:
+ text += "idle";
+ eventEmitter.idle();
+ clearProgressMessageHandler();
+ if (!player.getPlayWhenReady()) {
+ setKeepScreenOn(false);
+ }
+ break;
case Player.STATE_BUFFERING:
text += "buffering";
onBuffering(true);
@@ -757,6 +978,10 @@ class ReactExoplayerView extends FrameLayout implements
onBuffering(false);
startProgressHandler();
videoLoaded();
+ if (selectTrackWhenReady && isUsingContentResolution) {
+ selectTrackWhenReady = false;
+ setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue);
+ }
// Setting the visibility for the playerControlView
if (playerControlView != null) {
playerControlView.show();
@@ -772,8 +997,8 @@ class ReactExoplayerView extends FrameLayout implements
default:
text += "unknown";
break;
+ }
}
- Log.d(TAG, text);
}
private void startProgressHandler() {
@@ -792,21 +1017,47 @@ class ReactExoplayerView extends FrameLayout implements
private void videoLoaded() {
if (loadVideoStarted) {
loadVideoStarted = false;
- setSelectedAudioTrack(audioTrackType, audioTrackValue);
- setSelectedVideoTrack(videoTrackType, videoTrackValue);
- setSelectedTextTrack(textTrackType, textTrackValue);
+ if (audioTrackType != null) {
+ setSelectedAudioTrack(audioTrackType, audioTrackValue);
+ }
+ if (videoTrackType != null) {
+ setSelectedVideoTrack(videoTrackType, videoTrackValue);
+ }
+ if (textTrackType != null) {
+ setSelectedTextTrack(textTrackType, textTrackValue);
+ }
Format videoFormat = player.getVideoFormat();
int width = videoFormat != null ? videoFormat.width : 0;
int height = videoFormat != null ? videoFormat.height : 0;
String trackId = videoFormat != null ? videoFormat.id : "-1";
- eventEmitter.load(player.getDuration(), player.getCurrentPosition(), width, height,
- getAudioTrackInfo(), getTextTrackInfo(), getVideoTrackInfo(), trackId);
+
+ // Properties that must be accessed on the main thread
+ long duration = player.getDuration();
+ long currentPosition = player.getCurrentPosition();
+ WritableArray audioTrackInfo = getAudioTrackInfo();
+ WritableArray textTrackInfo = getTextTrackInfo();
+ int trackRendererIndex = getTrackRendererIndex(C.TRACK_TYPE_VIDEO);
+
+ ExecutorService es = Executors.newSingleThreadExecutor();
+ es.execute(new Runnable() {
+ @Override
+ public void run() {
+ // To prevent ANRs caused by getVideoTrackInfo we run this on a different thread and notify the player only when we're done
+ eventEmitter.load(duration, currentPosition, width, height,
+ audioTrackInfo, textTrackInfo, getVideoTrackInfo(trackRendererIndex), trackId);
+ }
+ });
}
}
private WritableArray getAudioTrackInfo() {
WritableArray audioTracks = Arguments.createArray();
+ if (trackSelector == null) {
+ // Likely player is unmounting so no audio tracks are available anymore
+ return audioTracks;
+ }
+
MappingTrackSelector.MappedTrackInfo info = trackSelector.getCurrentMappedTrackInfo();
int index = getTrackRendererIndex(C.TRACK_TYPE_AUDIO);
if (info == null || index == C.INDEX_UNSET) {
@@ -827,34 +1078,114 @@ class ReactExoplayerView extends FrameLayout implements
}
return audioTracks;
}
- private WritableArray getVideoTrackInfo() {
+ private WritableArray getVideoTrackInfo(int trackRendererIndex) {
+
+ if (this.contentStartTime != -1L) {
+ WritableArray contentVideoTracks = this.getVideoTrackInfoFromManifest();
+ if (contentVideoTracks != null) {
+ isUsingContentResolution = true;
+ return contentVideoTracks;
+ }
+ }
+
WritableArray videoTracks = Arguments.createArray();
MappingTrackSelector.MappedTrackInfo info = trackSelector.getCurrentMappedTrackInfo();
- int index = getTrackRendererIndex(C.TRACK_TYPE_VIDEO);
- if (info == null || index == C.INDEX_UNSET) {
+
+ if (info == null || trackRendererIndex == C.INDEX_UNSET) {
return videoTracks;
}
- TrackGroupArray groups = info.getTrackGroups(index);
+ TrackGroupArray groups = info.getTrackGroups(trackRendererIndex);
for (int i = 0; i < groups.length; ++i) {
TrackGroup group = groups.get(i);
for (int trackIndex = 0; trackIndex < group.length; trackIndex++) {
Format format = group.getFormat(trackIndex);
- WritableMap videoTrack = Arguments.createMap();
- videoTrack.putInt("width", format.width == Format.NO_VALUE ? 0 : format.width);
- videoTrack.putInt("height",format.height == Format.NO_VALUE ? 0 : format.height);
- videoTrack.putInt("bitrate", format.bitrate == Format.NO_VALUE ? 0 : format.bitrate);
- videoTrack.putString("codecs", format.codecs != null ? format.codecs : "");
- videoTrack.putString("trackId",
- format.id == null ? String.valueOf(trackIndex) : format.id);
- videoTracks.pushMap(videoTrack);
+ if (isFormatSupported(format)) {
+ WritableMap videoTrack = Arguments.createMap();
+ videoTrack.putInt("width", format.width == Format.NO_VALUE ? 0 : format.width);
+ videoTrack.putInt("height",format.height == Format.NO_VALUE ? 0 : format.height);
+ videoTrack.putInt("bitrate", format.bitrate == Format.NO_VALUE ? 0 : format.bitrate);
+ videoTrack.putString("codecs", format.codecs != null ? format.codecs : "");
+ videoTrack.putString("trackId", format.id == null ? String.valueOf(trackIndex) : format.id);
+ videoTracks.pushMap(videoTrack);
+ }
}
}
+
return videoTracks;
}
+ private WritableArray getVideoTrackInfoFromManifest() {
+ return this.getVideoTrackInfoFromManifest(0);
+ }
+
+ // We need retry count to in case where minefest request fails from poor network conditions
+ private WritableArray getVideoTrackInfoFromManifest(int retryCount) {
+ ExecutorService es = Executors.newSingleThreadExecutor();
+ final DataSource dataSource = this.mediaDataSourceFactory.createDataSource();
+ final Uri sourceUri = this.srcUri;
+ final long startTime = this.contentStartTime * 1000 - 100; // s -> ms with 100ms offset
+
+ Future result = es.submit(new Callable() {
+ DataSource ds = dataSource;
+ Uri uri = sourceUri;
+ long startTimeUs = startTime * 1000; // ms -> us
+
+ public WritableArray call() throws Exception {
+ WritableArray videoTracks = Arguments.createArray();
+ try {
+ DashManifest manifest = DashUtil.loadManifest(this.ds, this.uri);
+ int periodCount = manifest.getPeriodCount();
+ for (int i = 0; i < periodCount; i++) {
+ Period period = manifest.getPeriod(i);
+ for (int adaptationIndex = 0; adaptationIndex < period.adaptationSets.size(); adaptationIndex++) {
+ AdaptationSet adaptation = period.adaptationSets.get(adaptationIndex);
+ if (adaptation.type != C.TRACK_TYPE_VIDEO) {
+ continue;
+ }
+ boolean hasFoundContentPeriod = false;
+ for (int representationIndex = 0; representationIndex < adaptation.representations.size(); representationIndex++) {
+ Representation representation = adaptation.representations.get(representationIndex);
+ Format format = representation.format;
+ if (representation.presentationTimeOffsetUs <= startTimeUs) {
+ break;
+ }
+ hasFoundContentPeriod = true;
+ WritableMap videoTrack = Arguments.createMap();
+ videoTrack.putInt("width", format.width == Format.NO_VALUE ? 0 : format.width);
+ videoTrack.putInt("height",format.height == Format.NO_VALUE ? 0 : format.height);
+ videoTrack.putInt("bitrate", format.bitrate == Format.NO_VALUE ? 0 : format.bitrate);
+ videoTrack.putString("codecs", format.codecs != null ? format.codecs : "");
+ videoTrack.putString("trackId",
+ format.id == null ? String.valueOf(representationIndex) : format.id);
+ if (isFormatSupported(format)) {
+ videoTracks.pushMap(videoTrack);
+ }
+ }
+ if (hasFoundContentPeriod) {
+ return videoTracks;
+ }
+ }
+ }
+ } catch (Exception e) {}
+ return null;
+ }
+ });
+
+ try {
+ WritableArray results = result.get(3000, TimeUnit.MILLISECONDS);
+ if (results == null && retryCount < 1) {
+ return this.getVideoTrackInfoFromManifest(++retryCount);
+ }
+ es.shutdown();
+ return results;
+ } catch (Exception e) {}
+
+ return null;
+ }
+
private WritableArray getTextTrackInfo() {
WritableArray textTracks = Arguments.createArray();
@@ -891,30 +1222,42 @@ class ReactExoplayerView extends FrameLayout implements
}
@Override
- public void onPositionDiscontinuity(int reason) {
+ public void onPositionDiscontinuity(Player.PositionInfo oldPosition, Player.PositionInfo newPosition, int reason) {
if (playerNeedsSource) {
// This will only occur if the user has performed a seek whilst in the error state. Update the
// resume position so that if the user then retries, playback will resume from the position to
// which they seeked.
updateResumePosition();
}
+ if (isUsingContentResolution) {
+ // Discontinuity events might have a different track list so we update the selected track
+ setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue);
+ selectTrackWhenReady = true;
+ }
// When repeat is turned on, reaching the end of the video will not cause a state change
// so we need to explicitly detect it.
- if (reason == Player.DISCONTINUITY_REASON_PERIOD_TRANSITION
+ if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION
&& player.getRepeatMode() == Player.REPEAT_MODE_ONE) {
eventEmitter.end();
}
+
}
@Override
- public void onTimelineChanged(Timeline timeline, Object manifest, int reason) {
+ public void onTimelineChanged(Timeline timeline, int reason) {
// Do nothing.
}
@Override
- public void onSeekProcessed() {
- eventEmitter.seek(player.getCurrentPosition(), seekTime);
- seekTime = C.TIME_UNSET;
+ public void onPlaybackStateChanged(int playbackState) {
+ if (playbackState == Player.STATE_READY && seekTime != C.TIME_UNSET) {
+ eventEmitter.seek(player.getCurrentPosition(), seekTime);
+ seekTime = C.TIME_UNSET;
+ if (isUsingContentResolution) {
+ // We need to update the selected track to make sure that it still matches user selection if track list has changed in this period
+ setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue);
+ }
+ }
}
@Override
@@ -928,8 +1271,8 @@ class ReactExoplayerView extends FrameLayout implements
}
@Override
- public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
- // Do Nothing.
+ public void onTracksInfoChanged(TracksInfo tracksInfo) {
+ // Do nothing.
}
@Override
@@ -938,58 +1281,52 @@ class ReactExoplayerView extends FrameLayout implements
}
@Override
- public void onPlayerError(ExoPlaybackException e) {
- String errorString = "ExoPlaybackException type : " + e.type;
- Exception ex = e;
- if (e.type == ExoPlaybackException.TYPE_RENDERER) {
- Exception cause = e.getRendererException();
- if (cause instanceof MediaCodecRenderer.DecoderInitializationException) {
- // Special case for decoder initialization failures.
- MediaCodecRenderer.DecoderInitializationException decoderInitializationException =
- (MediaCodecRenderer.DecoderInitializationException) cause;
- if (decoderInitializationException.codecInfo.name == null) {
- if (decoderInitializationException.getCause() instanceof MediaCodecUtil.DecoderQueryException) {
- errorString = getResources().getString(R.string.error_querying_decoders);
- } else if (decoderInitializationException.secureDecoderRequired) {
- errorString = getResources().getString(R.string.error_no_secure_decoder,
- decoderInitializationException.mimeType);
- } else {
- errorString = getResources().getString(R.string.error_no_decoder,
- decoderInitializationException.mimeType);
- }
- } else {
- errorString = getResources().getString(R.string.error_instantiating_decoder,
- decoderInitializationException.codecInfo.name);
+ public void onIsPlayingChanged(boolean isPlaying) {
+ eventEmitter.playbackStateChanged(isPlaying);
+ }
+
+ @Override
+ public void onPlayerError(PlaybackException e) {
+ if (e == null) {
+ return;
+ }
+ String errorString = "ExoPlaybackException: " + PlaybackException.getErrorCodeName(e.errorCode);
+ String errorCode = "2" + String.valueOf(e.errorCode);
+ boolean needsReInitialization = false;
+ switch(e.errorCode) {
+ case PlaybackException.ERROR_CODE_DRM_DEVICE_REVOKED:
+ case PlaybackException.ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED:
+ case PlaybackException.ERROR_CODE_DRM_PROVISIONING_FAILED:
+ case PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR:
+ case PlaybackException.ERROR_CODE_DRM_UNSPECIFIED:
+ if (!hasDrmFailed) {
+ // When DRM fails to reach the app level certificate server it will fail with a source error so we assume that it is DRM related and try one more time
+ hasDrmFailed = true;
+ playerNeedsSource = true;
+ updateResumePosition();
+ initializePlayer();
+ setPlayWhenReady(true);
+ return;
}
- }
+ break;
+ default:
+ break;
}
- else if (e.type == ExoPlaybackException.TYPE_SOURCE) {
- errorString = getResources().getString(R.string.unrecognized_media_format);
- }
- eventEmitter.error(errorString, ex);
+ eventEmitter.error(errorString, e, errorCode);
playerNeedsSource = true;
if (isBehindLiveWindow(e)) {
clearResumePosition();
initializePlayer();
} else {
updateResumePosition();
+ if (needsReInitialization) {
+ initializePlayer();
+ }
}
}
- private static boolean isBehindLiveWindow(ExoPlaybackException e) {
- Log.e("ExoPlayer Exception", e.toString());
- if (e.type != ExoPlaybackException.TYPE_SOURCE) {
- return false;
- }
- Throwable cause = e.getSourceException();
- while (cause != null) {
- if (cause instanceof BehindLiveWindowException ||
- cause instanceof HttpDataSource.HttpDataSourceException) {
- return true;
- }
- cause = cause.getCause();
- }
- return false;
+ private static boolean isBehindLiveWindow(PlaybackException e) {
+ return e.errorCode == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW;
}
public int getTrackRendererIndex(int trackType) {
@@ -1014,7 +1351,7 @@ class ReactExoplayerView extends FrameLayout implements
public void setSrc(final Uri uri, final String extension, Map headers) {
if (uri != null) {
boolean isSourceEqual = uri.equals(srcUri);
-
+ hasDrmFailed = false;
this.srcUri = uri;
this.extension = extension;
this.requestHeaders = headers;
@@ -1030,7 +1367,8 @@ class ReactExoplayerView extends FrameLayout implements
public void clearSrc() {
if (srcUri != null) {
- player.stop(true);
+ player.stop();
+ player.clearMediaItems();
this.srcUri = null;
this.extension = null;
this.requestHeaders = null;
@@ -1050,7 +1388,6 @@ class ReactExoplayerView extends FrameLayout implements
public void setRawSrc(final Uri uri, final String extension) {
if (uri != null) {
boolean isSourceEqual = uri.equals(srcUri);
-
this.srcUri = uri;
this.extension = extension;
this.mediaDataSourceFactory = buildDataSourceFactory(true);
@@ -1108,7 +1445,8 @@ class ReactExoplayerView extends FrameLayout implements
TrackGroupArray groups = info.getTrackGroups(rendererIndex);
int groupIndex = C.INDEX_UNSET;
- int[] tracks = {0} ;
+ List tracks = new ArrayList<>();
+ tracks.add(0);
if (TextUtils.isEmpty(type)) {
type = "default";
@@ -1146,16 +1484,53 @@ class ReactExoplayerView extends FrameLayout implements
int height = value.asInt();
for (int i = 0; i < groups.length; ++i) { // Search for the exact height
TrackGroup group = groups.get(i);
+ Format closestFormat = null;
+ int closestTrackIndex = -1;
+ boolean usingExactMatch = false;
for (int j = 0; j < group.length; j++) {
Format format = group.getFormat(j);
if (format.height == height) {
groupIndex = i;
- tracks[0] = j;
+ tracks.set(0, j);
+ closestFormat = null;
+ closestTrackIndex = -1;
+ usingExactMatch = true;
break;
+ } else if (isUsingContentResolution) {
+ // When using content resolution rather than ads, we need to try and find the closest match if there is no exact match
+ if (closestFormat != null) {
+ if ((format.bitrate > closestFormat.bitrate || format.height > closestFormat.height) && format.height < height) {
+ // Higher quality match
+ closestFormat = format;
+ closestTrackIndex = j;
+ }
+ } else if(format.height < height) {
+ closestFormat = format;
+ closestTrackIndex = j;
+ }
}
}
+ // This is a fallback if the new period contains only higher resolutions than the user has selected
+ if (closestFormat == null && isUsingContentResolution && !usingExactMatch) {
+ // No close match found - so we pick the lowest quality
+ int minHeight = Integer.MAX_VALUE;
+ for (int j = 0; j < group.length; j++) {
+ Format format = group.getFormat(j);
+ if (format.height < minHeight) {
+ minHeight = format.height;
+ groupIndex = i;
+ tracks.set(0, j);
+ }
+ }
+ }
+ // Selecting the closest match found
+ if (closestFormat != null && closestTrackIndex != -1) {
+ // We found the closest match instead of an exact one
+ groupIndex = i;
+ tracks.set(0, closestTrackIndex);
+ }
}
- } else if (rendererIndex == C.TRACK_TYPE_TEXT && Util.SDK_INT > 18) { // Text default
+ } else if (trackType == C.TRACK_TYPE_TEXT && Util.SDK_INT > 18) { // Text default
// Use system settings if possible
CaptioningManager captioningManager
= (CaptioningManager)themedReactContext.getSystemService(Context.CAPTIONING_SERVICE);
@@ -1169,10 +1544,34 @@ class ReactExoplayerView extends FrameLayout implements
if (groupIndex == C.INDEX_UNSET && trackType == C.TRACK_TYPE_VIDEO && groups.length != 0) { // Video auto
// Add all tracks as valid options for ABR to choose from
TrackGroup group = groups.get(0);
- tracks = new int[group.length];
+ tracks = new ArrayList(group.length);
+ ArrayList allTracks = new ArrayList(group.length);
groupIndex = 0;
for (int j = 0; j < group.length; j++) {
- tracks[j] = j;
+ allTracks.add(j);
+ }
+
+ // Valiate list of all tracks and add only supported formats
+ int supportedFormatLength = 0;
+ ArrayList supportedTrackList = new ArrayList();
+ for (int g = 0; g < allTracks.size(); g++) {
+ Format format = group.getFormat(g);
+ if (isFormatSupported(format)) {
+ supportedFormatLength++;
+ }
+ }
+ if (allTracks.size() == 1) {
+ // With only one tracks we can't remove any tracks so attempt to play it anyway
+ tracks = allTracks;
+ } else {
+ tracks = new ArrayList<>(supportedFormatLength + 1);
+ for (int k = 0; k < allTracks.size(); k++) {
+ Format format = group.getFormat(k);
+ if (isFormatSupported(format)) {
+ tracks.add(allTracks.get(k));
+ supportedTrackList.add(allTracks.get(k));
+ }
+ }
}
}
@@ -1181,15 +1580,35 @@ class ReactExoplayerView extends FrameLayout implements
return;
}
+ TrackSelectionOverride selectionOverride = new TrackSelectionOverride(groups.get(groupIndex), tracks);
+
DefaultTrackSelector.Parameters selectionParameters = trackSelector.getParameters()
.buildUpon()
.setRendererDisabled(rendererIndex, false)
- .setSelectionOverride(rendererIndex, groups,
- new DefaultTrackSelector.SelectionOverride(groupIndex, tracks))
+ .setTrackSelectionOverrides(new TrackSelectionOverrides.Builder().addOverride(selectionOverride).build())
.build();
trackSelector.setParameters(selectionParameters);
}
+ private boolean isFormatSupported(Format format) {
+ int width = format.width == Format.NO_VALUE ? 0 : format.width;
+ int height = format.height == Format.NO_VALUE ? 0 : format.height;
+ float frameRate = format.frameRate == Format.NO_VALUE ? 0 : format.frameRate;
+ String mimeType = format.sampleMimeType;
+ if (mimeType == null) {
+ return true;
+ }
+ boolean isSupported = false;
+ try {
+ MediaCodecInfo codecInfo = MediaCodecUtil.getDecoderInfo(mimeType, false, false);
+ isSupported = codecInfo.isVideoSizeAndRateSupportedV21(width, height, frameRate);
+ } catch (Exception e) {
+ // Failed to get decoder info - assume it is supported
+ isSupported = true;
+ }
+ return isSupported;
+ }
+
private int getGroupIndexForDefaultLocale(TrackGroupArray groups) {
if (groups.length == 0){
return C.INDEX_UNSET;
@@ -1240,13 +1659,11 @@ class ReactExoplayerView extends FrameLayout implements
public void setMutedModifier(boolean muted) {
this.muted = muted;
- audioVolume = muted ? 0.f : 1.f;
if (player != null) {
- player.setVolume(audioVolume);
+ player.setVolume(muted ? 0.f : audioVolume);
}
}
-
public void setVolumeModifier(float volume) {
audioVolume = volume;
if (player != null) {
@@ -1256,8 +1673,8 @@ class ReactExoplayerView extends FrameLayout implements
public void seekTo(long positionMs) {
if (player != null) {
- seekTime = positionMs;
player.seekTo(positionMs);
+ eventEmitter.seek(player.getCurrentPosition(), positionMs);
}
}
@@ -1292,6 +1709,32 @@ class ReactExoplayerView extends FrameLayout implements
this.disableFocus = disableFocus;
}
+ public void setBackBufferDurationMs(int backBufferDurationMs) {
+ Runtime runtime = Runtime.getRuntime();
+ long usedMemory = runtime.totalMemory() - runtime.freeMemory();
+ long freeMemory = runtime.maxMemory() - usedMemory;
+ long reserveMemory = (long)minBackBufferMemoryReservePercent * runtime.maxMemory();
+ if (reserveMemory > freeMemory) {
+ // We don't have enough memory in reserve so we will
+ Log.w("ExoPlayer Warning", "Not enough reserve memory, setting back buffer to 0ms to reduce memory pressure!");
+ this.backBufferDurationMs = 0;
+ return;
+ }
+ this.backBufferDurationMs = backBufferDurationMs;
+ }
+
+ public void setContentStartTime(int contentStartTime) {
+ this.contentStartTime = (long)contentStartTime;
+ }
+
+ public void setDisableBuffering(boolean disableBuffering) {
+ this.disableBuffering = disableBuffering;
+ }
+
+ public void setDisableDisconnectError(boolean disableDisconnectError) {
+ this.disableDisconnectError = disableDisconnectError;
+ }
+
public void setFullscreen(boolean fullscreen) {
if (fullscreen == isFullscreen) {
return; // Avoid generating events when nothing is changing
@@ -1330,15 +1773,22 @@ class ReactExoplayerView extends FrameLayout implements
exoPlayerView.setUseTextureView(finallyUseTextureView);
}
+ public void useSecureView(boolean useSecureView) {
+ exoPlayerView.useSecureView(useSecureView);
+ }
+
public void setHideShutterView(boolean hideShutterView) {
exoPlayerView.setHideShutterView(hideShutterView);
}
- public void setBufferConfig(int newMinBufferMs, int newMaxBufferMs, int newBufferForPlaybackMs, int newBufferForPlaybackAfterRebufferMs) {
+ public void setBufferConfig(int newMinBufferMs, int newMaxBufferMs, int newBufferForPlaybackMs, int newBufferForPlaybackAfterRebufferMs, double newMaxHeapAllocationPercent, double newMinBackBufferMemoryReservePercent, double newMinBufferMemoryReservePercent) {
minBufferMs = newMinBufferMs;
maxBufferMs = newMaxBufferMs;
bufferForPlaybackMs = newBufferForPlaybackMs;
bufferForPlaybackAfterRebufferMs = newBufferForPlaybackAfterRebufferMs;
+ maxHeapAllocationPercent = newMaxHeapAllocationPercent;
+ minBackBufferMemoryReservePercent = newMinBackBufferMemoryReservePercent;
+ minBufferMemoryReservePercent = newMinBufferMemoryReservePercent;
releasePlayer();
initializePlayer();
}
@@ -1364,7 +1814,7 @@ class ReactExoplayerView extends FrameLayout implements
@Override
public void onDrmSessionManagerError(int windowIndex, MediaSource.MediaPeriodId mediaPeriodId, Exception e) {
Log.d("DRM Info", "onDrmSessionManagerError");
- eventEmitter.error("onDrmSessionManagerError", e);
+ eventEmitter.error("onDrmSessionManagerError", e, "3002");
}
@Override
diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java b/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
similarity index 84%
rename from android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
rename to android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
index eccbee75..3744fcae 100644
--- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
+++ b/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
@@ -49,11 +49,15 @@ public class ReactExoplayerViewManager extends ViewGroupManager createNativeModules(ReactApplicationContext reactContext) {
return Collections.emptyList();
@@ -23,8 +33,12 @@ public class ReactVideoPackage implements ReactPackage {
return Collections.emptyList();
}
+
@Override
public List createViewManagers(ReactApplicationContext reactContext) {
- return Arrays.asList(new ReactVideoViewManager());
+ if (config == null) {
+ config = new DefaultReactExoplayerConfig(reactContext);
+ }
+ return Collections.singletonList(new ReactExoplayerViewManager(config));
}
}
diff --git a/android/src/main/java/com/brentvatne/react/ReactVideoView.java b/android/src/main/java/com/brentvatne/react/ReactVideoView.java
deleted file mode 100644
index f3f5fe7b..00000000
--- a/android/src/main/java/com/brentvatne/react/ReactVideoView.java
+++ /dev/null
@@ -1,796 +0,0 @@
-package com.brentvatne.react;
-
-import android.annotation.SuppressLint;
-import android.annotation.TargetApi;
-import android.app.Activity;
-import android.content.res.AssetFileDescriptor;
-import android.graphics.Matrix;
-import android.media.MediaPlayer;
-import android.media.TimedMetaData;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Handler;
-import android.util.Log;
-import android.view.MotionEvent;
-import android.view.WindowManager;
-import android.view.View;
-import android.view.Window;
-import android.webkit.CookieManager;
-import android.widget.MediaController;
-
-import com.android.vending.expansion.zipfile.APKExpansionSupport;
-import com.android.vending.expansion.zipfile.ZipResourceFile;
-import com.facebook.react.bridge.Arguments;
-import com.facebook.react.bridge.LifecycleEventListener;
-import com.facebook.react.bridge.ReadableMap;
-import com.facebook.react.bridge.WritableMap;
-import com.facebook.react.bridge.WritableArray;
-import com.facebook.react.bridge.WritableNativeArray;
-import com.facebook.react.uimanager.ThemedReactContext;
-import com.facebook.react.uimanager.events.RCTEventEmitter;
-import com.yqritc.scalablevideoview.ScalableType;
-import com.yqritc.scalablevideoview.ScalableVideoView;
-import com.yqritc.scalablevideoview.ScaleManager;
-import com.yqritc.scalablevideoview.Size;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.util.HashMap;
-import java.util.Map;
-import java.lang.Math;
-import java.math.BigDecimal;
-
-import javax.annotation.Nullable;
-
-@SuppressLint("ViewConstructor")
-public class ReactVideoView extends ScalableVideoView implements
- MediaPlayer.OnPreparedListener,
- MediaPlayer.OnErrorListener,
- MediaPlayer.OnBufferingUpdateListener,
- MediaPlayer.OnSeekCompleteListener,
- MediaPlayer.OnCompletionListener,
- MediaPlayer.OnInfoListener,
- LifecycleEventListener,
- MediaController.MediaPlayerControl {
-
- public enum Events {
- EVENT_LOAD_START("onVideoLoadStart"),
- EVENT_LOAD("onVideoLoad"),
- EVENT_ERROR("onVideoError"),
- EVENT_PROGRESS("onVideoProgress"),
- EVENT_TIMED_METADATA("onTimedMetadata"),
- EVENT_SEEK("onVideoSeek"),
- EVENT_END("onVideoEnd"),
- EVENT_STALLED("onPlaybackStalled"),
- EVENT_RESUME("onPlaybackResume"),
- EVENT_READY_FOR_DISPLAY("onReadyForDisplay"),
- EVENT_FULLSCREEN_WILL_PRESENT("onVideoFullscreenPlayerWillPresent"),
- EVENT_FULLSCREEN_DID_PRESENT("onVideoFullscreenPlayerDidPresent"),
- EVENT_FULLSCREEN_WILL_DISMISS("onVideoFullscreenPlayerWillDismiss"),
- EVENT_FULLSCREEN_DID_DISMISS("onVideoFullscreenPlayerDidDismiss");
-
- private final String mName;
-
- Events(final String name) {
- mName = name;
- }
-
- @Override
- public String toString() {
- return mName;
- }
- }
-
- public static final String EVENT_PROP_FAST_FORWARD = "canPlayFastForward";
- public static final String EVENT_PROP_SLOW_FORWARD = "canPlaySlowForward";
- public static final String EVENT_PROP_SLOW_REVERSE = "canPlaySlowReverse";
- public static final String EVENT_PROP_REVERSE = "canPlayReverse";
- public static final String EVENT_PROP_STEP_FORWARD = "canStepForward";
- public static final String EVENT_PROP_STEP_BACKWARD = "canStepBackward";
-
- public static final String EVENT_PROP_DURATION = "duration";
- public static final String EVENT_PROP_PLAYABLE_DURATION = "playableDuration";
- public static final String EVENT_PROP_SEEKABLE_DURATION = "seekableDuration";
- public static final String EVENT_PROP_CURRENT_TIME = "currentTime";
- public static final String EVENT_PROP_SEEK_TIME = "seekTime";
- public static final String EVENT_PROP_NATURALSIZE = "naturalSize";
- public static final String EVENT_PROP_WIDTH = "width";
- public static final String EVENT_PROP_HEIGHT = "height";
- public static final String EVENT_PROP_ORIENTATION = "orientation";
- public static final String EVENT_PROP_METADATA = "metadata";
- public static final String EVENT_PROP_TARGET = "target";
- public static final String EVENT_PROP_METADATA_IDENTIFIER = "identifier";
- public static final String EVENT_PROP_METADATA_VALUE = "value";
-
- public static final String EVENT_PROP_ERROR = "error";
- public static final String EVENT_PROP_WHAT = "what";
- public static final String EVENT_PROP_EXTRA = "extra";
-
- private ThemedReactContext mThemedReactContext;
- private RCTEventEmitter mEventEmitter;
-
- private Handler mProgressUpdateHandler = new Handler();
- private Runnable mProgressUpdateRunnable = null;
- private Handler videoControlHandler = new Handler();
- private MediaController mediaController;
-
- private String mSrcUriString = null;
- private String mSrcType = "mp4";
- private ReadableMap mRequestHeaders = null;
- private boolean mSrcIsNetwork = false;
- private boolean mSrcIsAsset = false;
- private ScalableType mResizeMode = ScalableType.LEFT_TOP;
- private boolean mRepeat = false;
- private boolean mPaused = false;
- private boolean mMuted = false;
- private boolean mPreventsDisplaySleepDuringVideoPlayback = true;
- private float mVolume = 1.0f;
- private float mStereoPan = 0.0f;
- private float mProgressUpdateInterval = 250.0f;
- private float mRate = 1.0f;
- private float mActiveRate = 1.0f;
- private long mSeekTime = 0;
- private boolean mPlayInBackground = false;
- private boolean mBackgroundPaused = false;
- private boolean mIsFullscreen = false;
-
- private int mMainVer = 0;
- private int mPatchVer = 0;
-
- private boolean mMediaPlayerValid = false; // True if mMediaPlayer is in prepared, started, paused or completed state.
-
- private int mVideoDuration = 0;
- private int mVideoBufferedDuration = 0;
- private boolean isCompleted = false;
- private boolean mUseNativeControls = false;
-
- public ReactVideoView(ThemedReactContext themedReactContext) {
- super(themedReactContext);
-
- mThemedReactContext = themedReactContext;
- mEventEmitter = themedReactContext.getJSModule(RCTEventEmitter.class);
- themedReactContext.addLifecycleEventListener(this);
-
- initializeMediaPlayerIfNeeded();
- setSurfaceTextureListener(this);
-
- mProgressUpdateRunnable = new Runnable() {
- @Override
- public void run() {
-
- if (mMediaPlayerValid && !isCompleted && !mPaused && !mBackgroundPaused) {
- WritableMap event = Arguments.createMap();
- event.putDouble(EVENT_PROP_CURRENT_TIME, mMediaPlayer.getCurrentPosition() / 1000.0);
- event.putDouble(EVENT_PROP_PLAYABLE_DURATION, mVideoBufferedDuration / 1000.0); //TODO:mBufferUpdateRunnable
- event.putDouble(EVENT_PROP_SEEKABLE_DURATION, mVideoDuration / 1000.0);
- mEventEmitter.receiveEvent(getId(), Events.EVENT_PROGRESS.toString(), event);
-
- // Check for update after an interval
- mProgressUpdateHandler.postDelayed(mProgressUpdateRunnable, Math.round(mProgressUpdateInterval));
- }
- }
- };
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if (mUseNativeControls) {
- initializeMediaControllerIfNeeded();
- mediaController.show();
- }
-
- return super.onTouchEvent(event);
- }
-
- @Override
- @SuppressLint("DrawAllocation")
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
- super.onLayout(changed, left, top, right, bottom);
-
- if (!changed || !mMediaPlayerValid) {
- return;
- }
-
- int videoWidth = getVideoWidth();
- int videoHeight = getVideoHeight();
-
- if (videoWidth == 0 || videoHeight == 0) {
- return;
- }
-
- Size viewSize = new Size(getWidth(), getHeight());
- Size videoSize = new Size(videoWidth, videoHeight);
- ScaleManager scaleManager = new ScaleManager(viewSize, videoSize);
- Matrix matrix = scaleManager.getScaleMatrix(mScalableType);
- if (matrix != null) {
- setTransform(matrix);
- }
- }
-
- private void initializeMediaPlayerIfNeeded() {
- if (mMediaPlayer == null) {
- mMediaPlayerValid = false;
- mMediaPlayer = new MediaPlayer();
- mMediaPlayer.setOnVideoSizeChangedListener(this);
- mMediaPlayer.setOnErrorListener(this);
- mMediaPlayer.setOnPreparedListener(this);
- mMediaPlayer.setOnBufferingUpdateListener(this);
- mMediaPlayer.setOnSeekCompleteListener(this);
- mMediaPlayer.setOnCompletionListener(this);
- mMediaPlayer.setOnInfoListener(this);
- if (Build.VERSION.SDK_INT >= 23) {
- mMediaPlayer.setOnTimedMetaDataAvailableListener(new TimedMetaDataAvailableListener());
- }
- }
- }
-
- private void initializeMediaControllerIfNeeded() {
- if (mediaController == null) {
- mediaController = new MediaController(this.getContext());
- }
- }
-
- public void cleanupMediaPlayerResources() {
- if ( mediaController != null ) {
- mediaController.hide();
- }
- if ( mMediaPlayer != null ) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- mMediaPlayer.setOnTimedMetaDataAvailableListener(null);
- }
- mMediaPlayerValid = false;
- release();
- }
- if (mIsFullscreen) {
- setFullscreen(false);
- }
- if (mThemedReactContext != null) {
- mThemedReactContext.removeLifecycleEventListener(this);
- mThemedReactContext = null;
- }
- }
-
- public void setSrc(final String uriString, final String type, final boolean isNetwork, final boolean isAsset, final ReadableMap requestHeaders) {
- setSrc(uriString, type, isNetwork, isAsset, requestHeaders, 0, 0);
- }
-
- public void setSrc(final String uriString, final String type, final boolean isNetwork, final boolean isAsset, final ReadableMap requestHeaders, final int expansionMainVersion, final int expansionPatchVersion) {
-
- mSrcUriString = uriString;
- mSrcType = type;
- mSrcIsNetwork = isNetwork;
- mSrcIsAsset = isAsset;
- mRequestHeaders = requestHeaders;
- mMainVer = expansionMainVersion;
- mPatchVer = expansionPatchVersion;
-
-
- mMediaPlayerValid = false;
- mVideoDuration = 0;
- mVideoBufferedDuration = 0;
-
- initializeMediaPlayerIfNeeded();
- mMediaPlayer.reset();
-
- try {
- if (isNetwork) {
- // Use the shared CookieManager to access the cookies
- // set by WebViews inside the same app
- CookieManager cookieManager = CookieManager.getInstance();
-
- Uri parsedUrl = Uri.parse(uriString);
- Uri.Builder builtUrl = parsedUrl.buildUpon();
-
- String cookie = cookieManager.getCookie(builtUrl.build().toString());
-
- Map headers = new HashMap();
-
- if (cookie != null) {
- headers.put("Cookie", cookie);
- }
-
- if (mRequestHeaders != null) {
- headers.putAll(toStringMap(mRequestHeaders));
- }
-
- /* According to https://github.com/react-native-community/react-native-video/pull/537
- * there is an issue with this where it can cause a IOException.
- * TODO: diagnose this exception and fix it
- */
- setDataSource(mThemedReactContext, parsedUrl, headers);
- } else if (isAsset) {
- if (uriString.startsWith("content://")) {
- Uri parsedUrl = Uri.parse(uriString);
- setDataSource(mThemedReactContext, parsedUrl);
- } else {
- setDataSource(uriString);
- }
- } else {
- ZipResourceFile expansionFile= null;
- AssetFileDescriptor fd= null;
- if(mMainVer>0) {
- try {
- expansionFile = APKExpansionSupport.getAPKExpansionZipFile(mThemedReactContext, mMainVer, mPatchVer);
- fd = expansionFile.getAssetFileDescriptor(uriString.replace(".mp4","") + ".mp4");
- } catch (IOException e) {
- e.printStackTrace();
- } catch (NullPointerException e) {
- e.printStackTrace();
- }
- }
- if(fd==null) {
- int identifier = mThemedReactContext.getResources().getIdentifier(
- uriString,
- "drawable",
- mThemedReactContext.getPackageName()
- );
- if (identifier == 0) {
- identifier = mThemedReactContext.getResources().getIdentifier(
- uriString,
- "raw",
- mThemedReactContext.getPackageName()
- );
- }
- setRawData(identifier);
- }
- else {
- setDataSource(fd.getFileDescriptor(), fd.getStartOffset(),fd.getLength());
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- return;
- }
-
- WritableMap src = Arguments.createMap();
-
- WritableMap wRequestHeaders = Arguments.createMap();
- wRequestHeaders.merge(mRequestHeaders);
-
- src.putString(ReactVideoViewManager.PROP_SRC_URI, uriString);
- src.putString(ReactVideoViewManager.PROP_SRC_TYPE, type);
- src.putMap(ReactVideoViewManager.PROP_SRC_HEADERS, wRequestHeaders);
- src.putBoolean(ReactVideoViewManager.PROP_SRC_IS_NETWORK, isNetwork);
- if(mMainVer>0) {
- src.putInt(ReactVideoViewManager.PROP_SRC_MAINVER, mMainVer);
- if(mPatchVer>0) {
- src.putInt(ReactVideoViewManager.PROP_SRC_PATCHVER, mPatchVer);
- }
- }
- WritableMap event = Arguments.createMap();
- event.putMap(ReactVideoViewManager.PROP_SRC, src);
- mEventEmitter.receiveEvent(getId(), Events.EVENT_LOAD_START.toString(), event);
- isCompleted = false;
-
- try {
- prepareAsync(this);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public void setResizeModeModifier(final ScalableType resizeMode) {
- mResizeMode = resizeMode;
-
- if (mMediaPlayerValid) {
- setScalableType(resizeMode);
- invalidate();
- }
- }
-
- public void setRepeatModifier(final boolean repeat) {
-
- mRepeat = repeat;
-
- if (mMediaPlayerValid) {
- setLooping(repeat);
- }
- }
-
- public void setPausedModifier(final boolean paused) {
- mPaused = paused;
-
- if (!mMediaPlayerValid) {
- return;
- }
-
- if (mPaused) {
- if (mMediaPlayer.isPlaying()) {
- pause();
- }
- } else {
- if (!mMediaPlayer.isPlaying()) {
- start();
- // Setting the rate unpauses, so we have to wait for an unpause
- if (mRate != mActiveRate) {
- setRateModifier(mRate);
- }
-
- // Also Start the Progress Update Handler
- mProgressUpdateHandler.post(mProgressUpdateRunnable);
- }
- }
- setKeepScreenOn(!mPaused && mPreventsDisplaySleepDuringVideoPlayback);
- }
-
- // reduces the volume based on stereoPan
- private float calulateRelativeVolume() {
- float relativeVolume = (mVolume * (1 - Math.abs(mStereoPan)));
- // only one decimal allowed
- BigDecimal roundRelativeVolume = new BigDecimal(relativeVolume).setScale(1, BigDecimal.ROUND_HALF_UP);
- return roundRelativeVolume.floatValue();
- }
-
- public void setPreventsDisplaySleepDuringVideoPlaybackModifier(final boolean preventsDisplaySleepDuringVideoPlayback) {
- mPreventsDisplaySleepDuringVideoPlayback = preventsDisplaySleepDuringVideoPlayback;
-
- if (!mMediaPlayerValid) {
- return;
- }
-
- mMediaPlayer.setScreenOnWhilePlaying(mPreventsDisplaySleepDuringVideoPlayback);
- setKeepScreenOn(mPreventsDisplaySleepDuringVideoPlayback);
- }
-
- public void setMutedModifier(final boolean muted) {
- mMuted = muted;
-
- if (!mMediaPlayerValid) {
- return;
- }
-
- if (mMuted) {
- setVolume(0, 0);
- } else if (mStereoPan < 0) {
- // louder on the left channel
- setVolume(mVolume, calulateRelativeVolume());
- } else if (mStereoPan > 0) {
- // louder on the right channel
- setVolume(calulateRelativeVolume(), mVolume);
- } else {
- // same volume on both channels
- setVolume(mVolume, mVolume);
- }
- }
-
- public void setVolumeModifier(final float volume) {
- mVolume = volume;
- setMutedModifier(mMuted);
- }
-
- public void setStereoPan(final float stereoPan) {
- mStereoPan = stereoPan;
- setMutedModifier(mMuted);
- }
-
- public void setProgressUpdateInterval(final float progressUpdateInterval) {
- mProgressUpdateInterval = progressUpdateInterval;
- }
-
- public void setRateModifier(final float rate) {
- mRate = rate;
-
- if (mMediaPlayerValid) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- if (!mPaused) { // Applying the rate while paused will cause the video to start
- /* Per https://stackoverflow.com/questions/39442522/setplaybackparams-causes-illegalstateexception
- * Some devices throw an IllegalStateException if you set the rate without first calling reset()
- * TODO: Call reset() then reinitialize the player
- */
- try {
- mMediaPlayer.setPlaybackParams(mMediaPlayer.getPlaybackParams().setSpeed(rate));
- mActiveRate = rate;
- } catch (Exception e) {
- Log.e(ReactVideoViewManager.REACT_CLASS, "Unable to set rate, unsupported on this device");
- }
- }
- } else {
- Log.e(ReactVideoViewManager.REACT_CLASS, "Setting playback rate is not yet supported on Android versions below 6.0");
- }
- }
- }
-
- public void setFullscreen(boolean isFullscreen) {
- if (isFullscreen == mIsFullscreen) {
- return; // Avoid generating events when nothing is changing
- }
- mIsFullscreen = isFullscreen;
-
- Activity activity = mThemedReactContext.getCurrentActivity();
- if (activity == null) {
- return;
- }
- Window window = activity.getWindow();
- View decorView = window.getDecorView();
- int uiOptions;
- if (mIsFullscreen) {
- if (Build.VERSION.SDK_INT >= 19) { // 4.4+
- uiOptions = SYSTEM_UI_FLAG_HIDE_NAVIGATION
- | SYSTEM_UI_FLAG_IMMERSIVE_STICKY
- | SYSTEM_UI_FLAG_FULLSCREEN;
- } else {
- uiOptions = SYSTEM_UI_FLAG_HIDE_NAVIGATION
- | SYSTEM_UI_FLAG_FULLSCREEN;
- }
- mEventEmitter.receiveEvent(getId(), Events.EVENT_FULLSCREEN_WILL_PRESENT.toString(), null);
- decorView.setSystemUiVisibility(uiOptions);
- mEventEmitter.receiveEvent(getId(), Events.EVENT_FULLSCREEN_DID_PRESENT.toString(), null);
- } else {
- uiOptions = View.SYSTEM_UI_FLAG_VISIBLE;
- mEventEmitter.receiveEvent(getId(), Events.EVENT_FULLSCREEN_WILL_DISMISS.toString(), null);
- decorView.setSystemUiVisibility(uiOptions);
- mEventEmitter.receiveEvent(getId(), Events.EVENT_FULLSCREEN_DID_DISMISS.toString(), null);
- }
- }
-
- public void applyModifiers() {
- setResizeModeModifier(mResizeMode);
- setRepeatModifier(mRepeat);
- setPausedModifier(mPaused);
- setMutedModifier(mMuted);
- setPreventsDisplaySleepDuringVideoPlaybackModifier(mPreventsDisplaySleepDuringVideoPlayback);
- setProgressUpdateInterval(mProgressUpdateInterval);
- setRateModifier(mRate);
- }
-
- public void setPlayInBackground(final boolean playInBackground) {
-
- mPlayInBackground = playInBackground;
- }
-
- public void setControls(boolean controls) {
- this.mUseNativeControls = controls;
- }
-
- @Override
- public void onPrepared(MediaPlayer mp) {
-
- mMediaPlayerValid = true;
- mVideoDuration = mp.getDuration();
-
- WritableMap naturalSize = Arguments.createMap();
- naturalSize.putInt(EVENT_PROP_WIDTH, mp.getVideoWidth());
- naturalSize.putInt(EVENT_PROP_HEIGHT, mp.getVideoHeight());
- if (mp.getVideoWidth() > mp.getVideoHeight())
- naturalSize.putString(EVENT_PROP_ORIENTATION, "landscape");
- else
- naturalSize.putString(EVENT_PROP_ORIENTATION, "portrait");
-
- WritableMap event = Arguments.createMap();
- event.putDouble(EVENT_PROP_DURATION, mVideoDuration / 1000.0);
- event.putDouble(EVENT_PROP_CURRENT_TIME, mp.getCurrentPosition() / 1000.0);
- event.putMap(EVENT_PROP_NATURALSIZE, naturalSize);
- // TODO: Actually check if you can.
- event.putBoolean(EVENT_PROP_FAST_FORWARD, true);
- event.putBoolean(EVENT_PROP_SLOW_FORWARD, true);
- event.putBoolean(EVENT_PROP_SLOW_REVERSE, true);
- event.putBoolean(EVENT_PROP_REVERSE, true);
- event.putBoolean(EVENT_PROP_FAST_FORWARD, true);
- event.putBoolean(EVENT_PROP_STEP_BACKWARD, true);
- event.putBoolean(EVENT_PROP_STEP_FORWARD, true);
- mEventEmitter.receiveEvent(getId(), Events.EVENT_LOAD.toString(), event);
-
- applyModifiers();
-
- if (mUseNativeControls) {
- initializeMediaControllerIfNeeded();
- mediaController.setMediaPlayer(this);
- mediaController.setAnchorView(this);
-
- videoControlHandler.post(new Runnable() {
- @Override
- public void run() {
- mediaController.setEnabled(true);
- mediaController.show();
- }
- });
- }
-
- selectTimedMetadataTrack(mp);
- }
-
- @Override
- public boolean onError(MediaPlayer mp, int what, int extra) {
-
- WritableMap error = Arguments.createMap();
- error.putInt(EVENT_PROP_WHAT, what);
- error.putInt(EVENT_PROP_EXTRA, extra);
- WritableMap event = Arguments.createMap();
- event.putMap(EVENT_PROP_ERROR, error);
- mEventEmitter.receiveEvent(getId(), Events.EVENT_ERROR.toString(), event);
- return true;
- }
-
- @Override
- public boolean onInfo(MediaPlayer mp, int what, int extra) {
- switch (what) {
- case MediaPlayer.MEDIA_INFO_BUFFERING_START:
- mEventEmitter.receiveEvent(getId(), Events.EVENT_STALLED.toString(), Arguments.createMap());
- break;
- case MediaPlayer.MEDIA_INFO_BUFFERING_END:
- mEventEmitter.receiveEvent(getId(), Events.EVENT_RESUME.toString(), Arguments.createMap());
- break;
- case MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START:
- mEventEmitter.receiveEvent(getId(), Events.EVENT_READY_FOR_DISPLAY.toString(), Arguments.createMap());
- break;
-
- default:
- }
- return false;
- }
-
- @Override
- public void onBufferingUpdate(MediaPlayer mp, int percent) {
- selectTimedMetadataTrack(mp);
- mVideoBufferedDuration = (int) Math.round((double) (mVideoDuration * percent) / 100.0);
- }
-
- public void onSeekComplete(MediaPlayer mp) {
- WritableMap event = Arguments.createMap();
- event.putDouble(EVENT_PROP_CURRENT_TIME, getCurrentPosition() / 1000.0);
- event.putDouble(EVENT_PROP_SEEK_TIME, mSeekTime / 1000.0);
- mEventEmitter.receiveEvent(getId(), Events.EVENT_SEEK.toString(), event);
- mSeekTime = 0;
- }
-
- @Override
- public void seekTo(int msec) {
- if (mMediaPlayerValid) {
- mSeekTime = msec;
- super.seekTo(msec);
- if (isCompleted && mVideoDuration != 0 && msec < mVideoDuration) {
- isCompleted = false;
- }
- }
- }
-
- @Override
- public int getBufferPercentage() {
- return 0;
- }
-
- @Override
- public boolean canPause() {
- return true;
- }
-
- @Override
- public boolean canSeekBackward() {
- return true;
- }
-
- @Override
- public boolean canSeekForward() {
- return true;
- }
-
- @Override
- public int getAudioSessionId() {
- return 0;
- }
-
- @Override
- public void onCompletion(MediaPlayer mp) {
- isCompleted = true;
- mEventEmitter.receiveEvent(getId(), Events.EVENT_END.toString(), null);
- if (!mRepeat) {
- setKeepScreenOn(false);
- }
- }
-
- // This is not fully tested and does not work for all forms of timed metadata
- @TargetApi(23) // 6.0
- public class TimedMetaDataAvailableListener
- implements MediaPlayer.OnTimedMetaDataAvailableListener
- {
- public void onTimedMetaDataAvailable(MediaPlayer mp, TimedMetaData data) {
- WritableMap event = Arguments.createMap();
-
- try {
- String rawMeta = new String(data.getMetaData(), "UTF-8");
- WritableMap id3 = Arguments.createMap();
-
- id3.putString(EVENT_PROP_METADATA_VALUE, rawMeta.substring(rawMeta.lastIndexOf("\u0003") + 1));
- id3.putString(EVENT_PROP_METADATA_IDENTIFIER, "id3/TDEN");
-
- WritableArray metadata = new WritableNativeArray();
-
- metadata.pushMap(id3);
-
- event.putArray(EVENT_PROP_METADATA, metadata);
- event.putDouble(EVENT_PROP_TARGET, getId());
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
-
- mEventEmitter.receiveEvent(getId(), Events.EVENT_TIMED_METADATA.toString(), event);
- }
- }
-
- @Override
- protected void onDetachedFromWindow() {
- mMediaPlayerValid = false;
- super.onDetachedFromWindow();
- setKeepScreenOn(false);
- }
-
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
-
- if(mMainVer>0) {
- setSrc(mSrcUriString, mSrcType, mSrcIsNetwork, mSrcIsAsset, mRequestHeaders, mMainVer, mPatchVer);
- }
- else {
- setSrc(mSrcUriString, mSrcType, mSrcIsNetwork, mSrcIsAsset, mRequestHeaders);
- }
- setKeepScreenOn(mPreventsDisplaySleepDuringVideoPlayback);
- }
-
- @Override
- public void onHostPause() {
- if (mMediaPlayerValid && !mPaused && !mPlayInBackground) {
- /* Pause the video in background
- * Don't update the paused prop, developers should be able to update it on background
- * so that when you return to the app the video is paused
- */
- mBackgroundPaused = true;
- mMediaPlayer.pause();
- }
- }
-
- @Override
- public void onHostResume() {
- mBackgroundPaused = false;
- if (mMediaPlayerValid && !mPlayInBackground && !mPaused) {
- new Handler().post(new Runnable() {
- @Override
- public void run() {
- // Restore original state
- setPausedModifier(false);
- }
- });
- }
- }
-
- @Override
- public void onHostDestroy() {
- }
-
- /**
- * toStringMap converts a {@link ReadableMap} into a HashMap.
- *
- * @param readableMap The ReadableMap to be conveted.
- * @return A HashMap containing the data that was in the ReadableMap.
- * @see 'Adapted from https://github.com/artemyarulin/react-native-eval/blob/master/android/src/main/java/com/evaluator/react/ConversionUtil.java'
- */
- public static Map toStringMap(@Nullable ReadableMap readableMap) {
- Map result = new HashMap<>();
- if (readableMap == null)
- return result;
-
- com.facebook.react.bridge.ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
- while (iterator.hasNextKey()) {
- String key = iterator.nextKey();
- result.put(key, readableMap.getString(key));
- }
-
- return result;
- }
-
- // Select track (so we can use it to listen to timed meta data updates)
- private void selectTimedMetadataTrack(MediaPlayer mp) {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
- return;
- }
- try { // It's possible this could throw an exception if the framework doesn't support getting track info
- MediaPlayer.TrackInfo[] trackInfo = mp.getTrackInfo();
- for (int i = 0; i < trackInfo.length; ++i) {
- if (trackInfo[i].getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT) {
- mp.selectTrack(i);
- break;
- }
- }
- } catch (Exception e) {}
- }
-}
diff --git a/android/src/main/java/com/brentvatne/react/ReactVideoViewManager.java b/android/src/main/java/com/brentvatne/react/ReactVideoViewManager.java
deleted file mode 100644
index 59efab49..00000000
--- a/android/src/main/java/com/brentvatne/react/ReactVideoViewManager.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package com.brentvatne.react;
-
-import com.brentvatne.react.ReactVideoView.Events;
-import com.facebook.react.bridge.Arguments;
-import com.facebook.react.bridge.ReadableMap;
-import com.facebook.react.bridge.WritableMap;
-import com.facebook.react.common.MapBuilder;
-import com.facebook.react.uimanager.annotations.ReactProp;
-import com.facebook.react.uimanager.SimpleViewManager;
-import com.facebook.react.uimanager.ThemedReactContext;
-import com.facebook.react.uimanager.events.RCTEventEmitter;
-import com.yqritc.scalablevideoview.ScalableType;
-
-import javax.annotation.Nullable;
-import java.util.Map;
-
-public class ReactVideoViewManager extends SimpleViewManager {
-
- public static final String REACT_CLASS = "RCTVideo";
-
- public static final String PROP_SRC = "src";
- public static final String PROP_SRC_URI = "uri";
- public static final String PROP_SRC_TYPE = "type";
- public static final String PROP_SRC_HEADERS = "requestHeaders";
- public static final String PROP_SRC_IS_NETWORK = "isNetwork";
- public static final String PROP_SRC_MAINVER = "mainVer";
- public static final String PROP_SRC_PATCHVER = "patchVer";
- public static final String PROP_SRC_IS_ASSET = "isAsset";
- public static final String PROP_RESIZE_MODE = "resizeMode";
- public static final String PROP_REPEAT = "repeat";
- public static final String PROP_PAUSED = "paused";
- public static final String PROP_MUTED = "muted";
- public static final String PROP_PREVENTS_DISPLAY_SLEEP_DURING_VIDEO_PLAYBACK = "preventsDisplaySleepDuringVideoPlayback";
- public static final String PROP_VOLUME = "volume";
- public static final String PROP_STEREO_PAN = "stereoPan";
- public static final String PROP_PROGRESS_UPDATE_INTERVAL = "progressUpdateInterval";
- public static final String PROP_SEEK = "seek";
- public static final String PROP_RATE = "rate";
- public static final String PROP_FULLSCREEN = "fullscreen";
- public static final String PROP_PLAY_IN_BACKGROUND = "playInBackground";
- public static final String PROP_CONTROLS = "controls";
-
- @Override
- public String getName() {
- return REACT_CLASS;
- }
-
- @Override
- protected ReactVideoView createViewInstance(ThemedReactContext themedReactContext) {
- return new ReactVideoView(themedReactContext);
- }
-
- @Override
- public void onDropViewInstance(ReactVideoView view) {
- super.onDropViewInstance(view);
- view.cleanupMediaPlayerResources();
- }
-
- @Override
- @Nullable
- public Map getExportedCustomDirectEventTypeConstants() {
- MapBuilder.Builder builder = MapBuilder.builder();
- for (Events event : Events.values()) {
- builder.put(event.toString(), MapBuilder.of("registrationName", event.toString()));
- }
- return builder.build();
- }
-
- @Override
- @Nullable
- public Map getExportedViewConstants() {
- return MapBuilder.of(
- "ScaleNone", Integer.toString(ScalableType.LEFT_TOP.ordinal()),
- "ScaleToFill", Integer.toString(ScalableType.FIT_XY.ordinal()),
- "ScaleAspectFit", Integer.toString(ScalableType.FIT_CENTER.ordinal()),
- "ScaleAspectFill", Integer.toString(ScalableType.CENTER_CROP.ordinal())
- );
- }
-
- @ReactProp(name = PROP_SRC)
- public void setSrc(final ReactVideoView videoView, @Nullable ReadableMap src) {
- int mainVer = src.getInt(PROP_SRC_MAINVER);
- int patchVer = src.getInt(PROP_SRC_PATCHVER);
- if(mainVer<0) { mainVer = 0; }
- if(patchVer<0) { patchVer = 0; }
- if(mainVer>0) {
- videoView.setSrc(
- src.getString(PROP_SRC_URI),
- src.getString(PROP_SRC_TYPE),
- src.getBoolean(PROP_SRC_IS_NETWORK),
- src.getBoolean(PROP_SRC_IS_ASSET),
- src.getMap(PROP_SRC_HEADERS),
- mainVer,
- patchVer
- );
- }
- else {
- videoView.setSrc(
- src.getString(PROP_SRC_URI),
- src.getString(PROP_SRC_TYPE),
- src.getBoolean(PROP_SRC_IS_NETWORK),
- src.getBoolean(PROP_SRC_IS_ASSET),
- src.getMap(PROP_SRC_HEADERS)
- );
- }
- }
-
- @ReactProp(name = PROP_PREVENTS_DISPLAY_SLEEP_DURING_VIDEO_PLAYBACK)
- public void setPropPreventsDisplaySleepDuringVideoPlayback(final ReactVideoView videoView, final boolean doPreventSleep) {
- videoView.setPreventsDisplaySleepDuringVideoPlaybackModifier(doPreventSleep);
- }
-
- @ReactProp(name = PROP_RESIZE_MODE)
- public void setResizeMode(final ReactVideoView videoView, final String resizeModeOrdinalString) {
- videoView.setResizeModeModifier(ScalableType.values()[Integer.parseInt(resizeModeOrdinalString)]);
- }
-
- @ReactProp(name = PROP_REPEAT, defaultBoolean = false)
- public void setRepeat(final ReactVideoView videoView, final boolean repeat) {
- videoView.setRepeatModifier(repeat);
- }
-
- @ReactProp(name = PROP_PAUSED, defaultBoolean = false)
- public void setPaused(final ReactVideoView videoView, final boolean paused) {
- videoView.setPausedModifier(paused);
- }
-
- @ReactProp(name = PROP_MUTED, defaultBoolean = false)
- public void setMuted(final ReactVideoView videoView, final boolean muted) {
- videoView.setMutedModifier(muted);
- }
-
- @ReactProp(name = PROP_VOLUME, defaultFloat = 1.0f)
- public void setVolume(final ReactVideoView videoView, final float volume) {
- videoView.setVolumeModifier(volume);
- }
-
- @ReactProp(name = PROP_STEREO_PAN)
- public void setStereoPan(final ReactVideoView videoView, final float stereoPan) {
- videoView.setStereoPan(stereoPan);
- }
-
- @ReactProp(name = PROP_PROGRESS_UPDATE_INTERVAL, defaultFloat = 250.0f)
- public void setProgressUpdateInterval(final ReactVideoView videoView, final float progressUpdateInterval) {
- videoView.setProgressUpdateInterval(progressUpdateInterval);
- }
-
- @ReactProp(name = PROP_SEEK)
- public void setSeek(final ReactVideoView videoView, final float seek) {
- videoView.seekTo(Math.round(seek * 1000.0f));
- }
-
- @ReactProp(name = PROP_RATE)
- public void setRate(final ReactVideoView videoView, final float rate) {
- videoView.setRateModifier(rate);
- }
-
- @ReactProp(name = PROP_FULLSCREEN, defaultBoolean = false)
- public void setFullscreen(final ReactVideoView videoView, final boolean fullscreen) {
- videoView.setFullscreen(fullscreen);
- }
-
- @ReactProp(name = PROP_PLAY_IN_BACKGROUND, defaultBoolean = false)
- public void setPlayInBackground(final ReactVideoView videoView, final boolean playInBackground) {
- videoView.setPlayInBackground(playInBackground);
- }
-
- @ReactProp(name = PROP_CONTROLS, defaultBoolean = false)
- public void setControls(final ReactVideoView videoView, final boolean controls) {
- videoView.setControls(controls);
- }
-}
diff --git a/android-exoplayer/src/main/java/com/brentvatne/receiver/AudioBecomingNoisyReceiver.java b/android/src/main/java/com/brentvatne/receiver/AudioBecomingNoisyReceiver.java
similarity index 100%
rename from android-exoplayer/src/main/java/com/brentvatne/receiver/AudioBecomingNoisyReceiver.java
rename to android/src/main/java/com/brentvatne/receiver/AudioBecomingNoisyReceiver.java
diff --git a/android-exoplayer/src/main/java/com/brentvatne/receiver/BecomingNoisyListener.java b/android/src/main/java/com/brentvatne/receiver/BecomingNoisyListener.java
similarity index 100%
rename from android-exoplayer/src/main/java/com/brentvatne/receiver/BecomingNoisyListener.java
rename to android/src/main/java/com/brentvatne/receiver/BecomingNoisyListener.java
diff --git a/android-exoplayer/src/main/res/layout/exo_player_control_view.xml b/android/src/main/res/layout/exo_player_control_view.xml
similarity index 100%
rename from android-exoplayer/src/main/res/layout/exo_player_control_view.xml
rename to android/src/main/res/layout/exo_player_control_view.xml
diff --git a/android-exoplayer/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml
similarity index 100%
rename from android-exoplayer/src/main/res/values/strings.xml
rename to android/src/main/res/values/strings.xml
diff --git a/DRM.md b/docs/DRM.md
similarity index 100%
rename from DRM.md
rename to docs/DRM.md
diff --git a/dom/LICENSE.md b/dom/LICENSE.md
deleted file mode 100644
index aa185c82..00000000
--- a/dom/LICENSE.md
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Vincent Riemer
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/dom/RCTVideo.js b/dom/RCTVideo.js
deleted file mode 100644
index 32128973..00000000
--- a/dom/RCTVideo.js
+++ /dev/null
@@ -1,278 +0,0 @@
-// @flow
-
-import { RCTEvent, RCTView, type RCTBridge } from "react-native-dom";
-import shaka from "shaka-player";
-
-import resizeModes from "./resizeModes";
-import type { VideoSource } from "./types";
-import RCTVideoEvent from "./RCTVideoEvent";
-
-class RCTVideo extends RCTView {
- playPromise: Promise = Promise.resolve();
- progressTimer: number;
- videoElement: HTMLVideoElement;
-
- onEnd: boolean = false;
- onLoad: boolean = false;
- onLoadStart: boolean = false;
- onProgress: boolean = false;
-
- _paused: boolean = false;
- _progressUpdateInterval: number = 250.0;
- _savedVolume: number = 1.0;
-
- constructor(bridge: RCTBridge) {
- super(bridge);
-
- this.eventDispatcher = bridge.getModuleByName("EventDispatcher");
-
- shaka.polyfill.installAll();
-
- this.onEnd = this.onEnd.bind(this);
- this.onLoad = this.onLoad.bind(this);
- this.onLoadStart = this.onLoadStart.bind(this);
- this.onPlay = this.onPlay.bind(this);
- this.onProgress = this.onProgress.bind(this);
-
- this.videoElement = this.initializeVideoElement();
- this.videoElement.addEventListener("ended", this.onEnd);
- this.videoElement.addEventListener("loadeddata", this.onLoad);
- this.videoElement.addEventListener("canplay", this.onReadyForDisplay);
- this.videoElement.addEventListener("loadstart", this.onLoadStart);
- this.videoElement.addEventListener("pause", this.onPause);
- this.videoElement.addEventListener("play", this.onPlay);
- this.player = new shaka.Player(this.videoElement);
-
- this.muted = false;
- this.rate = 1.0;
- this.volume = 1.0;
- this.childContainer.appendChild(this.videoElement);
- }
-
- detachFromView(view: UIView) {
- this.videoElement.removeEventListener("ended", this.onEnd);
- this.videoElement.removeEventListener("loadeddata", this.onLoad);
- this.videoElement.removeEventListener("canplay", this.onReadyForDisplay);
- this.videoElement.removeEventListener("loadstart", this.onLoadStart);
- this.videoElement.removeEventListener("pause", this.onPause);
- this.videoElement.removeEventListener("play", this.onPlay);
-
- this.stopProgressTimer();
- }
-
- initializeVideoElement() {
- const elem = document.createElement("video");
-
- Object.assign(elem.style, {
- display: "block",
- position: "absolute",
- top: "0",
- left: "0",
- width: "100%",
- height: "100%"
- });
-
- return elem;
- }
-
- presentFullscreenPlayer() {
- this.videoElement.webkitRequestFullScreen();
- }
-
- set controls(value: boolean) {
- this.videoElement.controls = value;
- this.videoElement.style.pointerEvents = value ? "auto" : "";
- }
-
- set id(value: string) {
- this.videoElement.id = value;
- }
-
- set muted(value: boolean) {
- this.videoElement.muted = true;
- }
-
- set paused(value: boolean) {
- if (value) {
- this.videoElement.pause();
- } else {
- this.requestPlay();
- }
- this._paused = value;
- }
-
- set progressUpdateInterval(value: number) {
- this._progressUpdateInterval = value;
- this.stopProgressTimer();
- if (!this._paused) {
- this.startProgressTimer();
- }
- }
-
- set rate(value: number) {
- this.videoElement.defaultPlaybackRate = value; // playbackRate doesn't work on Chrome
- this.videoElement.playbackRate = value;
- }
-
- set repeat(value: boolean) {
- this.videoElement.loop = value;
- }
-
- set resizeMode(value: number) {
- switch (value) {
- case resizeModes.ScaleNone: {
- this.videoElement.style.objectFit = "none";
- break;
- }
- case resizeModes.ScaleToFill: {
- this.videoElement.style.objectFit = "fill";
- break;
- }
- case resizeModes.ScaleAspectFit: {
- this.videoElement.style.objectFit = "contain";
- break;
- }
- case resizeModes.ScaleAspectFill: {
- this.videoElement.style.objectFit = "cover";
- break;
- }
- }
- }
-
- set seek(value: number) {
- this.videoElement.currentTime = value;
- }
-
- set source(value: VideoSource) {
- let uri = value.uri;
-
- if (uri.startsWith("blob:")) {
- let blob = this.bridge.blobManager.resolveURL(uri);
- if (blob.type === "text/xml") {
- blob = new Blob([blob], { type: "video/mp4" });
- }
- uri = URL.createObjectURL(blob);
- }
-
- if (!shaka.Player.isBrowserSupported()) { // primarily iOS WebKit
- this.videoElement.setAttribute("src", uri);
- if (!this._paused) {
- this.requestPlay();
- }
- } else {
- this.player.load(uri)
- .then(() => {
- if (!this._paused) {
- this.requestPlay();
- }
- })
- .catch(this.onError);
- }
- }
-
- set volume(value: number) {
- if (value === 0) {
- this.muted = true;
- } else {
- this.videoElement.volume = value;
- this.muted = false;
- }
- }
-
- onEnd = () => {
- this.onProgress();
- this.sendEvent("topVideoEnd", null);
- this.stopProgressTimer();
- }
-
- onError = error => {
- console.warn("topVideoError", error);
- }
-
- onLoad = () => {
- // height & width are safe with audio, will be 0
- const height = this.videoElement.videoHeight;
- const width = this.videoElement.videoWidth;
- const payload = {
- currentPosition: this.videoElement.currentTime,
- duration: this.videoElement.duration,
- naturalSize: {
- width,
- height,
- orientation: width >= height ? "landscape" : "portrait"
- }
- };
- this.sendEvent("topVideoLoad", payload);
- }
-
- onReadyForDisplay = () => {
- this.sendEvent("onReadyForDisplay");
- }
-
- onLoadStart = () => {
- const src = this.videoElement.currentSrc;
- const payload = {
- isNetwork: !src.match(/^https?:\/\/localhost/), // require is served from localhost
- uri: this.videoElement.currentSrc
- };
- this.sendEvent("topVideoLoadStart", payload);
- }
-
- onPause = () => {
- this.stopProgressTimer();
- }
-
- onPlay = () => {
- this.startProgressTimer();
- }
-
- onProgress = () => {
- const payload = {
- currentTime: this.videoElement.currentTime,
- seekableDuration: this.videoElement.duration
- };
- this.sendEvent("topVideoProgress", payload);
- }
-
- onRejectedAutoplay = () => {
- this.sendEvent("topVideoRejectedAutoplay", null);
- }
-
- requestPlay() {
- const playPromise = this.videoElement.play();
- if (playPromise) {
- playPromise
- .then(() => {})
- .catch(e => {
- /* This is likely one of:
- * name: NotAllowedError - autoplay is not supported
- * name: NotSupportedError - format is not supported
- */
- this.onError({ code: e.name, message: e.message });
- });
- }
- }
-
- sendEvent(eventName, payload) {
- const event = new RCTVideoEvent(eventName, this.reactTag, 0, payload);
- this.eventDispatcher.sendEvent(event);
- }
-
- startProgressTimer() {
- if (!this.progressTimer && this._progressUpdateInterval) {
- this.onProgress();
- this.progressTimer = setInterval(this.onProgress, this._progressUpdateInterval);
- }
- }
-
- stopProgressTimer() {
- if (this.progressTimer) {
- clearInterval(this.progressTimer);
- this.progressTimer = null;
- }
- }
-}
-
-customElements.define("rct-video", RCTVideo);
-
-export default RCTVideo;
diff --git a/dom/RCTVideoEvent.js b/dom/RCTVideoEvent.js
deleted file mode 100644
index 699a88c4..00000000
--- a/dom/RCTVideoEvent.js
+++ /dev/null
@@ -1,56 +0,0 @@
-// import { RCTEvent } from "react-native-dom";
-
-interface RCTEvent {
- viewTag: number;
- eventName: string;
- coalescingKey: number;
-
- canCoalesce(): boolean;
- coalesceWithEvent(event: RCTEvent): RCTEvent;
-
- moduleDotMethod(): string;
- arguments(): Array;
- }
-
-export default class RCTVideoEvent implements RCTEvent {
- viewTag: number;
- eventName: string;
- coalescingKey: number;
-
- constructor(
- eventName: string,
- reactTag: number,
- coalescingKey: number,
- data: ?Object
- ) {
- this.viewTag = reactTag;
- this.eventName = eventName;
- this.coalescingKey = coalescingKey;
- this.data = data;
- }
-
- canCoalesce(): boolean {
- return false;
- }
-
- coalesceWithEvent(event: RCTEvent): RCTEvent {
- return;
- }
-
- moduleDotMethod(): string {
- return "RCTEventEmitter.receiveEvent";
- }
-
- arguments(): Array {
- const args = [
- this.viewTag,
- this.eventName,
- this.data
- ];
- return args;
- }
-
- coalescingKey(): number {
- return this.coalescingKey;
- }
-}
diff --git a/dom/RCTVideoManager.js b/dom/RCTVideoManager.js
deleted file mode 100644
index 2eb5309b..00000000
--- a/dom/RCTVideoManager.js
+++ /dev/null
@@ -1,87 +0,0 @@
-// @flow
-
-import { RCTViewManager } from "react-native-dom";
-
-import RCTVideo from "./RCTVideo";
-import resizeModes from "./resizeModes";
-
-import type { VideoSource } from "./types";
-
-class RCTVideoManager extends RCTViewManager {
- static moduleName = "RCTVideoManager";
-
- view() {
- return new RCTVideo(this.bridge);
- }
-
- describeProps() {
- return super
- .describeProps()
- .addBooleanProp("controls", this.setControls)
- .addStringProp("id", this.setId)
- .addBooleanProp("muted", this.setMuted)
- .addBooleanProp("paused", this.setPaused)
- .addNumberProp("progressUpdateInterval", this.setProgressUpdateInterval)
- .addBooleanProp("rate", this.setRate)
- .addBooleanProp("repeat", this.setRepeat)
- .addNumberProp("resizeMode", this.setResizeMode)
- .addNumberProp("seek", this.setSeek)
- .addObjectProp("src", this.setSource)
- .addNumberProp("volume", this.setVolume)
- .addDirectEvent("onVideoEnd")
- .addDirectEvent("onVideoError")
- .addDirectEvent("onVideoLoad")
- .addDirectEvent("onVideoLoadStart")
- .addDirectEvent("onVideoProgress");
- }
-
- dismissFullscreenPlayer() {
- // not currently working
- }
-
- presentFullscreenPlayer() {
- // not currently working
- }
-
- setControls(view: RCTVideo, value: boolean) {
- view.controls = value;
- }
-
- setId(view: RCTVideo, value: string) {
- view.id = value;
- }
-
- setMuted(view: RCTVideo, value: boolean) {
- view.muted = value;
- }
-
- setPaused(view: RCTVideo, value: boolean) {
- view.paused = value;
- }
-
- setRate(view: RCTVideo, value: number) {
- view.rate = value;
- }
-
- setRepeat(view: RCTVideo, value: boolean) {
- view.repeat = value;
- }
-
- setResizeMode(view: RCTVideo, value: number) {
- view.resizeMode = value;
- }
-
- setSeek(view: RCTVideo, value: number) {
- view.seek = value;
- }
-
- setSource(view: RCTVideo, value: VideoSource) {
- view.source = value;
- }
-
- constantsToExport() {
- return { ...resizeModes };
- }
-}
-
-export default RCTVideoManager;
diff --git a/dom/index.js b/dom/index.js
deleted file mode 100644
index d68d5bba..00000000
--- a/dom/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// @flow
-
-module.exports = require("./RCTVideoManager");
diff --git a/dom/resizeModes.js b/dom/resizeModes.js
deleted file mode 100644
index 5f569e0d..00000000
--- a/dom/resizeModes.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// @flow
-
-export default {
- ScaleNone: 0,
- ScaleToFill: 1,
- ScaleAspectFit: 2,
- ScaleAspectFill: 3,
-};
diff --git a/dom/types.js b/dom/types.js
deleted file mode 100644
index fe1d1a15..00000000
--- a/dom/types.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow
-
-export type VideoSource = {
- uri: string,
- type: string,
- mainVer: number,
- patchVer: number,
- isNetwork: boolean,
- isAsset: boolean,
-};
diff --git a/examples/basic/.buckconfig b/examples/basic/.buckconfig
deleted file mode 100644
index 934256cb..00000000
--- a/examples/basic/.buckconfig
+++ /dev/null
@@ -1,6 +0,0 @@
-
-[android]
- target = Google Inc.:Google APIs:23
-
-[maven_repositories]
- central = https://repo1.maven.org/maven2
diff --git a/examples/basic/.flowconfig b/examples/basic/.flowconfig
deleted file mode 100644
index bb65654d..00000000
--- a/examples/basic/.flowconfig
+++ /dev/null
@@ -1,58 +0,0 @@
-[ignore]
-; We fork some components by platform
-.*/*[.]android.js
-
-# We fork some components by platform.
-.*/*[.]android.js
-
-# Ignore templates with `@flow` in header
-.*/local-cli/generator.*
-
-# Ignore malformed json
-.*/node_modules/y18n/test/.*\.json
-
-# Ignore the website subdir
-/website/.*
-
-# Ignore BUCK generated dirs
-
-/\.buckd/
-
-; Ignore unexpected extra "@providesModule"
-.*/node_modules/.*/node_modules/fbjs/.*
-
-; Ignore duplicate module providers
-; For RN Apps installed via npm, "Libraries" folder is inside
-; "node_modules/react-native" but in the source repo it is in the root
-.*/Libraries/react-native/React.js
-.*/Libraries/react-native/ReactNative.js
-
-[include]
-
-[libs]
-node_modules/react-native/Libraries/react-native/react-native-interface.js
-node_modules/react-native/flow
-flow/
-
-[options]
-module.system=haste
-
-experimental.strict_type_args=true
-
-munge_underscores=true
-
-module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
-
-suppress_type=$FlowIssue
-suppress_type=$FlowFixMe
-suppress_type=$FixMe
-
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(3[0-6]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
-suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(3[0-6]\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
-
-unsafe.enable_getters_and_setters=true
-
-[version]
-
-^0.36.0
diff --git a/examples/basic/.gitattributes b/examples/basic/.gitattributes
deleted file mode 100644
index d42ff183..00000000
--- a/examples/basic/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.pbxproj -text
diff --git a/examples/basic/.gitignore b/examples/basic/.gitignore
deleted file mode 100644
index e9ec10b5..00000000
--- a/examples/basic/.gitignore
+++ /dev/null
@@ -1,55 +0,0 @@
-# OSX
-#
-.DS_Store
-
-# Xcode
-#
-build/
-*.pbxuser
-!default.pbxuser
-*.mode1v3
-!default.mode1v3
-*.mode2v3
-!default.mode2v3
-*.perspectivev3
-!default.perspectivev3
-xcuserdata
-*.xccheckout
-*.moved-aside
-DerivedData
-*.hmap
-*.ipa
-*.xcuserstate
-project.xcworkspace
-
-# Android/IntelliJ
-#
-build/
-.idea
-.gradle
-local.properties
-*.iml
-
-# node.js
-#
-node_modules/
-npm-debug.log
-
-# BUCK
-buck-out/
-\.buckd/
-android/app/libs
-*.keystore
-
-# fastlane
-#
-# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
-# screenshots whenever they are needed.
-# For more information about the recommended setup visit:
-# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
-
-fastlane/report.xml
-fastlane/Preview.html
-fastlane/screenshots
-
-*.binlog
diff --git a/examples/basic/.watchmanconfig b/examples/basic/.watchmanconfig
deleted file mode 100644
index 9e26dfee..00000000
--- a/examples/basic/.watchmanconfig
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/examples/basic/__tests__/App-test.js b/examples/basic/__tests__/App-test.js
new file mode 100644
index 00000000..d9297fbe
--- /dev/null
+++ b/examples/basic/__tests__/App-test.js
@@ -0,0 +1,14 @@
+/**
+ * @format
+ */
+
+import 'react-native';
+import React from 'react';
+import VideoPlayer from '../src/VideoPlayer';
+
+// Note: test renderer must be required after react-native.
+import renderer from 'react-test-renderer';
+
+it('renders correctly', () => {
+ renderer.create( );
+});
diff --git a/examples/basic/android/app/BUCK b/examples/basic/android/app/BUCK
index 41c624bb..96fa2d68 100644
--- a/examples/basic/android/app/BUCK
+++ b/examples/basic/android/app/BUCK
@@ -1,5 +1,3 @@
-import re
-
# To learn about Buck see [Docs](https://buckbuild.com/).
# To run your application with Buck:
# - install Buck
@@ -10,57 +8,48 @@ import re
# - `buck install -r android/app` - compile, install and run application
#
-lib_deps = []
-for jarfile in glob(['libs/*.jar']):
- name = 'jars__' + re.sub(r'^.*/([^/]+)\.jar$', r'\1', jarfile)
- lib_deps.append(':' + name)
- prebuilt_jar(
- name = name,
- binary_jar = jarfile,
- )
+load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
-for aarfile in glob(['libs/*.aar']):
- name = 'aars__' + re.sub(r'^.*/([^/]+)\.aar$', r'\1', aarfile)
- lib_deps.append(':' + name)
- android_prebuilt_aar(
- name = name,
- aar = aarfile,
- )
+lib_deps = []
+
+create_aar_targets(glob(["libs/*.aar"]))
+
+create_jar_targets(glob(["libs/*.jar"]))
android_library(
- name = 'all-libs',
- exported_deps = lib_deps
+ name = "all-libs",
+ exported_deps = lib_deps,
)
android_library(
- name = 'app-code',
- srcs = glob([
- 'src/main/java/**/*.java',
- ]),
- deps = [
- ':all-libs',
- ':build_config',
- ':res',
- ],
+ name = "app-code",
+ srcs = glob([
+ "src/main/java/**/*.java",
+ ]),
+ deps = [
+ ":all-libs",
+ ":build_config",
+ ":res",
+ ],
)
android_build_config(
- name = 'build_config',
- package = 'com.videoplayer',
+ name = "build_config",
+ package = "com.videoplayer",
)
android_resource(
- name = 'res',
- res = 'src/main/res',
- package = 'com.videoplayer',
+ name = "res",
+ package = "com.videoplayer",
+ res = "src/main/res",
)
android_binary(
- name = 'app',
- package_type = 'debug',
- manifest = 'src/main/AndroidManifest.xml',
- keystore = '//android/keystores:debug',
- deps = [
- ':app-code',
- ],
+ name = "app",
+ keystore = "//android/keystores:debug",
+ manifest = "src/main/AndroidManifest.xml",
+ package_type = "debug",
+ deps = [
+ ":app-code",
+ ],
)
diff --git a/examples/basic/android/app/build.gradle b/examples/basic/android/app/build.gradle
index 082873d4..31a0e7d1 100644
--- a/examples/basic/android/app/build.gradle
+++ b/examples/basic/android/app/build.gradle
@@ -15,9 +15,14 @@ import com.android.build.OutputFile
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
- * // the entry file for bundle generation
+ * // the entry file for bundle generation. If none specified and
+ * // "index.android.js" exists, it will be used. Otherwise "index.js" is
+ * // default. Can be overridden with ENTRY_FILE environment variable.
* entryFile: "index.android.js",
*
+ * // https://reactnative.dev/docs/performance#enable-the-ram-format
+ * bundleCommand: "ram-bundle",
+ *
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
@@ -33,6 +38,13 @@ import com.android.build.OutputFile
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
+ * // whether to disable dev mode in custom build variants (by default only disabled in release)
+ * // for example: to disable dev mode in the staging build type (if configured)
+ * devDisabledInStaging: true,
+ * // The configuration property can be in the following formats
+ * // 'devDisabledIn${productFlavor}${buildType}'
+ * // 'devDisabledIn${buildType}'
+ *
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
@@ -58,7 +70,7 @@ import com.android.build.OutputFile
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
- * nodeExecutableAndArgs: ["node"]
+ * nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
@@ -66,9 +78,9 @@ import com.android.build.OutputFile
*/
project.ext.react = [
- entryFile: "index.android.js",
- enableHermes: false,
+ enableHermes: false, // clean and rebuild if changing
]
+
apply from: "../../node_modules/react-native/react.gradle"
/**
@@ -86,58 +98,117 @@ def enableSeparateBuildPerCPUArchitecture = false
*/
def enableProguardInReleaseBuilds = false
+/**
+ * The preferred build flavor of JavaScriptCore.
+ *
+ * For example, to use the international variant, you can use:
+ * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
+ *
+ * The international variant includes ICU i18n library and necessary data
+ * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
+ * give correct results when using with locales other than en-US. Note that
+ * this variant is about 6MiB larger per architecture than default.
+ */
+def jscFlavor = 'org.webkit:android-jsc:+'
+
+/**
+ * Whether to enable the Hermes VM.
+ *
+ * This should be set on project.ext.react and mirrored here. If it is not set
+ * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
+ * and the benefits of using Hermes will therefore be sharply reduced.
+ */
+def enableHermes = project.ext.react.get("enableHermes", false);
+
android {
compileSdkVersion rootProject.ext.compileSdkVersion
- buildToolsVersion rootProject.ext.buildToolsVersion
+
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
+
defaultConfig {
applicationId "com.videoplayer"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
- ndk {
- abiFilters "armeabi-v7a", "x86"
- }
+ multiDexEnabled true
+
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
- include "armeabi-v7a", "x86"
+ include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
+ }
+ }
+ signingConfigs {
+ debug {
+ storeFile file('debug.keystore')
+ storePassword 'android'
+ keyAlias 'androiddebugkey'
+ keyPassword 'android'
}
}
buildTypes {
+ debug {
+ signingConfig signingConfigs.debug
+ }
release {
+ // Caution! In production, you need to generate your own keystore file.
+ // see https://reactnative.dev/docs/signed-apk-android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
- matchingFallbacks = ['release', 'debug']
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
+
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
- // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
- def versionCodes = ["armeabi-v7a":1, "x86":2]
+ // https://developer.android.com/studio/build/configure-apk-splits.html
+ def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
+
}
}
}
dependencies {
- implementation project(':react-native-video')
+ implementation fileTree(dir: "libs", include: ["*.jar"])
+ //noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
- implementation 'org.webkit:android-jsc:+'
+
+ implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
+
+ debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
+ exclude group:'com.facebook.fbjni'
+ }
+
+ debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
+ exclude group:'com.facebook.flipper'
+ exclude group:'com.squareup.okhttp3', module:'okhttp'
+ }
+
+ debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
+ exclude group:'com.facebook.flipper'
+ }
+
+ if (enableHermes) {
+ def hermesPath = "../../node_modules/hermes-engine/android/";
+ debugImplementation files(hermesPath + "hermes-debug.aar")
+ releaseImplementation files(hermesPath + "hermes-release.aar")
+ } else {
+ implementation jscFlavor
+ }
}
// Run this once to be able to run the application with BUCK
@@ -146,3 +217,5 @@ task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
+
+apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
diff --git a/examples/basic/android/app/build_defs.bzl b/examples/basic/android/app/build_defs.bzl
new file mode 100644
index 00000000..fff270f8
--- /dev/null
+++ b/examples/basic/android/app/build_defs.bzl
@@ -0,0 +1,19 @@
+"""Helper definitions to glob .aar and .jar targets"""
+
+def create_aar_targets(aarfiles):
+ for aarfile in aarfiles:
+ name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
+ lib_deps.append(":" + name)
+ android_prebuilt_aar(
+ name = name,
+ aar = aarfile,
+ )
+
+def create_jar_targets(jarfiles):
+ for jarfile in jarfiles:
+ name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
+ lib_deps.append(":" + name)
+ prebuilt_jar(
+ name = name,
+ binary_jar = jarfile,
+ )
diff --git a/examples/basic/android/app/debug.keystore b/examples/basic/android/app/debug.keystore
new file mode 100644
index 00000000..364e105e
Binary files /dev/null and b/examples/basic/android/app/debug.keystore differ
diff --git a/examples/basic/android/app/proguard-rules.pro b/examples/basic/android/app/proguard-rules.pro
index 48361a90..653226b2 100644
--- a/examples/basic/android/app/proguard-rules.pro
+++ b/examples/basic/android/app/proguard-rules.pro
@@ -63,4 +63,4 @@
-keep class sun.misc.Unsafe { *; }
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
--dontwarn okio.**
+-dontwarn okio.**
\ No newline at end of file
diff --git a/examples/basic/android/app/src/debug/AndroidManifest.xml b/examples/basic/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 00000000..fa26aa56
--- /dev/null
+++ b/examples/basic/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
diff --git a/examples/basic/android/app/src/debug/java/com/videoplayer/ReactNativeFlipper.java b/examples/basic/android/app/src/debug/java/com/videoplayer/ReactNativeFlipper.java
new file mode 100644
index 00000000..05c77d34
--- /dev/null
+++ b/examples/basic/android/app/src/debug/java/com/videoplayer/ReactNativeFlipper.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the LICENSE file in the root
+ * directory of this source tree.
+ */
+package com.videoplayer;
+
+import android.content.Context;
+import com.facebook.flipper.android.AndroidFlipperClient;
+import com.facebook.flipper.android.utils.FlipperUtils;
+import com.facebook.flipper.core.FlipperClient;
+import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
+import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
+import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
+import com.facebook.flipper.plugins.inspector.DescriptorMapping;
+import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
+import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
+import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
+import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
+import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
+import com.facebook.react.ReactInstanceManager;
+import com.facebook.react.bridge.ReactContext;
+import com.facebook.react.modules.network.NetworkingModule;
+import okhttp3.OkHttpClient;
+
+public class ReactNativeFlipper {
+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
+ if (FlipperUtils.shouldEnableFlipper(context)) {
+ final FlipperClient client = AndroidFlipperClient.getInstance(context);
+
+ client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
+ client.addPlugin(new ReactFlipperPlugin());
+ client.addPlugin(new DatabasesFlipperPlugin(context));
+ client.addPlugin(new SharedPreferencesFlipperPlugin(context));
+ client.addPlugin(CrashReporterPlugin.getInstance());
+
+ NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
+ NetworkingModule.setCustomClientBuilder(
+ new NetworkingModule.CustomClientBuilder() {
+ @Override
+ public void apply(OkHttpClient.Builder builder) {
+ builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
+ }
+ });
+ client.addPlugin(networkFlipperPlugin);
+ client.start();
+
+ // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
+ // Hence we run if after all native modules have been initialized
+ ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
+ if (reactContext == null) {
+ reactInstanceManager.addReactInstanceEventListener(
+ new ReactInstanceManager.ReactInstanceEventListener() {
+ @Override
+ public void onReactContextInitialized(ReactContext reactContext) {
+ reactInstanceManager.removeReactInstanceEventListener(this);
+ reactContext.runOnNativeModulesQueueThread(
+ new Runnable() {
+ @Override
+ public void run() {
+ client.addPlugin(new FrescoFlipperPlugin());
+ }
+ });
+ }
+ });
+ } else {
+ client.addPlugin(new FrescoFlipperPlugin());
+ }
+ }
+ }
+}
diff --git a/examples/basic/android/app/src/main/AndroidManifest.xml b/examples/basic/android/app/src/main/AndroidManifest.xml
index 96fc8828..6d2862d6 100644
--- a/examples/basic/android/app/src/main/AndroidManifest.xml
+++ b/examples/basic/android/app/src/main/AndroidManifest.xml
@@ -1,24 +1,35 @@
+ package="com.videoplayer">
+
+
+
-
+ android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
+ android:launchMode="singleTask"
+ android:windowSoftInputMode="adjustResize">
+
diff --git a/examples/basic/android/app/src/main/java/com/videoplayer/MainActivity.java b/examples/basic/android/app/src/main/java/com/videoplayer/MainActivity.java
index 7045aa12..2ed27c34 100644
--- a/examples/basic/android/app/src/main/java/com/videoplayer/MainActivity.java
+++ b/examples/basic/android/app/src/main/java/com/videoplayer/MainActivity.java
@@ -4,12 +4,12 @@ import com.facebook.react.ReactActivity;
public class MainActivity extends ReactActivity {
- /**
- * Returns the name of the main component registered from JavaScript.
- * This is used to schedule rendering of the component.
- */
- @Override
- protected String getMainComponentName() {
- return "VideoPlayer";
- }
+ /**
+ * Returns the name of the main component registered from JavaScript. This is used to schedule
+ * rendering of the component.
+ */
+ @Override
+ protected String getMainComponentName() {
+ return "VideoPlayer";
+ }
}
diff --git a/examples/basic/android/app/src/main/java/com/videoplayer/MainApplication.java b/examples/basic/android/app/src/main/java/com/videoplayer/MainApplication.java
index a2698415..c3db7f87 100644
--- a/examples/basic/android/app/src/main/java/com/videoplayer/MainApplication.java
+++ b/examples/basic/android/app/src/main/java/com/videoplayer/MainApplication.java
@@ -1,15 +1,14 @@
package com.videoplayer;
import android.app.Application;
-
+import android.content.Context;
+import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
-import com.brentvatne.react.ReactVideoPackage;
+import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
-import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
-
-import java.util.Arrays;
+import java.lang.reflect.InvocationTargetException;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
@@ -22,10 +21,17 @@ public class MainApplication extends Application implements ReactApplication {
@Override
protected List getPackages() {
- return Arrays.asList(
- new MainReactPackage(),
- new ReactVideoPackage()
- );
+ @SuppressWarnings("UnnecessaryLocalVariable")
+ List packages = new PackageList(this).getPackages();
+ // Packages that cannot be autolinked yet can be added manually here, for
+ // example:
+ // packages.add(new MyReactNativePackage());
+ return packages;
+ }
+
+ @Override
+ protected String getJSMainModuleName() {
+ return "src/index";
}
};
diff --git a/examples/basic/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/examples/basic/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
index cde69bcc..a2f59082 100644
Binary files a/examples/basic/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/examples/basic/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/examples/basic/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 00000000..1b523998
Binary files /dev/null and b/examples/basic/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/examples/basic/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
index c133a0cb..ff10afd6 100644
Binary files a/examples/basic/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/examples/basic/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/examples/basic/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 00000000..115a4c76
Binary files /dev/null and b/examples/basic/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/examples/basic/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index bfa42f0e..dcd3cd80 100644
Binary files a/examples/basic/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/examples/basic/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/examples/basic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 00000000..459ca609
Binary files /dev/null and b/examples/basic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/examples/basic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index 324e72cd..8ca12fe0 100644
Binary files a/examples/basic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/examples/basic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/examples/basic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 00000000..8e19b410
Binary files /dev/null and b/examples/basic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/examples/basic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 00000000..b824ebdd
Binary files /dev/null and b/examples/basic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/examples/basic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/examples/basic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 00000000..4c19a13c
Binary files /dev/null and b/examples/basic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/examples/basic/android/app/src/main/res/values/styles.xml b/examples/basic/android/app/src/main/res/values/styles.xml
index 319eb0ca..62fe59fa 100644
--- a/examples/basic/android/app/src/main/res/values/styles.xml
+++ b/examples/basic/android/app/src/main/res/values/styles.xml
@@ -3,6 +3,7 @@
diff --git a/examples/basic/android/build.gradle b/examples/basic/android/build.gradle
index c2191278..f9da7acc 100644
--- a/examples/basic/android/build.gradle
+++ b/examples/basic/android/build.gradle
@@ -2,20 +2,17 @@
buildscript {
ext {
- buildToolsVersion = "28.0.3"
- minSdkVersion = 16
- compileSdkVersion = 28
- targetSdkVersion = 28
- supportLibVersion = "28.0.0"
-
-}
+ buildToolsVersion = "30.0.2"
+ minSdkVersion = 21
+ compileSdkVersion = 31
+ targetSdkVersion = 29
+ }
repositories {
- jcenter()
google()
+ jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.4.1'
-
+ classpath("com.android.tools.build:gradle:4.2.2")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@@ -24,18 +21,17 @@ buildscript {
allprojects {
repositories {
mavenLocal()
- google()
- maven {
- url "https://jitpack.io"
- }
- jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
- url "$rootDir/../node_modules/react-native/android"
+ url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
+
+ google()
+ jcenter()
+ maven { url 'https://www.jitpack.io' }
}
}
diff --git a/examples/basic/android/gradle.properties b/examples/basic/android/gradle.properties
index ccb748f5..3bdbd3d4 100644
--- a/examples/basic/android/gradle.properties
+++ b/examples/basic/android/gradle.properties
@@ -17,5 +17,12 @@
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
-android.enableJetifier=true
\ No newline at end of file
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
+
+# Version of flipper SDK to use with React Native
+FLIPPER_VERSION=0.54.0
diff --git a/examples/basic/android/gradle/wrapper/gradle-wrapper.jar b/examples/basic/android/gradle/wrapper/gradle-wrapper.jar
index b5166dad..f3d88b1c 100644
Binary files a/examples/basic/android/gradle/wrapper/gradle-wrapper.jar and b/examples/basic/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/examples/basic/android/gradle/wrapper/gradle-wrapper.properties b/examples/basic/android/gradle/wrapper/gradle-wrapper.properties
index 364205fc..6499169f 100644
--- a/examples/basic/android/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/basic/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Thu Mar 09 08:03:03 PST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/examples/basic/android/gradlew b/examples/basic/android/gradlew
index 91a7e269..2fe81a7d 100755
--- a/examples/basic/android/gradlew
+++ b/examples/basic/android/gradlew
@@ -1,4 +1,20 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+#
##############################################################################
##
@@ -6,47 +22,6 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
@@ -61,9 +36,49 @@ while [ -h "$PRG" ] ; do
fi
done
SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
+cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -90,7 +105,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -110,10 +125,11 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
@@ -138,27 +154,30 @@ if $cygwin ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=$((i+1))
+ i=`expr $i + 1`
done
case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=`save "$@"`
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/examples/basic/android/gradlew.bat b/examples/basic/android/gradlew.bat
index aec99730..62bd9b9c 100644
--- a/examples/basic/android/gradlew.bat
+++ b/examples/basic/android/gradlew.bat
@@ -1,90 +1,103 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/examples/basic/android/keystores/BUCK b/examples/basic/android/keystores/BUCK
deleted file mode 100644
index 15da20e6..00000000
--- a/examples/basic/android/keystores/BUCK
+++ /dev/null
@@ -1,8 +0,0 @@
-keystore(
- name = 'debug',
- store = 'debug.keystore',
- properties = 'debug.keystore.properties',
- visibility = [
- 'PUBLIC',
- ],
-)
diff --git a/examples/basic/android/keystores/debug.keystore.properties b/examples/basic/android/keystores/debug.keystore.properties
deleted file mode 100644
index 121bfb49..00000000
--- a/examples/basic/android/keystores/debug.keystore.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-key.store=debug.keystore
-key.alias=androiddebugkey
-key.store.password=android
-key.alias.password=android
diff --git a/examples/basic/android/settings.gradle b/examples/basic/android/settings.gradle
index 5fc7fca4..a78bc672 100644
--- a/examples/basic/android/settings.gradle
+++ b/examples/basic/android/settings.gradle
@@ -1,6 +1,5 @@
rootProject.name = 'VideoPlayer'
-
+apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':react-native-video'
-project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android-exoplayer')
-
+project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android')
include ':app'
diff --git a/examples/basic/app.json b/examples/basic/app.json
new file mode 100644
index 00000000..77e4fa7e
--- /dev/null
+++ b/examples/basic/app.json
@@ -0,0 +1,4 @@
+{
+ "name": "VideoPlayer",
+ "displayName": "VideoPlayer"
+}
\ No newline at end of file
diff --git a/examples/basic/babel.config.js b/examples/basic/babel.config.js
index f842b77f..6c9b6e99 100644
--- a/examples/basic/babel.config.js
+++ b/examples/basic/babel.config.js
@@ -1,3 +1,16 @@
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
-};
+ plugins: [
+ [
+ 'module-resolver',
+ {
+ extensions: ['.js', '.tsx', '.ts'],
+ root: ['./src'],
+
+ alias: {
+ src: './src',
+ },
+ },
+ ],
+ ],
+};
\ No newline at end of file
diff --git a/examples/basic/index.android.js b/examples/basic/index.android.js
deleted file mode 100644
index 1242ddd0..00000000
--- a/examples/basic/index.android.js
+++ /dev/null
@@ -1,230 +0,0 @@
-'use strict';
-
-import React, {
- Component
-} from 'react';
-
-import {
- AppRegistry,
- StyleSheet,
- Text,
- TouchableOpacity,
- View,
-} from 'react-native';
-
-import Video from 'react-native-video';
-
-class VideoPlayer extends Component {
-
- state = {
- rate: 1,
- volume: 1,
- muted: false,
- resizeMode: 'contain',
- duration: 0.0,
- currentTime: 0.0,
- paused: true,
- };
-
- video: Video;
-
- onLoad = (data) => {
- this.setState({ duration: data.duration });
- };
-
- onProgress = (data) => {
- this.setState({ currentTime: data.currentTime });
- };
-
- onEnd = () => {
- this.setState({ paused: true })
- this.video.seek(0)
- };
-
- onAudioBecomingNoisy = () => {
- this.setState({ paused: true })
- };
-
- onAudioFocusChanged = (event: { hasAudioFocus: boolean }) => {
- this.setState({ paused: !event.hasAudioFocus })
- };
-
- getCurrentTimePercentage() {
- if (this.state.currentTime > 0) {
- return parseFloat(this.state.currentTime) / parseFloat(this.state.duration);
- }
- return 0;
- };
-
- renderRateControl(rate) {
- const isSelected = (this.state.rate === rate);
-
- return (
- { this.setState({ rate }) }}>
-
- {rate}x
-
-
- );
- }
-
- renderResizeModeControl(resizeMode) {
- const isSelected = (this.state.resizeMode === resizeMode);
-
- return (
- { this.setState({ resizeMode }) }}>
-
- {resizeMode}
-
-
- )
- }
-
- renderVolumeControl(volume) {
- const isSelected = (this.state.volume === volume);
-
- return (
- { this.setState({ volume }) }}>
-
- {volume * 100}%
-
-
- )
- }
-
- render() {
- const flexCompleted = this.getCurrentTimePercentage() * 100;
- const flexRemaining = (1 - this.getCurrentTimePercentage()) * 100;
-
- return (
-
- this.setState({ paused: !this.state.paused })}
- >
- { this.video = ref }}
- /* For ExoPlayer */
- /* source={{ uri: 'http://www.youtube.com/api/manifest/dash/id/bf5bb2419360daf1/source/youtube?as=fmp4_audio_clear,fmp4_sd_hd_clear&sparams=ip,ipbits,expire,source,id,as&ip=0.0.0.0&ipbits=0&expire=19000000000&signature=51AF5F39AB0CEC3E5497CD9C900EBFEAECCCB5C7.8506521BFC350652163895D4C26DEE124209AA9E&key=ik0', type: 'mpd' }} */
- source={require('./broadchurch.mp4')}
- style={styles.fullScreen}
- rate={this.state.rate}
- paused={this.state.paused}
- volume={this.state.volume}
- muted={this.state.muted}
- resizeMode={this.state.resizeMode}
- onLoad={this.onLoad}
- onProgress={this.onProgress}
- onEnd={this.onEnd}
- onAudioBecomingNoisy={this.onAudioBecomingNoisy}
- onAudioFocusChanged={this.onAudioFocusChanged}
- repeat={false}
- />
-
-
-
-
-
- {this.renderRateControl(0.25)}
- {this.renderRateControl(0.5)}
- {this.renderRateControl(1.0)}
- {this.renderRateControl(1.5)}
- {this.renderRateControl(2.0)}
-
-
-
- {this.renderVolumeControl(0.5)}
- {this.renderVolumeControl(1)}
- {this.renderVolumeControl(1.5)}
-
-
-
- {this.renderResizeModeControl('cover')}
- {this.renderResizeModeControl('contain')}
- {this.renderResizeModeControl('stretch')}
-
-
-
-
-
-
-
-
-
-
-
- );
- }
-}
-
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- justifyContent: 'center',
- alignItems: 'center',
- backgroundColor: 'black',
- },
- fullScreen: {
- position: 'absolute',
- top: 0,
- left: 0,
- bottom: 0,
- right: 0,
- },
- controls: {
- backgroundColor: 'transparent',
- borderRadius: 5,
- position: 'absolute',
- bottom: 20,
- left: 20,
- right: 20,
- },
- progress: {
- flex: 1,
- flexDirection: 'row',
- borderRadius: 3,
- overflow: 'hidden',
- },
- innerProgressCompleted: {
- height: 20,
- backgroundColor: '#cccccc',
- },
- innerProgressRemaining: {
- height: 20,
- backgroundColor: '#2C2C2C',
- },
- generalControls: {
- flex: 1,
- flexDirection: 'row',
- borderRadius: 4,
- overflow: 'hidden',
- paddingBottom: 10,
- },
- rateControl: {
- flex: 1,
- flexDirection: 'row',
- justifyContent: 'center',
- },
- volumeControl: {
- flex: 1,
- flexDirection: 'row',
- justifyContent: 'center',
- },
- resizeModeControl: {
- flex: 1,
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'center',
- },
- controlOption: {
- alignSelf: 'center',
- fontSize: 11,
- color: 'white',
- paddingLeft: 2,
- paddingRight: 2,
- lineHeight: 12,
- },
-});
-
-AppRegistry.registerComponent('VideoPlayer', () => VideoPlayer);
diff --git a/examples/basic/ios/AppDelegate.h b/examples/basic/ios/AppDelegate.h
deleted file mode 100644
index a9654d5e..00000000
--- a/examples/basic/ios/AppDelegate.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
-#import
-
-@interface AppDelegate : UIResponder
-
-@property (nonatomic, strong) UIWindow *window;
-
-@end
diff --git a/examples/basic/ios/AppDelegate.m b/examples/basic/ios/AppDelegate.m
deleted file mode 100644
index 74dbce6d..00000000
--- a/examples/basic/ios/AppDelegate.m
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
-#import "AppDelegate.h"
-
-#import "RCTRootView.h"
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-{
- NSURL *jsCodeLocation;
-
- // Loading JavaScript code - uncomment the one you want.
-
- // OPTION 1
- // Load from development server. Start the server from the repository root:
- //
- // $ npm start
- //
- // To run on device, change `localhost` to the IP address of your computer, and make sure your computer and
- // iOS device are on the same Wi-Fi network.
- jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
-
- // OPTION 2
- // Load from pre-bundled file on disk. To re-generate the static bundle, run
- //
- // $ curl 'http://localhost:8081/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle
- //
- // and uncomment the next following line
- // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
-
- RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
- moduleName:@"VideoPlayer"
- initialProperties: nil
- launchOptions:launchOptions];
-
- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
- UIViewController *rootViewController = [[UIViewController alloc] init];
- rootViewController.view = rootView;
- self.window.rootViewController = rootViewController;
- [self.window makeKeyAndVisible];
- return YES;
-}
-
-@end
diff --git a/examples/basic/ios/Base.lproj/LaunchScreen.xib b/examples/basic/ios/Base.lproj/LaunchScreen.xib
deleted file mode 100644
index 187346b0..00000000
--- a/examples/basic/ios/Base.lproj/LaunchScreen.xib
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/examples/basic/ios/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/basic/ios/Images.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 118c98f7..00000000
--- a/examples/basic/ios/Images.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "iphone",
- "size" : "29x29",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "29x29",
- "scale" : "3x"
- },
- {
- "idiom" : "iphone",
- "size" : "40x40",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "40x40",
- "scale" : "3x"
- },
- {
- "idiom" : "iphone",
- "size" : "60x60",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "60x60",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/examples/basic/ios/Info.plist b/examples/basic/ios/Info.plist
deleted file mode 100644
index 45532a3a..00000000
--- a/examples/basic/ios/Info.plist
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0.0
- CFBundleSignature
- ????
- CFBundleVersion
- 2
- LSApplicationCategoryType
-
- LSRequiresIPhoneOS
-
- NSAppTransportSecurity
-
- NSAllowsArbitraryLoads
-
-
- UILaunchStoryboardName
- LaunchScreen
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UIViewControllerBasedStatusBarAppearance
-
-
-
diff --git a/examples/basic/ios/Podfile b/examples/basic/ios/Podfile
new file mode 100644
index 00000000..bb45269f
--- /dev/null
+++ b/examples/basic/ios/Podfile
@@ -0,0 +1,26 @@
+require_relative '../node_modules/react-native/scripts/react_native_pods'
+require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
+
+platform :ios, '10.0'
+use_frameworks! :linkage => :static
+
+target 'VideoPlayer' do
+ config = use_native_modules!
+
+ use_react_native!(:path => config["reactNativePath"])
+
+ target 'VideoPlayerTests' do
+ inherit! :complete
+ # Pods for testing
+ end
+
+end
+
+target 'VideoPlayer-tvOS' do
+ # Pods for VideoPlayer-tvOS
+
+ target 'VideoPlayer-tvOSTests' do
+ inherit! :search_paths
+ # Pods for testing
+ end
+end
diff --git a/examples/basic/ios/Podfile.lock b/examples/basic/ios/Podfile.lock
new file mode 100644
index 00000000..242b20a4
--- /dev/null
+++ b/examples/basic/ios/Podfile.lock
@@ -0,0 +1,392 @@
+PODS:
+ - boost-for-react-native (1.63.0)
+ - DoubleConversion (1.1.6)
+ - FBLazyVector (0.63.4)
+ - FBReactNativeSpec (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - RCTRequired (= 0.63.4)
+ - RCTTypeSafety (= 0.63.4)
+ - React-Core (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - Folly (2020.01.13.00):
+ - boost-for-react-native
+ - DoubleConversion
+ - Folly/Default (= 2020.01.13.00)
+ - glog
+ - Folly/Default (2020.01.13.00):
+ - boost-for-react-native
+ - DoubleConversion
+ - glog
+ - glog (0.3.5)
+ - PromisesObjC (2.0.0)
+ - PromisesSwift (2.0.0):
+ - PromisesObjC (= 2.0.0)
+ - RCTRequired (0.63.4)
+ - RCTTypeSafety (0.63.4):
+ - FBLazyVector (= 0.63.4)
+ - Folly (= 2020.01.13.00)
+ - RCTRequired (= 0.63.4)
+ - React-Core (= 0.63.4)
+ - React (0.63.4):
+ - React-Core (= 0.63.4)
+ - React-Core/DevSupport (= 0.63.4)
+ - React-Core/RCTWebSocket (= 0.63.4)
+ - React-RCTActionSheet (= 0.63.4)
+ - React-RCTAnimation (= 0.63.4)
+ - React-RCTBlob (= 0.63.4)
+ - React-RCTImage (= 0.63.4)
+ - React-RCTLinking (= 0.63.4)
+ - React-RCTNetwork (= 0.63.4)
+ - React-RCTSettings (= 0.63.4)
+ - React-RCTText (= 0.63.4)
+ - React-RCTVibration (= 0.63.4)
+ - React-callinvoker (0.63.4)
+ - React-Core (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default (= 0.63.4)
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/CoreModulesHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/Default (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/DevSupport (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default (= 0.63.4)
+ - React-Core/RCTWebSocket (= 0.63.4)
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - React-jsinspector (= 0.63.4)
+ - Yoga
+ - React-Core/RCTActionSheetHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTAnimationHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTBlobHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTImageHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTLinkingHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTNetworkHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTSettingsHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTTextHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTVibrationHeaders (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-Core/RCTWebSocket (0.63.4):
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-Core/Default (= 0.63.4)
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsiexecutor (= 0.63.4)
+ - Yoga
+ - React-CoreModules (0.63.4):
+ - FBReactNativeSpec (= 0.63.4)
+ - Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.63.4)
+ - React-Core/CoreModulesHeaders (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-RCTImage (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - React-cxxreact (0.63.4):
+ - boost-for-react-native (= 1.63.0)
+ - DoubleConversion
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-callinvoker (= 0.63.4)
+ - React-jsinspector (= 0.63.4)
+ - React-jsi (0.63.4):
+ - boost-for-react-native (= 1.63.0)
+ - DoubleConversion
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-jsi/Default (= 0.63.4)
+ - React-jsi/Default (0.63.4):
+ - boost-for-react-native (= 1.63.0)
+ - DoubleConversion
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-jsiexecutor (0.63.4):
+ - DoubleConversion
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-jsinspector (0.63.4)
+ - react-native-video (6.0.0-alpha1):
+ - React-Core
+ - react-native-video/Video (= 6.0.0-alpha1)
+ - react-native-video/Video (6.0.0-alpha1):
+ - PromisesSwift
+ - React-Core
+ - React-RCTActionSheet (0.63.4):
+ - React-Core/RCTActionSheetHeaders (= 0.63.4)
+ - React-RCTAnimation (0.63.4):
+ - FBReactNativeSpec (= 0.63.4)
+ - Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.63.4)
+ - React-Core/RCTAnimationHeaders (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - React-RCTBlob (0.63.4):
+ - FBReactNativeSpec (= 0.63.4)
+ - Folly (= 2020.01.13.00)
+ - React-Core/RCTBlobHeaders (= 0.63.4)
+ - React-Core/RCTWebSocket (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-RCTNetwork (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - React-RCTImage (0.63.4):
+ - FBReactNativeSpec (= 0.63.4)
+ - Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.63.4)
+ - React-Core/RCTImageHeaders (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - React-RCTNetwork (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - React-RCTLinking (0.63.4):
+ - FBReactNativeSpec (= 0.63.4)
+ - React-Core/RCTLinkingHeaders (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - React-RCTNetwork (0.63.4):
+ - FBReactNativeSpec (= 0.63.4)
+ - Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.63.4)
+ - React-Core/RCTNetworkHeaders (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - React-RCTSettings (0.63.4):
+ - FBReactNativeSpec (= 0.63.4)
+ - Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.63.4)
+ - React-Core/RCTSettingsHeaders (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - React-RCTText (0.63.4):
+ - React-Core/RCTTextHeaders (= 0.63.4)
+ - React-RCTVibration (0.63.4):
+ - FBReactNativeSpec (= 0.63.4)
+ - Folly (= 2020.01.13.00)
+ - React-Core/RCTVibrationHeaders (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - ReactCommon/turbomodule/core (= 0.63.4)
+ - ReactCommon/turbomodule/core (0.63.4):
+ - DoubleConversion
+ - Folly (= 2020.01.13.00)
+ - glog
+ - React-callinvoker (= 0.63.4)
+ - React-Core (= 0.63.4)
+ - React-cxxreact (= 0.63.4)
+ - React-jsi (= 0.63.4)
+ - RNCPicker (1.16.8):
+ - React-Core
+ - Yoga (1.14.0)
+
+DEPENDENCIES:
+ - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
+ - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
+ - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
+ - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
+ - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
+ - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
+ - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
+ - React (from `../node_modules/react-native/`)
+ - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
+ - React-Core (from `../node_modules/react-native/`)
+ - React-Core/DevSupport (from `../node_modules/react-native/`)
+ - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
+ - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
+ - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
+ - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
+ - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
+ - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
+ - react-native-video (from `../node_modules/react-native-video`)
+ - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
+ - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
+ - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
+ - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
+ - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
+ - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
+ - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
+ - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
+ - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
+ - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
+ - "RNCPicker (from `../node_modules/@react-native-picker/picker`)"
+ - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
+
+SPEC REPOS:
+ trunk:
+ - boost-for-react-native
+ - PromisesObjC
+ - PromisesSwift
+
+EXTERNAL SOURCES:
+ DoubleConversion:
+ :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
+ FBLazyVector:
+ :path: "../node_modules/react-native/Libraries/FBLazyVector"
+ FBReactNativeSpec:
+ :path: "../node_modules/react-native/Libraries/FBReactNativeSpec"
+ Folly:
+ :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
+ glog:
+ :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
+ RCTRequired:
+ :path: "../node_modules/react-native/Libraries/RCTRequired"
+ RCTTypeSafety:
+ :path: "../node_modules/react-native/Libraries/TypeSafety"
+ React:
+ :path: "../node_modules/react-native/"
+ React-callinvoker:
+ :path: "../node_modules/react-native/ReactCommon/callinvoker"
+ React-Core:
+ :path: "../node_modules/react-native/"
+ React-CoreModules:
+ :path: "../node_modules/react-native/React/CoreModules"
+ React-cxxreact:
+ :path: "../node_modules/react-native/ReactCommon/cxxreact"
+ React-jsi:
+ :path: "../node_modules/react-native/ReactCommon/jsi"
+ React-jsiexecutor:
+ :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
+ React-jsinspector:
+ :path: "../node_modules/react-native/ReactCommon/jsinspector"
+ react-native-video:
+ :path: "../node_modules/react-native-video"
+ React-RCTActionSheet:
+ :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
+ React-RCTAnimation:
+ :path: "../node_modules/react-native/Libraries/NativeAnimation"
+ React-RCTBlob:
+ :path: "../node_modules/react-native/Libraries/Blob"
+ React-RCTImage:
+ :path: "../node_modules/react-native/Libraries/Image"
+ React-RCTLinking:
+ :path: "../node_modules/react-native/Libraries/LinkingIOS"
+ React-RCTNetwork:
+ :path: "../node_modules/react-native/Libraries/Network"
+ React-RCTSettings:
+ :path: "../node_modules/react-native/Libraries/Settings"
+ React-RCTText:
+ :path: "../node_modules/react-native/Libraries/Text"
+ React-RCTVibration:
+ :path: "../node_modules/react-native/Libraries/Vibration"
+ ReactCommon:
+ :path: "../node_modules/react-native/ReactCommon"
+ RNCPicker:
+ :path: "../node_modules/@react-native-picker/picker"
+ Yoga:
+ :path: "../node_modules/react-native/ReactCommon/yoga"
+
+SPEC CHECKSUMS:
+ boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
+ DoubleConversion: cde416483dac037923206447da6e1454df403714
+ FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e
+ FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e
+ Folly: b73c3869541e86821df3c387eb0af5f65addfab4
+ glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
+ PromisesObjC: 68159ce6952d93e17b2dfe273b8c40907db5ba58
+ PromisesSwift: e0b2a6433469efb0b83a2b84c62a2abab8e5e5d4
+ RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e
+ RCTTypeSafety: 8c9c544ecbf20337d069e4ae7fd9a377aadf504b
+ React: b0a957a2c44da4113b0c4c9853d8387f8e64e615
+ React-callinvoker: c3f44dd3cb195b6aa46621fff95ded79d59043fe
+ React-Core: d3b2a1ac9a2c13c3bcde712d9281fc1c8a5b315b
+ React-CoreModules: 0581ff36cb797da0943d424f69e7098e43e9be60
+ React-cxxreact: c1480d4fda5720086c90df537ee7d285d4c57ac3
+ React-jsi: a0418934cf48f25b485631deb27c64dc40fb4c31
+ React-jsiexecutor: 93bd528844ad21dc07aab1c67cb10abae6df6949
+ React-jsinspector: 58aef7155bc9a9683f5b60b35eccea8722a4f53a
+ react-native-video: 7ce6d16e47b8a6a1ccdc5d9f4f3ce50e42acaf3b
+ React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336
+ React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b
+ React-RCTBlob: a97d378b527740cc667e03ebfa183a75231ab0f0
+ React-RCTImage: c1b1f2d3f43a4a528c8946d6092384b5c880d2f0
+ React-RCTLinking: 35ae4ab9dc0410d1fcbdce4d7623194a27214fb2
+ React-RCTNetwork: 29ec2696f8d8cfff7331fac83d3e893c95ef43ae
+ React-RCTSettings: 60f0691bba2074ef394f95d4c2265ec284e0a46a
+ React-RCTText: 5c51df3f08cb9dedc6e790161195d12bac06101c
+ React-RCTVibration: ae4f914cfe8de7d4de95ae1ea6cc8f6315d73d9d
+ ReactCommon: 73d79c7039f473b76db6ff7c6b159c478acbbb3b
+ RNCPicker: 0991c56da7815c0cf946d6f63cf920b25296e5f6
+ Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6
+
+PODFILE CHECKSUM: 51ba394e28c02b1e60e7686b5b2926921af36c49
+
+COCOAPODS: 1.11.2
diff --git a/examples/basic/ios/VideoPlayer-Bridging-Header.h b/examples/basic/ios/VideoPlayer-Bridging-Header.h
new file mode 100644
index 00000000..df4d15b2
--- /dev/null
+++ b/examples/basic/ios/VideoPlayer-Bridging-Header.h
@@ -0,0 +1,12 @@
+//
+// VideoPlayer-Bridging-Header.h
+// VideoPlayer
+//
+// Created by nick fujita on 2/1/22.
+//
+
+#ifndef VideoPlayer_Bridging_Header_h
+#define VideoPlayer_Bridging_Header_h
+
+
+#endif /* VideoPlayer_Bridging_Header_h */
diff --git a/examples/basic/ios/VideoPlayer-tvOS.plist b/examples/basic/ios/VideoPlayer-tvOS/Info.plist
similarity index 100%
rename from examples/basic/ios/VideoPlayer-tvOS.plist
rename to examples/basic/ios/VideoPlayer-tvOS/Info.plist
diff --git a/examples/basic/ios/VideoPlayer-tvOSTests/Info.plist b/examples/basic/ios/VideoPlayer-tvOSTests/Info.plist
new file mode 100644
index 00000000..ba72822e
--- /dev/null
+++ b/examples/basic/ios/VideoPlayer-tvOSTests/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+
+
diff --git a/examples/basic/ios/VideoPlayer.xcodeproj/project.pbxproj b/examples/basic/ios/VideoPlayer.xcodeproj/project.pbxproj
index db5f9a39..3baa0b3e 100644
--- a/examples/basic/ios/VideoPlayer.xcodeproj/project.pbxproj
+++ b/examples/basic/ios/VideoPlayer.xcodeproj/project.pbxproj
@@ -7,422 +7,122 @@
objects = {
/* Begin PBXBuildFile section */
- 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
- 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
- 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; };
- 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
- 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
- 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
- 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
- 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; };
+ 00E356F31AD99517003FC87E /* VideoPlayerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* VideoPlayerTests.m */; };
+ 012C5B8A27A9666F00485309 /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 012C5B8927A9666F00485309 /* File.swift */; };
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
- 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
- 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
- 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
- 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
- 8C2A0F841E2560A100E31596 /* libRCTVideo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C2A0F791E25608300E31596 /* libRCTVideo.a */; };
- FA3566AB216D5D7000E01ABD /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; };
- FA3566AC216D5D7000E01ABD /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; };
- FA3566AD216D5D7000E01ABD /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; };
- FA3566AE216D5D7000E01ABD /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; };
- FA3566AF216D5D7000E01ABD /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; };
- FA3566B0216D5D7000E01ABD /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; };
- FA3566C8216D5DA900E01ABD /* libRCTVideo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D1107C542111145500073188 /* libRCTVideo.a */; };
- FA8681B8216D5C6D0010C92A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
- FA8681B9216D5C6D0010C92A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
- FA8681C8216D5C6D0010C92A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
- FA8B47A5216D777200AB07CF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
+ 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
+ 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
+ 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
+ 2DCD954D1E0B4F2C00145EB5 /* VideoPlayerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* VideoPlayerTests.m */; };
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
+ 9B1EFF602197E16686E1242F /* Pods_VideoPlayer_tvOSTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45CE330CC5286CFD45768CB3 /* Pods_VideoPlayer_tvOSTests.framework */; };
+ 9B5D5E89D2011E17AA5A1D01 /* Pods_VideoPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C39F265DD4E235203DD4B55 /* Pods_VideoPlayer.framework */; };
+ A7D1647E3B839F0605443BE6 /* Pods_VideoPlayer_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 500B6A1A28D58CB3AF579C6F /* Pods_VideoPlayer_tvOS.framework */; };
+ AA06571A8A30E4C38646C7C9 /* Pods_VideoPlayer_VideoPlayerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B828D82CDB8A42C60BF2BFA /* Pods_VideoPlayer_VideoPlayerTests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = {
+ 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
- containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 134814201AA4EA6300B7C361;
- remoteInfo = RCTActionSheet;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
+ remoteInfo = VideoPlayer;
};
- 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = {
+ 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
- containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 134814201AA4EA6300B7C361;
- remoteInfo = RCTGeolocation;
- };
- 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 58B5115D1A9E6B3D00147676;
- remoteInfo = RCTImage;
- };
- 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 58B511DB1A9E6C8500147676;
- remoteInfo = RCTNetwork;
- };
- 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 832C81801AAF6DEF007FA2F7;
- remoteInfo = RCTVibration;
- };
- 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 134814201AA4EA6300B7C361;
- remoteInfo = RCTSettings;
- };
- 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3C86DF461ADF2C930047B81A;
- remoteInfo = RCTWebSocket;
- };
- 146834031AC3E56700842450 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192;
- remoteInfo = React;
- };
- 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 2D2A283A1D9B042B00D4039D;
- remoteInfo = "RCTImage-tvOS";
- };
- 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 2D2A28471D9B043800D4039D;
- remoteInfo = "RCTLinking-tvOS";
- };
- 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 2D2A28541D9B044C00D4039D;
- remoteInfo = "RCTNetwork-tvOS";
- };
- 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 2D2A28611D9B046600D4039D;
- remoteInfo = "RCTSettings-tvOS";
- };
- 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 2D2A287B1D9B048500D4039D;
- remoteInfo = "RCTText-tvOS";
- };
- 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 2D2A28881D9B049200D4039D;
- remoteInfo = "RCTWebSocket-tvOS";
- };
- 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 2D2A28131D9B038B00D4039D;
- remoteInfo = "React-tvOS";
- };
- 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3D3C059A1DE3340900C268FA;
- remoteInfo = yoga;
- };
- 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3D3C06751DE3340C00C268FA;
- remoteInfo = "yoga-tvOS";
- };
- 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4;
- remoteInfo = cxxreact;
- };
- 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4;
- remoteInfo = "cxxreact-tvOS";
- };
- 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4;
- remoteInfo = jschelpers;
- };
- 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4;
- remoteInfo = "jschelpers-tvOS";
- };
- 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 134814201AA4EA6300B7C361;
- remoteInfo = RCTAnimation;
- };
- 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 2D2A28201D9B03D100D4039D;
- remoteInfo = "RCTAnimation-tvOS";
- };
- 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 134814201AA4EA6300B7C361;
- remoteInfo = RCTLinking;
- };
- 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 58B5119B1A9E6C1200147676;
- remoteInfo = RCTText;
- };
- 8C2A0F781E25608300E31596 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 134814201AA4EA6300B7C361;
- remoteInfo = RCTVideo;
- };
- D1107C532111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 641E28441F0EEC8500443AF6;
- remoteInfo = "RCTVideo-tvOS";
- };
- D1107C592111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3DBE0D001F3B181A0099AA32;
- remoteInfo = fishhook;
- };
- D1107C5B2111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32;
- remoteInfo = "fishhook-tvOS";
- };
- D1107C6D2111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = EBF21BDC1FC498900052F4D5;
- remoteInfo = jsinspector;
- };
- D1107C6F2111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = EBF21BFA1FC4989A0052F4D5;
- remoteInfo = "jsinspector-tvOS";
- };
- D1107C712111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7;
- remoteInfo = "third-party";
- };
- D1107C732111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3D383D3C1EBD27B6005632C8;
- remoteInfo = "third-party-tvOS";
- };
- D1107C752111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 139D7E881E25C6D100323FB7;
- remoteInfo = "double-conversion";
- };
- D1107C772111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 3D383D621EBD27B9005632C8;
- remoteInfo = "double-conversion-tvOS";
- };
- D1107C792111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 9936F3131F5F2E4B0010BF04;
- remoteInfo = privatedata;
- };
- D1107C7B2111145500073188 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04;
- remoteInfo = "privatedata-tvOS";
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7;
+ remoteInfo = "VideoPlayer-tvOS";
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; };
- 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; };
- 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; };
- 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; };
- 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; };
- 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; };
- 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; };
- 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; };
+ 00E356EE1AD99517003FC87E /* VideoPlayerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VideoPlayerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 00E356F21AD99517003FC87E /* VideoPlayerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VideoPlayerTests.m; sourceTree = ""; };
+ 012C5B8927A9666F00485309 /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = File.swift; path = VideoPlayer/File.swift; sourceTree = ""; };
+ 012C5B8B27A966CF00485309 /* VideoPlayer-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "VideoPlayer-Bridging-Header.h"; sourceTree = ""; };
+ 0F08E874CF32137C5FEA7CD3 /* Pods-VideoPlayer-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VideoPlayer-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-VideoPlayer-tvOSTests/Pods-VideoPlayer-tvOSTests.release.xcconfig"; sourceTree = ""; };
13B07F961A680F5B00A75B9A /* VideoPlayer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VideoPlayer.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = VideoPlayer/AppDelegate.h; sourceTree = ""; };
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = VideoPlayer/AppDelegate.m; sourceTree = ""; };
- 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = VideoPlayer/Images.xcassets; sourceTree = ""; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = VideoPlayer/Info.plist; sourceTree = ""; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = VideoPlayer/main.m; sourceTree = ""; };
- 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; };
- 39CBB10045CEBFA9BBB9645E /* libPods-VideoPlayer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VideoPlayer.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; };
- 627363E07276C06249D7CEBF /* libPods-VideoPlayer-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VideoPlayer-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; };
- 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; };
- 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVideo.xcodeproj; path = "../node_modules/react-native-video/ios/RCTVideo.xcodeproj"; sourceTree = ""; };
- FA8681CE216D5C6D0010C92A /* VideoPlayer-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VideoPlayer-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
- FA8681D0216D5C6E0010C92A /* VideoPlayer-tvOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "VideoPlayer-tvOS.plist"; path = "/Users/amishra/Development/react-native-video-nfb/examples/basic/ios/VideoPlayer-tvOS.plist"; sourceTree = ""; };
+ 14F94A5638163C887577920D /* Pods-VideoPlayer-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VideoPlayer-tvOS.release.xcconfig"; path = "Target Support Files/Pods-VideoPlayer-tvOS/Pods-VideoPlayer-tvOS.release.xcconfig"; sourceTree = ""; };
+ 1B6B0FDCD3A9A8AC30563711 /* Pods-VideoPlayer-VideoPlayerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VideoPlayer-VideoPlayerTests.release.xcconfig"; path = "Target Support Files/Pods-VideoPlayer-VideoPlayerTests/Pods-VideoPlayer-VideoPlayerTests.release.xcconfig"; sourceTree = ""; };
+ 2C39F265DD4E235203DD4B55 /* Pods_VideoPlayer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VideoPlayer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2D02E47B1E0B4A5D006451C7 /* VideoPlayer-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VideoPlayer-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2D02E4901E0B4A5D006451C7 /* VideoPlayer-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "VideoPlayer-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 45CE330CC5286CFD45768CB3 /* Pods_VideoPlayer_tvOSTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VideoPlayer_tvOSTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 500B6A1A28D58CB3AF579C6F /* Pods_VideoPlayer_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VideoPlayer_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 5933B738F6C2A0A8C1CC0234 /* Pods-VideoPlayer-VideoPlayerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VideoPlayer-VideoPlayerTests.debug.xcconfig"; path = "Target Support Files/Pods-VideoPlayer-VideoPlayerTests/Pods-VideoPlayer-VideoPlayerTests.debug.xcconfig"; sourceTree = ""; };
+ 5B828D82CDB8A42C60BF2BFA /* Pods_VideoPlayer_VideoPlayerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VideoPlayer_VideoPlayerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 72ECC70C444201AEE7C9332F /* Pods-VideoPlayer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VideoPlayer.debug.xcconfig"; path = "Target Support Files/Pods-VideoPlayer/Pods-VideoPlayer.debug.xcconfig"; sourceTree = ""; };
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = VideoPlayer/LaunchScreen.storyboard; sourceTree = ""; };
+ 960F0735700C97E215D22AD0 /* Pods-VideoPlayer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VideoPlayer.release.xcconfig"; path = "Target Support Files/Pods-VideoPlayer/Pods-VideoPlayer.release.xcconfig"; sourceTree = ""; };
+ CEA7B85E17314C1BE0F74AE7 /* Pods-VideoPlayer-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VideoPlayer-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-VideoPlayer-tvOS/Pods-VideoPlayer-tvOS.debug.xcconfig"; sourceTree = ""; };
+ E048F2A1D012F1BB4C6925E8 /* Pods-VideoPlayer-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VideoPlayer-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-VideoPlayer-tvOSTests/Pods-VideoPlayer-tvOSTests.debug.xcconfig"; sourceTree = ""; };
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
+ ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 00E356EB1AD99517003FC87E /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ AA06571A8A30E4C38646C7C9 /* Pods_VideoPlayer_VideoPlayerTests.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 146834051AC3E58100842450 /* libReact.a in Frameworks */,
- 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */,
- 8C2A0F841E2560A100E31596 /* libRCTVideo.a in Frameworks */,
- 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
- 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
- 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */,
- 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */,
- 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */,
- 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */,
- 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
- 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
- 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
+ 9B5D5E89D2011E17AA5A1D01 /* Pods_VideoPlayer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- FA8681BA216D5C6D0010C92A /* Frameworks */ = {
+ 2D02E4781E0B4A5D006451C7 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- FA8B47A5216D777200AB07CF /* libReact.a in Frameworks */,
- FA3566AB216D5D7000E01ABD /* libRCTImage-tvOS.a in Frameworks */,
- FA3566AC216D5D7000E01ABD /* libRCTLinking-tvOS.a in Frameworks */,
- FA3566AD216D5D7000E01ABD /* libRCTNetwork-tvOS.a in Frameworks */,
- FA3566AE216D5D7000E01ABD /* libRCTSettings-tvOS.a in Frameworks */,
- FA3566AF216D5D7000E01ABD /* libRCTText-tvOS.a in Frameworks */,
- FA3566B0216D5D7000E01ABD /* libRCTWebSocket-tvOS.a in Frameworks */,
- FA3566C8216D5DA900E01ABD /* libRCTVideo.a in Frameworks */,
+ A7D1647E3B839F0605443BE6 /* Pods_VideoPlayer_tvOS.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 9B1EFF602197E16686E1242F /* Pods_VideoPlayer_tvOSTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 00C302A81ABCB8CE00DB3ED1 /* Products */ = {
+ 00E356EF1AD99517003FC87E /* VideoPlayerTests */ = {
isa = PBXGroup;
children = (
- 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */,
+ 00E356F21AD99517003FC87E /* VideoPlayerTests.m */,
+ 00E356F01AD99517003FC87E /* Supporting Files */,
);
- name = Products;
+ path = VideoPlayerTests;
sourceTree = "";
};
- 00C302B61ABCB90400DB3ED1 /* Products */ = {
+ 00E356F01AD99517003FC87E /* Supporting Files */ = {
isa = PBXGroup;
children = (
- 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */,
+ 00E356F11AD99517003FC87E /* Info.plist */,
);
- name = Products;
- sourceTree = "";
- };
- 00C302BC1ABCB91800DB3ED1 /* Products */ = {
- isa = PBXGroup;
- children = (
- 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */,
- 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */,
- );
- name = Products;
- sourceTree = "";
- };
- 00C302D41ABCB9D200DB3ED1 /* Products */ = {
- isa = PBXGroup;
- children = (
- 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */,
- 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */,
- );
- name = Products;
- sourceTree = "";
- };
- 00C302E01ABCB9EE00DB3ED1 /* Products */ = {
- isa = PBXGroup;
- children = (
- 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */,
- );
- name = Products;
- sourceTree = "";
- };
- 139105B71AF99BAD00B5F7CC /* Products */ = {
- isa = PBXGroup;
- children = (
- 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */,
- 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */,
- );
- name = Products;
- sourceTree = "";
- };
- 139FDEE71B06529A00C62182 /* Products */ = {
- isa = PBXGroup;
- children = (
- 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */,
- 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */,
- D1107C5A2111145500073188 /* libfishhook.a */,
- D1107C5C2111145500073188 /* libfishhook-tvOS.a */,
- );
- name = Products;
+ name = "Supporting Files";
sourceTree = "";
};
13B07FAE1A68108700A75B9A /* VideoPlayer */ = {
@@ -431,182 +131,192 @@
008F07F21AC5B25A0029DE68 /* main.jsbundle */,
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
13B07FB01A68108700A75B9A /* AppDelegate.m */,
+ 012C5B8927A9666F00485309 /* File.swift */,
+ 012C5B8B27A966CF00485309 /* VideoPlayer-Bridging-Header.h */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
- 13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
13B07FB71A68108700A75B9A /* main.m */,
);
name = VideoPlayer;
sourceTree = "";
};
- 146834001AC3E56700842450 /* Products */ = {
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup;
children = (
- 146834041AC3E56700842450 /* libReact.a */,
- 3DAD3EA31DF850E9000B6D8A /* libReact.a */,
- 3DAD3EA51DF850E9000B6D8A /* libyoga.a */,
- 3DAD3EA71DF850E9000B6D8A /* libyoga.a */,
- 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */,
- 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */,
- 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */,
- 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */,
- D1107C6E2111145500073188 /* libjsinspector.a */,
- D1107C702111145500073188 /* libjsinspector-tvOS.a */,
- D1107C722111145500073188 /* libthird-party.a */,
- D1107C742111145500073188 /* libthird-party.a */,
- D1107C762111145500073188 /* libdouble-conversion.a */,
- D1107C782111145500073188 /* libdouble-conversion.a */,
- D1107C7A2111145500073188 /* libprivatedata.a */,
- D1107C7C2111145500073188 /* libprivatedata-tvOS.a */,
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
+ ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
+ 2C39F265DD4E235203DD4B55 /* Pods_VideoPlayer.framework */,
+ 5B828D82CDB8A42C60BF2BFA /* Pods_VideoPlayer_VideoPlayerTests.framework */,
+ 500B6A1A28D58CB3AF579C6F /* Pods_VideoPlayer_tvOS.framework */,
+ 45CE330CC5286CFD45768CB3 /* Pods_VideoPlayer_tvOSTests.framework */,
);
- name = Products;
- sourceTree = "";
- };
- 5E91572E1DD0AC6500FF2AA8 /* Products */ = {
- isa = PBXGroup;
- children = (
- 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */,
- 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */,
- );
- name = Products;
- sourceTree = "";
- };
- 78C398B11ACF4ADC00677621 /* Products */ = {
- isa = PBXGroup;
- children = (
- 78C398B91ACF4ADC00677621 /* libRCTLinking.a */,
- 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */,
- );
- name = Products;
+ name = Frameworks;
sourceTree = "";
};
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
isa = PBXGroup;
children = (
- 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */,
- 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */,
- 146833FF1AC3E56700842450 /* React.xcodeproj */,
- 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
- 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */,
- 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */,
- 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */,
- 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */,
- 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */,
- 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
- 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
- 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
);
name = Libraries;
sourceTree = "";
};
- 832341B11AAA6A8300B99B32 /* Products */ = {
- isa = PBXGroup;
- children = (
- 832341B51AAA6A8300B99B32 /* libRCTText.a */,
- 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */,
- );
- name = Products;
- sourceTree = "";
- };
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
- FA8681CF216D5C6D0010C92A /* Resources-iPad */,
13B07FAE1A68108700A75B9A /* VideoPlayer */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
+ 00E356EF1AD99517003FC87E /* VideoPlayerTests */,
83CBBA001A601CBA00E9B192 /* Products */,
- FA35669C216D5D7000E01ABD /* Frameworks */,
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */,
+ B09E1827D988A8F7B7FABCD7 /* Pods */,
);
indentWidth = 2;
sourceTree = "";
tabWidth = 2;
+ usesTabs = 0;
};
83CBBA001A601CBA00E9B192 /* Products */ = {
isa = PBXGroup;
children = (
13B07F961A680F5B00A75B9A /* VideoPlayer.app */,
- FA8681CE216D5C6D0010C92A /* VideoPlayer-tvOS.app */,
+ 00E356EE1AD99517003FC87E /* VideoPlayerTests.xctest */,
+ 2D02E47B1E0B4A5D006451C7 /* VideoPlayer-tvOS.app */,
+ 2D02E4901E0B4A5D006451C7 /* VideoPlayer-tvOSTests.xctest */,
);
name = Products;
sourceTree = "";
};
- 8C2A0F661E25608300E31596 /* Products */ = {
+ B09E1827D988A8F7B7FABCD7 /* Pods */ = {
isa = PBXGroup;
children = (
- 8C2A0F791E25608300E31596 /* libRCTVideo.a */,
- D1107C542111145500073188 /* libRCTVideo.a */,
+ 72ECC70C444201AEE7C9332F /* Pods-VideoPlayer.debug.xcconfig */,
+ 960F0735700C97E215D22AD0 /* Pods-VideoPlayer.release.xcconfig */,
+ 5933B738F6C2A0A8C1CC0234 /* Pods-VideoPlayer-VideoPlayerTests.debug.xcconfig */,
+ 1B6B0FDCD3A9A8AC30563711 /* Pods-VideoPlayer-VideoPlayerTests.release.xcconfig */,
+ CEA7B85E17314C1BE0F74AE7 /* Pods-VideoPlayer-tvOS.debug.xcconfig */,
+ 14F94A5638163C887577920D /* Pods-VideoPlayer-tvOS.release.xcconfig */,
+ E048F2A1D012F1BB4C6925E8 /* Pods-VideoPlayer-tvOSTests.debug.xcconfig */,
+ 0F08E874CF32137C5FEA7CD3 /* Pods-VideoPlayer-tvOSTests.release.xcconfig */,
);
- name = Products;
- sourceTree = "";
- };
- FA35669C216D5D7000E01ABD /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 39CBB10045CEBFA9BBB9645E /* libPods-VideoPlayer.a */,
- 627363E07276C06249D7CEBF /* libPods-VideoPlayer-tvOS.a */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- FA8681CF216D5C6D0010C92A /* Resources-iPad */ = {
- isa = PBXGroup;
- children = (
- FA8681D0216D5C6E0010C92A /* VideoPlayer-tvOS.plist */,
- );
- name = "Resources-iPad";
+ path = Pods;
sourceTree = "";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
+ 00E356ED1AD99517003FC87E /* VideoPlayerTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "VideoPlayerTests" */;
+ buildPhases = (
+ 664B3F472CE9752E13793E66 /* [CP] Check Pods Manifest.lock */,
+ 00E356EA1AD99517003FC87E /* Sources */,
+ 00E356EB1AD99517003FC87E /* Frameworks */,
+ 00E356EC1AD99517003FC87E /* Resources */,
+ 9930F79A083DBC2465E15F7C /* [CP] Copy Pods Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 00E356F51AD99517003FC87E /* PBXTargetDependency */,
+ );
+ name = VideoPlayerTests;
+ productName = VideoPlayerTests;
+ productReference = 00E356EE1AD99517003FC87E /* VideoPlayerTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
13B07F861A680F5B00A75B9A /* VideoPlayer */ = {
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "VideoPlayer" */;
buildPhases = (
+ C727CDFD7820FD2B492BFCE2 /* [CP] Check Pods Manifest.lock */,
+ FD10A7F022414F080027D42C /* Start Packager */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
+ 617FE7057887EE750FF2A943 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = VideoPlayer;
- productName = "Hello World";
+ productName = VideoPlayer;
productReference = 13B07F961A680F5B00A75B9A /* VideoPlayer.app */;
productType = "com.apple.product-type.application";
};
- FA8681B6216D5C6D0010C92A /* VideoPlayer-tvOS */ = {
+ 2D02E47A1E0B4A5D006451C7 /* VideoPlayer-tvOS */ = {
isa = PBXNativeTarget;
- buildConfigurationList = FA8681CB216D5C6D0010C92A /* Build configuration list for PBXNativeTarget "VideoPlayer-tvOS" */;
+ buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "VideoPlayer-tvOS" */;
buildPhases = (
- FA8681B7216D5C6D0010C92A /* Sources */,
- FA8681BA216D5C6D0010C92A /* Frameworks */,
- FA8681C7216D5C6D0010C92A /* Resources */,
- FA8681CA216D5C6D0010C92A /* Bundle React Native code and images */,
+ 65451BD1F0D11FF4A48FC837 /* [CP] Check Pods Manifest.lock */,
+ FD10A7F122414F3F0027D42C /* Start Packager */,
+ 2D02E4771E0B4A5D006451C7 /* Sources */,
+ 2D02E4781E0B4A5D006451C7 /* Frameworks */,
+ 2D02E4791E0B4A5D006451C7 /* Resources */,
+ 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */,
);
buildRules = (
);
dependencies = (
);
name = "VideoPlayer-tvOS";
- productName = "Hello World";
- productReference = FA8681CE216D5C6D0010C92A /* VideoPlayer-tvOS.app */;
+ productName = "VideoPlayer-tvOS";
+ productReference = 2D02E47B1E0B4A5D006451C7 /* VideoPlayer-tvOS.app */;
productType = "com.apple.product-type.application";
};
+ 2D02E48F1E0B4A5D006451C7 /* VideoPlayer-tvOSTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "VideoPlayer-tvOSTests" */;
+ buildPhases = (
+ E1CD132A3DDBBC2FFC81826F /* [CP] Check Pods Manifest.lock */,
+ 2D02E48C1E0B4A5D006451C7 /* Sources */,
+ 2D02E48D1E0B4A5D006451C7 /* Frameworks */,
+ 2D02E48E1E0B4A5D006451C7 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */,
+ );
+ name = "VideoPlayer-tvOSTests";
+ productName = "VideoPlayer-tvOSTests";
+ productReference = 2D02E4901E0B4A5D006451C7 /* VideoPlayer-tvOSTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
83CBB9F71A601CBA00E9B192 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0610;
- ORGANIZATIONNAME = Facebook;
+ LastUpgradeCheck = 1130;
+ TargetAttributes = {
+ 00E356ED1AD99517003FC87E = {
+ CreatedOnToolsVersion = 6.2;
+ LastSwiftMigration = 1310;
+ TestTargetID = 13B07F861A680F5B00A75B9A;
+ };
+ 13B07F861A680F5B00A75B9A = {
+ LastSwiftMigration = 1310;
+ };
+ 2D02E47A1E0B4A5D006451C7 = {
+ CreatedOnToolsVersion = 8.2.1;
+ LastSwiftMigration = 1310;
+ ProvisioningStyle = Automatic;
+ };
+ 2D02E48F1E0B4A5D006451C7 = {
+ CreatedOnToolsVersion = 8.2.1;
+ LastSwiftMigration = 1310;
+ ProvisioningStyle = Automatic;
+ TestTargetID = 2D02E47A1E0B4A5D006451C7;
+ };
+ };
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "VideoPlayer" */;
compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
+ developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
@@ -615,341 +325,45 @@
mainGroup = 83CBB9F61A601CBA00E9B192;
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */;
- ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
- },
- {
- ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */;
- ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
- },
- {
- ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */;
- ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
- },
- {
- ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */;
- ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
- },
- {
- ProductGroup = 78C398B11ACF4ADC00677621 /* Products */;
- ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
- },
- {
- ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */;
- ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
- },
- {
- ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */;
- ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
- },
- {
- ProductGroup = 832341B11AAA6A8300B99B32 /* Products */;
- ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
- },
- {
- ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */;
- ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */;
- },
- {
- ProductGroup = 8C2A0F661E25608300E31596 /* Products */;
- ProjectRef = 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */;
- },
- {
- ProductGroup = 139FDEE71B06529A00C62182 /* Products */;
- ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
- },
- {
- ProductGroup = 146834001AC3E56700842450 /* Products */;
- ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
- },
- );
projectRoot = "";
targets = (
13B07F861A680F5B00A75B9A /* VideoPlayer */,
- FA8681B6216D5C6D0010C92A /* VideoPlayer-tvOS */,
+ 00E356ED1AD99517003FC87E /* VideoPlayerTests */,
+ 2D02E47A1E0B4A5D006451C7 /* VideoPlayer-tvOS */,
+ 2D02E48F1E0B4A5D006451C7 /* VideoPlayer-tvOSTests */,
);
};
/* End PBXProject section */
-/* Begin PBXReferenceProxy section */
- 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTActionSheet.a;
- remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTGeolocation.a;
- remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTImage.a;
- remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTNetwork.a;
- remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTVibration.a;
- remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTSettings.a;
- remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTWebSocket.a;
- remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 146834041AC3E56700842450 /* libReact.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libReact.a;
- remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libRCTImage-tvOS.a";
- remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libRCTLinking-tvOS.a";
- remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libRCTNetwork-tvOS.a";
- remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libRCTSettings-tvOS.a";
- remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libRCTText-tvOS.a";
- remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libRCTWebSocket-tvOS.a";
- remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libReact.a;
- remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libyoga.a;
- remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libyoga.a;
- remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libcxxreact.a;
- remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libcxxreact.a;
- remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libjschelpers.a;
- remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libjschelpers.a;
- remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTAnimation.a;
- remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTAnimation.a;
- remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTLinking.a;
- remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 832341B51AAA6A8300B99B32 /* libRCTText.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTText.a;
- remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 8C2A0F791E25608300E31596 /* libRCTVideo.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTVideo.a;
- remoteRef = 8C2A0F781E25608300E31596 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C542111145500073188 /* libRCTVideo.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libRCTVideo.a;
- remoteRef = D1107C532111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C5A2111145500073188 /* libfishhook.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libfishhook.a;
- remoteRef = D1107C592111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C5C2111145500073188 /* libfishhook-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libfishhook-tvOS.a";
- remoteRef = D1107C5B2111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C6E2111145500073188 /* libjsinspector.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libjsinspector.a;
- remoteRef = D1107C6D2111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C702111145500073188 /* libjsinspector-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libjsinspector-tvOS.a";
- remoteRef = D1107C6F2111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C722111145500073188 /* libthird-party.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libthird-party.a";
- remoteRef = D1107C712111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C742111145500073188 /* libthird-party.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libthird-party.a";
- remoteRef = D1107C732111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C762111145500073188 /* libdouble-conversion.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libdouble-conversion.a";
- remoteRef = D1107C752111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C782111145500073188 /* libdouble-conversion.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libdouble-conversion.a";
- remoteRef = D1107C772111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C7A2111145500073188 /* libprivatedata.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libprivatedata.a;
- remoteRef = D1107C792111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- D1107C7C2111145500073188 /* libprivatedata-tvOS.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libprivatedata-tvOS.a";
- remoteRef = D1107C7B2111145500073188 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
/* Begin PBXResourcesBuildPhase section */
+ 00E356EC1AD99517003FC87E /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
13B07F8E1A680F5B00A75B9A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
- 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- FA8681C7216D5C6D0010C92A /* Resources */ = {
+ 2D02E4791E0B4A5D006451C7 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 2D02E48E1E0B4A5D006451C7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- FA8681C8216D5C6D0010C92A /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -968,65 +382,298 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
+ shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
};
- FA8681CA216D5C6D0010C92A /* Bundle React Native code and images */ = {
+ 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
- name = "Bundle React Native code and images";
+ name = "Bundle React Native Code And Images";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
+ shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
+ };
+ 617FE7057887EE750FF2A943 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-VideoPlayer/Pods-VideoPlayer-resources.sh",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-VideoPlayer/Pods-VideoPlayer-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 65451BD1F0D11FF4A48FC837 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-VideoPlayer-tvOS-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 664B3F472CE9752E13793E66 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-VideoPlayer-VideoPlayerTests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 9930F79A083DBC2465E15F7C /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-VideoPlayer-VideoPlayerTests/Pods-VideoPlayer-VideoPlayerTests-resources.sh",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-VideoPlayer-VideoPlayerTests/Pods-VideoPlayer-VideoPlayerTests-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ C727CDFD7820FD2B492BFCE2 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-VideoPlayer-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ E1CD132A3DDBBC2FFC81826F /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-VideoPlayer-tvOSTests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ FD10A7F022414F080027D42C /* Start Packager */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Start Packager";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
+ showEnvVarsInLog = 0;
+ };
+ FD10A7F122414F3F0027D42C /* Start Packager */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Start Packager";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
+ showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ 00E356EA1AD99517003FC87E /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 00E356F31AD99517003FC87E /* VideoPlayerTests.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
13B07F871A680F5B00A75B9A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
+ 012C5B8A27A9666F00485309 /* File.swift in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- FA8681B7216D5C6D0010C92A /* Sources */ = {
+ 2D02E4771E0B4A5D006451C7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- FA8681B8216D5C6D0010C92A /* AppDelegate.m in Sources */,
- FA8681B9216D5C6D0010C92A /* main.m in Sources */,
+ 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */,
+ 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 2D02E48C1E0B4A5D006451C7 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2DCD954D1E0B4F2C00145EB5 /* VideoPlayerTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
-/* Begin PBXVariantGroup section */
- 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = {
- isa = PBXVariantGroup;
- children = (
- 13B07FB21A68108700A75B9A /* Base */,
- );
- name = LaunchScreen.xib;
- path = VideoPlayer;
- sourceTree = "";
+/* Begin PBXTargetDependency section */
+ 00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 13B07F861A680F5B00A75B9A /* VideoPlayer */;
+ targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
};
-/* End PBXVariantGroup section */
+ 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 2D02E47A1E0B4A5D006451C7 /* VideoPlayer-tvOS */;
+ targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
+ 00E356F61AD99517003FC87E /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 5933B738F6C2A0A8C1CC0234 /* Pods-VideoPlayer-VideoPlayerTests.debug.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CLANG_ENABLE_MODULES = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ INFOPLIST_FILE = VideoPlayerTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-lc++",
+ "$(inherited)",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "VideoPlayerTests-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VideoPlayer.app/VideoPlayer";
+ };
+ name = Debug;
+ };
+ 00E356F71AD99517003FC87E /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 1B6B0FDCD3A9A8AC30563711 /* Pods-VideoPlayer-VideoPlayerTests.release.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CLANG_ENABLE_MODULES = YES;
+ COPY_PHASE_STRIP = NO;
+ INFOPLIST_FILE = VideoPlayerTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-lc++",
+ "$(inherited)",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "VideoPlayerTests-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VideoPlayer.app/VideoPlayer";
+ };
+ name = Release;
+ };
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 72ECC70C444201AEE7C9332F /* Pods-VideoPlayer.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
- DEAD_CODE_STRIPPING = NO;
- HEADER_SEARCH_PATHS = "$(inherited)";
+ ENABLE_BITCODE = NO;
INFOPLIST_FILE = VideoPlayer/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = (
@@ -1034,17 +681,22 @@
"-ObjC",
"-lc++",
);
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = VideoPlayer;
+ SWIFT_OBJC_BRIDGING_HEADER = "VideoPlayer-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 960F0735700C97E215D22AD0 /* Pods-VideoPlayer.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
- HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = VideoPlayer/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = (
@@ -1052,33 +704,173 @@
"-ObjC",
"-lc++",
);
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = VideoPlayer;
+ SWIFT_OBJC_BRIDGING_HEADER = "VideoPlayer-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
};
+ 2D02E4971E0B4A5E006451C7 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = CEA7B85E17314C1BE0F74AE7 /* Pods-VideoPlayer-tvOS.debug.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_TESTABILITY = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
+ INFOPLIST_FILE = "VideoPlayer-tvOS/Info.plist";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.VideoPlayer-tvOS";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = appletvos;
+ SWIFT_OBJC_BRIDGING_HEADER = "VideoPlayer-tvOS-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 3;
+ TVOS_DEPLOYMENT_TARGET = 10.0;
+ };
+ name = Debug;
+ };
+ 2D02E4981E0B4A5E006451C7 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 14F94A5638163C887577920D /* Pods-VideoPlayer-tvOS.release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_NO_COMMON_BLOCKS = YES;
+ INFOPLIST_FILE = "VideoPlayer-tvOS/Info.plist";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.VideoPlayer-tvOS";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = appletvos;
+ SWIFT_OBJC_BRIDGING_HEADER = "VideoPlayer-tvOS-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 3;
+ TVOS_DEPLOYMENT_TARGET = 10.0;
+ };
+ name = Release;
+ };
+ 2D02E4991E0B4A5E006451C7 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E048F2A1D012F1BB4C6925E8 /* Pods-VideoPlayer-tvOSTests.debug.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_TESTABILITY = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
+ INFOPLIST_FILE = "VideoPlayer-tvOSTests/Info.plist";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.VideoPlayer-tvOSTests";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = appletvos;
+ SWIFT_OBJC_BRIDGING_HEADER = "VideoPlayer-tvOSTests-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VideoPlayer-tvOS.app/VideoPlayer-tvOS";
+ TVOS_DEPLOYMENT_TARGET = 10.1;
+ };
+ name = Debug;
+ };
+ 2D02E49A1E0B4A5E006451C7 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 0F08E874CF32137C5FEA7CD3 /* Pods-VideoPlayer-tvOSTests.release.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_NO_COMMON_BLOCKS = YES;
+ INFOPLIST_FILE = "VideoPlayer-tvOSTests/Info.plist";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.VideoPlayer-tvOSTests";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = appletvos;
+ SWIFT_OBJC_BRIDGING_HEADER = "VideoPlayer-tvOSTests-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VideoPlayer-tvOS.app/VideoPlayer-tvOS";
+ TVOS_DEPLOYMENT_TARGET = 10.1;
+ };
+ name = Release;
+ };
83CBBA201A601CBA00E9B192 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -1091,7 +883,13 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
+ LIBRARY_SEARCH_PATHS = (
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
+ "\"$(inherited)\"",
+ );
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -1102,17 +900,28 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -1120,67 +929,38 @@
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
+ LIBRARY_SEARCH_PATHS = (
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
+ "\"$(inherited)\"",
+ );
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
- FA8681CC216D5C6D0010C92A /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CURRENT_PROJECT_VERSION = 1;
- DEAD_CODE_STRIPPING = NO;
- INFOPLIST_FILE = "VideoPlayer-tvOS.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-ObjC",
- "-lc++",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.VideoPlayer-tvOS";
- PRODUCT_NAME = "VideoPlayer-tvOS";
- SDKROOT = appletvos;
- SUPPORTED_PLATFORMS = "appletvsimulator appletvos";
- TARGETED_DEVICE_FAMILY = 3;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Debug;
- };
- FA8681CD216D5C6D0010C92A /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CURRENT_PROJECT_VERSION = 1;
- INFOPLIST_FILE = "VideoPlayer-tvOS.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-ObjC",
- "-lc++",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.VideoPlayer-tvOS";
- PRODUCT_NAME = "VideoPlayer-tvOS";
- SDKROOT = appletvos;
- SUPPORTED_PLATFORMS = "appletvsimulator appletvos";
- TARGETED_DEVICE_FAMILY = 3;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Release;
- };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "VideoPlayerTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 00E356F61AD99517003FC87E /* Debug */,
+ 00E356F71AD99517003FC87E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "VideoPlayer" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@@ -1190,6 +970,24 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "VideoPlayer-tvOS" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2D02E4971E0B4A5E006451C7 /* Debug */,
+ 2D02E4981E0B4A5E006451C7 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "VideoPlayer-tvOSTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2D02E4991E0B4A5E006451C7 /* Debug */,
+ 2D02E49A1E0B4A5E006451C7 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "VideoPlayer" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@@ -1199,15 +997,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- FA8681CB216D5C6D0010C92A /* Build configuration list for PBXNativeTarget "VideoPlayer-tvOS" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- FA8681CC216D5C6D0010C92A /* Debug */,
- FA8681CD216D5C6D0010C92A /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
/* End XCConfigurationList section */
};
rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
diff --git a/examples/basic/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer-tvOS.xcscheme b/examples/basic/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer-tvOS.xcscheme
index 75b3d2eb..d76773e3 100644
--- a/examples/basic/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer-tvOS.xcscheme
+++ b/examples/basic/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer-tvOS.xcscheme
@@ -1,9 +1,9 @@
-
-
-
-
@@ -42,18 +28,17 @@
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
+
+
+
+
-
-
-
-
-
-
-
-
diff --git a/examples/basic/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme b/examples/basic/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme
index 48a64467..ffe3e473 100644
--- a/examples/basic/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme
+++ b/examples/basic/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme
@@ -1,25 +1,11 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/basic/ios/VideoPlayer.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/basic/ios/VideoPlayer.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 00000000..18d98100
--- /dev/null
+++ b/examples/basic/ios/VideoPlayer.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/examples/basic/ios/VideoPlayer/AppDelegate.h b/examples/basic/ios/VideoPlayer/AppDelegate.h
index a9654d5e..556946d4 100644
--- a/examples/basic/ios/VideoPlayer/AppDelegate.h
+++ b/examples/basic/ios/VideoPlayer/AppDelegate.h
@@ -7,9 +7,10 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
+#import
#import
-@interface AppDelegate : UIResponder
+@interface AppDelegate : UIResponder
@property (nonatomic, strong) UIWindow *window;
diff --git a/examples/basic/ios/VideoPlayer/AppDelegate.m b/examples/basic/ios/VideoPlayer/AppDelegate.m
index 6c27cb41..9e137ec5 100644
--- a/examples/basic/ios/VideoPlayer/AppDelegate.m
+++ b/examples/basic/ios/VideoPlayer/AppDelegate.m
@@ -9,21 +9,42 @@
#import "AppDelegate.h"
+#import
#import
#import
+#ifdef FB_SONARKIT_ENABLED
+#import
+#import
+#import
+#import
+#import
+#import
+
+static void InitializeFlipper(UIApplication *application) {
+ FlipperClient *client = [FlipperClient sharedClient];
+ SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
+ [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
+ [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
+ [client addPlugin:[FlipperKitReactPlugin new]];
+ [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
+ [client start];
+}
+#endif
+
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
- NSURL *jsCodeLocation;
+#ifdef FB_SONARKIT_ENABLED
+ InitializeFlipper(application);
+#endif
- jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
+ RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
+ RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
+ moduleName:@"VideoPlayer"
+ initialProperties:nil];
- RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
- moduleName:@"VideoPlayer"
- initialProperties:nil
- launchOptions:launchOptions];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
@@ -34,4 +55,13 @@
return YES;
}
+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
+{
+#if DEBUG
+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"src/index" fallbackResource:nil];
+#else
+ return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
+#endif
+}
+
@end
diff --git a/examples/basic/ios/VideoPlayer/Base.lproj/LaunchScreen.xib b/examples/basic/ios/VideoPlayer/Base.lproj/LaunchScreen.xib
deleted file mode 100644
index 9d8b0c89..00000000
--- a/examples/basic/ios/VideoPlayer/Base.lproj/LaunchScreen.xib
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/examples/basic/ios/VideoPlayer/File.swift b/examples/basic/ios/VideoPlayer/File.swift
new file mode 100644
index 00000000..fecc4ab4
--- /dev/null
+++ b/examples/basic/ios/VideoPlayer/File.swift
@@ -0,0 +1 @@
+import Foundation
diff --git a/examples/basic/ios/VideoPlayer/Images.xcassets/Contents.json b/examples/basic/ios/VideoPlayer/Images.xcassets/Contents.json
new file mode 100644
index 00000000..2d92bd53
--- /dev/null
+++ b/examples/basic/ios/VideoPlayer/Images.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/examples/basic/ios/VideoPlayer/Info.plist b/examples/basic/ios/VideoPlayer/Info.plist
index 2fb6a11c..e2a0d716 100644
--- a/examples/basic/ios/VideoPlayer/Info.plist
+++ b/examples/basic/ios/VideoPlayer/Info.plist
@@ -4,10 +4,12 @@
CFBundleDevelopmentRegion
en
+ CFBundleDisplayName
+ VideoPlayer
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
- org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleInfoDictionaryVersion
6.0
CFBundleName
@@ -22,6 +24,21 @@
1
LSRequiresIPhoneOS
+ NSAppTransportSecurity
+
+ NSAllowsArbitraryLoads
+
+ NSExceptionDomains
+
+ localhost
+
+ NSExceptionAllowsInsecureHTTPLoads
+
+
+
+
+ NSLocationWhenInUseUsageDescription
+
UILaunchStoryboardName
LaunchScreen
UIRequiredDeviceCapabilities
@@ -36,19 +53,5 @@
UIViewControllerBasedStatusBarAppearance
- NSLocationWhenInUseUsageDescription
-
- NSAppTransportSecurity
-
-
- NSExceptionDomains
-
- localhost
-
- NSExceptionAllowsInsecureHTTPLoads
-
-
-
-
diff --git a/examples/basic/ios/VideoPlayer/LaunchScreen.storyboard b/examples/basic/ios/VideoPlayer/LaunchScreen.storyboard
new file mode 100644
index 00000000..556e4be5
--- /dev/null
+++ b/examples/basic/ios/VideoPlayer/LaunchScreen.storyboard
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/basic/ios/VideoPlayerTests/Info.plist b/examples/basic/ios/VideoPlayerTests/Info.plist
new file mode 100644
index 00000000..ba72822e
--- /dev/null
+++ b/examples/basic/ios/VideoPlayerTests/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+
+
diff --git a/examples/basic/ios/VideoPlayerTests/VideoPlayerTests.m b/examples/basic/ios/VideoPlayerTests/VideoPlayerTests.m
new file mode 100644
index 00000000..809995a9
--- /dev/null
+++ b/examples/basic/ios/VideoPlayerTests/VideoPlayerTests.m
@@ -0,0 +1,65 @@
+#import
+#import
+
+#import
+#import
+
+#define TIMEOUT_SECONDS 600
+#define TEXT_TO_LOOK_FOR @"Welcome to React"
+
+@interface VideoPlayerTests : XCTestCase
+
+@end
+
+@implementation VideoPlayerTests
+
+- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
+{
+ if (test(view)) {
+ return YES;
+ }
+ for (UIView *subview in [view subviews]) {
+ if ([self findSubviewInView:subview matching:test]) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
+- (void)testRendersWelcomeScreen
+{
+ UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
+ BOOL foundElement = NO;
+
+ __block NSString *redboxError = nil;
+#ifdef DEBUG
+ RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
+ if (level >= RCTLogLevelError) {
+ redboxError = message;
+ }
+ });
+#endif
+
+ while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
+ [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+ [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+
+ foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
+ if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
+ return YES;
+ }
+ return NO;
+ }];
+ }
+
+#ifdef DEBUG
+ RCTSetLogFunction(RCTDefaultLogFunction);
+#endif
+
+ XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
+ XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
+}
+
+
+@end
diff --git a/examples/basic/ios/main.jsbundle b/examples/basic/ios/main.jsbundle
deleted file mode 100644
index 4f50ea33..00000000
--- a/examples/basic/ios/main.jsbundle
+++ /dev/null
@@ -1,5 +0,0 @@
-// Offline JS
-// To re-generate the offline bundle, run this from root of your project
-// $ curl 'http://localhost:8081/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle
-
-throw new Error('Offline JS file is empty. See iOS/main.jsbundle for instructions');
diff --git a/examples/basic/ios/main.m b/examples/basic/ios/main.m
deleted file mode 100644
index cb502bc1..00000000
--- a/examples/basic/ios/main.m
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
-#import
-
-#import "AppDelegate.h"
-
-int main(int argc, char * argv[]) {
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
-
diff --git a/examples/basic/metro.config.js b/examples/basic/metro.config.js
index 59a9b33a..c78e7ef8 100644
--- a/examples/basic/metro.config.js
+++ b/examples/basic/metro.config.js
@@ -4,45 +4,19 @@
*
* @format
*/
-const fs = require('fs');
const path = require('path');
const blacklist = require('metro-config/src/defaults/blacklist');
-const rnPath = fs.realpathSync(
- path.resolve(require.resolve('react-native/package.json'), '..'),
-);
-const rnwPath = fs.realpathSync(
- path.resolve(require.resolve('react-native-windows/package.json'), '..'),
-);
-
module.exports = {
resolver: {
- extraNodeModules: {
- // Redirect react-native to react-native-windows
- 'react-native': rnwPath,
- 'react-native-windows': rnwPath,
- },
- // Include the macos platform in addition to the defaults because the fork includes macos, but doesn't declare it
- platforms: ['ios', 'android', 'windesktop', 'windows', 'web', 'macos'],
- // Since there are multiple copies of react-native, we need to ensure that metro only sees one of them
- // This should go in RN 0.61 when haste is removed
blacklistRE: blacklist([
- new RegExp(
- `${(path.resolve(rnPath) + path.sep).replace(/[/\\]/g, '/')}.*`,
- ),
-
// This stops "react-native run-windows" from causing the metro server to crash if its already running
new RegExp(
`${path.resolve(__dirname, 'windows').replace(/[/\\]/g, '/')}.*`,
),
- // Prevent recursive node_modules from local react-native-video
- new RegExp(
- `${path.resolve(__dirname, 'node_modules/react-native-video/node_modules').replace(/[/\\]/g, '/')}.*`,
- ),
- // Prevent recursive examples from local react-native-video
- new RegExp(
- `${path.resolve(__dirname, 'node_modules/react-native-video/examples').replace(/[/\\]/g, '/')}.*`,
- ),
+ // This prevents "react-native run-windows" from hitting: EBUSY: resource busy or locked, open msbuild.ProjectImports.zip
+ /.*\.ProjectImports\.zip/,
+ /(.*\/react-native-video\/node_modules\/.*)$/,
]),
},
transformer: {
diff --git a/examples/basic/package.json b/examples/basic/package.json
index 0b6e6292..530e822d 100644
--- a/examples/basic/package.json
+++ b/examples/basic/package.json
@@ -3,25 +3,34 @@
"version": "1.0.0",
"private": true,
"scripts": {
- "start": "react-native start",
- "postinstall": "rm -rf node_modules/react-native-video/{examples,node_modules}",
+ "android": "react-native run-android",
+ "ios": "cd ios && pod install && cd .. && react-native run-ios",
+ "windows": "react-native run-windows",
+ "start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest",
"lint": "eslint ."
},
"dependencies": {
- "react": "^16.12.0",
- "react-native": "0.61.5",
- "react-native-windows": "^0.61.0-0",
- "react-native-video": "file:../.."
+ "@react-native-picker/picker": "^1.9.11",
+ "babel-plugin-module-resolver": "^4.1.0",
+ "react": "16.13.1",
+ "react-native": "0.63.4",
+ "react-native-video": "../..",
+ "react-native-windows": "0.63.41"
},
"devDependencies": {
- "@babel/core": "^7.6.0",
- "@babel/runtime": "^7.6.0",
- "@react-native-community/eslint-config": "^0.0.5",
- "babel-jest": "^24.9.0",
- "eslint": "^6.4.0",
- "jest": "^24.9.0",
- "metro-react-native-babel-preset": "^0.56.0",
- "react-test-renderer": "16.8.6"
+ "@babel/core": "^7.8.4",
+ "@babel/runtime": "^7.8.4",
+ "@react-native-community/eslint-config": "^1.1.0",
+ "@types/react": "^18.0.6",
+ "@types/react-native": "^0.67.6",
+ "babel-jest": "^25.1.0",
+ "eslint": "^6.5.1",
+ "jest": "^25.1.0",
+ "metro-react-native-babel-preset": "^0.59.0",
+ "react-test-renderer": "16.13.1"
+ },
+ "jest": {
+ "preset": "react-native"
}
}
\ No newline at end of file
diff --git a/examples/basic/react-native.config.js b/examples/basic/react-native.config.js
deleted file mode 100644
index cedd9d38..00000000
--- a/examples/basic/react-native.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-const fs = require('fs');
-const path = require('path');
-module.exports = {
- reactNativePath: fs.realpathSync(path.resolve(require.resolve('react-native-windows/package.json'), '..')),
-};
diff --git a/examples/basic/src/VideoPlayer.android.tsx b/examples/basic/src/VideoPlayer.android.tsx
new file mode 100644
index 00000000..0ca36fb6
--- /dev/null
+++ b/examples/basic/src/VideoPlayer.android.tsx
@@ -0,0 +1,826 @@
+'use strict';
+
+import React, {
+ Component
+} from 'react';
+
+import {
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ View,
+ ActivityIndicator,
+ PanResponder,
+ ToastAndroid,
+} from 'react-native';
+
+import { Picker } from '@react-native-picker/picker'
+
+import Video, { TextTrackType } from 'react-native-video';
+
+class VideoPlayer extends Component {
+
+ state = {
+ rate: 1,
+ volume: 1,
+ muted: false,
+ resizeMode: 'contain',
+ duration: 0.0,
+ currentTime: 0.0,
+ videoWidth: 0,
+ videoHeight: 0,
+ paused: false,
+ fullscreen: true,
+ decoration: true,
+ isLoading: false,
+ seekerFillWidth: 0,
+ seekerPosition: 0,
+ seekerOffset: 0,
+ seeking: false,
+ audioTracks: [],
+ textTracks: [],
+ selectedAudioTrack: undefined,
+ selectedTextTrack: undefined,
+ srcListId: 0,
+ loop: false,
+ };
+
+ seekerWidth = 0
+
+ srcList = [
+ require('./broadchurch.mp4'),
+ {
+ description: '(dash) sintel subtitles',
+ uri: 'https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd',
+ },
+ {
+ description: '(mp4) big buck bunny',
+ uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4',
+ },
+ {
+ description: '(hls|live) red bull tv',
+ uri: 'https://rbmn-live.akamaized.net/hls/live/590964/BoRB-AT/master_928.m3u8'
+ },
+ {
+ description: '(mp4|subtitles) demo with sintel Subtitles',
+ uri:
+ 'http://www.youtube.com/api/manifest/dash/id/bf5bb2419360daf1/source/youtube?as=fmp4_audio_clear,fmp4_sd_hd_clear&sparams=ip,ipbits,expire,source,id,as&ip=0.0.0.0&ipbits=0&expire=19000000000&signature=51AF5F39AB0CEC3E5497CD9C900EBFEAECCCB5C7.8506521BFC350652163895D4C26DEE124209AA9E&key=ik0',
+ type: 'mpd',
+ },
+ { description: '(no url) Stopped playback', uri: undefined },
+ {
+ description: '(no view) no View',
+ noView: true,
+ },
+ ]
+
+ video: Video;
+ seekPanResponder: PanResponder | undefined;
+
+ onLoad = (data: any) => {
+ this.setState({ duration: data.duration, loading: false, });
+ this.onAudioTracks(data.audioTracks)
+ this.onTextTracks(data.textTracks)
+ };
+
+ onProgress = (data: any) => {
+ if (!this.state.seeking) {
+ const position = this.calculateSeekerPosition()
+ this.setSeekerPosition(position)
+ }
+ this.setState({ currentTime: data.currentTime })
+ };
+
+
+ onVideoLoadStart = () => {
+ console.log('onVideoLoadStart')
+ this.setState({ isLoading: true })
+ }
+
+
+ onAudioTracks = (data: any) => {
+ const selectedTrack = data.audioTracks?.find((x: any) => {
+ return x.selected
+ })
+ this.setState({
+ audioTracks: data,
+ })
+ if (selectedTrack?.language) {
+ this.setState({
+ selectedAudioTrack: {
+ type: 'language',
+ value: selectedTrack?.language,
+ },
+ })
+
+ }
+ }
+
+ onTextTracks = (data: any) => {
+ const selectedTrack = data.textTracks?.find((x: any) => {
+ return x.selected
+ })
+
+ this.setState({
+ textTracks: data,
+ })
+ if (selectedTrack?.language) {
+ this.setState({
+ textTracks: data,
+ selectedTextTrack: {
+ type: 'language',
+ value: selectedTrack?.language,
+ },
+ })
+ }
+ }
+
+ onAspectRatio = (data: any) => {
+ console.log('onAspectRadio called ' + JSON.stringify(data))
+ this.setState({
+ videoWidth: data.width,
+ videoHeight: data.height,
+ })
+ }
+
+ onVideoBuffer = (param: any) => {
+ console.log('onVideoBuffer')
+
+ this.setState({ isLoading: param.isBuffering })
+ }
+
+
+ onReadyForDisplay = () => {
+ console.log('onReadyForDisplay')
+
+ this.setState({ isLoading: false })
+ }
+
+
+ onAudioBecomingNoisy = () => {
+ this.setState({ paused: true })
+ };
+
+ onAudioFocusChanged = (event: { hasAudioFocus: boolean }) => {
+ this.setState({ paused: !event.hasAudioFocus })
+ };
+
+ getCurrentTimePercentage = () => {
+ if (this.state.currentTime > 0 && this.state.duration !== 0) {
+ return this.state.currentTime / this.state.duration;
+ }
+ return 0;
+ };
+
+ renderRateControl(rate: number) {
+ const isSelected = (this.state.rate === rate);
+
+ return (
+ { this.setState({ rate }) }}>
+
+ {rate}
+
+
+ );
+ }
+
+ renderResizeModeControl(resizeMode: string) {
+ const isSelected = (this.state.resizeMode === resizeMode);
+
+ return (
+ { this.setState({ resizeMode }) }}>
+
+ {resizeMode}
+
+
+ )
+ }
+
+ renderVolumeControl(volume: number) {
+ const isSelected = (this.state.volume === volume);
+
+ return (
+ { this.setState({ volume }) }}>
+
+ {volume * 100}%
+
+
+ )
+ }
+
+
+ toast = (visible: boolean, message: string) => {
+ if (visible) {
+ ToastAndroid.showWithGravityAndOffset(
+ message,
+ ToastAndroid.LONG,
+ ToastAndroid.BOTTOM,
+ 25,
+ 50,
+ )
+ return null
+ }
+ return null
+ }
+
+ onError = (err: any) => {
+ console.log(JSON.stringify(err))
+ this.toast(true, 'error: ' + err?.error?.code)
+ }
+
+ onEnd = () => {
+ this.channelUp()
+ };
+
+
+ toggleFullscreen() {
+ this.setState({ fullscreen: !this.state.fullscreen })
+ }
+
+ toggleDecoration() {
+ this.setState({ decoration: !this.state.decoration })
+ if (this.state.decoration) {
+ this.video.dismissFullscreenPlayer()
+ } else {
+ this.video.presentFullscreenPlayer()
+ }
+ }
+
+ goToChannel(channel: any) {
+ this.setState({
+ srcListId: channel,
+ duration: 0.0,
+ currentTime: 0.0,
+ videoWidth: 0,
+ videoHeight: 0,
+ isLoading: false,
+ audioTracks: [],
+ textTracks: [],
+ selectedAudioTrack: undefined,
+ selectedTextTrack: undefined,
+ })
+ }
+
+
+ channelUp() {
+ console.log('channel up')
+ this.goToChannel((this.state.srcListId + 1) % this.srcList.length)
+ }
+
+ channelDown() {
+ console.log('channel down')
+ this.goToChannel((this.state.srcListId + this.srcList.length - 1) % this.srcList.length)
+ }
+
+ componentDidMount() {
+ this.initSeekPanResponder()
+ }
+
+ renderDecorationsControl() {
+ return (
+ {
+ this.toggleDecoration()
+ }}
+ >
+ {'decoration'}
+
+ )
+ }
+
+ renderFullScreenControl() {
+ return (
+ {
+ this.toggleFullscreen()
+ }}
+ >
+ {'fullscreen'}
+
+ )
+ }
+
+ renderPause() {
+ return (
+ {
+ this.setState({ paused: !this.state.paused })
+ }}
+ >
+
+ {this.state.paused ? 'pause' : 'playing'}
+
+
+ )
+ }
+
+ renderRepeatModeControl() {
+ return (
+ {
+ this.setState({ loop: !this.state.loop })
+ }}
+ >
+
+ {this.state.loop ? 'loop enable' : 'loop disable'}
+
+
+ )
+ }
+
+ renderLeftControl() {
+ return (
+
+ {
+ this.channelDown()
+ }}
+ >
+ {'ChDown'}
+
+
+ // onTimelineUpdated
+ )
+ }
+
+ renderRightControl() {
+ return (
+
+ {
+ this.channelUp()
+ }}
+ >
+ {'ChUp'}
+
+
+ )
+ }
+
+ /**
+ * Render the seekbar and attach its handlers
+ */
+
+ /**
+ * Constrain the location of the seeker to the
+ * min/max value based on how big the
+ * seeker is.
+ *
+ * @param {float} val position of seeker handle in px
+ * @return {float} constrained position of seeker handle in px
+ */
+ constrainToSeekerMinMax(val = 0) {
+ if (val <= 0) {
+ return 0
+ } else if (val >= this.seekerWidth) {
+ return this.seekerWidth
+ }
+ return val
+ }
+
+ /**
+ * Set the position of the seekbar's components
+ * (both fill and handle) according to the
+ * position supplied.
+ *
+ * @param {float} position position in px of seeker handle}
+ */
+ setSeekerPosition(position = 0) {
+ const state = this.state
+ position = this.constrainToSeekerMinMax(position)
+
+ state.seekerFillWidth = position
+ state.seekerPosition = position
+
+ if (!state.seeking) {
+ state.seekerOffset = position
+ }
+
+ this.setState(state)
+ }
+
+ /**
+ * Calculate the position that the seeker should be
+ * at along its track.
+ *
+ * @return {float} position of seeker handle in px based on currentTime
+ */
+ calculateSeekerPosition() {
+ const percent = this.state.currentTime / this.state.duration
+ return this.seekerWidth * percent
+ }
+
+ /**
+ * Return the time that the video should be at
+ * based on where the seeker handle is.
+ *
+ * @return {float} time in ms based on seekerPosition.
+ */
+ calculateTimeFromSeekerPosition() {
+ const percent = this.state.seekerPosition / this.seekerWidth
+ return this.state.duration * percent
+ }
+
+ /**
+ * Get our seekbar responder going
+ */
+ initSeekPanResponder() {
+ this.seekPanResponder = PanResponder.create({
+ // Ask to be the responder.
+ onStartShouldSetPanResponder: (evt, gestureState) => true,
+ onMoveShouldSetPanResponder: (evt, gestureState) => true,
+
+ /**
+ * When we start the pan tell the machine that we're
+ * seeking. This stops it from updating the seekbar
+ * position in the onProgress listener.
+ */
+ onPanResponderGrant: (evt, gestureState) => {
+ const state = this.state
+ // this.clearControlTimeout()
+ const position = evt.nativeEvent.locationX
+ this.setSeekerPosition(position)
+ state.seeking = true
+ this.setState(state)
+ },
+
+ /**
+ * When panning, update the seekbar position, duh.
+ */
+ onPanResponderMove: (evt, gestureState) => {
+ const position = this.state.seekerOffset + gestureState.dx
+ this.setSeekerPosition(position)
+ },
+
+ /**
+ * On release we update the time and seek to it in the video.
+ * If you seek to the end of the video we fire the
+ * onEnd callback
+ */
+ onPanResponderRelease: (evt, gestureState) => {
+ const time = this.calculateTimeFromSeekerPosition()
+ const state = this.state
+ if (time >= state.duration && !state.isLoading) {
+ state.paused = true
+ this.onEnd()
+ } else {
+ this.video?.seek(time)
+ state.seeking = false
+ }
+ this.setState(state)
+ },
+ })
+ }
+
+ renderSeekBar() {
+ if (!this.seekPanResponder) {
+ return null
+ }
+ return (
+
+ (this.seekerWidth = event.nativeEvent.layout.width)}
+ pointerEvents={'none'}
+ >
+ 0 ? this.state.seekerFillWidth : 0,
+ backgroundColor: '#FFF',
+ },
+ ]}
+ pointerEvents={'none'}
+ />
+
+ 0 ? this.state.seekerPosition : 0 },
+ ]}
+ pointerEvents={'none'}
+ >
+
+
+
+ )
+ }
+
+ IndicatorLoadingView() {
+ if (this.state.isLoading)
+ return
+ else return
+ }
+
+ renderOverlay() {
+ return (
+ <>
+ {this.IndicatorLoadingView()}
+
+
+ {this.srcList[this.state.srcListId]?.description || 'local file'}
+
+
+
+ {this.renderLeftControl()}
+
+
+ {this.renderRightControl()}
+
+
+
+ {this.renderPause()}
+
+ {this.renderRepeatModeControl()}
+
+
+ {this.renderFullScreenControl()}
+
+
+ {this.renderDecorationsControl()}
+
+
+
+
+ {this.renderRateControl(0.25)}
+ {this.renderRateControl(0.5)}
+ {this.renderRateControl(1.0)}
+ {this.renderRateControl(1.5)}
+ {this.renderRateControl(2.0)}
+
+
+
+ {this.renderVolumeControl(0.5)}
+ {this.renderVolumeControl(1)}
+ {this.renderVolumeControl(1.5)}
+
+
+
+ {this.renderResizeModeControl('cover')}
+ {this.renderResizeModeControl('contain')}
+ {this.renderResizeModeControl('stretch')}
+
+
+ {this.renderSeekBar()}
+
+ AudioTrack
+ {this.state.audioTracks?.length <= 0 ? (
+ empty
+ ) : (
+ {
+ console.log('on audio value change ' + itemValue)
+ this.setState({
+ selectedAudioTrack: {
+ type: 'language',
+ value: itemValue,
+ },
+ })
+ }}
+ >
+ {this.state.audioTracks.map((track) => {
+ return (
+
+ )
+ })}
+
+ )}
+ TextTrack
+ {this.state.textTracks?.length <= 0 ? (
+ empty
+ ) : (
+ {
+ console.log('on value change ' + itemValue)
+ this.setState({
+ selectedTextTrack: {
+ type: 'language',
+ value: itemValue,
+ },
+ })
+ }}
+ >
+
+
+ {this.state.textTracks.map((track) => (
+
+ ))}
+
+ )}
+
+
+ >
+ )
+ }
+
+ renderVideoView() {
+ const viewStyle = this.state.fullscreen ? styles.fullScreen : styles.halfScreen
+
+ return (
+
+ {
+ this.video = ref
+ }}
+ source={this.srcList[this.state.srcListId]}
+ style={viewStyle}
+ rate={this.state.rate}
+ paused={this.state.paused}
+ volume={this.state.volume}
+ muted={this.state.muted}
+ resizeMode={this.state.resizeMode}
+ onLoad={this.onLoad}
+ onProgress={this.onProgress}
+ onEnd={this.onEnd}
+ progressUpdateInterval={1000}
+ onError={this.onError}
+ onAudioBecomingNoisy={this.onAudioBecomingNoisy}
+ onAudioFocusChanged={this.onAudioFocusChanged}
+ onLoadStart={this.onVideoLoadStart}
+ onVideoAspectRatio={this.onAspectRatio}
+ onReadyForDisplay={this.onReadyForDisplay}
+ onBuffer={this.onVideoBuffer}
+ repeat={this.state.loop}
+ selectedTextTrack={this.state.selectedTextTrack}
+ selectedAudioTrack={this.state.selectedAudioTrack}
+ />
+
+ )
+ }
+
+ render() {
+ return (
+
+ {this.srcList[this.state.srcListId]?.noView ? null : this.renderVideoView()}
+ {this.renderOverlay()}
+
+ )
+ }
+
+}
+
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: 'black',
+ },
+ halfScreen: {
+ position: 'absolute',
+ top: 50,
+ left: 50,
+ bottom: 100,
+ right: 100,
+ },
+ fullScreen: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ bottom: 0,
+ right: 0,
+ },
+ bottomControls: {
+ backgroundColor: 'transparent',
+ borderRadius: 5,
+ position: 'absolute',
+ bottom: 20,
+ left: 20,
+ right: 20,
+ },
+ leftControls: {
+ backgroundColor: 'transparent',
+ borderRadius: 5,
+ position: 'absolute',
+ top: 20,
+ bottom: 20,
+ left: 20,
+ },
+ rightControls: {
+ backgroundColor: 'transparent',
+ borderRadius: 5,
+ position: 'absolute',
+ top: 20,
+ bottom: 20,
+ right: 20,
+ },
+ topControls: {
+ backgroundColor: 'transparent',
+ borderRadius: 4,
+ position: 'absolute',
+ top: 20,
+ left: 20,
+ right: 20,
+ flex: 1,
+ flexDirection: 'row',
+ overflow: 'hidden',
+ paddingBottom: 10,
+ },
+ generalControls: {
+ flex: 1,
+ flexDirection: 'row',
+ borderRadius: 4,
+ overflow: 'hidden',
+ paddingBottom: 10,
+ },
+ rateControl: {
+ flex: 1,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ },
+ volumeControl: {
+ flex: 1,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ },
+ resizeModeControl: {
+ flex: 1,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ leftRightControlOption: {
+ alignSelf: 'center',
+ fontSize: 11,
+ color: 'white',
+ padding: 10,
+ lineHeight: 12,
+ },
+ controlOption: {
+ alignSelf: 'center',
+ fontSize: 11,
+ color: 'white',
+ paddingLeft: 2,
+ paddingRight: 2,
+ lineHeight: 12,
+ },
+ IndicatorStyle: {
+ flex: 1,
+ justifyContent: 'center',
+ },
+ seekbarContainer: {
+ flex: 1,
+ flexDirection: 'row',
+ borderRadius: 4,
+ height: 30,
+ },
+ seekbarTrack: {
+ backgroundColor: '#333',
+ height: 1,
+ position: 'relative',
+ top: 14,
+ width: '100%',
+ },
+ seekbarFill: {
+ backgroundColor: '#FFF',
+ height: 1,
+ width: '100%',
+ },
+ seekbarHandle: {
+ position: 'absolute',
+ marginLeft: -7,
+ height: 28,
+ width: 28,
+ },
+ seekbarCircle: {
+ borderRadius: 12,
+ position: 'relative',
+ top: 8,
+ left: 8,
+ height: 12,
+ width: 12,
+ },
+ picker: {
+ color: 'white',
+ flex: 1,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ },
+});
+
+export default VideoPlayer
\ No newline at end of file
diff --git a/examples/basic/index.ios.js b/examples/basic/src/VideoPlayer.ios.tsx
similarity index 94%
rename from examples/basic/index.ios.js
rename to examples/basic/src/VideoPlayer.ios.tsx
index c4c21c3d..74025104 100644
--- a/examples/basic/index.ios.js
+++ b/examples/basic/src/VideoPlayer.ios.tsx
@@ -4,8 +4,7 @@ import React, {
} from 'react';
import {
- AlertIOS,
- AppRegistry,
+ Alert,
Platform,
StyleSheet,
Text,
@@ -35,7 +34,7 @@ const filterTypes = [
];
class VideoPlayer extends Component {
- constructor(props) {
+ constructor(props: any) {
super(props);
this.onLoad = this.onLoad.bind(this);
this.onProgress = this.onProgress.bind(this);
@@ -58,12 +57,12 @@ class VideoPlayer extends Component {
filterEnabled: true
};
- onLoad(data) {
+ onLoad(data: any) {
console.log('On load fired!');
this.setState({duration: data.duration});
}
- onProgress(data) {
+ onProgress(data: any) {
this.setState({currentTime: data.currentTime});
}
@@ -72,14 +71,14 @@ class VideoPlayer extends Component {
}
getCurrentTimePercentage() {
- if (this.state.currentTime > 0) {
- return parseFloat(this.state.currentTime) / parseFloat(this.state.duration);
+ if (this.state.currentTime > 0 && this.state.duration !== 0) {
+ return this.state.currentTime / this.state.duration;
} else {
return 0;
}
}
- setFilter(step) {
+ setFilter(step: number) {
let index = filterTypes.indexOf(this.state.filter) + step;
if (index === filterTypes.length) {
@@ -108,7 +107,7 @@ class VideoPlayer extends Component {
);
}
- renderRateControl(rate) {
+ renderRateControl(rate: number) {
const isSelected = (this.state.rate == rate);
return (
@@ -120,7 +119,7 @@ class VideoPlayer extends Component {
)
}
- renderResizeModeControl(resizeMode) {
+ renderResizeModeControl(resizeMode: string) {
const isSelected = (this.state.resizeMode == resizeMode);
return (
@@ -132,7 +131,7 @@ class VideoPlayer extends Component {
)
}
- renderVolumeControl(volume) {
+ renderVolumeControl(volume: number) {
const isSelected = (this.state.volume == volume);
return (
@@ -144,7 +143,7 @@ class VideoPlayer extends Component {
)
}
- renderIgnoreSilentSwitchControl(ignoreSilentSwitch) {
+ renderIgnoreSilentSwitchControl(ignoreSilentSwitch: string) {
const isSelected = (this.state.ignoreSilentSwitch == ignoreSilentSwitch);
return (
@@ -156,7 +155,7 @@ class VideoPlayer extends Component {
)
}
- renderMixWithOthersControl(mixWithOthers) {
+ renderMixWithOthersControl(mixWithOthers: string) {
const isSelected = (this.state.mixWithOthers == mixWithOthers);
return (
@@ -188,7 +187,7 @@ class VideoPlayer extends Component {
onLoad={this.onLoad}
onBuffer={this.onBuffer}
onProgress={this.onProgress}
- onEnd={() => { AlertIOS.alert('Done!') }}
+ onEnd={() => { Alert.alert('Done!') }}
repeat={true}
filter={this.state.filter}
filterEnabled={this.state.filterEnabled}
@@ -282,7 +281,7 @@ class VideoPlayer extends Component {
onLoad={this.onLoad}
onBuffer={this.onBuffer}
onProgress={this.onProgress}
- onEnd={() => { AlertIOS.alert('Done!') }}
+ onEnd={() => { Alert.alert('Done!') }}
repeat={true}
controls={this.state.controls}
filter={this.state.filter}
@@ -442,8 +441,13 @@ const styles = StyleSheet.create({
},
nativeVideoControls: {
top: 184,
- height: 300
- }
+ height: 300,
+ },
+ trackingControls: {
+ flex: 1,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
});
-
-AppRegistry.registerComponent('VideoPlayer', () => VideoPlayer);
+export default VideoPlayer
\ No newline at end of file
diff --git a/examples/basic/index.windows.js b/examples/basic/src/VideoPlayer.windows.tsx
similarity index 90%
rename from examples/basic/index.windows.js
rename to examples/basic/src/VideoPlayer.windows.tsx
index a3d21c6f..217fcc6e 100644
--- a/examples/basic/index.windows.js
+++ b/examples/basic/src/VideoPlayer.windows.tsx
@@ -5,7 +5,6 @@ import React, {
} from 'react';
import {
- AppRegistry,
StyleSheet,
Text,
TouchableOpacity,
@@ -15,7 +14,7 @@ import {
import Video from 'react-native-video';
class VideoPlayer extends Component {
- constructor(props) {
+ constructor(props: any) {
super(props);
this.onLoad = this.onLoad.bind(this);
this.onProgress = this.onProgress.bind(this);
@@ -28,25 +27,26 @@ class VideoPlayer extends Component {
resizeMode: 'contain',
duration: 0.0,
currentTime: 0.0,
+ paused: 0,
};
- onLoad(data) {
+ onLoad(data: any) {
this.setState({duration: data.duration});
}
- onProgress(data) {
+ onProgress(data: any) {
this.setState({currentTime: data.currentTime});
}
getCurrentTimePercentage() {
- if (this.state.currentTime > 0) {
- return parseFloat(this.state.currentTime) / parseFloat(this.state.duration);
+ if (this.state.currentTime > 0 && this.state.duration !== 0) {
+ return this.state.currentTime / this.state.duration;
} else {
return 0;
}
}
- renderRateControl(rate) {
+ renderRateControl(rate: number) {
const isSelected = (this.state.rate == rate);
return (
@@ -58,7 +58,7 @@ class VideoPlayer extends Component {
)
}
- renderResizeModeControl(resizeMode) {
+ renderResizeModeControl(resizeMode: string) {
const isSelected = (this.state.resizeMode == resizeMode);
return (
@@ -70,7 +70,7 @@ class VideoPlayer extends Component {
)
}
- renderVolumeControl(volume) {
+ renderVolumeControl(volume: number) {
const isSelected = (this.state.volume == volume);
return (
@@ -205,6 +205,11 @@ const styles = StyleSheet.create({
paddingRight: 2,
lineHeight: 12,
},
+ trackingControls: {
+ flex: 1,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
});
-
-AppRegistry.registerComponent('VideoPlayer', () => VideoPlayer);
+export default VideoPlayer
\ No newline at end of file
diff --git a/examples/basic/broadchurch.mp4 b/examples/basic/src/broadchurch.mp4
similarity index 100%
rename from examples/basic/broadchurch.mp4
rename to examples/basic/src/broadchurch.mp4
diff --git a/examples/basic/src/index.js b/examples/basic/src/index.js
new file mode 100644
index 00000000..add8ab16
--- /dev/null
+++ b/examples/basic/src/index.js
@@ -0,0 +1,5 @@
+import {AppRegistry} from 'react-native';
+import VideoPlayer from './VideoPlayer';
+import {name as appName} from '../app.json';
+
+AppRegistry.registerComponent(appName, () => VideoPlayer);
diff --git a/examples/basic/tsconfig.json b/examples/basic/tsconfig.json
new file mode 100644
index 00000000..a415e49c
--- /dev/null
+++ b/examples/basic/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "compilerOptions": {
+ "allowJs": true,
+ "allowSyntheticDefaultImports": true,
+ "esModuleInterop": true,
+ "isolatedModules": true,
+ "jsx": "react-native",
+ "lib": ["es2017"],
+ "moduleResolution": "node",
+ "noEmit": true,
+ "strict": true,
+ "target": "esnext"
+ },
+ "exclude": [
+ "node_modules",
+ "babel.config.js",
+ "metro.config.js",
+ "jest.config.js"
+ ]
+}
\ No newline at end of file
diff --git a/examples/basic/windows/VideoPlayer.sln b/examples/basic/windows/VideoPlayer.sln
index c3c7265b..9c6c57cd 100644
--- a/examples/basic/windows/VideoPlayer.sln
+++ b/examples/basic/windows/VideoPlayer.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29215.179
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VideoPlayer", "VideoPlayer\VideoPlayer.vcxproj", "{ADF1CF02-8224-4167-A737-8CBE1A0D5208}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoplayer", "videoplayer\videoplayer.vcxproj", "{BF9FF035-B976-4990-86FE-09D015E91C20}"
ProjectSection(ProjectDependencies) = postProject
{F7D32BD0-2749-483E-9A0D-1635EF7E3136} = {F7D32BD0-2749-483E-9A0D-1635EF7E3136}
EndProjectSection
@@ -15,11 +15,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactCommon", "..\node_modu
{A990658C-CE31-4BCC-976F-0FC6B1AF693D} = {A990658C-CE31-4BCC-976F-0FC6B1AF693D}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactWindowsCore", "..\node_modules\react-native-windows\ReactWindowsCore\ReactWindowsCore.vcxproj", "{11C084A3-A57C-4296-A679-CAC17B603144}"
- ProjectSection(ProjectDependencies) = postProject
- {A990658C-CE31-4BCC-976F-0FC6B1AF693D} = {A990658C-CE31-4BCC-976F-0FC6B1AF693D}
- EndProjectSection
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra", "..\node_modules\react-native-windows\Chakra\Chakra.vcxitems", "{C38970C0-5FBF-4D69-90D8-CBAC225AE895}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative", "..\node_modules\react-native-windows\Microsoft.ReactNative\Microsoft.ReactNative.vcxproj", "{F7D32BD0-2749-483E-9A0D-1635EF7E3136}"
@@ -30,31 +25,29 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSI.Universal", "..\node_mo
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative.Cxx", "..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems", "{DA8B35B3-DA00-4B02-BDE6-6A397B3FD46B}"
EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.ReactNative.SharedManaged", "..\node_modules\react-native-windows\Microsoft.ReactNative.SharedManaged\Microsoft.ReactNative.SharedManaged.shproj", "{67A1076F-7790-4203-86EA-4402CCB5E782}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "..\node_modules\react-native-windows\Common\Common.vcxproj", "{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ReactNative", "ReactNative", "{5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Shared", "..\node_modules\react-native-windows\Shared\Shared.vcxitems", "{2049DBE9-8D13-42C9-AE4B-413AE38FFFD0}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative.Shared", "..\node_modules\react-native-windows\Shared\Shared.vcxitems", "{2049DBE9-8D13-42C9-AE4B-413AE38FFFD0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mso", "..\node_modules\react-native-windows\Mso\Mso.vcxitems", "{84E05BFA-CBAF-4F0D-BFB6-4CE85742A57E}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactNativeVideoCPP61", "..\node_modules\react-native-video\windows\ReactNativeVideoCPP61\ReactNativeVideoCPP61.vcxproj", "{765365E4-9553-4900-9F69-E26D4309C8DA}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Include", "..\node_modules\react-native-windows\include\Include.vcxitems", "{EF074BA1-2D54-4D49-A28E-5E040B47CD2E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactNativeVideoCPP", "..\node_modules\react-native-video\windows\ReactNativeVideoCPP\ReactNativeVideoCPP.vcxproj", "{0D1E54D3-4BE1-4DAF-98BF-124C28C85014}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\node_modules\react-native-windows\JSI\Shared\JSI.Shared.vcxitems*{0cc28589-39e4-4288-b162-97b959f8b843}*SharedItemsImports = 9
..\node_modules\react-native-windows\Shared\Shared.vcxitems*{2049dbe9-8d13-42c9-ae4b-413ae38fffd0}*SharedItemsImports = 9
- ..\node_modules\react-native-windows\Microsoft.ReactNative.SharedManaged\Microsoft.ReactNative.SharedManaged.projitems*{67a1076f-7790-4203-86ea-4402ccb5e782}*SharedItemsImports = 13
- ..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{765365e4-9553-4900-9f69-e26d4309c8da}*SharedItemsImports = 4
..\node_modules\react-native-windows\Mso\Mso.vcxitems*{84e05bfa-cbaf-4f0d-bfb6-4ce85742a57e}*SharedItemsImports = 9
..\node_modules\react-native-windows\JSI\Shared\JSI.Shared.vcxitems*{a62d504a-16b8-41d2-9f19-e2e86019e5e4}*SharedItemsImports = 4
- ..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{adf1cf02-8224-4167-a737-8cbe1a0d5208}*SharedItemsImports = 4
..\node_modules\react-native-windows\Chakra\Chakra.vcxitems*{c38970c0-5fbf-4d69-90d8-cbac225ae895}*SharedItemsImports = 9
..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{da8b35b3-da00-4b02-bde6-6a397b3fd46b}*SharedItemsImports = 9
+ ..\node_modules\react-native-windows\include\Include.vcxitems*{ef074ba1-2d54-4d49-a28e-5e040b47cd2e}*SharedItemsImports = 9
..\node_modules\react-native-windows\Chakra\Chakra.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
- ..\node_modules\react-native-windows\JSI\Shared\JSI.Shared.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
+ ..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
..\node_modules\react-native-windows\Mso\Mso.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
..\node_modules\react-native-windows\Shared\Shared.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
EndGlobalSection
@@ -69,30 +62,30 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|ARM.ActiveCfg = Debug|ARM
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|ARM.Build.0 = Debug|ARM
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|ARM.Deploy.0 = Debug|ARM
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|ARM64.Build.0 = Debug|ARM64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|ARM64.Deploy.0 = Debug|ARM64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|x64.ActiveCfg = Debug|x64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|x64.Build.0 = Debug|x64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|x64.Deploy.0 = Debug|x64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|x86.ActiveCfg = Debug|Win32
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|x86.Build.0 = Debug|Win32
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Debug|x86.Deploy.0 = Debug|Win32
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|ARM.ActiveCfg = Release|ARM
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|ARM.Build.0 = Release|ARM
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|ARM.Deploy.0 = Release|ARM
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|ARM64.ActiveCfg = Release|ARM64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|ARM64.Build.0 = Release|ARM64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|ARM64.Deploy.0 = Release|ARM64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|x64.ActiveCfg = Release|x64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|x64.Build.0 = Release|x64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|x64.Deploy.0 = Release|x64
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|x86.ActiveCfg = Release|Win32
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|x86.Build.0 = Release|Win32
- {ADF1CF02-8224-4167-A737-8CBE1A0D5208}.Release|x86.Deploy.0 = Release|Win32
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|ARM.ActiveCfg = Debug|ARM
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|ARM.Build.0 = Debug|ARM
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|ARM.Deploy.0 = Debug|ARM
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|ARM64.Build.0 = Debug|ARM64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|x64.ActiveCfg = Debug|x64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|x64.Build.0 = Debug|x64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|x64.Deploy.0 = Debug|x64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|x86.ActiveCfg = Debug|Win32
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|x86.Build.0 = Debug|Win32
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Debug|x86.Deploy.0 = Debug|Win32
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|ARM.ActiveCfg = Release|ARM
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|ARM.Build.0 = Release|ARM
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|ARM.Deploy.0 = Release|ARM
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|ARM64.ActiveCfg = Release|ARM64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|ARM64.Build.0 = Release|ARM64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|ARM64.Deploy.0 = Release|ARM64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|x64.ActiveCfg = Release|x64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|x64.Build.0 = Release|x64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|x64.Deploy.0 = Release|x64
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|x86.ActiveCfg = Release|Win32
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|x86.Build.0 = Release|Win32
+ {BF9FF035-B976-4990-86FE-09D015E91C20}.Release|x86.Deploy.0 = Release|Win32
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM.ActiveCfg = Debug|ARM
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM.Build.0 = Debug|ARM
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM64.ActiveCfg = Debug|ARM64
@@ -125,22 +118,6 @@ Global
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x64.Build.0 = Release|x64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x86.ActiveCfg = Release|Win32
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x86.Build.0 = Release|Win32
- {11C084A3-A57C-4296-A679-CAC17B603144}.Debug|ARM.ActiveCfg = Debug|ARM
- {11C084A3-A57C-4296-A679-CAC17B603144}.Debug|ARM.Build.0 = Debug|ARM
- {11C084A3-A57C-4296-A679-CAC17B603144}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {11C084A3-A57C-4296-A679-CAC17B603144}.Debug|ARM64.Build.0 = Debug|ARM64
- {11C084A3-A57C-4296-A679-CAC17B603144}.Debug|x64.ActiveCfg = Debug|x64
- {11C084A3-A57C-4296-A679-CAC17B603144}.Debug|x64.Build.0 = Debug|x64
- {11C084A3-A57C-4296-A679-CAC17B603144}.Debug|x86.ActiveCfg = Debug|Win32
- {11C084A3-A57C-4296-A679-CAC17B603144}.Debug|x86.Build.0 = Debug|Win32
- {11C084A3-A57C-4296-A679-CAC17B603144}.Release|ARM.ActiveCfg = Release|ARM
- {11C084A3-A57C-4296-A679-CAC17B603144}.Release|ARM.Build.0 = Release|ARM
- {11C084A3-A57C-4296-A679-CAC17B603144}.Release|ARM64.ActiveCfg = Release|ARM64
- {11C084A3-A57C-4296-A679-CAC17B603144}.Release|ARM64.Build.0 = Release|ARM64
- {11C084A3-A57C-4296-A679-CAC17B603144}.Release|x64.ActiveCfg = Release|x64
- {11C084A3-A57C-4296-A679-CAC17B603144}.Release|x64.Build.0 = Release|x64
- {11C084A3-A57C-4296-A679-CAC17B603144}.Release|x86.ActiveCfg = Release|Win32
- {11C084A3-A57C-4296-A679-CAC17B603144}.Release|x86.Build.0 = Release|Win32
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM.ActiveCfg = Debug|ARM
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM.Build.0 = Debug|ARM
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM64.ActiveCfg = Debug|ARM64
@@ -189,22 +166,22 @@ Global
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x64.Build.0 = Release|x64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x86.ActiveCfg = Release|Win32
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x86.Build.0 = Release|Win32
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Debug|ARM.ActiveCfg = Debug|ARM
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Debug|ARM.Build.0 = Debug|ARM
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Debug|ARM64.Build.0 = Debug|ARM64
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Debug|x64.ActiveCfg = Debug|x64
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Debug|x64.Build.0 = Debug|x64
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Debug|x86.ActiveCfg = Debug|Win32
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Debug|x86.Build.0 = Debug|Win32
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Release|ARM.ActiveCfg = Release|ARM
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Release|ARM.Build.0 = Release|ARM
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Release|ARM64.ActiveCfg = Release|ARM64
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Release|ARM64.Build.0 = Release|ARM64
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Release|x64.ActiveCfg = Release|x64
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Release|x64.Build.0 = Release|x64
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Release|x86.ActiveCfg = Release|Win32
- {765365E4-9553-4900-9F69-E26D4309C8DA}.Release|x86.Build.0 = Release|Win32
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Debug|ARM.ActiveCfg = Debug|ARM
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Debug|ARM.Build.0 = Debug|ARM
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Debug|ARM64.Build.0 = Debug|ARM64
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Debug|x64.ActiveCfg = Debug|x64
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Debug|x64.Build.0 = Debug|x64
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Debug|x86.ActiveCfg = Debug|Win32
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Debug|x86.Build.0 = Debug|Win32
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Release|ARM.ActiveCfg = Release|ARM
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Release|ARM.Build.0 = Release|ARM
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Release|ARM64.ActiveCfg = Release|ARM64
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Release|ARM64.Build.0 = Release|ARM64
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Release|x64.ActiveCfg = Release|x64
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Release|x64.Build.0 = Release|x64
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Release|x86.ActiveCfg = Release|Win32
+ {0D1E54D3-4BE1-4DAF-98BF-124C28C85014}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -212,16 +189,15 @@ Global
GlobalSection(NestedProjects) = preSolution
{A990658C-CE31-4BCC-976F-0FC6B1AF693D} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
- {11C084A3-A57C-4296-A679-CAC17B603144} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{C38970C0-5FBF-4D69-90D8-CBAC225AE895} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{F7D32BD0-2749-483E-9A0D-1635EF7E3136} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{0CC28589-39E4-4288-B162-97B959F8B843} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{A62D504A-16B8-41D2-9F19-E2E86019E5E4} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{DA8B35B3-DA00-4B02-BDE6-6A397B3FD46B} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
- {67A1076F-7790-4203-86EA-4402CCB5E782} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{2049DBE9-8D13-42C9-AE4B-413AE38FFFD0} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{84E05BFA-CBAF-4F0D-BFB6-4CE85742A57E} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
+ {EF074BA1-2D54-4D49-A28E-5E040B47CD2E} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D43FAD39-F619-437D-BB40-04A3982ACB6A}
diff --git a/examples/basic/windows/VideoPlayer/.gitignore b/examples/basic/windows/VideoPlayer/.gitignore
new file mode 100644
index 00000000..917243bd
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/.gitignore
@@ -0,0 +1 @@
+/Bundle
diff --git a/examples/basic/windows/VideoPlayer/App.cpp b/examples/basic/windows/VideoPlayer/App.cpp
index 9bc4bf46..2379674e 100644
--- a/examples/basic/windows/VideoPlayer/App.cpp
+++ b/examples/basic/windows/VideoPlayer/App.cpp
@@ -1,50 +1,79 @@
-#include "pch.h"
-
-#include "App.h"
-#include "ReactPackageProvider.h"
-
-#include "winrt/ReactNativeVideoCPP.h"
-
-using namespace winrt::VideoPlayer;
-using namespace winrt::VideoPlayer::implementation;
-
-///
-/// Initializes the singleton application object. This is the first line of
-/// authored code executed, and as such is the logical equivalent of main() or
-/// WinMain().
-///
-App::App() noexcept
-{
- MainComponentName(L"VideoPlayer");
-
-#if BUNDLE
- JavaScriptBundleFile(L"index.windows");
- InstanceSettings().UseWebDebugger(false);
- InstanceSettings().UseFastRefresh(false);
-#else
- JavaScriptMainModuleName(L"index");
- InstanceSettings().UseWebDebugger(true);
- InstanceSettings().UseFastRefresh(true);
-#endif
-
-#if _DEBUG
- InstanceSettings().EnableDeveloperMenu(true);
-#else
- InstanceSettings().EnableDeveloperMenu(false);
-#endif
-
- PackageProviders().Append(make()); // Includes all modules in this project
-
- PackageProviders().Append(winrt::ReactNativeVideoCPP::ReactPackageProvider());
-
- REACT_REGISTER_NATIVE_MODULE_PACKAGES(); //code-gen macro from autolink
-
- InitializeComponent();
-
- // This works around a cpp/winrt bug with composable/aggregable types tracked
- // by 22116519
- AddRef();
- m_inner.as<::IUnknown>()->Release();
-}
-
-
+#include "pch.h"
+
+#include "App.h"
+
+#include "AutolinkedNativeModules.g.h"
+#include "ReactPackageProvider.h"
+
+using namespace winrt::videoplayer;
+using namespace winrt::videoplayer::implementation;
+using namespace winrt;
+using namespace Windows::UI::Xaml;
+using namespace Windows::UI::Xaml::Controls;
+using namespace Windows::UI::Xaml::Navigation;
+using namespace Windows::ApplicationModel;
+
+///
+/// Initializes the singleton application object. This is the first line of
+/// authored code executed, and as such is the logical equivalent of main() or
+/// WinMain().
+///
+App::App() noexcept
+{
+#if BUNDLE
+ JavaScriptBundleFile(L"src/index.windows");
+ InstanceSettings().UseWebDebugger(false);
+ InstanceSettings().UseFastRefresh(false);
+#else
+ JavaScriptMainModuleName(L"src/index");
+ InstanceSettings().UseWebDebugger(true);
+ InstanceSettings().UseFastRefresh(true);
+#endif
+
+#if _DEBUG
+ InstanceSettings().UseDeveloperSupport(true);
+#else
+ InstanceSettings().UseDeveloperSupport(false);
+#endif
+
+ RegisterAutolinkedNativeModulePackages(PackageProviders()); // Includes any autolinked modules
+
+ PackageProviders().Append(make()); // Includes all modules in this project
+
+ InitializeComponent();
+}
+
+///
+/// Invoked when the application is launched normally by the end user. Other entry points
+/// will be used such as when the application is launched to open a specific file.
+///
+/// Details about the launch request and process.
+void App::OnLaunched(activation::LaunchActivatedEventArgs const& e)
+{
+ super::OnLaunched(e);
+
+ Frame rootFrame = Window::Current().Content().as ();
+ rootFrame.Navigate(xaml_typename(), box_value(e.Arguments()));
+}
+
+///
+/// Invoked when application execution is being suspended. Application state is saved
+/// without knowing whether the application will be terminated or resumed with the contents
+/// of memory still intact.
+///
+/// The source of the suspend request.
+/// Details about the suspend request.
+void App::OnSuspending([[maybe_unused]] IInspectable const& sender, [[maybe_unused]] SuspendingEventArgs const& e)
+{
+ // Save application state and stop any background activity
+}
+
+///
+/// Invoked when Navigation to a certain page fails
+///
+/// The Frame which failed navigation
+/// Details about the navigation failure
+void App::OnNavigationFailed(IInspectable const&, NavigationFailedEventArgs const& e)
+{
+ throw hresult_error(E_FAIL, hstring(L"Failed to load Page ") + e.SourcePageType().Name);
+}
diff --git a/examples/basic/windows/VideoPlayer/App.h b/examples/basic/windows/VideoPlayer/App.h
index f2dc98d3..16a53393 100644
--- a/examples/basic/windows/VideoPlayer/App.h
+++ b/examples/basic/windows/VideoPlayer/App.h
@@ -1,15 +1,18 @@
-#pragma once
-
-#include "App.xaml.g.h"
-
-
-
-namespace winrt::VideoPlayer::implementation
-{
- struct App : AppT
- {
- App() noexcept;
- };
-} // namespace winrt::VideoPlayer::implementation
-
-
+#pragma once
+
+#include "App.xaml.g.h"
+
+namespace activation = winrt::Windows::ApplicationModel::Activation;
+
+namespace winrt::videoplayer::implementation
+{
+ struct App : AppT
+ {
+ App() noexcept;
+ void OnLaunched(activation::LaunchActivatedEventArgs const&);
+ void OnSuspending(IInspectable const&, Windows::ApplicationModel::SuspendingEventArgs const&);
+ void OnNavigationFailed(IInspectable const&, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs const&);
+ private:
+ using super = AppT;
+ };
+} // namespace winrt::videoplayer::implementation
diff --git a/examples/basic/windows/VideoPlayer/App.idl b/examples/basic/windows/VideoPlayer/App.idl
index fca0646c..e327b433 100644
--- a/examples/basic/windows/VideoPlayer/App.idl
+++ b/examples/basic/windows/VideoPlayer/App.idl
@@ -1,3 +1,3 @@
-namespace VideoPlayer
-{
-}
+namespace videoplayer
+{
+}
diff --git a/examples/basic/windows/VideoPlayer/App.xaml b/examples/basic/windows/VideoPlayer/App.xaml
index 1cf8c542..f1d79c8c 100644
--- a/examples/basic/windows/VideoPlayer/App.xaml
+++ b/examples/basic/windows/VideoPlayer/App.xaml
@@ -1,8 +1,8 @@
diff --git a/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.cpp b/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.cpp
new file mode 100644
index 00000000..440fd52f
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.cpp
@@ -0,0 +1,18 @@
+// AutolinkedNativeModules.g.cpp contents generated by "react-native autolink-windows"
+// clang-format off
+#include "pch.h"
+#include "AutolinkedNativeModules.g.h"
+
+// Includes from react-native-video
+#include
+
+namespace winrt::Microsoft::ReactNative
+{
+
+void RegisterAutolinkedNativeModulePackages(winrt::Windows::Foundation::Collections::IVector const& packageProviders)
+{
+ // IReactPackageProviders from react-native-video
+ packageProviders.Append(winrt::ReactNativeVideoCPP::ReactPackageProvider());
+}
+
+}
diff --git a/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.h b/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.h
new file mode 100644
index 00000000..f28bb8be
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.h
@@ -0,0 +1,10 @@
+// AutolinkedNativeModules.g.h contents generated by "react-native autolink-windows"
+// clang-format off
+#pragma once
+
+namespace winrt::Microsoft::ReactNative
+{
+
+void RegisterAutolinkedNativeModulePackages(winrt::Windows::Foundation::Collections::IVector const& packageProviders);
+
+}
diff --git a/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.props b/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.props
new file mode 100644
index 00000000..f5db933f
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.props
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.targets b/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.targets
new file mode 100644
index 00000000..c2025402
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/AutolinkedNativeModules.g.targets
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ {0d1e54d3-4be1-4daf-98bf-124c28c85014}
+
+
+
diff --git a/examples/basic/windows/VideoPlayer/Bundle/.gitignore b/examples/basic/windows/VideoPlayer/Bundle/.gitignore
deleted file mode 100644
index 005717ea..00000000
--- a/examples/basic/windows/VideoPlayer/Bundle/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/examples/basic/windows/VideoPlayer/MainPage.cpp b/examples/basic/windows/VideoPlayer/MainPage.cpp
new file mode 100644
index 00000000..b94a5052
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/MainPage.cpp
@@ -0,0 +1,20 @@
+#include "pch.h"
+#include "MainPage.h"
+#if __has_include("MainPage.g.cpp")
+#include "MainPage.g.cpp"
+#endif
+
+#include "App.h"
+
+using namespace winrt;
+using namespace Windows::UI::Xaml;
+
+namespace winrt::videoplayer::implementation
+{
+ MainPage::MainPage()
+ {
+ InitializeComponent();
+ auto app = Application::Current().as();
+ ReactRootView().ReactNativeHost(app->Host());
+ }
+}
diff --git a/examples/basic/windows/VideoPlayer/MainPage.h b/examples/basic/windows/VideoPlayer/MainPage.h
new file mode 100644
index 00000000..390ab853
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/MainPage.h
@@ -0,0 +1,19 @@
+#pragma once
+#include "MainPage.g.h"
+#include
+
+namespace winrt::videoplayer::implementation
+{
+ struct MainPage : MainPageT
+ {
+ MainPage();
+ };
+}
+
+namespace winrt::videoplayer::factory_implementation
+{
+ struct MainPage : MainPageT
+ {
+ };
+}
+
diff --git a/examples/basic/windows/VideoPlayer/MainPage.idl b/examples/basic/windows/VideoPlayer/MainPage.idl
new file mode 100644
index 00000000..051fd75e
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/MainPage.idl
@@ -0,0 +1,8 @@
+namespace videoplayer
+{
+ [default_interface]
+ runtimeclass MainPage : Windows.UI.Xaml.Controls.Page
+ {
+ MainPage();
+ }
+}
diff --git a/examples/basic/windows/VideoPlayer/MainPage.xaml b/examples/basic/windows/VideoPlayer/MainPage.xaml
new file mode 100644
index 00000000..ca697091
--- /dev/null
+++ b/examples/basic/windows/VideoPlayer/MainPage.xaml
@@ -0,0 +1,16 @@
+
+
+
diff --git a/examples/basic/windows/VideoPlayer/Package.appxmanifest b/examples/basic/windows/VideoPlayer/Package.appxmanifest
index 13b3564f..f594008c 100644
--- a/examples/basic/windows/VideoPlayer/Package.appxmanifest
+++ b/examples/basic/windows/VideoPlayer/Package.appxmanifest
@@ -6,16 +6,16 @@
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
IgnorableNamespaces="uap mp">
-
-
+
- VideoPlayer
- react-native-video
+ videoplayer
+ nickf
Assets\StoreLogo.png
@@ -28,14 +28,15 @@
-
+ EntryPoint="videoplayer.App">
diff --git a/examples/basic/windows/VideoPlayer/PropertySheet.props b/examples/basic/windows/VideoPlayer/PropertySheet.props
index 3e15bb90..5942ba39 100644
--- a/examples/basic/windows/VideoPlayer/PropertySheet.props
+++ b/examples/basic/windows/VideoPlayer/PropertySheet.props
@@ -1,16 +1,16 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/basic/windows/VideoPlayer/ReactPackageProvider.cpp b/examples/basic/windows/VideoPlayer/ReactPackageProvider.cpp
index e6127dd4..713453d9 100644
--- a/examples/basic/windows/VideoPlayer/ReactPackageProvider.cpp
+++ b/examples/basic/windows/VideoPlayer/ReactPackageProvider.cpp
@@ -1,20 +1,15 @@
-#include "pch.h"
-#include "ReactPackageProvider.h"
-
-#include "NativeModules.h"
-
-
-
-using namespace winrt::Microsoft::ReactNative;
-
-namespace winrt::VideoPlayer::implementation
-{
-
-void ReactPackageProvider::CreatePackage(IReactPackageBuilder const &packageBuilder) noexcept
-{
- AddAttributedModules(packageBuilder);
-}
-
-} // namespace winrt::VideoPlayer::implementation
-
-
+#include "pch.h"
+#include "ReactPackageProvider.h"
+#include "NativeModules.h"
+
+using namespace winrt::Microsoft::ReactNative;
+
+namespace winrt::videoplayer::implementation
+{
+
+void ReactPackageProvider::CreatePackage(IReactPackageBuilder const &packageBuilder) noexcept
+{
+ AddAttributedModules(packageBuilder);
+}
+
+} // namespace winrt::videoplayer::implementation
diff --git a/examples/basic/windows/VideoPlayer/ReactPackageProvider.h b/examples/basic/windows/VideoPlayer/ReactPackageProvider.h
index d8e8df89..5f8a4cfe 100644
--- a/examples/basic/windows/VideoPlayer/ReactPackageProvider.h
+++ b/examples/basic/windows/VideoPlayer/ReactPackageProvider.h
@@ -1,20 +1,13 @@
-#pragma once
-
-#include "winrt/Microsoft.ReactNative.h"
-
-
-
-using namespace winrt::Microsoft::ReactNative;
-
-namespace winrt::VideoPlayer::implementation
-{
-
- struct ReactPackageProvider : winrt::implements
- {
- public: // IReactPackageProvider
- void CreatePackage(IReactPackageBuilder const &packageBuilder) noexcept;
- };
-
-} // namespace winrt::VideoPlayer::implementation
-
-
+#pragma once
+
+#include "winrt/Microsoft.ReactNative.h"
+
+namespace winrt::videoplayer::implementation
+{
+ struct ReactPackageProvider : winrt::implements
+ {
+ public: // IReactPackageProvider
+ void CreatePackage(winrt::Microsoft::ReactNative::IReactPackageBuilder const &packageBuilder) noexcept;
+ };
+} // namespace winrt::videoplayer::implementation
+
diff --git a/examples/basic/windows/VideoPlayer/VideoPlayer_TemporaryKey.pfx b/examples/basic/windows/VideoPlayer/VideoPlayer_TemporaryKey.pfx
index b16850da..b399e740 100644
Binary files a/examples/basic/windows/VideoPlayer/VideoPlayer_TemporaryKey.pfx and b/examples/basic/windows/VideoPlayer/VideoPlayer_TemporaryKey.pfx differ
diff --git a/examples/basic/windows/VideoPlayer/nativeModules.g.h b/examples/basic/windows/VideoPlayer/nativeModules.g.h
deleted file mode 100644
index be2539eb..00000000
--- a/examples/basic/windows/VideoPlayer/nativeModules.g.h
+++ /dev/null
@@ -1,2 +0,0 @@
-// NativeModules.g.h -- contents generated by "react-native run-windows"
-#define REACT_REGISTER_NATIVE_MODULE_PACKAGES()
\ No newline at end of file
diff --git a/examples/basic/windows/VideoPlayer/packages.config b/examples/basic/windows/VideoPlayer/packages.config
index 21349199..7ad3ffb8 100644
--- a/examples/basic/windows/VideoPlayer/packages.config
+++ b/examples/basic/windows/VideoPlayer/packages.config
@@ -1,5 +1,5 @@
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/examples/basic/windows/VideoPlayer/pch.cpp b/examples/basic/windows/VideoPlayer/pch.cpp
index e0d2ef1a..bcb5590b 100644
--- a/examples/basic/windows/VideoPlayer/pch.cpp
+++ b/examples/basic/windows/VideoPlayer/pch.cpp
@@ -1 +1 @@
-#include "pch.h"
+#include "pch.h"
diff --git a/examples/basic/windows/VideoPlayer/pch.h b/examples/basic/windows/VideoPlayer/pch.h
index 6cd79994..13f3eecb 100644
--- a/examples/basic/windows/VideoPlayer/pch.h
+++ b/examples/basic/windows/VideoPlayer/pch.h
@@ -1,28 +1,26 @@
-#pragma once
-
-#define NOMINMAX
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-#include "nativeModules.g.h"
+#pragma once
+
+#define NOMINMAX
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+#include
diff --git a/examples/basic/windows/VideoPlayer/VideoPlayer.vcxproj b/examples/basic/windows/VideoPlayer/videoplayer.vcxproj
similarity index 61%
rename from examples/basic/windows/VideoPlayer/VideoPlayer.vcxproj
rename to examples/basic/windows/VideoPlayer/videoplayer.vcxproj
index 94a0299d..ef950d93 100644
--- a/examples/basic/windows/VideoPlayer/VideoPlayer.vcxproj
+++ b/examples/basic/windows/VideoPlayer/videoplayer.vcxproj
@@ -1,180 +1,196 @@
-
-
-
-
- true
- true
- true
- {adf1cf02-8224-4167-a737-8cbe1a0d5208}
- VideoPlayer
- VideoPlayer
- en-US
- 15.0
- true
- Windows Store
- 10.0
- 10.0.18362.0
- 10.0.15063.0
- VideoPlayer_TemporaryKey.pfx
- EB6A55E244E582B009FB1C12D3D915243789F63A
-
-
-
-
- Debug
- ARM
-
-
- Debug
- ARM64
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- ARM
-
-
- Release
- ARM64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- Application
- $(DefaultPlatformToolset)
- Unicode
-
-
- true
- true
-
-
- false
- true
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Use
- pch.h
- $(IntDir)pch.pch
- Level4
- %(AdditionalOptions) /bigobj
- 4453;28204
-
-
-
-
- _DEBUG;%(PreprocessorDefinitions)
-
-
-
-
- NDEBUG;%(PreprocessorDefinitions)
-
-
-
-
-
-
- App.xaml
-
-
-
-
- Designer
-
-
-
-
- Designer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Create
-
-
- App.xaml
-
-
-
-
-
- App.xaml
-
-
-
-
-
-
-
- false
-
-
-
-
- {765365e4-9553-4900-9f69-e26d4309c8da}
-
-
- {f7d32bd0-2749-483e-9a0d-1635ef7e3136}
-
-
-
-
-
- npx --no-install react-native bundle --platform windows --entry-file index.js --bundle-output $(MSBuildThisFileDirectory)/Bundle/index.windows.bundle --assets-dest $(MSBuildThisFileDirectory)/Bundle
-
- True
-
-
-
-
-
-
-
-
- This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+ true
+ true
+ true
+ {bf9ff035-b976-4990-86fe-09d015e91c20}
+ videoplayer
+ videoplayer
+ en-US
+ 16.0
+ true
+ Windows Store
+ 10.0
+ 10.0.18362.0
+ 10.0.16299.0
+ videoplayer_TemporaryKey.pfx
+ 740AAD66EBCE590C21351A8D4323BDD9FB477469
+ password
+
+
+
+ $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'node_modules\react-native-windows\package.json'))\node_modules\react-native-windows\
+
+
+
+ Debug
+ ARM
+
+
+ Debug
+ ARM64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ ARM
+
+
+ Release
+ ARM64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ Application
+ Unicode
+
+
+ true
+ true
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Use
+ pch.h
+ $(IntDir)pch.pch
+ Level4
+ %(AdditionalOptions) /bigobj
+ 4453;28204
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+
+
+ MainPage.xaml
+ Code
+
+
+
+
+
+ App.xaml
+
+
+
+
+ Designer
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MainPage.xaml
+ Code
+
+
+
+
+ Create
+
+
+ App.xaml
+
+
+
+
+
+ App.xaml
+
+
+ MainPage.xaml
+ Code
+
+
+
+
+
+
+ false
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+ This project references targets in your node_modules\react-native-windows folder. The missing file is {0}.
+
+
+
+
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
diff --git a/examples/basic/windows/VideoPlayer/VideoPlayer.vcxproj.filters b/examples/basic/windows/VideoPlayer/videoplayer.vcxproj.filters
similarity index 90%
rename from examples/basic/windows/VideoPlayer/VideoPlayer.vcxproj.filters
rename to examples/basic/windows/VideoPlayer/videoplayer.vcxproj.filters
index 28e3f728..2aa08b71 100644
--- a/examples/basic/windows/VideoPlayer/VideoPlayer.vcxproj.filters
+++ b/examples/basic/windows/VideoPlayer/videoplayer.vcxproj.filters
@@ -1,59 +1,63 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Assets
-
-
- Assets
-
-
- Assets
-
-
- Assets
-
-
- Assets
-
-
- Assets
-
-
- Assets
-
-
-
-
-
-
-
- {e48dc53e-40b1-40cb-970a-f89935452892}
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+
+
+
+
+
+ {e48dc53e-40b1-40cb-970a-f89935452892}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/basic/yarn.lock b/examples/basic/yarn.lock
index d9970938..4eddaeb5 100644
--- a/examples/basic/yarn.lock
+++ b/examples/basic/yarn.lock
@@ -2,681 +2,738 @@
# yarn lockfile v1
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
- integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"
+ integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
dependencies:
- "@babel/highlight" "^7.0.0"
+ "@babel/highlight" "^7.16.7"
-"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.0.tgz#9b00f73554edd67bebc86df8303ef678be3d7b48"
- integrity sha512-FuRhDRtsd6IptKpHXAa+4WPZYY2ZzgowkbLBecEDDSje1X/apG7jQM33or3NdOmjXBKWGOg4JmSiRfUfuTtHXw==
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60"
+ integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==
+
+"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.5", "@babel/core@^7.8.4":
+ version "7.16.12"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784"
+ integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==
dependencies:
- "@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.6.0"
- "@babel/helpers" "^7.6.0"
- "@babel/parser" "^7.6.0"
- "@babel/template" "^7.6.0"
- "@babel/traverse" "^7.6.0"
- "@babel/types" "^7.6.0"
- convert-source-map "^1.1.0"
+ "@babel/code-frame" "^7.16.7"
+ "@babel/generator" "^7.16.8"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helpers" "^7.16.7"
+ "@babel/parser" "^7.16.12"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.16.10"
+ "@babel/types" "^7.16.8"
+ convert-source-map "^1.7.0"
debug "^4.1.0"
- json5 "^2.1.0"
- lodash "^4.17.13"
- resolve "^1.3.2"
- semver "^5.4.1"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.1.2"
+ semver "^6.3.0"
source-map "^0.5.0"
-"@babel/generator@^7.0.0", "@babel/generator@^7.4.0", "@babel/generator@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56"
- integrity sha512-Ms8Mo7YBdMMn1BYuNtKuP/z0TgEIhbcyB8HVR6PPNYp4P61lMsABiS4A3VG1qznjXVCf3r+fVHhm4efTYVsySA==
+"@babel/generator@^7.16.8", "@babel/generator@^7.5.0":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe"
+ integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==
dependencies:
- "@babel/types" "^7.6.0"
+ "@babel/types" "^7.16.8"
jsesc "^2.5.1"
- lodash "^4.17.13"
source-map "^0.5.0"
- trim-right "^1.0.1"
-"@babel/helper-annotate-as-pure@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
- integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
+"@babel/helper-annotate-as-pure@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
+ integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.16.7"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
- integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b"
+ integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/helper-explode-assignable-expression" "^7.16.7"
+ "@babel/types" "^7.16.7"
-"@babel/helper-builder-react-jsx@^7.3.0":
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4"
- integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b"
+ integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
dependencies:
- "@babel/types" "^7.3.0"
- esutils "^2.0.0"
+ "@babel/compat-data" "^7.16.4"
+ "@babel/helper-validator-option" "^7.16.7"
+ browserslist "^4.17.5"
+ semver "^6.3.0"
-"@babel/helper-call-delegate@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
- integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==
+"@babel/helper-create-class-features-plugin@^7.16.7":
+ version "7.16.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz#8a6959b9cc818a88815ba3c5474619e9c0f2c21c"
+ integrity sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==
dependencies:
- "@babel/helper-hoist-variables" "^7.4.4"
- "@babel/traverse" "^7.4.4"
- "@babel/types" "^7.4.4"
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-member-expression-to-functions" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
-"@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f"
- integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng==
+"@babel/helper-create-regexp-features-plugin@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48"
+ integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-member-expression-to-functions" "^7.5.5"
- "@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.5.5"
- "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ regexpu-core "^4.7.1"
-"@babel/helper-define-map@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369"
- integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==
+"@babel/helper-define-polyfill-provider@^0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665"
+ integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/types" "^7.5.5"
- lodash "^4.17.13"
+ "@babel/helper-compilation-targets" "^7.13.0"
+ "@babel/helper-module-imports" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/traverse" "^7.13.0"
+ debug "^4.1.1"
+ lodash.debounce "^4.0.8"
+ resolve "^1.14.2"
+ semver "^6.1.2"
-"@babel/helper-explode-assignable-expression@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
- integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
+"@babel/helper-environment-visitor@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7"
+ integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
dependencies:
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.16.7"
-"@babel/helper-function-name@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
- integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
+"@babel/helper-explode-assignable-expression@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a"
+ integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==
dependencies:
- "@babel/helper-get-function-arity" "^7.0.0"
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.16.7"
-"@babel/helper-get-function-arity@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
- integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
+"@babel/helper-function-name@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f"
+ integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/helper-get-function-arity" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/types" "^7.16.7"
-"@babel/helper-hoist-variables@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
- integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==
+"@babel/helper-get-function-arity@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419"
+ integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.16.7"
-"@babel/helper-member-expression-to-functions@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590"
- integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==
+"@babel/helper-hoist-variables@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246"
+ integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
dependencies:
- "@babel/types" "^7.5.5"
+ "@babel/types" "^7.16.7"
-"@babel/helper-module-imports@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
- integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
+"@babel/helper-member-expression-to-functions@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0"
+ integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.16.7"
-"@babel/helper-module-transforms@^7.4.4":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
- integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==
+"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
+ integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-simple-access" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/template" "^7.4.4"
- "@babel/types" "^7.5.5"
- lodash "^4.17.13"
+ "@babel/types" "^7.16.7"
-"@babel/helper-optimise-call-expression@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5"
- integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==
+"@babel/helper-module-transforms@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41"
+ integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-simple-access" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
+ "@babel/helper-validator-identifier" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.16.7"
+ "@babel/types" "^7.16.7"
-"@babel/helper-plugin-utils@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
- integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
-
-"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351"
- integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==
+"@babel/helper-optimise-call-expression@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2"
+ integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==
dependencies:
- lodash "^4.17.13"
+ "@babel/types" "^7.16.7"
-"@babel/helper-remap-async-to-generator@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
- integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-wrap-function" "^7.1.0"
- "@babel/template" "^7.1.0"
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.0.0"
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5"
+ integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
-"@babel/helper-replace-supers@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
- integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==
+"@babel/helper-replace-supers@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1"
+ integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==
dependencies:
- "@babel/helper-member-expression-to-functions" "^7.5.5"
- "@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/traverse" "^7.5.5"
- "@babel/types" "^7.5.5"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-member-expression-to-functions" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/traverse" "^7.16.7"
+ "@babel/types" "^7.16.7"
-"@babel/helper-simple-access@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
- integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
+"@babel/helper-simple-access@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7"
+ integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
dependencies:
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.16.7"
-"@babel/helper-split-export-declaration@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
- integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
+"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09"
+ integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.16.0"
-"@babel/helper-wrap-function@^7.1.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
- integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==
+"@babel/helper-split-export-declaration@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b"
+ integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/template" "^7.1.0"
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.2.0"
+ "@babel/types" "^7.16.7"
-"@babel/helpers@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.0.tgz#21961d16c6a3c3ab597325c34c465c0887d31c6e"
- integrity sha512-W9kao7OBleOjfXtFGgArGRX6eCP0UEcA2ZWEWNkJdRZnHhW4eEbeswbG3EwaRsnQUAEGWYgMq1HsIXuNNNy2eQ==
- dependencies:
- "@babel/template" "^7.6.0"
- "@babel/traverse" "^7.6.0"
- "@babel/types" "^7.6.0"
+"@babel/helper-validator-identifier@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
+ integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
-"@babel/highlight@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
- integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
+"@babel/helper-validator-option@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23"
+ integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
+
+"@babel/helpers@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc"
+ integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==
dependencies:
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/highlight@^7.16.7":
+ version "7.16.10"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88"
+ integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.16.7"
chalk "^2.0.0"
- esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b"
- integrity sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ==
+"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7", "@babel/parser@^7.7.0":
+ version "7.16.12"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6"
+ integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==
"@babel/plugin-external-helpers@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.2.0.tgz#7f4cb7dee651cd380d2034847d914288467a6be4"
- integrity sha512-QFmtcCShFkyAsNtdCM3lJPmRe1iB+vPZymlB4LnDIKEBj2yKQLQKtoxXxJ8ePT5fwMl4QGg303p4mB0UsSI2/g==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.16.7.tgz#dd91e9b22d52f606461e7fcb4dc99a8b3392dd84"
+ integrity sha512-3MvRbPgl957CR3ZMeW/ukGrKDM3+m5vtTkgrBAKKbUgrAkb1molwjRqUvAYsCnwboN1vXgHStotdhAvTgQS/Gw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-proposal-class-properties@^7.0.0":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4"
- integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0"
+ integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.5.5"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-proposal-export-default-from@^7.0.0":
- version "7.5.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz#2c0ac2dcc36e3b2443fead2c3c5fc796fb1b5145"
- integrity sha512-wr9Itk05L1/wyyZKVEmXWCdcsp/e185WUNl6AfYZeEKYaUPPvHXRDqO5K1VH7/UamYqGJowFRuCv30aDYZawsg==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz#a40ab158ca55627b71c5513f03d3469026a9e929"
+ integrity sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-export-default-from" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-export-default-from" "^7.16.7"
"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.4.4.tgz#41c360d59481d88e0ce3a3f837df10121a769b39"
- integrity sha512-Amph7Epui1Dh/xxUxS2+K22/MUi6+6JVTvy3P58tja3B6yKTSjwwx0/d83rF7551D6PVSSoplQb8GCwqec7HRw==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99"
+ integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
"@babel/plugin-proposal-object-rest-spread@^7.0.0":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58"
- integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8"
+ integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
+ "@babel/compat-data" "^7.16.4"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.16.7"
"@babel/plugin-proposal-optional-catch-binding@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5"
- integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf"
+ integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
"@babel/plugin-proposal-optional-chaining@^7.0.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.6.0.tgz#e9bf1f9b9ba10c77c033082da75f068389041af8"
- integrity sha512-kj4gkZ6qUggkprRq3Uh5KP8XnE1MdIO0J7MhdDX8+rAbB6dJ2UrensGIS+0NPZAaaJ1Vr0PN6oLUgXMU1uMcSg==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a"
+ integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-optional-chaining" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-syntax-class-properties@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.2.0.tgz#23b3b7b9bcdabd73672a9149f728cd3be6214812"
- integrity sha512-UxYaGXYQ7rrKJS/PxIKRkv3exi05oH7rokBAsmCSsCxz1sVPZ7Fu6FzKoGgUvmY+0YgSkYHgUoCh5R5bCNBQlw==
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
"@babel/plugin-syntax-dynamic-import@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
- integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+ integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz#edd83b7adc2e0d059e2467ca96c650ab6d2f3820"
- integrity sha512-c7nqUnNST97BWPtoe+Ssi+fJukc9P9/JMZ71IOMNQWza2E+Psrd46N6AEvtw6pqK+gt7ChjXyrw4SPDO79f3Lw==
+"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz#fa89cf13b60de2c3f79acdc2b52a21174c6de060"
+ integrity sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c"
- integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg==
+"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.16.7", "@babel/plugin-syntax-flow@^7.2.0":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832"
+ integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7"
- integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==
+"@babel/plugin-syntax-import-meta@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.2.0.tgz#f75083dfd5ade73e783db729bbd87e7b9efb7624"
- integrity sha512-lRCEaKE+LTxDQtgbYajI04ddt6WW0WJq57xqkAZ+s11h4YgfRHhVA/Y2VhfPzzFD4qeLHWg32DMp9HooY4Kqlg==
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
- integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
+"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665"
+ integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-syntax-optional-catch-binding@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c"
- integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==
+"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-optional-chaining@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz#a59d6ae8c167e7608eaa443fda9fa8fa6bf21dff"
- integrity sha512-HtGCtvp5Uq/jH/WNUPkK6b7rufnCPLLlDAFN7cmACoIjaOOiXxUt3SswU5loHqrhtqTsa/WoLQ1OQ1AGuZqaWA==
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-typescript@^7.2.0":
- version "7.3.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991"
- integrity sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==
+"@babel/plugin-syntax-numeric-separator@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-typescript@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8"
+ integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-arrow-functions@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
- integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154"
+ integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-async-to-generator@^7.0.0":
- version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e"
- integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==
- dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-remap-async-to-generator" "^7.1.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-block-scoped-functions@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
- integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620"
+ integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-block-scoping@^7.0.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc"
- integrity sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87"
+ integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- lodash "^4.17.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-classes@^7.0.0":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9"
- integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00"
+ integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-define-map" "^7.5.5"
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.5.5"
- "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
globals "^11.1.0"
"@babel/plugin-transform-computed-properties@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
- integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470"
+ integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-destructuring@^7.0.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6"
- integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23"
+ integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-exponentiation-operator@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
- integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b"
+ integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-flow-strip-types@^7.0.0":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7"
- integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8"
+ integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-flow" "^7.16.7"
"@babel/plugin-transform-for-of@^7.0.0":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
- integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c"
+ integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-function-name@^7.0.0":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
- integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf"
+ integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-literals@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
- integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1"
+ integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-member-expression-literals@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d"
- integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384"
+ integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-modules-commonjs@^7.0.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486"
- integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe"
+ integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
dependencies:
- "@babel/helper-module-transforms" "^7.4.4"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-simple-access" "^7.1.0"
- babel-plugin-dynamic-import-node "^2.3.0"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-simple-access" "^7.16.7"
+ babel-plugin-dynamic-import-node "^2.3.3"
"@babel/plugin-transform-object-assign@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.2.0.tgz#6fdeea42be17040f119e38e23ea0f49f31968bde"
- integrity sha512-nmE55cZBPFgUktbF2OuoZgPRadfxosLOpSgzEPYotKSls9J4pEPcembi8r78RU37Rph6UApCpNmsQA4QMWK9Ng==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.16.7.tgz#5fe08d63dccfeb6a33aa2638faf98e5c584100f8"
+ integrity sha512-R8mawvm3x0COTJtveuoqZIjNypn2FjfvXZr4pSQ8VhEFBuQGBz4XhHasZtHXjgXU4XptZ4HtGof3NoYc93ZH9Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-object-super@^7.0.0":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9"
- integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94"
+ integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.5.5"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
-"@babel/plugin-transform-parameters@^7.0.0":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
- integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
+"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f"
+ integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==
dependencies:
- "@babel/helper-call-delegate" "^7.4.4"
- "@babel/helper-get-function-arity" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-property-literals@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905"
- integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55"
+ integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-react-display-name@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0"
- integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340"
+ integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx-self@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz#f432ad0cba14c4a1faf44f0076c69e42a4d4479e"
+ integrity sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-react-jsx-source@^7.0.0":
- version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b"
- integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz#1879c3f23629d287cc6186a6c683154509ec70c0"
+ integrity sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-react-jsx@^7.0.0":
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290"
- integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4"
+ integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==
dependencies:
- "@babel/helper-builder-react-jsx" "^7.3.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-jsx" "^7.16.7"
+ "@babel/types" "^7.16.7"
"@babel/plugin-transform-regenerator@^7.0.0":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f"
- integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb"
+ integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==
dependencies:
- regenerator-transform "^0.14.0"
+ regenerator-transform "^0.14.2"
"@babel/plugin-transform-runtime@^7.0.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.0.tgz#85a3cce402b28586138e368fce20ab3019b9713e"
- integrity sha512-Da8tMf7uClzwUm/pnJ1S93m/aRXmoYNDD7TkHua8xBDdaAs54uZpTWvEt6NGwmoVMb9mZbntfTqmG2oSzN/7Vg==
+ version "7.16.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz#53d9fd3496daedce1dd99639097fa5d14f4c7c2c"
+ integrity sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- resolve "^1.8.1"
- semver "^5.5.1"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ babel-plugin-polyfill-corejs2 "^0.3.0"
+ babel-plugin-polyfill-corejs3 "^0.5.0"
+ babel-plugin-polyfill-regenerator "^0.3.0"
+ semver "^6.3.0"
"@babel/plugin-transform-shorthand-properties@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
- integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a"
+ integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-spread@^7.0.0":
- version "7.2.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406"
- integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44"
+ integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
"@babel/plugin-transform-sticky-regex@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1"
- integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660"
+ integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-template-literals@^7.0.0":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
- integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab"
+ integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-typescript@^7.0.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.6.0.tgz#48d78405f1aa856ebeea7288a48a19ed8da377a6"
- integrity sha512-yzw7EopOOr6saONZ3KA3lpizKnWRTe+rfBqg4AmQbSow7ik7fqmzrfIqt053osLwLE2AaTqGinLM2tl6+M/uog==
+"@babel/plugin-transform-typescript@^7.5.0":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0"
+ integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.6.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-typescript" "^7.2.0"
+ "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-typescript" "^7.16.7"
"@babel/plugin-transform-unicode-regex@^7.0.0":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f"
- integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2"
+ integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.4.4"
- regexpu-core "^4.5.4"
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/register@^7.0.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.6.0.tgz#76b6f466714680f4becafd45beeb2a7b87431abf"
- integrity sha512-78BomdN8el+x/nkup9KwtjJXuptW5oXMFmP11WoM2VJBjxrKv4grC3qjpLL8RGGUYUGsm57xnjYFM2uom+jWUQ==
+ version "7.16.9"
+ resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.16.9.tgz#fcfb23cfdd9ad95c9771e58183de83b513857806"
+ integrity sha512-jJ72wcghdRIlENfvALcyODhNoGE5j75cYHdC+aQMh6cU/P86tiiXTp9XYZct1UxUMo/4+BgQRyNZEGx0KWGS+g==
dependencies:
+ clone-deep "^4.0.1"
find-cache-dir "^2.0.0"
- lodash "^4.17.13"
- mkdirp "^0.5.1"
+ make-dir "^2.1.0"
pirates "^4.0.0"
- source-map-support "^0.5.9"
+ source-map-support "^0.5.16"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.0.tgz#4fc1d642a9fd0299754e8b5de62c631cf5568205"
- integrity sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ==
+"@babel/runtime-corejs3@^7.12.1":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz#ea533d96eda6fdc76b1812248e9fbd0c11d4a1a7"
+ integrity sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==
dependencies:
- regenerator-runtime "^0.13.2"
+ core-js-pure "^3.20.2"
+ regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.4.0":
- version "7.12.5"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
- integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.8.4":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa"
+ integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6"
- integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==
+"@babel/template@^7.0.0", "@babel/template@^7.16.7", "@babel/template@^7.3.3":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
+ integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.6.0"
- "@babel/types" "^7.6.0"
+ "@babel/code-frame" "^7.16.7"
+ "@babel/parser" "^7.16.7"
+ "@babel/types" "^7.16.7"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.0.tgz#389391d510f79be7ce2ddd6717be66d3fed4b516"
- integrity sha512-93t52SaOBgml/xY74lsmt7xOR4ufYvhb5c5qiM6lu4J/dWGMAfAh6eKw4PjLes6DI6nQgearoxnFJk60YchpvQ==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.7.0":
+ version "7.16.10"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f"
+ integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==
dependencies:
- "@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.6.0"
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/parser" "^7.6.0"
- "@babel/types" "^7.6.0"
+ "@babel/code-frame" "^7.16.7"
+ "@babel/generator" "^7.16.8"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-hoist-variables" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
+ "@babel/parser" "^7.16.10"
+ "@babel/types" "^7.16.8"
debug "^4.1.0"
globals "^11.1.0"
- lodash "^4.17.13"
-"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648"
- integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==
+"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.7.0":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1"
+ integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==
dependencies:
- esutils "^2.0.2"
- lodash "^4.17.13"
+ "@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
"@cnakazawa/watch@^1.0.3":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
- integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
+ integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==
dependencies:
exec-sh "^0.3.2"
minimist "^1.2.0"
"@hapi/address@2.x.x":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.1.tgz#61395b5ed94c4cb19c2dc4c85969cff3d40d583f"
- integrity sha512-DYuHzu978pP1XW1GD3HGvLnAFjbQTIgc2+V153FGkbS2pgo9haigCdwBnUDrbhaOkgiJlbZvoEqDrcxSLHpiWA==
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
+ integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==
"@hapi/bourne@1.x.x":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a"
integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==
-"@hapi/hoek@8.x.x":
- version "8.2.4"
- resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.2.4.tgz#684a14f4ca35d46f44abc87dfc696e5e4fe8a020"
- integrity sha512-Ze5SDNt325yZvNO7s5C4fXDscjJ6dcqLFXJQ/M7dZRQCewuDj2iDUuBi6jLQt+APbW9RjjVEvLr35FXuOEqjow==
+"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0":
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
+ integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
"@hapi/joi@^15.0.3":
version "15.1.1"
@@ -689,13 +746,29 @@
"@hapi/topo" "3.x.x"
"@hapi/topo@3.x.x":
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.3.tgz#c7a02e0d936596d29f184e6d7fdc07e8b5efce11"
- integrity sha512-JmS9/vQK6dcUYn7wc2YZTqzIKubAQcJKu2KCKAru6es482U5RT5fP1EXCPtlXpiK7PR0On/kpQKI4fRKkzpZBQ==
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
+ integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==
dependencies:
- "@hapi/hoek" "8.x.x"
+ "@hapi/hoek" "^8.3.0"
-"@jest/console@^24.7.1", "@jest/console@^24.9.0":
+"@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+ dependencies:
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ get-package-type "^0.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
+
+"@istanbuljs/schema@^0.1.2":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jest/console@^24.9.0":
version "24.9.0"
resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0"
integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==
@@ -704,49 +777,59 @@
chalk "^2.0.1"
slash "^2.0.0"
-"@jest/core@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4"
- integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==
+"@jest/console@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb"
+ integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/reporters" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- ansi-escapes "^3.0.0"
- chalk "^2.0.1"
- exit "^0.1.2"
- graceful-fs "^4.1.15"
- jest-changed-files "^24.9.0"
- jest-config "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-message-util "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-resolve-dependencies "^24.9.0"
- jest-runner "^24.9.0"
- jest-runtime "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- jest-watcher "^24.9.0"
- micromatch "^3.1.10"
- p-each-series "^1.0.0"
- realpath-native "^1.1.0"
- rimraf "^2.5.4"
- slash "^2.0.0"
- strip-ansi "^5.0.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ jest-message-util "^25.5.0"
+ jest-util "^25.5.0"
+ slash "^3.0.0"
-"@jest/environment@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18"
- integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==
+"@jest/core@^25.5.4":
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4"
+ integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==
dependencies:
- "@jest/fake-timers" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
+ "@jest/console" "^25.5.0"
+ "@jest/reporters" "^25.5.1"
+ "@jest/test-result" "^25.5.0"
+ "@jest/transform" "^25.5.1"
+ "@jest/types" "^25.5.0"
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.4"
+ jest-changed-files "^25.5.0"
+ jest-config "^25.5.4"
+ jest-haste-map "^25.5.1"
+ jest-message-util "^25.5.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.5.1"
+ jest-resolve-dependencies "^25.5.4"
+ jest-runner "^25.5.4"
+ jest-runtime "^25.5.4"
+ jest-snapshot "^25.5.1"
+ jest-util "^25.5.0"
+ jest-validate "^25.5.0"
+ jest-watcher "^25.5.0"
+ micromatch "^4.0.2"
+ p-each-series "^2.1.0"
+ realpath-native "^2.0.0"
+ rimraf "^3.0.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
+"@jest/environment@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37"
+ integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==
+ dependencies:
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
"@jest/fake-timers@^24.9.0":
version "24.9.0"
@@ -757,34 +840,59 @@
jest-message-util "^24.9.0"
jest-mock "^24.9.0"
-"@jest/reporters@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43"
- integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==
+"@jest/fake-timers@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185"
+ integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/types" "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ lolex "^5.0.0"
+
+"@jest/globals@^25.5.2":
+ version "25.5.2"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88"
+ integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==
+ dependencies:
+ "@jest/environment" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ expect "^25.5.0"
+
+"@jest/reporters@^25.5.1":
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b"
+ integrity sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/transform" "^25.5.1"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.2"
- istanbul-lib-coverage "^2.0.2"
- istanbul-lib-instrument "^3.0.1"
- istanbul-lib-report "^2.0.4"
- istanbul-lib-source-maps "^3.0.1"
- istanbul-reports "^2.2.6"
- jest-haste-map "^24.9.0"
- jest-resolve "^24.9.0"
- jest-runtime "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.6.0"
- node-notifier "^5.4.2"
- slash "^2.0.0"
+ graceful-fs "^4.2.4"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^4.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.0.2"
+ jest-haste-map "^25.5.1"
+ jest-resolve "^25.5.1"
+ jest-util "^25.5.0"
+ jest-worker "^25.5.0"
+ slash "^3.0.0"
source-map "^0.6.0"
- string-length "^2.0.0"
+ string-length "^3.1.0"
+ terminal-link "^2.0.0"
+ v8-to-istanbul "^4.1.3"
+ optionalDependencies:
+ node-notifier "^6.0.0"
-"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0":
+"@jest/source-map@^24.9.0":
version "24.9.0"
resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714"
integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==
@@ -793,6 +901,15 @@
graceful-fs "^4.1.15"
source-map "^0.6.0"
+"@jest/source-map@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b"
+ integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==
+ dependencies:
+ callsites "^3.0.0"
+ graceful-fs "^4.2.4"
+ source-map "^0.6.0"
+
"@jest/test-result@^24.9.0":
version "24.9.0"
resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca"
@@ -802,37 +919,48 @@
"@jest/types" "^24.9.0"
"@types/istanbul-lib-coverage" "^2.0.0"
-"@jest/test-sequencer@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31"
- integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==
+"@jest/test-result@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c"
+ integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==
dependencies:
- "@jest/test-result" "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-runner "^24.9.0"
- jest-runtime "^24.9.0"
+ "@jest/console" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
-"@jest/transform@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56"
- integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==
+"@jest/test-sequencer@^25.5.4":
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737"
+ integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==
+ dependencies:
+ "@jest/test-result" "^25.5.0"
+ graceful-fs "^4.2.4"
+ jest-haste-map "^25.5.1"
+ jest-runner "^25.5.4"
+ jest-runtime "^25.5.4"
+
+"@jest/transform@^25.5.1":
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3"
+ integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^24.9.0"
- babel-plugin-istanbul "^5.1.0"
- chalk "^2.0.1"
+ "@jest/types" "^25.5.0"
+ babel-plugin-istanbul "^6.0.0"
+ chalk "^3.0.0"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
- graceful-fs "^4.1.15"
- jest-haste-map "^24.9.0"
- jest-regex-util "^24.9.0"
- jest-util "^24.9.0"
- micromatch "^3.1.10"
+ graceful-fs "^4.2.4"
+ jest-haste-map "^25.5.1"
+ jest-regex-util "^25.2.6"
+ jest-util "^25.5.0"
+ micromatch "^4.0.2"
pirates "^4.0.1"
- realpath-native "^1.1.0"
- slash "^2.0.0"
+ realpath-native "^2.0.0"
+ slash "^3.0.0"
source-map "^0.6.1"
- write-file-atomic "2.4.1"
+ write-file-atomic "^3.0.0"
"@jest/types@^24.9.0":
version "24.9.0"
@@ -853,118 +981,201 @@
"@types/yargs" "^15.0.0"
chalk "^3.0.0"
-"@react-native-community/cli-debugger-ui@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-3.0.0.tgz#d01d08d1e5ddc1633d82c7d84d48fff07bd39416"
- integrity sha512-m3X+iWLsK/H7/b7PpbNO33eQayR/+M26la4ZbYe1KRke5Umg4PIWsvg21O8Tw4uJcY8LA5hsP+rBi/syBkBf0g==
+"@react-native-community/cli-debugger-ui@^4.13.1":
+ version "4.13.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.13.1.tgz#07de6d4dab80ec49231de1f1fbf658b4ad39b32c"
+ integrity sha512-UFnkg5RTq3s2X15fSkrWY9+5BKOFjihNSnJjTV2H5PtTUFbd55qnxxPw8CxSfK0bXb1IrSvCESprk2LEpqr5cg==
dependencies:
serve-static "^1.13.1"
-"@react-native-community/cli-platform-android@^3.0.0":
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-3.1.4.tgz#61f964dc311623e60b0fb29c5f3732cc8a6f076f"
- integrity sha512-ClSdY20F0gzWVLTqCv7vHjnUqOcuq10jd9GgHX6lGSc2GI+Ql3/aQg3tmG4uY3KXNNwAv3U8QCoYgg1WGfwiHA==
+"@react-native-community/cli-hermes@^4.13.0":
+ version "4.13.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-4.13.0.tgz#6243ed9c709dad5e523f1ccd7d21066b32f2899d"
+ integrity sha512-oG+w0Uby6rSGsUkJGLvMQctZ5eVRLLfhf84lLyz942OEDxFRa9U19YJxOe9FmgCKtotbYiM3P/XhK+SVCuerPQ==
dependencies:
- "@react-native-community/cli-tools" "^3.0.0"
- chalk "^2.4.2"
+ "@react-native-community/cli-platform-android" "^4.13.0"
+ "@react-native-community/cli-tools" "^4.13.0"
+ chalk "^3.0.0"
+ hermes-profile-transformer "^0.0.6"
+ ip "^1.1.5"
+
+"@react-native-community/cli-platform-android@^4.10.0", "@react-native-community/cli-platform-android@^4.13.0":
+ version "4.13.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.13.0.tgz#922681ec82ee1aadd993598b814df1152118be02"
+ integrity sha512-3i8sX8GklEytUZwPnojuoFbCjIRzMugCdzDIdZ9UNmi/OhD4/8mLGO0dgXfT4sMWjZwu3qjy45sFfk2zOAgHbA==
+ dependencies:
+ "@react-native-community/cli-tools" "^4.13.0"
+ chalk "^3.0.0"
execa "^1.0.0"
+ fs-extra "^8.1.0"
+ glob "^7.1.3"
jetifier "^1.6.2"
- logkitty "^0.6.0"
+ lodash "^4.17.15"
+ logkitty "^0.7.1"
slash "^3.0.0"
xmldoc "^1.1.2"
-"@react-native-community/cli-platform-ios@^3.0.0":
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-3.2.0.tgz#c469444f5993c9e6737a4b16d78cf033e3702f00"
- integrity sha512-pzEnx68H6+mHBq5jsMrr3UmAmkrLSMlC9BZ4yoUdfUXCQq6/R70zNYvH4hjUw8h2Al7Kgq53UzHUsM0ph8TSWQ==
+"@react-native-community/cli-platform-ios@^4.10.0":
+ version "4.13.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz#a738915c68cac86df54e578b59a1311ea62b1aef"
+ integrity sha512-6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA==
dependencies:
- "@react-native-community/cli-tools" "^3.0.0"
- chalk "^2.4.2"
+ "@react-native-community/cli-tools" "^4.13.0"
+ chalk "^3.0.0"
+ glob "^7.1.3"
js-yaml "^3.13.1"
+ lodash "^4.17.15"
+ plist "^3.0.1"
xcode "^2.0.0"
-"@react-native-community/cli-tools@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-3.0.0.tgz#fe48b80822ed7e49b8af051f9fe41e22a2a710b1"
- integrity sha512-8IhQKZdf3E4CR8T7HhkPGgorot/cLkRDgneJFDSWk/wCYZAuUh4NEAdumQV7N0jLSMWX7xxiWUPi94lOBxVY9g==
+"@react-native-community/cli-server-api@^4.13.1":
+ version "4.13.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-4.13.1.tgz#bee7ee9702afce848e9d6ca3dcd5669b99b125bd"
+ integrity sha512-vQzsFKD9CjHthA2ehTQX8c7uIzlI9A7ejaIow1I9RlEnLraPH2QqVDmzIdbdh5Od47UPbRzamCgAP8Bnqv3qwQ==
dependencies:
- chalk "^2.4.2"
- lodash "^4.17.5"
- mime "^2.4.1"
- node-fetch "^2.5.0"
-
-"@react-native-community/cli-types@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-3.0.0.tgz#488d46605cb05e88537e030f38da236eeda74652"
- integrity sha512-ng6Tm537E/M42GjE4TRUxQyL8sRfClcL7bQWblOCoxPZzJ2J3bdALsjeG3vDnVCIfI/R0AeFalN9KjMt0+Z/Zg==
-
-"@react-native-community/cli@^3.0.0":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-3.2.1.tgz#2a466801eb6080a1f73358c5d740c53c24ed8c6f"
- integrity sha512-bZ/bfZ+9r1gQSxp6t7+00DcpC6vmbVYSvzUCFM/yo5k8bhsDdcy8aocscIaXXVGG+v9Edri/Q7hH9ks7L18/Rg==
- dependencies:
- "@hapi/joi" "^15.0.3"
- "@react-native-community/cli-debugger-ui" "^3.0.0"
- "@react-native-community/cli-tools" "^3.0.0"
- "@react-native-community/cli-types" "^3.0.0"
- chalk "^2.4.2"
- command-exists "^1.2.8"
- commander "^2.19.0"
+ "@react-native-community/cli-debugger-ui" "^4.13.1"
+ "@react-native-community/cli-tools" "^4.13.0"
compression "^1.7.1"
connect "^3.6.5"
+ errorhandler "^1.5.0"
+ nocache "^2.1.0"
+ pretty-format "^25.1.0"
+ serve-static "^1.13.1"
+ ws "^1.1.0"
+
+"@react-native-community/cli-tools@^4.13.0":
+ version "4.13.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-4.13.0.tgz#b406463d33af16cedc4305a9a9257ed32845cf1b"
+ integrity sha512-s4f489h5+EJksn4CfheLgv5PGOM0CDmK1UEBLw2t/ncWs3cW2VI7vXzndcd/WJHTv3GntJhXDcJMuL+Z2IAOgg==
+ dependencies:
+ chalk "^3.0.0"
+ lodash "^4.17.15"
+ mime "^2.4.1"
+ node-fetch "^2.6.0"
+ open "^6.2.0"
+ shell-quote "1.6.1"
+
+"@react-native-community/cli-types@^4.10.1":
+ version "4.10.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-4.10.1.tgz#d68a2dcd1649d3b3774823c64e5e9ce55bfbe1c9"
+ integrity sha512-ael2f1onoPF3vF7YqHGWy7NnafzGu+yp88BbFbP0ydoCP2xGSUzmZVw0zakPTC040Id+JQ9WeFczujMkDy6jYQ==
+
+"@react-native-community/cli@^4.10.0":
+ version "4.14.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.14.0.tgz#bb106a98341bfa2db36060091ff90bfe82ea4f55"
+ integrity sha512-EYJKBuxFxAu/iwNUfwDq41FjORpvSh1wvQ3qsHjzcR5uaGlWEOJrd3uNJDuKBAS0TVvbEesLF9NEXipjyRVr4Q==
+ dependencies:
+ "@hapi/joi" "^15.0.3"
+ "@react-native-community/cli-debugger-ui" "^4.13.1"
+ "@react-native-community/cli-hermes" "^4.13.0"
+ "@react-native-community/cli-server-api" "^4.13.1"
+ "@react-native-community/cli-tools" "^4.13.0"
+ "@react-native-community/cli-types" "^4.10.1"
+ chalk "^3.0.0"
+ command-exists "^1.2.8"
+ commander "^2.19.0"
cosmiconfig "^5.1.0"
deepmerge "^3.2.0"
- didyoumean "^1.2.1"
- envinfo "^7.1.0"
- errorhandler "^1.5.0"
+ envinfo "^7.7.2"
execa "^1.0.0"
find-up "^4.1.0"
- fs-extra "^7.0.1"
- glob "^7.1.1"
+ fs-extra "^8.1.0"
+ glob "^7.1.3"
graceful-fs "^4.1.3"
inquirer "^3.0.6"
- lodash "^4.17.5"
- metro "^0.56.0"
- metro-config "^0.56.0"
- metro-core "^0.56.0"
- metro-react-native-babel-transformer "^0.56.0"
+ leven "^3.1.0"
+ lodash "^4.17.15"
+ metro "^0.59.0"
+ metro-config "^0.59.0"
+ metro-core "^0.59.0"
+ metro-react-native-babel-transformer "^0.59.0"
+ metro-resolver "^0.59.0"
minimist "^1.2.0"
mkdirp "^0.5.1"
- morgan "^1.9.0"
- node-notifier "^5.2.1"
- open "^6.2.0"
+ node-stream-zip "^1.9.1"
ora "^3.4.0"
- plist "^3.0.0"
- pretty-format "^25.1.0"
+ pretty-format "^25.2.0"
semver "^6.3.0"
serve-static "^1.13.1"
- shell-quote "1.6.1"
strip-ansi "^5.2.0"
sudo-prompt "^9.0.0"
wcwidth "^1.0.1"
- ws "^1.1.0"
-"@react-native-community/eslint-config@^0.0.5":
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-0.0.5.tgz#584f6493258202a57efc22e7be66966e43832795"
- integrity sha512-jwO2tnKaTPTLX5XYXMHGEnFdf543SU7jz98/OF5mDH3b7lP+BOaCD+jVfqqHoDRkcqyPlYiR1CgwVGWpi0vMWg==
+"@react-native-community/eslint-config@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-1.1.0.tgz#2dacad06dd44d13e778510864473fc6091f080c0"
+ integrity sha512-hwb1hC28BhkwLwnO6vDISV6XZbipw2RIEhBVBN+pE7AUG9HjFXxoksiiOSoYgox9C8g86VJwHnKpak/3NnVBkQ==
dependencies:
- "@typescript-eslint/eslint-plugin" "^1.5.0"
- "@typescript-eslint/parser" "^1.5.0"
- babel-eslint "10.0.1"
- eslint-plugin-eslint-comments "^3.1.1"
+ "@react-native-community/eslint-plugin" "^1.1.0"
+ "@typescript-eslint/eslint-plugin" "^2.25.0"
+ "@typescript-eslint/parser" "^2.25.0"
+ babel-eslint "10.1.0"
+ eslint-config-prettier "^6.10.1"
+ eslint-plugin-eslint-comments "^3.1.2"
eslint-plugin-flowtype "2.50.3"
eslint-plugin-jest "22.4.1"
- eslint-plugin-prettier "2.6.2"
- eslint-plugin-react "7.12.4"
- eslint-plugin-react-hooks "^1.5.1"
- eslint-plugin-react-native "3.6.0"
- prettier "1.16.4"
+ eslint-plugin-prettier "3.1.2"
+ eslint-plugin-react "7.19.0"
+ eslint-plugin-react-hooks "^3.0.0"
+ eslint-plugin-react-native "3.8.1"
+ prettier "^2.0.2"
-"@types/babel__core@^7.1.0":
- version "7.1.3"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30"
- integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==
+"@react-native-community/eslint-plugin@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/eslint-plugin/-/eslint-plugin-1.1.0.tgz#e42b1bef12d2415411519fd528e64b593b1363dc"
+ integrity sha512-W/J0fNYVO01tioHjvYWQ9m6RgndVtbElzYozBq1ZPrHO/iCzlqoySHl4gO/fpCl9QEFjvJfjPgtPMTMlsoq5DQ==
+
+"@react-native-picker/picker@^1.9.11":
+ version "1.16.8"
+ resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-1.16.8.tgz#2126ca54d4a5a3e9ea5e3f39ad1e6643f8e4b3d4"
+ integrity sha512-pacdQDX6V6EmjF+HoiIh6u++qx4mTK0WnhgUHRc01B+Qt5eoeUwseBqmqfTSXTx/aHDEd6PiIw7UGvKgFoqgFQ==
+
+"@react-native-windows/cli@0.63.14":
+ version "0.63.14"
+ resolved "https://registry.yarnpkg.com/@react-native-windows/cli/-/cli-0.63.14.tgz#b077f2d090f2d63f2defa71926c4de77b0041ea8"
+ integrity sha512-RqKnAwrsA2aKqP4gYLktOrqorqvIiUMXUhe07GPh/GDzoizVgSjcgRD4x8hoxNXbU66fYFm+whvCBgfn88Ffpg==
+ dependencies:
+ "@react-native-windows/telemetry" "^0.63.5"
+ "@xmldom/xmldom" "^0.7.5"
+ chalk "^3.0.0"
+ cli-spinners "^2.2.0"
+ envinfo "^7.5.0"
+ find-up "^4.1.0"
+ glob "^7.1.1"
+ inquirer "^3.0.6"
+ mustache "^4.0.1"
+ nuget-exe "5.8.0"
+ ora "^3.4.0"
+ semver "^7.1.3"
+ shelljs "^0.8.4"
+ username "^5.1.0"
+ uuid "^3.3.2"
+ xml-parser "^1.2.1"
+ xpath "^0.0.27"
+
+"@react-native-windows/telemetry@^0.63.5":
+ version "0.63.5"
+ resolved "https://registry.yarnpkg.com/@react-native-windows/telemetry/-/telemetry-0.63.5.tgz#77d3a490b26490a642e7d7ce21cd5c06b768f4be"
+ integrity sha512-Ifd54IIcGbPjwAGfjJkRfdk5+SNtc9oCWgKMrJszIrlJ1REYVUXBo+6Xw3taKyA1Jf1eCB7DWlb98/NbqdLgcg==
+ dependencies:
+ applicationinsights "^1.8.8"
+
+"@react-native/normalize-color@*":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.0.0.tgz#da955909432474a9a0fe1cbffc66576a0447f567"
+ integrity sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==
+
+"@sinonjs/commons@^1.7.0":
+ version "1.8.3"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
+ integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==
+ dependencies:
+ type-detect "4.0.8"
+
+"@types/babel__core@^7.1.7":
+ version "7.1.18"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8"
+ integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==
dependencies:
"@babel/parser" "^7.1.0"
"@babel/types" "^7.0.0"
@@ -973,24 +1184,24 @@
"@types/babel__traverse" "*"
"@types/babel__generator@*":
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc"
- integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ==
+ version "7.6.4"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7"
+ integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==
dependencies:
"@babel/types" "^7.0.0"
"@types/babel__template@*":
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307"
- integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==
+ version "7.4.1"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969"
+ integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==
dependencies:
"@babel/parser" "^7.1.0"
"@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.0.7"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f"
- integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw==
+ version "7.14.2"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43"
+ integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==
dependencies:
"@babel/types" "^7.3.0"
@@ -999,30 +1210,78 @@
resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
- integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==
+"@types/graceful-fs@^4.1.2":
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
+ integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
+ dependencies:
+ "@types/node" "*"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
+ integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
"@types/istanbul-lib-report@*":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c"
- integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
+ integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
dependencies:
"@types/istanbul-lib-coverage" "*"
"@types/istanbul-reports@^1.1.1":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a"
- integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2"
+ integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==
dependencies:
"@types/istanbul-lib-coverage" "*"
"@types/istanbul-lib-report" "*"
"@types/json-schema@^7.0.3":
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636"
- integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==
+ version "7.0.9"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
+ integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
+
+"@types/node@*":
+ version "17.0.14"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.14.tgz#33b9b94f789a8fedd30a68efdbca4dbb06b61f20"
+ integrity sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng==
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301"
+ integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==
+
+"@types/prettier@^1.19.0":
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f"
+ integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==
+
+"@types/prop-types@*":
+ version "15.7.5"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
+ integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
+
+"@types/react-native@^0.67.6":
+ version "0.67.7"
+ resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.67.7.tgz#903b7d56fb6a95ca0de897f2925c04ee0d4adee3"
+ integrity sha512-G7vi9vE226diNNXVNbIa8HH/wPxMWHTHkn9iQtQSezaWzO5WNsKZZW2/TOzCehtBDVx4MZieTs6GsdtpBBttMA==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@^18.0.6":
+ version "18.0.9"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.9.tgz#d6712a38bd6cd83469603e7359511126f122e878"
+ integrity sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.2"
+ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
+ integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
"@types/stack-utils@^1.0.1":
version "1.0.1"
@@ -1030,70 +1289,76 @@
integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
"@types/yargs-parser@*":
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228"
- integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==
+ version "20.2.1"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129"
+ integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==
"@types/yargs@^13.0.0":
- version "13.0.2"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.2.tgz#a64674fc0149574ecd90ba746e932b5a5f7b3653"
- integrity sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ==
+ version "13.0.12"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092"
+ integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==
dependencies:
"@types/yargs-parser" "*"
"@types/yargs@^15.0.0":
- version "15.0.11"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.11.tgz#361d7579ecdac1527687bcebf9946621c12ab78c"
- integrity sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==
+ version "15.0.14"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06"
+ integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@^1.5.0":
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.13.0.tgz#22fed9b16ddfeb402fd7bcde56307820f6ebc49f"
- integrity sha512-WQHCozMnuNADiqMtsNzp96FNox5sOVpU8Xt4meaT4em8lOG1SrOv92/mUbEHQVh90sldKSfcOc/I0FOb/14G1g==
+"@typescript-eslint/eslint-plugin@^2.25.0":
+ version "2.34.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9"
+ integrity sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==
dependencies:
- "@typescript-eslint/experimental-utils" "1.13.0"
- eslint-utils "^1.3.1"
+ "@typescript-eslint/experimental-utils" "2.34.0"
functional-red-black-tree "^1.0.1"
- regexpp "^2.0.1"
- tsutils "^3.7.0"
+ regexpp "^3.0.0"
+ tsutils "^3.17.1"
-"@typescript-eslint/experimental-utils@1.13.0":
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz#b08c60d780c0067de2fb44b04b432f540138301e"
- integrity sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==
+"@typescript-eslint/experimental-utils@2.34.0":
+ version "2.34.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f"
+ integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==
dependencies:
"@types/json-schema" "^7.0.3"
- "@typescript-eslint/typescript-estree" "1.13.0"
- eslint-scope "^4.0.0"
+ "@typescript-eslint/typescript-estree" "2.34.0"
+ eslint-scope "^5.0.0"
+ eslint-utils "^2.0.0"
-"@typescript-eslint/parser@^1.5.0":
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.13.0.tgz#61ac7811ea52791c47dc9fd4dd4a184fae9ac355"
- integrity sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==
+"@typescript-eslint/parser@^2.25.0":
+ version "2.34.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8"
+ integrity sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
- "@typescript-eslint/experimental-utils" "1.13.0"
- "@typescript-eslint/typescript-estree" "1.13.0"
- eslint-visitor-keys "^1.0.0"
+ "@typescript-eslint/experimental-utils" "2.34.0"
+ "@typescript-eslint/typescript-estree" "2.34.0"
+ eslint-visitor-keys "^1.1.0"
-"@typescript-eslint/typescript-estree@1.13.0":
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz#8140f17d0f60c03619798f1d628b8434913dc32e"
- integrity sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==
+"@typescript-eslint/typescript-estree@2.34.0":
+ version "2.34.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5"
+ integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==
dependencies:
- lodash.unescape "4.0.1"
- semver "5.5.0"
+ debug "^4.1.1"
+ eslint-visitor-keys "^1.1.0"
+ glob "^7.1.6"
+ is-glob "^4.0.1"
+ lodash "^4.17.15"
+ semver "^7.3.2"
+ tsutils "^3.17.1"
+
+"@xmldom/xmldom@^0.7.5":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.5.tgz#09fa51e356d07d0be200642b0e4f91d8e6dd408d"
+ integrity sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==
abab@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f"
- integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==
-
-abbrev@1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
+ integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
abort-controller@^3.0.0:
version "3.0.0"
@@ -1105,6 +1370,7 @@ abort-controller@^3.0.0:
absolute-path@^0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7"
+ integrity sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=
accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7"
@@ -1114,58 +1380,48 @@ accepts@~1.3.5, accepts@~1.3.7:
mime-types "~2.1.24"
negotiator "0.6.2"
-acorn-globals@^4.1.0:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006"
- integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==
+acorn-globals@^4.3.2:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
+ integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
dependencies:
acorn "^6.0.1"
acorn-walk "^6.0.1"
-acorn-jsx@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f"
- integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==
+acorn-jsx@^5.2.0:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn-walk@^6.0.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913"
- integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==
-
-acorn@^5.5.3:
- version "5.7.3"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
- integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
+ integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
acorn@^6.0.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
- integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
+ version "6.4.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
+ integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
-acorn@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a"
- integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ==
+acorn@^7.1.0, acorn@^7.1.1:
+ version "7.4.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-ajv@^6.10.0, ajv@^6.10.2:
- version "6.10.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
- integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
+ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
- fast-deep-equal "^2.0.1"
+ fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^6.5.5:
- version "6.10.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
- integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
- dependencies:
- fast-deep-equal "^2.0.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
+anser@^1.4.9:
+ version "1.4.10"
+ resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b"
+ integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==
ansi-colors@^1.0.1:
version "1.1.0"
@@ -1181,11 +1437,18 @@ ansi-cyan@^0.1.1:
dependencies:
ansi-wrap "0.1.0"
-ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
+ansi-escapes@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+ansi-escapes@^4.2.1:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
ansi-fragments@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/ansi-fragments/-/ansi-fragments-0.2.1.tgz#24409c56c4cc37817c3d7caa99d8969e2de5a05e"
@@ -1209,10 +1472,6 @@ ansi-red@^0.1.1:
dependencies:
ansi-wrap "0.1.0"
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
@@ -1223,10 +1482,10 @@ ansi-regex@^4.0.0, ansi-regex@^4.1.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-ansi-regex@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
- integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+ansi-regex@^5.0.0, ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1"
@@ -1255,17 +1514,23 @@ anymatch@^2.0.0:
micromatch "^3.1.4"
normalize-path "^2.1.1"
-aproba@^1.0.3:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
- integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-
-are-we-there-yet@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3"
+anymatch@^3.0.3:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
dependencies:
- delegates "^1.0.0"
- readable-stream "^2.0.0 || ^1.1.13"
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+applicationinsights@^1.8.8:
+ version "1.8.10"
+ resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.8.10.tgz#fffa482cd1519880fb888536a87081ac05130667"
+ integrity sha512-ZLDA7mShh4mP2Z/HlFolmvhBPX1LfnbIWXrselyYVA7EKjHhri1fZzpu2EiWAmfbRxNBY6fRjoPJWbx5giKy4A==
+ dependencies:
+ cls-hooked "^4.2.2"
+ continuation-local-storage "^3.2.1"
+ diagnostic-channel "0.3.1"
+ diagnostic-channel-publishers "0.4.4"
argparse@^1.0.7:
version "1.0.10"
@@ -1287,11 +1552,7 @@ arr-diff@^4.0.0:
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-arr-flatten@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b"
-
-arr-flatten@^1.1.0:
+arr-flatten@^1.0.1, arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
@@ -1314,22 +1575,28 @@ array-equal@^1.0.0:
array-filter@~0.0.0:
version "0.0.1"
resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
+ integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw=
-array-includes@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
- integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=
+array-includes@^3.1.1:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
+ integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.7.0"
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+ get-intrinsic "^1.1.1"
+ is-string "^1.0.7"
array-map@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
+ integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=
array-reduce@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
+ integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=
array-slice@^0.2.3:
version "0.2.3"
@@ -1341,21 +1608,22 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-art@^0.10.0:
- version "0.10.1"
- resolved "https://registry.yarnpkg.com/art/-/art-0.10.1.tgz#38541883e399225c5e193ff246e8f157cf7b2146"
-
-asap@~2.0.3:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
+asap@~2.0.3, asap@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
asn1@~0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
+ integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
+ dependencies:
+ safer-buffer "~2.1.0"
-assert-plus@^1.0.0:
+assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+ integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
assign-symbols@^1.0.0:
version "1.0.0"
@@ -1367,23 +1635,34 @@ astral-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
-async-limiter@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
- integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
+async-hook-jl@^1.7.6:
+ version "1.7.6"
+ resolved "https://registry.yarnpkg.com/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68"
+ integrity sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==
+ dependencies:
+ stack-chain "^1.3.7"
+
+async-listener@^0.6.0:
+ version "0.6.10"
+ resolved "https://registry.yarnpkg.com/async-listener/-/async-listener-0.6.10.tgz#a7c97abe570ba602d782273c0de60a51e3e17cbc"
+ integrity sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==
+ dependencies:
+ semver "^5.3.0"
+ shimmer "^1.1.0"
async@^2.4.0:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381"
- integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
+ integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
dependencies:
- lodash "^4.17.11"
+ lodash "^4.17.14"
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
-atob@^2.1.1:
+atob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
@@ -1394,68 +1673,124 @@ aws-sign2@~0.7.0:
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
- integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
+ integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-babel-eslint@10.0.1:
- version "10.0.1"
- resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed"
- integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==
+babel-eslint@10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
+ integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
- eslint-scope "3.7.1"
+ "@babel/parser" "^7.7.0"
+ "@babel/traverse" "^7.7.0"
+ "@babel/types" "^7.7.0"
eslint-visitor-keys "^1.0.0"
+ resolve "^1.12.0"
-babel-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54"
- integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==
+babel-jest@^25.1.0, babel-jest@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853"
+ integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==
dependencies:
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/babel__core" "^7.1.0"
- babel-plugin-istanbul "^5.1.0"
- babel-preset-jest "^24.9.0"
- chalk "^2.4.2"
- slash "^2.0.0"
+ "@jest/transform" "^25.5.1"
+ "@jest/types" "^25.5.0"
+ "@types/babel__core" "^7.1.7"
+ babel-plugin-istanbul "^6.0.0"
+ babel-preset-jest "^25.5.0"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
+ slash "^3.0.0"
-babel-plugin-dynamic-import-node@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
- integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
dependencies:
object.assign "^4.1.0"
-babel-plugin-istanbul@^5.1.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854"
- integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==
+babel-plugin-istanbul@^6.0.0:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
+ integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- find-up "^3.0.0"
- istanbul-lib-instrument "^3.3.0"
- test-exclude "^5.2.3"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^5.0.4"
+ test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756"
- integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==
+babel-plugin-jest-hoist@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677"
+ integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==
dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
"@types/babel__traverse" "^7.0.6"
+babel-plugin-module-resolver@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2"
+ integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==
+ dependencies:
+ find-babel-config "^1.2.0"
+ glob "^7.1.6"
+ pkg-up "^3.1.0"
+ reselect "^4.0.0"
+ resolve "^1.13.1"
+
+babel-plugin-polyfill-corejs2@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5"
+ integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==
+ dependencies:
+ "@babel/compat-data" "^7.13.11"
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+ semver "^6.1.1"
+
+babel-plugin-polyfill-corejs3@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz#d66183bf10976ea677f4149a7fcc4d8df43d4060"
+ integrity sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+ core-js-compat "^3.20.0"
+
+babel-plugin-polyfill-regenerator@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990"
+ integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+
babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0:
version "7.0.0-beta.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf"
integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==
-babel-preset-fbjs@^3.1.2, babel-preset-fbjs@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.2.0.tgz#c0e6347d3e0379ed84b3c2434d3467567aa05297"
- integrity sha512-5Jo+JeWiVz2wHUUyAlvb/sSYnXNig9r+HqGAOSfh5Fzxp7SnAaR/tEGRJ1ZX7C77kfk82658w6R5Z+uPATTD9g==
+babel-preset-current-node-syntax@^0.1.2:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615"
+ integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
+ "@babel/plugin-syntax-import-meta" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+babel-preset-fbjs@^3.2.0, babel-preset-fbjs@^3.3.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c"
+ integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==
dependencies:
"@babel/plugin-proposal-class-properties" "^7.0.0"
"@babel/plugin-proposal-object-rest-spread" "^7.0.0"
@@ -1485,31 +1820,23 @@ babel-preset-fbjs@^3.1.2, babel-preset-fbjs@^3.2.0:
"@babel/plugin-transform-template-literals" "^7.0.0"
babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0"
-babel-preset-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc"
- integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==
+babel-preset-jest@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49"
+ integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==
dependencies:
- "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
- babel-plugin-jest-hoist "^24.9.0"
-
-balanced-match@^0.4.1:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+ babel-plugin-jest-hoist "^25.5.0"
+ babel-preset-current-node-syntax "^0.1.2"
balanced-match@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
- integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base64-js@^1.1.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
-
-base64-js@^1.2.3:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
- integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
+base64-js@^1.1.2, base64-js@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
base@^0.11.1:
version "0.11.2"
@@ -1524,44 +1851,38 @@ base@^0.11.1:
mixin-deep "^1.2.0"
pascalcase "^0.1.1"
-basic-auth@~2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a"
- integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==
- dependencies:
- safe-buffer "5.1.2"
-
bcrypt-pbkdf@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
dependencies:
tweetnacl "^0.14.3"
-big-integer@^1.6.7:
- version "1.6.44"
- resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.44.tgz#4ee9ae5f5839fc11ade338fea216b4513454a539"
- integrity sha512-7MzElZPTyJ2fNvBkPxtFQ2fWIkVmuzw41+BZHSzpEq3ymB2MfeKp1+yXl/tS75xCx+WnyV+yb0kp+K1C3UNwmQ==
+big-integer@1.6.x:
+ version "1.6.51"
+ resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
+ integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
-bplist-creator@0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.7.tgz#37df1536092824b87c42f957b01344117372ae45"
- integrity sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=
+bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
dependencies:
- stream-buffers "~2.2.0"
+ file-uri-to-path "1.0.0"
-bplist-parser@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.1.1.tgz#d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6"
- integrity sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=
+bplist-creator@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e"
+ integrity sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==
dependencies:
- big-integer "^1.6.7"
+ stream-buffers "2.2.x"
-brace-expansion@^1.0.0:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
+bplist-parser@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.0.tgz#ba50666370f61bbf94881636cd9f7d23c5286090"
+ integrity sha512-zgmaRvT6AN1JpPPV+S0a1/FAtoxSreYDccZGIqEMSvZl9DMe70mJ7MFzpxa1X+gHVdkToE2haRUHHMiW1OdejA==
dependencies:
- balanced-match "^0.4.1"
- concat-map "0.0.1"
+ big-integer "1.6.x"
brace-expansion@^1.1.7:
version "1.1.11"
@@ -1587,10 +1908,17 @@ braces@^2.3.1:
split-string "^3.0.2"
to-regex "^3.0.1"
-browser-process-hrtime@^0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
- integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
+braces@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+browser-process-hrtime@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
+ integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
browser-resolve@^1.11.3:
version "1.11.3"
@@ -1599,10 +1927,21 @@ browser-resolve@^1.11.3:
dependencies:
resolve "1.1.7"
-bser@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
- integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=
+browserslist@^4.17.5, browserslist@^4.19.1:
+ version "4.19.1"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
+ integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
+ dependencies:
+ caniuse-lite "^1.0.30001286"
+ electron-to-chromium "^1.4.17"
+ escalade "^3.1.1"
+ node-releases "^2.0.1"
+ picocolors "^1.0.0"
+
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
dependencies:
node-int64 "^0.4.0"
@@ -1612,17 +1951,9 @@ buffer-crc32@^0.2.13:
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
buffer-from@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
- integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
-
-buffer-shims@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
-
-builtin-modules@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
bytes@3.0.0:
version "3.0.0"
@@ -1644,6 +1975,14 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
+call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
caller-callsite@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
@@ -1668,16 +2007,16 @@ callsites@^3.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-camelcase@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
- integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
-
camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+caniuse-lite@^1.0.30001286:
+ version "1.0.30001304"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001304.tgz#38af55ed3fc8220cb13e35e6e7309c8c65a05559"
+ integrity sha512-bdsfZd6K6ap87AGqSHJP/s1V+U6Z5lyrcbBu3ovbCCf8cSYpwTtGrCBObMpJqwxfTbLW6YTIdbb1jEeTelcpYQ==
+
capture-exit@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
@@ -1688,6 +2027,7 @@ capture-exit@^2.0.0:
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
@@ -1706,6 +2046,14 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@^4.1.0:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
@@ -1716,11 +2064,6 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
-chownr@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
- integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
-
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
@@ -1743,36 +2086,27 @@ cli-cursor@^2.1.0:
dependencies:
restore-cursor "^2.0.0"
-cli-spinners@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77"
- integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==
+cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ dependencies:
+ restore-cursor "^3.1.0"
-cli-spinners@^2.2.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047"
- integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==
+cli-spinners@^2.0.0, cli-spinners@^2.2.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d"
+ integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==
cli-width@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
+ integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
-cliui@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wrap-ansi "^2.0.0"
-
-cliui@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
- integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
- dependencies:
- string-width "^2.1.1"
- strip-ansi "^4.0.0"
- wrap-ansi "^2.0.0"
+cli-width@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
+ integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
cliui@^5.0.0:
version "5.0.0"
@@ -1783,18 +2117,47 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
+cliui@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
+ integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^6.2.0"
+
+clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+cls-hooked@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908"
+ integrity sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==
+ dependencies:
+ async-hook-jl "^1.7.6"
+ emitter-listener "^1.0.1"
+ semver "^5.4.1"
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+collect-v8-coverage@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
+ integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
collection-visit@^1.0.0:
version "1.0.0"
@@ -1834,9 +2197,9 @@ color-support@^1.1.3:
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
colorette@^1.0.7:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.1.0.tgz#1f943e5a357fac10b4e0f5aaef3b14cdc1af6ec7"
- integrity sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg==
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
+ integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
@@ -1850,10 +2213,10 @@ command-exists@^1.2.8:
resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69"
integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==
-commander@^2.19.0, commander@~2.20.0:
- version "2.20.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
- integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
+commander@^2.19.0:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commander@~2.13.0:
version "2.13.0"
@@ -1863,6 +2226,7 @@ commander@~2.13.0:
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+ integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
component-emitter@^1.2.1:
version "1.3.0"
@@ -1870,11 +2234,11 @@ component-emitter@^1.2.1:
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
compressible@~2.0.16:
- version "2.0.17"
- resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1"
- integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==
+ version "2.0.18"
+ resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
+ integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
dependencies:
- mime-db ">= 1.40.0 < 2"
+ mime-db ">= 1.43.0 < 2"
compression@^1.7.1:
version "1.7.4"
@@ -1892,6 +2256,7 @@ compression@^1.7.1:
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@^1.6.0:
version "1.6.2"
@@ -1913,19 +2278,18 @@ connect@^3.6.5:
parseurl "~1.3.3"
utils-merge "1.0.1"
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
- integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+continuation-local-storage@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz#11f613f74e914fe9b34c92ad2d28fe6ae1db7ffb"
+ integrity sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==
+ dependencies:
+ async-listener "^0.6.0"
+ emitter-listener "^1.1.1"
-convert-source-map@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3"
-
-convert-source-map@^1.4.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
- integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
+convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+ integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
dependencies:
safe-buffer "~5.1.1"
@@ -1934,22 +2298,33 @@ copy-descriptor@^0.1.0:
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-core-js@^1.0.0:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
+core-js-compat@^3.20.0:
+ version "3.20.3"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.3.tgz#d71f85f94eb5e4bea3407412e549daa083d23bd6"
+ integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==
+ dependencies:
+ browserslist "^4.19.1"
+ semver "7.0.0"
-core-js@^2.2.2:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
+core-js-pure@^3.20.2:
+ version "3.20.3"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.20.3.tgz#6cc4f36da06c61d95254efc54024fe4797fd5d02"
+ integrity sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==
core-js@^2.4.1:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2"
- integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==
+ version "2.6.12"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
+ integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
-core-util-is@~1.0.0:
+core-util-is@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
cosmiconfig@^5.0.5, cosmiconfig@^5.1.0:
version "5.2.1"
@@ -1961,16 +2336,7 @@ cosmiconfig@^5.0.5, cosmiconfig@^5.1.0:
js-yaml "^3.13.1"
parse-json "^4.0.0"
-create-react-class@^15.6.3:
- version "15.6.3"
- resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
- integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==
- dependencies:
- fbjs "^0.8.9"
- loose-envify "^1.3.1"
- object-assign "^4.1.1"
-
-cross-spawn@^5.0.1, cross-spawn@^5.1.0:
+cross-spawn@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
@@ -1990,25 +2356,45 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
-cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad"
- integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==
-
-cssstyle@^1.0.0:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077"
- integrity sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==
+cross-spawn@^7.0.0:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
dependencies:
- cssom "0.3.x"
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+cssom@^0.4.1:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
+ integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
+
+cssom@~0.3.6:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
+ integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
+ dependencies:
+ cssom "~0.3.6"
+
+csstype@^3.0.2:
+ version "3.0.11"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33"
+ integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
dependencies:
assert-plus "^1.0.0"
-data-urls@^1.0.0:
+data-urls@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
@@ -2018,60 +2404,49 @@ data-urls@^1.0.0:
whatwg-url "^7.0.0"
dayjs@^1.8.15:
- version "1.8.16"
- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.16.tgz#2a3771de537255191b947957af2fd90012e71e64"
- integrity sha512-XPmqzWz/EJiaRHjBqSJ2s6hE/BUoCIHKgdS2QPtTQtKcS9E4/Qn0WomoH1lXanWCzri+g7zPcuNV4aTZ8PMORQ==
+ version "1.10.7"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468"
+ integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==
-debug@2.6.9, debug@^2.3.3:
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
-debug@^2.2.0:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351"
- dependencies:
- ms "0.7.2"
-
-debug@^3.2.6:
- version "3.2.6"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
- integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
- dependencies:
- ms "^2.1.1"
-
debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
- integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+ version "4.3.3"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
+ integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
dependencies:
- ms "^2.1.1"
+ ms "2.1.2"
-decamelize@^1.1.1, decamelize@^1.2.0:
+decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
- integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
deep-is@~0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
deepmerge@^3.2.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7"
integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==
+deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
defaults@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
@@ -2079,7 +2454,7 @@ defaults@^1.0.3:
dependencies:
clone "^1.0.2"
-define-properties@^1.1.2, define-properties@^1.1.3:
+define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
@@ -2111,43 +2486,53 @@ define-property@^2.0.2:
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-
-delegates@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
denodeify@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631"
+ integrity sha1-OjYof1A05pnnV3kBBSwubJQlFjE=
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+deprecated-react-native-prop-types@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz#c10c6ee75ff2b6de94bb127f142b814e6e08d9ab"
+ integrity sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA==
+ dependencies:
+ "@react-native/normalize-color" "*"
+ invariant "*"
+ prop-types "*"
+
destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+ integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
-detect-libc@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
- integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
+detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
-detect-newline@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
- integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
+diagnostic-channel-publishers@0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.4.4.tgz#57c3b80b7e7f576f95be3a257d5e94550f0082d6"
+ integrity sha512-l126t01d2ZS9EreskvEtZPrcgstuvH3rbKy82oUhUrVmBaGx4hO9wECdl3cvZbKDYjMF3QJDB5z5dL9yWAjvZQ==
-didyoumean@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff"
- integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=
+diagnostic-channel@0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.3.1.tgz#7faa143e107f861be3046539eb4908faab3f53fd"
+ integrity sha512-6eb9YRrimz8oTr5+JDzGmSYnXy5V7YnK5y/hd8AUDK1MssHjQKm9LlD6NSrHx4vMDF3+e/spI2hmWTviElgWZA==
+ dependencies:
+ semver "^5.3.0"
-diff-sequences@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
- integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
+diff-sequences@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd"
+ integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==
doctrine@^2.1.0:
version "2.1.0"
@@ -2171,58 +2556,68 @@ domexception@^1.0.1:
webidl-conversions "^4.0.2"
ecc-jsbn@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
dependencies:
jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-eme-encryption-scheme-polyfill@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/eme-encryption-scheme-polyfill/-/eme-encryption-scheme-polyfill-2.0.1.tgz#b080b01bffd74c75c9cf8044c1cabedf3b83954f"
- integrity sha512-Wz+Ro1c0/2Wsx2RLFvTOO0m4LvYn+7cSnq3XOvRvLLBq8jbvUACH/zpU9s0/5+mQa5oaelkU69x+q0z/iWYrFA==
+electron-to-chromium@^1.4.17:
+ version "1.4.59"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.59.tgz#657f2588c048fb95975779f8fea101fad854de89"
+ integrity sha512-AOJ3cAE0TWxz4fQ9zkND5hWrQg16nsZKVz9INOot1oV//u4wWu5xrj9CQMmPTYskkZRunSRc9sAnr4EkexXokg==
+
+eme-encryption-scheme-polyfill@^2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/eme-encryption-scheme-polyfill/-/eme-encryption-scheme-polyfill-2.0.4.tgz#7d818302af3f3b19d5974255dcc92dc087413845"
+ integrity sha512-MHYJX1v145Pjj2YJTrVVuJOYyXrxGVy8LWf6kV5M4jrV/GyoeuJKyTuD+GaD+VAiE8Ip+MptiH4dXk6ZVmMNow==
+
+emitter-listener@^1.0.1, emitter-listener@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8"
+ integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==
+ dependencies:
+ shimmer "^1.2.0"
emoji-regex@^7.0.1:
version "7.0.3"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
encoding@^0.1.11:
- version "0.1.12"
- resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
+ integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
- iconv-lite "~0.4.13"
+ iconv-lite "^0.6.2"
end-of-stream@^1.1.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
- integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
-envinfo@^7.1.0:
- version "7.3.1"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.3.1.tgz#892e42f7bf858b3446d9414ad240dbaf8da52f09"
- integrity sha512-GvXiDTqLYrORVSCuJCsWHPXF5BFvoWMQA9xX4YVjPT1jyS3aZEHUBwjzxU/6LTPF9ReHgVEbX7IEN5UvSXHw/A==
-
-envinfo@^7.5.0:
- version "7.7.3"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc"
- integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==
-
-error-ex@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
- dependencies:
- is-arrayish "^0.2.1"
+envinfo@^7.5.0, envinfo@^7.7.2:
+ version "7.8.1"
+ resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
+ integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
error-ex@^1.3.1:
version "1.3.2"
@@ -2231,6 +2626,13 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
+error-stack-parser@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8"
+ integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==
+ dependencies:
+ stackframe "^1.1.1"
+
errorhandler@^1.5.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.1.tgz#b9ba5d17cf90744cd1e851357a6e75bf806a9a91"
@@ -2239,67 +2641,84 @@ errorhandler@^1.5.0:
accepts "~1.3.7"
escape-html "~1.0.3"
-es-abstract@^1.11.0, es-abstract@^1.7.0:
- version "1.14.2"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497"
- integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==
+es-abstract@^1.19.1:
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
+ integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
dependencies:
- es-to-primitive "^1.2.0"
+ call-bind "^1.0.2"
+ es-to-primitive "^1.2.1"
function-bind "^1.1.1"
+ get-intrinsic "^1.1.1"
+ get-symbol-description "^1.0.0"
has "^1.0.3"
- has-symbols "^1.0.0"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
- object-inspect "^1.6.0"
+ has-symbols "^1.0.2"
+ internal-slot "^1.0.3"
+ is-callable "^1.2.4"
+ is-negative-zero "^2.0.1"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.1"
+ is-string "^1.0.7"
+ is-weakref "^1.0.1"
+ object-inspect "^1.11.0"
object-keys "^1.1.1"
- string.prototype.trimleft "^2.0.0"
- string.prototype.trimright "^2.0.0"
+ object.assign "^4.1.2"
+ string.prototype.trimend "^1.0.4"
+ string.prototype.trimstart "^1.0.4"
+ unbox-primitive "^1.0.1"
-es-abstract@^1.5.1:
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
- integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
- dependencies:
- es-to-primitive "^1.2.0"
- function-bind "^1.1.1"
- has "^1.0.3"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
- object-keys "^1.0.12"
-
-es-to-primitive@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
- integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
dependencies:
is-callable "^1.1.4"
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-escodegen@^1.9.1:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510"
- integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==
+escape-string-regexp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+ integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
+escodegen@^1.11.1:
+ version "1.14.3"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
+ integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
dependencies:
- esprima "^3.1.3"
+ esprima "^4.0.1"
estraverse "^4.2.0"
esutils "^2.0.2"
optionator "^0.8.1"
optionalDependencies:
source-map "~0.6.1"
-eslint-plugin-eslint-comments@^3.1.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz#4ef6c488dbe06aa1627fea107b3e5d059fc8a395"
- integrity sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==
+eslint-config-prettier@^6.10.1:
+ version "6.15.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9"
+ integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==
+ dependencies:
+ get-stdin "^6.0.0"
+
+eslint-plugin-eslint-comments@^3.1.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa"
+ integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==
dependencies:
escape-string-regexp "^1.0.5"
ignore "^5.0.5"
@@ -2316,84 +2735,79 @@ eslint-plugin-jest@22.4.1:
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz#a5fd6f7a2a41388d16f527073b778013c5189a9c"
integrity sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==
-eslint-plugin-prettier@2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz#71998c60aedfa2141f7bfcbf9d1c459bf98b4fad"
- integrity sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==
+eslint-plugin-prettier@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba"
+ integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==
dependencies:
- fast-diff "^1.1.1"
- jest-docblock "^21.0.0"
+ prettier-linter-helpers "^1.0.0"
-eslint-plugin-react-hooks@^1.5.1:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04"
- integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==
+eslint-plugin-react-hooks@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz#9e80c71846eb68dd29c3b21d832728aa66e5bd35"
+ integrity sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==
eslint-plugin-react-native-globals@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz#ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2"
integrity sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==
-eslint-plugin-react-native@3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.6.0.tgz#7cad3b7c6159df6d26fe3252c6c5417a17f27b4b"
- integrity sha512-BEQcHZ06hZSBYWFVuNEq0xuui5VEsWpHDsZGBtfadHfCRqRMUrkYPgdDb3bpc60qShHE83kqIv59uKdinEg91Q==
+eslint-plugin-react-native@3.8.1:
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.8.1.tgz#92811e37191ecb0d29c0f0a0c9e5c943ee573821"
+ integrity sha512-6Z4s4nvgFRdda/1s1+uu4a6EMZwEjjJ9Bk/1yBImv0fd9U2CsGu2cUakAtV83cZKhizbWhSouXoaK4JtlScdFg==
dependencies:
eslint-plugin-react-native-globals "^0.1.1"
-eslint-plugin-react@7.12.4:
- version "7.12.4"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c"
- integrity sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ==
+eslint-plugin-react@7.19.0:
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666"
+ integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==
dependencies:
- array-includes "^3.0.3"
+ array-includes "^3.1.1"
doctrine "^2.1.0"
has "^1.0.3"
- jsx-ast-utils "^2.0.1"
- object.fromentries "^2.0.0"
- prop-types "^15.6.2"
- resolve "^1.9.0"
-
-eslint-scope@3.7.1:
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
- integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=
- dependencies:
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
-eslint-scope@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
- integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
- dependencies:
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
+ jsx-ast-utils "^2.2.3"
+ object.entries "^1.1.1"
+ object.fromentries "^2.0.2"
+ object.values "^1.1.1"
+ prop-types "^15.7.2"
+ resolve "^1.15.1"
+ semver "^6.3.0"
+ string.prototype.matchall "^4.0.2"
+ xregexp "^4.3.0"
eslint-scope@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9"
- integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
dependencies:
- esrecurse "^4.1.0"
+ esrecurse "^4.3.0"
estraverse "^4.1.1"
-eslint-utils@^1.3.1, eslint-utils@^1.4.2:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab"
- integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==
+eslint-utils@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
+ integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
dependencies:
- eslint-visitor-keys "^1.0.0"
+ eslint-visitor-keys "^1.1.0"
+
+eslint-utils@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+ integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
- integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+ integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
-eslint@^6.4.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.4.0.tgz#5aa9227c3fbe921982b2eda94ba0d7fae858611a"
- integrity sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA==
+eslint@^6.5.1:
+ version "6.8.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
+ integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
dependencies:
"@babel/code-frame" "^7.0.0"
ajv "^6.10.0"
@@ -2402,19 +2816,19 @@ eslint@^6.4.0:
debug "^4.0.1"
doctrine "^3.0.0"
eslint-scope "^5.0.0"
- eslint-utils "^1.4.2"
+ eslint-utils "^1.4.3"
eslint-visitor-keys "^1.1.0"
- espree "^6.1.1"
+ espree "^6.1.2"
esquery "^1.0.1"
esutils "^2.0.2"
file-entry-cache "^5.0.1"
functional-red-black-tree "^1.0.1"
glob-parent "^5.0.0"
- globals "^11.7.0"
+ globals "^12.1.0"
ignore "^4.0.6"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
- inquirer "^6.4.1"
+ inquirer "^7.0.0"
is-glob "^4.0.0"
js-yaml "^3.13.1"
json-stable-stringify-without-jsonify "^1.0.1"
@@ -2423,7 +2837,7 @@ eslint@^6.4.0:
minimatch "^3.0.4"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
- optionator "^0.8.2"
+ optionator "^0.8.3"
progress "^2.0.0"
regexpp "^2.0.1"
semver "^6.1.2"
@@ -2433,52 +2847,48 @@ eslint@^6.4.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
-espree@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.1.tgz#7f80e5f7257fc47db450022d723e356daeb1e5de"
- integrity sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==
+espree@^6.1.2:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
+ integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
dependencies:
- acorn "^7.0.0"
- acorn-jsx "^5.0.2"
+ acorn "^7.1.1"
+ acorn-jsx "^5.2.0"
eslint-visitor-keys "^1.1.0"
-esprima@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
- integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
-
-esprima@^4.0.0:
+esprima@^4.0.0, esprima@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esquery@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
- integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+ integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
dependencies:
- estraverse "^4.0.0"
+ estraverse "^5.1.0"
-esrecurse@^4.1.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
- integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
dependencies:
- estraverse "^4.1.0"
+ estraverse "^5.2.0"
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
+estraverse@^4.1.1, estraverse@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-estraverse@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
- integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
-esutils@^2.0.0, esutils@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
etag@~1.8.1:
version "1.8.1"
@@ -2496,22 +2906,9 @@ eventemitter3@^3.0.0:
integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
exec-sh@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b"
- integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==
-
-execa@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
- integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc"
+ integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==
execa@^1.0.0:
version "1.0.0"
@@ -2526,6 +2923,22 @@ execa@^1.0.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
+execa@^3.2.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
+ integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==
+ dependencies:
+ 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"
+
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -2544,17 +2957,17 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expect@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca"
- integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==
+expect@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba"
+ integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==
dependencies:
- "@jest/types" "^24.9.0"
- ansi-styles "^3.2.0"
- jest-get-type "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-regex-util "^24.9.0"
+ "@jest/types" "^25.5.0"
+ ansi-styles "^4.0.0"
+ jest-get-type "^25.2.6"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-regex-util "^25.2.6"
extend-shallow@^1.1.2:
version "1.1.4"
@@ -2566,6 +2979,7 @@ extend-shallow@^1.1.2:
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
dependencies:
is-extendable "^0.1.0"
@@ -2614,9 +3028,15 @@ extglob@^2.0.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-extsprintf@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
+extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
+
+extsprintf@^1.2.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
+ integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
fancy-log@^1.3.2:
version "1.3.3"
@@ -2628,31 +3048,32 @@ fancy-log@^1.3.2:
parse-node-version "^1.0.0"
time-stamp "^1.0.0"
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
- integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-diff@^1.1.1:
+fast-diff@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
fast-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
- integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-fast-levenshtein@~2.0.4:
+fast-levenshtein@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fb-watchman@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
- integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
+ integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
dependencies:
- bser "^2.0.0"
+ bser "2.1.1"
fbjs-css-vars@^1.0.0:
version "1.0.2"
@@ -2675,19 +3096,6 @@ fbjs-scripts@^1.1.0:
semver "^5.1.0"
through2 "^2.0.0"
-fbjs@^0.8.9:
- version "0.8.17"
- resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
- integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
- dependencies:
- core-js "^1.0.0"
- isomorphic-fetch "^2.1.1"
- loose-envify "^1.0.0"
- object-assign "^4.1.0"
- promise "^7.1.1"
- setimmediate "^1.0.5"
- ua-parser-js "^0.7.18"
-
fbjs@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a"
@@ -2709,6 +3117,13 @@ figures@^2.0.0:
dependencies:
escape-string-regexp "^1.0.5"
+figures@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
+ integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
file-entry-cache@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
@@ -2716,6 +3131,11 @@ file-entry-cache@^5.0.1:
dependencies:
flat-cache "^2.0.1"
+file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@@ -2726,6 +3146,13 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
finalhandler@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
@@ -2739,6 +3166,14 @@ finalhandler@1.1.2:
statuses "~1.5.0"
unpipe "~1.0.0"
+find-babel-config@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2"
+ integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==
+ dependencies:
+ json5 "^0.5.1"
+ path-exists "^3.0.0"
+
find-cache-dir@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
@@ -2748,13 +3183,6 @@ find-cache-dir@^2.0.0:
make-dir "^2.0.0"
pkg-dir "^3.0.0"
-find-up@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
- dependencies:
- locate-path "^2.0.0"
-
find-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
@@ -2762,7 +3190,7 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
-find-up@^4.1.0:
+find-up@^4.0.0, find-up@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
@@ -2780,17 +3208,19 @@ flat-cache@^2.0.1:
write "1.0.3"
flatted@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08"
- integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+ integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
form-data@~2.3.2:
version "2.3.3"
@@ -2822,33 +3252,32 @@ fs-extra@^1.0.0:
jsonfile "^2.1.0"
klaw "^1.0.0"
-fs-extra@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
- integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
- graceful-fs "^4.1.2"
+ graceful-fs "^4.2.0"
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-minipass@^1.2.5:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07"
- integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==
- dependencies:
- minipass "^2.2.1"
-
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.2.7:
- version "1.2.9"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
- integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
+ integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
dependencies:
+ bindings "^1.5.0"
nan "^2.12.1"
- node-pre-gyp "^0.12.0"
+
+fsevents@^2.1.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
function-bind@^1.1.1:
version "1.1.1"
@@ -2860,33 +3289,34 @@ functional-red-black-tree@^1.0.1:
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-gauge@~2.7.3:
- version "2.7.4"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
- integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
- dependencies:
- aproba "^1.0.3"
- console-control-strings "^1.0.0"
- has-unicode "^2.0.0"
- object-assign "^4.1.0"
- signal-exit "^3.0.0"
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wide-align "^1.1.0"
-
-get-caller-file@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
get-caller-file@^2.0.1:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-get-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
- integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+ integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+
+get-package-type@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
+get-stdin@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
+ integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
get-stream@^4.0.0:
version "4.1.0"
@@ -2895,28 +3325,44 @@ get-stream@^4.0.0:
dependencies:
pump "^3.0.0"
+get-stream@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
+get-symbol-description@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
+ integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.1"
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
getpass@^0.1.1:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6"
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
dependencies:
assert-plus "^1.0.0"
glob-parent@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954"
- integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
-glob@^7.0.0:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
- integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+ integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -2925,72 +3371,46 @@ glob@^7.0.0:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.5:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
- version "7.1.4"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
- integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^11.1.0, globals@^11.7.0:
+globals@^11.1.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+globals@^12.1.0:
+ version "12.4.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+ integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+ dependencies:
+ type-fest "^0.8.1"
-graceful-fs@^4.1.15:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
- integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
+graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
+ version "4.2.9"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
+ integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
growly@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
-handlebars@^4.1.2:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e"
- integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw==
- dependencies:
- neo-async "^2.6.0"
- optimist "^0.6.1"
- source-map "^0.6.1"
- optionalDependencies:
- uglify-js "^3.1.4"
-
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-har-validator@~5.1.0:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
- integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
+har-validator@~5.1.3:
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
dependencies:
- ajv "^6.5.5"
+ ajv "^6.12.3"
har-schema "^2.0.0"
+has-bigints@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
+ integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -3001,14 +3421,17 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-has-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
- integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
+has-symbols@^1.0.1, has-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+ integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
-has-unicode@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+has-tostringtag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
+ integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
+ dependencies:
+ has-symbols "^1.0.2"
has-value@^0.3.1:
version "0.3.1"
@@ -3041,21 +3464,29 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.1, has@^1.0.3:
+has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
function-bind "^1.1.1"
-hermes-engine@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.2.1.tgz#25c0f1ff852512a92cb5c5cc47cf967e1e722ea2"
- integrity sha512-eNHUQHuadDMJARpaqvlCZoK/Nitpj6oywq3vQ3wCwEsww5morX34mW5PmKWQTO7aU0ck0hgulxR+EVDlXygGxQ==
+hermes-engine@~0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.5.1.tgz#601115e4b1e0a17d9aa91243b96277de4e926e09"
+ integrity sha512-hLwqh8dejHayjlpvZY40e1aDCDvyP98cWx/L5DhAjSJLH8g4z9Tp08D7y4+3vErDsncPOdf1bxm+zUWpx0/Fxg==
+
+hermes-profile-transformer@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz#bd0f5ecceda80dd0ddaae443469ab26fb38fc27b"
+ integrity sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==
+ dependencies:
+ source-map "^0.7.3"
hosted-git-info@^2.1.4:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5"
+ version "2.8.9"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
+ integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
html-encoding-sniffer@^1.0.2:
version "1.0.2"
@@ -3064,16 +3495,21 @@ html-encoding-sniffer@^1.0.2:
dependencies:
whatwg-encoding "^1.0.1"
-http-errors@~1.7.2:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
- integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+http-errors@1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
+ integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
dependencies:
depd "~1.1.2"
- inherits "2.0.3"
- setprototypeof "1.1.1"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
statuses ">= 1.5.0 < 2"
- toidentifier "1.0.0"
+ toidentifier "1.0.1"
http-signature@~1.2.0:
version "1.2.0"
@@ -3084,23 +3520,24 @@ http-signature@~1.2.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
-iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
+iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
-iconv-lite@~0.4.13:
- version "0.4.15"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
-
-ignore-walk@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
- integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==
+iconv-lite@^0.6.2:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
dependencies:
- minimatch "^3.0.4"
+ safer-buffer ">= 2.1.2 < 3.0.0"
ignore@^4.0.6:
version "4.0.6"
@@ -3108,9 +3545,9 @@ ignore@^4.0.6:
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
ignore@^5.0.5:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
- integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
+ integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
image-size@^0.6.0:
version "0.6.3"
@@ -3126,45 +3563,39 @@ import-fresh@^2.0.0:
resolve-from "^3.0.0"
import-fresh@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118"
- integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
dependencies:
parent-module "^1.0.0"
resolve-from "^4.0.0"
-import-local@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
- integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
+import-local@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
+ integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
dependencies:
- pkg-dir "^3.0.0"
- resolve-cwd "^2.0.0"
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@2.0.3, inherits@^2.0.3, inherits@~2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-inherits@~2.0.3:
+inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-ini@~1.3.0:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
-
inquirer@^3.0.6:
version "3.3.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
@@ -3185,45 +3616,55 @@ inquirer@^3.0.6:
strip-ansi "^4.0.0"
through "^2.3.6"
-inquirer@^6.4.1:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
- integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
+inquirer@^7.0.0:
+ version "7.3.3"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
+ integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
dependencies:
- ansi-escapes "^3.2.0"
- chalk "^2.4.2"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
+ ansi-escapes "^4.2.1"
+ chalk "^4.1.0"
+ cli-cursor "^3.1.0"
+ cli-width "^3.0.0"
external-editor "^3.0.3"
- figures "^2.0.0"
- lodash "^4.17.12"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rxjs "^6.4.0"
- string-width "^2.1.0"
- strip-ansi "^5.1.0"
+ figures "^3.0.0"
+ lodash "^4.17.19"
+ mute-stream "0.0.8"
+ run-async "^2.4.0"
+ rxjs "^6.6.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
through "^2.3.6"
+internal-slot@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
+ integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
+ dependencies:
+ get-intrinsic "^1.1.0"
+ has "^1.0.3"
+ side-channel "^1.0.4"
+
interpret@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-invariant@^2.2.4:
+invariant@*, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
dependencies:
loose-envify "^1.0.0"
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ip-regex@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
+ integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
-invert-kv@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
- integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
+ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+ integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
is-accessor-descriptor@^0.1.6:
version "0.1.6"
@@ -3242,26 +3683,32 @@ is-accessor-descriptor@^1.0.0:
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-is-buffer@^1.0.2:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b"
+is-bigint@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
+ integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
+ dependencies:
+ has-bigints "^1.0.1"
+
+is-boolean-object@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
+ integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-is-builtin-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
- dependencies:
- builtin-modules "^1.0.0"
-
-is-callable@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
- integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
+is-callable@^1.1.4, is-callable@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
+ integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
is-ci@^2.0.0:
version "2.0.0"
@@ -3270,10 +3717,10 @@ is-ci@^2.0.0:
dependencies:
ci-info "^2.0.0"
-is-core-module@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
- integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
+is-core-module@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
+ integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
dependencies:
has "^1.0.3"
@@ -3292,9 +3739,11 @@ is-data-descriptor@^1.0.0:
kind-of "^6.0.0"
is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
- integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
+ integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
+ dependencies:
+ has-tostringtag "^1.0.0"
is-descriptor@^0.1.0:
version "0.1.6"
@@ -3319,9 +3768,15 @@ is-directory@^0.3.1:
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+is-docker@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+ integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
is-extendable@^1.0.1:
version "1.0.1"
@@ -3335,29 +3790,40 @@ is-extglob@^2.1.1:
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- dependencies:
- number-is-nan "^1.0.0"
-
is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
is-generator-fn@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
is-glob@^4.0.0, is-glob@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
- integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
dependencies:
is-extglob "^2.1.1"
+is-negative-zero@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
+ integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
+
+is-number-object@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0"
+ integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -3365,38 +3831,66 @@ is-number@^3.0.0:
dependencies:
kind-of "^3.0.2"
-is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
-is-promise@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-
-is-regex@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
- integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
+is-regex@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
+ integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
dependencies:
- has "^1.0.1"
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-shared-array-buffer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
+ integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
-is-symbol@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
- integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
+is-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+is-string@^1.0.5, is-string@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
+ integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
dependencies:
- has-symbols "^1.0.0"
+ has-tostringtag "^1.0.0"
-is-typedarray@~1.0.0:
+is-symbol@^1.0.2, is-symbol@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+ integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+ dependencies:
+ has-symbols "^1.0.2"
+
+is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-weakref@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
+ integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
+ dependencies:
+ call-bind "^1.0.2"
is-windows@^1.0.2:
version "1.0.2"
@@ -3408,13 +3902,17 @@ is-wsl@^1.1.0:
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
+is-wsl@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+ integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+ dependencies:
+ is-docker "^2.0.0"
+
isarray@1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
-isexe@^1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isexe@^2.0.0:
version "2.0.0"
@@ -3424,6 +3922,7 @@ isexe@^2.0.0:
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
dependencies:
isarray "1.0.0"
@@ -3435,6 +3934,7 @@ isobject@^3.0.0, isobject@^3.0.1:
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
+ integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
@@ -3442,165 +3942,177 @@ isomorphic-fetch@^2.1.1:
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49"
- integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
+ integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
-istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630"
- integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==
+istanbul-lib-instrument@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d"
+ integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==
dependencies:
- "@babel/generator" "^7.4.0"
- "@babel/parser" "^7.4.3"
- "@babel/template" "^7.4.0"
- "@babel/traverse" "^7.4.3"
- "@babel/types" "^7.4.0"
- istanbul-lib-coverage "^2.0.5"
- semver "^6.0.0"
+ "@babel/core" "^7.7.5"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.0.0"
+ semver "^6.3.0"
-istanbul-lib-report@^2.0.4:
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33"
- integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==
+istanbul-lib-instrument@^5.0.4:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a"
+ integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==
dependencies:
- istanbul-lib-coverage "^2.0.5"
- make-dir "^2.1.0"
- supports-color "^6.1.0"
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^6.3.0"
-istanbul-lib-source-maps@^3.0.1:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8"
- integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==
+istanbul-lib-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+ integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^3.0.0"
+ supports-color "^7.1.0"
+
+istanbul-lib-source-maps@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
+ integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
dependencies:
debug "^4.1.1"
- istanbul-lib-coverage "^2.0.5"
- make-dir "^2.1.0"
- rimraf "^2.6.3"
+ istanbul-lib-coverage "^3.0.0"
source-map "^0.6.1"
-istanbul-reports@^2.2.6:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af"
- integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==
+istanbul-reports@^3.0.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2"
+ integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==
dependencies:
- handlebars "^4.1.2"
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
-jest-changed-files@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
- integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==
+jest-changed-files@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c"
+ integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==
dependencies:
- "@jest/types" "^24.9.0"
- execa "^1.0.0"
- throat "^4.0.0"
+ "@jest/types" "^25.5.0"
+ execa "^3.2.0"
+ throat "^5.0.0"
-jest-cli@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af"
- integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==
+jest-cli@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d"
+ integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==
dependencies:
- "@jest/core" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/core" "^25.5.4"
+ "@jest/test-result" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
exit "^0.1.2"
- import-local "^2.0.0"
+ graceful-fs "^4.2.4"
+ import-local "^3.0.2"
is-ci "^2.0.0"
- jest-config "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
+ jest-config "^25.5.4"
+ jest-util "^25.5.0"
+ jest-validate "^25.5.0"
prompts "^2.0.1"
- realpath-native "^1.1.0"
- yargs "^13.3.0"
+ realpath-native "^2.0.0"
+ yargs "^15.3.1"
-jest-config@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5"
- integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==
+jest-config@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c"
+ integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^24.9.0"
- "@jest/types" "^24.9.0"
- babel-jest "^24.9.0"
- chalk "^2.0.1"
+ "@jest/test-sequencer" "^25.5.4"
+ "@jest/types" "^25.5.0"
+ babel-jest "^25.5.1"
+ chalk "^3.0.0"
+ deepmerge "^4.2.2"
glob "^7.1.1"
- jest-environment-jsdom "^24.9.0"
- jest-environment-node "^24.9.0"
- jest-get-type "^24.9.0"
- jest-jasmine2 "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- micromatch "^3.1.10"
- pretty-format "^24.9.0"
- realpath-native "^1.1.0"
+ graceful-fs "^4.2.4"
+ jest-environment-jsdom "^25.5.0"
+ jest-environment-node "^25.5.0"
+ jest-get-type "^25.2.6"
+ jest-jasmine2 "^25.5.4"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.5.1"
+ jest-util "^25.5.0"
+ jest-validate "^25.5.0"
+ micromatch "^4.0.2"
+ pretty-format "^25.5.0"
+ realpath-native "^2.0.0"
-jest-diff@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da"
- integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==
+jest-diff@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9"
+ integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==
dependencies:
- chalk "^2.0.1"
- diff-sequences "^24.9.0"
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ chalk "^3.0.0"
+ diff-sequences "^25.2.6"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
-jest-docblock@^21.0.0:
- version "21.2.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414"
- integrity sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==
-
-jest-docblock@^24.3.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2"
- integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==
+jest-docblock@^25.3.0:
+ version "25.3.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef"
+ integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==
dependencies:
- detect-newline "^2.1.0"
+ detect-newline "^3.0.0"
-jest-each@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05"
- integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==
+jest-each@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516"
+ integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==
dependencies:
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
- jest-get-type "^24.9.0"
- jest-util "^24.9.0"
- pretty-format "^24.9.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ jest-get-type "^25.2.6"
+ jest-util "^25.5.0"
+ pretty-format "^25.5.0"
-jest-environment-jsdom@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b"
- integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==
+jest-environment-jsdom@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834"
+ integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
- jest-util "^24.9.0"
- jsdom "^11.5.1"
+ "@jest/environment" "^25.5.0"
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ jsdom "^15.2.1"
-jest-environment-node@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3"
- integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==
+jest-environment-node@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1"
+ integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
- jest-util "^24.9.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ semver "^6.3.0"
jest-get-type@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==
-jest-haste-map@^24.7.1, jest-haste-map@^24.9.0:
+jest-get-type@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877"
+ integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==
+
+jest-haste-map@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d"
integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==
@@ -3619,45 +4131,66 @@ jest-haste-map@^24.7.1, jest-haste-map@^24.9.0:
optionalDependencies:
fsevents "^1.2.7"
-jest-jasmine2@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0"
- integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==
+jest-haste-map@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943"
+ integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==
+ dependencies:
+ "@jest/types" "^25.5.0"
+ "@types/graceful-fs" "^4.1.2"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.4"
+ jest-serializer "^25.5.0"
+ jest-util "^25.5.0"
+ jest-worker "^25.5.0"
+ micromatch "^4.0.2"
+ sane "^4.0.3"
+ walker "^1.0.7"
+ which "^2.0.2"
+ optionalDependencies:
+ fsevents "^2.1.2"
+
+jest-jasmine2@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968"
+ integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/environment" "^25.5.0"
+ "@jest/source-map" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
co "^4.6.0"
- expect "^24.9.0"
+ expect "^25.5.0"
is-generator-fn "^2.0.0"
- jest-each "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-runtime "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- pretty-format "^24.9.0"
- throat "^4.0.0"
+ jest-each "^25.5.0"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-runtime "^25.5.4"
+ jest-snapshot "^25.5.1"
+ jest-util "^25.5.0"
+ pretty-format "^25.5.0"
+ throat "^5.0.0"
-jest-leak-detector@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a"
- integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==
+jest-leak-detector@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb"
+ integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==
dependencies:
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
-jest-matcher-utils@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073"
- integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==
+jest-matcher-utils@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867"
+ integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==
dependencies:
- chalk "^2.0.1"
- jest-diff "^24.9.0"
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ chalk "^3.0.0"
+ jest-diff "^25.5.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
jest-message-util@^24.9.0:
version "24.9.0"
@@ -3673,6 +4206,20 @@ jest-message-util@^24.9.0:
slash "^2.0.0"
stack-utils "^1.0.1"
+jest-message-util@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea"
+ integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@jest/types" "^25.5.0"
+ "@types/stack-utils" "^1.0.1"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
+ micromatch "^4.0.2"
+ slash "^3.0.0"
+ stack-utils "^1.0.1"
+
jest-mock@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
@@ -3680,113 +4227,136 @@ jest-mock@^24.9.0:
dependencies:
"@jest/types" "^24.9.0"
+jest-mock@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a"
+ integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==
+ dependencies:
+ "@jest/types" "^25.5.0"
+
jest-pnp-resolver@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
- integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
+ integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
-jest-regex-util@^24.3.0, jest-regex-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636"
- integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==
+jest-regex-util@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964"
+ integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==
-jest-resolve-dependencies@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab"
- integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==
+jest-resolve-dependencies@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7"
+ integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==
dependencies:
- "@jest/types" "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-snapshot "^24.9.0"
+ "@jest/types" "^25.5.0"
+ jest-regex-util "^25.2.6"
+ jest-snapshot "^25.5.1"
-jest-resolve@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321"
- integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==
+jest-resolve@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829"
+ integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==
dependencies:
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
browser-resolve "^1.11.3"
- chalk "^2.0.1"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
jest-pnp-resolver "^1.2.1"
- realpath-native "^1.1.0"
+ read-pkg-up "^7.0.1"
+ realpath-native "^2.0.0"
+ resolve "^1.17.0"
+ slash "^3.0.0"
-jest-runner@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42"
- integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==
+jest-runner@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d"
+ integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.4.2"
+ "@jest/console" "^25.5.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
exit "^0.1.2"
- graceful-fs "^4.1.15"
- jest-config "^24.9.0"
- jest-docblock "^24.3.0"
- jest-haste-map "^24.9.0"
- jest-jasmine2 "^24.9.0"
- jest-leak-detector "^24.9.0"
- jest-message-util "^24.9.0"
- jest-resolve "^24.9.0"
- jest-runtime "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.6.0"
+ graceful-fs "^4.2.4"
+ jest-config "^25.5.4"
+ jest-docblock "^25.3.0"
+ jest-haste-map "^25.5.1"
+ jest-jasmine2 "^25.5.4"
+ jest-leak-detector "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-resolve "^25.5.1"
+ jest-runtime "^25.5.4"
+ jest-util "^25.5.0"
+ jest-worker "^25.5.0"
source-map-support "^0.5.6"
- throat "^4.0.0"
+ throat "^5.0.0"
-jest-runtime@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac"
- integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==
+jest-runtime@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab"
+ integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/environment" "^24.9.0"
- "@jest/source-map" "^24.3.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/yargs" "^13.0.0"
- chalk "^2.0.1"
+ "@jest/console" "^25.5.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/globals" "^25.5.2"
+ "@jest/source-map" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/transform" "^25.5.1"
+ "@jest/types" "^25.5.0"
+ "@types/yargs" "^15.0.0"
+ chalk "^3.0.0"
+ collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.3"
- graceful-fs "^4.1.15"
- jest-config "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-message-util "^24.9.0"
- jest-mock "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- realpath-native "^1.1.0"
- slash "^2.0.0"
- strip-bom "^3.0.0"
- yargs "^13.3.0"
+ graceful-fs "^4.2.4"
+ jest-config "^25.5.4"
+ jest-haste-map "^25.5.1"
+ jest-message-util "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.5.1"
+ jest-snapshot "^25.5.1"
+ jest-util "^25.5.0"
+ jest-validate "^25.5.0"
+ realpath-native "^2.0.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+ yargs "^15.3.1"
-jest-serializer@^24.4.0, jest-serializer@^24.9.0:
+jest-serializer@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73"
integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==
-jest-snapshot@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba"
- integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==
+jest-serializer@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b"
+ integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==
+ dependencies:
+ graceful-fs "^4.2.4"
+
+jest-snapshot@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f"
+ integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==
dependencies:
"@babel/types" "^7.0.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
- expect "^24.9.0"
- jest-diff "^24.9.0"
- jest-get-type "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-resolve "^24.9.0"
- mkdirp "^0.5.1"
+ "@jest/types" "^25.5.0"
+ "@types/prettier" "^1.19.0"
+ chalk "^3.0.0"
+ expect "^25.5.0"
+ graceful-fs "^4.2.4"
+ jest-diff "^25.5.0"
+ jest-get-type "^25.2.6"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-resolve "^25.5.1"
+ make-dir "^3.0.0"
natural-compare "^1.4.0"
- pretty-format "^24.9.0"
- semver "^6.2.0"
+ pretty-format "^25.5.0"
+ semver "^6.3.0"
jest-util@^24.9.0:
version "24.9.0"
@@ -3806,7 +4376,18 @@ jest-util@^24.9.0:
slash "^2.0.0"
source-map "^0.6.0"
-jest-validate@^24.7.0, jest-validate@^24.9.0:
+jest-util@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0"
+ integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==
+ dependencies:
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
+ is-ci "^2.0.0"
+ make-dir "^3.0.0"
+
+jest-validate@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab"
integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==
@@ -3818,20 +4399,31 @@ jest-validate@^24.7.0, jest-validate@^24.9.0:
leven "^3.1.0"
pretty-format "^24.9.0"
-jest-watcher@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b"
- integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==
+jest-validate@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a"
+ integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==
dependencies:
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/yargs" "^13.0.0"
- ansi-escapes "^3.0.0"
- chalk "^2.0.1"
- jest-util "^24.9.0"
- string-length "^2.0.0"
+ "@jest/types" "^25.5.0"
+ camelcase "^5.3.1"
+ chalk "^3.0.0"
+ jest-get-type "^25.2.6"
+ leven "^3.1.0"
+ pretty-format "^25.5.0"
-jest-worker@^24.6.0, jest-worker@^24.9.0:
+jest-watcher@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456"
+ integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==
+ dependencies:
+ "@jest/test-result" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
+ jest-util "^25.5.0"
+ string-length "^3.1.0"
+
+jest-worker@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
@@ -3839,28 +4431,27 @@ jest-worker@^24.6.0, jest-worker@^24.9.0:
merge-stream "^2.0.0"
supports-color "^6.1.0"
-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171"
- integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==
+jest-worker@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1"
+ integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==
dependencies:
- import-local "^2.0.0"
- jest-cli "^24.9.0"
+ merge-stream "^2.0.0"
+ supports-color "^7.0.0"
+
+jest@^25.1.0:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db"
+ integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==
+ dependencies:
+ "@jest/core" "^25.5.4"
+ import-local "^3.0.2"
+ jest-cli "^25.5.4"
jetifier@^1.6.2:
- version "1.6.4"
- resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.4.tgz#6159db8e275d97980d26162897a0648b6d4a3222"
- integrity sha512-+f/4OLeqY8RAmXnonI1ffeY1DR8kMNJPhv5WMFehchf7U71cjMQVKkOz1n6asz6kfVoAqKNWJz1A/18i18AcXA==
-
-jodid25519@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
- dependencies:
- jsbn "~0.1.0"
-
-js-tokens@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
+ version "1.6.8"
+ resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.8.tgz#e88068697875cbda98c32472902c4d3756247798"
+ integrity sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
@@ -3868,9 +4459,9 @@ js-tokens@^3.0.0:
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^3.13.1:
- version "3.13.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
- integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ version "3.14.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+ integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@@ -3878,42 +4469,43 @@ js-yaml@^3.13.1:
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
jsc-android@^245459.0.0:
version "245459.0.0"
resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-245459.0.0.tgz#e584258dd0b04c9159a27fb104cd5d491fd202c9"
integrity sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg==
-jsdom@^11.5.1:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
- integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==
+jsdom@^15.2.1:
+ version "15.2.1"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5"
+ integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==
dependencies:
abab "^2.0.0"
- acorn "^5.5.3"
- acorn-globals "^4.1.0"
+ acorn "^7.1.0"
+ acorn-globals "^4.3.2"
array-equal "^1.0.0"
- cssom ">= 0.3.2 < 0.4.0"
- cssstyle "^1.0.0"
- data-urls "^1.0.0"
+ cssom "^0.4.1"
+ cssstyle "^2.0.0"
+ data-urls "^1.1.0"
domexception "^1.0.1"
- escodegen "^1.9.1"
+ escodegen "^1.11.1"
html-encoding-sniffer "^1.0.2"
- left-pad "^1.3.0"
- nwsapi "^2.0.7"
- parse5 "4.0.0"
+ nwsapi "^2.2.0"
+ parse5 "5.1.0"
pn "^1.1.0"
- request "^2.87.0"
- request-promise-native "^1.0.5"
- sax "^1.2.4"
+ request "^2.88.0"
+ request-promise-native "^1.0.7"
+ saxes "^3.1.9"
symbol-tree "^3.2.2"
- tough-cookie "^2.3.4"
+ tough-cookie "^3.0.1"
w3c-hr-time "^1.0.1"
+ w3c-xmlserializer "^1.1.2"
webidl-conversions "^4.0.2"
- whatwg-encoding "^1.0.3"
- whatwg-mimetype "^2.1.0"
- whatwg-url "^6.4.1"
- ws "^5.2.0"
+ whatwg-encoding "^1.0.5"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^7.0.0"
+ ws "^7.0.0"
xml-name-validator "^3.0.0"
jsesc@^2.5.1:
@@ -3924,20 +4516,27 @@ jsesc@^2.5.1:
jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
json-parse-better-errors@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-json-schema@0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+json-schema@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
+ integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
@@ -3947,23 +4546,31 @@ json-stable-stringify-without-jsonify@^1.0.1:
json-stable-stringify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
dependencies:
jsonify "~0.0.0"
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+ integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-json5@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
- integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
+json5@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+ integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
+
+json5@^2.1.2:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+ integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
dependencies:
- minimist "^1.2.0"
+ minimist "^1.2.5"
jsonfile@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
+ integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
optionalDependencies:
graceful-fs "^4.1.6"
@@ -3977,21 +4584,24 @@ jsonfile@^4.0.0:
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+ integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
jsprim@^1.2.2:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252"
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
+ integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
dependencies:
- extsprintf "1.0.2"
- json-schema "0.2.3"
- verror "1.3.6"
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.4.0"
+ verror "1.10.0"
-jsx-ast-utils@^2.0.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb"
- integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==
+jsx-ast-utils@^2.2.3:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e"
+ integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==
dependencies:
- array-includes "^3.0.3"
+ array-includes "^3.1.1"
object.assign "^4.1.0"
keymirror@^0.1.1:
@@ -4004,13 +4614,7 @@ kind-of@^1.1.0:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44"
integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=
-kind-of@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47"
- dependencies:
- is-buffer "^1.0.2"
-
-kind-of@^3.0.3, kind-of@^3.2.0:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -4030,13 +4634,14 @@ kind-of@^5.0.0:
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
- integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
klaw@^1.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
+ integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk=
optionalDependencies:
graceful-fs "^4.1.9"
@@ -4045,24 +4650,6 @@ kleur@^3.0.3:
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-lcid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- dependencies:
- invert-kv "^1.0.0"
-
-lcid@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
- integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
- dependencies:
- invert-kv "^2.0.0"
-
-left-pad@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
- integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
-
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
@@ -4076,33 +4663,10 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
-load-json-file@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
- integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- strip-bom "^3.0.0"
-
-load-json-file@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
- integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
- strip-bom "^3.0.0"
-
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
locate-path@^3.0.0:
version "3.0.0"
@@ -4119,6 +4683,11 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+
lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
@@ -4129,24 +4698,10 @@ lodash.throttle@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
-lodash.unescape@4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
- integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
-
-lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14:
- version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
- integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-
-lodash@^4.17.11, lodash@^4.17.5:
- version "4.17.11"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
- integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
-
-lodash@^4.3.0:
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.3.0:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
log-symbols@^2.2.0:
version "2.2.0"
@@ -4155,22 +4710,23 @@ log-symbols@^2.2.0:
dependencies:
chalk "^2.0.1"
-logkitty@^0.6.0:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.6.1.tgz#fe29209669d261539cbd6bb998a136fc92a1a05c"
- integrity sha512-cHuXN8qUZuzX/7kB6VyS7kB4xyD24e8gyHXIFNhIv+fjW3P+jEXNUhj0o/7qWJtv7UZpbnPgUqzu/AZQ8RAqxQ==
+logkitty@^0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7"
+ integrity sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==
dependencies:
ansi-fragments "^0.2.1"
dayjs "^1.8.15"
- yargs "^12.0.5"
+ yargs "^15.1.0"
-loose-envify@^1.0.0, loose-envify@^1.1.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
+lolex@^5.0.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
+ integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==
dependencies:
- js-tokens "^3.0.0"
+ "@sinonjs/commons" "^1.7.0"
-loose-envify@^1.3.1, loose-envify@^1.4.0:
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@@ -4178,11 +4734,19 @@ loose-envify@^1.3.1, loose-envify@^1.4.0:
js-tokens "^3.0.0 || ^4.0.0"
lru-cache@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e"
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
dependencies:
- pseudomap "^1.0.1"
- yallist "^2.0.0"
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
@@ -4192,11 +4756,19 @@ make-dir@^2.0.0, make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
-makeerror@1.0.x:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
+make-dir@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
dependencies:
- tmpl "1.0.x"
+ semver "^6.0.0"
+
+makeerror@1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+ integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+ dependencies:
+ tmpl "1.0.5"
map-age-cleaner@^0.1.1:
version "0.1.3"
@@ -4217,14 +4789,7 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
-mem@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
- integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
- dependencies:
- mimic-fn "^1.0.0"
-
-mem@^4.0.0, mem@^4.3.0:
+mem@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==
@@ -4245,86 +4810,80 @@ merge-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-metro-babel-register@^0.56.0, metro-babel-register@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.56.4.tgz#b0c627a1cfdd1bdd768f81af79481754e833a902"
- integrity sha512-Phm6hMluOWYqfykftjJ1jsTpWvbgb49AC/1taxEctxUdRCZlFgZwBleJZAhQYxJD5J+ikFkEbHDzePEXb29KVA==
+metro-babel-register@0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.59.0.tgz#2bcff65641b36794cf083ba732fbc46cf870fb43"
+ integrity sha512-JtWc29erdsXO/V3loenXKw+aHUXgj7lt0QPaZKPpctLLy8kcEpI/8pfXXgVK9weXICCpCnYtYncIosAyzh0xjg==
dependencies:
"@babel/core" "^7.0.0"
"@babel/plugin-proposal-class-properties" "^7.0.0"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
"@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-async-to-generator" "^7.0.0"
"@babel/plugin-transform-flow-strip-types" "^7.0.0"
"@babel/plugin-transform-modules-commonjs" "^7.0.0"
"@babel/register" "^7.0.0"
- core-js "^2.2.2"
escape-string-regexp "^1.0.5"
-metro-babel-transformer@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.56.4.tgz#fe1d0dc600fcf90201a5bea4d42caea10b801057"
- integrity sha512-IOi4ILgZvaX7GCGHBJp79paNVOq5QxhhbyqAdEJgDP8bHfl/OVHoVKSypfrsMSKSiBrqxhIjyc4XjkXsQtkx5g==
+metro-babel-transformer@0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz#dda99c75d831b00142c42c020c51c103b29f199d"
+ integrity sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==
dependencies:
"@babel/core" "^7.0.0"
- metro-source-map "^0.56.4"
+ metro-source-map "0.59.0"
-metro-cache@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.56.4.tgz#542f9f8a35f8fb9d5576f46fd3ab4d4f42851a7e"
- integrity sha512-d1hiUSKwtRsuMxUhHVJ3tjK2BbpUlJGvTyMWohK8Wxx+0GbnWRWWFcI4vlCzlZfoK0VtZK2MJEl5t7Du1mIniQ==
+metro-cache@0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.59.0.tgz#ef3c055f276933979b731455dc8317d7a66f0f2d"
+ integrity sha512-ryWNkSnpyADfRpHGb8BRhQ3+k8bdT/bsxMH2O0ntlZYZ188d8nnYWmxbRvFmEzToJxe/ol4uDw0tJFAaQsN8KA==
dependencies:
- jest-serializer "^24.4.0"
- metro-core "^0.56.4"
+ jest-serializer "^24.9.0"
+ metro-core "0.59.0"
mkdirp "^0.5.1"
rimraf "^2.5.4"
-metro-config@^0.56.0, metro-config@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.56.4.tgz#338fd8165fba59424cec427c1a881757945e57e9"
- integrity sha512-O85QDHwWdMn/8ERe13y4a6vbZL0AHyO8atTvL+9BCulLEO+FQBi1iJjr3+ViLa8cf0m5dRftDsa7P47m5euk4A==
+metro-config@0.59.0, metro-config@^0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.59.0.tgz#9844e388069321dd7403e49f0d495a81f9aa0fef"
+ integrity sha512-MDsknFG9vZ4Nb5VR6OUDmGHaWz6oZg/FtE3up1zVBKPVRTXE1Z+k7zypnPtMXjMh3WHs/Sy4+wU1xnceE/zdnA==
dependencies:
cosmiconfig "^5.0.5"
- jest-validate "^24.7.0"
- metro "^0.56.4"
- metro-cache "^0.56.4"
- metro-core "^0.56.4"
- pretty-format "^24.7.0"
+ jest-validate "^24.9.0"
+ metro "0.59.0"
+ metro-cache "0.59.0"
+ metro-core "0.59.0"
-metro-core@^0.56.0, metro-core@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.56.4.tgz#67cc41b3c0bf66e9c2306f50239a1080b1e82312"
- integrity sha512-hMzkBdgPt5Zm9nr/1KtIT+A6H7TNiLVCEGG5OiAXj8gTRsA2yy7wAdQpwy0xbE+zi88t/pLOzXpd3ClG/YxyWg==
+metro-core@0.59.0, metro-core@^0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.59.0.tgz#958cde3fe5c8cd84a78e1899af801ad69e9c83b1"
+ integrity sha512-kb5LKvV5r2pqMEzGyTid8ai2mIjW13NMduQ8oBmfha7/EPTATcTQ//s+bkhAs1toQD8vqVvjAb0cPNjWQEmcmQ==
dependencies:
- jest-haste-map "^24.7.1"
+ jest-haste-map "^24.9.0"
lodash.throttle "^4.1.1"
- metro-resolver "^0.56.4"
+ metro-resolver "0.59.0"
wordwrap "^1.0.0"
-metro-inspector-proxy@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.56.4.tgz#7343ff3c5908af4fd99e96b6d646e24e99816be4"
- integrity sha512-E1S3MO25mWKmcLn1UQuCDiS0hf9P2Fwq8sEAX5lBLoZbehepNH+4xJ3xXSY51JX4dozBrE8GGoKL4ll3II40LA==
+metro-inspector-proxy@0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.59.0.tgz#39d1390772d13767fc595be9a1a7074e2425cf8e"
+ integrity sha512-hPeAuQcofTOH0F+2GEZqWkvkVY1/skezSSlMocDQDaqds+Kw6JgdA7FlZXxnKmQ/jYrWUzff/pl8SUCDwuYthQ==
dependencies:
connect "^3.6.5"
debug "^2.2.0"
- rxjs "^5.4.3"
ws "^1.1.5"
- yargs "^9.0.0"
+ yargs "^14.2.0"
-metro-minify-uglify@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.56.4.tgz#13589dfb1d43343608aacb7f78ddfcc052daa63c"
- integrity sha512-BHgj7+BKEK2pHvWHUR730bIrsZwl8DPtr49x9L0j2grPZ5/UROWXzEr8VZgIss7fl64t845uu1HXNNyuSj2EhA==
+metro-minify-uglify@0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.59.0.tgz#6491876308d878742f7b894d7fca4af356886dd5"
+ integrity sha512-7IzVgCVWZMymgZ/quieg/9v5EQ8QmZWAgDc86Zp9j0Vy6tQTjUn6jlU+YAKW3mfMEjMr6iIUzCD8YklX78tFAw==
dependencies:
uglify-es "^3.1.9"
-metro-react-native-babel-preset@^0.56.0:
- version "0.56.0"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.0.tgz#fa47dfd5f7678e89cffd1249020b8add6938fc48"
- integrity sha512-MAo1fm0dNn6MVZmylaz6k2HC1MINHLTLfE7O3a9Xz3fAtbGbApisp06rBUfK5uUqIJDmAaKgbiT34lHJSIiE6Q==
+metro-react-native-babel-preset@0.59.0, metro-react-native-babel-preset@^0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz#20e020bc6ac9849e1477de1333d303ed42aba225"
+ integrity sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg==
dependencies:
"@babel/plugin-proposal-class-properties" "^7.0.0"
"@babel/plugin-proposal-export-default-from" "^7.0.0"
@@ -4335,6 +4894,8 @@ metro-react-native-babel-preset@^0.56.0:
"@babel/plugin-syntax-dynamic-import" "^7.0.0"
"@babel/plugin-syntax-export-default-from" "^7.0.0"
"@babel/plugin-syntax-flow" "^7.2.0"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.0.0"
"@babel/plugin-transform-arrow-functions" "^7.0.0"
"@babel/plugin-transform-block-scoping" "^7.0.0"
"@babel/plugin-transform-classes" "^7.0.0"
@@ -4350,6 +4911,7 @@ metro-react-native-babel-preset@^0.56.0:
"@babel/plugin-transform-parameters" "^7.0.0"
"@babel/plugin-transform-react-display-name" "^7.0.0"
"@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-react-jsx-self" "^7.0.0"
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
"@babel/plugin-transform-regenerator" "^7.0.0"
"@babel/plugin-transform-runtime" "^7.0.0"
@@ -4357,101 +4919,61 @@ metro-react-native-babel-preset@^0.56.0:
"@babel/plugin-transform-spread" "^7.0.0"
"@babel/plugin-transform-sticky-regex" "^7.0.0"
"@babel/plugin-transform-template-literals" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.0.0"
+ "@babel/plugin-transform-typescript" "^7.5.0"
"@babel/plugin-transform-unicode-regex" "^7.0.0"
"@babel/template" "^7.0.0"
react-refresh "^0.4.0"
-metro-react-native-babel-preset@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz#dcedc64b7ff5c0734839458e70eb0ebef6d063a8"
- integrity sha512-CzbBDM9Rh6w8s1fq+ZqihAh7DDqUAcfo9pPww25+N/eJ7UK436Q7JdfxwdIPpBwLFn6o6MyYn+uwL9OEWBJarA==
- dependencies:
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-export-default-from" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-syntax-dynamic-import" "^7.0.0"
- "@babel/plugin-syntax-export-default-from" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.2.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.0.0"
- "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-for-of" "^7.0.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-object-assign" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
- "@babel/plugin-transform-regenerator" "^7.0.0"
- "@babel/plugin-transform-runtime" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-template-literals" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.0.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- "@babel/template" "^7.0.0"
- react-refresh "^0.4.0"
-
-metro-react-native-babel-transformer@^0.56.0:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.56.4.tgz#3c6e48b605c305362ee624e45ff338656e35fc1d"
- integrity sha512-ng74eutuy1nyGI9+TDzzVAVfEmNPDlapV4msTQMKPi4EFqo/fBn7Ct33ME9l5E51pQBBnxt/UwcpTvd13b29kQ==
+metro-react-native-babel-transformer@0.59.0, metro-react-native-babel-transformer@^0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz#9b3dfd6ad35c6ef37fc4ce4d20a2eb67fabbb4be"
+ integrity sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ==
dependencies:
"@babel/core" "^7.0.0"
- babel-preset-fbjs "^3.1.2"
- metro-babel-transformer "^0.56.4"
- metro-react-native-babel-preset "^0.56.4"
- metro-source-map "^0.56.4"
+ babel-preset-fbjs "^3.3.0"
+ metro-babel-transformer "0.59.0"
+ metro-react-native-babel-preset "0.59.0"
+ metro-source-map "0.59.0"
-metro-resolver@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.56.4.tgz#9876f57bca37fd1bfcffd733541e2ee4a89fad7f"
- integrity sha512-Ug4ulVfpkKZ1Wu7mdYj9XLGuOqZTuWCqEhyx3siKTc/2eBwKZQXmiNo5d/IxWNvmwL/87Abeb724I6CMzMfjiQ==
+metro-resolver@0.59.0, metro-resolver@^0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.59.0.tgz#fbc9d7c95f094c52807877d0011feffb9e896fad"
+ integrity sha512-lbgiumnwoVosffEI96z0FGuq1ejTorHAj3QYUPmp5dFMfitRxLP7Wm/WP9l4ZZjIptxTExsJwuEff1SLRCPD9w==
dependencies:
absolute-path "^0.0.0"
-metro-source-map@^0.56.0, metro-source-map@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.56.4.tgz#868ccac3f3519fe14eca358bc186f63651b2b9bc"
- integrity sha512-f1P9/rpFmG3Z0Jatiw2zvLItx1TwR7mXTSDj4qLDCWeVMB3kEXAr3R0ucumTW8c6HfpJljeRBWzYFXF33fd81g==
+metro-source-map@0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.59.0.tgz#e9beb9fc51bfb4e060f95820cf1508fc122d23f7"
+ integrity sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ==
dependencies:
"@babel/traverse" "^7.0.0"
"@babel/types" "^7.0.0"
invariant "^2.2.4"
- metro-symbolicate "^0.56.4"
- ob1 "^0.56.4"
+ metro-symbolicate "0.59.0"
+ ob1 "0.59.0"
source-map "^0.5.6"
vlq "^1.0.0"
-metro-symbolicate@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.56.4.tgz#53e9d40beac9049fa75a3e620ddd47d4907ff015"
- integrity sha512-8mCNNn6zV5FFKCIcRgI7736Xl+owgvYuy8qanPxZN36f7utiWRYeB+PirEBPcglBk4qQvoy2lT6oPULNXZQbbQ==
+metro-symbolicate@0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz#fc7f93957a42b02c2bfc57ed1e8f393f5f636a54"
+ integrity sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw==
dependencies:
invariant "^2.2.4"
- metro-source-map "^0.56.4"
+ metro-source-map "0.59.0"
source-map "^0.5.6"
through2 "^2.0.1"
vlq "^1.0.0"
-metro@^0.56.0, metro@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.56.4.tgz#be7e1380ee6ac3552c25ead8098eab261029e4d7"
- integrity sha512-Kt3OQJQtQdts0JrKnyGdLpKHDjqYBgIfzvYrvfhmFCkKuZ8aqRlVnvpfjQ4/OBm0Fmm9NyyxbNRD9VIbj7WjnA==
+metro@0.59.0, metro@^0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/metro/-/metro-0.59.0.tgz#64a87cd61357814a4f279518e0781b1eab5934b8"
+ integrity sha512-OpVgYXyuTvouusFZQJ/UYKEbwfLmialrSCUUTGTFaBor6UMUHZgXPYtK86LzesgMqRc8aiuTQVO78iKW2Iz3wg==
dependencies:
+ "@babel/code-frame" "^7.0.0"
"@babel/core" "^7.0.0"
- "@babel/generator" "^7.0.0"
+ "@babel/generator" "^7.5.0"
"@babel/parser" "^7.0.0"
"@babel/plugin-external-helpers" "^7.0.0"
"@babel/template" "^7.0.0"
@@ -4459,50 +4981,52 @@ metro@^0.56.0, metro@^0.56.4:
"@babel/types" "^7.0.0"
absolute-path "^0.0.0"
async "^2.4.0"
- babel-preset-fbjs "^3.1.2"
+ babel-preset-fbjs "^3.3.0"
buffer-crc32 "^0.2.13"
chalk "^2.4.1"
+ ci-info "^2.0.0"
concat-stream "^1.6.0"
connect "^3.6.5"
debug "^2.2.0"
denodeify "^1.2.1"
+ error-stack-parser "^2.0.6"
eventemitter3 "^3.0.0"
fbjs "^1.0.0"
fs-extra "^1.0.0"
graceful-fs "^4.1.3"
image-size "^0.6.0"
invariant "^2.2.4"
- jest-haste-map "^24.7.1"
- jest-worker "^24.6.0"
+ jest-haste-map "^24.9.0"
+ jest-worker "^24.9.0"
json-stable-stringify "^1.0.1"
lodash.throttle "^4.1.1"
merge-stream "^1.0.1"
- metro-babel-register "^0.56.4"
- metro-babel-transformer "^0.56.4"
- metro-cache "^0.56.4"
- metro-config "^0.56.4"
- metro-core "^0.56.4"
- metro-inspector-proxy "^0.56.4"
- metro-minify-uglify "^0.56.4"
- metro-react-native-babel-preset "^0.56.4"
- metro-resolver "^0.56.4"
- metro-source-map "^0.56.4"
- metro-symbolicate "^0.56.4"
+ metro-babel-register "0.59.0"
+ metro-babel-transformer "0.59.0"
+ metro-cache "0.59.0"
+ metro-config "0.59.0"
+ metro-core "0.59.0"
+ metro-inspector-proxy "0.59.0"
+ metro-minify-uglify "0.59.0"
+ metro-react-native-babel-preset "0.59.0"
+ metro-resolver "0.59.0"
+ metro-source-map "0.59.0"
+ metro-symbolicate "0.59.0"
mime-types "2.1.11"
mkdirp "^0.5.1"
node-fetch "^2.2.0"
- nullthrows "^1.1.0"
+ nullthrows "^1.1.1"
resolve "^1.5.0"
rimraf "^2.5.4"
serialize-error "^2.1.0"
source-map "^0.5.6"
+ strip-ansi "^4.0.0"
temp "0.8.3"
throat "^4.1.0"
wordwrap "^1.0.0"
- write-file-atomic "^1.2.0"
ws "^1.1.5"
xpipe "^1.0.5"
- yargs "^9.0.0"
+ yargs "^14.2.0"
micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
@@ -4523,37 +5047,37 @@ micromatch@^3.1.10, micromatch@^3.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.2"
-mime-db@1.40.0, "mime-db@>= 1.40.0 < 2":
- version "1.40.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
- integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
+micromatch@^4.0.2:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+ integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.2.3"
+
+mime-db@1.51.0, "mime-db@>= 1.43.0 < 2":
+ version "1.51.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
+ integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
mime-db@~1.23.0:
version "1.23.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659"
-
-mime-db@~1.26.0:
- version "1.26.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff"
+ integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=
mime-types@2.1.11:
version "2.1.11"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c"
+ integrity sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=
dependencies:
mime-db "~1.23.0"
-mime-types@^2.1.12:
- version "2.1.14"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"
+mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
+ version "2.1.34"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
+ integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
dependencies:
- mime-db "~1.26.0"
-
-mime-types@~2.1.19, mime-types@~2.1.24:
- version "2.1.24"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
- integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
- dependencies:
- mime-db "1.40.0"
+ mime-db "1.51.0"
mime@1.6.0:
version "1.6.0"
@@ -4561,26 +5085,20 @@ mime@1.6.0:
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
mime@^2.4.1:
- version "2.4.4"
- resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
- integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
+ integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-mimic-fn@^2.0.0:
+mimic-fn@^2.0.0, mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-minimatch@^3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
- dependencies:
- brace-expansion "^1.0.0"
-
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -4588,82 +5106,60 @@ minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
-minimist@0.0.8, minimist@~0.0.1:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-minimist@^1.1.1, minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
-minipass@^2.2.1, minipass@^2.3.5:
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
- integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==
- dependencies:
- safe-buffer "^5.1.2"
- yallist "^3.0.0"
-
-minizlib@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
- integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==
- dependencies:
- minipass "^2.2.1"
+minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
mixin-deep@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
- integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
dependencies:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@^0.5.0, mkdirp@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+mkdirp@^0.5.1:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
dependencies:
- minimist "0.0.8"
-
-morgan@^1.9.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
- integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==
- dependencies:
- basic-auth "~2.0.0"
- debug "2.6.9"
- depd "~1.1.2"
- on-finished "~2.3.0"
- on-headers "~1.0.1"
-
-ms@0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
+ minimist "^1.2.5"
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-ms@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
- integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
-
-ms@^2.1.1:
+ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+ms@2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+mustache@^4.0.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
+ integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
+
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
+mute-stream@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
+ integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+
nan@^2.12.1:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+ version "2.15.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
+ integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
nanomatch@^1.2.9:
version "1.2.13"
@@ -4687,103 +5183,69 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
-needle@^2.2.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
- integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
- dependencies:
- debug "^3.2.6"
- iconv-lite "^0.4.4"
- sax "^1.2.4"
-
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-neo-async@^2.6.0:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
- integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
-
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+nocache@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f"
+ integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==
+
node-fetch@^1.0.1:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04"
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
+ integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
-node-fetch@^2.2.0, node-fetch@^2.5.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
- integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
+node-fetch@^2.2.0, node-fetch@^2.6.0:
+ version "2.6.7"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
+ integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+ dependencies:
+ whatwg-url "^5.0.0"
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+ integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
-node-modules-regexp@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
- integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
-
-node-notifier@^5.2.1:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a"
- integrity sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==
+node-notifier@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12"
+ integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==
dependencies:
growly "^1.3.0"
- is-wsl "^1.1.0"
- semver "^5.5.0"
+ is-wsl "^2.1.1"
+ semver "^6.3.0"
shellwords "^0.1.1"
- which "^1.3.0"
+ which "^1.3.1"
-node-notifier@^5.4.2:
- version "5.4.3"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50"
- integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==
- dependencies:
- growly "^1.3.0"
- is-wsl "^1.1.0"
- semver "^5.5.0"
- shellwords "^0.1.1"
- which "^1.3.0"
+node-releases@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
+ integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
-node-pre-gyp@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
- integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==
- dependencies:
- detect-libc "^1.0.2"
- mkdirp "^0.5.1"
- needle "^2.2.1"
- nopt "^4.0.1"
- npm-packlist "^1.1.6"
- npmlog "^4.0.2"
- rc "^1.2.7"
- rimraf "^2.6.1"
- semver "^5.3.0"
- tar "^4"
+node-stream-zip@^1.9.1:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea"
+ integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==
-nopt@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
- integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
- dependencies:
- abbrev "1"
- osenv "^0.1.4"
-
-normalize-package-data@^2.3.2:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.6.tgz#498fa420c96401f787402ba21e600def9f981fff"
+normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
dependencies:
hosted-git-info "^2.1.4"
- is-builtin-module "^1.0.0"
+ resolve "^1.10.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
@@ -4794,18 +5256,10 @@ normalize-path@^2.1.1:
dependencies:
remove-trailing-separator "^1.0.1"
-npm-bundled@^1.0.1:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
- integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==
-
-npm-packlist@^1.1.6:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc"
- integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==
- dependencies:
- ignore-walk "^3.0.1"
- npm-bundled "^1.0.1"
+normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
npm-run-path@^2.0.0:
version "2.0.2"
@@ -4814,43 +5268,42 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-npmlog@^4.0.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
- integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
+npm-run-path@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
dependencies:
- are-we-there-yet "~1.1.2"
- console-control-strings "~1.1.0"
- gauge "~2.7.3"
- set-blocking "~2.0.0"
+ path-key "^3.0.0"
-nullthrows@^1.1.0:
+nuget-exe@5.8.0:
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/nuget-exe/-/nuget-exe-5.8.0.tgz#45287c4ad8308a5a7057913b32c08998fe7fdc82"
+ integrity sha512-m95SBWa+SJNOfR0GTwdQ3OwK2915Ts3XvajYx0iaOZYydwvz6reJyptiNGf+HQhvTe5viNiRAmGXxNww9obZjw==
+
+nullthrows@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-
-nwsapi@^2.0.7:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f"
- integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==
+nwsapi@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
+ integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
oauth-sign@~0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-ob1@^0.56.4:
- version "0.56.4"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.56.4.tgz#c4acb3baa42f4993a44b35b2da7c8ef443dcccec"
- integrity sha512-URgFof9z2wotiYFsqlydXtQfGV81gvBI2ODy64xfd3vPo+AYom5PVDX4t4zn23t/O+S2IxqApSQM8uJAybmz7w==
+ob1@0.59.0:
+ version "0.59.0"
+ resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.59.0.tgz#ee103619ef5cb697f2866e3577da6f0ecd565a36"
+ integrity sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ==
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
object-copy@^0.1.0:
version "0.1.0"
@@ -4861,12 +5314,12 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
-object-inspect@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b"
- integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==
+object-inspect@^1.11.0, object-inspect@^1.9.0:
+ version "1.12.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
+ integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
-object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
+object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
@@ -4878,33 +5331,33 @@ object-visit@^1.0.0:
dependencies:
isobject "^3.0.0"
-object.assign@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
- integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+object.assign@^4.1.0, object.assign@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+ integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
dependencies:
- define-properties "^1.1.2"
- function-bind "^1.1.1"
- has-symbols "^1.0.0"
- object-keys "^1.0.11"
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ has-symbols "^1.0.1"
+ object-keys "^1.1.1"
-object.fromentries@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
- integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
+object.entries@^1.1.1:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
+ integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.11.0"
- function-bind "^1.1.1"
- has "^1.0.1"
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
-object.getownpropertydescriptors@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
- integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
+object.fromentries@^2.0.2:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251"
+ integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.1"
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
object.pick@^1.3.0:
version "1.3.0"
@@ -4913,16 +5366,22 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
+object.values@^1.1.1:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
+ integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
dependencies:
ee-first "1.1.1"
-on-headers@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
-
on-headers@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
@@ -4931,6 +5390,7 @@ on-headers@~1.0.2:
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
@@ -4941,6 +5401,13 @@ onetime@^2.0.0:
dependencies:
mimic-fn "^1.0.0"
+onetime@^5.1.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
open@^6.2.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9"
@@ -4948,28 +5415,22 @@ open@^6.2.0:
dependencies:
is-wsl "^1.1.0"
-optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
-optionator@^0.8.1, optionator@^0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
- integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
+optionator@^0.8.1, optionator@^0.8.3:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
dependencies:
deep-is "~0.1.3"
- fast-levenshtein "~2.0.4"
+ fast-levenshtein "~2.0.6"
levn "~0.3.0"
prelude-ls "~1.1.2"
type-check "~0.3.2"
- wordwrap "~1.0.0"
+ word-wrap "~1.2.3"
options@>=0.0.5:
version "0.0.6"
resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
+ integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
ora@^3.4.0:
version "3.4.0"
@@ -4983,90 +5444,43 @@ ora@^3.4.0:
strip-ansi "^5.2.0"
wcwidth "^1.0.1"
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-
-os-locale@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
- integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
- dependencies:
- execa "^0.7.0"
- lcid "^1.0.0"
- mem "^1.1.0"
-
-os-locale@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
- integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
- dependencies:
- execa "^1.0.0"
- lcid "^2.0.0"
- mem "^4.0.0"
-
os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-
-osenv@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
- integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.0"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
p-defer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
-p-each-series@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71"
- integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=
- dependencies:
- p-reduce "^1.0.0"
+p-each-series@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a"
+ integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+p-finally@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
+ integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
+
p-is-promise@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
-p-limit@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
- integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
- dependencies:
- p-try "^1.0.0"
-
-p-limit@^2.0.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537"
- integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==
- dependencies:
- p-try "^2.0.0"
-
-p-limit@^2.2.0:
+p-limit@^2.0.0, p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
dependencies:
p-try "^2.0.0"
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
- dependencies:
- p-limit "^1.1.0"
-
p-locate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
@@ -5081,16 +5495,6 @@ p-locate@^4.1.0:
dependencies:
p-limit "^2.2.0"
-p-reduce@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
- integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=
-
-p-try@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
- integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
-
p-try@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
@@ -5103,12 +5507,6 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
-parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- dependencies:
- error-ex "^1.2.0"
-
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -5117,15 +5515,25 @@ parse-json@^4.0.0:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
+parse-json@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@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"
+
parse-node-version@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
-parse5@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
- integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
+parse5@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
+ integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
parseurl@~1.3.3:
version "1.3.3"
@@ -5150,44 +5558,37 @@ path-exists@^4.0.0:
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-key@^2.0.0, path-key@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-path-parse@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
- integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-path-type@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
- integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
- dependencies:
- pify "^2.0.0"
-
-path-type@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
- integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
- dependencies:
- pify "^3.0.0"
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-pify@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
- integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+picomatch@^2.0.4, picomatch@^2.2.3:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pify@^4.0.1:
version "4.0.1"
@@ -5195,11 +5596,9 @@ pify@^4.0.1:
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
pirates@^4.0.0, pirates@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
- integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
- dependencies:
- node-modules-regexp "^1.0.0"
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
+ integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
pkg-dir@^3.0.0:
version "3.0.0"
@@ -5208,14 +5607,27 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
-plist@^3.0.0, plist@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c"
- integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==
+pkg-dir@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
dependencies:
- base64-js "^1.2.3"
+ find-up "^4.0.0"
+
+pkg-up@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"
+ integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==
+ dependencies:
+ find-up "^3.0.0"
+
+plist@^3.0.1, plist@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz#a62df837e3aed2bb3b735899d510c4f186019cbe"
+ integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==
+ dependencies:
+ base64-js "^1.5.1"
xmlbuilder "^9.0.7"
- xmldom "0.1.x"
plugin-error@^0.1.2:
version "0.1.2"
@@ -5241,13 +5653,21 @@ posix-character-classes@^0.1.0:
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-prettier@1.16.4:
- version "1.16.4"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717"
- integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==
+prettier-linter-helpers@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
+ integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+ dependencies:
+ fast-diff "^1.1.2"
-pretty-format@^24.7.0, pretty-format@^24.9.0:
+prettier@^2.0.2:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
+ integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
+
+pretty-format@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9"
integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==
@@ -5257,7 +5677,7 @@ pretty-format@^24.7.0, pretty-format@^24.9.0:
ansi-styles "^3.2.0"
react-is "^16.8.4"
-pretty-format@^25.1.0:
+pretty-format@^25.1.0, pretty-format@^25.2.0, pretty-format@^25.5.0:
version "25.5.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a"
integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==
@@ -5267,14 +5687,6 @@ pretty-format@^25.1.0:
ansi-styles "^4.0.0"
react-is "^16.12.0"
-private@^0.1.6:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
-
-process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -5286,36 +5698,45 @@ progress@^2.0.0:
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
promise@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf"
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
dependencies:
asap "~2.0.3"
+promise@^8.0.3:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
+ integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==
+ dependencies:
+ asap "~2.0.6"
+
prompts@^2.0.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.2.1.tgz#f901dd2a2dfee080359c0e20059b24188d75ad35"
- integrity sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw==
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
dependencies:
kleur "^3.0.3"
- sisteransi "^1.0.3"
+ sisteransi "^1.0.5"
-prop-types@^15.6.2, prop-types@^15.7.2:
- version "15.7.2"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
- integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
+prop-types@*, prop-types@^15.6.2, prop-types@^15.7.2:
+ version "15.8.1"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
dependencies:
loose-envify "^1.4.0"
object-assign "^4.1.1"
- react-is "^16.8.1"
+ react-is "^16.13.1"
-pseudomap@^1.0.1:
+pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-psl@^1.1.24, psl@^1.1.28:
- version "1.1.32"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.32.tgz#3f132717cf2f9c169724b2b6caf373cf694198db"
- integrity sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g==
+psl@^1.1.28:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
pump@^3.0.0:
version "3.0.0"
@@ -5325,193 +5746,147 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
-punycode@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-
punycode@^2.1.0, punycode@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
qs@~6.5.2:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
- integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+ version "6.5.3"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
+ integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
range-parser@~1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-rc@^1.2.7:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
-react-devtools-core@^3.6.3:
- version "3.6.3"
- resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-3.6.3.tgz#977d95b684c6ad28205f0c62e1e12c5f16675814"
- integrity sha512-+P+eFy/yo8Z/UH9J0DqHZuUM5+RI2wl249TNvMx3J2jpUomLQa4Zxl56GEotGfw3PIP1eI+hVf1s53FlUONStQ==
+react-devtools-core@^4.6.0:
+ version "4.23.0"
+ resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.23.0.tgz#dff9d12202a472ef62632203d6de3877dc6e58be"
+ integrity sha512-KkzneT1LczFtebbTJlvRphIRvzuHLhI9ghfrseVv9ktBs+l2cXy8Svw5U16lzQnwU9okVEcURmGPgH79WWrlaw==
dependencies:
shell-quote "^1.6.1"
- ws "^3.3.1"
+ ws "^7"
-react-is@^16.12.0:
+react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.4, react-is@^16.8.6:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
-react-is@^16.8.1:
- version "16.8.6"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
- integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
-
-react-is@^16.8.4, react-is@^16.8.6:
- version "16.9.0"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb"
- integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==
-
-"react-native-video@file:../..":
- version "5.1.0-alpha8"
+react-native-video@../..:
+ version "6.0.0-alpha1"
dependencies:
+ deprecated-react-native-prop-types "^2.2.0"
keymirror "^0.1.1"
prop-types "^15.7.2"
- shaka-player "^2.5.9"
+ shaka-player "^3.3.2"
-react-native-windows@^0.61.0-0:
- version "0.61.15"
- resolved "https://registry.yarnpkg.com/react-native-windows/-/react-native-windows-0.61.15.tgz#523c904245ae764fa0e2c6b56b259e0ef0be6d3f"
- integrity sha512-LSjUoNoLC1z76FsyRnKpEQQWupjsie918mryfHYddhWuZrdkKrqye043sgx1S/QayBbBH+1vMRNmwGtRqNxt0w==
+react-native-windows@0.63.41:
+ version "0.63.41"
+ resolved "https://registry.yarnpkg.com/react-native-windows/-/react-native-windows-0.63.41.tgz#96f59bc24749b6c167cb4f35fd74b66f78f4a4bb"
+ integrity sha512-AhLQP0dzX4jhtv9AsR5KF+BIlccKKPzTSmivg3ZUirqQxXwDDMjtIGwgFnp1WyH8cFoUEvpuyNnHsU3f7LxEyg==
dependencies:
- "@babel/runtime" "^7.4.0"
- cli-spinners "^2.2.0"
- create-react-class "^15.6.3"
- envinfo "^7.5.0"
- fbjs "^1.0.0"
- glob "^7.1.1"
- ora "^3.4.0"
- prop-types "^15.7.2"
- regenerator-runtime "^0.13.2"
- shelljs "^0.7.8"
- username "^5.1.0"
- uuid "^3.3.2"
- xml-parser "^1.2.1"
-
-react-native@0.61.5:
- version "0.61.5"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.61.5.tgz#6e21acb56cbd75a3baeb1f70201a66f42600bba8"
- integrity sha512-MXqE3NoGO0T3dUKIKkIppijBhRRMpfN6ANbhMXHDuyfA+fSilRWgCwYgR/YNCC7ntECoJYikKaNTUBB0DeQy6Q==
- dependencies:
- "@babel/runtime" "^7.0.0"
- "@react-native-community/cli" "^3.0.0"
- "@react-native-community/cli-platform-android" "^3.0.0"
- "@react-native-community/cli-platform-ios" "^3.0.0"
+ "@babel/runtime" "^7.8.4"
+ "@react-native-windows/cli" "0.63.14"
abort-controller "^3.0.0"
- art "^0.10.0"
+ anser "^1.4.9"
base64-js "^1.1.2"
- connect "^3.6.5"
- create-react-class "^15.6.3"
- escape-string-regexp "^1.0.5"
event-target-shim "^5.0.1"
fbjs "^1.0.0"
fbjs-scripts "^1.1.0"
- hermes-engine "^0.2.1"
+ invariant "^2.2.4"
+ nullthrows "^1.1.1"
+ pretty-format "^24.9.0"
+ promise "^8.0.3"
+ prop-types "^15.7.2"
+ react-devtools-core "^4.6.0"
+ regenerator-runtime "^0.13.2"
+ scheduler "0.19.1"
+ stacktrace-parser "^0.1.3"
+ use-subscription "^1.0.0"
+ whatwg-fetch "^3.0.0"
+
+react-native@0.63.4:
+ version "0.63.4"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.63.4.tgz#2210fdd404c94a5fa6b423c6de86f8e48810ec36"
+ integrity sha512-I4kM8kYO2mWEYUFITMcpRulcy4/jd+j9T6PbIzR0FuMcz/xwd+JwHoLPa1HmCesvR1RDOw9o4D+OFLwuXXfmGw==
+ dependencies:
+ "@babel/runtime" "^7.0.0"
+ "@react-native-community/cli" "^4.10.0"
+ "@react-native-community/cli-platform-android" "^4.10.0"
+ "@react-native-community/cli-platform-ios" "^4.10.0"
+ abort-controller "^3.0.0"
+ anser "^1.4.9"
+ base64-js "^1.1.2"
+ event-target-shim "^5.0.1"
+ fbjs "^1.0.0"
+ fbjs-scripts "^1.1.0"
+ hermes-engine "~0.5.0"
invariant "^2.2.4"
jsc-android "^245459.0.0"
- metro-babel-register "^0.56.0"
- metro-react-native-babel-transformer "^0.56.0"
- metro-source-map "^0.56.0"
- nullthrows "^1.1.0"
- pretty-format "^24.7.0"
- promise "^7.1.1"
+ metro-babel-register "0.59.0"
+ metro-react-native-babel-transformer "0.59.0"
+ metro-source-map "0.59.0"
+ nullthrows "^1.1.1"
+ pretty-format "^24.9.0"
+ promise "^8.0.3"
prop-types "^15.7.2"
- react-devtools-core "^3.6.3"
+ react-devtools-core "^4.6.0"
react-refresh "^0.4.0"
regenerator-runtime "^0.13.2"
- scheduler "0.15.0"
+ scheduler "0.19.1"
stacktrace-parser "^0.1.3"
+ use-subscription "^1.0.0"
whatwg-fetch "^3.0.0"
react-refresh@^0.4.0:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.2.tgz#54a277a6caaac2803d88f1d6f13c1dcfbd81e334"
- integrity sha512-kv5QlFFSZWo7OlJFNYbxRtY66JImuP2LcrFgyJfQaf85gSP+byzG21UbDQEYjU7f//ny8rwiEkO6py2Y+fEgAQ==
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53"
+ integrity sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==
-react-test-renderer@16.8.6:
- version "16.8.6"
- resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.8.6.tgz#188d8029b8c39c786f998aa3efd3ffe7642d5ba1"
- integrity sha512-H2srzU5IWYT6cZXof6AhUcx/wEyJddQ8l7cLM/F7gDXYyPr4oq+vCIxJYXVGhId1J706sqziAjuOEjyNkfgoEw==
+react-test-renderer@16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1"
+ integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==
dependencies:
object-assign "^4.1.1"
prop-types "^15.6.2"
react-is "^16.8.6"
- scheduler "^0.13.6"
+ scheduler "^0.19.1"
-react@^16.12.0:
- version "16.14.0"
- resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
- integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
+react@16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
+ integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
-read-pkg-up@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
- integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
+read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
dependencies:
- find-up "^2.0.0"
- read-pkg "^2.0.0"
+ find-up "^4.1.0"
+ read-pkg "^5.2.0"
+ type-fest "^0.8.1"
-read-pkg-up@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978"
- integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==
+read-pkg@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
dependencies:
- find-up "^3.0.0"
- read-pkg "^3.0.0"
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
-read-pkg@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
- integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
- dependencies:
- load-json-file "^2.0.0"
- normalize-package-data "^2.3.2"
- path-type "^2.0.0"
-
-read-pkg@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
- integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
- dependencies:
- load-json-file "^4.0.0"
- normalize-package-data "^2.3.2"
- path-type "^3.0.0"
-
-"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.1.5, readable-stream@^2.2.2:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729"
- dependencies:
- buffer-shims "^1.0.0"
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~0.10.x"
- util-deprecate "~1.0.1"
-
-readable-stream@~2.3.6:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
- integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
+readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6:
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
@@ -5521,12 +5896,10 @@ readable-stream@~2.3.6:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-realpath-native@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c"
- integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==
- dependencies:
- util.promisify "^1.0.0"
+realpath-native@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866"
+ integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==
rechoir@^0.6.2:
version "0.6.2"
@@ -5535,34 +5908,29 @@ rechoir@^0.6.2:
dependencies:
resolve "^1.1.6"
-regenerate-unicode-properties@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
- integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
+regenerate-unicode-properties@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326"
+ integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==
dependencies:
- regenerate "^1.4.0"
+ regenerate "^1.4.2"
-regenerate@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
- integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
+regenerate@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
+ integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-regenerator-runtime@^0.13.2:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
- integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
+regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4:
+ version "0.13.9"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
+ integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
-regenerator-runtime@^0.13.4:
- version "0.13.7"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
- integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
-
-regenerator-transform@^0.14.0:
- version "0.14.1"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb"
- integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==
+regenerator-transform@^0.14.2:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
+ integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
dependencies:
- private "^0.1.6"
+ "@babel/runtime" "^7.8.4"
regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
@@ -5572,32 +5940,45 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexp.prototype.flags@^1.3.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307"
+ integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
regexpp@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
-regexpu-core@^4.5.4:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
- integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==
+regexpp@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
+ integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+
+regexpu-core@^4.7.1:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0"
+ integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==
dependencies:
- regenerate "^1.4.0"
- regenerate-unicode-properties "^8.1.0"
- regjsgen "^0.5.0"
- regjsparser "^0.6.0"
- unicode-match-property-ecmascript "^1.0.4"
- unicode-match-property-value-ecmascript "^1.1.0"
+ regenerate "^1.4.2"
+ regenerate-unicode-properties "^9.0.0"
+ regjsgen "^0.5.2"
+ regjsparser "^0.7.0"
+ unicode-match-property-ecmascript "^2.0.0"
+ unicode-match-property-value-ecmascript "^2.0.0"
-regjsgen@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd"
- integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==
+regjsgen@^0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
+ integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
-regjsparser@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
- integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
+regjsparser@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968"
+ integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==
dependencies:
jsesc "~0.5.0"
@@ -5607,33 +5988,35 @@ remove-trailing-separator@^1.0.1:
integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
repeat-element@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
+ integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-request-promise-core@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346"
- integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==
+request-promise-core@1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
+ integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
dependencies:
- lodash "^4.17.11"
+ lodash "^4.17.19"
-request-promise-native@^1.0.5:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59"
- integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==
+request-promise-native@^1.0.7:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
+ integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==
dependencies:
- request-promise-core "1.1.2"
+ request-promise-core "1.1.4"
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.87.0:
- version "2.88.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
- integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
+request@^2.88.0:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
@@ -5642,7 +6025,7 @@ request@^2.87.0:
extend "~3.0.2"
forever-agent "~0.6.1"
form-data "~2.3.2"
- har-validator "~5.1.0"
+ har-validator "~5.1.3"
http-signature "~1.2.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
@@ -5652,29 +6035,31 @@ request@^2.87.0:
performance-now "^2.1.0"
qs "~6.5.2"
safe-buffer "^5.1.2"
- tough-cookie "~2.4.3"
+ tough-cookie "~2.5.0"
tunnel-agent "^0.6.0"
uuid "^3.3.2"
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
-
-require-main-filename@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
require-main-filename@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-resolve-cwd@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
- integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
+reselect@^4.0.0:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.5.tgz#852c361247198da6756d07d9296c2b51eddb79f6"
+ integrity sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==
+
+resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
dependencies:
- resolve-from "^3.0.0"
+ resolve-from "^5.0.0"
resolve-from@^3.0.0:
version "3.0.0"
@@ -5686,6 +6071,11 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -5696,27 +6086,14 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-resolve@^1.1.6:
- version "1.19.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
- integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
+resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.5.0:
+ version "1.22.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
+ integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
dependencies:
- is-core-module "^2.1.0"
- path-parse "^1.0.6"
-
-resolve@^1.3.2, resolve@^1.5.0:
- version "1.11.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232"
- integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==
- dependencies:
- path-parse "^1.0.6"
-
-resolve@^1.8.1, resolve@^1.9.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
- integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==
- dependencies:
- path-parse "^1.0.6"
+ is-core-module "^2.8.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
restore-cursor@^2.0.0:
version "2.0.0"
@@ -5726,12 +6103,20 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ dependencies:
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-rimraf@2.6.3, rimraf@^2.6.1:
+rimraf@2.6.3:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
@@ -5739,32 +6124,33 @@ rimraf@2.6.3, rimraf@^2.6.1:
glob "^7.1.3"
rimraf@^2.5.4:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
- dependencies:
- glob "^7.0.5"
-
-rimraf@^2.6.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
dependencies:
glob "^7.1.3"
+rimraf@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
rimraf@~2.2.6:
version "2.2.8"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
+ integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=
rsvp@^4.8.4:
version "4.8.5"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
-run-async@^2.2.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
- dependencies:
- is-promise "^2.1.0"
+run-async@^2.2.0, run-async@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
+ integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
rx-lite-aggregates@^4.0.8:
version "4.0.8"
@@ -5778,28 +6164,22 @@ rx-lite@*, rx-lite@^4.0.8:
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
-rxjs@^5.4.3:
- version "5.5.12"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc"
- integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==
- dependencies:
- symbol-observable "1.0.1"
-
-rxjs@^6.4.0:
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
- integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==
+rxjs@^6.6.0:
+ version "6.6.7"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
+ integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
dependencies:
tslib "^1.9.0"
-safe-buffer@5.1.2, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-buffer@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
+safe-buffer@^5.0.1, safe-buffer@^5.1.2:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-regex@^1.1.0:
version "1.1.0"
@@ -5808,7 +6188,7 @@ safe-regex@^1.1.0:
dependencies:
ret "~0.1.10"
-"safer-buffer@>= 2.1.2 < 3":
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -5828,55 +6208,52 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
-sax@^1.2.1, sax@^1.2.4:
+sax@^1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-scheduler@0.15.0:
- version "0.15.0"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e"
- integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==
+saxes@^3.1.9:
+ version "3.1.11"
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b"
+ integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==
+ dependencies:
+ xmlchars "^2.1.1"
+
+scheduler@0.19.1, scheduler@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
+ integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
-scheduler@^0.13.6:
- version "0.13.6"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889"
- integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==
- dependencies:
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
-
-"semver@2 || 3 || 4 || 5", semver@^5.1.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
-
-semver@5.5.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
- integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
-
-semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
- integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
-
-semver@^5.5.1, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
+semver@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
+semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-send@0.17.1:
- version "0.17.1"
- resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
- integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
+semver@^7.1.3, semver@^7.3.2:
+ version "7.3.5"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+ integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+ dependencies:
+ lru-cache "^6.0.0"
+
+send@0.17.2:
+ version "0.17.2"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
+ integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
dependencies:
debug "2.6.9"
depd "~1.1.2"
@@ -5885,9 +6262,9 @@ send@0.17.1:
escape-html "~1.0.3"
etag "~1.8.1"
fresh "0.5.2"
- http-errors "~1.7.2"
+ http-errors "1.8.1"
mime "1.6.0"
- ms "2.1.1"
+ ms "2.1.3"
on-finished "~2.3.0"
range-parser "~1.2.1"
statuses "~1.5.0"
@@ -5898,33 +6275,24 @@ serialize-error@^2.1.0:
integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=
serve-static@^1.13.1:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
- integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
+ version "1.14.2"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa"
+ integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
parseurl "~1.3.3"
- send "0.17.1"
+ send "0.17.2"
-set-blocking@^2.0.0, set-blocking@~2.0.0:
+set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-set-value@^0.4.3:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
- integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
- dependencies:
- extend-shallow "^2.0.1"
- is-extendable "^0.1.1"
- is-plain-object "^2.0.1"
- to-object-path "^0.3.0"
-
-set-value@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
- integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
+set-value@^2.0.0, set-value@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+ integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
dependencies:
extend-shallow "^2.0.1"
is-extendable "^0.1.1"
@@ -5934,18 +6302,26 @@ set-value@^2.0.0:
setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
-setprototypeof@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
- integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
-shaka-player@^2.5.9:
- version "2.5.18"
- resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-2.5.18.tgz#5382d0b879ade01dc7cea5115d311d2168b7428a"
- integrity sha512-kW6sNMl36E4ookOcAo7//D/+sNkKNw7kBCR58AAC0eYw+fpVXwUbFoN/aqsj5nhACZ00QGQQajTZXZyK1s8Dow==
+shaka-player@^3.3.2:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-3.3.4.tgz#7d137a18fc0f55c50852a4348c8319495b5fa546"
+ integrity sha512-8PrUBA8aOABGvhQVa59XMoPo5myAoQF4ptx6gvZWPOBtdsyVaamqQKELY77ikZJ1ejup7BmHf42MXGFmxQfcaA==
dependencies:
- eme-encryption-scheme-polyfill "^2.0.1"
+ eme-encryption-scheme-polyfill "^2.0.3"
+
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
shebang-command@^1.2.0:
version "1.2.0"
@@ -5954,24 +6330,42 @@ shebang-command@^1.2.0:
dependencies:
shebang-regex "^1.0.0"
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
-shell-quote@1.6.1, shell-quote@^1.6.1:
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+shell-quote@1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
+ integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=
dependencies:
array-filter "~0.0.0"
array-map "~0.0.0"
array-reduce "~0.0.0"
jsonify "~0.0.0"
-shelljs@^0.7.8:
- version "0.7.8"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
- integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM=
+shell-quote@^1.6.1:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123"
+ integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==
+
+shelljs@^0.8.4:
+ version "0.8.5"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
+ integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
@@ -5982,23 +6376,38 @@ shellwords@^0.1.1:
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
+shimmer@^1.1.0, shimmer@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
+ integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
+
+side-channel@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+ integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+ dependencies:
+ call-bind "^1.0.0"
+ get-intrinsic "^1.0.2"
+ object-inspect "^1.9.0"
+
signal-exit@^3.0.0, signal-exit@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
+ integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
simple-plist@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.0.0.tgz#bed3085633b22f371e111f45d159a1ccf94b81eb"
- integrity sha512-043L2rO80LVF7zfZ+fqhsEkoJFvW8o59rt/l4ctx1TJWoTx7/jkiS1R5TatD15Z1oYnuLJytzE7gcnnBuIPL2g==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.3.0.tgz#f451997663eafd8ea6bad353a01caf49ef186d43"
+ integrity sha512-uYWpeGFtZtVt2NhG4AHgpwx323zxD85x42heMJBan1qAiqqozIlaGrwrEt6kRjXWRWIXsuV1VLCvVmZan2B5dg==
dependencies:
- bplist-creator "0.0.7"
- bplist-parser "0.1.1"
- plist "^3.0.1"
+ bplist-creator "0.1.0"
+ bplist-parser "0.3.0"
+ plist "^3.0.4"
-sisteransi@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.3.tgz#98168d62b79e3a5e758e27ae63c4a053d748f4eb"
- integrity sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg==
+sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
slash@^2.0.0:
version "2.0.0"
@@ -6019,10 +6428,6 @@ slice-ansi@^2.0.0, slice-ansi@^2.1.0:
astral-regex "^1.0.0"
is-fullwidth-code-point "^2.0.0"
-slide@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
-
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -6054,51 +6459,69 @@ snapdragon@^0.8.1:
use "^3.1.0"
source-map-resolve@^0.5.0:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
- integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+ integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
dependencies:
- atob "^2.1.1"
+ atob "^2.1.2"
decode-uri-component "^0.2.0"
resolve-url "^0.2.1"
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.5.6, source-map-support@^0.5.9:
- version "0.5.13"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
- integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+source-map-support@^0.5.16, source-map-support@^0.5.6:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
source-map-url@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
- integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+ integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
source-map@^0.5.0, source-map@^0.5.6:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-spdx-correct@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
+source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+spdx-correct@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
+ integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
dependencies:
- spdx-license-ids "^1.0.2"
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
-spdx-expression-parse@~1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
+spdx-exceptions@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-spdx-license-ids@^1.0.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
+spdx-expression-parse@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.11"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95"
+ integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
@@ -6113,28 +6536,43 @@ sprintf-js@~1.0.2:
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
sshpk@^1.7.0:
- version "1.11.0"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.11.0.tgz#2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77"
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
+ integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
- dashdash "^1.12.0"
- getpass "^0.1.1"
- optionalDependencies:
bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
ecc-jsbn "~0.1.1"
- jodid25519 "^1.0.0"
+ getpass "^0.1.1"
jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
+stack-chain@^1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285"
+ integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=
+
stack-utils@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
- integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b"
+ integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==
+ dependencies:
+ escape-string-regexp "^2.0.0"
+
+stackframe@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303"
+ integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==
stacktrace-parser@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.4.tgz#01397922e5f62ecf30845522c95c4fe1d25e7d4e"
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a"
+ integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==
+ dependencies:
+ type-fest "^0.7.1"
static-extend@^0.1.1:
version "0.1.2"
@@ -6154,28 +6592,20 @@ stealthy-require@^1.1.1:
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
-stream-buffers@~2.2.0:
+stream-buffers@2.2.x:
version "2.2.0"
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=
-string-length@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
- integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=
+string-length@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837"
+ integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==
dependencies:
astral-regex "^1.0.0"
- strip-ansi "^4.0.0"
+ strip-ansi "^5.2.0"
-string-width@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
+string-width@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -6192,25 +6622,44 @@ string-width@^3.0.0, string-width@^3.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
-string.prototype.trimleft@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634"
- integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==
+string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
- define-properties "^1.1.3"
- function-bind "^1.1.1"
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
-string.prototype.trimright@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58"
- integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==
+string.prototype.matchall@^4.0.2:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
+ integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==
dependencies:
+ call-bind "^1.0.2"
define-properties "^1.1.3"
- function-bind "^1.1.1"
+ es-abstract "^1.19.1"
+ get-intrinsic "^1.1.1"
+ has-symbols "^1.0.2"
+ internal-slot "^1.0.3"
+ regexp.prototype.flags "^1.3.1"
+ side-channel "^1.0.4"
-string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+string.prototype.trimend@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+ integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+string.prototype.trimstart@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+ integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
string_decoder@~1.1.1:
version "1.1.1"
@@ -6219,12 +6668,6 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- dependencies:
- ansi-regex "^2.0.0"
-
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
@@ -6239,24 +6682,32 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
dependencies:
ansi-regex "^4.1.0"
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
- integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-strip-json-comments@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
- integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+strip-json-comments@^3.0.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
sudo-prompt@^9.0.0:
version "9.2.1"
@@ -6277,17 +6728,25 @@ supports-color@^6.1.0:
dependencies:
has-flag "^3.0.0"
-supports-color@^7.1.0:
+supports-color@^7.0.0, supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
dependencies:
has-flag "^4.0.0"
-symbol-observable@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
- integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
+supports-hyperlinks@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb"
+ integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==
+ dependencies:
+ has-flag "^4.0.0"
+ supports-color "^7.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
symbol-tree@^3.2.2:
version "3.2.4"
@@ -6304,54 +6763,47 @@ table@^5.2.3:
slice-ansi "^2.1.0"
string-width "^3.0.0"
-tar@^4:
- version "4.4.10"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1"
- integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==
- dependencies:
- chownr "^1.1.1"
- fs-minipass "^1.2.5"
- minipass "^2.3.5"
- minizlib "^1.2.1"
- mkdirp "^0.5.0"
- safe-buffer "^5.1.2"
- yallist "^3.0.3"
-
temp@0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
+ integrity sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=
dependencies:
os-tmpdir "^1.0.0"
rimraf "~2.2.6"
-test-exclude@^5.2.3:
- version "5.2.3"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
- integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==
+terminal-link@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
+ integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
dependencies:
- glob "^7.1.3"
+ ansi-escapes "^4.2.1"
+ supports-hyperlinks "^2.0.0"
+
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
minimatch "^3.0.4"
- read-pkg-up "^4.0.0"
- require-main-filename "^2.0.0"
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-throat@^4.0.0, throat@^4.1.0:
+throat@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=
-through2@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
- dependencies:
- readable-stream "^2.1.5"
- xtend "~4.0.1"
+throat@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
+ integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
-through2@^2.0.1:
+through2@^2.0.0, through2@^2.0.1:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
@@ -6362,10 +6814,12 @@ through2@^2.0.1:
through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
time-stamp@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151"
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
+ integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
tmp@^0.0.33:
version "0.0.33"
@@ -6374,9 +6828,10 @@ tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
-tmpl@1.0.x:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
+tmpl@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+ integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
to-fast-properties@^2.0.0:
version "2.0.0"
@@ -6398,6 +6853,13 @@ to-regex-range@^2.1.0:
is-number "^3.0.0"
repeat-string "^1.6.1"
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
to-regex@^3.0.1, to-regex@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
@@ -6408,12 +6870,12 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2"
safe-regex "^1.1.0"
-toidentifier@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
- integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
-tough-cookie@^2.3.3, tough-cookie@^2.3.4:
+tough-cookie@^2.3.3, tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
@@ -6421,13 +6883,14 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4:
psl "^1.1.28"
punycode "^2.1.1"
-tough-cookie@~2.4.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
- integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
+tough-cookie@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
+ integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
dependencies:
- psl "^1.1.24"
- punycode "^1.4.1"
+ ip-regex "^2.1.0"
+ psl "^1.1.28"
+ punycode "^2.1.1"
tr46@^1.0.1:
version "1.0.1"
@@ -6436,46 +6899,83 @@ tr46@^1.0.1:
dependencies:
punycode "^2.1.0"
-trim-right@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+ integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
tslib@^1.8.1, tslib@^1.9.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
- integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tsutils@^3.7.0:
- version "3.17.1"
- resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
- integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
+tsutils@^3.17.1:
+ version "3.21.0"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
+ integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
dependencies:
tslib "^1.8.1"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
dependencies:
safe-buffer "^5.0.1"
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
dependencies:
prelude-ls "~1.1.2"
+type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
+type-fest@^0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
+ integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
+
+type-fest@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+ integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+typedarray-to-buffer@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+ dependencies:
+ is-typedarray "^1.0.0"
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
ua-parser-js@^0.7.18:
- version "0.7.20"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098"
- integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==
+ version "0.7.31"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6"
+ integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==
uglify-es@^3.1.9:
version "3.3.9"
@@ -6485,55 +6985,53 @@ uglify-es@^3.1.9:
commander "~2.13.0"
source-map "~0.6.1"
-uglify-js@^3.1.4:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5"
- integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==
- dependencies:
- commander "~2.20.0"
- source-map "~0.6.1"
-
ultron@1.0.x:
version "1.0.2"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
+ integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
-ultron@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
- integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
-
-unicode-canonical-property-names-ecmascript@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
- integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
-
-unicode-match-property-ecmascript@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
- integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
+unbox-primitive@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
+ integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
dependencies:
- unicode-canonical-property-names-ecmascript "^1.0.4"
- unicode-property-aliases-ecmascript "^1.0.4"
+ function-bind "^1.1.1"
+ has-bigints "^1.0.1"
+ has-symbols "^1.0.2"
+ which-boxed-primitive "^1.0.2"
-unicode-match-property-value-ecmascript@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
- integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
+unicode-canonical-property-names-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
+ integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
-unicode-property-aliases-ecmascript@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
- integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
+unicode-match-property-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
+ integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^2.0.0"
+ unicode-property-aliases-ecmascript "^2.0.0"
+
+unicode-match-property-value-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
+ integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
+
+unicode-property-aliases-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
+ integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
union-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
- integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+ integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
dependencies:
arr-union "^3.1.0"
get-value "^2.0.6"
is-extendable "^0.1.1"
- set-value "^0.4.3"
+ set-value "^2.0.1"
universalify@^0.1.0:
version "0.1.2"
@@ -6543,6 +7041,7 @@ universalify@^0.1.0:
unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
unset-value@^1.0.0:
version "1.0.0"
@@ -6553,9 +7052,9 @@ unset-value@^1.0.0:
isobject "^3.0.0"
uri-js@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
- integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
@@ -6564,6 +7063,13 @@ urix@^0.1.0:
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+use-subscription@^1.0.0:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1"
+ integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==
+ dependencies:
+ object-assign "^4.1.1"
+
use@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
@@ -6580,14 +7086,7 @@ username@^5.1.0:
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-
-util.promisify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
- integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
- dependencies:
- define-properties "^1.1.2"
- object.getownpropertydescriptors "^2.0.3"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
utils-merge@1.0.1:
version "1.0.1"
@@ -6595,32 +7094,45 @@ utils-merge@1.0.1:
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
uuid@^3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
- integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
v8-compile-cache@^2.0.3:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
- integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+ integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+v8-to-istanbul@^4.1.3:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6"
+ integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^1.6.0"
+ source-map "^0.7.3"
validate-npm-package-license@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
dependencies:
- spdx-correct "~1.0.0"
- spdx-expression-parse "~1.0.0"
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
-verror@1.3.6:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
dependencies:
- extsprintf "1.0.2"
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
vlq@^1.0.0:
version "1.0.1"
@@ -6628,17 +7140,27 @@ vlq@^1.0.0:
integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==
w3c-hr-time@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
- integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
+ integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
dependencies:
- browser-process-hrtime "^0.1.2"
+ browser-process-hrtime "^1.0.0"
+
+w3c-xmlserializer@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
+ integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==
+ dependencies:
+ domexception "^1.0.1"
+ webidl-conversions "^4.0.2"
+ xml-name-validator "^3.0.0"
walker@^1.0.7, walker@~1.0.5:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+ integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
dependencies:
- makeerror "1.0.x"
+ makeerror "1.0.12"
wcwidth@^1.0.1:
version "1.0.1"
@@ -6647,89 +7169,89 @@ wcwidth@^1.0.1:
dependencies:
defaults "^1.0.3"
+webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+ integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+
webidl-conversions@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
-whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
+whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
dependencies:
iconv-lite "0.4.24"
-whatwg-fetch@>=0.10.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz#ac3c9d39f320c6dce5339969d054ef43dd333319"
+whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
+ integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
-whatwg-fetch@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
- integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==
-
-whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
+whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
-whatwg-url@^6.4.1:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
- integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==
+whatwg-url@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+ integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+whatwg-url@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
dependencies:
lodash.sortby "^4.7.0"
tr46 "^1.0.1"
webidl-conversions "^4.0.2"
-whatwg-url@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd"
- integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==
+which-boxed-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+ integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
dependencies:
- lodash.sortby "^4.7.0"
- tr46 "^1.0.1"
- webidl-conversions "^4.0.2"
+ is-bigint "^1.0.1"
+ is-boolean-object "^1.1.0"
+ is-number-object "^1.0.4"
+ is-string "^1.0.5"
+ is-symbol "^1.0.3"
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-which@^1.2.9:
- version "1.2.12"
- resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192"
- dependencies:
- isexe "^1.1.1"
-
-which@^1.3.0:
+which@^1.2.9, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
dependencies:
isexe "^2.0.0"
-wide-align@^1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
- integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+which@^2.0.1, which@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
dependencies:
- string-width "^1.0.2 || 2"
+ isexe "^2.0.0"
-wordwrap@^1.0.0, wordwrap@~1.0.0:
+word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+wordwrap@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
-wrap-ansi@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
wrap-ansi@^5.1.0:
version "5.1.0"
@@ -6740,26 +7262,29 @@ wrap-ansi@^5.1.0:
string-width "^3.0.0"
strip-ansi "^5.0.0"
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529"
- integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==
+write-file-atomic@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+ integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
dependencies:
- graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
+ is-typedarray "^1.0.0"
signal-exit "^3.0.2"
-
-write-file-atomic@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a"
- dependencies:
- graceful-fs "^4.1.11"
- imurmurhash "^0.1.4"
- slide "^1.1.5"
+ typedarray-to-buffer "^3.1.5"
write@1.0.3:
version "1.0.3"
@@ -6768,14 +7293,7 @@ write@1.0.3:
dependencies:
mkdirp "^0.5.1"
-ws@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f"
- dependencies:
- options ">=0.0.5"
- ultron "1.0.x"
-
-ws@^1.1.5:
+ws@^1.1.0, ws@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
@@ -6783,26 +7301,15 @@ ws@^1.1.5:
options ">=0.0.5"
ultron "1.0.x"
-ws@^3.3.1:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
- integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
- dependencies:
- async-limiter "~1.0.0"
- safe-buffer "~5.1.0"
- ultron "~1.1.0"
-
-ws@^5.2.0:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
- integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==
- dependencies:
- async-limiter "~1.0.0"
+ws@^7, ws@^7.0.0:
+ version "7.5.6"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"
+ integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==
xcode@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.0.0.tgz#134f1f94c26fbfe8a9aaa9724bfb2772419da1a2"
- integrity sha512-5xF6RCjAdDEiEsbbZaS/gBRt3jZ/177otZcpoLCjGN/u1LrfgH7/Sgeeavpr/jELpyDqN2im3AKosl2G2W8hfw==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.1.0.tgz#bab64a7e954bb50ca8d19da7e09531c65a43ecfe"
+ integrity sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==
dependencies:
simple-plist "^1.0.0"
uuid "^3.3.2"
@@ -6824,6 +7331,11 @@ xmlbuilder@^9.0.7:
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
+xmlchars@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+ integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
xmldoc@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-1.1.2.tgz#6666e029fe25470d599cd30e23ff0d1ed50466d7"
@@ -6831,84 +7343,66 @@ xmldoc@^1.1.2:
dependencies:
sax "^1.2.1"
-xmldom@0.1.x:
- version "0.1.27"
- resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
+xpath@^0.0.27:
+ version "0.0.27"
+ resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.27.tgz#dd3421fbdcc5646ac32c48531b4d7e9d0c2cfa92"
+ integrity sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==
xpipe@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf"
integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=
+xregexp@^4.3.0:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.4.1.tgz#c84a88fa79e9ab18ca543959712094492185fe65"
+ integrity sha512-2u9HwfadaJaY9zHtRRnH6BY6CQVNQKkYm3oLtC9gJXXzfsbACg5X5e4EZZGVAH+YIfa+QA9lsFQTTe3HURF3ag==
+ dependencies:
+ "@babel/runtime-corejs3" "^7.12.1"
+
xtend@~4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-y18n@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+y18n@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
+ integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
-"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
+
+yallist@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
- integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-yallist@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4"
-
-yallist@^3.0.0, yallist@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
- integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
-
-yargs-parser@^11.1.1:
- version "11.1.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
- integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
+yargs-parser@^15.0.1:
+ version "15.0.3"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115"
+ integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^13.1.1:
- version "13.1.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
- integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
+yargs-parser@^18.1.2:
+ version "18.1.3"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
- integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k=
- dependencies:
- camelcase "^4.1.0"
-
-yargs@^12.0.5:
- version "12.0.5"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
- integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
- dependencies:
- cliui "^4.0.0"
- decamelize "^1.2.0"
- find-up "^3.0.0"
- get-caller-file "^1.0.1"
- os-locale "^3.0.0"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^2.0.0"
- which-module "^2.0.0"
- y18n "^3.2.1 || ^4.0.0"
- yargs-parser "^11.1.1"
-
-yargs@^13.3.0:
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
- integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==
+yargs@^14.2.0:
+ version "14.2.3"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414"
+ integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==
dependencies:
cliui "^5.0.0"
+ decamelize "^1.2.0"
find-up "^3.0.0"
get-caller-file "^2.0.1"
require-directory "^2.1.1"
@@ -6917,23 +7411,21 @@ yargs@^13.3.0:
string-width "^3.0.0"
which-module "^2.0.0"
y18n "^4.0.0"
- yargs-parser "^13.1.1"
+ yargs-parser "^15.0.1"
-yargs@^9.0.0:
- version "9.0.1"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"
- integrity sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=
+yargs@^15.1.0, yargs@^15.3.1:
+ version "15.4.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
+ integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
dependencies:
- camelcase "^4.1.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^2.0.0"
- read-pkg-up "^2.0.0"
+ 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 "^1.0.1"
+ require-main-filename "^2.0.0"
set-blocking "^2.0.0"
- string-width "^2.0.0"
+ string-width "^4.2.0"
which-module "^2.0.0"
- y18n "^3.2.1"
- yargs-parser "^7.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^18.1.2"
diff --git a/examples/video-caching/android/app/build.gradle b/examples/video-caching/android/app/build.gradle
index 7a6b5205..c0195dab 100644
--- a/examples/video-caching/android/app/build.gradle
+++ b/examples/video-caching/android/app/build.gradle
@@ -94,12 +94,12 @@ def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false
android {
- compileSdkVersion 23
- buildToolsVersion "23.0.1"
+ compileSdkVersion 31
+ buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.videocaching"
- minSdkVersion 16
+ minSdkVersion 21
targetSdkVersion 22
versionCode 1
versionName "1.0"
diff --git a/examples/video-caching/android/app/src/main/AndroidManifest.xml b/examples/video-caching/android/app/src/main/AndroidManifest.xml
index c0050352..51b666bc 100644
--- a/examples/video-caching/android/app/src/main/AndroidManifest.xml
+++ b/examples/video-caching/android/app/src/main/AndroidManifest.xml
@@ -7,7 +7,7 @@
?
+ let contentId: String?
+ let certificateUrl: String?
+ let base64Certificate: Bool?
+
+ let json: NSDictionary?
+
+ init(_ json: NSDictionary!) {
+ guard json != nil else {
+ self.json = nil
+ self.type = nil
+ self.licenseServer = nil
+ self.contentId = nil
+ self.certificateUrl = nil
+ self.base64Certificate = nil
+ self.headers = nil
+ return
+ }
+ self.json = json
+ self.type = json["type"] as? String
+ self.licenseServer = json["licenseServer"] as? String
+ self.contentId = json["contentId"] as? String
+ self.certificateUrl = json["certificateUrl"] as? String
+ self.base64Certificate = json["base64Certificate"] as? Bool
+ self.headers = json["headers"] as? Dictionary
+ }
+}
diff --git a/ios/Video/DataStructures/SelectedTrackCriteria.swift b/ios/Video/DataStructures/SelectedTrackCriteria.swift
new file mode 100644
index 00000000..7d97b8f2
--- /dev/null
+++ b/ios/Video/DataStructures/SelectedTrackCriteria.swift
@@ -0,0 +1,18 @@
+struct SelectedTrackCriteria {
+ let type: String
+ let value: Any?
+
+ let json: NSDictionary?
+
+ init(_ json: NSDictionary!) {
+ guard json != nil else {
+ self.json = nil
+ self.type = ""
+ self.value = nil
+ return
+ }
+ self.json = json
+ self.type = json["type"] as? String ?? ""
+ self.value = json["value"]
+ }
+}
diff --git a/ios/Video/DataStructures/TextTrack.swift b/ios/Video/DataStructures/TextTrack.swift
new file mode 100644
index 00000000..b0bdad80
--- /dev/null
+++ b/ios/Video/DataStructures/TextTrack.swift
@@ -0,0 +1,25 @@
+
+struct TextTrack {
+ let type: String
+ let language: String
+ let title: String
+ let uri: String
+
+ let json: NSDictionary?
+
+ init(_ json: NSDictionary!) {
+ guard json != nil else {
+ self.json = nil
+ self.type = ""
+ self.language = ""
+ self.title = ""
+ self.uri = ""
+ return
+ }
+ self.json = json
+ self.type = json["type"] as? String ?? ""
+ self.language = json["language"] as? String ?? ""
+ self.title = json["title"] as? String ?? ""
+ self.uri = json["uri"] as? String ?? ""
+ }
+}
diff --git a/ios/Video/DataStructures/VideoSource.swift b/ios/Video/DataStructures/VideoSource.swift
new file mode 100644
index 00000000..20ab7158
--- /dev/null
+++ b/ios/Video/DataStructures/VideoSource.swift
@@ -0,0 +1,31 @@
+
+struct VideoSource {
+ let type: String?
+ let uri: String?
+ let isNetwork: Bool
+ let isAsset: Bool
+ let shouldCache: Bool
+ let requestHeaders: Dictionary?
+
+ let json: NSDictionary?
+
+ init(_ json: NSDictionary!) {
+ guard json != nil else {
+ self.json = nil
+ self.type = nil
+ self.uri = nil
+ self.isNetwork = false
+ self.isAsset = false
+ self.shouldCache = false
+ self.requestHeaders = nil
+ return
+ }
+ self.json = json
+ self.type = json["type"] as? String
+ self.uri = json["uri"] as? String
+ self.isNetwork = json["isNetwork"] as? Bool ?? false
+ self.isAsset = json["isAsset"] as? Bool ?? false
+ self.shouldCache = json["shouldCache"] as? Bool ?? false
+ self.requestHeaders = json["requestHeaders"] as? Dictionary
+ }
+}
diff --git a/ios/Video/Features/RCTPictureInPicture.swift b/ios/Video/Features/RCTPictureInPicture.swift
new file mode 100644
index 00000000..4525df0b
--- /dev/null
+++ b/ios/Video/Features/RCTPictureInPicture.swift
@@ -0,0 +1,75 @@
+import AVFoundation
+import AVKit
+import MediaAccessibility
+import React
+import Foundation
+
+#if TARGET_OS_IOS
+class RCTPictureInPicture: NSObject, AVPictureInPictureControllerDelegate {
+ private var _onPictureInPictureStatusChanged: RCTDirectEventBlock?
+ private var _onRestoreUserInterfaceForPictureInPictureStop: RCTDirectEventBlock?
+ private var _restoreUserInterfaceForPIPStopCompletionHandler:((Bool) -> Void)? = nil
+ private var _pipController:AVPictureInPictureController?
+ private var _isActive:Bool = false
+
+ init(_ onPictureInPictureStatusChanged: @escaping RCTDirectEventBlock, _ onRestoreUserInterfaceForPictureInPictureStop: @escaping RCTDirectEventBlock) {
+ _onPictureInPictureStatusChanged = onPictureInPictureStatusChanged
+ _onRestoreUserInterfaceForPictureInPictureStop = onRestoreUserInterfaceForPictureInPictureStop
+ }
+
+ func pictureInPictureControllerDidStartPictureInPicture(_ pictureInPictureController: AVPictureInPictureController) {
+ guard let _onPictureInPictureStatusChanged = _onPictureInPictureStatusChanged else { return }
+
+ _onPictureInPictureStatusChanged([ "isActive": NSNumber(value: true)])
+ }
+
+ func pictureInPictureControllerDidStopPictureInPicture(_ pictureInPictureController: AVPictureInPictureController) {
+ guard let _onPictureInPictureStatusChanged = _onPictureInPictureStatusChanged else { return }
+
+ _onPictureInPictureStatusChanged([ "isActive": NSNumber(value: false)])
+ }
+
+ func pictureInPictureController(_ pictureInPictureController: AVPictureInPictureController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: @escaping (Bool) -> Void) {
+
+ assert(_restoreUserInterfaceForPIPStopCompletionHandler == nil, "restoreUserInterfaceForPIPStopCompletionHandler was not called after picture in picture was exited.")
+
+ guard let _onRestoreUserInterfaceForPictureInPictureStop = _onRestoreUserInterfaceForPictureInPictureStop else { return }
+
+ _onRestoreUserInterfaceForPictureInPictureStop([:])
+
+ _restoreUserInterfaceForPIPStopCompletionHandler = completionHandler
+ }
+
+ func setRestoreUserInterfaceForPIPStopCompletionHandler(_ restore:Bool) {
+ guard let _restoreUserInterfaceForPIPStopCompletionHandler = _restoreUserInterfaceForPIPStopCompletionHandler else { return }
+ _restoreUserInterfaceForPIPStopCompletionHandler(restore)
+ self._restoreUserInterfaceForPIPStopCompletionHandler = nil
+ }
+
+ func setupPipController(_ playerLayer: AVPlayerLayer?) {
+ guard playerLayer != nil && AVPictureInPictureController.isPictureInPictureSupported() && _isActive else { return }
+ // Create new controller passing reference to the AVPlayerLayer
+ _pipController = AVPictureInPictureController(playerLayer:playerLayer!)
+ _pipController?.delegate = self
+ }
+
+ func setPictureInPicture(_ isActive:Bool) {
+ if _isActive == isActive {
+ return
+ }
+ _isActive = isActive
+
+ guard let _pipController = _pipController else { return }
+
+ if _isActive && !_pipController.isPictureInPictureActive {
+ DispatchQueue.main.async(execute: {
+ _pipController.startPictureInPicture()
+ })
+ } else if !_isActive && _pipController.isPictureInPictureActive {
+ DispatchQueue.main.async(execute: {
+ _pipController.stopPictureInPicture()
+ })
+ }
+ }
+}
+#endif
diff --git a/ios/Video/Features/RCTPlayerObserver.swift b/ios/Video/Features/RCTPlayerObserver.swift
new file mode 100644
index 00000000..68fc56dd
--- /dev/null
+++ b/ios/Video/Features/RCTPlayerObserver.swift
@@ -0,0 +1,207 @@
+import AVFoundation
+import AVKit
+import Foundation
+
+@objc
+protocol RCTPlayerObserverHandlerObjc {
+ func handleDidFailToFinishPlaying(notification:NSNotification!)
+ func handlePlaybackStalled(notification:NSNotification!)
+ func handlePlayerItemDidReachEnd(notification:NSNotification!)
+ // unused
+// func handleAVPlayerAccess(notification:NSNotification!)
+}
+
+protocol RCTPlayerObserverHandler: RCTPlayerObserverHandlerObjc {
+ func handleTimeUpdate(time:CMTime)
+ func handleReadyForDisplay(changeObject: Any, change:NSKeyValueObservedChange)
+ func handleTimeMetadataChange(playerItem:AVPlayerItem, change:NSKeyValueObservedChange<[AVMetadataItem]?>)
+ func handlePlayerItemStatusChange(playerItem:AVPlayerItem, change:NSKeyValueObservedChange)
+ func handlePlaybackBufferKeyEmpty(playerItem:AVPlayerItem, change:NSKeyValueObservedChange)
+ func handlePlaybackLikelyToKeepUp(playerItem:AVPlayerItem, change:NSKeyValueObservedChange)
+ func handlePlaybackRateChange(player: AVPlayer, change: NSKeyValueObservedChange)
+ func handleExternalPlaybackActiveChange(player: AVPlayer, change: NSKeyValueObservedChange)
+ func handleViewControllerOverlayViewFrameChange(overlayView:UIView, change:NSKeyValueObservedChange)
+}
+
+class RCTPlayerObserver: NSObject {
+
+ var _handlers: RCTPlayerObserverHandler!
+
+ var player:AVPlayer? {
+ willSet {
+ removePlayerObservers()
+ removePlayerTimeObserver()
+ }
+ didSet {
+ if player != nil {
+ addPlayerObservers()
+ addPlayerTimeObserver()
+ }
+ }
+ }
+ var playerItem:AVPlayerItem? {
+ willSet {
+ removePlayerItemObservers()
+ }
+ didSet {
+ if playerItem != nil {
+ addPlayerItemObservers()
+ }
+ }
+ }
+ var playerViewController:AVPlayerViewController? {
+ willSet {
+ removePlayerViewControllerObservers()
+ }
+ didSet {
+ if playerViewController != nil {
+ addPlayerViewControllerObservers()
+ }
+ }
+ }
+ var playerLayer:AVPlayerLayer? {
+ willSet {
+ removePlayerLayerObserver()
+ }
+ didSet {
+ if playerLayer != nil {
+ addPlayerLayerObserver()
+ }
+ }
+ }
+
+ private var _progressUpdateInterval:TimeInterval = 250
+ private var _timeObserver:Any?
+
+ private var _playerRateChangeObserver:NSKeyValueObservation?
+ private var _playerExpernalPlaybackActiveObserver:NSKeyValueObservation?
+ private var _playerItemStatusObserver:NSKeyValueObservation?
+ private var _playerPlaybackBufferEmptyObserver:NSKeyValueObservation?
+ private var _playerPlaybackLikelyToKeepUpObserver:NSKeyValueObservation?
+ private var _playerTimedMetadataObserver:NSKeyValueObservation?
+ private var _playerViewControllerReadyForDisplayObserver:NSKeyValueObservation?
+ private var _playerLayerReadyForDisplayObserver:NSKeyValueObservation?
+ private var _playerViewControllerOverlayFrameObserver:NSKeyValueObservation?
+
+ deinit {
+ NotificationCenter.default.removeObserver(_handlers)
+ }
+
+ func addPlayerObservers() {
+ guard let player = player else {
+ return
+ }
+
+ _playerRateChangeObserver = player.observe(\.rate, changeHandler: _handlers.handlePlaybackRateChange)
+ _playerExpernalPlaybackActiveObserver = player.observe(\.isExternalPlaybackActive, changeHandler: _handlers.handleExternalPlaybackActiveChange)
+ }
+
+ func removePlayerObservers() {
+ _playerRateChangeObserver?.invalidate()
+ _playerExpernalPlaybackActiveObserver?.invalidate()
+ }
+
+ func addPlayerItemObservers() {
+ guard let playerItem = playerItem else { return }
+
+ _playerItemStatusObserver = playerItem.observe(\.status, options: [.new, .old], changeHandler: _handlers.handlePlayerItemStatusChange)
+ _playerPlaybackBufferEmptyObserver = playerItem.observe(\.isPlaybackBufferEmpty, options: [.new, .old], changeHandler: _handlers.handlePlaybackBufferKeyEmpty)
+ _playerPlaybackLikelyToKeepUpObserver = playerItem.observe(\.isPlaybackLikelyToKeepUp, options: [.new, .old], changeHandler: _handlers.handlePlaybackLikelyToKeepUp)
+ _playerTimedMetadataObserver = playerItem.observe(\.timedMetadata, options: [.new], changeHandler: _handlers.handleTimeMetadataChange)
+ }
+
+ func removePlayerItemObservers() {
+ _playerItemStatusObserver?.invalidate()
+ _playerPlaybackBufferEmptyObserver?.invalidate()
+ _playerPlaybackLikelyToKeepUpObserver?.invalidate()
+ _playerTimedMetadataObserver?.invalidate()
+ }
+
+ func addPlayerViewControllerObservers() {
+ guard let playerViewController = playerViewController else { return }
+
+ _playerViewControllerReadyForDisplayObserver = playerViewController.observe(\.isReadyForDisplay, options: [.new], changeHandler: _handlers.handleReadyForDisplay)
+
+ _playerViewControllerOverlayFrameObserver = playerViewController.contentOverlayView?.observe(\.frame, options: [.new, .old], changeHandler: _handlers.handleViewControllerOverlayViewFrameChange)
+ }
+
+ func removePlayerViewControllerObservers() {
+ _playerViewControllerReadyForDisplayObserver?.invalidate()
+ _playerViewControllerOverlayFrameObserver?.invalidate()
+ }
+
+ func addPlayerLayerObserver() {
+ _playerLayerReadyForDisplayObserver = playerLayer?.observe(\.isReadyForDisplay, options: [.new], changeHandler: _handlers.handleReadyForDisplay)
+ }
+
+ func removePlayerLayerObserver() {
+ _playerLayerReadyForDisplayObserver?.invalidate()
+ }
+
+ func addPlayerTimeObserver() {
+ removePlayerTimeObserver()
+ let progressUpdateIntervalMS:Float64 = _progressUpdateInterval / 1000
+ // @see endScrubbing in AVPlayerDemoPlaybackViewController.m
+ // of https://developer.apple.com/library/ios/samplecode/AVPlayerDemo/Introduction/Intro.html
+ _timeObserver = player?.addPeriodicTimeObserver(
+ forInterval: CMTimeMakeWithSeconds(progressUpdateIntervalMS, preferredTimescale: Int32(NSEC_PER_SEC)),
+ queue:nil,
+ using:_handlers.handleTimeUpdate
+ )
+ }
+
+ /* Cancels the previously registered time observer. */
+ func removePlayerTimeObserver() {
+ if _timeObserver != nil {
+ player?.removeTimeObserver(_timeObserver)
+ _timeObserver = nil
+ }
+ }
+
+ func addTimeObserverIfNotSet() {
+ if (_timeObserver == nil) {
+ addPlayerTimeObserver()
+ }
+ }
+
+ func replaceTimeObserverIfSet(_ newUpdateInterval:Float64? = nil) {
+ if let newUpdateInterval = newUpdateInterval {
+ _progressUpdateInterval = newUpdateInterval
+ }
+ if (_timeObserver != nil) {
+ addPlayerTimeObserver()
+ }
+ }
+
+ func attachPlayerEventListeners() {
+
+ NotificationCenter.default.removeObserver(_handlers,
+ name:NSNotification.Name.AVPlayerItemDidPlayToEndTime,
+ object:player?.currentItem)
+ NotificationCenter.default.addObserver(_handlers,
+ selector:#selector(RCTPlayerObserverHandler.handlePlayerItemDidReachEnd(notification:)),
+ name:NSNotification.Name.AVPlayerItemDidPlayToEndTime,
+ object:player?.currentItem)
+
+ NotificationCenter.default.removeObserver(_handlers,
+ name:NSNotification.Name.AVPlayerItemPlaybackStalled,
+ object:nil)
+ NotificationCenter.default.addObserver(_handlers,
+ selector:#selector(RCTPlayerObserverHandler.handlePlaybackStalled(notification:)),
+ name:NSNotification.Name.AVPlayerItemPlaybackStalled,
+ object:nil)
+ NotificationCenter.default.removeObserver(_handlers,
+ name: NSNotification.Name.AVPlayerItemFailedToPlayToEndTime,
+ object:nil)
+ NotificationCenter.default.addObserver(_handlers,
+ selector:#selector(RCTPlayerObserverHandler.handleDidFailToFinishPlaying(notification:)),
+ name: NSNotification.Name.AVPlayerItemFailedToPlayToEndTime,
+ object:nil)
+ }
+
+ func clearPlayer() {
+ player = nil
+ playerItem = nil
+ NotificationCenter.default.removeObserver(_handlers)
+ }
+}
diff --git a/ios/Video/Features/RCTPlayerOperations.swift b/ios/Video/Features/RCTPlayerOperations.swift
new file mode 100644
index 00000000..cd0ddfec
--- /dev/null
+++ b/ios/Video/Features/RCTPlayerOperations.swift
@@ -0,0 +1,226 @@
+import AVFoundation
+import MediaAccessibility
+import Promises
+
+let RCTVideoUnset = -1
+
+/*!
+ * Collection of mutating functions
+ */
+enum RCTPlayerOperations {
+
+ static func setSideloadedText(player:AVPlayer?, textTracks:[TextTrack]?, criteria:SelectedTrackCriteria?) {
+ let type = criteria?.type
+ let textTracks:[TextTrack]! = textTracks ?? RCTVideoUtils.getTextTrackInfo(player)
+ let trackCount:Int! = player?.currentItem?.tracks.count ?? 0
+
+ // The first few tracks will be audio & video track
+ var firstTextIndex:Int = 0
+ for i in 0..<(trackCount) {
+ if player?.currentItem?.tracks[i].assetTrack?.hasMediaCharacteristic(.legible) ?? false {
+ firstTextIndex = i
+ break
+ }
+ }
+
+ var selectedTrackIndex:Int = RCTVideoUnset
+
+ if (type == "disabled") {
+ // Select the last text index which is the disabled text track
+ selectedTrackIndex = trackCount - firstTextIndex
+ } else if (type == "language") {
+ let selectedValue = criteria?.value as? String
+ for i in 0.. index {
+ selectedTrackIndex = index
+ }
+ }
+ }
+
+ // in the situation that a selected text track is not available (eg. specifies a textTrack not available)
+ if (type != "disabled") && selectedTrackIndex == RCTVideoUnset {
+ let captioningMediaCharacteristics = MACaptionAppearanceCopyPreferredCaptioningMediaCharacteristics(.user)
+ let captionSettings = captioningMediaCharacteristics as? [AnyHashable]
+ if ((captionSettings?.contains(AVMediaCharacteristic.transcribesSpokenDialogForAccessibility)) != nil) {
+ selectedTrackIndex = 0 // If we can't find a match, use the first available track
+ let systemLanguage = NSLocale.preferredLanguages.first
+ for i in 0.. index {
+ mediaOption = group.options[index]
+ }
+ }
+ } else { // default. invalid type or "system"
+ #if TARGET_OS_TV
+ // Do noting. Fix for tvOS native audio menu language selector
+ #else
+ player?.currentItem?.selectMediaOptionAutomatically(in: group)
+ return
+ #endif
+ }
+
+ #if TARGET_OS_TV
+ // Do noting. Fix for tvOS native audio menu language selector
+ #else
+ // If a match isn't found, option will be nil and text tracks will be disabled
+ player?.currentItem?.select(mediaOption, in:group)
+ #endif
+ }
+
+ static func setMediaSelectionTrackForCharacteristic(player:AVPlayer?, characteristic:AVMediaCharacteristic, criteria:SelectedTrackCriteria?) {
+ let type = criteria?.type
+ let group:AVMediaSelectionGroup! = player?.currentItem?.asset.mediaSelectionGroup(forMediaCharacteristic: characteristic)
+ var mediaOption:AVMediaSelectionOption!
+
+ if (type == "disabled") {
+ // Do nothing. We want to ensure option is nil
+ } else if (type == "language") || (type == "title") {
+ let value = criteria?.value as? String
+ for i in 0.. index {
+ mediaOption = group.options[index]
+ }
+ }
+ } else if let group = group { // default. invalid type or "system"
+ player?.currentItem?.selectMediaOptionAutomatically(in: group)
+ return
+ }
+
+ if let group = group {
+ // If a match isn't found, option will be nil and text tracks will be disabled
+ player?.currentItem?.select(mediaOption, in:group)
+ }
+
+ }
+
+ static func seek(player: AVPlayer, playerItem:AVPlayerItem, paused:Bool, seekTime:Float, seekTolerance:Float) -> Promise {
+ let timeScale:Int = 1000
+ let cmSeekTime:CMTime = CMTimeMakeWithSeconds(Float64(seekTime), preferredTimescale: Int32(timeScale))
+ let current:CMTime = playerItem.currentTime()
+ let tolerance:CMTime = CMTimeMake(value: Int64(seekTolerance), timescale: Int32(timeScale))
+
+ return Promise(on: .global()) { fulfill, reject in
+ guard CMTimeCompare(current, cmSeekTime) != 0 else {
+ reject(NSError(domain: "", code: 0, userInfo: nil))
+ return
+ }
+ if !paused { player.pause() }
+
+ player.seek(to: cmSeekTime, toleranceBefore:tolerance, toleranceAfter:tolerance, completionHandler:{ (finished:Bool) in
+ fulfill(finished)
+ })
+ }
+ }
+
+ static func configureAudio(ignoreSilentSwitch:String, mixWithOthers:String) {
+ let session:AVAudioSession! = AVAudioSession.sharedInstance()
+ var category:AVAudioSession.Category? = nil
+ var options:AVAudioSession.CategoryOptions? = nil
+
+ if (ignoreSilentSwitch == "ignore") {
+ category = AVAudioSession.Category.playback
+ } else if (ignoreSilentSwitch == "obey") {
+ category = AVAudioSession.Category.ambient
+ }
+
+ if (mixWithOthers == "mix") {
+ options = .mixWithOthers
+ } else if (mixWithOthers == "duck") {
+ options = .duckOthers
+ }
+
+ if let category = category, let options = options {
+ do {
+ try session.setCategory(category, options: options)
+ } catch {
+ }
+ } else if let category = category, options == nil {
+ do {
+ try session.setCategory(category)
+ } catch {
+ }
+ } else if category == nil, let options = options {
+ do {
+ try session.setCategory(session.category, options: options)
+ } catch {
+ }
+ }
+ }
+}
diff --git a/ios/Video/Features/RCTResourceLoaderDelegate.swift b/ios/Video/Features/RCTResourceLoaderDelegate.swift
new file mode 100644
index 00000000..e1f11528
--- /dev/null
+++ b/ios/Video/Features/RCTResourceLoaderDelegate.swift
@@ -0,0 +1,167 @@
+import AVFoundation
+import Promises
+
+class RCTResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URLSessionDelegate {
+
+ private var _loadingRequest:AVAssetResourceLoadingRequest?
+ private var _requestingCertificate:Bool = false
+ private var _requestingCertificateErrored:Bool = false
+ private var _drm: DRMParams?
+ private var _localSourceEncryptionKeyScheme: String?
+ private var _reactTag: NSNumber?
+ private var _onVideoError: RCTDirectEventBlock?
+ private var _onGetLicense: RCTDirectEventBlock?
+
+
+ init(
+ asset: AVURLAsset,
+ drm: DRMParams?,
+ localSourceEncryptionKeyScheme: String?,
+ onVideoError: RCTDirectEventBlock?,
+ onGetLicense: RCTDirectEventBlock?,
+ reactTag: NSNumber
+ ) {
+ super.init()
+ let queue = DispatchQueue(label: "assetQueue")
+ asset.resourceLoader.setDelegate(self, queue: queue)
+ _reactTag = reactTag
+ _onVideoError = onVideoError
+ _onGetLicense = onGetLicense
+ _drm = drm
+ _localSourceEncryptionKeyScheme = localSourceEncryptionKeyScheme
+ }
+
+ deinit {
+ _loadingRequest?.finishLoading()
+ }
+
+ func resourceLoader(_ resourceLoader:AVAssetResourceLoader, shouldWaitForRenewalOfRequestedResource renewalRequest:AVAssetResourceRenewalRequest) -> Bool {
+ return loadingRequestHandling(renewalRequest)
+ }
+
+ func resourceLoader(_ resourceLoader:AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest:AVAssetResourceLoadingRequest) -> Bool {
+ return loadingRequestHandling(loadingRequest)
+ }
+
+ func resourceLoader(_ resourceLoader:AVAssetResourceLoader, didCancel loadingRequest:AVAssetResourceLoadingRequest) {
+ NSLog("didCancelLoadingRequest")
+ }
+
+ func setLicenseResult(_ license:String!) {
+ guard let respondData = RCTVideoUtils.base64DataFromBase64String(base64String: license),
+ let _loadingRequest = _loadingRequest else {
+ setLicenseResultError("No data from JS license response")
+ return
+ }
+ let dataRequest:AVAssetResourceLoadingDataRequest! = _loadingRequest.dataRequest
+ dataRequest.respond(with: respondData)
+ _loadingRequest.finishLoading()
+ }
+
+ func setLicenseResultError(_ error:String!) {
+ if _loadingRequest != nil {
+ self.finishLoadingWithError(error: RCTVideoErrorHandler.fromJSPart(error))
+ }
+ }
+
+ func finishLoadingWithError(error:Error!) -> Bool {
+ if let _loadingRequest = _loadingRequest, let error = error {
+ _loadingRequest.finishLoading(with: error as! NSError)
+
+ _onVideoError?([
+ "error": [
+ "code": NSNumber(value: (error as NSError).code),
+ "localizedDescription": error.localizedDescription == nil ? "" : error.localizedDescription,
+ "localizedFailureReason": ((error as NSError).localizedFailureReason == nil ? "" : (error as NSError).localizedFailureReason) ?? "",
+ "localizedRecoverySuggestion": ((error as NSError).localizedRecoverySuggestion == nil ? "" : (error as NSError).localizedRecoverySuggestion) ?? "",
+ "domain": (error as NSError).domain
+ ],
+ "target": _reactTag
+ ])
+
+ }
+ return false
+ }
+
+ func loadingRequestHandling(_ loadingRequest:AVAssetResourceLoadingRequest!) -> Bool {
+ if handleEmbeddedKey(loadingRequest) {
+ return true
+ }
+
+ if _drm != nil {
+ return handleDrm(loadingRequest)
+ }
+
+ return false
+ }
+
+ func handleEmbeddedKey(_ loadingRequest:AVAssetResourceLoadingRequest!) -> Bool {
+ guard let url = loadingRequest.request.url,
+ let _localSourceEncryptionKeyScheme = _localSourceEncryptionKeyScheme,
+ let persistentKeyData = RCTVideoUtils.extractDataFromCustomSchemeUrl(from: url, scheme: _localSourceEncryptionKeyScheme)
+ else {
+ return false
+ }
+
+ loadingRequest.contentInformationRequest?.contentType = AVStreamingKeyDeliveryPersistentContentKeyType
+ loadingRequest.contentInformationRequest?.isByteRangeAccessSupported = true
+ loadingRequest.contentInformationRequest?.contentLength = Int64(persistentKeyData.count)
+ loadingRequest.dataRequest?.respond(with: persistentKeyData)
+ loadingRequest.finishLoading()
+
+ return true
+ }
+
+ func handleDrm(_ loadingRequest:AVAssetResourceLoadingRequest!) -> Bool {
+ if _requestingCertificate {
+ return true
+ } else if _requestingCertificateErrored {
+ return false
+ }
+ _loadingRequest = loadingRequest
+
+ guard let _drm = _drm, let drmType = _drm.type, drmType == "fairplay" else {
+ return finishLoadingWithError(error: RCTVideoErrorHandler.noDRMData)
+ }
+
+ var promise: Promise
+ if _onGetLicense != nil {
+ let contentId = _drm.contentId ?? loadingRequest.request.url?.host
+ promise = RCTVideoDRM.handleWithOnGetLicense(
+ loadingRequest:loadingRequest,
+ contentId:contentId,
+ certificateUrl:_drm.certificateUrl,
+ base64Certificate:_drm.base64Certificate
+ ) .then{ spcData -> Void in
+ self._requestingCertificate = true
+ self._onGetLicense?(["licenseUrl": self._drm?.licenseServer ?? "",
+ "contentId": contentId,
+ "spcBase64": spcData.base64EncodedString(options: []),
+ "target": self._reactTag])
+ }
+ } else {
+ promise = RCTVideoDRM.handleInternalGetLicense(
+ loadingRequest:loadingRequest,
+ contentId:_drm.contentId,
+ licenseServer:_drm.licenseServer,
+ certificateUrl:_drm.certificateUrl,
+ base64Certificate:_drm.base64Certificate,
+ headers:_drm.headers
+ ) .then{ data -> Void in
+ guard let dataRequest = loadingRequest.dataRequest else {
+ throw RCTVideoErrorHandler.noCertificateData
+ }
+ dataRequest.respond(with:data)
+ loadingRequest.finishLoading()
+ }
+ }
+
+
+ promise.catch{ error in
+ self.finishLoadingWithError(error:error)
+ self._requestingCertificateErrored = true
+ }
+
+ return true
+ }
+}
diff --git a/ios/Video/Features/RCTVideoDRM.swift b/ios/Video/Features/RCTVideoDRM.swift
new file mode 100644
index 00000000..d059bbc4
--- /dev/null
+++ b/ios/Video/Features/RCTVideoDRM.swift
@@ -0,0 +1,168 @@
+import AVFoundation
+import Promises
+
+struct RCTVideoDRM {
+ @available(*, unavailable) private init() {}
+
+ static func fetchLicense(
+ licenseServer: String,
+ spcData: Data?,
+ contentId: String,
+ headers: [String:Any]?
+ ) -> Promise {
+ let request = createLicenseRequest(licenseServer:licenseServer, spcData:spcData, contentId:contentId, headers:headers)
+
+ return Promise(on: .global()) { fulfill, reject in
+ let postDataTask = URLSession.shared.dataTask(with: request as URLRequest, completionHandler:{ (data:Data!,response:URLResponse!,error:Error!) in
+
+ let httpResponse:HTTPURLResponse! = (response as! HTTPURLResponse)
+
+ guard error == nil else {
+ print("Error getting license from \(licenseServer), HTTP status code \(httpResponse.statusCode)")
+ reject(error)
+ return
+ }
+ guard httpResponse.statusCode == 200 else {
+ print("Error getting license from \(licenseServer), HTTP status code \(httpResponse.statusCode)")
+ reject(RCTVideoErrorHandler.licenseRequestNotOk(httpResponse.statusCode))
+ return
+ }
+
+ guard data != nil, let decodedData = Data(base64Encoded: data, options: []) else {
+ reject(RCTVideoErrorHandler.noDataFromLicenseRequest)
+ return
+ }
+
+ fulfill(decodedData)
+ })
+ postDataTask.resume()
+ }
+ }
+
+ static func createLicenseRequest(
+ licenseServer: String,
+ spcData: Data?,
+ contentId: String,
+ headers: [String:Any]?
+ ) -> URLRequest {
+ var request = URLRequest(url: URL(string: licenseServer)!)
+ request.httpMethod = "POST"
+
+ if let headers = headers {
+ for item in headers {
+ guard let key = item.key as? String, let value = item.value as? String else {
+ continue
+ }
+ request.setValue(value, forHTTPHeaderField: key)
+ }
+ }
+
+ let spcEncoded = spcData?.base64EncodedString(options: [])
+ let spcUrlEncoded = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, spcEncoded as? CFString? as! CFString, nil, "?=&+" as CFString, CFStringBuiltInEncodings.UTF8.rawValue) as? String
+ let post = String(format:"spc=%@&%@", spcUrlEncoded as! CVarArg, contentId)
+ let postData = post.data(using: String.Encoding.utf8, allowLossyConversion:true)
+ request.httpBody = postData
+
+ return request
+ }
+
+ static func fetchSpcData(
+ loadingRequest: AVAssetResourceLoadingRequest,
+ certificateData: Data,
+ contentIdData: Data
+ ) -> Promise {
+ return Promise(on: .global()) { fulfill, reject in
+ var spcError:NSError!
+ var spcData: Data?
+ do {
+ spcData = try loadingRequest.streamingContentKeyRequestData(forApp: certificateData, contentIdentifier: contentIdData as Data, options: nil)
+ } catch _ {
+ print("SPC error")
+ }
+
+ if spcError != nil {
+ reject(spcError)
+ }
+
+ guard let spcData = spcData else {
+ reject(RCTVideoErrorHandler.noSPC)
+ return
+ }
+
+ fulfill(spcData)
+ }
+ }
+
+ static func createCertificateData(certificateStringUrl:String?, base64Certificate:Bool?) -> Promise {
+ return Promise(on: .global()) { fulfill, reject in
+
+ guard let certificateStringUrl = certificateStringUrl,
+ let certificateURL = URL(string: certificateStringUrl.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed) ?? "") else {
+ reject(RCTVideoErrorHandler.noCertificateURL)
+ return
+ }
+
+ var certificateData:Data?
+ do {
+ certificateData = try Data(contentsOf: certificateURL)
+ if (base64Certificate != nil) {
+ certificateData = Data(base64Encoded: certificateData! as Data, options: .ignoreUnknownCharacters)
+ }
+ } catch {}
+
+ guard let certificateData = certificateData else {
+ reject(RCTVideoErrorHandler.noCertificateData)
+ return
+ }
+
+ fulfill(certificateData)
+ }
+ }
+
+ static func handleWithOnGetLicense(loadingRequest: AVAssetResourceLoadingRequest, contentId:String?, certificateUrl:String?, base64Certificate:Bool?) -> Promise {
+ let contentIdData = contentId?.data(using: .utf8)
+
+ return RCTVideoDRM.createCertificateData(certificateStringUrl:certificateUrl, base64Certificate:base64Certificate)
+ .then{ certificateData -> Promise in
+ guard let contentIdData = contentIdData else {
+ throw RCTVideoError.invalidContentId as! Error
+ }
+
+ return RCTVideoDRM.fetchSpcData(
+ loadingRequest:loadingRequest,
+ certificateData:certificateData,
+ contentIdData:contentIdData
+ )
+ }
+ }
+
+ static func handleInternalGetLicense(loadingRequest: AVAssetResourceLoadingRequest, contentId:String?, licenseServer:String?, certificateUrl:String?, base64Certificate:Bool?, headers: [String:Any]?) -> Promise {
+ let url = loadingRequest.request.url
+
+ guard let contentId = contentId ?? url?.absoluteString.replacingOccurrences(of: "skd://", with:"") else {
+ return Promise(RCTVideoError.invalidContentId as! Error)
+ }
+
+ let contentIdData = NSData(bytes: contentId.cString(using: String.Encoding.utf8), length:contentId.lengthOfBytes(using: String.Encoding.utf8)) as Data
+
+ return RCTVideoDRM.createCertificateData(certificateStringUrl:certificateUrl, base64Certificate:base64Certificate)
+ .then{ certificateData in
+ return RCTVideoDRM.fetchSpcData(
+ loadingRequest:loadingRequest,
+ certificateData:certificateData,
+ contentIdData:contentIdData
+ )
+ }
+ .then{ spcData -> Promise in
+ guard let licenseServer = licenseServer else {
+ throw RCTVideoError.noLicenseServerURL as! Error
+ }
+ return RCTVideoDRM.fetchLicense(
+ licenseServer: licenseServer,
+ spcData: spcData,
+ contentId: contentId,
+ headers: headers
+ )
+ }
+ }
+}
diff --git a/ios/Video/Features/RCTVideoErrorHandling.swift b/ios/Video/Features/RCTVideoErrorHandling.swift
new file mode 100644
index 00000000..e795aa28
--- /dev/null
+++ b/ios/Video/Features/RCTVideoErrorHandling.swift
@@ -0,0 +1,103 @@
+enum RCTVideoError : Int {
+ case fromJSPart
+ case noLicenseServerURL
+ case licenseRequestNotOk
+ case noDataFromLicenseRequest
+ case noSPC
+ case noDataRequest
+ case noCertificateData
+ case noCertificateURL
+ case noFairplayDRM
+ case noDRMData
+ case invalidContentId
+}
+
+enum RCTVideoErrorHandler {
+
+ static let noDRMData = NSError(
+ domain: "RCTVideo",
+ code: RCTVideoError.noDRMData.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: "Error obtaining DRM license.",
+ NSLocalizedFailureReasonErrorKey: "No drm object found.",
+ NSLocalizedRecoverySuggestionErrorKey: "Have you specified the 'drm' prop?"
+ ])
+
+ static let noCertificateURL = NSError(
+ domain: "RCTVideo",
+ code: RCTVideoError.noCertificateURL.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: "Error obtaining DRM License.",
+ NSLocalizedFailureReasonErrorKey: "No certificate URL has been found.",
+ NSLocalizedRecoverySuggestionErrorKey: "Did you specified the prop certificateUrl?"
+ ])
+
+ static let noCertificateData = NSError(
+ domain: "RCTVideo",
+ code: RCTVideoError.noCertificateData.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: "Error obtaining DRM license.",
+ NSLocalizedFailureReasonErrorKey: "No certificate data obtained from the specificied url.",
+ NSLocalizedRecoverySuggestionErrorKey: "Have you specified a valid 'certificateUrl'?"
+ ])
+
+ static let noSPC = NSError(
+ domain: "RCTVideo",
+ code: RCTVideoError.noSPC.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: "Error obtaining license.",
+ NSLocalizedFailureReasonErrorKey: "No spc received.",
+ NSLocalizedRecoverySuggestionErrorKey: "Check your DRM config."
+ ])
+
+ static let noLicenseServerURL = NSError(
+ domain: "RCTVideo",
+ code: RCTVideoError.noLicenseServerURL.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: "Error obtaining DRM License.",
+ NSLocalizedFailureReasonErrorKey: "No license server URL has been found.",
+ NSLocalizedRecoverySuggestionErrorKey: "Did you specified the prop licenseServer?"
+ ])
+
+ static let noDataFromLicenseRequest = NSError(
+ domain: "RCTVideo",
+ code: RCTVideoError.noDataFromLicenseRequest.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: "Error obtaining DRM license.",
+ NSLocalizedFailureReasonErrorKey: "No data received from the license server.",
+ NSLocalizedRecoverySuggestionErrorKey: "Is the licenseServer ok?"
+ ])
+
+ static func licenseRequestNotOk(_ statusCode: Int) -> NSError {
+ return NSError(
+ domain: "RCTVideo",
+ code: RCTVideoError.licenseRequestNotOk.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: "Error obtaining license.",
+ NSLocalizedFailureReasonErrorKey: String(
+ format:"License server responded with status code %li",
+ (statusCode)
+ ),
+ NSLocalizedRecoverySuggestionErrorKey: "Did you send the correct data to the license Server? Is the server ok?"
+ ])
+ }
+
+ static func fromJSPart(_ error: String) -> NSError {
+ return NSError(domain: "RCTVideo",
+ code: RCTVideoError.fromJSPart.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: error,
+ NSLocalizedFailureReasonErrorKey: error,
+ NSLocalizedRecoverySuggestionErrorKey: error
+ ])
+ }
+
+ static let invalidContentId = NSError(
+ domain: "RCTVideo",
+ code: RCTVideoError.invalidContentId.rawValue,
+ userInfo: [
+ NSLocalizedDescriptionKey: "Error obtaining DRM license.",
+ NSLocalizedFailureReasonErrorKey: "No valide content Id received",
+ NSLocalizedRecoverySuggestionErrorKey: "Is the contentId and url ok?"
+ ])
+}
diff --git a/ios/Video/Features/RCTVideoSave.swift b/ios/Video/Features/RCTVideoSave.swift
new file mode 100644
index 00000000..ff8155ec
--- /dev/null
+++ b/ios/Video/Features/RCTVideoSave.swift
@@ -0,0 +1,75 @@
+import AVFoundation
+
+enum RCTVideoSave {
+
+ static func save(
+ options:NSDictionary!,
+ resolve: @escaping RCTPromiseResolveBlock,
+ reject:@escaping RCTPromiseRejectBlock,
+
+ playerItem: AVPlayerItem?
+ ) {
+ let asset:AVAsset! = playerItem?.asset
+
+ guard asset != nil else {
+ reject("ERROR_ASSET_NIL", "Asset is nil", nil)
+ return
+ }
+
+ guard let exportSession = AVAssetExportSession(asset: asset, presetName:AVAssetExportPresetHighestQuality) else {
+ reject("ERROR_COULD_NOT_CREATE_EXPORT_SESSION", "Could not create export session", nil)
+ return
+ }
+ var path:String! = nil
+ path = RCTVideoSave.generatePathInDirectory(
+ directory: URL(fileURLWithPath: RCTVideoSave.cacheDirectoryPath() ?? "").appendingPathComponent("Videos").path,
+ withExtension: ".mp4")
+ let url:NSURL! = NSURL.fileURL(withPath: path) as NSURL
+ exportSession.outputFileType = AVFileType.mp4
+ exportSession.outputURL = url as URL?
+ exportSession.videoComposition = playerItem?.videoComposition
+ exportSession.shouldOptimizeForNetworkUse = true
+ exportSession.exportAsynchronously(completionHandler: {
+
+ switch (exportSession.status) {
+ case .failed:
+ reject("ERROR_COULD_NOT_EXPORT_VIDEO", "Could not export video", exportSession.error)
+ break
+ case .cancelled:
+ reject("ERROR_EXPORT_SESSION_CANCELLED", "Export session was cancelled", exportSession.error)
+ break
+ default:
+ resolve(["uri": url.absoluteString])
+ break
+ }
+
+ })
+ }
+
+ static func generatePathInDirectory(directory: String?, withExtension `extension`: String?) -> String? {
+ let fileName = UUID().uuidString + (`extension` ?? "")
+ RCTVideoSave.ensureDirExists(withPath: directory)
+ return URL(fileURLWithPath: directory ?? "").appendingPathComponent(fileName).path
+ }
+
+ static func cacheDirectoryPath() -> String? {
+ let array = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).map(\.path)
+ return array[0]
+ }
+
+ static func ensureDirExists(withPath path: String?) -> Bool {
+ var isDir: ObjCBool = false
+ var error: Error?
+ let exists = FileManager.default.fileExists(atPath: path ?? "", isDirectory: &isDir)
+ if !(exists && isDir.boolValue) {
+ do {
+ try FileManager.default.createDirectory(atPath: path ?? "", withIntermediateDirectories: true, attributes: nil)
+ } catch {
+ }
+ if error != nil {
+ return false
+ }
+ }
+ return true
+ }
+}
diff --git a/ios/Video/Features/RCTVideoUtils.swift b/ios/Video/Features/RCTVideoUtils.swift
new file mode 100644
index 00000000..d8ec8677
--- /dev/null
+++ b/ios/Video/Features/RCTVideoUtils.swift
@@ -0,0 +1,288 @@
+import AVFoundation
+import Promises
+
+/*!
+ * Collection of pure functions
+ */
+enum RCTVideoUtils {
+
+ /*!
+ * Calculates and returns the playable duration of the current player item using its loaded time ranges.
+ *
+ * \returns The playable duration of the current player item in seconds.
+ */
+ static func calculatePlayableDuration(_ player:AVPlayer?) -> NSNumber {
+ guard let player = player,
+ let video:AVPlayerItem = player.currentItem,
+ video.status == AVPlayerItem.Status.readyToPlay else {
+ return 0
+ }
+
+ var effectiveTimeRange:CMTimeRange?
+ for (_, value) in video.loadedTimeRanges.enumerated() {
+ let timeRange:CMTimeRange = value.timeRangeValue
+ if CMTimeRangeContainsTime(timeRange, time: video.currentTime()) {
+ effectiveTimeRange = timeRange
+ break
+ }
+ }
+
+ if let effectiveTimeRange = effectiveTimeRange {
+ let playableDuration:Float64 = CMTimeGetSeconds(CMTimeRangeGetEnd(effectiveTimeRange))
+ if playableDuration > 0 {
+ return playableDuration as NSNumber
+ }
+ }
+
+ return 0
+ }
+
+ static func urlFilePath(filepath:NSString!, searchPath:FileManager.SearchPathDirectory) -> NSURL! {
+ if filepath.contains("file://") {
+ return NSURL(string: filepath as String)
+ }
+
+ // if no file found, check if the file exists in the Document directory
+ let paths:[String]! = NSSearchPathForDirectoriesInDomains(searchPath, .userDomainMask, true)
+ var relativeFilePath:String! = filepath.lastPathComponent
+ // the file may be multiple levels below the documents directory
+ let directoryString:String! = searchPath == .cachesDirectory ? "Library/Caches/" : "Documents";
+ let fileComponents:[String]! = filepath.components(separatedBy: directoryString)
+ if fileComponents.count > 1 {
+ relativeFilePath = fileComponents[1]
+ }
+
+ let path:String! = (paths.first! as NSString).appendingPathComponent(relativeFilePath)
+ if FileManager.default.fileExists(atPath: path) {
+ return NSURL.fileURL(withPath: path) as NSURL
+ }
+ return nil
+ }
+
+ static func playerItemSeekableTimeRange(_ player:AVPlayer?) -> CMTimeRange {
+ if let playerItem = player?.currentItem,
+ playerItem.status == .readyToPlay,
+ let firstItem = playerItem.seekableTimeRanges.first {
+ return firstItem.timeRangeValue
+ }
+
+ return (CMTimeRange.zero)
+ }
+
+ static func playerItemDuration(_ player:AVPlayer?) -> CMTime {
+ if let playerItem = player?.currentItem,
+ playerItem.status == .readyToPlay {
+ return(playerItem.duration)
+ }
+
+ return(CMTime.invalid)
+ }
+
+ static func calculateSeekableDuration(_ player:AVPlayer?) -> NSNumber {
+ let timeRange:CMTimeRange = RCTVideoUtils.playerItemSeekableTimeRange(player)
+ if CMTIME_IS_NUMERIC(timeRange.duration)
+ {
+ return NSNumber(value: CMTimeGetSeconds(timeRange.duration))
+ }
+ return 0
+ }
+
+ static func getAudioTrackInfo(_ player:AVPlayer?) -> [AnyObject]! {
+ guard let player = player else {
+ return []
+ }
+
+ let audioTracks:NSMutableArray! = NSMutableArray()
+ let group = player.currentItem?.asset.mediaSelectionGroup(forMediaCharacteristic: .audible)
+ for i in 0..<(group?.options.count ?? 0) {
+ let currentOption = group?.options[i]
+ var title = ""
+ let values = currentOption?.commonMetadata.map(\.value)
+ if (values?.count ?? 0) > 0, let value = values?[0] {
+ title = value as! String
+ }
+ let language:String! = currentOption?.extendedLanguageTag ?? ""
+ let audioTrack = [
+ "index": NSNumber(value: i),
+ "title": title,
+ "language": language
+ ] as [String : Any]
+ audioTracks.add(audioTrack)
+ }
+ return audioTracks as [AnyObject]?
+ }
+
+ static func getTextTrackInfo(_ player:AVPlayer?) -> [TextTrack]! {
+ guard let player = player else {
+ return []
+ }
+
+ // if streaming video, we extract the text tracks
+ var textTracks:[TextTrack] = []
+ let group = player.currentItem?.asset.mediaSelectionGroup(forMediaCharacteristic: .legible)
+ for i in 0..<(group?.options.count ?? 0) {
+ let currentOption = group?.options[i]
+ var title = ""
+ let values = currentOption?.commonMetadata.map(\.value)
+ if (values?.count ?? 0) > 0, let value = values?[0] {
+ title = value as! String
+ }
+ let language:String! = currentOption?.extendedLanguageTag ?? ""
+ let textTrack = TextTrack([
+ "index": NSNumber(value: i),
+ "title": title,
+ "language": language
+ ])
+ textTracks.append(textTrack)
+ }
+ return textTracks
+ }
+
+ // UNUSED
+ static func getCurrentTime(playerItem:AVPlayerItem?) -> Float {
+ return Float(CMTimeGetSeconds(playerItem?.currentTime() ?? .zero))
+ }
+
+ static func base64DataFromBase64String(base64String:String?) -> Data? {
+ if let base64String = base64String {
+ return Data(base64Encoded:base64String)
+ }
+ return nil
+ }
+
+ static func replaceURLScheme(url: URL, scheme: String?) -> URL? {
+ var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false)
+ urlComponents?.scheme = scheme
+
+ return urlComponents?.url
+ }
+
+ static func extractDataFromCustomSchemeUrl(from url: URL, scheme: String) -> Data? {
+ guard url.scheme == scheme,
+ let adoptURL = RCTVideoUtils.replaceURLScheme(url:url, scheme: nil) else { return nil }
+
+ return Data(base64Encoded: adoptURL.absoluteString)
+ }
+
+ static func generateMixComposition(_ asset:AVAsset) -> AVMutableComposition {
+ let mixComposition:AVMutableComposition = AVMutableComposition()
+
+ let videoAsset:AVAssetTrack! = asset.tracks(withMediaType: AVMediaType.video).first
+ let videoCompTrack:AVMutableCompositionTrack! = mixComposition.addMutableTrack(withMediaType: AVMediaType.video, preferredTrackID:kCMPersistentTrackID_Invalid)
+ do {
+ try videoCompTrack.insertTimeRange(
+ CMTimeRangeMake(start: .zero, duration: videoAsset.timeRange.duration),
+ of: videoAsset,
+ at: .zero)
+ } catch {
+ }
+
+ let audioAsset:AVAssetTrack! = asset.tracks(withMediaType: AVMediaType.audio).first
+ let audioCompTrack:AVMutableCompositionTrack! = mixComposition.addMutableTrack(withMediaType: AVMediaType.audio, preferredTrackID:kCMPersistentTrackID_Invalid)
+ do {
+ try audioCompTrack.insertTimeRange(
+ CMTimeRangeMake(start: .zero, duration: videoAsset.timeRange.duration),
+ of: audioAsset,
+ at: .zero)
+ } catch {
+ }
+
+ return mixComposition
+ }
+
+ static func getValidTextTracks(asset:AVAsset, assetOptions:NSDictionary?, mixComposition:AVMutableComposition, textTracks:[TextTrack]?) -> [TextTrack] {
+ let videoAsset:AVAssetTrack! = asset.tracks(withMediaType: AVMediaType.video).first
+ var validTextTracks:[TextTrack] = []
+
+ if let textTracks = textTracks, textTracks.count > 0 {
+ for i in 0.. TextTrack? {
+ let fileManager = FileManager.default
+ let cachesDirectoryUrl = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0]
+ let filePath = cachesDirectoryUrl.appendingPathComponent("empty.vtt").path
+
+ if !fileManager.fileExists(atPath: filePath) {
+ let stringToWrite = "WEBVTT\n\n1\n99:59:59.000 --> 99:59:59.001\n."
+
+ do {
+ try stringToWrite.write(to: URL(fileURLWithPath: filePath), atomically: true, encoding: String.Encoding.utf8)
+ } catch {
+ return nil
+ }
+ }
+
+ return TextTrack([
+ "language": "disabled",
+ "title": "EmptyVttFile",
+ "type": "text/vtt",
+ "uri": filePath,
+ ])
+ }
+
+ static func delay(seconds: Int = 0) -> Promise {
+ return Promise(on: .global()) { fulfill, reject in
+ DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(seconds)) / Double(NSEC_PER_SEC), execute: {
+ fulfill(())
+ })
+ }
+ }
+
+ static func prepareAsset(source:VideoSource) -> (asset:AVURLAsset?, assetOptions:NSMutableDictionary?)? {
+ guard source.uri != nil && source.uri != "" else { return nil }
+ var asset:AVURLAsset!
+ let bundlePath = Bundle.main.path(forResource: source.uri, ofType: source.type) ?? ""
+ let url = source.isNetwork || source.isAsset
+ ? URL(string: source.uri ?? "")
+ : URL(fileURLWithPath: bundlePath)
+ let assetOptions:NSMutableDictionary! = NSMutableDictionary()
+
+ if source.isNetwork {
+ if let headers = source.requestHeaders, headers.count > 0 {
+ assetOptions.setObject(headers, forKey:"AVURLAssetHTTPHeaderFieldsKey" as NSCopying)
+ }
+ let cookies:[AnyObject]! = HTTPCookieStorage.shared.cookies
+ assetOptions.setObject(cookies, forKey:AVURLAssetHTTPCookiesKey as NSCopying)
+ asset = AVURLAsset(url: url!, options:assetOptions as! [String : Any])
+ } else {
+ asset = AVURLAsset(url: url!)
+ }
+ return (asset, assetOptions)
+ }
+}
diff --git a/ios/Video/RCTSwiftLog/RCTSwiftLog.h b/ios/Video/RCTSwiftLog/RCTSwiftLog.h
new file mode 100644
index 00000000..8f9deab7
--- /dev/null
+++ b/ios/Video/RCTSwiftLog/RCTSwiftLog.h
@@ -0,0 +1,11 @@
+#import
+
+@interface RCTSwiftLog : NSObject
+
++ (void)error:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
++ (void)warn:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
++ (void)info:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
++ (void)log:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
++ (void)trace:(NSString * _Nonnull)message file:(NSString * _Nonnull)file line:(NSUInteger)line;
+
+@end
diff --git a/ios/Video/RCTSwiftLog/RCTSwiftLog.m b/ios/Video/RCTSwiftLog/RCTSwiftLog.m
new file mode 100644
index 00000000..4e153846
--- /dev/null
+++ b/ios/Video/RCTSwiftLog/RCTSwiftLog.m
@@ -0,0 +1,32 @@
+#import
+
+#import "RCTSwiftLog.h"
+
+@implementation RCTSwiftLog
+
++ (void)info:(NSString *)message file:(NSString *)file line:(NSUInteger)line
+{
+ _RCTLogNativeInternal(RCTLogLevelInfo, file.UTF8String, (int)line, @"%@", message);
+}
+
++ (void)warn:(NSString *)message file:(NSString *)file line:(NSUInteger)line
+{
+ _RCTLogNativeInternal(RCTLogLevelWarning, file.UTF8String, (int)line, @"%@", message);
+}
+
++ (void)error:(NSString *)message file:(NSString *)file line:(NSUInteger)line
+{
+ _RCTLogNativeInternal(RCTLogLevelError, file.UTF8String, (int)line, @"%@", message);
+}
+
++ (void)log:(NSString *)message file:(NSString *)file line:(NSUInteger)line
+{
+ _RCTLogNativeInternal(RCTLogLevelInfo, file.UTF8String, (int)line, @"%@", message);
+}
+
++ (void)trace:(NSString *)message file:(NSString *)file line:(NSUInteger)line
+{
+ _RCTLogNativeInternal(RCTLogLevelTrace, file.UTF8String, (int)line, @"%@", message);
+}
+
+@end
diff --git a/ios/Video/RCTSwiftLog/RCTSwiftLog.swift b/ios/Video/RCTSwiftLog/RCTSwiftLog.swift
new file mode 100644
index 00000000..ec39d9b1
--- /dev/null
+++ b/ios/Video/RCTSwiftLog/RCTSwiftLog.swift
@@ -0,0 +1,53 @@
+//
+// RCTLog.swift
+// WebViewExample
+//
+// Created by Jimmy Dee on 4/5/17.
+// Copyright © 2017 Branch Metrics. All rights reserved.
+//
+
+/*
+ * Under at least some conditions, output from NSLog has been unavailable in the RNBranch module.
+ * Hence that module uses the RCTLog macros from . The React logger is nicer than
+ * NSLog anyway, since it provides log levels with runtime filtering, file and line context and
+ * an identifier for the thread that logged the message.
+ *
+ * This wrapper lets you use functions with the same name in Swift. For example:
+ *
+ * RCTLogInfo("application launched")
+ *
+ * generates
+ *
+ * 2017-04-06 12:31:09.611 [info][tid:main][AppDelegate.swift:18] application launched
+ *
+ * This is currently part of this sample app. There may be some issues integrating it into an
+ * Objective-C library, either react-native-branch or react-native itself, but it may find its
+ * way into one or the other eventually. Feel free to reuse it as desired.
+ */
+
+func RCTLogError(_ message: String, _ file: String=#file, _ line: UInt=#line) {
+ RCTSwiftLog.error(message, file: file, line: line)
+}
+
+func RCTLogWarn(_ message: String, _ file: String=#file, _ line: UInt=#line) {
+ RCTSwiftLog.warn(message, file: file, line: line)
+}
+
+func RCTLogInfo(_ message: String, _ file: String=#file, _ line: UInt=#line) {
+ RCTSwiftLog.info(message, file: file, line: line)
+}
+
+func RCTLog(_ message: String, _ file: String=#file, _ line: UInt=#line) {
+ RCTSwiftLog.log(message, file: file, line: line)
+}
+
+func RCTLogTrace(_ message: String, _ file: String=#file, _ line: UInt=#line) {
+ RCTSwiftLog.trace(message, file: file, line: line)
+}
+
+func DebugLog(_ message: String) {
+#if DEBUG
+ print(message)
+#endif
+}
+
diff --git a/ios/Video/RCTVideo-Bridging-Header.h b/ios/Video/RCTVideo-Bridging-Header.h
new file mode 100644
index 00000000..ad6089be
--- /dev/null
+++ b/ios/Video/RCTVideo-Bridging-Header.h
@@ -0,0 +1,7 @@
+#import
+#import "RCTSwiftLog.h"
+
+#if __has_include()
+#import "RCTVideoCache.h"
+#endif
+
diff --git a/ios/Video/RCTVideo.h b/ios/Video/RCTVideo.h
deleted file mode 100644
index 6fee2996..00000000
--- a/ios/Video/RCTVideo.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#import
-#import "AVKit/AVKit.h"
-#import "UIView+FindUIViewController.h"
-#import "RCTVideoPlayerViewController.h"
-#import "RCTVideoPlayerViewControllerDelegate.h"
-#import
-#import
-
-#if __has_include()
-#import
-#import
-#import
-#endif
-
-@class RCTEventDispatcher;
-#if __has_include()
-@interface RCTVideo : UIView
-#elif TARGET_OS_TV
-@interface RCTVideo : UIView
-#else
-@interface RCTVideo : UIView
-#endif
-
-@property (nonatomic, copy) RCTDirectEventBlock onVideoLoadStart;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoLoad;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoBuffer;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoError;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoProgress;
-@property (nonatomic, copy) RCTDirectEventBlock onBandwidthUpdate;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoSeek;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoEnd;
-@property (nonatomic, copy) RCTDirectEventBlock onTimedMetadata;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoAudioBecomingNoisy;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoFullscreenPlayerWillPresent;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoFullscreenPlayerDidPresent;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoFullscreenPlayerWillDismiss;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoFullscreenPlayerDidDismiss;
-@property (nonatomic, copy) RCTDirectEventBlock onReadyForDisplay;
-@property (nonatomic, copy) RCTDirectEventBlock onPlaybackStalled;
-@property (nonatomic, copy) RCTDirectEventBlock onPlaybackResume;
-@property (nonatomic, copy) RCTDirectEventBlock onPlaybackRateChange;
-@property (nonatomic, copy) RCTDirectEventBlock onVideoExternalPlaybackChange;
-@property (nonatomic, copy) RCTDirectEventBlock onPictureInPictureStatusChanged;
-@property (nonatomic, copy) RCTDirectEventBlock onRestoreUserInterfaceForPictureInPictureStop;
-@property (nonatomic, copy) RCTDirectEventBlock onGetLicense;
-
-typedef NS_ENUM(NSInteger, RCTVideoError) {
- RCTVideoErrorFromJSPart,
- RCTVideoErrorLicenseRequestNotOk,
- RCTVideoErrorNoDataFromLicenseRequest,
- RCTVideoErrorNoSPC,
- RCTVideoErrorNoDataRequest,
- RCTVideoErrorNoCertificateData,
- RCTVideoErrorNoCertificateURL,
- RCTVideoErrorNoFairplayDRM,
- RCTVideoErrorNoDRMData
-};
-
-- (instancetype)initWithEventDispatcher:(RCTEventDispatcher *)eventDispatcher NS_DESIGNATED_INITIALIZER;
-
-- (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem;
-
-- (void)save:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
-- (void)setLicenseResult:(NSString * )license;
-- (BOOL)setLicenseResultError:(NSString * )error;
-
-@end
diff --git a/ios/Video/RCTVideo.m b/ios/Video/RCTVideo.m
deleted file mode 100644
index f2255007..00000000
--- a/ios/Video/RCTVideo.m
+++ /dev/null
@@ -1,2049 +0,0 @@
-#import
-#import "RCTVideo.h"
-#import
-#import
-#import
-#include
-#include
-#import
-
-static NSString *const statusKeyPath = @"status";
-static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp";
-static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
-static NSString *const readyForDisplayKeyPath = @"readyForDisplay";
-static NSString *const playbackRate = @"rate";
-static NSString *const timedMetadata = @"timedMetadata";
-static NSString *const externalPlaybackActive = @"externalPlaybackActive";
-
-static int const RCTVideoUnset = -1;
-
-#ifdef DEBUG
- #define DebugLog(...) NSLog(__VA_ARGS__)
-#else
- #define DebugLog(...) (void)0
-#endif
-
-@implementation RCTVideo
-{
- AVPlayer *_player;
- AVPlayerItem *_playerItem;
- NSDictionary *_source;
- BOOL _playerItemObserversSet;
- BOOL _playerBufferEmpty;
- AVPlayerLayer *_playerLayer;
- BOOL _playerLayerObserverSet;
- RCTVideoPlayerViewController *_playerViewController;
- NSURL *_videoURL;
- BOOL _requestingCertificate;
- BOOL _requestingCertificateErrored;
-
- /* DRM */
- NSDictionary *_drm;
- AVAssetResourceLoadingRequest *_loadingRequest;
-
- /* Required to publish events */
- RCTEventDispatcher *_eventDispatcher;
- BOOL _playbackRateObserverRegistered;
- BOOL _isExternalPlaybackActiveObserverRegistered;
- BOOL _videoLoadStarted;
-
- bool _pendingSeek;
- float _pendingSeekTime;
- float _lastSeekTime;
-
- /* For sending videoProgress events */
- Float64 _progressUpdateInterval;
- BOOL _controls;
- id _timeObserver;
-
- /* Keep track of any modifiers, need to be applied after each play */
- float _volume;
- float _rate;
- float _maxBitRate;
-
- BOOL _automaticallyWaitsToMinimizeStalling;
- BOOL _muted;
- BOOL _paused;
- BOOL _repeat;
- BOOL _allowsExternalPlayback;
- NSArray * _textTracks;
- NSDictionary * _selectedTextTrack;
- NSDictionary * _selectedAudioTrack;
- BOOL _playbackStalled;
- BOOL _playInBackground;
- BOOL _preventsDisplaySleepDuringVideoPlayback;
- float _preferredForwardBufferDuration;
- BOOL _playWhenInactive;
- BOOL _pictureInPicture;
- NSString * _ignoreSilentSwitch;
- NSString * _mixWithOthers;
- NSString * _resizeMode;
- BOOL _fullscreen;
- BOOL _fullscreenAutorotate;
- NSString * _fullscreenOrientation;
- BOOL _fullscreenPlayerPresented;
- NSString *_filterName;
- BOOL _filterEnabled;
- UIViewController * _presentingViewController;
-#if __has_include()
- RCTVideoCache * _videoCache;
-#endif
-#if TARGET_OS_IOS
- void (^__strong _Nonnull _restoreUserInterfaceForPIPStopCompletionHandler)(BOOL);
- AVPictureInPictureController *_pipController;
-#endif
-}
-
-- (instancetype)initWithEventDispatcher:(RCTEventDispatcher *)eventDispatcher
-{
- if ((self = [super init])) {
- _eventDispatcher = eventDispatcher;
- _automaticallyWaitsToMinimizeStalling = YES;
- _playbackRateObserverRegistered = NO;
- _isExternalPlaybackActiveObserverRegistered = NO;
- _playbackStalled = NO;
- _rate = 1.0;
- _volume = 1.0;
- _resizeMode = @"AVLayerVideoGravityResizeAspectFill";
- _fullscreenAutorotate = YES;
- _fullscreenOrientation = @"all";
- _pendingSeek = false;
- _pendingSeekTime = 0.0f;
- _lastSeekTime = 0.0f;
- _progressUpdateInterval = 250;
- _controls = NO;
- _playerBufferEmpty = YES;
- _playInBackground = false;
- _preventsDisplaySleepDuringVideoPlayback = true;
- _preferredForwardBufferDuration = 0.0f;
- _allowsExternalPlayback = YES;
- _playWhenInactive = false;
- _pictureInPicture = false;
- _ignoreSilentSwitch = @"inherit"; // inherit, ignore, obey
- _mixWithOthers = @"inherit"; // inherit, mix, duck
-#if TARGET_OS_IOS
- _restoreUserInterfaceForPIPStopCompletionHandler = NULL;
-#endif
-#if __has_include()
- _videoCache = [RCTVideoCache sharedInstance];
-#endif
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(applicationWillResignActive:)
- name:UIApplicationWillResignActiveNotification
- object:nil];
-
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(applicationDidEnterBackground:)
- name:UIApplicationDidEnterBackgroundNotification
- object:nil];
-
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(applicationWillEnterForeground:)
- name:UIApplicationWillEnterForegroundNotification
- object:nil];
-
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(audioRouteChanged:)
- name:AVAudioSessionRouteChangeNotification
- object:nil];
- }
-
- return self;
-}
-
-- (RCTVideoPlayerViewController*)createPlayerViewController:(AVPlayer*)player
- withPlayerItem:(AVPlayerItem*)playerItem {
- RCTVideoPlayerViewController* viewController = [[RCTVideoPlayerViewController alloc] init];
- viewController.showsPlaybackControls = YES;
- viewController.rctDelegate = self;
- viewController.preferredOrientation = _fullscreenOrientation;
-
- viewController.view.frame = self.bounds;
- viewController.player = player;
- return viewController;
-}
-
-/* ---------------------------------------------------------
- ** Get the duration for a AVPlayerItem.
- ** ------------------------------------------------------- */
-
-- (CMTime)playerItemDuration
-{
- AVPlayerItem *playerItem = [_player currentItem];
- if (playerItem.status == AVPlayerItemStatusReadyToPlay)
- {
- return([playerItem duration]);
- }
-
- return(kCMTimeInvalid);
-}
-
-- (CMTimeRange)playerItemSeekableTimeRange
-{
- AVPlayerItem *playerItem = [_player currentItem];
- if (playerItem.status == AVPlayerItemStatusReadyToPlay)
- {
- return [playerItem seekableTimeRanges].firstObject.CMTimeRangeValue;
- }
-
- return (kCMTimeRangeZero);
-}
-
--(void)addPlayerTimeObserver
-{
- const Float64 progressUpdateIntervalMS = _progressUpdateInterval / 1000;
- // @see endScrubbing in AVPlayerDemoPlaybackViewController.m
- // of https://developer.apple.com/library/ios/samplecode/AVPlayerDemo/Introduction/Intro.html
- __weak RCTVideo *weakSelf = self;
- _timeObserver = [_player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(progressUpdateIntervalMS, NSEC_PER_SEC)
- queue:NULL
- usingBlock:^(CMTime time) { [weakSelf sendProgressUpdate]; }
- ];
-}
-
-/* Cancels the previously registered time observer. */
--(void)removePlayerTimeObserver
-{
- if (_timeObserver)
- {
- [_player removeTimeObserver:_timeObserver];
- _timeObserver = nil;
- }
-}
-
-#pragma mark - Progress
-
-- (void)dealloc
-{
- [[NSNotificationCenter defaultCenter] removeObserver:self];
- [self removePlayerLayer];
- [self removePlayerItemObservers];
- [_player removeObserver:self forKeyPath:playbackRate context:nil];
- [_player removeObserver:self forKeyPath:externalPlaybackActive context: nil];
-}
-
-#pragma mark - App lifecycle handlers
-
-- (void)applicationWillResignActive:(NSNotification *)notification
-{
- if (_playInBackground || _playWhenInactive || _paused) return;
-
- [_player pause];
- [_player setRate:0.0];
-}
-
-- (void)applicationDidEnterBackground:(NSNotification *)notification
-{
- if (_playInBackground) {
- // Needed to play sound in background. See https://developer.apple.com/library/ios/qa/qa1668/_index.html
- [_playerLayer setPlayer:nil];
- [_playerViewController setPlayer:nil];
- }
-}
-
-- (void)applicationWillEnterForeground:(NSNotification *)notification
-{
- [self applyModifiers];
- if (_playInBackground) {
- [_playerLayer setPlayer:_player];
- [_playerViewController setPlayer:_player];
- }
-}
-
-#pragma mark - Audio events
-
-- (void)audioRouteChanged:(NSNotification *)notification
-{
- NSNumber *reason = [[notification userInfo] objectForKey:AVAudioSessionRouteChangeReasonKey];
- NSNumber *previousRoute = [[notification userInfo] objectForKey:AVAudioSessionRouteChangePreviousRouteKey];
- if (reason.unsignedIntValue == AVAudioSessionRouteChangeReasonOldDeviceUnavailable) {
- self.onVideoAudioBecomingNoisy(@{@"target": self.reactTag});
- }
-}
-
-#pragma mark - Progress
-
-- (void)sendProgressUpdate
-{
- AVPlayerItem *video = [_player currentItem];
- if (video == nil || video.status != AVPlayerItemStatusReadyToPlay) {
- return;
- }
-
- CMTime playerDuration = [self playerItemDuration];
- if (CMTIME_IS_INVALID(playerDuration)) {
- return;
- }
-
- CMTime currentTime = _player.currentTime;
- NSDate *currentPlaybackTime = _player.currentItem.currentDate;
- const Float64 duration = CMTimeGetSeconds(playerDuration);
- const Float64 currentTimeSecs = CMTimeGetSeconds(currentTime);
-
- [[NSNotificationCenter defaultCenter] postNotificationName:@"RCTVideo_progress" object:nil userInfo:@{@"progress": [NSNumber numberWithDouble: currentTimeSecs / duration]}];
-
- if( currentTimeSecs >= 0 && self.onVideoProgress) {
- self.onVideoProgress(@{
- @"currentTime": [NSNumber numberWithFloat:CMTimeGetSeconds(currentTime)],
- @"playableDuration": [self calculatePlayableDuration],
- @"atValue": [NSNumber numberWithLongLong:currentTime.value],
- @"atTimescale": [NSNumber numberWithInt:currentTime.timescale],
- @"currentPlaybackTime": [NSNumber numberWithLongLong:[@(floor([currentPlaybackTime timeIntervalSince1970] * 1000)) longLongValue]],
- @"target": self.reactTag,
- @"seekableDuration": [self calculateSeekableDuration],
- });
- }
-}
-
-/*!
- * Calculates and returns the playable duration of the current player item using its loaded time ranges.
- *
- * \returns The playable duration of the current player item in seconds.
- */
-- (NSNumber *)calculatePlayableDuration
-{
- AVPlayerItem *video = _player.currentItem;
- if (video.status == AVPlayerItemStatusReadyToPlay) {
- __block CMTimeRange effectiveTimeRange;
- [video.loadedTimeRanges enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
- CMTimeRange timeRange = [obj CMTimeRangeValue];
- if (CMTimeRangeContainsTime(timeRange, video.currentTime)) {
- effectiveTimeRange = timeRange;
- *stop = YES;
- }
- }];
- Float64 playableDuration = CMTimeGetSeconds(CMTimeRangeGetEnd(effectiveTimeRange));
- if (playableDuration > 0) {
- return [NSNumber numberWithFloat:playableDuration];
- }
- }
- return [NSNumber numberWithInteger:0];
-}
-
-- (NSNumber *)calculateSeekableDuration
-{
- CMTimeRange timeRange = [self playerItemSeekableTimeRange];
- if (CMTIME_IS_NUMERIC(timeRange.duration))
- {
- return [NSNumber numberWithFloat:CMTimeGetSeconds(timeRange.duration)];
- }
- return [NSNumber numberWithInteger:0];
-}
-
-- (void)addPlayerItemObservers
-{
- [_playerItem addObserver:self forKeyPath:statusKeyPath options:0 context:nil];
- [_playerItem addObserver:self forKeyPath:playbackBufferEmptyKeyPath options:0 context:nil];
- [_playerItem addObserver:self forKeyPath:playbackLikelyToKeepUpKeyPath options:0 context:nil];
- [_playerItem addObserver:self forKeyPath:timedMetadata options:NSKeyValueObservingOptionNew context:nil];
- _playerItemObserversSet = YES;
-}
-
-/* Fixes https://github.com/brentvatne/react-native-video/issues/43
- * Crashes caused when trying to remove the observer when there is no
- * observer set */
-- (void)removePlayerItemObservers
-{
- if (_playerItemObserversSet) {
- [_playerItem removeObserver:self forKeyPath:statusKeyPath];
- [_playerItem removeObserver:self forKeyPath:playbackBufferEmptyKeyPath];
- [_playerItem removeObserver:self forKeyPath:playbackLikelyToKeepUpKeyPath];
- [_playerItem removeObserver:self forKeyPath:timedMetadata];
- _playerItemObserversSet = NO;
- }
-}
-
-#pragma mark - Player and source
-
-- (void)setSrc:(NSDictionary *)source
-{
- _source = source;
- [self removePlayerLayer];
- [self removePlayerTimeObserver];
- [self removePlayerItemObservers];
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t) 0), dispatch_get_main_queue(), ^{
-
- // perform on next run loop, otherwise other passed react-props may not be set
- [self playerItemForSource:self->_source withCallback:^(AVPlayerItem * playerItem) {
- self->_playerItem = playerItem;
- _playerItem = playerItem;
- [self setPreferredForwardBufferDuration:_preferredForwardBufferDuration];
- [self addPlayerItemObservers];
- [self setFilter:self->_filterName];
- [self setMaxBitRate:self->_maxBitRate];
-
- [_player pause];
-
- if (_playbackRateObserverRegistered) {
- [_player removeObserver:self forKeyPath:playbackRate context:nil];
- _playbackRateObserverRegistered = NO;
- }
- if (self->_isExternalPlaybackActiveObserverRegistered) {
- [self->_player removeObserver:self forKeyPath:externalPlaybackActive context:nil];
- self->_isExternalPlaybackActiveObserverRegistered = NO;
- }
-
- self->_player = [AVPlayer playerWithPlayerItem:self->_playerItem];
- self->_player.actionAtItemEnd = AVPlayerActionAtItemEndNone;
-
- [self->_player addObserver:self forKeyPath:playbackRate options:0 context:nil];
- self->_playbackRateObserverRegistered = YES;
-
- [self->_player addObserver:self forKeyPath:externalPlaybackActive options:0 context:nil];
- self->_isExternalPlaybackActiveObserverRegistered = YES;
-
- [self addPlayerTimeObserver];
- if (@available(iOS 10.0, *)) {
- [self setAutomaticallyWaitsToMinimizeStalling:_automaticallyWaitsToMinimizeStalling];
- }
-
- //Perform on next run loop, otherwise onVideoLoadStart is nil
- if (self.onVideoLoadStart) {
- id uri = [self->_source objectForKey:@"uri"];
- id type = [self->_source objectForKey:@"type"];
- self.onVideoLoadStart(@{@"src": @{
- @"uri": uri ? uri : [NSNull null],
- @"type": type ? type : [NSNull null],
- @"isNetwork": [NSNumber numberWithBool:(bool)[self->_source objectForKey:@"isNetwork"]]},
- @"drm": self->_drm ? self->_drm : [NSNull null],
- @"target": self.reactTag
- });
- }
- }];
- });
- _videoLoadStarted = YES;
-}
-
-- (void)setDrm:(NSDictionary *)drm {
- _drm = drm;
-}
-
-- (NSURL*) urlFilePath:(NSString*) filepath {
- if ([filepath containsString:@"file://"]) {
- return [NSURL URLWithString:filepath];
- }
-
- // if no file found, check if the file exists in the Document directory
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString* relativeFilePath = [filepath lastPathComponent];
- // the file may be multiple levels below the documents directory
- NSArray* fileComponents = [filepath componentsSeparatedByString:@"Documents/"];
- if (fileComponents.count > 1) {
- relativeFilePath = [fileComponents objectAtIndex:1];
- }
-
- NSString *path = [paths.firstObject stringByAppendingPathComponent:relativeFilePath];
- if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
- return [NSURL fileURLWithPath:path];
- }
- return nil;
-}
-
-- (void)playerItemPrepareText:(AVAsset *)asset assetOptions:(NSDictionary * __nullable)assetOptions withCallback:(void(^)(AVPlayerItem *))handler
-{
- if (!_textTracks || _textTracks.count==0) {
- handler([AVPlayerItem playerItemWithAsset:asset]);
- return;
- }
-
- // AVPlayer can't airplay AVMutableCompositions
- _allowsExternalPlayback = NO;
-
- // sideload text tracks
- AVMutableComposition *mixComposition = [[AVMutableComposition alloc] init];
-
- AVAssetTrack *videoAsset = [asset tracksWithMediaType:AVMediaTypeVideo].firstObject;
- AVMutableCompositionTrack *videoCompTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
- [videoCompTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.timeRange.duration)
- ofTrack:videoAsset
- atTime:kCMTimeZero
- error:nil];
-
- AVAssetTrack *audioAsset = [asset tracksWithMediaType:AVMediaTypeAudio].firstObject;
- AVMutableCompositionTrack *audioCompTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
- [audioCompTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.timeRange.duration)
- ofTrack:audioAsset
- atTime:kCMTimeZero
- error:nil];
-
- NSMutableArray* validTextTracks = [NSMutableArray array];
- for (int i = 0; i < _textTracks.count; ++i) {
- AVURLAsset *textURLAsset;
- NSString *textUri = [_textTracks objectAtIndex:i][@"uri"];
- if ([[textUri lowercaseString] hasPrefix:@"http"]) {
- textURLAsset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:textUri] options:assetOptions];
- } else {
- textURLAsset = [AVURLAsset URLAssetWithURL:[self urlFilePath:textUri] options:nil];
- }
- AVAssetTrack *textTrackAsset = [textURLAsset tracksWithMediaType:AVMediaTypeText].firstObject;
- if (!textTrackAsset) continue; // fix when there's no textTrackAsset
- [validTextTracks addObject:[_textTracks objectAtIndex:i]];
- AVMutableCompositionTrack *textCompTrack = [mixComposition
- addMutableTrackWithMediaType:AVMediaTypeText
- preferredTrackID:kCMPersistentTrackID_Invalid];
- [textCompTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.timeRange.duration)
- ofTrack:textTrackAsset
- atTime:kCMTimeZero
- error:nil];
- }
- if (validTextTracks.count != _textTracks.count) {
- [self setTextTracks:validTextTracks];
- }
-
- handler([AVPlayerItem playerItemWithAsset:mixComposition]);
-}
-
-- (void)loadAssetFromSource:(NSDictionary *)source withCallback:(void(^)(AVURLAsset *asset, NSMutableDictionary *assetOptions)) handler {
- bool isNetwork = [RCTConvert BOOL:[source objectForKey:@"isNetwork"]];
- bool isAsset = [RCTConvert BOOL:[source objectForKey:@"isAsset"]];
- bool shouldCache = [RCTConvert BOOL:[source objectForKey:@"shouldCache"]];
-
- NSString *uri = [source objectForKey:@"uri"];
- NSString *type = [source objectForKey:@"type"];
-
- if (!uri || [uri isEqualToString:@""]) {
- DebugLog(@"Could not find video URL in source '%@'", source);
- return;
- }
-
- NSURL *url = isNetwork || isAsset
- ? [NSURL URLWithString:uri]
- : [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:uri ofType:type]];
- NSMutableDictionary *assetOptions = [[NSMutableDictionary alloc] init];
-
- if (isNetwork) {
- NSDictionary *headers = [source objectForKey:@"requestHeaders"];
- if ([headers count] > 0) {
- [assetOptions setObject:headers forKey:@"AVURLAssetHTTPHeaderFieldsKey"];
- }
- NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
- [assetOptions setObject:cookies forKey:AVURLAssetHTTPCookiesKey];
-
-#if __has_include()
- if (shouldCache && (!_textTracks || !_textTracks.count)) {
- /* The DVURLAsset created by cache doesn't have a tracksWithMediaType property, so trying
- * to bring in the text track code will crash. I suspect this is because the asset hasn't fully loaded.
- * Until this is fixed, we need to bypass caching when text tracks are specified.
- */
- DebugLog(@"Caching is not supported for uri '%@' because text tracks are not compatible with the cache. Checkout https://github.com/react-native-community/react-native-video/blob/master/docs/caching.md", uri);
- [self playerItemForSourceUsingCache:uri assetOptions:assetOptions withCallback:handler];
- return;
- }
-#endif
- handler([AVURLAsset URLAssetWithURL:url options:assetOptions], assetOptions);
- } else if (isAsset) {
- if ([uri hasPrefix:@"ph://"]) {
- NSString *assetId = [uri substringFromIndex:@"ph://".length];
- PHAsset *asset = [[PHAsset fetchAssetsWithLocalIdentifiers:@[assetId] options:nil] firstObject];
- PHVideoRequestOptions *options = [PHVideoRequestOptions new];
- options.networkAccessAllowed = YES;
-
- [[PHCachingImageManager new] requestAVAssetForVideo:asset options:options resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
- handler((AVURLAsset *)asset, assetOptions);
- }];
- } else {
- handler([AVURLAsset URLAssetWithURL:url options:nil], assetOptions);
- }
- } else {
- AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:uri ofType:type]] options:nil];
- handler(asset, assetOptions);
- }
-}
-
-- (void)playerItemForSource:(NSDictionary *)source withCallback:(void(^)(AVPlayerItem *))handler
-{
- [self loadAssetFromSource:source withCallback:^(AVURLAsset *asset, NSMutableDictionary *assetOptions) {
- // Reset _loadingRequest
- if (self->_loadingRequest != nil) {
- [self->_loadingRequest finishLoading];
- }
- self->_requestingCertificate = NO;
- self->_requestingCertificateErrored = NO;
- // End Reset _loadingRequest
- if (self->_drm != nil) {
- dispatch_queue_t queue = dispatch_queue_create("assetQueue", nil);
- [asset.resourceLoader setDelegate:self queue:queue];
- }
-
- [self playerItemPrepareText:asset assetOptions:assetOptions withCallback:handler];
- }];
-}
-
-#if __has_include(