chore: Bugsnag -> Sentry (#1178)

* Bugsnag -> Sentry

* fix: Import style
This commit is contained in:
Tom Moor 2020-02-16 22:58:50 -08:00 committed by GitHub
parent 8fbd4a7463
commit c15cbd06a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 157 additions and 238 deletions

View File

@ -39,7 +39,7 @@ SLACK_VERIFICATION_TOKEN=PLxk6OlXXXXXVj3YYYY
SLACK_APP_ID=A0XXXXXXX
SLACK_MESSAGE_ACTIONS=true
GOOGLE_ANALYTICS_ID=
BUGSNAG_KEY=
SENTRY_DSN=
# AWS credentials (optional in development)
AWS_ACCESS_KEY_ID=get_a_key_from_aws

View File

@ -53,8 +53,8 @@
"SLACK_KEY": true,
"DEPLOYMENT": true,
"BASE_URL": true,
"BUGSNAG_KEY": true,
"SENTRY_DSN": true,
"afterAll": true,
"Bugsnag": true
"Sentry": true
}
}

View File

@ -145,8 +145,8 @@
"description": "UA-xxxx (optional)",
"required": false
},
"BUGSNAG_KEY": {
"description": "An API key for bugsnag if you wish to collect error reporting (optional)",
"SENTRY_DSN": {
"description": "An API key for Sentry if you wish to collect error reporting (optional)",
"required": false
},
"TEAM_LOGO": {

View File

@ -21,9 +21,8 @@ class ErrorBoundary extends React.Component<Props> {
componentDidCatch(error: Error, info: Object) {
this.error = error;
// Error handler is often blocked by the browser
if (window.Bugsnag) {
Bugsnag.notifyException(error, { react: info });
if (window.Sentry) {
Sentry.captureException(error);
}
}
@ -41,7 +40,7 @@ class ErrorBoundary extends React.Component<Props> {
render() {
if (this.error) {
const isReported = !!window.Bugsnag;
const isReported = !!window.Sentry;
return (
<CenteredContent>

View File

@ -75,13 +75,12 @@ export default class AuthStore {
this.user = new User(user);
this.team = new Team(team);
if (window.Bugsnag) {
Bugsnag.user = {
id: user.id,
name: user.name,
teamId: team.id,
team: team.name,
};
if (window.Sentry) {
Sentry.configureScope(function(scope) {
scope.setUser({ id: user.id });
scope.setExtra('team', team.name);
scope.setExtra('teamId', team.id);
});
}
// If we came from a redirect then send the user immediately there

View File

@ -3,9 +3,9 @@ declare var __DEV__: string;
declare var SLACK_KEY: string;
declare var SLACK_APP_ID: string;
declare var BASE_URL: string;
declare var BUGSNAG_KEY: ?string;
declare var SENTRY_DSN: ?string;
declare var DEPLOYMENT: string;
declare var Bugsnag: any;
declare var Sentry: any;
declare var process: {
env: {
[string]: string,

View File

@ -1,158 +0,0 @@
// flow-typed signature: fa2210251969d5a91003802cd9026d2d
// flow-typed version: <<STUB>>/bugsnag_v^1.7.0/flow_v0.86.0
/**
* This is an autogenerated libdef stub for:
*
* 'bugsnag'
*
* Fill this stub out by replacing all the `any` types.
*
* Once filled out, we encourage you to share your work with the
* community by sending a pull request to:
* https://github.com/flowtype/flow-typed
*/
declare module 'bugsnag' {
declare module.exports: any;
}
/**
* We include stubs for each file inside this npm package in case you need to
* require those files directly. Feel free to delete any files that aren't
* needed.
*/
declare module 'bugsnag/examples/express/api' {
declare module.exports: any;
}
declare module 'bugsnag/examples/express/bugsnag' {
declare module.exports: any;
}
declare module 'bugsnag/examples/express/index' {
declare module.exports: any;
}
declare module 'bugsnag/examples/koa/api' {
declare module.exports: any;
}
declare module 'bugsnag/examples/koa/bugsnag' {
declare module.exports: any;
}
declare module 'bugsnag/examples/koa/index' {
declare module.exports: any;
}
declare module 'bugsnag/Gruntfile' {
declare module.exports: any;
}
declare module 'bugsnag/lib/bugsnag' {
declare module.exports: any;
}
declare module 'bugsnag/lib/configuration' {
declare module.exports: any;
}
declare module 'bugsnag/lib/error' {
declare module.exports: any;
}
declare module 'bugsnag/lib/logger' {
declare module.exports: any;
}
declare module 'bugsnag/lib/notification' {
declare module.exports: any;
}
declare module 'bugsnag/lib/request_info' {
declare module.exports: any;
}
declare module 'bugsnag/lib/utils' {
declare module.exports: any;
}
declare module 'bugsnag/test/bugsnag' {
declare module.exports: any;
}
declare module 'bugsnag/test/error' {
declare module.exports: any;
}
declare module 'bugsnag/test/express' {
declare module.exports: any;
}
declare module 'bugsnag/test/notification' {
declare module.exports: any;
}
declare module 'bugsnag/test/utils' {
declare module.exports: any;
}
// Filename aliases
declare module 'bugsnag/examples/express/api.js' {
declare module.exports: $Exports<'bugsnag/examples/express/api'>;
}
declare module 'bugsnag/examples/express/bugsnag.js' {
declare module.exports: $Exports<'bugsnag/examples/express/bugsnag'>;
}
declare module 'bugsnag/examples/express/index.js' {
declare module.exports: $Exports<'bugsnag/examples/express/index'>;
}
declare module 'bugsnag/examples/koa/api.js' {
declare module.exports: $Exports<'bugsnag/examples/koa/api'>;
}
declare module 'bugsnag/examples/koa/bugsnag.js' {
declare module.exports: $Exports<'bugsnag/examples/koa/bugsnag'>;
}
declare module 'bugsnag/examples/koa/index.js' {
declare module.exports: $Exports<'bugsnag/examples/koa/index'>;
}
declare module 'bugsnag/Gruntfile.js' {
declare module.exports: $Exports<'bugsnag/Gruntfile'>;
}
declare module 'bugsnag/lib/bugsnag.js' {
declare module.exports: $Exports<'bugsnag/lib/bugsnag'>;
}
declare module 'bugsnag/lib/configuration.js' {
declare module.exports: $Exports<'bugsnag/lib/configuration'>;
}
declare module 'bugsnag/lib/error.js' {
declare module.exports: $Exports<'bugsnag/lib/error'>;
}
declare module 'bugsnag/lib/logger.js' {
declare module.exports: $Exports<'bugsnag/lib/logger'>;
}
declare module 'bugsnag/lib/notification.js' {
declare module.exports: $Exports<'bugsnag/lib/notification'>;
}
declare module 'bugsnag/lib/request_info.js' {
declare module.exports: $Exports<'bugsnag/lib/request_info'>;
}
declare module 'bugsnag/lib/utils.js' {
declare module.exports: $Exports<'bugsnag/lib/utils'>;
}
declare module 'bugsnag/test/bugsnag.js' {
declare module.exports: $Exports<'bugsnag/test/bugsnag'>;
}
declare module 'bugsnag/test/error.js' {
declare module.exports: $Exports<'bugsnag/test/error'>;
}
declare module 'bugsnag/test/express.js' {
declare module.exports: $Exports<'bugsnag/test/express'>;
}
declare module 'bugsnag/test/notification.js' {
declare module.exports: $Exports<'bugsnag/test/notification'>;
}
declare module 'bugsnag/test/utils.js' {
declare module.exports: $Exports<'bugsnag/test/utils'>;
}

View File

@ -55,6 +55,7 @@
"url": "git+ssh://git@github.com/outline/outline.git"
},
"dependencies": {
"@sentry/node": "^5.12.2",
"@tippy.js/react": "^2.2.2",
"@tommoor/remove-markdown": "0.3.1",
"autotrack": "^2.4.1",
@ -77,7 +78,6 @@
"babel-regenerator-runtime": "6.5.0",
"boundless-arrow-key-navigation": "^1.0.4",
"boundless-popover": "^1.0.4",
"bugsnag": "^1.7.0",
"bull": "^3.5.2",
"cancan": "3.1.0",
"copy-to-clipboard": "^3.0.6",

View File

@ -10,8 +10,8 @@ import logger from 'koa-logger';
import mount from 'koa-mount';
import enforceHttps from 'koa-sslify';
import Koa from 'koa';
import bugsnag from 'bugsnag';
import onerror from 'koa-onerror';
import * as Sentry from '@sentry/node';
import updates from './utils/updates';
import auth from './auth';
@ -46,12 +46,6 @@ if (process.env.NODE_ENV === 'development') {
// that means no watching, but recompilation on every request
lazy: false,
// // watch options (only lazy: false)
// watchOptions: {
// aggregateTimeout: 300,
// poll: true
// },
// public path to bind the middleware to
// use the same as in webpack
publicPath: config.output.publicPath,
@ -89,23 +83,31 @@ if (process.env.NODE_ENV === 'development') {
// trust header fields set by our proxy. eg X-Forwarded-For
app.proxy = true;
}
// catch errors in one place, automatically set status and response headers
onerror(app);
// catch errors in one place, automatically set status and response headers
onerror(app);
if (process.env.BUGSNAG_KEY) {
bugsnag.register(process.env.BUGSNAG_KEY, {
filters: ['authorization'],
if (process.env.SENTRY_DSN) {
Sentry.init({
dsn: process.env.SENTRY_DSN,
environment: process.env.NODE_ENV,
});
app.on('error', (error, ctx) => {
// we don't need to report every time a request stops to the bug tracker
if (error.code === 'EPIPE' || error.code === 'ECONNRESET') {
console.warn('Connection error', { error });
return;
}
Sentry.withScope(function(scope) {
scope.addEventProcessor(function(event) {
return Sentry.Handlers.parseRequest(event, ctx.request);
});
Sentry.captureException(error);
});
app.on('error', (error, ctx) => {
// we don't need to report every time a request stops to the bug tracker
if (error.code === 'EPIPE' || error.code === 'ECONNRESET') {
console.warn('Connection error', { error });
} else {
bugsnag.koaHandler(error, ctx);
}
});
}
});
}
app.use(mount('/auth', auth));

View File

@ -1,7 +1,7 @@
// @flow
import * as React from 'react';
import debug from 'debug';
import bugsnag from 'bugsnag';
import * as Sentry from '@sentry/node';
import nodemailer from 'nodemailer';
import Oy from 'oy-vey';
import { createQueue } from './utils/queue';
@ -83,7 +83,7 @@ export class Mailer {
attachments: data.attachments,
});
} catch (err) {
bugsnag.notify(err);
Sentry.captureException(err);
throw err; // Re-throw for queue to re-try
}
}

View File

@ -33,11 +33,18 @@
</head>
<body>
<div id="root"></div>
<script
src="https://browser.sentry-cdn.com/5.12.1/bundle.min.js"
integrity="sha384-y+an4eARFKvjzOivf/Z7JtMJhaN6b+lLQ5oFbBbUwZNNVir39cYtkjW1r6Xjbxg3"
crossorigin="anonymous"
>
</script>
<script>
Sentry.init({ dsn: '<%= SENTRY_DSN %>' });
if (window.localStorage.getItem("theme") === "dark") {
window.document.querySelector('#root').style.background = "#111319";
}
</script>
<script src="//d2wy8f7a9ursnm.cloudfront.net/bugsnag-3.min.js" data-apikey="<%= BUGSNAG_KEY %>"></script>
</body>
</html>

View File

@ -5,7 +5,7 @@ import format from 'date-fns/format';
import AWS from 'aws-sdk';
import invariant from 'invariant';
import fetch from 'isomorphic-fetch';
import bugsnag from 'bugsnag';
import * as Sentry from '@sentry/node';
const AWS_SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY;
const AWS_ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID;
@ -116,7 +116,7 @@ export const uploadToS3FromUrl = async (
return `${endpoint}/${key}`;
} catch (err) {
if (process.env.NODE_ENV === 'production') {
bugsnag.notify(err);
Sentry.captureException(err);
} else {
throw err;
}
@ -149,7 +149,7 @@ export const getImageByKey = async (key: string) => {
return data.Body;
} catch (err) {
if (process.env.NODE_ENV === 'production') {
bugsnag.notify(err);
Sentry.captureException(err);
} else {
throw err;
}

View File

@ -2,10 +2,10 @@
import fs from 'fs';
import JSZip from 'jszip';
import tmp from 'tmp';
import * as Sentry from '@sentry/node';
import unescape from '../../shared/utils/unescape';
import { Attachment, Collection, Document } from '../models';
import { getImageByKey } from './s3';
import bugsnag from 'bugsnag';
async function addToArchive(zip, documents) {
for (const doc of documents) {
@ -36,7 +36,7 @@ async function addImageToArchive(zip, key) {
zip.file(key, img, { createFolders: true });
} catch (err) {
if (process.env.NODE_ENV === 'production') {
bugsnag.notify(err);
Sentry.captureException(err);
} else {
// error during file retrieval
console.error(err);

View File

@ -11,7 +11,7 @@ const definePlugin = new webpack.DefinePlugin({
),
SLACK_APP_ID: JSON.stringify(process.env.SLACK_APP_ID),
BASE_URL: JSON.stringify(process.env.URL),
BUGSNAG_KEY: JSON.stringify(process.env.BUGSNAG_KEY),
SENTRY_DSN: JSON.stringify(process.env.SENTRY_DSN),
DEPLOYMENT: JSON.stringify(process.env.DEPLOYMENT || 'hosted'),
'process.env': {
URL: JSON.stringify(process.env.URL),

132
yarn.lock
View File

@ -208,6 +208,85 @@
dependencies:
"@types/node" "^12.11.1"
"@sentry/apm@5.12.3":
version "5.12.3"
resolved "https://registry.yarnpkg.com/@sentry/apm/-/apm-5.12.3.tgz#23a5e9c771a8748f59426a1d0f8b1fbb9b72a717"
integrity sha512-OSGEeo4b1Gsu/TUcWMx9vmgSnQvR+zM+1Iwq5xFQAK2ET3Y4gBFqZ1iRt2hxlzr8KCQmQTQc1mao1X0tmidFQg==
dependencies:
"@sentry/browser" "5.12.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/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/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.12.0"
"@sentry/minimal" "5.12.0"
"@sentry/types" "5.12.0"
"@sentry/utils" "5.12.0"
tslib "^1.9.3"
"@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.12.0"
"@sentry/utils" "5.12.0"
tslib "^1.9.3"
"@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.12.0"
"@sentry/types" "5.12.0"
tslib "^1.9.3"
"@sentry/node@^5.12.2":
version "5.12.3"
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.12.3.tgz#4a4934b04c5163fc340312eaf0d152990aa7140f"
integrity sha512-QwqN+i6IC3/YrNq7kqxH7YiXtZYY8tBuJqFi84WbiMHF7MAqxMSPNQJGfX2GJuMHKHwn6IZdgSE8+FkfN9zGLQ==
dependencies:
"@sentry/apm" "5.12.3"
"@sentry/core" "5.12.0"
"@sentry/hub" "5.12.0"
"@sentry/types" "5.12.0"
"@sentry/utils" "5.12.0"
cookie "^0.3.1"
https-proxy-agent "^4.0.0"
lru_map "^0.3.3"
tslib "^1.9.3"
"@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/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.12.0"
tslib "^1.9.3"
"@sindresorhus/is@^0.7.0":
version "0.7.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
@ -326,6 +405,11 @@ after@0.8.2:
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=
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.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
@ -530,11 +614,6 @@ arrify@^2.0.0:
resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
asn1.js@^4.0.0:
version "4.10.1"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
@ -1760,16 +1839,6 @@ buffers@~0.1.1:
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s=
bugsnag@^1.7.0:
version "1.12.2"
resolved "https://registry.yarnpkg.com/bugsnag/-/bugsnag-1.12.2.tgz#61b2a309f95a4b53e65517052ec46991f91ecb4d"
integrity sha512-QLNXll+cMJGouLaDyszDKH77wCIWgvVvC+IxZK9GyI4hLlJLyTkWMOgNnA/Grk7s4+lWctK37gwuuhkAzmtn/g==
dependencies:
json-stringify-safe "~5.0.1"
promise "7.x"
request "^2.81.0"
stack-trace "~0.0.9"
builtin-modules@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e"
@ -2365,7 +2434,7 @@ convert-source-map@^1.4.0, convert-source-map@^1.5.1:
dependencies:
safe-buffer "~5.1.1"
cookie@0.3.1:
cookie@0.3.1, cookie@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
@ -2610,7 +2679,7 @@ date-fns@1.29.0:
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
integrity sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==
debug@*, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0:
debug@*, debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
@ -4572,6 +4641,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"
humanize-number@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18"
@ -6234,6 +6311,11 @@ lru-queue@0.1:
dependencies:
es5-ext "~0.10.2"
lru_map@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=
macos-release@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f"
@ -7580,13 +7662,6 @@ promise.prototype.finally@^3.1.1:
es-abstract "^1.13.0"
function-bind "^1.1.1"
promise@7.x:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
dependencies:
asap "~2.0.3"
prop-types@^15.0.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
@ -8238,7 +8313,7 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
request@^2.81.0, request@^2.87.0:
request@^2.87.0:
version "2.88.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
@ -9113,11 +9188,6 @@ ssri@^5.2.4:
dependencies:
safe-buffer "^5.1.1"
stack-trace@~0.0.9:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
stack-utils@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
@ -9678,7 +9748,7 @@ trim-right@^1.0.1:
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
tslib@^1.9.0:
tslib@^1.9.0, tslib@^1.9.3:
version "1.10.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==