diff --git a/.gitmodules b/.gitmodules
index 9dc854294f..ecc90a91db 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,3 @@
-[submodule "examples"]
- path = examples
- url = https://github.com/getsentry/examples
[submodule "ios/Sentry"]
path = ios/Sentry
url=https://github.com/getsentry/sentry-cocoa
diff --git a/.travis.yml b/.travis.yml
index d6494a64ca..8f7a86c525 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,64 +7,25 @@ before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH="$HOME/.yarn/bin:$PATH"
-matrix:
- include:
- # - language: node_js
- # node_js: 8
- # env: LANE='node'
- # cache:
- # yarn: true
- # script: .travis/run.sh
+install: yarn --ignore-engines
+os: linux
+
+language: node_js
+node_js: "12"
+dist: bionic
- - name: "Android"
- language: android
- sudo: required
- jdk: oraclejdk8
- before_cache:
- - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- - rm -rf $HOME/.gradle/caches/*/plugin-resolution/
- cache:
- directories:
- - $HOME/.yarn-cache
- - $HOME/.gradle/caches/
- - $HOME/.gradle/wrapper/
- before_install:
- - nvm install 8
- - .travis/before_install.sh
- - echo yes | sdkmanager "platforms;android-26"
- android:
- components:
- - tools
- - platform-tools
- - build-tools-28.0.3
- - tools
- env: LANE='android'
- script: .travis/run.sh
+cache:
+ yarn: true
+ directories:
+ - node_modules
- - name: "iOS"
- language: objective-c
- os: osx
- osx_image: xcode9.4
- node_js: 8
- cache:
- - bundler
- - pip
- - yarn
- env: LANE='ios'
- before_install:
- - .travis/before_install.sh
- before_script:
- - nvm install 8
- - sudo easy_install virtualenv
- - virtualenv ~/virtualenv
- - source ~/virtualenv/bin/activate
- script: .travis/run.sh
+matrix:
+ include:
+ - name: "Test"
+ script: yarn test
- name: "Deploy"
- language: node_js
- node_js: 8
script: .travis/deploy.sh
- env: LANE='Deploy'
after_success:
- npm install -g @zeus-ci/cli
- zeus upload -t "application/tar+npm" *.tgz
diff --git a/CHANGELOG.md b/CHANGELOG.md
index af09273b8d..dd2dbf16d0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## 1.3.0
+
+- Bump `io.sentry:sentry-android:2.0.0-rc04`
+- Added support for Hermes runtime!!
+- Fixed a lot of issues on Android
+- NDK support
+
## 1.2.2
- fix(android): Crash if stacktrace.frames is empty (#742)
diff --git a/android/build.gradle b/android/build.gradle
index a005474c0c..a46a34cfac 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -5,7 +5,7 @@ def safeExtGet(prop, fallback) {
apply plugin: 'com.android.library'
android {
- compileSdkVersion safeExtGet('compileSdkVersion', 26)
+ compileSdkVersion safeExtGet('compileSdkVersion', 28)
buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3')
defaultConfig {
@@ -14,13 +14,19 @@ android {
defaultConfig {
minSdkVersion safeExtGet('minSdkVersion', 16)
- targetSdkVersion safeExtGet('targetSdkVersion', 26)
+ targetSdkVersion safeExtGet('targetSdkVersion', 28)
versionCode 1
versionName "1.0"
ndk {
- abiFilters "armeabi-v7a", "x86"
+ abiFilters "x86", "armeabi-v7a", "x86_64", "arm64-v8a"
}
}
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
lintOptions {
warning 'InvalidPackage'
}
@@ -28,5 +34,5 @@ android {
dependencies {
implementation 'com.facebook.react:react-native:+'
- implementation 'io.sentry:sentry-android:1.7.29'
+ implementation 'io.sentry:sentry-android:2.0.0-rc04'
}
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index 4151e0d094..3c3f37d46d 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -2,4 +2,7 @@
package="io.sentry">
+
+
+
diff --git a/android/src/main/java/io/sentry/ArrayUtil.java b/android/src/main/java/io/sentry/ArrayUtil.java
deleted file mode 100644
index a917a54111..0000000000
--- a/android/src/main/java/io/sentry/ArrayUtil.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package io.sentry;
-
-import com.facebook.react.bridge.Arguments;
-import com.facebook.react.bridge.ReadableArray;
-import com.facebook.react.bridge.ReadableType;
-import com.facebook.react.bridge.WritableArray;
-
-import java.util.Map;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.json.JSONException;
-
-public class ArrayUtil {
-
- public static JSONArray toJSONArray(ReadableArray readableArray) throws JSONException {
- JSONArray jsonArray = new JSONArray();
-
- for (int i = 0; i < readableArray.size(); i++) {
- ReadableType type = readableArray.getType(i);
-
- switch (type) {
- case Null:
- jsonArray.put(i, null);
- break;
- case Boolean:
- jsonArray.put(i, readableArray.getBoolean(i));
- break;
- case Number:
- jsonArray.put(i, readableArray.getDouble(i));
- break;
- case String:
- jsonArray.put(i, readableArray.getString(i));
- break;
- case Map:
- jsonArray.put(i, MapUtil.toJSONObject(readableArray.getMap(i)));
- break;
- case Array:
- jsonArray.put(i, ArrayUtil.toJSONArray(readableArray.getArray(i)));
- break;
- }
- }
-
- return jsonArray;
- }
-
- public static Object[] toArray(JSONArray jsonArray) throws JSONException {
- Object[] array = new Object[jsonArray.length()];
-
- for (int i = 0; i < jsonArray.length(); i++) {
- Object value = jsonArray.get(i);
-
- if (value instanceof JSONObject) {
- value = MapUtil.toMap((JSONObject) value);
- }
- if (value instanceof JSONArray) {
- value = ArrayUtil.toArray((JSONArray) value);
- }
-
- array[i] = value;
- }
-
- return array;
- }
-
- public static Object[] toArray(ReadableArray readableArray) {
- Object[] array = new Object[readableArray.size()];
-
- for (int i = 0; i < readableArray.size(); i++) {
- ReadableType type = readableArray.getType(i);
-
- switch (type) {
- case Null:
- array[i] = null;
- break;
- case Boolean:
- array[i] = readableArray.getBoolean(i);
- break;
- case Number:
- array[i] = readableArray.getDouble(i);
- break;
- case String:
- array[i] = readableArray.getString(i);
- break;
- case Map:
- array[i] = MapUtil.toMap(readableArray.getMap(i));
- break;
- case Array:
- array[i] = ArrayUtil.toArray(readableArray.getArray(i));
- break;
- }
- }
-
- return array;
- }
-
- public static WritableArray toWritableArray(Object[] array) {
- WritableArray writableArray = Arguments.createArray();
-
- for (int i = 0; i < array.length; i++) {
- Object value = array[i];
-
- if (value == null) {
- writableArray.pushNull();
- }
- if (value instanceof Boolean) {
- writableArray.pushBoolean((Boolean) value);
- }
- if (value instanceof Double) {
- writableArray.pushDouble((Double) value);
- }
- if (value instanceof Integer) {
- writableArray.pushInt((Integer) value);
- }
- if (value instanceof String) {
- writableArray.pushString((String) value);
- }
- if (value instanceof Map) {
- writableArray.pushMap(MapUtil.toWritableMap((Map) value));
- }
- if (value.getClass().isArray()) {
- writableArray.pushArray(ArrayUtil.toWritableArray((Object[]) value));
- }
- }
-
- return writableArray;
- }
-}
diff --git a/android/src/main/java/io/sentry/MapUtil.java b/android/src/main/java/io/sentry/MapUtil.java
deleted file mode 100644
index 4d75abc742..0000000000
--- a/android/src/main/java/io/sentry/MapUtil.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package io.sentry;
-
-import com.facebook.react.bridge.Arguments;
-import com.facebook.react.bridge.ReadableMap;
-import com.facebook.react.bridge.ReadableMapKeySetIterator;
-import com.facebook.react.bridge.ReadableType;
-import com.facebook.react.bridge.WritableMap;
-
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.json.JSONException;
-
-public class MapUtil {
-
- public static JSONObject toJSONObject(ReadableMap readableMap) throws JSONException {
- JSONObject jsonObject = new JSONObject();
-
- ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
-
- while (iterator.hasNextKey()) {
- String key = iterator.nextKey();
- ReadableType type = readableMap.getType(key);
-
- switch (type) {
- case Null:
- jsonObject.put(key, null);
- break;
- case Boolean:
- jsonObject.put(key, readableMap.getBoolean(key));
- break;
- case Number:
- jsonObject.put(key, readableMap.getDouble(key));
- break;
- case String:
- jsonObject.put(key, readableMap.getString(key));
- break;
- case Map:
- jsonObject.put(key, MapUtil.toJSONObject(readableMap.getMap(key)));
- break;
- case Array:
- jsonObject.put(key, ArrayUtil.toJSONArray(readableMap.getArray(key)));
- break;
- }
- }
-
- return jsonObject;
- }
-
- public static Map toMap(JSONObject jsonObject) throws JSONException {
- Map map = new HashMap<>();
- Iterator iterator = jsonObject.keys();
-
- while (iterator.hasNext()) {
- String key = iterator.next();
- Object value = jsonObject.get(key);
-
- if (value instanceof JSONObject) {
- value = MapUtil.toMap((JSONObject) value);
- }
- if (value instanceof JSONArray) {
- value = ArrayUtil.toArray((JSONArray) value);
- }
-
- map.put(key, value);
- }
-
- return map;
- }
-
- public static Map toMap(ReadableMap readableMap) {
- Map map = new HashMap<>();
- ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
-
- while (iterator.hasNextKey()) {
- String key = iterator.nextKey();
- ReadableType type = readableMap.getType(key);
-
- switch (type) {
- case Null:
- map.put(key, null);
- break;
- case Boolean:
- map.put(key, readableMap.getBoolean(key));
- break;
- case Number:
- map.put(key, readableMap.getDouble(key));
- break;
- case String:
- map.put(key, readableMap.getString(key));
- break;
- case Map:
- map.put(key, MapUtil.toMap(readableMap.getMap(key)));
- break;
- case Array:
- map.put(key, ArrayUtil.toArray(readableMap.getArray(key)));
- break;
- }
- }
-
- return map;
- }
-
- public static WritableMap toWritableMap(Map map) {
- WritableMap writableMap = Arguments.createMap();
- Iterator iterator = map.entrySet().iterator();
-
- while (iterator.hasNext()) {
- Map.Entry pair = (Map.Entry)iterator.next();
- Object value = pair.getValue();
-
- if (value == null) {
- writableMap.putNull((String) pair.getKey());
- } else if (value instanceof Boolean) {
- writableMap.putBoolean((String) pair.getKey(), (Boolean) value);
- } else if (value instanceof Double) {
- writableMap.putDouble((String) pair.getKey(), (Double) value);
- } else if (value instanceof Integer) {
- writableMap.putInt((String) pair.getKey(), (Integer) value);
- } else if (value instanceof String) {
- writableMap.putString((String) pair.getKey(), (String) value);
- } else if (value instanceof Map) {
- writableMap.putMap((String) pair.getKey(), MapUtil.toWritableMap((Map) value));
- } else if (value.getClass() != null && value.getClass().isArray()) {
- writableMap.putArray((String) pair.getKey(), ArrayUtil.toWritableArray((Object[]) value));
- }
- }
-
- return writableMap;
- }
-}
diff --git a/android/src/main/java/io/sentry/RNSentryModule.java b/android/src/main/java/io/sentry/RNSentryModule.java
index 1023bb0b52..5e5be51026 100644
--- a/android/src/main/java/io/sentry/RNSentryModule.java
+++ b/android/src/main/java/io/sentry/RNSentryModule.java
@@ -9,58 +9,38 @@
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
-import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
-import com.facebook.react.bridge.ReadableNativeArray;
-import com.facebook.react.bridge.ReadableNativeMap;
-import com.facebook.react.bridge.ReadableType;
-import com.facebook.react.bridge.UnexpectedNativeTypeException;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.module.annotations.ReactModule;
-import java.util.UUID;
-
-import java.util.ArrayDeque;
-import java.util.ArrayList;
-import java.util.Deque;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.nio.charset.Charset;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
-import java.util.Set;
+import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import io.sentry.android.AndroidSentryClientFactory;
-import io.sentry.android.event.helper.AndroidEventBuilderHelper;
-import io.sentry.event.Breadcrumb;
-import io.sentry.event.BreadcrumbBuilder;
-import io.sentry.event.Event;
-import io.sentry.event.EventBuilder;
-import io.sentry.event.Sdk;
-import io.sentry.event.User;
-import io.sentry.event.UserBuilder;
-import io.sentry.event.helper.ShouldSendEventCallback;
-import io.sentry.event.interfaces.ExceptionInterface;
-import io.sentry.event.interfaces.SentryException;
-import io.sentry.event.interfaces.SentryStackTraceElement;
-import io.sentry.event.interfaces.StackTraceInterface;
-import io.sentry.event.interfaces.UserInterface;
+import io.sentry.android.core.AnrIntegration;
+import io.sentry.android.core.NdkIntegration;
+import io.sentry.android.core.SentryAndroid;
+import io.sentry.core.Integration;
+import io.sentry.core.SentryOptions;
+import io.sentry.core.UncaughtExceptionHandlerIntegration;
+import io.sentry.core.protocol.SentryException;
+
@ReactModule(name = RNSentryModule.NAME)
public class RNSentryModule extends ReactContextBaseJavaModule {
public static final String NAME = "RNSentry";
- private static final Pattern mJsModuleIdPattern = Pattern.compile("(?:^|[/\\\\])(\\d+\\.js)$");
-
- private static AndroidEventBuilderHelper androidHelper;
-
final static Logger logger = Logger.getLogger("react-native-sentry");
- private static SentryClient sentryClient;
+
private static PackageInfo packageInfo;
+ private SentryOptions sentryOptions;
public RNSentryModule(ReactApplicationContext reactContext) {
super(reactContext);
@@ -81,46 +61,55 @@ public Map getConstants() {
}
@ReactMethod
- public void startWithDsnString(String dsnString, final ReadableMap options, Promise promise) {
- if (sentryClient != null) {
- logger.info(String.format("Already started, use existing client '%s'", dsnString));
- promise.resolve(false);
- return;
- }
+ public void startWithDsnString(String dsnString, final ReadableMap rnOptions, Promise promise) {
+ SentryAndroid.init(this.getReactApplicationContext(), options -> {
+ options.setDsn(dsnString);
- try {
- sentryClient = Sentry.init(dsnString, new AndroidSentryClientFactory(this.getReactApplicationContext()));
- } catch (Exception e) {
- logger.info(String.format("Catching on startWithDsnString, calling callback" + e.getMessage()));
- promise.reject("SentryError", "Error during init", e);
- return;
- }
-
- androidHelper = new AndroidEventBuilderHelper(this.getReactApplicationContext());
+ if (rnOptions.hasKey("debug") && rnOptions.getBoolean("debug")) {
+ options.setDebug(true);
+ }
+ if (rnOptions.hasKey("environment") && rnOptions.getString("environment") != null) {
+ options.setEnvironment(rnOptions.getString("environment"));
+ }
+ if (rnOptions.hasKey("release") && rnOptions.getString("release") != null) {
+ options.setRelease(rnOptions.getString("release"));
+ }
+ if (rnOptions.hasKey("dist") && rnOptions.getString("dist") != null) {
+ options.setDist(rnOptions.getString("dist"));
+ }
- sentryClient.addShouldSendEventCallback(new ShouldSendEventCallback() {
- @Override
- public boolean shouldSend(Event event) {
- // We don't want to send events that are from ExceptionsManagerModule.
- // Because we sent it already from raven.
- if (event.getSentryInterfaces().containsKey(ExceptionInterface.EXCEPTION_INTERFACE)) {
- ExceptionInterface exceptionInterface = ((ExceptionInterface)event.getSentryInterfaces().get(ExceptionInterface.EXCEPTION_INTERFACE));
- if (exceptionInterface.getExceptions().getFirst().getExceptionClassName().contains("JavascriptException")) {
- return false;
+ options.setBeforeSend((event, hint) -> {
+ // React native internally throws a JavascriptException
+ // Since we catch it before that, we don't want to send this one
+ // because we would send it twice
+ try {
+ SentryException ex = event.getExceptions().get(0);
+ if (null != ex && ex.getType().contains("JavascriptException")) {
+ return null;
+ }
+ } catch (Exception e) {
+ // We do nothing
+ }
+ return event;
+ });
+
+
+ for (Iterator iterator = options.getIntegrations().iterator(); iterator.hasNext(); ) {
+ Integration integration = iterator.next();
+ if (rnOptions.hasKey("enableNativeCrashHandling") &&
+ !rnOptions.getBoolean("enableNativeCrashHandling")) {
+ if (integration instanceof UncaughtExceptionHandlerIntegration ||
+ integration instanceof AnrIntegration ||
+ integration instanceof NdkIntegration) {
+ iterator.remove();
}
}
- return true;
}
+
+ logger.info(String.format("Native Integrations '%s'", options.getIntegrations().toString()));
+ sentryOptions = options;
});
- if (options.hasKey("environment") && options.getString("environment") != null) {
- sentryClient.environment = options.getString("environment");
- }
- if (options.hasKey("release") && options.getString("release") != null) {
- sentryClient.release = options.getString("release");
- }
- if (options.hasKey("dist") && options.getString("dist") != null) {
- sentryClient.dist = options.getString("dist");
- }
+
logger.info(String.format("startWithDsnString '%s'", dsnString));
promise.resolve(true);
}
@@ -132,7 +121,7 @@ public void setLogLevel(int level) {
@ReactMethod
public void crash() {
- throw new RuntimeException("TEST - Sentry Client Crash");
+ throw new RuntimeException("TEST - Sentry Client Crash (only works in release mode)");
}
@ReactMethod
@@ -145,325 +134,18 @@ public void fetchRelease(Promise promise) {
}
@ReactMethod
- public void deviceContexts(Promise promise) {
- EventBuilder eventBuilder = new EventBuilder();
- androidHelper.helpBuildingEvent(eventBuilder);
- Event event = eventBuilder.build();
-
- WritableMap params = Arguments.createMap();
-
- for (Map.Entry> data : event.getContexts().entrySet()) {
- params.putMap(data.getKey(), MapUtil.toWritableMap(data.getValue()));
- }
-
- promise.resolve(params);
- }
-
- @ReactMethod
- public void extraUpdated(ReadableMap extra) {
- if (extra.hasKey("__sentry_release")) {
- sentryClient.release = extra.getString("__sentry_release");
- }
- if (extra.hasKey("__sentry_dist")) {
- sentryClient.dist = extra.getString("__sentry_dist");
- }
- }
-
- @ReactMethod
- public void sendEvent(ReadableMap event, Promise promise) {
- ReadableNativeMap castEvent = (ReadableNativeMap)event;
-
-// EventBuilder eventBuilder = new EventBuilder()
-// .withLevel(eventLevel(castEvent));
-
- EventBuilder eventBuilder;
- if (event.hasKey("event_id")) {
- UUID eventId = UUID.fromString(event.getString("event_id").replaceFirst(
- "(\\p{XDigit}{8})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}+)",
- "$1-$2-$3-$4-$5"));
- eventBuilder = new EventBuilder(eventId).withLevel(eventLevel(castEvent));
- } else {
- logger.info("Event has no event_id");
- eventBuilder = new EventBuilder().withLevel(eventLevel(castEvent));
- }
-
- androidHelper.helpBuildingEvent(eventBuilder);
-
- if (event.hasKey("breadcrumbs")) {
- ReadableNativeArray breadcrumbs = (ReadableNativeArray)event.getArray("breadcrumbs");
- ArrayList eventBreadcrumbs = new ArrayList();
- for (int i = 0; i < breadcrumbs.size(); i++) {
- ReadableNativeMap breadcrumb = breadcrumbs.getMap(i);
- BreadcrumbBuilder breadcrumbBuilder = new BreadcrumbBuilder();
- if (breadcrumb.hasKey("category")) {
- breadcrumbBuilder.setCategory(breadcrumb.getString("category"));
- }
-
- if (breadcrumb.hasKey("type") && breadcrumb.getString("type") != null) {
- String typeString = breadcrumb.getString("type").toUpperCase();
- try {
- breadcrumbBuilder.setType(Breadcrumb.Type.valueOf(typeString));
- } catch (IllegalArgumentException e) {
- //don't copy over invalid breadcrumb 'type' value
- }
- }
-
- if (breadcrumb.hasKey("level") && breadcrumb.getString("level") != null) {
- String levelString = breadcrumb.getString("level").toUpperCase();
- try {
- breadcrumbBuilder.setLevel(Breadcrumb.Level.valueOf(levelString));
- } catch (IllegalArgumentException e) {
- //don't copy over invalid breadcrumb 'level' value
- }
- }
-
- try {
- if (breadcrumb.hasKey("data") && breadcrumb.getMap("data") != null) {
- Map newData = new HashMap<>();
- for (Map.Entry data : breadcrumb.getMap("data").toHashMap().entrySet()) {
- newData.put(data.getKey(), data.getValue() != null ? data.getValue().toString() : null);
- }
-
- // in case a `status_code` entry got accidentally stringified as a float
- if (newData.containsKey("status_code")) {
- String value = newData.get("status_code");
- newData.put(
- "status_code",
- value.endsWith(".0") ? value.replace(".0", "") : value
- );
- }
-
- breadcrumbBuilder.setData(newData);
- }
- } catch (UnexpectedNativeTypeException e) {
- logger.warning("Discarded breadcrumb.data since it was not an object");
- } catch (ClassCastException e) { // This needs to be here for RN < 0.60
- logger.warning("Discarded breadcrumb.data since it was not an object");
- }
-
- if (breadcrumb.hasKey("message")) {
- breadcrumbBuilder.setMessage(breadcrumb.getString("message"));
- } else {
- breadcrumbBuilder.setMessage("");
- }
- eventBreadcrumbs.add(i, breadcrumbBuilder.build());
- }
- if (eventBreadcrumbs.size() > 0) {
- eventBuilder.withBreadcrumbs(eventBreadcrumbs);
- }
- }
-
- if (event.hasKey("message")) {
- String message = "";
- try {
- message = event.getString("message");
- } catch (UnexpectedNativeTypeException e) {
- // Do nothing
- } catch (ClassCastException e) { // This needs to be here for RN < 0.60
- // Do nothing
- } finally {
- try {
- message = event.getMap("message").toString();
- } catch (UnexpectedNativeTypeException e) {
- // Do nothing
- } catch (ClassCastException e) { // This needs to be here for RN < 0.60
- // Do nothing
- }
- }
- eventBuilder.withMessage(message);
- }
-
- if (event.hasKey("logger")) {
- eventBuilder.withLogger(event.getString("logger"));
- }
-
- if (event.hasKey("user")) {
- UserBuilder userBuilder = getUserBuilder(event.getMap("user"));
- User builtUser = userBuilder.build();
- UserInterface userInterface = new UserInterface(
- builtUser.getId(),
- builtUser.getUsername(),
- null,
- builtUser.getEmail(),
- builtUser.getData()
- );
- eventBuilder.withSentryInterface(userInterface);
- }
-
- if (castEvent.hasKey("extra")) {
- for (Map.Entry entry : castEvent.getMap("extra").toHashMap().entrySet()) {
- eventBuilder.withExtra(entry.getKey(), entry.getValue());
- }
- }
-
- if (event.hasKey("fingerprint")) {
- ReadableArray fingerprint = event.getArray("fingerprint");
- ArrayList print = new ArrayList(fingerprint.size());
- for(int i = 0; i < fingerprint.size(); ++i) {
- print.add(i, fingerprint.getString(i));
- }
- eventBuilder.withFingerprint(print);
- }
-
- if (castEvent.hasKey("tags")) {
- for (Map.Entry entry : castEvent.getMap("tags").toHashMap().entrySet()) {
- String tagValue = entry.getValue() != null ? entry.getValue().toString() : "INVALID_TAG";
- eventBuilder.withTag(entry.getKey(), tagValue);
- }
- }
-
- if (event.hasKey("exception")) {
- ReadableNativeArray exceptionValues = (ReadableNativeArray)event.getMap("exception").getArray("values");
- ReadableNativeMap exception = exceptionValues.getMap(0);
- if (exception.hasKey("stacktrace")) {
- ReadableNativeMap stacktrace = exception.getMap("stacktrace");
- // temporary solution until final fix
- // https://github.com/getsentry/sentry-react-native/issues/742
- if (stacktrace.hasKey("frames")) {
- ReadableNativeArray frames = (ReadableNativeArray)stacktrace.getArray("frames");
- if (exception.hasKey("value")) {
- addExceptionInterface(eventBuilder, exception.getString("type"), exception.getString("value"), frames);
- } else {
- // We use type/type here since this indicates an Unhandled Promise Rejection
- // https://github.com/getsentry/react-native-sentry/issues/353
- addExceptionInterface(eventBuilder, exception.getString("type"), exception.getString("type"), frames);
- }
- }
- }
- }
-
- if (event.hasKey("environment")) {
- eventBuilder.withEnvironment(event.getString("environment"));
- }
-
-
- if (event.hasKey("release")) {
- eventBuilder.withRelease(event.getString("release"));
- } else {
- eventBuilder.withRelease(null);
- }
-
- if (event.hasKey("dist")) {
- eventBuilder.withDist(event.getString("dist"));
- } else {
- eventBuilder.withDist(null);
- }
-
- Event builtEvent = eventBuilder.build();
-
- if (event.hasKey("sdk")) {
- ReadableNativeMap sdk = (ReadableNativeMap)event.getMap("sdk");
- Set sdkIntegrations = new HashSet<>();
- if (sdk.hasKey("integrations")) {
- ReadableNativeArray integrations = (ReadableNativeArray)sdk.getArray("integrations");
- for(int i = 0; i < integrations.size(); ++i) {
- sdkIntegrations.add(integrations.getString(i));
- }
+ public void captureEnvelope(String envelope, Promise promise) {
+ try {
+ File installation = new File(sentryOptions.getOutboxPath(), UUID.randomUUID().toString());
+ try(FileOutputStream out = new FileOutputStream(installation)) {
+ out.write(envelope.getBytes(Charset.forName("UTF-8")));
}
- builtEvent.setSdk(new Sdk(sdk.getString("name"), sdk.getString("version"), sdkIntegrations));
+ } catch (Exception e) {
+ logger.info("Error reading envelope");
}
-
-
- Sentry.capture(builtEvent);
promise.resolve(true);
}
- private UserBuilder getUserBuilder(ReadableMap user) {
- UserBuilder userBuilder = new UserBuilder();
- if (user.hasKey("email")) {
- userBuilder.setEmail(user.getString("email"));
- }
- if (user.hasKey("userID")) {
- userBuilder.setId(user.getString("userID"));
- } else if (user.hasKey("userId")) {
- userBuilder.setId(user.getString("userId"));
- } else if (user.hasKey("id")) {
- userBuilder.setId(user.getString("id"));
- }
- if (user.hasKey("username")) {
- userBuilder.setUsername(user.getString("username"));
- }
- if (user.hasKey("extra")) {
- userBuilder.setData(user.getMap("extra").toHashMap());
- }
- return userBuilder;
- }
-
- private static void addExceptionInterface(EventBuilder eventBuilder, String type, String value, ReadableNativeArray stack) {
- StackTraceInterface stackTraceInterface = new StackTraceInterface(convertToNativeStacktrace(stack));
- Deque exceptions = new ArrayDeque<>();
-
- exceptions.push(new SentryException(value, type, "", stackTraceInterface));
-
- eventBuilder.withSentryInterface(new ExceptionInterface(exceptions));
- }
-
- private static SentryStackTraceElement[] convertToNativeStacktrace(ReadableNativeArray stack) {
- Deque frames = new ArrayDeque<>();
- for (int i = 0; i < stack.size(); i++) {
- ReadableNativeMap frame = stack.getMap(i);
-
- String fileName = "";
- if (frame.hasKey("file")) {
- fileName = frame.getString("file");
- } else if (frame.hasKey("filename")) {
- fileName = frame.getString("filename");
- }
-
- String methodName = "";
- if (frame.hasKey("methodName")) {
- methodName = frame.getString("methodName");
- } else if (frame.hasKey("function")) {
- methodName = frame.getString("function");
- }
-
- int lineNumber = 0;
- if (frame.hasKey("lineNumber") &&
- !frame.isNull("lineNumber") &&
- frame.getType("lineNumber") == ReadableType.Number) {
- lineNumber = frame.getInt("lineNumber");
- } else if (frame.hasKey("lineno") &&
- !frame.isNull("lineno") &&
- frame.getType("lineno") == ReadableType.Number) {
- lineNumber = frame.getInt("lineno");
- }
-
- int column = 0;
- if (frame.hasKey("column") &&
- !frame.isNull("column") &&
- frame.getType("column") == ReadableType.Number) {
- column = frame.getInt("column");
- } else if (frame.hasKey("colno") &&
- !frame.isNull("colno") &&
- frame.getType("colno") == ReadableType.Number) {
- column = frame.getInt("colno");
- }
-
- SentryStackTraceElement stackFrame = new SentryStackTraceElement("", methodName, stackFrameToModuleId(frame), lineNumber, column, fileName, "javascript");
- frames.add(stackFrame);
- }
- SentryStackTraceElement[] synthStackTrace = new SentryStackTraceElement[frames.size()];
- Iterator iterator = frames.descendingIterator();
- int i = 0;
- while (iterator.hasNext()) {
- synthStackTrace[i] = iterator.next();
- i++;
- }
- return synthStackTrace;
- }
-
- private static String stackFrameToModuleId(ReadableMap frame) {
- if (frame.hasKey("file") &&
- !frame.isNull("file") &&
- frame.getType("file") == ReadableType.String) {
- final Matcher matcher = mJsModuleIdPattern.matcher(frame.getString("file"));
- if (matcher.find()) {
- return matcher.group(1) + ":";
- }
- }
- return "";
- }
-
private static PackageInfo getPackageInfo(Context ctx) {
try {
return ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0);
@@ -473,25 +155,6 @@ private static PackageInfo getPackageInfo(Context ctx) {
}
}
- private Event.Level eventLevel(ReadableNativeMap event) {
- String level = "";
- if (event.hasKey("level")) {
- level = event.getString("level");
- }
- switch (level) {
- case "fatal":
- return Event.Level.FATAL;
- case "warning":
- return Event.Level.WARNING;
- case "info":
- return Event.Level.INFO;
- case "debug":
- return Event.Level.DEBUG;
- default:
- return Event.Level.ERROR;
- }
- }
-
private Level logLevel(int level) {
switch (level) {
case 1:
diff --git a/appium/Gemfile b/appium/Gemfile
deleted file mode 100644
index 2f81420443..0000000000
--- a/appium/Gemfile
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by fastlane
-#
-# Ensure this file is checked in to source control!
-
-source "https://rubygems.org"
-
-gem 'fastlane', '>= 2.131.0'
-
-plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
-eval_gemfile(plugins_path) if File.exist?(plugins_path)
diff --git a/appium/Gemfile.lock b/appium/Gemfile.lock
deleted file mode 100644
index e92b0bbb26..0000000000
--- a/appium/Gemfile.lock
+++ /dev/null
@@ -1,159 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- CFPropertyList (3.0.2)
- addressable (2.7.0)
- public_suffix (>= 2.0.2, < 5.0)
- atomos (0.1.3)
- babosa (1.0.3)
- claide (1.0.3)
- colored (1.2)
- colored2 (3.1.2)
- commander-fastlane (4.4.6)
- highline (~> 1.7.2)
- declarative (0.0.10)
- declarative-option (0.1.0)
- digest-crc (0.4.1)
- domain_name (0.5.20190701)
- unf (>= 0.0.5, < 1.0.0)
- dotenv (2.7.5)
- emoji_regex (1.0.1)
- excon (0.71.1)
- faraday (0.17.1)
- multipart-post (>= 1.2, < 3)
- faraday-cookie_jar (0.0.6)
- faraday (>= 0.7.4)
- http-cookie (~> 1.0.0)
- faraday_middleware (0.13.1)
- faraday (>= 0.7.4, < 1.0)
- fastimage (2.1.7)
- fastlane (2.138.0)
- CFPropertyList (>= 2.3, < 4.0.0)
- addressable (>= 2.3, < 3.0.0)
- babosa (>= 1.0.2, < 2.0.0)
- bundler (>= 1.12.0, < 3.0.0)
- colored
- commander-fastlane (>= 4.4.6, < 5.0.0)
- dotenv (>= 2.1.1, < 3.0.0)
- emoji_regex (>= 0.1, < 2.0)
- excon (>= 0.71.0, < 1.0.0)
- faraday (~> 0.17)
- faraday-cookie_jar (~> 0.0.6)
- faraday_middleware (~> 0.13.1)
- fastimage (>= 2.1.0, < 3.0.0)
- gh_inspector (>= 1.1.2, < 2.0.0)
- google-api-client (>= 0.21.2, < 0.24.0)
- google-cloud-storage (>= 1.15.0, < 2.0.0)
- highline (>= 1.7.2, < 2.0.0)
- json (< 3.0.0)
- jwt (~> 2.1.0)
- mini_magick (>= 4.9.4, < 5.0.0)
- multi_xml (~> 0.5)
- multipart-post (~> 2.0.0)
- plist (>= 3.1.0, < 4.0.0)
- public_suffix (~> 2.0.0)
- rubyzip (>= 1.3.0, < 2.0.0)
- security (= 0.1.3)
- simctl (~> 1.6.3)
- slack-notifier (>= 2.0.0, < 3.0.0)
- terminal-notifier (>= 2.0.0, < 3.0.0)
- terminal-table (>= 1.4.5, < 2.0.0)
- tty-screen (>= 0.6.3, < 1.0.0)
- tty-spinner (>= 0.8.0, < 1.0.0)
- word_wrap (~> 1.0.0)
- xcodeproj (>= 1.13.0, < 2.0.0)
- xcpretty (~> 0.3.0)
- xcpretty-travis-formatter (>= 0.0.3)
- gh_inspector (1.1.3)
- google-api-client (0.23.9)
- addressable (~> 2.5, >= 2.5.1)
- googleauth (>= 0.5, < 0.7.0)
- httpclient (>= 2.8.1, < 3.0)
- mime-types (~> 3.0)
- representable (~> 3.0)
- retriable (>= 2.0, < 4.0)
- signet (~> 0.9)
- google-cloud-core (1.4.1)
- google-cloud-env (~> 1.0)
- google-cloud-env (1.3.0)
- faraday (~> 0.11)
- google-cloud-storage (1.16.0)
- digest-crc (~> 0.4)
- google-api-client (~> 0.23)
- google-cloud-core (~> 1.2)
- googleauth (>= 0.6.2, < 0.10.0)
- googleauth (0.6.7)
- faraday (~> 0.12)
- jwt (>= 1.4, < 3.0)
- memoist (~> 0.16)
- multi_json (~> 1.11)
- os (>= 0.9, < 2.0)
- signet (~> 0.7)
- highline (1.7.10)
- http-cookie (1.0.3)
- domain_name (~> 0.5)
- httpclient (2.8.3)
- json (2.3.0)
- jwt (2.1.0)
- memoist (0.16.2)
- mime-types (3.3)
- mime-types-data (~> 3.2015)
- mime-types-data (3.2019.1009)
- mini_magick (4.9.5)
- multi_json (1.14.1)
- multi_xml (0.6.0)
- multipart-post (2.0.0)
- nanaimo (0.2.6)
- naturally (2.2.0)
- os (1.0.1)
- plist (3.5.0)
- public_suffix (2.0.5)
- representable (3.0.4)
- declarative (< 0.1.0)
- declarative-option (< 0.2.0)
- uber (< 0.2.0)
- retriable (3.1.2)
- rouge (2.0.7)
- rubyzip (1.3.0)
- security (0.1.3)
- signet (0.12.0)
- addressable (~> 2.3)
- faraday (~> 0.9)
- jwt (>= 1.5, < 3.0)
- multi_json (~> 1.10)
- simctl (1.6.7)
- CFPropertyList
- naturally
- slack-notifier (2.3.2)
- terminal-notifier (2.0.0)
- terminal-table (1.8.0)
- unicode-display_width (~> 1.1, >= 1.1.1)
- tty-cursor (0.7.0)
- tty-screen (0.7.0)
- tty-spinner (0.9.2)
- tty-cursor (~> 0.7)
- uber (0.1.0)
- unf (0.1.4)
- unf_ext
- unf_ext (0.0.7.6)
- unicode-display_width (1.6.0)
- word_wrap (1.0.0)
- xcodeproj (1.14.0)
- CFPropertyList (>= 2.3.3, < 4.0)
- atomos (~> 0.1.3)
- claide (>= 1.0.2, < 2.0)
- colored2 (~> 3.1)
- nanaimo (~> 0.2.6)
- xcpretty (0.3.0)
- rouge (~> 2.0.7)
- xcpretty-travis-formatter (1.0.0)
- xcpretty (~> 0.2, >= 0.0.7)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- fastlane (>= 2.131.0)
-
-BUNDLED WITH
- 1.17.3
diff --git a/appium/Makefile b/appium/Makefile
deleted file mode 100644
index 25ad620881..0000000000
--- a/appium/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-create-test-bundle:
- rm test_bundle.zip | true
- zip -r test_bundle.zip tests/test_ios.py wheelhouse/ requirements.txt conftest.py
-
-create-android-test-bundle:
- rm test_bundle.zip | true
- zip -r test_bundle.zip tests/test_android.py wheelhouse/ requirements.txt conftest.py
-
-new-demo-project:
- cd ../examples/react-native; make clean-project
-
-copy-local-files-to-example:
- rm -rf example/node_modules/react-native-sentry/lib/*
- find example/node_modules/react-native-sentry/ios -name 'RN*.[h|m]' -exec rm {} \;
- rm -rf example/node_modules/react-native-sentry/ios/Sentry/Sources/Sentry/*
- rm -rf example/node_modules/react-native-sentry/android/*
- rm -rf example/node_modules/react-native-sentry/scripts/*
- rm -rf example/node_modules/react-native-sentry/sentry.gradle
- cp -r ../lib/* example/node_modules/react-native-sentry/lib/
- cp ../sentry.gradle example/node_modules/react-native-sentry/sentry.gradle
- cp -r ../scripts/* example/node_modules/react-native-sentry/scripts/
- find ../ios -name 'RN*.[h|m]' -exec cp {} example/node_modules/react-native-sentry/ios/ \;
- cp -r ../android/* example/node_modules/react-native-sentry/android/
- cp -r ../ios/Sentry/Sources/Sentry/* example/node_modules/react-native-sentry/ios/Sentry/Sources/Sentry/
- rm -rf example/node_modules/react-native-sentry/ios/Sentry/Sentry.xcodeproj
- cp -r ../ios/Sentry/Sentry.xcodeproj example/node_modules/react-native-sentry/ios/Sentry/Sentry.xcodeproj
-
-install: new-demo-project copy-local-files-to-example
-
-test: create-test-bundle install
- fastlane build_for_device_farm
- fastlane aws_ios_upload_and_run
- ruby check_run_failues.rb
-
-test-android: create-android-test-bundle install
- fastlane build_android_for_device_farm
- fastlane aws_android_upload_and_run
- ANDROID=1 ruby check_run_failues.rb
-
-local-android-test: create-android-test-bundle install
- fastlane build_android_for_device_farm
- ANDROID=1 pytest -vv tests/test_android.py
-
-local-test: create-test-bundle install
- fastlane build_for_local_appium
- pytest -vv tests/test_ios.py
diff --git a/appium/check_run_failues.rb b/appium/check_run_failues.rb
deleted file mode 100644
index d3d43115a5..0000000000
--- a/appium/check_run_failues.rb
+++ /dev/null
@@ -1,73 +0,0 @@
-require 'aws-sdk'
-require 'open-uri'
-
-arn = File.read('./fastlane/.aws.run.arn')
-arn.strip!
-
-@client = ::Aws::DeviceFarm::Client.new
-
-@problems = @client.list_unique_problems({
- arn: arn
-})
-
-
-def android_check
- @problems.unique_problems.each do |up|
- raise RuntimeError, "No failed tests: #{up.inspect}" unless up.length == 2
- up[1].each do |p|
- if p.problems[0].test.name == 'test_throw_error'
- artifacts = @client.list_artifacts({
- type: "FILE",
- arn: p.problems[0].test.arn
- })
- artifacts.artifacts.each do |a|
- if a.name == 'Logcat'
- content = open(a.url).read
- raise RuntimeError, "Missing value raven: #{p.inspect}" unless content.scan(/Raven about to send:/).size == 1
- raise RuntimeError, "Missing value: #{p.inspect}" unless content.scan(/value: 'Sentry: Test throw error'/).size == 1
- end
- end
- end
- if p.problems[0].test.name == 'test_native_crash'
- artifacts = @client.list_artifacts({
- type: "FILE",
- arn: p.problems[0].test.arn
- })
- artifacts.artifacts.each do |a|
- if a.name == 'Logcat'
- content = open(a.url).read
- raise RuntimeError, "Missing native crash: #{p.inspect}" unless content.scan(/java.lang.RuntimeException: TEST - Sentry Client Crash/).size == 1
- end
- end
- end
- end
- end
-end
-
-def ios_check
- @problems.unique_problems.each do |up|
- raise RuntimeError, "No failed tests: #{up.inspect}" unless up.length == 2
- up[1].each do |p|
- if p.problems[0].test.name == 'test_throw_error' || p.problems[0].test.name == 'test_native_crash'
- artifacts = @client.list_artifacts({
- type: "FILE",
- arn: p.problems[0].test.arn
- })
- artifacts.artifacts.each do |a|
- if a.name == 'Syslog'
- content = open(a.url).read
- raise RuntimeError, "test_throw_error Sentry should start twice: #{p.inspect}" unless content.scan(/Sentry Started -- Version/).size == 2
- raise RuntimeError, "test_throw_error No JSON SENT: #{p.inspect}" unless content.scan(/Sentry - Debug:: Request status: 200/).size == 1
- end
- end
- end
- end
- end
-end
-
-
-if ENV['ANDROID'] == '1'
- android_check
-else
- ios_check
-end
diff --git a/appium/conftest.py b/appium/conftest.py
deleted file mode 100644
index 8d96602724..0000000000
--- a/appium/conftest.py
+++ /dev/null
@@ -1,96 +0,0 @@
-import os
-import sys
-import pytest
-import traceback
-
-from appium import webdriver
-
-DEBUG_DRIVER = os.environ.get('DEBUG_DRIVER') == '1'
-
-
-def hook_driver(driver):
- real_execute = driver.command_executor.execute
- def execute_proxy(*args, **kwargs):
- print 'calling remote', args, kwargs
- traceback.print_stack(file=sys.stdout, limit=4)
- return real_execute(*args, **kwargs)
- driver.command_executor.execute = execute_proxy
-
-
-class DriverProxy(object):
-
- def __init__(self, make_driver):
- self._make_driver = make_driver
- self._driver = None
-
- def quit(self):
- if self._driver is None:
- return
-
- # this fails but actually succeeds
- try:
- self._driver.quit()
- except Exception:
- pass
- self._driver = None
-
- def relaunch_app(self):
- #self.quit() if we quit here, we loose connection to the app
-
- # this fails but actually succeeds
- try:
- self.launch_app()
- except Exception:
- pass
-
- def _get_driver(self):
- if self._driver is None:
- self._driver = self._make_driver()
- if DEBUG_DRIVER:
- hook_driver(self._driver)
- return self._driver
-
- def __getattr__(self, name):
- return getattr(self._get_driver(), name)
-
-
-@pytest.fixture(scope='function')
-def driver(request):
- def make_driver():
- return webdriver.Remote(
- command_executor='http://127.0.0.1:4723/wd/hub',
- desired_capabilities=default_capabilities())
-
- driver = DriverProxy(make_driver)
- request.addfinalizer(driver.quit)
-
- return driver
-
-
-@pytest.fixture(scope='function')
-def on_aws():
- return runs_on_aws()
-
-
-def runs_on_aws():
- return os.getenv('SCREENSHOT_PATH', False)
-
-
-def default_capabilities():
- desired_caps = {}
-
- desired_caps['noReset'] = True
- desired_caps['showIOSLog'] = True
- if not runs_on_aws():
- if os.environ.get('ANDROID') == '1':
- desired_caps['app'] = os.path.abspath('example/android/app/build/outputs/apk/app-full-release-unsigned.apk')
- desired_caps['platformName'] = 'Android'
- desired_caps['deviceName'] = 'Android'
- else:
- desired_caps['app'] = os.path.abspath('aws/Build/Products/Release-iphonesimulator/AwesomeProject.app')
- desired_caps['platformName'] = 'iOS'
- desired_caps['platformVersion'] = '11.0'
- desired_caps['deviceName'] = 'iPhone Simulator'
-
-
- return desired_caps
diff --git a/appium/example b/appium/example
deleted file mode 120000
index 425f3b5787..0000000000
--- a/appium/example
+++ /dev/null
@@ -1 +0,0 @@
-../examples/react-native/AwesomeProject
\ No newline at end of file
diff --git a/appium/fastlane/Appfile b/appium/fastlane/Appfile
deleted file mode 100644
index f372081824..0000000000
--- a/appium/fastlane/Appfile
+++ /dev/null
@@ -1,7 +0,0 @@
-app_identifier "org.reactjs.native.example.AwesomeProject" # The bundle identifier of your app
-apple_id "" # Your Apple email address
-
-team_id "" # Developer Portal Team ID
-
-# you can even provide different app identifiers, Apple IDs and team names per lane:
-# More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md
diff --git a/appium/fastlane/Fastfile b/appium/fastlane/Fastfile
deleted file mode 100644
index 0dfaf57a43..0000000000
--- a/appium/fastlane/Fastfile
+++ /dev/null
@@ -1,105 +0,0 @@
-fastlane_version "2.48.0"
-opt_out_crash_reporting
-
-default_platform :ios
-
-def validate_android_build_output(output)
- UI.user_error!("1 Missing output in log") unless output.scan(/POST \/api\/0\/projects\/sentry-test\/react-native\/releases\/com.awesomeproject.full-1.0-full\/files\//).size >= 1
- UI.user_error!("2 Missing output in log") unless output.scan(/POST \/api\/0\/projects\/sentry-test\/react-native\/releases\/com.awesomeproject.demo-1.0-demo\/files\//).size >= 1
- UI.user_error!("3 Missing output in log") unless output.scan(/"dist": "4", "name": "~\/index.android.bundle"/).size >= 1
- UI.user_error!("4 Missing output in log") unless output.scan(/"dist": "3", "name": "~\/index.android.bundle"/).size >= 1
- UI.user_error!("5 Missing output in log") unless output.scan(/"dist": "4", "name": "~\/index.android.bundle.map"/).size >= 1
- UI.user_error!("6 Missing output in log") unless output.scan(/"dist": "3", "name": "~\/index.android.bundle.map"/).size >= 1
- UI.success("Android build output validated")
-end
-
-platform :ios do
- before_all do
- # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
-
- end
-
- lane :build_for_local_appium do
- xcodebuild(
- scheme: "AwesomeProject",
- project: "example/ios/AwesomeProject.xcodeproj",
- destination: "generic/platform=iOS Simulator",
- configuration: "Release",
- derivedDataPath: "aws",
- xcargs: "GCC_PREPROCESSOR_DEFINITIONS='AWS_UI_TEST' ENABLE_BITCODE=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO build-for-testing"
- )
- end
-
- lane :build_for_device_farm do
- xcodebuild(
- scheme: "AwesomeProject",
- project: "example/ios/AwesomeProject.xcodeproj",
- destination: "generic/platform=iOS",
- configuration: "Release",
- derivedDataPath: "aws",
- xcargs: "GCC_PREPROCESSOR_DEFINITIONS='AWS_UI_TEST' ENABLE_BITCODE=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO build-for-testing"
- )
- end
-
- lane :aws_ios_upload_and_run do
- # ENV['AWS_ACCESS_KEY_ID'] = ''
- # ENV['AWS_SECRET_ACCESS_KEY'] = ''
- # ENV['AWS_REGION'] = 'us-west-2'
-
- # Transform .app into AWS compatible IPA
- aws_device_farm_package(
- derrived_data_path: "aws",
- configuration: "Release"
- )
-
- # RUN tests on AWS Device Farm
- aws_device_farm(
- name: "react-native",
- test_binary_path: "test_bundle.zip",
- test_package_type: "APPIUM_PYTHON_TEST_PACKAGE",
- test_type: 'APPIUM_PYTHON',
- allow_failed_tests: true
- )
-
- store_run_arn
- end
-
- lane :build_android_for_device_farm do
- android_build_output = sh("cd ../example/android/; ./gradlew assembleRelease --stacktrace")
- validate_android_build_output(android_build_output)
- sh("jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore release.keystore -storepass 123456 ../example/android/app/build/outputs/apk/app-full-release-unsigned.apk release")
- end
-
- lane :aws_android_upload_and_run do
- aws_device_farm(
- name: "react-native",
- binary_path: "example/android/app/build/outputs/apk/app-full-release-unsigned.apk",
- device_pool: "Android",
- test_binary_path: "test_bundle.zip",
- test_package_type: "APPIUM_PYTHON_TEST_PACKAGE",
- test_type: 'APPIUM_PYTHON',
- allow_failed_tests: true
- )
-
- store_run_arn
- end
-
- lane :store_run_arn do
- sh("echo #{ENV['AWS_DEVICE_FARM_RUN_ARN']} > .aws.run.arn")
- end
-
- after_all do |lane|
- # This block is called, only if the executed lane was successful
-
- # slack(
- # message: "Successfully deployed new App Update."
- # )
- end
-
- error do |lane, exception|
- # slack(
- # message: exception.message,
- # success: false
- # )
- end
-end
diff --git a/appium/fastlane/Pluginfile b/appium/fastlane/Pluginfile
deleted file mode 100644
index 49dd54635b..0000000000
--- a/appium/fastlane/Pluginfile
+++ /dev/null
@@ -1,5 +0,0 @@
-# Autogenerated by fastlane
-#
-# Ensure this file is checked in to source control!
-
-gem 'fastlane-plugin-aws_device_farm', :git => 'git://github.com/HazAT/fastlane-plugin-aws_device_farm.git'
diff --git a/appium/fastlane/release.keystore b/appium/fastlane/release.keystore
deleted file mode 100644
index e7dd22b219..0000000000
Binary files a/appium/fastlane/release.keystore and /dev/null differ
diff --git a/appium/requirements.txt b/appium/requirements.txt
deleted file mode 100644
index deb6f90c92..0000000000
--- a/appium/requirements.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Appium-Python-Client==0.24
-pbr==3.1.1
-py==1.4.34
-pytest==3.1.3
-selenium==3.4.3
-six==1.10.0
-stevedore==1.24.0
-virtualenv==15.1.0
-virtualenv-clone==0.2.6
-virtualenvwrapper==4.7.2
diff --git a/appium/tests/test_android.py b/appium/tests/test_android.py
deleted file mode 100644
index 6f66782600..0000000000
--- a/appium/tests/test_android.py
+++ /dev/null
@@ -1,82 +0,0 @@
-import os
-import json
-
-from time import sleep
-
-
-def extractText(driver):
- return driver.find_elements_by_xpath('//android.widget.EditText')[0].text
-
-def wait(driver, duration):
- sleep(duration)
- driver.implicitly_wait(duration * 1000)
-
-def test_send_message(driver):
- wait(driver, 3)
- driver.find_element_by_accessibility_id('send message').click()
- wait(driver, 3)
- value = extractText(driver)
-
- assert value != None
- event = json.loads(value)
-
- assert event['event_id'] != None
- assert event['level'] == 'warning'
- assert event['message'] == 'TEST message'
- assert event['extra']['react']
- assert event['tags']['react']
-
-# def test_throw_error(driver):
-# driver.implicitly_wait(5000)
-# driver.find_element_by_accessibility_id('throw error').click()
-# driver.relaunch_app()
-# value = extractText(driver)
-# driver.implicitly_wait(5000)
-# # the crash should have been already sent
-# assert value is None
-
-# def test_native_crash(driver):
-# driver.implicitly_wait(5000)
-# driver.find_element_by_accessibility_id('native crash').click()
-# driver.relaunch_app()
-# wait(5)
-# driver.implicitly_wait(5000)
-# value = extractText(driver)
-
-# assert value != None
-# event = json.loads(value)
-
-# assert event['event_id'] != None
-# assert event['level'] == 'fatal'
-
-def test_version(driver):
- wait(driver, 3)
- driver.find_element_by_accessibility_id('set version').click()
- driver.find_element_by_accessibility_id('send message').click()
- wait(driver, 3)
- value = extractText(driver)
- assert value != None
- event = json.loads(value)
- assert event['release'] == 'com.awesomeproject.full-1337'
-
-
-def test_release(driver):
- wait(driver, 3)
- driver.find_element_by_accessibility_id('set release').click()
- driver.find_element_by_accessibility_id('send message').click()
- wait(driver, 3)
- value = extractText(driver)
- assert value != None
- event = json.loads(value)
- assert event['release'] == 'myversion'
-
-
-def test_dist(driver):
- wait(driver, 3)
- driver.find_element_by_accessibility_id('set dist').click()
- driver.find_element_by_accessibility_id('send message').click()
- wait(driver, 3)
- value = extractText(driver)
- assert value != None
- event = json.loads(value)
- assert event['dist'] == '500'
diff --git a/appium/tests/test_ios.py b/appium/tests/test_ios.py
deleted file mode 100644
index c2302b9d8e..0000000000
--- a/appium/tests/test_ios.py
+++ /dev/null
@@ -1,117 +0,0 @@
-import os
-import json
-
-from time import sleep
-
-
-def extractText(driver):
- return driver.find_elements_by_xpath('//XCUIElementTypeTextField[@name="status"]')[0].text
-
-
-def test_send_message(driver):
- driver.find_element_by_accessibility_id('send message').click()
- sleep(3)
- value = extractText(driver)
- assert value != None
- event = json.loads(value)
- assert len(event['breadcrumbs']) > 0
- assert len(event['contexts']) > 0
- assert event['message'] == 'TEST message'
- assert event['extra']['react']
- assert event['tags']['react'] == '1'
- assert event['sdk']['integrations'][0] == 'sentry-cocoa'
- assert event['sdk']['name'] == 'sentry-react-native'
- assert len(event['user']) > 0
-
-
-def test_version(driver):
- driver.find_element_by_accessibility_id('set version').click()
- driver.find_element_by_accessibility_id('send message').click()
- sleep(3)
- value = extractText(driver)
- assert value != None
- event = json.loads(value)
- assert event['release'] == 'org.reactjs.native.example.AwesomeProject-1337'
-
-
-def test_release(driver):
- driver.find_element_by_accessibility_id('set release').click()
- driver.find_element_by_accessibility_id('send message').click()
- sleep(3)
- value = extractText(driver)
- assert value != None
- event = json.loads(value)
- assert event['release'] == 'myversion'
-
-
-def test_dist(driver):
- driver.find_element_by_accessibility_id('set dist').click()
- driver.find_element_by_accessibility_id('send message').click()
- sleep(3)
- value = extractText(driver)
- assert value != None
- event = json.loads(value)
- assert event['dist'] == '500'
-
-
-def test_throw_error(driver):
- driver.find_element_by_accessibility_id('throw error').click()
- driver.relaunch_app()
- sleep(3)
- value = extractText(driver)
- assert value != None
- event = json.loads(value)
-
- assert len(event['breadcrumbs']) > 0
- assert len(event['contexts']) > 0
- for thread in event['exception']['values']:
- assert len(thread['stacktrace']['frames']) > 0
- cocoa_frames = 0
- js_frames = 0
- for frame in thread['stacktrace']['frames']:
- if frame.get('package', None):
- cocoa_frames += 1
- if frame.get('platform', None) == 'javascript':
- js_frames += 1
- assert js_frames > 0
- assert len(event['exception']['values']) > 0
- assert event['exception']['values'][0]['value'] == "Sentry: Test throw error"
- assert event['exception']['values'][0]['type'] == "Error"
- assert event['platform'] == 'cocoa'
- assert event['level'] == 'fatal'
- assert event['extra']['react']
- assert event['tags']['react'] == '1'
- assert len(event['user']) > 0
-
-def test_native_crash(driver):
- sleep(2)
- driver.find_element_by_accessibility_id('native crash').click()
- driver.relaunch_app()
- sleep(3)
- value = extractText(driver)
- # the crash should have been already sent
- assert value != None
- event = json.loads(value)
-
- assert len(event['breadcrumbs']) > 0
- assert len(event['contexts']) > 0
- assert len(event['threads']['values']) > 0
- for thread in event['exception']['values']:
- assert len(thread['stacktrace']['frames']) > 0
- cocoa_frames = 0
- js_frames = 0
- for frame in thread['stacktrace']['frames']:
- if frame.get('package', None):
- cocoa_frames += 1
- if frame.get('platform', None) == 'javascript':
- js_frames += 1
- assert cocoa_frames > 0
- assert js_frames > 0
- assert len(event['exception']['values']) > 0
- assert len(event['debug_meta']['images']) > 0
- assert event['exception']['values'][0]['value'] != None
- assert event['platform'] == 'cocoa'
- assert event['level'] == 'fatal'
- assert event['extra']['react']
- assert event['tags']['react'] == '1'
- assert len(event['user']) > 0
diff --git a/examples b/examples
deleted file mode 160000
index 4ce1e6fd44..0000000000
--- a/examples
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 4ce1e6fd44586ce3a173bc0d8ff110c7fbc57951
diff --git a/ios/RNSentry.m b/ios/RNSentry.m
index ec11635ab5..16d144246c 100644
--- a/ios/RNSentry.m
+++ b/ios/RNSentry.m
@@ -129,14 +129,4 @@ + (BOOL)requiresMainQueueSetup {
[SentryClient.sharedClient crash];
}
-RCT_EXPORT_METHOD(extraUpdated:(NSDictionary * _Nonnull)extra)
-{
- if (nil != [extra objectForKey:@"__sentry_release"]) {
- SentryClient.sharedClient.releaseName = [extra objectForKey:@"__sentry_release"];
- }
- if (nil != [extra objectForKey:@"__sentry_dist"]) {
- SentryClient.sharedClient.dist = [extra objectForKey:@"__sentry_dist"];
- }
-}
-
@end
diff --git a/package.json b/package.json
index 821abaeec6..eb49fbc18d 100644
--- a/package.json
+++ b/package.json
@@ -34,22 +34,22 @@
"react-native": ">=0.56.0"
},
"dependencies": {
- "@sentry/browser": "^5.11.1",
- "@sentry/core": "^5.11.1",
- "@sentry/integrations": "^5.11.1",
- "@sentry/types": "^5.11.0",
- "@sentry/utils": "^5.11.1",
- "@sentry/wizard": "^1.0.2"
+ "@sentry/browser": "^5.12.1",
+ "@sentry/core": "^5.12.0",
+ "@sentry/integrations": "^5.12.0",
+ "@sentry/types": "^5.12.0",
+ "@sentry/utils": "^5.12.0",
+ "@sentry/wizard": "^1.1.0"
},
"devDependencies": {
"@sentry/typescript": "5.10.0",
- "@types/jest": "^24.0.25",
- "@types/react-native": "^0.60.23",
+ "@types/jest": "^25.1.2",
+ "@types/react-native": "^0.61.12",
"jest": "^24.9.0",
"prettier": "^1.19.1",
"replace-in-file": "^4.2.0",
"rimraf": "^3.0.0",
- "snyk": "^1.256.0",
+ "snyk": "^1.290.2",
"ts-jest": "^24.3.0",
"tslint": "^5.20.1",
"typescript": "^3.4.5"
diff --git a/sentry.gradle b/sentry.gradle
index 3d3602ea84..a0c8c1bbcb 100644
--- a/sentry.gradle
+++ b/sentry.gradle
@@ -156,10 +156,10 @@ def extractReleasesInfo() {
def releases = [:]
android.applicationVariants.each { variant ->
- def releaseName = "${variant.getApplicationId()}-${variant.getVersionName()}"
variant.outputs.each { output ->
def versionCode = output.getVersionCode()
+ def releaseName = "${variant.getApplicationId()}@${variant.getVersionName()}+${versionCode}"
def variantName = variant.getName()
def outputName = output.getName()
if (releases[variantName] == null) {
diff --git a/src/js/backend.ts b/src/js/backend.ts
index 46c44f02e8..f1ba469f62 100644
--- a/src/js/backend.ts
+++ b/src/js/backend.ts
@@ -1,6 +1,6 @@
import { BrowserOptions, Transports } from "@sentry/browser";
import { BrowserBackend } from "@sentry/browser/dist/backend";
-import { BaseBackend, getCurrentHub, NoopTransport } from "@sentry/core";
+import { BaseBackend, NoopTransport } from "@sentry/core";
import { Event, EventHint, Severity, Transport } from "@sentry/types";
import { Alert, NativeModules, YellowBox } from "react-native";
@@ -55,13 +55,6 @@ export class ReactNativeBackend extends BaseBackend {
RNSentry.startWithDsnString(_options.dsn, _options).then(() => {
RNSentry.setLogLevel(_options.debug ? 2 : 1);
});
- // Workaround for setting release/dist on native
- const scope = getCurrentHub().getScope();
- if (scope) {
- scope.addScopeListener(internalScope =>
- RNSentry.extraUpdated((internalScope as any)._extra)
- );
- }
} else {
if (__DEV__ && _options.enableNativeNagger) {
Alert.alert(
diff --git a/src/js/integrations/release.ts b/src/js/integrations/release.ts
index f59d6d0cd5..aa299e36e5 100644
--- a/src/js/integrations/release.ts
+++ b/src/js/integrations/release.ts
@@ -33,7 +33,7 @@ export class Release implements Integration {
version: string;
};
if (release) {
- event.release = `${release.id}-${release.version}`;
+ event.release = `${release.id}@${release.version}+${release.build}`;
event.dist = `${release.build}`;
}
} catch (_Oo) {
diff --git a/src/js/sdk.ts b/src/js/sdk.ts
index fe8308df74..c01d38135c 100644
--- a/src/js/sdk.ts
+++ b/src/js/sdk.ts
@@ -6,6 +6,8 @@ import {
import { initAndBind, setExtra } from "@sentry/core";
import { RewriteFrames } from "@sentry/integrations";
import { StackFrame } from "@sentry/types";
+import { getGlobalObject } from "@sentry/utils";
+// import { NativeModules } from "react-native";
import { ReactNativeOptions } from "./backend";
import { ReactNativeClient } from "./client";
@@ -16,6 +18,8 @@ import {
Release
} from "./integrations";
+// const { RNSentry } = NativeModules;
+
const IGNORED_DEFAULT_INTEGRATIONS = [
"GlobalHandlers", // We will use the react-native internal handlers
"Breadcrumbs", // We add it later, just not patching fetch
@@ -39,10 +43,7 @@ export function init(
...defaultIntegrations.filter(
i => !IGNORED_DEFAULT_INTEGRATIONS.includes(i.name)
),
- new Integrations.Breadcrumbs({
- console: false, // If this in enabled it causes problems to native calls on >= RN 0.60
- fetch: false
- })
+ new Integrations.Breadcrumbs()
];
if (__DEV__) {
options.defaultIntegrations.push(new DebugSymbolicator());
@@ -56,6 +57,10 @@ export function init(
.replace(/^address at /, "")
.replace(/^.*\/[^\.]+(\.app|CodePush|.*(?=\/))/, "");
+ if (frame.filename === "native") {
+ frame.in_app = false;
+ }
+
const appPrefix = "app://";
// We always want to have a tripple slash
frame.filename =
@@ -80,6 +85,21 @@ export function init(
}
// tslint:enable: strict-comparisons
initAndBind(ReactNativeClient, options);
+
+ // TODO: Regist scope syncing here
+ // Workaround for setting release/dist on native
+ // const scope = getCurrentHub().getScope();
+ // if (scope) {
+ // scope.addScopeListener(internalScope => {
+ // console.log(internalScope);
+ // // RNSentry.extraUpdated((internalScope as any)._extra)
+ // });
+ // }
+
+ // tslint:disable-next-line: no-unsafe-any
+ if (getGlobalObject().HermesInternal) {
+ getCurrentHub().setTag("hermes", "true");
+ }
}
/**
diff --git a/src/js/transports/native.ts b/src/js/transports/native.ts
index 2adf81db03..18999df9ba 100644
--- a/src/js/transports/native.ts
+++ b/src/js/transports/native.ts
@@ -1,5 +1,5 @@
import { Event, Response, Transport } from "@sentry/types";
-import { PromiseBuffer } from "@sentry/utils";
+import { PromiseBuffer, SentryError } from "@sentry/utils";
import { NATIVE } from "../wrapper";
@@ -12,7 +12,11 @@ export class NativeTransport implements Transport {
* @inheritDoc
*/
public sendEvent(event: Event): PromiseLike {
- // TODO check if buffer is full like in node
+ if (!this._buffer.isReady()) {
+ return Promise.reject(
+ new SentryError("Not adding Promise due to buffer limit reached.")
+ );
+ }
return this._buffer.add(NATIVE.sendEvent(event));
}
diff --git a/src/js/wrapper.ts b/src/js/wrapper.ts
index b97916b8ad..b65a432ccf 100644
--- a/src/js/wrapper.ts
+++ b/src/js/wrapper.ts
@@ -1,5 +1,5 @@
import { Event, Response } from "@sentry/types";
-import { NativeModules } from "react-native";
+import { NativeModules, Platform } from "react-native";
const { RNSentry } = NativeModules;
@@ -12,7 +12,25 @@ export const NATIVE = {
* @param event Event
*/
sendEvent(event: Event): PromiseLike {
+ if (NATIVE.platform === "android") {
+ const header = JSON.stringify({ event_id: event.event_id });
+
+ (event as any).message = {
+ message: event.message
+ };
+ const payload = JSON.stringify(event);
+ const item = JSON.stringify({
+ content_type: "application/json",
+ length: payload.length,
+ type: "event"
+ });
+ const envelope = `${header}\n${item}\n${payload}`;
+ // tslint:disable-next-line: no-unsafe-any
+ return RNSentry.captureEnvelope(envelope);
+ }
// tslint:disable-next-line: no-unsafe-any
return RNSentry.sendEvent(event);
- }
+ },
+
+ platform: Platform.OS
};
diff --git a/yarn.lock b/yarn.lock
index 7fece049e9..c15a0edf6b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -305,70 +305,80 @@
"@types/istanbul-reports" "^1.1.1"
"@types/yargs" "^13.0.0"
-"@sentry/browser@^5.11.1":
- version "5.11.1"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.11.1.tgz#337ffcb52711b23064c847a07629e966f54a5ebb"
- integrity sha512-oqOX/otmuP92DEGRyZeBuQokXdeT9HQRxH73oqIURXXNLMP3PWJALSb4HtT4AftEt/2ROGobZLuA4TaID6My/Q==
- dependencies:
- "@sentry/core" "5.11.1"
- "@sentry/types" "5.11.0"
- "@sentry/utils" "5.11.1"
+"@jest/types@^25.1.0":
+ version "25.1.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.1.0.tgz#b26831916f0d7c381e11dbb5e103a72aed1b4395"
+ integrity sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^1.1.1"
+ "@types/yargs" "^15.0.0"
+ chalk "^3.0.0"
+
+"@sentry/browser@^5.12.1":
+ version "5.12.1"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.12.1.tgz#dc1f268595269fb7277f55eb625c7e92d76dc01b"
+ integrity sha512-Zl7VdppUxctyaoqMSEhnDJp2rrupx8n8N2n3PSooH74yhB2Z91nt84mouczprBsw3JU1iggGyUw9seRFzDI1hw==
+ dependencies:
+ "@sentry/core" "5.12.0"
+ "@sentry/types" "5.12.0"
+ "@sentry/utils" "5.12.0"
tslib "^1.9.3"
-"@sentry/cli@^1.48.0":
- version "1.49.0"
- resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.49.0.tgz#174152978acbe6023986a8fb0b247cf58b4653d8"
- integrity sha512-Augz7c42Cxz/xWQ/NOVjUGePKVA370quvskWbCICMUwxcTvKnCLI+7KDdzEoCexj4MSuxFfBzLnrrn4w2+c9TQ==
+"@sentry/cli@^1.50.0":
+ version "1.50.0"
+ resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.50.0.tgz#724e47be46abd4ba14359d2b7f49372adf4f407c"
+ integrity sha512-2E2O09subNt+S8LkDRk19keS+1ww/VT3BdfTdqwNC5+Aq09Ee0y4MbuurZRHk0J1DD8fVSJA6V7Sq04PSaHSQA==
dependencies:
fs-copy-file-sync "^1.1.1"
- https-proxy-agent "^3.0.0"
+ https-proxy-agent "^4.0.0"
mkdirp "^0.5.1"
node-fetch "^2.1.2"
progress "2.0.0"
proxy-from-env "^1.0.0"
-"@sentry/core@5.11.1", "@sentry/core@^5.11.1":
- version "5.11.1"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.11.1.tgz#9e2da485e196ae32971545c1c49ee6fe719930e2"
- integrity sha512-BpvPosVNT20Xso4gAV54Lu3KqDmD20vO63HYwbNdST5LUi8oYV4JhvOkoBraPEM2cbBwQvwVcFdeEYKk4tin9A==
+"@sentry/core@5.12.0", "@sentry/core@^5.12.0":
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.12.0.tgz#d6380c4ef7beee5f418ac1d0e5be86a2de2af449"
+ integrity sha512-wY4rsoX71QsGpcs9tF+OxKgDPKzIFMRvFiSRcJoPMfhFsTilQ/CBMn/c3bDtWQd9Bnr/ReQIL6NbnIjUsPHA4Q==
dependencies:
- "@sentry/hub" "5.11.1"
- "@sentry/minimal" "5.11.1"
- "@sentry/types" "5.11.0"
- "@sentry/utils" "5.11.1"
+ "@sentry/hub" "5.12.0"
+ "@sentry/minimal" "5.12.0"
+ "@sentry/types" "5.12.0"
+ "@sentry/utils" "5.12.0"
tslib "^1.9.3"
-"@sentry/hub@5.11.1":
- version "5.11.1"
- resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.11.1.tgz#ddcb865563fae53852d405885c46b4c6de68a91b"
- integrity sha512-ucKprYCbGGLLjVz4hWUqHN9KH0WKUkGf5ZYfD8LUhksuobRkYVyig0ZGbshECZxW5jcDTzip4Q9Qimq/PkkXBg==
+"@sentry/hub@5.12.0":
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.12.0.tgz#5e8c8f249f5bdbeb8cc4ec02c2ccc53a67f2cc02"
+ integrity sha512-3k7yE8BEVJsKx8mR4LcI4IN0O8pngmq44OcJ/fRUUBAPqsT38jsJdP2CaWhdlM1jiNUzUDB1ktBv6/lY+VgcoQ==
dependencies:
- "@sentry/types" "5.11.0"
- "@sentry/utils" "5.11.1"
+ "@sentry/types" "5.12.0"
+ "@sentry/utils" "5.12.0"
tslib "^1.9.3"
-"@sentry/integrations@^5.11.1":
- version "5.11.1"
- resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-5.11.1.tgz#6612efc620c187ba85a57c6e70e69d9474af7fb6"
- integrity sha512-zubOE9zQ4qSutS0ZTnAteDnzbVcHSI2bXD/0nTD3t3ljY+OWgcluBXYCAeAp8vOv2qCoef5ySdQa1DBCW7NQ3Q==
+"@sentry/integrations@^5.12.0":
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-5.12.0.tgz#4d735abf2989049ef860e3eaad0883b63d8274e6"
+ integrity sha512-4G/TvCEP9M6xgY61r46UE4ruSgF42rZnvO0ZfIBI/240DNYMTpHLvjU3Xvrv3wDl3emCvy4QgAIceI/zj8nPjw==
dependencies:
- "@sentry/types" "5.11.0"
- "@sentry/utils" "5.11.1"
+ "@sentry/types" "5.12.0"
+ "@sentry/utils" "5.12.0"
tslib "^1.9.3"
-"@sentry/minimal@5.11.1":
- version "5.11.1"
- resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.11.1.tgz#0e705d01a567282d8fbbda2aed848b4974cc3cec"
- integrity sha512-HK8zs7Pgdq7DsbZQTThrhQPrJsVWzz7MaluAbQA0rTIAJ3TvHKQpsVRu17xDpjZXypqWcKCRsthDrC4LxDM1Bg==
+"@sentry/minimal@5.12.0":
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.12.0.tgz#2611e2aa520c1edb7999e6de51bd65ec66341757"
+ integrity sha512-fk73meyz4k4jCg9yzbma+WkggsfEIQWI2e2TWfYsRGcrV3RnlSrXyM4D91/A8Bjx10SNezHPUFHjasjlHXOkyA==
dependencies:
- "@sentry/hub" "5.11.1"
- "@sentry/types" "5.11.0"
+ "@sentry/hub" "5.12.0"
+ "@sentry/types" "5.12.0"
tslib "^1.9.3"
-"@sentry/types@5.11.0", "@sentry/types@^5.11.0":
- version "5.11.0"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.11.0.tgz#40f0f3174362928e033ddd9725d55e7c5cb7c5b6"
- integrity sha512-1Uhycpmeo1ZK2GLvrtwZhTwIodJHcyIS6bn+t4IMkN9MFoo6ktbAfhvexBDW/IDtdLlCGJbfm8nIZerxy0QUpg==
+"@sentry/types@5.12.0", "@sentry/types@^5.12.0":
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.12.0.tgz#5367e53c74261beea01502e3f7b6f3d822682a31"
+ integrity sha512-aZbBouBLrKB8wXlztriIagZNmsB+wegk1Jkl6eprqRW/w24Sl/47tiwH8c5S4jYTxdAiJk+SAR10AAuYmIN3zg==
"@sentry/typescript@5.10.0":
version "5.10.0"
@@ -378,20 +388,20 @@
tslint-config-prettier "^1.18.0"
tslint-consistent-codestyle "^1.15.1"
-"@sentry/utils@5.11.1", "@sentry/utils@^5.11.1":
- version "5.11.1"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.11.1.tgz#aa19fcc234cf632257b2281261651d2fac967607"
- integrity sha512-O0Zl4R2JJh8cTkQ8ZL2cDqGCmQdpA5VeXpuBbEl1v78LQPkBDISi35wH4mKmLwMsLBtTVpx2UeUHBj0KO5aLlA==
+"@sentry/utils@5.12.0", "@sentry/utils@^5.12.0":
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.12.0.tgz#62967f934a3ee6d21472eac0219084e37225933e"
+ integrity sha512-fYUadGLbfTCbs4OG5hKCOtv2jrNE4/8LHNABy9DwNJ/t5DVtGqWAZBnxsC+FG6a3nVqCpxjFI9AHlYsJ2wsf7Q==
dependencies:
- "@sentry/types" "5.11.0"
+ "@sentry/types" "5.12.0"
tslib "^1.9.3"
-"@sentry/wizard@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@sentry/wizard/-/wizard-1.0.2.tgz#346d1ecbeef7b765120ec8627053443456660f0d"
- integrity sha512-/mS9SWcgc8uqrOhiwyGqusGnWXf4hvIiYpUGJGw4vxL8gZ3k+UMSKaEw46p+ND1X8y2RRgFJh7h7q2dtXa8QvQ==
+"@sentry/wizard@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@sentry/wizard/-/wizard-1.1.0.tgz#e70636f8fbb916004ccb81ff441fbc6c48061f62"
+ integrity sha512-IBipl2ldDSwBYdiipBLNMfxjN7eC4H5yyVHeBFWeKIYw9voCdnvMW8TfYFlmKMZdXjW/vMS2Jak4qV5AcvAOkQ==
dependencies:
- "@sentry/cli" "^1.48.0"
+ "@sentry/cli" "^1.50.0"
chalk "^2.4.1"
glob "^7.1.3"
inquirer "^6.2.0"
@@ -423,6 +433,13 @@
dependencies:
tslib "^1.9.3"
+"@snyk/cli-interface@2.3.1":
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/@snyk/cli-interface/-/cli-interface-2.3.1.tgz#73f2f4bd717b9f03f096ede3ff5830eb8d2f3716"
+ integrity sha512-JZvsmhDXSyjv1dkc12lPI3tNTNYlIaOiIQMYFg2RgqF3QmWjTyBUgRZcF7LoKyufHtS4dIudM6k1aHBpSaDrhw==
+ dependencies:
+ tslib "^1.9.3"
+
"@snyk/cocoapods-lockfile-parser@3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.0.0.tgz#514b744cedd9d3d3efb2a5d06fce1662fec2ff1a"
@@ -443,6 +460,18 @@
dependencies:
lodash "^4.17.13"
+"@snyk/configstore@3.2.0-rc1", "@snyk/configstore@^3.2.0-rc1":
+ version "3.2.0-rc1"
+ resolved "https://registry.yarnpkg.com/@snyk/configstore/-/configstore-3.2.0-rc1.tgz#385c050d11926a26d0335a4b3be9e55f90f6e0ac"
+ integrity sha512-CV3QggFY8BY3u8PdSSlUGLibqbqCG1zJRmGM2DhnhcxQDRRPTGTP//l7vJphOVsUP1Oe23+UQsj7KRWpRUZiqg==
+ dependencies:
+ dot-prop "^5.2.0"
+ graceful-fs "^4.1.2"
+ make-dir "^1.0.0"
+ unique-string "^1.0.0"
+ write-file-atomic "^2.0.0"
+ xdg-basedir "^3.0.0"
+
"@snyk/dep-graph@1.13.1":
version "1.13.1"
resolved "https://registry.yarnpkg.com/@snyk/dep-graph/-/dep-graph-1.13.1.tgz#45721f7e21136b62d1cdd99b3319e717d9071dfb"
@@ -490,6 +519,22 @@
source-map-support "^0.5.7"
tslib "^1.9.3"
+"@snyk/update-notifier@^2.5.1-rc2":
+ version "2.5.1-rc2"
+ resolved "https://registry.yarnpkg.com/@snyk/update-notifier/-/update-notifier-2.5.1-rc2.tgz#14bf816114b5698a255289d7170157f254202fad"
+ integrity sha512-dlled3mfpnAt3cQb5hxkFiqfPCj4Yk0xV8Yl5P8PeVv1pUmO7vI4Ka4Mjs4r6CYM5f9kZhviFPQQcWOIDlMRcw==
+ dependencies:
+ "@snyk/configstore" "3.2.0-rc1"
+ boxen "^1.3.0"
+ chalk "^2.3.2"
+ import-lazy "^2.1.0"
+ is-ci "^1.0.10"
+ is-installed-globally "^0.1.0"
+ is-npm "^1.0.0"
+ latest-version "^3.1.0"
+ semver-diff "^2.0.0"
+ xdg-basedir "^3.0.0"
+
"@types/agent-base@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@types/agent-base/-/agent-base-4.2.0.tgz#00644e8b395b40e1bf50aaf1d22cabc1200d5051"
@@ -538,6 +583,11 @@
dependencies:
"@types/node" "*"
+"@types/color-name@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
+ integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
+
"@types/debug@^4.1.4":
version "4.1.4"
resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.4.tgz#56eec47706f0fd0b7c694eae2f3172e6b0b769da"
@@ -568,12 +618,13 @@
"@types/istanbul-lib-coverage" "*"
"@types/istanbul-lib-report" "*"
-"@types/jest@^24.0.25":
- version "24.0.25"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.25.tgz#2aba377824ce040114aa906ad2cac2c85351360f"
- integrity sha512-hnP1WpjN4KbGEK4dLayul6lgtys6FPz0UfxMeMQCv0M+sTnzN3ConfiO72jHgLxl119guHgI8gLqDOrRLsyp2g==
+"@types/jest@^25.1.2":
+ version "25.1.2"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.1.2.tgz#1c4c8770c27906c7d8def5d2033df9dbd39f60da"
+ integrity sha512-EsPIgEsonlXmYV7GzUqcvORsSS9Gqxw/OvkGwHfAdpjduNRxMlhsav0O5Kb0zijc/eXSO/uW6SJt9nwull8AUQ==
dependencies:
- jest-diff "^24.3.0"
+ jest-diff "^25.1.0"
+ pretty-format "^25.1.0"
"@types/js-yaml@^3.12.1":
version "3.12.1"
@@ -600,12 +651,11 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.1.tgz#f1a11e7babb0c3cad68100be381d1e064c68f1f6"
integrity sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==
-"@types/react-native@^0.60.23":
- version "0.60.23"
- resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.60.23.tgz#9270f91bbff822a1571feece56cd260f0a1b2831"
- integrity sha512-hLRCWKNni/e6KEXSNtexXCg0u7CnHla6G6yeZYTMOlyG/bLE41GeLxP4dXJw1hyDsXJYN00Wc3Apr2XQ2TW1LA==
+"@types/react-native@^0.61.12":
+ version "0.61.12"
+ resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.61.12.tgz#058c80f5aadb99b6cac1cf648e996b7795ca0fab"
+ integrity sha512-9Do0pTN9H3hnon0LUCTqIC5fCmFpKU5V8rJEH2iAAsCRm8+2Q7zPUMKuCaSRbO5zhXMW5oC8IE0nCfg1kqyXvw==
dependencies:
- "@types/prop-types" "*"
"@types/react" "*"
"@types/react@*":
@@ -654,6 +704,13 @@
dependencies:
"@types/yargs-parser" "*"
+"@types/yargs@^15.0.0":
+ version "15.0.3"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.3.tgz#41453a0bc7ab393e995d1f5451455638edbd2baf"
+ integrity sha512-XCMQRK6kfpNBixHLyHUsGmXrpEmFFxzMrcnSXFMziHd8CoNJo8l16FkHyQq4x+xbM7E2XL83/O78OD8u+iZTdQ==
+ dependencies:
+ "@types/yargs-parser" "*"
+
"@yarnpkg/lockfile@^1.0.2":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
@@ -699,6 +756,11 @@ agent-base@4, agent-base@^4.2.0, agent-base@^4.3.0:
dependencies:
es6-promisify "^5.0.0"
+agent-base@5:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
+ integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==
+
agent-base@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
@@ -745,6 +807,11 @@ 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-styles@^3.1.0, ansi-styles@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
@@ -757,6 +824,14 @@ ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
+ integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
+ dependencies:
+ "@types/color-name" "^1.1.1"
+ color-convert "^2.0.1"
+
ansicolors@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"
@@ -954,7 +1029,7 @@ bl@^3.0.0:
dependencies:
readable-stream "^3.0.1"
-boxen@^1.2.1:
+boxen@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==
@@ -1105,7 +1180,7 @@ chalk@^2.0.0:
escape-string-regexp "^1.0.5"
supports-color "^4.0.0"
-chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.2:
+chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -1122,6 +1197,14 @@ chalk@^2.4.1:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
chardet@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
@@ -1192,16 +1275,6 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
-clone-deep@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8"
- integrity sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=
- dependencies:
- for-own "^1.0.0"
- is-plain-object "^2.0.1"
- kind-of "^3.2.2"
- shallow-clone "^0.1.2"
-
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -1225,10 +1298,22 @@ color-convert@^1.9.0:
dependencies:
color-name "^1.1.1"
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
color-name@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -1255,18 +1340,6 @@ concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-configstore@^3.0.0, configstore@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
- integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==
- dependencies:
- dot-prop "^4.1.0"
- graceful-fs "^4.1.2"
- make-dir "^1.0.0"
- unique-string "^1.0.0"
- write-file-atomic "^2.0.0"
- xdg-basedir "^3.0.0"
-
convert-source-map@^1.4.0, convert-source-map@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
@@ -1471,15 +1544,20 @@ diff-sequences@^24.9.0:
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
+diff-sequences@^25.1.0:
+ version "25.1.0"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.1.0.tgz#fd29a46f1c913fd66c22645dc75bffbe43051f32"
+ integrity sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw==
+
diff@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff"
integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==
-dockerfile-ast@0.0.16:
- version "0.0.16"
- resolved "https://registry.yarnpkg.com/dockerfile-ast/-/dockerfile-ast-0.0.16.tgz#10b329d343329dab1de70375833495f85ad65913"
- integrity sha512-+HZToHjjiLPl46TqBrok5dMrg5oCkZFPSROMQjRmvin0zG4FxK0DJXTpV/CUPYY2zpmEvVza55XLwSHFx/xZMw==
+dockerfile-ast@0.0.18:
+ version "0.0.18"
+ resolved "https://registry.yarnpkg.com/dockerfile-ast/-/dockerfile-ast-0.0.18.tgz#94a0ba84eb9b3e9fb7bd6beae0ea7eb6dcbca75a"
+ integrity sha512-SEp95qCox1KAzf8BBtjHoBDD0a7/eNlZJ6fgDf9RxqeSEDwLuEN9YjdZ/tRlkrYLxXR4i+kqZzS4eDRSqs8VKQ==
dependencies:
vscode-languageserver-types "^3.5.0"
@@ -1490,22 +1568,22 @@ domexception@^1.0.1:
dependencies:
webidl-conversions "^4.0.2"
-dot-prop@^4.1.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
- integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
+dot-prop@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
+ integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==
dependencies:
- is-obj "^1.0.0"
+ is-obj "^2.0.0"
-dotnet-deps-parser@4.5.2:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/dotnet-deps-parser/-/dotnet-deps-parser-4.5.2.tgz#f3223fa2b9d0d247c3e855d6b5a292904c2c8109"
- integrity sha512-bk5Q1luEwQ10rrBwZbtTxUNadaLz2dM6xzOLoTK+oUBcaq6saCeELmkIgdG+Fwkn58XRgLQvOySVS0gp4OG6RA==
+dotnet-deps-parser@4.9.0:
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/dotnet-deps-parser/-/dotnet-deps-parser-4.9.0.tgz#d14f9f92ae9a64062cd215c8863d1e77e80236f0"
+ integrity sha512-V0O+7pI7Ei+iL5Kgy6nYq1UTwzrpqci5K/zf8cXyP5RWBSQBUl/JOE9I67zLUkKiwOdfPhbMQgcRj/yGA+NL1A==
dependencies:
"@types/xml2js" "0.4.3"
lodash "^4.17.11"
source-map-support "^0.5.7"
- tslib "^1.9.3"
+ tslib "^1.10.0"
xml2js "0.4.19"
duplexer3@^0.1.4:
@@ -1636,6 +1714,13 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
+event-loop-spinner@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/event-loop-spinner/-/event-loop-spinner-1.1.0.tgz#96de9c70e6e2b0b3e257b0901e25e792e3c9c8d0"
+ integrity sha512-YVFs6dPpZIgH665kKckDktEVvSBccSYJmoZUfhNUdv5d3Xv+Q+SKF4Xis1jolq9aBzuW1ZZhQh/m/zU/TPdDhw==
+ dependencies:
+ tslib "^1.10.0"
+
exec-sh@^0.3.2:
version "0.3.4"
resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
@@ -1819,23 +1904,11 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
-for-in@^0.1.3:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
- integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=
-
-for-in@^1.0.1, for-in@^1.0.2:
+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=
-for-own@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
- integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=
- dependencies:
- for-in "^1.0.1"
-
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -2069,6 +2142,11 @@ has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+has-flag@^4.0.0:
+ version "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, has-symbols@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
@@ -2165,6 +2243,14 @@ https-proxy-agent@^3.0.0:
agent-base "^4.3.0"
debug "^3.1.0"
+https-proxy-agent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b"
+ integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==
+ dependencies:
+ agent-base "5"
+ debug "4"
+
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -2297,7 +2383,7 @@ is-arrayish@^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, is-buffer@^1.1.5:
+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==
@@ -2405,10 +2491,10 @@ is-number@^3.0.0:
dependencies:
kind-of "^3.0.2"
-is-obj@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
- integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
is-path-inside@^1.0.0:
version "1.0.1"
@@ -2417,7 +2503,7 @@ is-path-inside@^1.0.0:
dependencies:
path-is-inside "^1.0.1"
-is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+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==
@@ -2603,7 +2689,7 @@ jest-config@^24.9.0:
pretty-format "^24.9.0"
realpath-native "^1.1.0"
-jest-diff@^24.3.0, jest-diff@^24.9.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==
@@ -2613,6 +2699,16 @@ jest-diff@^24.3.0, jest-diff@^24.9.0:
jest-get-type "^24.9.0"
pretty-format "^24.9.0"
+jest-diff@^25.1.0:
+ version "25.1.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.1.0.tgz#58b827e63edea1bc80c1de952b80cec9ac50e1ad"
+ integrity sha512-nepXgajT+h017APJTreSieh4zCqnSHEJ1iT8HDlewu630lSJ4Kjjr9KNzm+kzGwwcpsDE6Snx1GJGzzsefaEHw==
+ dependencies:
+ chalk "^3.0.0"
+ diff-sequences "^25.1.0"
+ jest-get-type "^25.1.0"
+ pretty-format "^25.1.0"
+
jest-docblock@^24.3.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2"
@@ -2659,6 +2755,11 @@ jest-get-type@^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-get-type@^25.1.0:
+ version "25.1.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.1.0.tgz#1cfe5fc34f148dc3a8a3b7275f6b9ce9e2e8a876"
+ integrity sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==
+
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"
@@ -3008,14 +3109,7 @@ jszip@^3.1.5:
readable-stream "~2.3.6"
set-immediate-shim "~1.0.1"
-kind-of@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5"
- integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=
- dependencies:
- is-buffer "^1.0.2"
-
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0, kind-of@^3.2.2:
+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=
@@ -3044,18 +3138,13 @@ kleur@^3.0.3:
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-latest-version@^3.0.0:
+latest-version@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=
dependencies:
package-json "^4.0.0"
-lazy-cache@^0.2.3:
- version "0.2.7"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65"
- integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=
-
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
@@ -3324,14 +3413,6 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mixin-object@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
- integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=
- dependencies:
- for-in "^0.1.3"
- is-extendable "^0.1.1"
-
mkdirp@0.x, mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
@@ -3642,6 +3723,11 @@ p-locate@^3.0.0:
dependencies:
p-limit "^2.0.0"
+p-map@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+ integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+
p-reduce@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
@@ -3829,6 +3915,16 @@ pretty-format@^24.9.0:
ansi-styles "^3.2.0"
react-is "^16.8.4"
+pretty-format@^25.1.0:
+ version "25.1.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.1.0.tgz#ed869bdaec1356fc5ae45de045e2c8ec7b07b0c8"
+ integrity sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==
+ dependencies:
+ "@jest/types" "^25.1.0"
+ ansi-regex "^5.0.0"
+ ansi-styles "^4.0.0"
+ react-is "^16.12.0"
+
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"
@@ -3937,7 +4033,7 @@ rc@^1.0.1, rc@^1.1.6:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-is@^16.8.4:
+react-is@^16.12.0, react-is@^16.8.4:
version "16.12.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==
@@ -4305,16 +4401,6 @@ setprototypeof@1.1.1:
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
-shallow-clone@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060"
- integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=
- dependencies:
- is-extendable "^0.1.1"
- kind-of "^2.0.1"
- lazy-cache "^0.2.3"
- mixin-object "^2.0.1"
-
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -4397,13 +4483,14 @@ snyk-config@^2.2.1:
lodash "^4.17.11"
nconf "^0.10.0"
-snyk-docker-plugin@1.33.1:
- version "1.33.1"
- resolved "https://registry.yarnpkg.com/snyk-docker-plugin/-/snyk-docker-plugin-1.33.1.tgz#9fe0acf9964ed3bc49721163ed88de32b212ed05"
- integrity sha512-xfs3DN1tPMTh6J8x2341wGK4HRr+pI5+i/YRuRmsslnBnwk/DkKYcbt8zOIWk6kzMoW8vo+9LqqXBQO/24szKg==
+snyk-docker-plugin@1.38.0:
+ version "1.38.0"
+ resolved "https://registry.yarnpkg.com/snyk-docker-plugin/-/snyk-docker-plugin-1.38.0.tgz#afe0ac316e461b200bcd0063295a3f8bd3655e93"
+ integrity sha512-43HbJj6QatuL2BNG+Uq2Taa73wdfSQSID8FJWW4q5/LYgd9D+RtdiE4lAMwxqYYbvThU9uuza4epuF/B1CAlYw==
dependencies:
debug "^4.1.1"
- dockerfile-ast "0.0.16"
+ dockerfile-ast "0.0.18"
+ event-loop-spinner "^1.1.0"
semver "^6.1.0"
tar-stream "^2.1.0"
tslib "^1"
@@ -4427,15 +4514,14 @@ snyk-go-plugin@1.11.1:
tmp "0.0.33"
tslib "^1.10.0"
-snyk-gradle-plugin@3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/snyk-gradle-plugin/-/snyk-gradle-plugin-3.2.2.tgz#703484bec39390d8bd9ca89a408deb77fd63122a"
- integrity sha512-ijIWsypbtpdTuRcYTFsnEWbaBnhCc7q0iIg0A4OcOW/xLyInPwyfBMnip4ubNfHAS/PrvzgfwwwJhttcQD0ZaQ==
+snyk-gradle-plugin@3.2.4:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/snyk-gradle-plugin/-/snyk-gradle-plugin-3.2.4.tgz#c1ff1dfbbe3c1a254d0da54a91c3f59c1b5582ca"
+ integrity sha512-XmS1gl7uZNHP9HP5RaPuRXW3VjkbdWe+EgSOlvmspztkubIOIainqc87k7rIJ6u3tLBhqsZK8b5ru0/E9Q69hQ==
dependencies:
- "@snyk/cli-interface" "2.2.0"
+ "@snyk/cli-interface" "2.3.0"
"@types/debug" "^4.1.4"
chalk "^2.4.2"
- clone-deep "^0.3.0"
debug "^4.1.1"
tmp "0.0.33"
tslib "^1.9.3"
@@ -4448,37 +4534,38 @@ snyk-module@1.9.1, snyk-module@^1.6.0, snyk-module@^1.9.1:
debug "^3.1.0"
hosted-git-info "^2.7.1"
-snyk-mvn-plugin@2.7.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/snyk-mvn-plugin/-/snyk-mvn-plugin-2.7.0.tgz#39996df2a878b16a7e3cbe5b63a7c43855031d49"
- integrity sha512-DLBt+6ZvtoleXE7Si3wAa6gdPSWsXdIQEY6m2zW2InN9WiaRwIEKMCY822eFmRPZVNNmZNRUIeQsoHZwv/slqQ==
+snyk-mvn-plugin@2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/snyk-mvn-plugin/-/snyk-mvn-plugin-2.8.0.tgz#20c4201debd99928ade099fd426d13bd17b2cc85"
+ integrity sha512-Jt6lsVOFOYj7rp0H2IWz/BZS9xxaO0jEFTAoafLCocJIWWuGhPpVocCqmh/hrYAdKY9gS4gVOViMJ3EvcC1r1Q==
dependencies:
- "@snyk/cli-interface" "2.2.0"
+ "@snyk/cli-interface" "2.3.1"
debug "^4.1.1"
lodash "^4.17.15"
needle "^2.4.0"
tmp "^0.1.0"
tslib "1.9.3"
-snyk-nodejs-lockfile-parser@1.16.1:
- version "1.16.1"
- resolved "https://registry.yarnpkg.com/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.16.1.tgz#4a4b38b92dbb7e8935dcce61976a69a00b6747b6"
- integrity sha512-MEQImB2XU35D66wYve6g1RcDuD9vyoxGvYtM+ngSd5ItujzjIpyF26W7niqHwBRGLamqjsKF5cOlbmHs+wsx/Q==
+snyk-nodejs-lockfile-parser@1.17.0:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.17.0.tgz#709e1d8c83faccae3bfdac5c10620dcedbf8c4ac"
+ integrity sha512-i4GAYFj9TJLOQ8F+FbIJuJWdGymi8w/XcrEX0FzXk7DpYUCY3mWibyKhw8RasfYBx5vLwUzEvRMaQuc2EwlyfA==
dependencies:
"@yarnpkg/lockfile" "^1.0.2"
graphlib "^2.1.5"
lodash "^4.17.14"
+ p-map "2.1.0"
source-map-support "^0.5.7"
tslib "^1.9.3"
uuid "^3.3.2"
-snyk-nuget-plugin@1.13.1:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/snyk-nuget-plugin/-/snyk-nuget-plugin-1.13.1.tgz#e94f6b129b62f7c0134851be233deab5a472518b"
- integrity sha512-2AQVeahBK7Rt38p0Acl1fMsFQu3dsqoRODPoRaS0IM/bOBzVdAkDF9pCb5yKMREGpMZcyRFkt8Q+hGiUk0Nlfg==
+snyk-nuget-plugin@1.16.0:
+ version "1.16.0"
+ resolved "https://registry.yarnpkg.com/snyk-nuget-plugin/-/snyk-nuget-plugin-1.16.0.tgz#241c6c8a417429c124c3ebf6db314a14eb8eed89"
+ integrity sha512-OEusK3JKKpR4Yto5KwuqjQGgb9wAhmDqBWSQomWdtKQVFrzn5B6BMzOFikUzmeMTnUGGON7gurQBLXeZZLhRqg==
dependencies:
debug "^3.1.0"
- dotnet-deps-parser "4.5.2"
+ dotnet-deps-parser "4.9.0"
jszip "^3.1.5"
lodash "^4.17.14"
snyk-paket-parser "1.5.0"
@@ -4516,10 +4603,10 @@ snyk-policy@1.13.5:
snyk-try-require "^1.3.1"
then-fs "^2.0.0"
-snyk-python-plugin@^1.14.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/snyk-python-plugin/-/snyk-python-plugin-1.14.1.tgz#ca512cce83757b2231b9aea6caa3590ac7775bef"
- integrity sha512-76u10VrYJp0tz7eD7DC5/Q3fBMPlLieOqoUbN67u0OqF1nF7BLnFBnakZ9VbOqYeJyBoloL9+HIMJ5Nma9qLCQ==
+snyk-python-plugin@1.17.0:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/snyk-python-plugin/-/snyk-python-plugin-1.17.0.tgz#9bc38ba3c799c3cbef7676a1081f52608690d254"
+ integrity sha512-EKdVOUlvhiVpXA5TeW8vyxYVqbITAfT+2AbL2ZRiiUNLP5ae+WiNYaPy7aB5HAS9IKBKih+IH8Ag65Xu1IYSYA==
dependencies:
"@snyk/cli-interface" "^2.0.3"
tmp "0.0.33"
@@ -4555,14 +4642,15 @@ snyk-resolve@1.0.1, snyk-resolve@^1.0.0, snyk-resolve@^1.0.1:
debug "^3.1.0"
then-fs "^2.0.0"
-snyk-sbt-plugin@2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/snyk-sbt-plugin/-/snyk-sbt-plugin-2.9.0.tgz#cdbc3047b8749f71c51522c6cc908f0a5525e129"
- integrity sha512-R8jfRDkqlSsiSHYNAItKBUKUwb0n5z304Ko8ply/eoNAJMkXbFASDKHRto1v4F4wryJb4Rl1j/vFvIwytqZrww==
+snyk-sbt-plugin@2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/snyk-sbt-plugin/-/snyk-sbt-plugin-2.11.0.tgz#f5469dcf5589e34575fc901e2064475582cc3e48"
+ integrity sha512-wUqHLAa3MzV6sVO+05MnV+lwc+T6o87FZZaY+43tQPytBI2Wq23O3j4POREM4fa2iFfiQJoEYD6c7xmhiEUsSA==
dependencies:
+ debug "^4.1.1"
semver "^6.1.2"
tmp "^0.1.0"
- tree-kill "^1.2.1"
+ tree-kill "^1.2.2"
tslib "^1.10.0"
snyk-tree@^1.0.0:
@@ -4582,22 +4670,23 @@ snyk-try-require@1.3.1, snyk-try-require@^1.1.1, snyk-try-require@^1.3.1:
lru-cache "^4.0.0"
then-fs "^2.0.0"
-snyk@^1.256.0:
- version "1.256.0"
- resolved "https://registry.yarnpkg.com/snyk/-/snyk-1.256.0.tgz#b04dd4a2d97e3c9b6086c47836ee70ea067438ee"
- integrity sha512-wG6eTSZ6f4hH3cIOl4F9JE//a6eIv6O4K786/JgFDuf3XPM+zEGoY5dC+Q5yliPAarWcI1CeF1akPpyStiCkoA==
+snyk@^1.290.2:
+ version "1.290.2"
+ resolved "https://registry.yarnpkg.com/snyk/-/snyk-1.290.2.tgz#a5e36e735a8083464263abdb266b6c9b3d46de7f"
+ integrity sha512-siieHkSY/b3Yw1Gf84L07j65m2Bht1PamAbX3cmZ1zAzsUxfXpqZq5W9PlAp5z1d0Tp1vxsQmXw6UGW0K1Tq1Q==
dependencies:
"@snyk/cli-interface" "2.3.0"
+ "@snyk/configstore" "^3.2.0-rc1"
"@snyk/dep-graph" "1.13.1"
"@snyk/gemfile" "1.2.0"
"@snyk/snyk-cocoapods-plugin" "2.0.1"
+ "@snyk/update-notifier" "^2.5.1-rc2"
"@types/agent-base" "^4.2.0"
"@types/restify" "^4.3.6"
abbrev "^1.1.1"
ansi-escapes "3.2.0"
chalk "^2.4.2"
cli-spinner "0.2.10"
- configstore "^3.1.2"
debug "^3.1.0"
diff "^4.0.1"
git-url-parse "11.1.2"
@@ -4611,26 +4700,25 @@ snyk@^1.256.0:
proxy-from-env "^1.0.0"
semver "^6.0.0"
snyk-config "^2.2.1"
- snyk-docker-plugin "1.33.1"
+ snyk-docker-plugin "1.38.0"
snyk-go-plugin "1.11.1"
- snyk-gradle-plugin "3.2.2"
+ snyk-gradle-plugin "3.2.4"
snyk-module "1.9.1"
- snyk-mvn-plugin "2.7.0"
- snyk-nodejs-lockfile-parser "1.16.1"
- snyk-nuget-plugin "1.13.1"
+ snyk-mvn-plugin "2.8.0"
+ snyk-nodejs-lockfile-parser "1.17.0"
+ snyk-nuget-plugin "1.16.0"
snyk-php-plugin "1.7.0"
snyk-policy "1.13.5"
- snyk-python-plugin "^1.14.0"
+ snyk-python-plugin "1.17.0"
snyk-resolve "1.0.1"
snyk-resolve-deps "4.4.0"
- snyk-sbt-plugin "2.9.0"
+ snyk-sbt-plugin "2.11.0"
snyk-tree "^1.0.0"
snyk-try-require "1.3.1"
source-map-support "^0.5.11"
strip-ansi "^5.2.0"
tempfile "^2.0.0"
then-fs "^2.0.0"
- update-notifier "^2.5.0"
uuid "^3.3.2"
wrap-ansi "^5.1.0"
@@ -4891,6 +4979,13 @@ supports-color@^6.1.0:
dependencies:
has-flag "^3.0.0"
+supports-color@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
+ integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+ dependencies:
+ has-flag "^4.0.0"
+
symbol-tree@^3.2.2:
version "3.2.4"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
@@ -5044,10 +5139,10 @@ tr46@^1.0.1:
dependencies:
punycode "^2.1.0"
-tree-kill@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.1.tgz#5398f374e2f292b9dcc7b2e71e30a5c3bb6c743a"
- integrity sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==
+tree-kill@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
+ integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
ts-jest@^24.3.0:
version "24.3.0"
@@ -5194,22 +5289,6 @@ unzip-response@^2.0.1:
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
-update-notifier@^2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
- integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==
- dependencies:
- boxen "^1.2.1"
- chalk "^2.0.1"
- configstore "^3.0.0"
- import-lazy "^2.1.0"
- is-ci "^1.0.10"
- is-installed-globally "^0.1.0"
- is-npm "^1.0.0"
- latest-version "^3.0.0"
- semver-diff "^2.0.0"
- xdg-basedir "^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"