From cf71b776228aa39ac20a7a9ee9c4ed224c39a662 Mon Sep 17 00:00:00 2001 From: seotts Date: Mon, 15 Mar 2021 15:41:06 -0400 Subject: [PATCH 01/98] Work on adding messaging for previous mute --- src/views/preview/comment/compose-comment.jsx | 33 +++++++++++++++---- src/views/preview/l10n.json | 5 +++ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/views/preview/comment/compose-comment.jsx b/src/views/preview/comment/compose-comment.jsx index b66cc83a0..2d7218631 100644 --- a/src/views/preview/comment/compose-comment.jsx +++ b/src/views/preview/comment/compose-comment.jsx @@ -29,7 +29,8 @@ const ComposeStatus = keyMirror({ EDITING: null, SUBMITTING: null, REJECTED: null, - REJECTED_MUTE: null + REJECTED_MUTE: null, + COMPOSE_DISALLOWED: null }); class ComposeComment extends React.Component { @@ -48,7 +49,7 @@ class ComposeComment extends React.Component { this.props.muteStatus.muteExpiresAt * 1000 : 0; // convert to ms this.state = { message: '', - status: ComposeStatus.EDITING, + status: muteExpiresAtMs > 0 ? ComposeStatus.COMPOSE_DISALLOWED : ComposeStatus.EDITING, error: null, appealId: null, muteOpen: muteExpiresAtMs > Date.now() && this.props.isReply, @@ -100,10 +101,17 @@ class ComposeComment extends React.Component { let muteType = null; if (body.status && body.status.mute_status) { muteExpiresAtMs = body.status.mute_status.muteExpiresAt * 1000; // convert to ms - rejectedStatus = ComposeStatus.REJECTED_MUTE; + + if (body.rejected === 'isBad') { + rejectedStatus = ComposeStatus.REJECTED_MUTE; + } else { + rejectedStatus = ComposeStatus.COMPOSE_DISALLOWED; + } + if (this.shouldShowMuteModal(body.status.mute_status)) { muteOpen = true; } + showWarning = body.status.mute_status.showWarning; muteType = body.status.mute_status.currentMessageType; this.setupMuteExpirationTimeout(muteExpiresAtMs); @@ -176,6 +184,12 @@ class ComposeComment extends React.Component { return false; } + // If the user is already muted (for example, in a different tab), + // do not show modal because it would be confusing + if (this.state.status === ComposeStatus.COMPOSE_DISALLOWED) { + return false; + } + // If the backend tells us to show a warning about getting blocked, we should show the modal // regardless of what the offenses list looks like. if (muteStatus.showWarning) { @@ -210,30 +224,35 @@ class ComposeComment extends React.Component { pii: { name: 'pii', commentType: 'comment.type.pii', + commentTypePast: 'comment.type.pii.past', muteStepHeader: 'comment.pii.header', muteStepContent: ['comment.pii.content1', 'comment.pii.content2', 'comment.pii.content3'] }, unconstructive: { name: 'unconstructive', commentType: 'comment.type.unconstructive', + commentTypePast: 'comment.type.unconstructive.past', muteStepHeader: 'comment.unconstructive.header', muteStepContent: ['comment.unconstructive.content1', 'comment.unconstructive.content2'] }, vulgarity: { name: 'vulgarity', commentType: 'comment.type.vulgarity', + commentTypePast: 'comment.type.vulgarity.past', muteStepHeader: 'comment.vulgarity.header', muteStepContent: ['comment.vulgarity.content1', 'comment.vulgarity.content2'] }, spam: { name: 'spam', commentType: 'comment.type.spam', + commentTypePast: 'comment.type.spam.past', muteStepHeader: 'comment.spam.header', muteStepContent: ['comment.spam.content1', 'comment.spam.content2'] }, general: { name: 'general', commentType: 'comment.type.general', + commentTypePast: 'comment.type.general.past', muteStepHeader: 'comment.general.header', muteStepContent: ['comment.general.content1'] } @@ -261,7 +280,7 @@ class ComposeComment extends React.Component { {(this.isMuted() && !(this.props.isReply && this.state.status !== ComposeStatus.REJECTED_MUTE)) ? ( -

+

) : null } - {!this.isMuted() || (this.isMuted() && this.state.status === ComposeStatus.REJECTED_MUTE) ? ( + {this.state.status === ComposeStatus.COMPOSE_DISALLOWED ? null : (

- {this.state.error && this.state.status !== ComposeStatus.REJECTED_MUTE ? ( + {this.state.status === ComposeStatus.REJECTED ? (
- ) : null } + )} {this.state.muteOpen ? ( Date: Tue, 16 Mar 2021 14:14:14 -0400 Subject: [PATCH 02/98] Simple data fetching using react hooks --- src/views/studio/debug.jsx | 12 ++++++++++++ src/views/studio/lib/fetchers.js | 32 ++++++++++++++++++++++++++++++++ src/views/studio/studio-info.jsx | 18 ++++++++++++++++-- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/views/studio/debug.jsx create mode 100644 src/views/studio/lib/fetchers.js diff --git a/src/views/studio/debug.jsx b/src/views/studio/debug.jsx new file mode 100644 index 000000000..4875da6b2 --- /dev/null +++ b/src/views/studio/debug.jsx @@ -0,0 +1,12 @@ +import React from 'react'; + +export default function Debug({label, data}) { + return
+ {label} + +
+                {JSON.stringify(data, null, '  ')}
+            
+
+
+} \ No newline at end of file diff --git a/src/views/studio/lib/fetchers.js b/src/views/studio/lib/fetchers.js new file mode 100644 index 000000000..e4fabadb7 --- /dev/null +++ b/src/views/studio/lib/fetchers.js @@ -0,0 +1,32 @@ +const ITEM_LIMIT = 4; + +const infoFetcher = studioId => fetch(`${process.env.API_HOST}/studios/${studioId}`) + .then(d => d.json()); + +const projectFetcher = (studioId, offset) => + fetch(`${process.env.API_HOST}/studios/${studioId}/projects?limit=${ITEM_LIMIT}&offset=${offset}`) + .then(d => d.json()) + .then(d => ({items: d, moreToLoad: d.length === ITEM_LIMIT})); + +const curatorFetcher = (studioId, offset) => + fetch(`${process.env.API_HOST}/studios/${studioId}/curators?limit=${ITEM_LIMIT}&offset=${offset}`) + .then(d => d.json()) + .then(d => ({items: d, moreToLoad: d.length === ITEM_LIMIT})); + +const managerFetcher = (studioId, offset) => + fetch(`${process.env.API_HOST}/studios/${studioId}/managers?limit=${ITEM_LIMIT}&offset=${offset}`) + .then(d => d.json()) + .then(d => ({items: d, moreToLoad: d.length === ITEM_LIMIT})); + +const activityFetcher = studioId => + fetch(`${process.env.API_HOST}/studios/${studioId}/activity`) + .then(d => d.json()) + .then(d => ({items: d, moreToLoad: false})); // No pagination on the activity feed + +export { + activityFetcher, + infoFetcher, + projectFetcher, + curatorFetcher, + managerFetcher +}; diff --git a/src/views/studio/studio-info.jsx b/src/views/studio/studio-info.jsx index 01381340b..5e0ff12e4 100644 --- a/src/views/studio/studio-info.jsx +++ b/src/views/studio/studio-info.jsx @@ -1,13 +1,27 @@ -import React from 'react'; +import React, {useState, useEffect} from 'react'; import {useParams} from 'react-router-dom'; +import {infoFetcher} from './lib/fetchers'; +import Debug from './debug.jsx'; const StudioInfo = () => { const {studioId} = useParams(); + const [state, setState] = useState({loading: false, error: null, data: null}); + // Since this data is in a component that is always visible, it doesn't necessarily + // need to be kept in redux. One alternative is to use the infinite-list redux + // module and just treat the studio info as the first and only item in the list. + useEffect(() => { + if (!studioId) return; + infoFetcher(studioId) + .then(data => setState({loading: false, error: null, data})) + .catch(error => setState({loading: false, error, data: null})) + }, [studioId]); return (

Studio Info

-

Studio {studioId}

+ {state.loading &&
Loading..
} + {state.error && } +
); }; From 6b87429e65e0d8b5f7e07e3f735951268bd2b259 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Tue, 16 Mar 2021 13:27:52 -0400 Subject: [PATCH 03/98] Create a redux module for infinitely loading editable lists --- src/redux/infinite-list.js | 127 +++++++++++++++++++ test/unit/redux/infinite-list.test.js | 175 ++++++++++++++++++++++++++ 2 files changed, 302 insertions(+) create mode 100644 src/redux/infinite-list.js create mode 100644 test/unit/redux/infinite-list.test.js diff --git a/src/redux/infinite-list.js b/src/redux/infinite-list.js new file mode 100644 index 000000000..b09e10b12 --- /dev/null +++ b/src/redux/infinite-list.js @@ -0,0 +1,127 @@ +/** + * @typedef ReduxModule + * A redux "module" for reusable functionality. The module exports + * a reducer function, a set of action creators and a selector + * that are all scoped to the given "key". This allows us to reuse + * this reducer multiple times in the same redux store. + * + * @property {string} key The key to use when registering this + * modules reducer in the redux state tree. + * @property {function} selector Function called with the full + * state tree to select only this modules slice of the state. + * @property {object} actions An object of action creator functions + * to call to make changes to the data in this reducer. + * @property {function} reducer A redux reducer that takes an action + * from the action creators and the current state and returns + * the next state. + */ + +/** + * @typedef {function} InfiniteListFetcher + * A function to call that returns more data for the InfiniteList + * loadMore action. It must resolve to {items: [], moreToLoad} or + * reject with the error {statusCode}. + * @returns {Promise<{items:[], moreToLoad:boolean}>} + */ + +/** + * A redux module to create a list of items where more items can be loaded + * using an API. Additionally, there are actions for prepending items + * to the list, removing items and handling load errors. + * + * @param {string} key - used to scope action names and the selector + * This key must be unique among other instances of this module. + * @returns {ReduxModule} the redux module + */ +const InfiniteList = key => { + + const initialState = { + items: [], + offset: 0, + error: null, + loading: true, + moreToLoad: false + }; + + const reducer = (state, action) => { + if (typeof state === 'undefined') { + state = initialState; + } + + switch (action.type) { + case `${key}_LOADING`: + return { + ...state, + error: null, + loading: true + }; + case `${key}_APPEND`: + return { + ...state, + items: state.items.concat(action.items), + loading: false, + error: null, + moreToLoad: action.moreToLoad + }; + case `${key}_REPLACE`: + return { + ...state, + items: state.items.map((item, i) => { + if (i === action.index) return action.item; + return item; + }) + }; + case `${key}_REMOVE`: + return { + ...state, + items: state.items.filter((_, i) => i !== action.index) + }; + case `${key}_PREPEND`: + return { + ...state, + items: [action.item].concat(state.items) + }; + case `${key}_ERROR`: + return { + ...state, + error: action.error, + loading: false, + moreToLoad: false + }; + default: + return state; + } + }; + + const actions = { + create: item => ({type: `${key}_PREPEND`, item}), + remove: index => ({type: `${key}_REMOVE`, index}), + replace: (index, item) => ({type: `${key}_REPLACE`, index, item}), + error: error => ({type: `${key}_ERROR`, error}), + loading: () => ({type: `${key}_LOADING`}), + append: (items, moreToLoad) => ({type: `${key}_APPEND`, items, moreToLoad}), + + /** + * Load more action returns a thunk. It takes a function to call to get more items. + * It will call the LOADING action before calling the fetcher, and call + * APPEND with the results or call ERROR. + * @param {InfiniteListFetcher} fetcher - function that returns a promise + * which must resolve to {items: [], moreToLoad}. + * @returns {function} a thunk that sequences the load and dispatches + */ + loadMore: fetcher => (dispatch => { + dispatch(actions.loading()); + return fetcher() + .then(({items, moreToLoad}) => dispatch(actions.append(items, moreToLoad))) + .catch(error => dispatch(actions.error(error))); + }) + }; + + const selector = state => state[key]; + + return { + key, actions, reducer, selector + }; +}; + +export default InfiniteList; diff --git a/test/unit/redux/infinite-list.test.js b/test/unit/redux/infinite-list.test.js new file mode 100644 index 000000000..9e9995a3d --- /dev/null +++ b/test/unit/redux/infinite-list.test.js @@ -0,0 +1,175 @@ +/* global Promise */ +import InfiniteList from '../../../src/redux/infinite-list'; + +const module = InfiniteList('test-key'); +let initialState; +describe('Infinite List redux module', () => { + beforeEach(() => { + initialState = module.reducer(undefined, {}); // eslint-disable-line no-undefined + }); + + describe('reducer', () => { + test('module contains a reducer', () => { + expect(typeof module.reducer).toBe('function'); + }); + + test('initial state', () => { + expect(initialState).toMatchObject({ + loading: true, + error: null, + items: [], + moreToLoad: false + }); + }); + + describe('LOADING', () => { + let action; + beforeEach(() => { + action = module.actions.loading(); + initialState.loading = false; + initialState.items = [1, 2, 3]; + initialState.error = new Error(); + }); + test('sets the loading state', () => { + const newState = module.reducer(initialState, action); + expect(newState.loading).toBe(true); + }); + test('maintains any existing data', () => { + const newState = module.reducer(initialState, action); + expect(newState.items).toBe(initialState.items); + }); + test('clears any existing error', () => { + const newState = module.reducer(initialState, action); + expect(newState.error).toBe(null); + }); + }); + + describe('APPEND', () => { + let action; + beforeEach(() => { + action = module.actions.append([4, 5, 6], true); + }); + test('appends the new items', () => { + initialState.items = [1, 2, 3]; + const newState = module.reducer(initialState, action); + expect(newState.items).toEqual([1, 2, 3, 4, 5, 6]); + }); + test('sets the moreToLoad state', () => { + initialState.moreToLoad = false; + const newState = module.reducer(initialState, action); + expect(newState.moreToLoad).toEqual(true); + }); + test('clears any existing error and loading state', () => { + initialState.error = new Error(); + initialState.loading = true; + const newState = module.reducer(initialState, action); + expect(newState.error).toBe(null); + expect(newState.error).toBe(null); + }); + }); + + describe('REPLACE', () => { + let action; + beforeEach(() => { + action = module.actions.replace(2, 55); + }); + test('replaces the given index with the new item', () => { + initialState.items = [8, 9, 10, 11]; + const newState = module.reducer(initialState, action); + expect(newState.items).toEqual([8, 9, 55, 11]); + }); + }); + + describe('REMOVE', () => { + let action; + beforeEach(() => { + action = module.actions.remove(2); + }); + test('removes the given index', () => { + initialState.items = [8, 9, 10, 11]; + const newState = module.reducer(initialState, action); + expect(newState.items).toEqual([8, 9, 11]); + }); + }); + + describe('CREATE', () => { + let action; + beforeEach(() => { + action = module.actions.create(7); + }); + test('prepends the given item', () => { + initialState.items = [8, 9, 10, 11]; + const newState = module.reducer(initialState, action); + expect(newState.items).toEqual([7, 8, 9, 10, 11]); + }); + }); + + describe('ERROR', () => { + let action; + let error = new Error(); + beforeEach(() => { + action = module.actions.error(error); + }); + test('sets the error state', () => { + const newState = module.reducer(initialState, action); + expect(newState.error).toBe(error); + }); + test('resets loading to false', () => { + initialState.loading = true; + const newState = module.reducer(initialState, action); + expect(newState.loading).toBe(false); + }); + test('maintains any existing data', () => { + initialState.items = [1, 2, 3]; + const newState = module.reducer(initialState, action); + expect(newState.items).toEqual([1, 2, 3]); + }); + }); + }); + + describe('action creators', () => { + test('module contains actions creators', () => { + // The actual action creators are tested above in the reducer tests + for (let key in module.actions) { + expect(typeof module.actions[key]).toBe('function'); + } + }); + + describe('loadMore', () => { + test('returns a thunk function, rather than a standard action object', () => { + expect(typeof module.actions.loadMore()).toBe('function'); + }); + test('calls loading and the fetcher', () => { + let dispatch = jest.fn(); + let fetcher = jest.fn(() => new Promise(() => { })); // that never resolves + module.actions.loadMore(fetcher)(dispatch); + expect(dispatch).toHaveBeenCalledWith(module.actions.loading()); + expect(fetcher).toHaveBeenCalled(); + }); + test('calls append with resolved result from fetcher', async () => { + let dispatch = jest.fn(); + let fetcher = jest.fn(() => Promise.resolve({items: ['a', 'b'], moreToLoad: false})); + await module.actions.loadMore(fetcher)(dispatch); + expect(dispatch.mock.calls[1][0]) // the second call to dispatch, after LOADING + .toEqual(module.actions.append(['a', 'b'], false)); + }); + test('calls error with rejecting promise from fetcher', async () => { + let error = new Error(); + let dispatch = jest.fn(); + let fetcher = jest.fn(() => Promise.reject(error)); + await module.actions.loadMore(fetcher)(dispatch); + expect(dispatch.mock.calls[1][0]) // the second call to dispatch, after LOADING + .toEqual(module.actions.error(error)); + }); + }); + }); + + describe('selector', () => { + test('will return the slice of state defined by the key', () => { + const state = { + [module.key]: module.reducer(undefined, {}) // eslint-disable-line no-undefined + }; + expect(module.selector(state)).toBe(initialState); + }); + }); +}); From acedd550dac623cc34a01bb6de09e3726a72e6b4 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Tue, 16 Mar 2021 14:15:16 -0400 Subject: [PATCH 04/98] Use the infinite loading module for all the data --- src/views/studio/lib/redux-modules.js | 10 ++++++ src/views/studio/studio-activity.jsx | 30 +++++++++++++--- src/views/studio/studio-comments.jsx | 2 +- src/views/studio/studio-curators.jsx | 52 ++++++++++++++++++++++++--- src/views/studio/studio-projects.jsx | 44 ++++++++++++++++++++--- src/views/studio/studio.jsx | 18 ++++++++-- 6 files changed, 139 insertions(+), 17 deletions(-) create mode 100644 src/views/studio/lib/redux-modules.js diff --git a/src/views/studio/lib/redux-modules.js b/src/views/studio/lib/redux-modules.js new file mode 100644 index 000000000..05fb888d6 --- /dev/null +++ b/src/views/studio/lib/redux-modules.js @@ -0,0 +1,10 @@ +import InfiniteList from '../../../redux/infinite-list'; + +const projects = InfiniteList('projects'); +const curators = InfiniteList('curators'); +const managers = InfiniteList('managers'); +const activity = InfiniteList('activity'); + +export { + projects, curators, managers, activity +}; diff --git a/src/views/studio/studio-activity.jsx b/src/views/studio/studio-activity.jsx index 70fb94aca..d19f3976b 100644 --- a/src/views/studio/studio-activity.jsx +++ b/src/views/studio/studio-activity.jsx @@ -1,15 +1,35 @@ -import React from 'react'; -import {useParams} from 'react-router-dom'; +import React, {useEffect} from 'react'; +import {connect} from 'react-redux'; +import {useParams} from 'react-router'; -const StudioActivity = () => { +import {activity} from './lib/redux-modules'; +import {activityFetcher} from './lib/fetchers'; +import Debug from './debug.jsx'; + +const StudioActivity = ({items, loading, error, onInitialLoad}) => { const {studioId} = useParams(); + useEffect(() => { + if (studioId && items.length === 0) onInitialLoad(studioId); + }, [studioId]); return (

Activity

-

Studio {studioId}

+ {loading &&
Loading...
} + {error && } +
+ {items.map((item, index) => + + )} +
); }; -export default StudioActivity; +export default connect( + (state) => activity.selector(state), + (dispatch) => ({ + onInitialLoad: (studioId) => dispatch( + activity.actions.loadMore(activityFetcher.bind(null, studioId, 0))) + }) +)(StudioActivity); diff --git a/src/views/studio/studio-comments.jsx b/src/views/studio/studio-comments.jsx index e4c84d490..c059d5833 100644 --- a/src/views/studio/studio-comments.jsx +++ b/src/views/studio/studio-comments.jsx @@ -12,4 +12,4 @@ const StudioComments = () => { ); }; -export default StudioComments; +export default StudioComments; \ No newline at end of file diff --git a/src/views/studio/studio-curators.jsx b/src/views/studio/studio-curators.jsx index 54751a224..dd1892f9d 100644 --- a/src/views/studio/studio-curators.jsx +++ b/src/views/studio/studio-curators.jsx @@ -1,16 +1,58 @@ -import React from 'react'; +import React, {useEffect} from 'react'; import {useParams} from 'react-router-dom'; +import {connect} from 'react-redux'; + +import {curators, managers} from './lib/redux-modules' +import {curatorFetcher, managerFetcher} from './lib/fetchers' +import Debug from './debug.jsx'; const StudioCurators = () => { const {studioId} = useParams(); - return (
-

Curators

-

Studio {studioId}

- +

Managers

+ +
+

Curators

+
); }; +const MemberList = ({studioId, items, error, loading, moreToLoad, onLoadMore}) => { + useEffect(() => { + if (studioId && items.length === 0) onLoadMore(studioId, 0); + }, [studioId]); + + return + {error && } + {items.map((item, index) => + + )} + {loading ? Loading... : ( + moreToLoad ? + : + No more to load + )} + +}; + +const ManagerList = connect( + state => managers.selector(state), + dispatch => ({ + onLoadMore: (studioId, offset) => dispatch( + managers.actions.loadMore(managerFetcher.bind(null, studioId, offset))) + }) +)(MemberList); + +const CuratorList = connect( + state => curators.selector(state), + dispatch => ({ + onLoadMore: (studioId, offset) => dispatch( + curators.actions.loadMore(curatorFetcher.bind(null, studioId, offset))) + }) +)(MemberList); + export default StudioCurators; diff --git a/src/views/studio/studio-projects.jsx b/src/views/studio/studio-projects.jsx index d4ec0eba5..280266b86 100644 --- a/src/views/studio/studio-projects.jsx +++ b/src/views/studio/studio-projects.jsx @@ -1,15 +1,51 @@ -import React from 'react'; +import React, {useEffect} from 'react'; import {useParams} from 'react-router-dom'; +import {connect} from 'react-redux' -const StudioProjects = () => { +import {projectFetcher} from './lib/fetchers'; +import {projects} from './lib/redux-modules' +import Debug from './debug.jsx'; + +const {actions, selector} = projects; + +const StudioProjects = ({ + items, error, loading, moreToLoad, onLoadMore +}) => { const {studioId} = useParams(); + useEffect(() => { + if (studioId && items.length === 0) onLoadMore(studioId, 0); + }, [studioId]); + return (

Projects

-

Studio {studioId}

+ {error && } +
+ {items.map((item, index) => + + )} + {loading ? Loading... : ( + moreToLoad ? + : + No more to load + )} +
); }; -export default StudioProjects; +const mapStateToProps = (state) => { + return selector(state); +}; + +const mapDispatchToProps = (dispatch) => { + return { + onLoadMore: (studioId, offset) => dispatch( + actions.loadMore(projectFetcher.bind(null, studioId, offset)) + ) + }; +} +export default connect(mapStateToProps, mapDispatchToProps)(StudioProjects); \ No newline at end of file diff --git a/src/views/studio/studio.jsx b/src/views/studio/studio.jsx index 5a1ec7403..6b30ad20b 100644 --- a/src/views/studio/studio.jsx +++ b/src/views/studio/studio.jsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, {useEffect} from 'react'; import { BrowserRouter as Router, Switch, @@ -9,6 +9,7 @@ import { import Page from '../../components/page/www/page.jsx'; import render from '../../lib/render.jsx'; + import StudioTabNav from './studio-tab-nav.jsx'; import StudioProjects from './studio-projects.jsx'; import StudioInfo from './studio-info.jsx'; @@ -16,6 +17,13 @@ import StudioCurators from './studio-curators.jsx'; import StudioComments from './studio-comments.jsx'; import StudioActivity from './studio-activity.jsx'; +import { + projects, + curators, + managers, + activity +} from './lib/redux-modules' + const StudioShell = () => { const match = useRouteMatch(); @@ -59,5 +67,11 @@ render( , - document.getElementById('app') + document.getElementById('app'), + { + [projects.key]: projects.reducer, + [curators.key]: curators.reducer, + [managers.key]: managers.reducer, + [activity.key]: activity.reducer + } ); From eb3bdfee569d71de42fec7af76266477d5ccf06e Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Tue, 16 Mar 2021 14:58:54 -0400 Subject: [PATCH 05/98] Fix linting --- src/views/studio/debug.jsx | 26 ++++++++++------ src/views/studio/studio-activity.jsx | 26 +++++++++++++--- src/views/studio/studio-comments.jsx | 2 +- src/views/studio/studio-curators.jsx | 35 ++++++++++++++++----- src/views/studio/studio-info.jsx | 12 ++++++-- src/views/studio/studio-projects.jsx | 46 ++++++++++++++++++---------- src/views/studio/studio.jsx | 4 +-- 7 files changed, 106 insertions(+), 45 deletions(-) diff --git a/src/views/studio/debug.jsx b/src/views/studio/debug.jsx index 4875da6b2..3b037079e 100644 --- a/src/views/studio/debug.jsx +++ b/src/views/studio/debug.jsx @@ -1,12 +1,18 @@ import React from 'react'; +import PropTypes from 'prop-types'; -export default function Debug({label, data}) { - return
- {label} - -
-                {JSON.stringify(data, null, '  ')}
-            
-
-
-} \ No newline at end of file +const Debug = ({label, data}) => (
+ {label} + +
+            {JSON.stringify(data, null, '  ')}
+        
+
+
); + +Debug.propTypes = { + label: PropTypes.string, + data: PropTypes.any // eslint-disable-line react/forbid-prop-types +}; + +export default Debug; diff --git a/src/views/studio/studio-activity.jsx b/src/views/studio/studio-activity.jsx index d19f3976b..82b64794d 100644 --- a/src/views/studio/studio-activity.jsx +++ b/src/views/studio/studio-activity.jsx @@ -1,4 +1,6 @@ import React, {useEffect} from 'react'; +import PropTypes from 'prop-types'; + import {connect} from 'react-redux'; import {useParams} from 'react-router'; @@ -16,20 +18,34 @@ const StudioActivity = ({items, loading, error, onInitialLoad}) => {

Activity

{loading &&
Loading...
} - {error && } + {error && }
{items.map((item, index) => - + () )}
); }; +StudioActivity.propTypes = { + items: PropTypes.array, // eslint-disable-line react/forbid-prop-types + loading: PropTypes.bool, + error: PropTypes.object, // eslint-disable-line react/forbid-prop-types + onInitialLoad: PropTypes.func +}; + export default connect( - (state) => activity.selector(state), - (dispatch) => ({ - onInitialLoad: (studioId) => dispatch( + state => activity.selector(state), + dispatch => ({ + onInitialLoad: studioId => dispatch( activity.actions.loadMore(activityFetcher.bind(null, studioId, 0))) }) )(StudioActivity); diff --git a/src/views/studio/studio-comments.jsx b/src/views/studio/studio-comments.jsx index c059d5833..e4c84d490 100644 --- a/src/views/studio/studio-comments.jsx +++ b/src/views/studio/studio-comments.jsx @@ -12,4 +12,4 @@ const StudioComments = () => { ); }; -export default StudioComments; \ No newline at end of file +export default StudioComments; diff --git a/src/views/studio/studio-curators.jsx b/src/views/studio/studio-curators.jsx index dd1892f9d..37e1c7719 100644 --- a/src/views/studio/studio-curators.jsx +++ b/src/views/studio/studio-curators.jsx @@ -1,9 +1,10 @@ -import React, {useEffect} from 'react'; +import React, {useEffect, useCallback} from 'react'; +import PropTypes from 'prop-types'; import {useParams} from 'react-router-dom'; import {connect} from 'react-redux'; -import {curators, managers} from './lib/redux-modules' -import {curatorFetcher, managerFetcher} from './lib/fetchers' +import {curators, managers} from './lib/redux-modules'; +import {curatorFetcher, managerFetcher} from './lib/fetchers'; import Debug from './debug.jsx'; const StudioCurators = () => { @@ -23,20 +24,38 @@ const MemberList = ({studioId, items, error, loading, moreToLoad, onLoadMore}) = useEffect(() => { if (studioId && items.length === 0) onLoadMore(studioId, 0); }, [studioId]); + + const handleLoadMore = useCallback(() => onLoadMore(studioId, items.length), [studioId, items.length]); - return - {error && } + return ( + {error && } {items.map((item, index) => - + () )} {loading ? Loading... : ( moreToLoad ? - : No more to load )} - + ); +}; + +MemberList.propTypes = { + studioId: PropTypes.string, + items: PropTypes.array, // eslint-disable-line react/forbid-prop-types + loading: PropTypes.bool, + error: PropTypes.object, // eslint-disable-line react/forbid-prop-types + moreToLoad: PropTypes.bool, + onLoadMore: PropTypes.func }; const ManagerList = connect( diff --git a/src/views/studio/studio-info.jsx b/src/views/studio/studio-info.jsx index 5e0ff12e4..ae481e04e 100644 --- a/src/views/studio/studio-info.jsx +++ b/src/views/studio/studio-info.jsx @@ -13,15 +13,21 @@ const StudioInfo = () => { if (!studioId) return; infoFetcher(studioId) .then(data => setState({loading: false, error: null, data})) - .catch(error => setState({loading: false, error, data: null})) + .catch(error => setState({loading: false, error, data: null})); }, [studioId]); return (

Studio Info

{state.loading &&
Loading..
} - {state.error && } - + {state.error && } +
); }; diff --git a/src/views/studio/studio-projects.jsx b/src/views/studio/studio-projects.jsx index 280266b86..d563a21fd 100644 --- a/src/views/studio/studio-projects.jsx +++ b/src/views/studio/studio-projects.jsx @@ -1,9 +1,10 @@ -import React, {useEffect} from 'react'; +import React, {useEffect, useCallback} from 'react'; +import PropTypes from 'prop-types'; import {useParams} from 'react-router-dom'; -import {connect} from 'react-redux' +import {connect} from 'react-redux'; import {projectFetcher} from './lib/fetchers'; -import {projects} from './lib/redux-modules' +import {projects} from './lib/redux-modules'; import Debug from './debug.jsx'; const {actions, selector} = projects; @@ -17,17 +18,26 @@ const StudioProjects = ({ if (studioId && items.length === 0) onLoadMore(studioId, 0); }, [studioId]); + const handleLoadMore = useCallback(() => onLoadMore(studioId, items.length), [studioId, items.length]); + return (

Projects

- {error && } + {error && }
{items.map((item, index) => - + () )} {loading ? Loading... : ( moreToLoad ? - : No more to load @@ -37,15 +47,19 @@ const StudioProjects = ({ ); }; -const mapStateToProps = (state) => { - return selector(state); +StudioProjects.propTypes = { + items: PropTypes.array, // eslint-disable-line react/forbid-prop-types + loading: PropTypes.bool, + error: PropTypes.object, // eslint-disable-line react/forbid-prop-types + moreToLoad: PropTypes.bool, + onLoadMore: PropTypes.func }; -const mapDispatchToProps = (dispatch) => { - return { - onLoadMore: (studioId, offset) => dispatch( - actions.loadMore(projectFetcher.bind(null, studioId, offset)) - ) - }; -} -export default connect(mapStateToProps, mapDispatchToProps)(StudioProjects); \ No newline at end of file +const mapStateToProps = state => selector(state); + +const mapDispatchToProps = dispatch => ({ + onLoadMore: (studioId, offset) => dispatch( + actions.loadMore(projectFetcher.bind(null, studioId, offset)) + ) +}); +export default connect(mapStateToProps, mapDispatchToProps)(StudioProjects); diff --git a/src/views/studio/studio.jsx b/src/views/studio/studio.jsx index 6b30ad20b..8ed9f9b88 100644 --- a/src/views/studio/studio.jsx +++ b/src/views/studio/studio.jsx @@ -1,4 +1,4 @@ -import React, {useEffect} from 'react'; +import React from 'react'; import { BrowserRouter as Router, Switch, @@ -22,7 +22,7 @@ import { curators, managers, activity -} from './lib/redux-modules' +} from './lib/redux-modules'; const StudioShell = () => { const match = useRouteMatch(); From acbda599e56e46d97f9010496312496adca9ccaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zoe=CC=88=20Bentley?= Date: Wed, 17 Mar 2021 16:04:55 -0400 Subject: [PATCH 06/98] Fixed other place where date appears --- src/views/conference/2020/index/index.jsx | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/views/conference/2020/index/index.jsx b/src/views/conference/2020/index/index.jsx index 6574cd6f4..711510a48 100644 --- a/src/views/conference/2020/index/index.jsx +++ b/src/views/conference/2020/index/index.jsx @@ -51,13 +51,6 @@ const ConferenceSplash = () => ( value={new Date(2021, 6, 22)} year="numeric" /> - {' - '} - From 23da1e2781bf6de61cb1a6fe23ea67c091d7466e Mon Sep 17 00:00:00 2001 From: seotts Date: Wed, 17 Mar 2021 16:07:30 -0400 Subject: [PATCH 07/98] Continued work --- src/views/preview/comment/compose-comment.jsx | 14 ++++++++------ test/unit/components/compose-comment.test.jsx | 9 ++++++--- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/views/preview/comment/compose-comment.jsx b/src/views/preview/comment/compose-comment.jsx index 2d7218631..66d900235 100644 --- a/src/views/preview/comment/compose-comment.jsx +++ b/src/views/preview/comment/compose-comment.jsx @@ -97,18 +97,20 @@ class ComposeComment extends React.Component { let muteOpen = false; let muteExpiresAtMs = 0; let rejectedStatus = ComposeStatus.REJECTED; + let justMuted = true; let showWarning = false; let muteType = null; if (body.status && body.status.mute_status) { muteExpiresAtMs = body.status.mute_status.muteExpiresAt * 1000; // convert to ms - if (body.rejected === 'isBad') { + if (body.rejected === JUST_MUTED_ERROR) { rejectedStatus = ComposeStatus.REJECTED_MUTE; } else { rejectedStatus = ComposeStatus.COMPOSE_DISALLOWED; + justMuted = false; } - - if (this.shouldShowMuteModal(body.status.mute_status)) { + + if (this.shouldShowMuteModal(body.status.mute_status, justMuted)) { muteOpen = true; } @@ -170,7 +172,7 @@ class ComposeComment extends React.Component { muteOpen: true }); } - shouldShowMuteModal (muteStatus) { + shouldShowMuteModal (muteStatus, justMuted) { // We should show the mute modal if the user is in danger of being blocked or // when the user is newly muted or hasn't seen it for a while. // We don't want to show it more than about once a week. @@ -186,7 +188,7 @@ class ComposeComment extends React.Component { // If the user is already muted (for example, in a different tab), // do not show modal because it would be confusing - if (this.state.status === ComposeStatus.COMPOSE_DISALLOWED) { + if (!justMuted) { return false; } @@ -390,7 +392,7 @@ class ComposeComment extends React.Component { muteModalMessages={this.getMuteMessageInfo()} shouldCloseOnOverlayClick={false} showFeedback={ - this.state.status === ComposeStatus.REJECTED_MUTE && this.state.error === JUST_MUTED_ERROR + this.state.status === ComposeStatus.REJECTED_MUTE } showWarning={this.state.showWarning} startStep={this.getMuteModalStartStep()} diff --git a/test/unit/components/compose-comment.test.jsx b/test/unit/components/compose-comment.test.jsx index 293abb3d7..d34f38acd 100644 --- a/test/unit/components/compose-comment.test.jsx +++ b/test/unit/components/compose-comment.test.jsx @@ -68,7 +68,10 @@ describe('Compose Comment test', () => { test('Error messages shows when comment rejected ', () => { const component = getComposeCommentWrapper({}); const commentInstance = component.instance(); - commentInstance.setState({error: 'isFlood'}); + commentInstance.setState({ + error: 'isFlood', + status: 'REJECTED' + }); component.update(); expect(component.find('FlexRow.compose-error-row').exists()).toEqual(true); // Buttons stay enabled when comment rejected for non-mute reasons @@ -76,12 +79,12 @@ describe('Compose Comment test', () => { expect(component.find('Button.compose-cancel').props().disabled).toBe(false); }); - test('No error message shows when comment rejected because user muted ', () => { + test('No error message shows when comment rejected because user is already muted ', () => { const component = getComposeCommentWrapper({}); const commentInstance = component.instance(); commentInstance.setState({ error: 'isMuted', - status: 'REJECTED_MUTE' + status: 'COMPOSE_DISALLOWED' }); component.update(); expect(component.find('FlexRow.compose-error-row').exists()).toEqual(false); From f40f3fa7c7718b13fbe45d4d2c83d64f169dd0d7 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Thu, 18 Mar 2021 11:31:28 -0400 Subject: [PATCH 08/98] Rename variables --- src/views/studio/lib/fetchers.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/views/studio/lib/fetchers.js b/src/views/studio/lib/fetchers.js index e4fabadb7..13872bf44 100644 --- a/src/views/studio/lib/fetchers.js +++ b/src/views/studio/lib/fetchers.js @@ -1,27 +1,27 @@ const ITEM_LIMIT = 4; const infoFetcher = studioId => fetch(`${process.env.API_HOST}/studios/${studioId}`) - .then(d => d.json()); + .then(response => response.json()); const projectFetcher = (studioId, offset) => fetch(`${process.env.API_HOST}/studios/${studioId}/projects?limit=${ITEM_LIMIT}&offset=${offset}`) - .then(d => d.json()) - .then(d => ({items: d, moreToLoad: d.length === ITEM_LIMIT})); + .then(response => response.json()) + .then(data => ({items: data, moreToLoad: data.length === ITEM_LIMIT})); const curatorFetcher = (studioId, offset) => fetch(`${process.env.API_HOST}/studios/${studioId}/curators?limit=${ITEM_LIMIT}&offset=${offset}`) - .then(d => d.json()) - .then(d => ({items: d, moreToLoad: d.length === ITEM_LIMIT})); + .then(response => response.json()) + .then(data => ({items: data, moreToLoad: data.length === ITEM_LIMIT})); const managerFetcher = (studioId, offset) => fetch(`${process.env.API_HOST}/studios/${studioId}/managers?limit=${ITEM_LIMIT}&offset=${offset}`) - .then(d => d.json()) - .then(d => ({items: d, moreToLoad: d.length === ITEM_LIMIT})); + .then(response => response.json()) + .then(data => ({items: data, moreToLoad: data.length === ITEM_LIMIT})); const activityFetcher = studioId => fetch(`${process.env.API_HOST}/studios/${studioId}/activity`) - .then(d => d.json()) - .then(d => ({items: d, moreToLoad: false})); // No pagination on the activity feed + .then(response => response.json()) + .then(data => ({items: data, moreToLoad: false})); // No pagination on the activity feed export { activityFetcher, From 96589f4066152a51bbeb352cb3b1463ad2af55bf Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Thu, 18 Mar 2021 11:38:38 -0400 Subject: [PATCH 09/98] Comment the useEffect usage --- src/views/studio/studio-activity.jsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/views/studio/studio-activity.jsx b/src/views/studio/studio-activity.jsx index 82b64794d..955272341 100644 --- a/src/views/studio/studio-activity.jsx +++ b/src/views/studio/studio-activity.jsx @@ -10,9 +10,12 @@ import Debug from './debug.jsx'; const StudioActivity = ({items, loading, error, onInitialLoad}) => { const {studioId} = useParams(); + // Fetch the data if none has been loaded yet. This would run only once, + // since studioId doesnt change, but the component is potentially mounted + // multiple times because of tab routing, so need to check for empty items. useEffect(() => { if (studioId && items.length === 0) onInitialLoad(studioId); - }, [studioId]); + }, [studioId]); // items.length intentionally left out return (
From 94eb3dc6dee6a29058c45e495f777f7a7d2d9ff5 Mon Sep 17 00:00:00 2001 From: seotts Date: Thu, 18 Mar 2021 16:15:11 -0400 Subject: [PATCH 10/98] Continued work --- src/views/preview/comment/compose-comment.jsx | 21 ++++++++--- test/unit/components/compose-comment.test.jsx | 35 ++++++++++++++----- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/src/views/preview/comment/compose-comment.jsx b/src/views/preview/comment/compose-comment.jsx index 66d900235..58c322ca4 100644 --- a/src/views/preview/comment/compose-comment.jsx +++ b/src/views/preview/comment/compose-comment.jsx @@ -49,7 +49,7 @@ class ComposeComment extends React.Component { this.props.muteStatus.muteExpiresAt * 1000 : 0; // convert to ms this.state = { message: '', - status: muteExpiresAtMs > 0 ? ComposeStatus.COMPOSE_DISALLOWED : ComposeStatus.EDITING, + status: muteExpiresAtMs > Date.now() ? ComposeStatus.COMPOSE_DISALLOWED : ComposeStatus.EDITING, error: null, appealId: null, muteOpen: muteExpiresAtMs > Date.now() && this.props.isReply, @@ -162,7 +162,7 @@ class ComposeComment extends React.Component { // Cancel (i.e. complete) the reply action if the user clicked on the reply button while // alreay muted. This "closes" the reply. If they just got muted, we want to leave it open // so the blue CommentingStatus box shows. - if (this.props.isReply && this.state.status !== ComposeStatus.REJECTED_MUTE) { + if (this.props.isReply && this.state.status === ComposeStatus.COMPOSE_DISALLOWED) { this.handleCancel(); } } @@ -186,6 +186,11 @@ class ComposeComment extends React.Component { return false; } + // TODO: Check with Kathy, but we think you should always see the modal when you reply? + if (this.props.isReply) { + return true; + } + // If the user is already muted (for example, in a different tab), // do not show modal because it would be confusing if (!justMuted) { @@ -215,7 +220,7 @@ class ComposeComment extends React.Component { // Decides which step of the mute modal to start on. If this was a reply button click, // we show them the step that tells them how much time is left on their mute, otherwise // they start at the beginning of the progression. - return this.props.isReply && this.state.status !== ComposeStatus.REJECTED_MUTE ? + return this.props.isReply && this.state.status === ComposeStatus.COMPOSE_DISALLOWED ? MuteModal.steps.MUTE_INFO : MuteModal.steps.COMMENT_ISSUE; } @@ -282,7 +287,15 @@ class ComposeComment extends React.Component { {(this.isMuted() && !(this.props.isReply && this.state.status !== ComposeStatus.REJECTED_MUTE)) ? ( -

+

+ +

{ expect(component.find('FlexRow.compose-error-row').exists()).toEqual(false); }); - test('Comment Status shows but compose box does not when mute expiration in the future ', () => { + test('Comment Status shows but compose box does not when you load the page and you are already muted', () => { const realDateNow = Date.now.bind(global.Date); global.Date.now = () => 0; const component = getComposeCommentWrapper({}); const commentInstance = component.instance(); - commentInstance.setState({muteExpiresAtMs: 100}); + commentInstance.setState({muteExpiresAtMs: 100, status: 'COMPOSE_DISALLOWED'}); component.update(); + // Compose box should be hidden if muted unless they got muted due to a comment they just posted. expect(component.find('FlexRow.compose-comment').exists()).toEqual(false); expect(component.find('MuteModal').exists()).toEqual(false); @@ -236,7 +237,7 @@ describe('Compose Comment test', () => { const commentInstance = component.instance(); commentInstance.setState({ error: 'some error', - status: 'FLOOD' + status: 'REJECTED' }); component.update(); expect(component.find('FlexRow.compose-error-row').exists()).toEqual(true); @@ -338,7 +339,7 @@ describe('Compose Comment test', () => { expect(component.find('MuteModal').props().showFeedback).toBe(true); commentInstance.setState({ - status: 'REJECTED_MUTE', + status: 'COMPOSE_DISALLOWED', error: 'isMute', showWarning: true, muteOpen: true @@ -392,7 +393,7 @@ describe('Compose Comment test', () => { offenses: [offense] }; const commentInstance = getComposeCommentWrapper({}).instance(); - expect(commentInstance.shouldShowMuteModal(muteStatus)).toBe(true); + expect(commentInstance.shouldShowMuteModal(muteStatus, true)).toBe(true); global.Date.now = realDateNow; }); @@ -413,7 +414,7 @@ describe('Compose Comment test', () => { offenses: offenses }; const commentInstance = getComposeCommentWrapper({}).instance(); - expect(commentInstance.shouldShowMuteModal(muteStatus)).toBe(false); + expect(commentInstance.shouldShowMuteModal(muteStatus, true)).toBe(false); global.Date.now = realDateNow; }); @@ -435,7 +436,25 @@ describe('Compose Comment test', () => { showWarning: true }; const commentInstance = getComposeCommentWrapper({}).instance(); - expect(commentInstance.shouldShowMuteModal(muteStatus)).toBe(true); + expect(commentInstance.shouldShowMuteModal(muteStatus, true)).toBe(true); + global.Date.now = realDateNow; + }); + + test('shouldShowMuteModal is false when the user is already muted, even when only 1 recent offesnse ', () => { + const realDateNow = Date.now.bind(global.Date); + global.Date.now = () => 0; + // Since Date.now mocked to 0 above, we just need a small number to make + // it look like it was created < 2 minutes ago. + const offense = { + expiresAt: '1000', + createdAt: '-60' // ~1 ago min given shouldShowMuteModal's conversions, + }; + const muteStatus = { + offenses: [offense] + }; + const justMuted = false; + const commentInstance = getComposeCommentWrapper({}).instance(); + expect(commentInstance.shouldShowMuteModal(muteStatus, justMuted)).toBe(false); global.Date.now = realDateNow; }); @@ -455,7 +474,7 @@ describe('Compose Comment test', () => { test('getMuteModalStartStep: A reply click when already muted ', () => { const commentInstance = getComposeCommentWrapper({isReply: true}).instance(); commentInstance.setState({ - status: 'EDITING' + status: 'COMPOSE_DISALLOWED' }); expect(commentInstance.getMuteModalStartStep()).toBe(1); }); From 248be53029afde9bde07dd2287c3dd3fa715d4ce Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 03:25:37 +0000 Subject: [PATCH 11/98] Bump scratch-l10n from 3.11.20210318031539 to 3.11.20210319031448 Bumps [scratch-l10n](https://github.com/LLK/scratch-l10n) from 3.11.20210318031539 to 3.11.20210319031448. - [Release notes](https://github.com/LLK/scratch-l10n/releases) - [Commits](https://github.com/LLK/scratch-l10n/compare/3.11.20210318031539...3.11.20210319031448) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45298042c..f3debc397 100644 --- a/package-lock.json +++ b/package-lock.json @@ -519,9 +519,9 @@ } }, "electron-to-chromium": { - "version": "1.3.691", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.691.tgz", - "integrity": "sha512-ZqiO69KImmOGCyoH0icQPU3SndJiW93juEvf63gQngyhODO6SpQIPMTOHldtCs5DS5GMKvAkquk230E2zt2vpw==", + "version": "1.3.692", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", + "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", "dev": true }, "semver": { @@ -21425,6 +21425,19 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "scratch-l10n": { + "version": "3.11.20210318031539", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210318031539.tgz", + "integrity": "sha512-uxOUzuP4J1DwVP7yySzQkMhKeuti1ecNWAgeypL8lW5HAWPlIOvBeC4oT05hRua2zF5i/+ozeZpKh0stW+1aeg==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "react-intl": "^2.8.0", + "transifex": "1.6.6" + } + }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21492,9 +21505,9 @@ } }, "scratch-l10n": { - "version": "3.11.20210318031539", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210318031539.tgz", - "integrity": "sha512-uxOUzuP4J1DwVP7yySzQkMhKeuti1ecNWAgeypL8lW5HAWPlIOvBeC4oT05hRua2zF5i/+ozeZpKh0stW+1aeg==", + "version": "3.11.20210319031448", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210319031448.tgz", + "integrity": "sha512-gyf1rrzdAM1Cpy5IDBfxNfByXMpI8ZltkActnsbud8FDVNbatziGENi2F8bT4gxJ8A2fcm72X7eMeafC8jJs5g==", "dev": true, "requires": { "@babel/cli": "^7.1.2", From 5f9ce89eb430ca2d9ef2542b20d909e15bde2779 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 10:42:43 +0000 Subject: [PATCH 12/98] Bump scratch-gui Bumps [scratch-gui](https://github.com/LLK/scratch-gui) from 0.1.0-prerelease.20210318040059 to 0.1.0-prerelease.20210319040415. - [Release notes](https://github.com/LLK/scratch-gui/releases) - [Commits](https://github.com/LLK/scratch-gui/compare/0.1.0-prerelease.20210318040059...0.1.0-prerelease.20210319040415) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 43 +++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index f3debc397..67a30d6c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20970,9 +20970,9 @@ } }, "scratch-blocks": { - "version": "0.1.0-prerelease.20210318033822", - "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210318033822.tgz", - "integrity": "sha512-nKOMgQwrvH/VKH7mHliwpQyddD/wM68UaA/Vh37/XkknKkY8g6qX2Jj5XgxziMIZQTGgNsu+LEkbyNOhqp0QOg==", + "version": "0.1.0-prerelease.20210319032844", + "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210319032844.tgz", + "integrity": "sha512-kfI/JKO2Zk0kQS74/wUVgrZzQP2Efd9xkHRXUyJhqgFPHVR0TdAhJGpvzCj6A7AnWZDLnUc+FjzPPzVuRowR2A==", "dev": true, "requires": { "exports-loader": "0.6.3", @@ -20980,9 +20980,9 @@ } }, "scratch-gui": { - "version": "0.1.0-prerelease.20210318040059", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210318040059.tgz", - "integrity": "sha512-dGrtJutjsAMqq7sotMYwhAAmJQbyRmi3b7vKlLQYTqV15cY5oa2GrVAso7PBrWxRLcd1XDbVUrcEpvgKaWZNJg==", + "version": "0.1.0-prerelease.20210319040415", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210319040415.tgz", + "integrity": "sha512-hg9Rhzvn1IybskMKCqplX9rlMB0R2gN4u4d8GmAQclhKxQfeudRlOdOpcptEbj8uxPHA0P7Wo4gvcH766Ise8Q==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -21033,14 +21033,14 @@ "redux": "3.7.2", "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", - "scratch-blocks": "0.1.0-prerelease.20210318033822", - "scratch-l10n": "3.11.20210318031539", + "scratch-blocks": "0.1.0-prerelease.20210319032844", + "scratch-l10n": "3.11.20210319031448", "scratch-paint": "0.2.0-prerelease.20210308034725", "scratch-render": "0.1.0-prerelease.20210317200605", "scratch-render-fonts": "1.0.0-prerelease.20200507182347", "scratch-storage": "1.3.3", "scratch-svg-renderer": "0.2.0-prerelease.20210317184701", - "scratch-vm": "0.2.0-prerelease.20210317111523", + "scratch-vm": "0.2.0-prerelease.20210318114153", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -21203,9 +21203,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.691", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.691.tgz", - "integrity": "sha512-ZqiO69KImmOGCyoH0icQPU3SndJiW93juEvf63gQngyhODO6SpQIPMTOHldtCs5DS5GMKvAkquk230E2zt2vpw==", + "version": "1.3.692", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", + "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", "dev": true }, "has-flag": { @@ -21425,19 +21425,6 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, - "scratch-l10n": { - "version": "3.11.20210318031539", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210318031539.tgz", - "integrity": "sha512-uxOUzuP4J1DwVP7yySzQkMhKeuti1ecNWAgeypL8lW5HAWPlIOvBeC4oT05hRua2zF5i/+ozeZpKh0stW+1aeg==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "babel-plugin-react-intl": "^3.0.1", - "react-intl": "^2.8.0", - "transifex": "1.6.6" - } - }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21755,9 +21742,9 @@ "dev": true }, "scratch-vm": { - "version": "0.2.0-prerelease.20210317111523", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210317111523.tgz", - "integrity": "sha512-TVlh0hmvl8hUeZfvfmTn8KeBPAW2zYkAWZm32EI+sJUC7dmG7J3+7YrlqnvtubPv1q/bVeAE9dkYe/EmktbKOg==", + "version": "0.2.0-prerelease.20210318114153", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210318114153.tgz", + "integrity": "sha512-7yCLsfgqKJKrIN2k6Doyp9ZwbnJfr+E8zn6GGngNa9TPVSIM/01blsRkjA01+OewAAkEeHoTpUHzq3ONR2u4dg==", "dev": true, "requires": { "@vernier/godirect": "1.5.0", diff --git a/package.json b/package.json index 1da75f606..3ff0681aa 100644 --- a/package.json +++ b/package.json @@ -119,7 +119,7 @@ "redux-mock-store": "^1.2.3", "redux-thunk": "2.0.1", "sass-loader": "6.0.6", - "scratch-gui": "0.1.0-prerelease.20210318040059", + "scratch-gui": "0.1.0-prerelease.20210319040415", "scratch-l10n": "latest", "selenium-webdriver": "3.6.0", "slick-carousel": "1.6.0", From a97263cb91af7b1069ca3225899bd2d28076a31f Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Fri, 19 Mar 2021 12:48:35 -0400 Subject: [PATCH 13/98] Fetch studio info and roles in redux --- src/redux/studio.js | 120 +++++++++++++++++++++++++++++++ src/views/studio/studio-info.jsx | 56 ++++++++++----- src/views/studio/studio.jsx | 5 +- 3 files changed, 161 insertions(+), 20 deletions(-) create mode 100644 src/redux/studio.js diff --git a/src/redux/studio.js b/src/redux/studio.js new file mode 100644 index 000000000..7c9943ec5 --- /dev/null +++ b/src/redux/studio.js @@ -0,0 +1,120 @@ +const keyMirror = require('keymirror'); + +const api = require('../lib/api'); +const log = require('../lib/log'); + +const Status = keyMirror({ + FETCHED: null, + NOT_FETCHED: null, + FETCHING: null, + ERROR: null +}); + +const getInitialState = () => ({ + infoStatus: Status.NOT_FETCHED, + title: '', + description: '', + openToAll: false, + commentingAllowed: false, + thumbnail: '', + followers: 0, + + rolesStatus: Status.NOT_FETCHED, + manager: false, + curator: false, + follower: false, + invited: false +}); + +const studioReducer = (state, action) => { + if (typeof state === 'undefined') { + state = getInitialState(); + } + + switch (action.type) { + case 'SET_INFO': + return { + ...state, + ...action.info + }; + case 'SET_ROLES': + return { + ...state, + ...action.roles + }; + case 'SET_FETCH_STATUS': + if (action.error) { + log.error(action.error); + } + return { + ...state, + [action.fetchType]: action.fetchStatus + }; + default: + return state; + } +}; + +const setFetchStatus = (fetchType, fetchStatus, error) => ({ + type: 'SET_FETCH_STATUS', + fetchType, + fetchStatus, + error +}); + +const setInfo = (info) => ({ + type: 'SET_INFO', + info: info +}); + +const setRoles = (roles) => ({ + type: 'SET_ROLES', + roles: roles +}); + +const getInfo = (studioId) => (dispatch => { + dispatch(setFetchStatus('infoStatus', Status.FETCHING)); + api({uri: `/studios/${studioId}`,}, (err, body, res) => { + if (err || typeof body === 'undefined' || res.statusCode !== 200) { + dispatch(setFetchStatus('infoStatus', Status.ERROR, err)); + return; + } + dispatch(setFetchStatus('infoStatus', Status.FETCHED)); + dispatch(setInfo({ + title: body.title, + description: body.description, + openToAll: body.open_to_all, + commentingAllowed: body.commenting_allowed, + updated: new Date(body.history.modified), + followers: body.stats.followers + })); + }); +}); + +const getRoles = (studioId, username, token) => (dispatch => { + dispatch(setFetchStatus('rolesStatus', Status.FETCHING)); + api({ + uri: `/studios/${studioId}/users/${username}`, + authentication: token + }, (err, body, res) => { + if (err || typeof body === 'undefined' || res.statusCode !== 200) { + dispatch(setFetchStatus('rolesStatus', Status.ERROR, err)); + return; + } + dispatch(setFetchStatus('rolesStatus', Status.FETCHED)); + dispatch(setRoles({ + manager: body.manager, + curator: body.curator, + following: body.following, + invited: body.invited + })); + }); +}); + +module.exports = { + getInitialState, + studioReducer, + Status, + getInfo, + getRoles +} diff --git a/src/views/studio/studio-info.jsx b/src/views/studio/studio-info.jsx index ae481e04e..940c53853 100644 --- a/src/views/studio/studio-info.jsx +++ b/src/views/studio/studio-info.jsx @@ -1,35 +1,53 @@ -import React, {useState, useEffect} from 'react'; +import React, {useEffect} from 'react'; +import PropTypes from 'prop-types'; import {useParams} from 'react-router-dom'; -import {infoFetcher} from './lib/fetchers'; +import {connect} from 'react-redux'; import Debug from './debug.jsx'; +import {Status as SessionStatus} from '../../redux/session'; +import {getInfo, getRoles} from '../../redux/studio'; -const StudioInfo = () => { +const StudioInfo = ({username, studio, token, onLoadInfo, onLoadRoles}) => { const {studioId} = useParams(); - const [state, setState] = useState({loading: false, error: null, data: null}); - // Since this data is in a component that is always visible, it doesn't necessarily - // need to be kept in redux. One alternative is to use the infinite-list redux - // module and just treat the studio info as the first and only item in the list. - useEffect(() => { - if (!studioId) return; - infoFetcher(studioId) - .then(data => setState({loading: false, error: null, data})) - .catch(error => setState({loading: false, error, data: null})); + + useEffect(() => { // Load studio info after first render + if (studioId) onLoadInfo(studioId); }, [studioId]); + useEffect(() => { // Load roles info once the username is available + if (studioId && username && token) onLoadRoles(studioId, username, token); + }, [studioId, username, token]); + return (

Studio Info

- {state.loading &&
Loading..
} - {state.error && }
); }; -export default StudioInfo; +StudioInfo.propTypes = { + username: PropTypes.string, + token: PropTypes.string, + studio: PropTypes.shape({ + // Fill this in as the data is used, just for demo now + }) +}; + +export default connect( + (state) => { + const user = state.session.session.user; + return { + studio: state.studio, + username: user && user.username, + token: user && user.token + }; + }, + (dispatch) => ({ + onLoadInfo: (studioId) => dispatch(getInfo(studioId)), + onLoadRoles: (studioId, username, token) => dispatch( + getRoles(studioId, username, token)) + }) +)(StudioInfo); diff --git a/src/views/studio/studio.jsx b/src/views/studio/studio.jsx index 8ed9f9b88..e5d811d66 100644 --- a/src/views/studio/studio.jsx +++ b/src/views/studio/studio.jsx @@ -24,6 +24,8 @@ import { activity } from './lib/redux-modules'; +const {studioReducer} = require('../../redux/studio'); + const StudioShell = () => { const match = useRouteMatch(); @@ -72,6 +74,7 @@ render( [projects.key]: projects.reducer, [curators.key]: curators.reducer, [managers.key]: managers.reducer, - [activity.key]: activity.reducer + [activity.key]: activity.reducer, + studio: studioReducer } ); From 57495259cfda542d4f71bf4b99614e6c231a44d3 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Fri, 19 Mar 2021 15:12:45 -0400 Subject: [PATCH 14/98] Fix lint and remove unused code --- src/redux/studio.js | 50 ++++++++++++++++---------------- src/views/studio/lib/fetchers.js | 4 --- src/views/studio/studio-info.jsx | 11 +++---- 3 files changed, 31 insertions(+), 34 deletions(-) diff --git a/src/redux/studio.js b/src/redux/studio.js index 7c9943ec5..97d325bb5 100644 --- a/src/redux/studio.js +++ b/src/redux/studio.js @@ -32,26 +32,26 @@ const studioReducer = (state, action) => { } switch (action.type) { - case 'SET_INFO': - return { - ...state, - ...action.info - }; - case 'SET_ROLES': - return { - ...state, - ...action.roles - }; - case 'SET_FETCH_STATUS': - if (action.error) { - log.error(action.error); - } - return { - ...state, - [action.fetchType]: action.fetchStatus - }; - default: - return state; + case 'SET_INFO': + return { + ...state, + ...action.info + }; + case 'SET_ROLES': + return { + ...state, + ...action.roles + }; + case 'SET_FETCH_STATUS': + if (action.error) { + log.error(action.error); + } + return { + ...state, + [action.fetchType]: action.fetchStatus + }; + default: + return state; } }; @@ -62,19 +62,19 @@ const setFetchStatus = (fetchType, fetchStatus, error) => ({ error }); -const setInfo = (info) => ({ +const setInfo = info => ({ type: 'SET_INFO', info: info }); -const setRoles = (roles) => ({ +const setRoles = roles => ({ type: 'SET_ROLES', roles: roles }); -const getInfo = (studioId) => (dispatch => { +const getInfo = studioId => (dispatch => { dispatch(setFetchStatus('infoStatus', Status.FETCHING)); - api({uri: `/studios/${studioId}`,}, (err, body, res) => { + api({uri: `/studios/${studioId}`}, (err, body, res) => { if (err || typeof body === 'undefined' || res.statusCode !== 200) { dispatch(setFetchStatus('infoStatus', Status.ERROR, err)); return; @@ -117,4 +117,4 @@ module.exports = { Status, getInfo, getRoles -} +}; diff --git a/src/views/studio/lib/fetchers.js b/src/views/studio/lib/fetchers.js index 13872bf44..8262aea8c 100644 --- a/src/views/studio/lib/fetchers.js +++ b/src/views/studio/lib/fetchers.js @@ -1,8 +1,5 @@ const ITEM_LIMIT = 4; -const infoFetcher = studioId => fetch(`${process.env.API_HOST}/studios/${studioId}`) - .then(response => response.json()); - const projectFetcher = (studioId, offset) => fetch(`${process.env.API_HOST}/studios/${studioId}/projects?limit=${ITEM_LIMIT}&offset=${offset}`) .then(response => response.json()) @@ -25,7 +22,6 @@ const activityFetcher = studioId => export { activityFetcher, - infoFetcher, projectFetcher, curatorFetcher, managerFetcher diff --git a/src/views/studio/studio-info.jsx b/src/views/studio/studio-info.jsx index 940c53853..021bdb5be 100644 --- a/src/views/studio/studio-info.jsx +++ b/src/views/studio/studio-info.jsx @@ -3,7 +3,6 @@ import PropTypes from 'prop-types'; import {useParams} from 'react-router-dom'; import {connect} from 'react-redux'; import Debug from './debug.jsx'; -import {Status as SessionStatus} from '../../redux/session'; import {getInfo, getRoles} from '../../redux/studio'; const StudioInfo = ({username, studio, token, onLoadInfo, onLoadRoles}) => { @@ -33,11 +32,13 @@ StudioInfo.propTypes = { token: PropTypes.string, studio: PropTypes.shape({ // Fill this in as the data is used, just for demo now - }) + }), + onLoadInfo: PropTypes.func, + onLoadRoles: PropTypes.func }; export default connect( - (state) => { + state => { const user = state.session.session.user; return { studio: state.studio, @@ -45,8 +46,8 @@ export default connect( token: user && user.token }; }, - (dispatch) => ({ - onLoadInfo: (studioId) => dispatch(getInfo(studioId)), + dispatch => ({ + onLoadInfo: studioId => dispatch(getInfo(studioId)), onLoadRoles: (studioId, username, token) => dispatch( getRoles(studioId, username, token)) }) From 5d7d1cde3dbc47df59deb2974b0c0c68a45a4801 Mon Sep 17 00:00:00 2001 From: seotts Date: Fri, 19 Mar 2021 15:18:36 -0400 Subject: [PATCH 15/98] Add comments; fix reply logic --- src/views/preview/comment/compose-comment.jsx | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/views/preview/comment/compose-comment.jsx b/src/views/preview/comment/compose-comment.jsx index 58c322ca4..2627334ed 100644 --- a/src/views/preview/comment/compose-comment.jsx +++ b/src/views/preview/comment/compose-comment.jsx @@ -28,9 +28,9 @@ const JUST_MUTED_ERROR = 'isBad'; const ComposeStatus = keyMirror({ EDITING: null, SUBMITTING: null, - REJECTED: null, - REJECTED_MUTE: null, - COMPOSE_DISALLOWED: null + REJECTED: null, // comment rejected for a reason other than muting (such as commenting too quickly) + REJECTED_MUTE: null, // comment made in this ComposeComment was rejected and muted the user + COMPOSE_DISALLOWED: null // user is already muted due to past behavior }); class ComposeComment extends React.Component { @@ -186,14 +186,14 @@ class ComposeComment extends React.Component { return false; } - // TODO: Check with Kathy, but we think you should always see the modal when you reply? - if (this.props.isReply) { - return true; - } - // If the user is already muted (for example, in a different tab), - // do not show modal because it would be confusing + // do not show modal unless the comment is a reply. We always want to show + // the modal on replies when the user is already muted because the blue box + // may be out-of-sight for them. if (!justMuted) { + if (this.props.isReply) { + return true; + } return false; } @@ -284,11 +284,13 @@ class ComposeComment extends React.Component { render () { return ( - {(this.isMuted() && !(this.props.isReply && this.state.status !== ComposeStatus.REJECTED_MUTE)) ? ( + {/* If a user is muted, show the blue mute box, unless + the comment is a reply and the user was already muted before attempting to make it. */} + {(this.isMuted() && !(this.props.isReply && this.state.status === ComposeStatus.COMPOSE_DISALLOWED)) ? (

- Date: Fri, 19 Mar 2021 15:23:12 -0400 Subject: [PATCH 16/98] replaced header image and modified strings --- src/views/conference/2020/index/index.jsx | 2 +- src/views/conference/2020/index/l10n.json | 2 +- .../conference/index/2020/title-banner.jpg | Bin 119633 -> 145076 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/conference/2020/index/index.jsx b/src/views/conference/2020/index/index.jsx index 6574cd6f4..a2041a6be 100644 --- a/src/views/conference/2020/index/index.jsx +++ b/src/views/conference/2020/index/index.jsx @@ -75,7 +75,7 @@ const ConferenceSplash = () => ( diff --git a/src/views/conference/2020/index/l10n.json b/src/views/conference/2020/index/l10n.json index 5bef0abdc..3ed09deab 100644 --- a/src/views/conference/2020/index/l10n.json +++ b/src/views/conference/2020/index/l10n.json @@ -1,7 +1,7 @@ { "conference-2020.title": "Scratch Around the World:", "conference-2020.subtitle": "An Online Conference", - "conference-2020.dateDesc": "July 22", + "conference-2020.dateDesc": "July 22, 2021", "conference-2020.locationDetails": "Online", "conference-2020.date": "When:", diff --git a/static/images/conference/index/2020/title-banner.jpg b/static/images/conference/index/2020/title-banner.jpg index 47c365ab469938ddaf92caf4123ae2825a7e356d..c047bb74f234232045a4ecc81e114518b6f08637 100644 GIT binary patch literal 145076 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%0AHp zL=%MtNHx(ij4foMk~EpBYgx_Z!@2i{{SkO41hq% z>zs2+k>_#i-#)cA!?z&x>z`VNRfddX?&W*al$?bp80b%>002f#Xd7&6+Ax zYUv!%QM9&l#P#cnQgeb?>O1;URbcvuvYOo)OOmI8 z-N?>AT9lSp7@TAtFx*zeG3mC4%e#i=?p$XPj4o@c(sVnmQpVF<)4VA>`f6VrXWck* z&WYwYEB)MYyFGaAT63apW0knMhTh`(8(8FLETN|^HZqk29D3&>qSN&E)HT~12vc#E zPykcgzG>IC>@T$kdwHyfFB(r73%5B@pFxl-u=r(aFTN#-ghoWOh{|xi`VZ?|*qVxs z8C2|zX;b!<6g#tf;{E(~9s|;}8!&@;Q2cYT2lYMc=JH4YV?ArrzAI~st9(wmjuV)z z7s+2jdY|$u%hv>v>EAsmWb|c61s5<NEMbYAIJ~Y_uMzUjPh}diqs_iOipO2Rwtw zKaDM^+dk&$j-stc#HaX&q30F!H)oRC7^=~s4u1C?jt{OXFn(}b=Hze(QC1%we$u%E zk&(wDo4PdzZO3MO zymC6?oy5%4RuU*v^D_@@@mC^XM&|i}Cj`?3NJ{i4KDg&SK9r~*&hq0s$vaVdoSLF; z$@fM5_5CQ_7x&lnr2fdh{{Wv+NA^Yc{Q8P~h`kU0()=KZZn*o!an#k4d2F1X*zPHa z#bH0*J^iRH&m%p>dbR*&C5s*ir@0)M;Y3RjXlRM-LA3z}}?5c84z zg)op~$G0^Z{{T^++K_{scBO3w_Z(y)A`S^aIIlaCZ=|{3AAZ0~y}PeQK4p#MXDQT)`oVSlBW!>_rl$nzI~c;_i>8 zZIFgyNd%p%fm`v1R1fSoar%#H=DaJaL*lOs{jLzP>JSkf>?HT>!`Rn%VWm$s>|w(o zY>+Y2-oARON!gygDvY;a<&HUVxbnPn=syni*TXukzITYx2J-B1tKXVi*>sHq!&B;7 zgQQmQCSA`Pk6aIW`Afy$7PUQf=e4keY1(N8RwIJsXRBj^arjpiI&!YxDc3s6n)i

yckPCaflt7YG-&;rz{H%I_q*xwW*@kRgqM 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 literal 119633 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 jf Date: Fri, 19 Mar 2021 15:29:29 -0400 Subject: [PATCH 17/98] Add test of shoudShowMuteModal when isReply --- test/unit/components/compose-comment.test.jsx | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/test/unit/components/compose-comment.test.jsx b/test/unit/components/compose-comment.test.jsx index a454799f5..6caf12314 100644 --- a/test/unit/components/compose-comment.test.jsx +++ b/test/unit/components/compose-comment.test.jsx @@ -458,7 +458,25 @@ describe('Compose Comment test', () => { global.Date.now = realDateNow; }); - test('getMuteModalStartStep: not a reply ', () => { + test('shouldShowMuteModal is true when the user is already muted if the comment is a reply', () => { + const realDateNow = Date.now.bind(global.Date); + global.Date.now = () => 0; + // Since Date.now mocked to 0 above, we just need a small number to make + // it look like it was created < 2 minutes ago. + const offense = { + expiresAt: '1000', + createdAt: '-60' // ~1 ago min given shouldShowMuteModal's conversions, + }; + const muteStatus = { + offenses: [offense] + }; + const justMuted = false; + const commentInstance = getComposeCommentWrapper({isReply: true}).instance(); + expect(commentInstance.shouldShowMuteModal(muteStatus, justMuted)).toBe(true); + global.Date.now = realDateNow; + }); + + test('getMuteModalStartStep: not a reply', () => { const commentInstance = getComposeCommentWrapper({}).instance(); expect(commentInstance.getMuteModalStartStep()).toBe(0); }); From d8a802fca28ba3ece3ff940ad3b9a9b6b78c585b Mon Sep 17 00:00:00 2001 From: seotts Date: Fri, 19 Mar 2021 15:42:54 -0400 Subject: [PATCH 18/98] Test that status gets correctly set in constructor --- test/unit/components/compose-comment.test.jsx | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/test/unit/components/compose-comment.test.jsx b/test/unit/components/compose-comment.test.jsx index 6caf12314..226d80062 100644 --- a/test/unit/components/compose-comment.test.jsx +++ b/test/unit/components/compose-comment.test.jsx @@ -51,6 +51,36 @@ describe('Compose Comment test', () => { return wrapper.dive(); // unwrap redux connect(injectIntl(ComposeComment)) }; + test('status is EDITING when props do not contain a muteStatus ', () => { + const commentInstance = getComposeCommentWrapper({}).instance(); + expect(commentInstance.state.status).toBe('EDITING'); + }); + + test('status is COMPOSE_DISALLOWED when props contain a future mute', () => { + jest.useFakeTimers(); + const realDateNow = Date.now.bind(global.Date); + global.Date.now = () => 0; + const mutedStore = mockStore({ + session: { + session: { + user: {}, + permissions: { + mute_status: { + muteExpiresAt: 5, + offenses: [], + showWarning: true + } + } + } + } + }); + const component = getComposeCommentWrapper({}, mutedStore); + const commentInstance = component.instance(); + + expect(commentInstance.state.status).toBe('COMPOSE_DISALLOWED'); + global.Date.now = realDateNow; + }); + test('Modal & Comment status do not show ', () => { const component = getComposeCommentWrapper({}); // Comment compsoe box is there @@ -176,7 +206,7 @@ describe('Compose Comment test', () => { expect(component.find('CommentingStatus').exists()).toEqual(true); global.Date.now = realDateNow; }); - + test('Comment Status shows when user just submitted a reply comment that got them muted', () => { const realDateNow = Date.now.bind(global.Date); global.Date.now = () => 0; @@ -360,7 +390,6 @@ describe('Compose Comment test', () => { expect(component.find('MuteModal').exists()).toEqual(true); expect(component.find('MuteModal').props().showFeedback).toBe(false); }); - test('shouldShowMuteModal is false when muteStatus is undefined ', () => { const commentInstance = getComposeCommentWrapper({}).instance(); expect(commentInstance.shouldShowMuteModal()).toBe(false); From 94472b7a4801ad5ef1928ff3e73cb46fbf5293fc Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 11 Jan 2021 11:19:18 -0500 Subject: [PATCH 19/98] circleci split integration tests into separate jobs for tap and jest --- .circleci/config.yml | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3b709bc35..d9570b4ce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,16 +68,26 @@ aliases: python get-pip.py pip install -r requirements.txt npm run deploy - - &integration + - &integration_jest <<: *defaults steps: - *restore_git_cache - checkout - *restore_npm_cache - run: - name: "integration tests" + name: "integration tests with Jest" command: | - npm run test:integration:remote + npm run test:integration:jest:remote + - &integration_tap + <<: *defaults + steps: + - *restore_git_cache + - checkout + - *restore_npm_cache + - run: + name: "integration tests with Tap" + command: | + npm run test:smoke:sauce jobs: @@ -89,10 +99,14 @@ jobs: <<: *deploy deploy-production: # <<: *deploy - integration-staging: - <<: *integration - integration-production: - # <<: *integration + integration-staging-jest: + <<: *integration_jest + integration-staging-tap: + <<: *integration_tap + integration-production-jest: + # <<: *integration_jest + integration-production-tap: + # <<: *integration_tap workflows: build-test-deploy: From 151db7540591e9a222bfe1596014ccbd5b4b1c59 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 11 Jan 2021 11:20:33 -0500 Subject: [PATCH 20/98] circleci turn on staging deploy and ingegration tests (2 jobs) --- .circleci/config.yml | 62 ++++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d9570b4ce..b982626dd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -109,7 +109,7 @@ jobs: # <<: *integration_tap workflows: - build-test-deploy: + build-test-deploy-all-staging-1: jobs: - build-staging: context: @@ -121,27 +121,39 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ - # - deploy-staging: - # context: - # - scratch-www-all - # - scratch-www-staging - # requires: - # - build-staging - # filters: - # branches: - # only: - # - develop - # - /^hotfix\/.*/ - # - /^release\/.*/ - # - integration-staging: - # context: - # - scratch-www-all - # - scratch-www-staging - # requires: - # - deploy-staging - # filters: - # branches: - # only: - # - develop - # - /^hotfix\/.*/ - # - /^release\/.*/ + - deploy-staging: + context: + - scratch-www-all + - scratch-www-staging + requires: + - build-staging + filters: + branches: + only: + - develop + - /^hotfix\/.*/ + - /^release\/.*/ + - integration-staging-jest: + context: + - scratch-www-all + - scratch-www-staging + requires: + - deploy-staging + filters: + branches: + only: + - develop + - /^hotfix\/.*/ + - /^release\/.*/ + - integration-staging-tap: + context: + - scratch-www-all + - scratch-www-staging + requires: + - deploy-staging + filters: + branches: + only: + - develop + - /^hotfix\/.*/ + - /^release\/.*/ From bb337af4af134a74c2dd563e1128481934eac12b Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 11 Jan 2021 11:24:09 -0500 Subject: [PATCH 21/98] circleci turn on workflow for circleci-configure-tests branch --- .circleci/config.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index b982626dd..8582d1c90 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -121,6 +121,7 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ + - circleci-configure-tests - deploy-staging: context: - scratch-www-all @@ -133,6 +134,7 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ + - circleci-configure-tests - integration-staging-jest: context: - scratch-www-all @@ -145,6 +147,7 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ + - circleci-configure-tests - integration-staging-tap: context: - scratch-www-all @@ -157,3 +160,4 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ + - circleci-configure-tests From 221cb7c7b94b6ebf4d05df57e035d76721b51e2e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 11 Jan 2021 11:25:38 -0500 Subject: [PATCH 22/98] circleci turn on workflow for real --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8582d1c90..ae7aa2aaa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -121,7 +121,7 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ - - circleci-configure-tests + - circleCI-configure-tests - deploy-staging: context: - scratch-www-all @@ -134,7 +134,7 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ - - circleci-configure-tests + - circleCI-configure-tests - integration-staging-jest: context: - scratch-www-all @@ -147,7 +147,7 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ - - circleci-configure-tests + - circleCI-configure-tests - integration-staging-tap: context: - scratch-www-all @@ -160,4 +160,4 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ - - circleci-configure-tests + - circleCI-configure-tests From 2dd199d4a8c9d5dd8ad31ecf6a786757973f1a5e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 12 Jan 2021 11:38:50 -0500 Subject: [PATCH 23/98] circleci setup jest-junit to output junit test results --- .gitignore | 1 + package-lock.json | 479 +++++++++++++++++++++++++--------------------- package.json | 11 +- 3 files changed, 274 insertions(+), 217 deletions(-) diff --git a/.gitignore b/.gitignore index 1325f56fb..0fd5e6192 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ deploy.zip ENV # Test +/test/results/* /.nyc_output /coverage /bin/lib/localized-urls.json diff --git a/package-lock.json b/package-lock.json index 67a30d6c1..35da91445 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,207 +15,6 @@ "turntable-camera-controller": "^3.0.0" } }, - "@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", - "dev": true, - "requires": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", - "chokidar": "^3.4.0", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -1353,9 +1152,9 @@ "dev": true }, "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", "requires": { "regenerator-runtime": "^0.13.4" }, @@ -4879,9 +4678,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001191", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz", - "integrity": "sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==", + "version": "1.0.30001203", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001203.tgz", + "integrity": "sha512-/I9tvnzU/PHMH7wBPrfDMSuecDeUKerjCPX7D0xBbaJZPxoT9m+yYxt0zCTkcijCkjTdim3H56Zm0i5Adxch4w==", "dev": true }, "canvas-fit": { @@ -5369,9 +5168,9 @@ "dev": true }, "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "colormap": { @@ -13063,6 +12862,47 @@ } } }, + "jest-junit": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-12.0.0.tgz", + "integrity": "sha512-+8K35LlboWiPuCnXSyiid7rFdxNlpCWWM20WEYe6IZH6psfUWKZmSpSRQ5tk0C0cBeDsvsnIzcef5mYhyJsbug==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "strip-ansi": "^5.2.0", + "uuid": "^3.3.3", + "xml": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, "jest-leak-detector": { "version": "23.6.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz", @@ -15848,9 +15688,9 @@ } }, "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", "dev": true }, "node-sass": { @@ -21203,9 +21043,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.692", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", - "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", + "version": "1.3.693", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", + "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", "dev": true }, "has-flag": { @@ -21502,6 +21342,207 @@ "babel-plugin-react-intl": "^3.0.1", "react-intl": "^2.8.0", "transifex": "1.6.6" + }, + "dependencies": { + "@babel/cli": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", + "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "dev": true, + "requires": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "scratch-paint": { @@ -28201,6 +28242,12 @@ } } }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", diff --git a/package.json b/package.json index 3ff0681aa..9c2c25062 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,7 @@ "html-webpack-plugin": "^3.2.0", "iso-3166-2": "0.4.0", "jest": "^23.6.0", + "jest-junit": "12.0.0", "keymirror": "0.1.1", "lodash.bindall": "4.4.0", "lodash.defaultsdeep": "4.6.1", @@ -139,7 +140,15 @@ "moduleNameMapper": { "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/test/__mocks__/fileMock.js", "\\.(css|less|scss)$": "/test/__mocks__/styleMock.js" - } + }, + "reporters": [ + "default", + "jest-junit" + ] + }, + "jest-junit": { + "outputDirectory": "./test/results", + "outputName": "jest-integration-results.xml" }, "nyc": { "include": [ From 35c6fbdc8ec7e5d92618dcbc37d36d30ebe9dc2e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 12 Jan 2021 12:01:58 -0500 Subject: [PATCH 24/98] circleci store junit output of integration tests as test result and artifact --- .circleci/config.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index ae7aa2aaa..e245c4321 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -78,6 +78,10 @@ aliases: name: "integration tests with Jest" command: | npm run test:integration:jest:remote + - store_test_results: + path: test/results + - store_artifacts: + path: test/results - &integration_tap <<: *defaults steps: From 2feb4d71911f14dad44bcb2fca91ee2921791f49 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 20 Jan 2021 10:24:38 -0500 Subject: [PATCH 25/98] update tap to version 14.11.0 --- package-lock.json | 165 +++++++++++++++------------------------------- package.json | 2 +- 2 files changed, 54 insertions(+), 113 deletions(-) diff --git a/package-lock.json b/package-lock.json index 35da91445..76ec59c51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -318,9 +318,9 @@ } }, "electron-to-chromium": { - "version": "1.3.692", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", - "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", + "version": "1.3.693", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", + "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", "dev": true }, "semver": { @@ -5530,9 +5530,9 @@ }, "dependencies": { "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -5544,56 +5544,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } } } }, @@ -6390,11 +6340,6 @@ "strip-bom": "^3.0.0" }, "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -8659,11 +8604,6 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -15966,12 +15906,6 @@ "color-convert": "^1.9.0" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -16024,9 +15958,9 @@ } }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -16139,9 +16073,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { @@ -16161,16 +16095,6 @@ "y18n": "^4.0.0", "yargs-parser": "^13.1.2" } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -16357,9 +16281,9 @@ } }, "opener": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", - "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true }, "optical-properties": { @@ -23436,9 +23360,9 @@ } }, "tap": { - "version": "14.10.8", - "resolved": "https://registry.npmjs.org/tap/-/tap-14.10.8.tgz", - "integrity": "sha512-aamkWefJ0G8GGf9t5LWFtrNF5tfVd8ut/tDUianLF6N4621ERITIl0qkocWCVEnsM6hZnaMKa+SggSAaBlC2tA==", + "version": "14.11.0", + "resolved": "https://registry.npmjs.org/tap/-/tap-14.11.0.tgz", + "integrity": "sha512-z8qnNFVyIjLh/bNoTLFRkEk09XZUDAZbCkz/BjvHHly3ao5H+y60gPnedALfheEjA6dA4tpp/mrKq2NWlMuq0A==", "dev": true, "requires": { "@types/react": "^16.9.16", @@ -23471,7 +23395,7 @@ "rimraf": "^2.7.1", "signal-exit": "^3.0.0", "source-map-support": "^0.5.16", - "stack-utils": "^1.0.2", + "stack-utils": "^1.0.3", "tap-mocha-reporter": "^5.0.0", "tap-parser": "^10.0.1", "tap-yaml": "^1.0.0", @@ -23853,9 +23777,9 @@ "dev": true }, "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "braces": { @@ -23908,19 +23832,19 @@ } }, "chokidar": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", - "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.2", + "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.5.0" } }, "ci-info": { @@ -24023,9 +23947,9 @@ } }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", "dev": true, "optional": true }, @@ -24399,9 +24323,9 @@ "dev": true }, "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -24426,9 +24350,9 @@ } }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -24542,6 +24466,23 @@ "source-map": "^0.6.0" } }, + "stack-utils": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz", + "integrity": "sha512-IPDJfugEGbfizBwBZRZ3xpccMdRyP5lqsBWXGQWimVjua/ccLCeMOAVjlc1R7LxFjo5sEDhyNIXd8mo/AiDS9w==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, "string-length": { "version": "3.1.0", "bundled": true, diff --git a/package.json b/package.json index 9c2c25062..7636e490c 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "selenium-webdriver": "3.6.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", - "tap": "14.10.8", + "tap": "14.11.0", "url-loader": "2.3.0", "webpack": "^4.46.0", "webpack-bundle-analyzer": "^4.4.0", From 12126c5308798c30bfa3f22b5059d52aaa2923f8 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 20 Jan 2021 10:47:38 -0500 Subject: [PATCH 26/98] Tap integration outputs raw-tap and converts it to xunit report --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7636e490c..b7b1e2905 100644 --- a/package.json +++ b/package.json @@ -10,9 +10,10 @@ "test:integration:jest": "jest ./test/integration/*.test.js", "test:integration:remote": "npm run test:integration:jest:remote && npm run test:smoke:sauce", "test:integration:jest:remote": "SMOKE_REMOTE=true jest ./test/integration/*.test.js", - "test:smoke": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R classic", + "test:smoke": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R classic --output-file ./test/results/integration-raw-tap.tap", "test:smoke:verbose": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R spec", - "test:smoke:sauce": "SMOKE_REMOTE=true tap ./test/integration-legacy/smoke-testing/*.js --timeout=60000 --no-coverage -R classic", + "test:smoke:sauce": "SMOKE_REMOTE=true tap ./test/integration-legacy/smoke-testing/*.js --timeout=60000 --no-coverage -R classic --output-file ./test/results/integration-raw-tap.tap", + "test:smoke:convertReportToXunit": "tap ./test/results/integration-raw-tap.tap --no-coverage -R xunit > ./test/results/integration-tap-results.xml", "test:unit": "npm run test:unit:jest && npm run test:unit:tap", "test:unit:jest": "jest ./test/unit/ && jest ./test/localization/*.test.js", "test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic", From 06b96089364a3f3a4a2613e64a5f06b3a2f3f394 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 20 Jan 2021 10:49:14 -0500 Subject: [PATCH 27/98] update jest integration test output name --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b7b1e2905..1fc55d182 100644 --- a/package.json +++ b/package.json @@ -149,7 +149,7 @@ }, "jest-junit": { "outputDirectory": "./test/results", - "outputName": "jest-integration-results.xml" + "outputName": "integration-jest-results.xml" }, "nyc": { "include": [ From cf328daa949596666eac3add1546808d1f205dff Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 20 Jan 2021 10:54:47 -0500 Subject: [PATCH 28/98] circleci convert integration-tap results to xml and store --- .circleci/config.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index e245c4321..bfb196a18 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -92,6 +92,11 @@ aliases: name: "integration tests with Tap" command: | npm run test:smoke:sauce + npm run test:smoke:convertReportToXunit + - store_test_results: + path: test/results + - store_artifacts: + path: test/results jobs: From 83edbca78903b45c319e48fee618fa31d861b13b Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 25 Jan 2021 11:32:37 -0500 Subject: [PATCH 29/98] circleci fix tap integration test error rebuild yargs --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index bfb196a18..763e7f84d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -91,6 +91,7 @@ aliases: - run: name: "integration tests with Tap" command: | + npm rebuild yargs npm run test:smoke:sauce npm run test:smoke:convertReportToXunit - store_test_results: From 0f9a7b7ad12e43ae7b1d96ad2e4d8d3729d8dbe6 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 25 Jan 2021 14:58:36 -0500 Subject: [PATCH 30/98] circleci use python3 for get-pip.py --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 763e7f84d..5c48bf20a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,7 +65,7 @@ aliases: name: "deploy to staging" command: | curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py - python get-pip.py + python3 get-pip.py pip install -r requirements.txt npm run deploy - &integration_jest From eb1730fb066424c624098a3483e927aa3be5d408 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 25 Jan 2021 16:23:13 -0500 Subject: [PATCH 31/98] circleci try install older version of pip --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5c48bf20a..6355fe7ce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,7 +65,7 @@ aliases: name: "deploy to staging" command: | curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py - python3 get-pip.py + python get-pip.py pip=20.3.4 pip install -r requirements.txt npm run deploy - &integration_jest From fa017142802d83bbc0bde5a2398881b94a6a7ebc Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 25 Jan 2021 16:30:00 -0500 Subject: [PATCH 32/98] circleci fix syntax for selecting pip version --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6355fe7ce..7f645bfce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,7 +65,7 @@ aliases: name: "deploy to staging" command: | curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py - python get-pip.py pip=20.3.4 + python get-pip.py pip==20.3.4 pip install -r requirements.txt npm run deploy - &integration_jest From 6bacbc3fb11d8a030d06a33750c483ca747d342c Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 25 Jan 2021 16:37:16 -0500 Subject: [PATCH 33/98] circleci try python3 again --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7f645bfce..2c5fd58fc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,7 +65,7 @@ aliases: name: "deploy to staging" command: | curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py - python get-pip.py pip==20.3.4 + python3 get-pip.py pip==20.3.4 pip install -r requirements.txt npm run deploy - &integration_jest From 71a7e9624c773b0eb7ad82b3c95772807aa59fe1 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 25 Jan 2021 16:50:55 -0500 Subject: [PATCH 34/98] circleci download 2.7 version of get-pip.py --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2c5fd58fc..dc2dc6739 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -64,8 +64,8 @@ aliases: - run: name: "deploy to staging" command: | - curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py - python3 get-pip.py pip==20.3.4 + curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py + python get-pip.py pip==20.3.4 pip install -r requirements.txt npm run deploy - &integration_jest From 3046a3f87f735e9fbc507633443c7bc261c651e7 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 25 Jan 2021 17:02:57 -0500 Subject: [PATCH 35/98] circleci try newer not newest version of get-pip.py --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dc2dc6739..e7072803b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -64,7 +64,7 @@ aliases: - run: name: "deploy to staging" command: | - curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py + curl https://bootstrap.pypa.io/3.4/get-pip.py -o get-pip.py python get-pip.py pip==20.3.4 pip install -r requirements.txt npm run deploy From 60eea8b982560d7d1363d01f99208842eb9a580c Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 25 Jan 2021 17:11:32 -0500 Subject: [PATCH 36/98] circleci config go back to using get-pip version 2.7 --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e7072803b..dc2dc6739 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -64,7 +64,7 @@ aliases: - run: name: "deploy to staging" command: | - curl https://bootstrap.pypa.io/3.4/get-pip.py -o get-pip.py + curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py python get-pip.py pip==20.3.4 pip install -r requirements.txt npm run deploy From 31090d726d6447de540021c01bd215c28ed06f33 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Thu, 28 Jan 2021 09:54:06 -0500 Subject: [PATCH 37/98] circleci make results directory before running tap tests --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dc2dc6739..93fcc1dda 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -91,7 +91,7 @@ aliases: - run: name: "integration tests with Tap" command: | - npm rebuild yargs + mkdir ./test/results npm run test:smoke:sauce npm run test:smoke:convertReportToXunit - store_test_results: From 92ee636466d6fec4eaa130bc68de8d1938656ab5 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Feb 2021 10:32:39 -0500 Subject: [PATCH 38/98] circleci output jest unit tests to different file than integration results --- package.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 1fc55d182..1882e3a1f 100644 --- a/package.json +++ b/package.json @@ -9,13 +9,13 @@ "test:integration": "npm run test:integration:jest && npm run test:smoke", "test:integration:jest": "jest ./test/integration/*.test.js", "test:integration:remote": "npm run test:integration:jest:remote && npm run test:smoke:sauce", - "test:integration:jest:remote": "SMOKE_REMOTE=true jest ./test/integration/*.test.js", + "test:integration:jest:remote": "SMOKE_REMOTE=true JEST_JUNIT_OUTPUT_NAME=integration-jest-results.xml jest ./test/integration/*.test.js", "test:smoke": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R classic --output-file ./test/results/integration-raw-tap.tap", "test:smoke:verbose": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R spec", "test:smoke:sauce": "SMOKE_REMOTE=true tap ./test/integration-legacy/smoke-testing/*.js --timeout=60000 --no-coverage -R classic --output-file ./test/results/integration-raw-tap.tap", "test:smoke:convertReportToXunit": "tap ./test/results/integration-raw-tap.tap --no-coverage -R xunit > ./test/results/integration-tap-results.xml", "test:unit": "npm run test:unit:jest && npm run test:unit:tap", - "test:unit:jest": "jest ./test/unit/ && jest ./test/localization/*.test.js", + "test:unit:jest": "JEST_JUNIT_OUTPUT_NAME=unit-jest-results.xml jest ./test/unit/ && JEST_JUNIT_OUTPUT_NAME=localization-jest-results.xml jest ./test/localization/*.test.js", "test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic", "test:coverage": "tap ./test/{unit-legacy,localization-legacy}/*.js --coverage --coverage-report=lcov", "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail", @@ -148,8 +148,7 @@ ] }, "jest-junit": { - "outputDirectory": "./test/results", - "outputName": "integration-jest-results.xml" + "outputDirectory": "./test/results" }, "nyc": { "include": [ From 8d9bd28097738f2fc8f895bcea788889250f5e0f Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Feb 2021 10:35:17 -0500 Subject: [PATCH 39/98] circleci create xunit test reports for tap unit tests --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index 1882e3a1f..9e895360a 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "test:unit": "npm run test:unit:jest && npm run test:unit:tap", "test:unit:jest": "JEST_JUNIT_OUTPUT_NAME=unit-jest-results.xml jest ./test/unit/ && JEST_JUNIT_OUTPUT_NAME=localization-jest-results.xml jest ./test/localization/*.test.js", "test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic", + "test:unit:tap:ci": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic --output-file ./test/results/unit-raw.tap", + "test:unit:convertReportToXunit": "tap ./test/results/unit-raw-tap.tap --no-coverage -R xunit > ./test/results/unit-tap-results.xml", "test:coverage": "tap ./test/{unit-legacy,localization-legacy}/*.js --coverage --coverage-report=lcov", "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail", "clean": "rm -rf ./build && rm -rf ./intl && mkdir -p build && mkdir -p intl", From 6634c6c0673faadce9629a4ea7cd716e47bf204e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Feb 2021 10:36:44 -0500 Subject: [PATCH 40/98] circleci split build run step into lint, build, and test steps, store test results --- .circleci/config.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 93fcc1dda..97a37dc4b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -47,13 +47,27 @@ aliases: - checkout - *restore_npm_cache - run: - name: "Run npm test to build" + name: "setup and run lint tests" command: | npm --production=false install - WWW_VERSION=${CIRCLE_SHA1:0:5} npm run test + npm run test:lint + - run: + name: "run npm build" + command: | + WWW_VERSION=${CIRCLE_SHA1:0:5} npm run build + - run: + name: "Run unit tests" + command: | + npm run test:unit:jest + npm run test:unit:tap:ci + npm run test:unit:convertReportToXunit - *save_npm_cache - *save_git_cache - *save_build_cache + - store_test_results: + path: test/results + - store_artifacts: + path: test/results - &deploy <<: *defaults steps: From 090eeb3438dad3268a7bfd694624300054a88086 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Feb 2021 11:03:41 -0500 Subject: [PATCH 41/98] circleci make test/results directory before tests --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 97a37dc4b..0ab7b37ec 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -50,6 +50,7 @@ aliases: name: "setup and run lint tests" command: | npm --production=false install + mkdir ./test/results npm run test:lint - run: name: "run npm build" From a80f55c018cbb087cdeac4bcd1e8969ddd0dfc1a Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Feb 2021 11:15:26 -0500 Subject: [PATCH 42/98] circleci tap unit tests produce correctly named oput file --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9e895360a..4a64951b4 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "test:unit:jest": "JEST_JUNIT_OUTPUT_NAME=unit-jest-results.xml jest ./test/unit/ && JEST_JUNIT_OUTPUT_NAME=localization-jest-results.xml jest ./test/localization/*.test.js", "test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic", "test:unit:tap:ci": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic --output-file ./test/results/unit-raw.tap", - "test:unit:convertReportToXunit": "tap ./test/results/unit-raw-tap.tap --no-coverage -R xunit > ./test/results/unit-tap-results.xml", + "test:unit:convertReportToXunit": "tap ./test/results/unit-raw.tap --no-coverage -R xunit > ./test/results/unit-tap-results.xml", "test:coverage": "tap ./test/{unit-legacy,localization-legacy}/*.js --coverage --coverage-report=lcov", "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail", "clean": "rm -rf ./build && rm -rf ./intl && mkdir -p build && mkdir -p intl", From 9f82c7ca7c85078fc37d08eb3d1eec21a61b4dca Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Feb 2021 11:40:11 -0500 Subject: [PATCH 43/98] circleci have eslint output junit xml results --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 4a64951b4..e58dbdbac 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "start": "node ./dev-server/index.js", "test": "npm run test:lint && npm run build && npm run test:unit", "test:lint": "eslint . --ext .js,.jsx,.json", + "test:lint:ci": "eslint . --ext .js,.jsx,.json --format junit -o ./test/results/lint-results.xml", "test:integration": "npm run test:integration:jest && npm run test:smoke", "test:integration:jest": "jest ./test/integration/*.test.js", "test:integration:remote": "npm run test:integration:jest:remote && npm run test:smoke:sauce", From d565d24ca114370e46d7c88799841707770547c1 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Feb 2021 11:41:05 -0500 Subject: [PATCH 44/98] circleci split setup and lint run steps, use junit output for lint tests --- .circleci/config.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0ab7b37ec..ddedba9e3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -47,11 +47,14 @@ aliases: - checkout - *restore_npm_cache - run: - name: "setup and run lint tests" + name: "setup" command: | npm --production=false install mkdir ./test/results - npm run test:lint + - run: + name: "run lint tests" + command: | + npm run test:lint:ci - run: name: "run npm build" command: | From d41eb6677ee27c05614d983e48d9315cf601b1b6 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Feb 2021 15:06:26 -0500 Subject: [PATCH 45/98] =?UTF-8?q?circleci=20don=E2=80=99t=20restore=20old?= =?UTF-8?q?=20caches=20for=20npm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ddedba9e3..358d4231c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,7 +27,6 @@ aliases: restore_cache: keys: - v1-npm-{{ checksum "package-lock.json" }} - - v1-npm- - &save_build_cache save_cache: paths: From 8d5fc61d00c9ac20d3c9bc8a2516cfc7cadea9dd Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 3 Feb 2021 10:36:29 -0500 Subject: [PATCH 46/98] circleci use ci instead of install in build job --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 358d4231c..e030ef7df 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,11 +44,10 @@ aliases: steps: - *restore_git_cache - checkout - - *restore_npm_cache - run: name: "setup" command: | - npm --production=false install + npm --production=false ci mkdir ./test/results - run: name: "run lint tests" From 8ec66ec3930c24e8a7aa55c5da0857be6acda797 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 8 Feb 2021 10:37:10 -0500 Subject: [PATCH 47/98] circleci change docker image to use python3.9.1-node-browsers --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e030ef7df..22f852239 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 aliases: - &defaults docker: - - image: circleci/node:12-browsers + - image: circleci/python:3.9.1-node-browsers auth: username: $DOCKERHUB_USERNAME password: $DOCKERHUB_PASSWORD From fd5e919b82bfeaf34990b7d34e040d9738aca161 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 8 Feb 2021 10:52:53 -0500 Subject: [PATCH 48/98] circleci update to latest pip for deploy job --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 22f852239..40e19ca37 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -81,7 +81,7 @@ aliases: name: "deploy to staging" command: | curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py - python get-pip.py pip==20.3.4 + python get-pip.py pip==21.0.1 pip install -r requirements.txt npm run deploy - &integration_jest From db245d9651ede2a031a1bbf043a3f2e142e36a8c Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 8 Feb 2021 11:52:19 -0500 Subject: [PATCH 49/98] =?UTF-8?q?circleci=20use=20s3cmd=20version=202.1.0,?= =?UTF-8?q?=20don=E2=80=99t=20use=20requirements.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 40e19ca37..0f356e41b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -82,7 +82,7 @@ aliases: command: | curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py python get-pip.py pip==21.0.1 - pip install -r requirements.txt + pip install s3cmd==2.1.0 npm run deploy - &integration_jest <<: *defaults From 68bd53313beb8e0caf8aff6cffcb3848bc752e5f Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 8 Feb 2021 13:38:34 -0500 Subject: [PATCH 50/98] circleci use an older version of python (3.8.7) so s3cmd will run s3cmd does not work with python 3.9.1 yet. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0f356e41b..c43677397 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 aliases: - &defaults docker: - - image: circleci/python:3.9.1-node-browsers + - image: circleci/python:3.8.7-node-browsers auth: username: $DOCKERHUB_USERNAME password: $DOCKERHUB_PASSWORD From cd9137f2372e90a51907b97c9daea8b9b33a8e2e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 9 Feb 2021 15:21:59 -0500 Subject: [PATCH 51/98] circleci use node12 docker img, install python3.8 --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c43677397..3e1032519 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 aliases: - &defaults docker: - - image: circleci/python:3.8.7-node-browsers + - image: circleci/node:12.20.1-browsers auth: username: $DOCKERHUB_USERNAME password: $DOCKERHUB_PASSWORD @@ -80,6 +80,8 @@ aliases: - run: name: "deploy to staging" command: | + sudo apt update + sudo apt install python3.8 curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py python get-pip.py pip==21.0.1 pip install s3cmd==2.1.0 From 1bd83930fb154782b2e8f36967c156b167a8f2d6 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 9 Feb 2021 15:33:31 -0500 Subject: [PATCH 52/98] circleci fix install python3.8 --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3e1032519..ac331b015 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,6 +80,9 @@ aliases: - run: name: "deploy to staging" command: | + sudo apt update + sudo apt install software-properties-common + sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.8 curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py From 71e9ccd0013fd7663d6f06e7920325d6df669183 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 9 Feb 2021 15:57:20 -0500 Subject: [PATCH 53/98] circleci autoconfirm package installation --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ac331b015..4aac023ef 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -82,7 +82,7 @@ aliases: command: | sudo apt update sudo apt install software-properties-common - sudo add-apt-repository ppa:deadsnakes/ppa + sudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt update sudo apt install python3.8 curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py From 144cf0a16552c61da2a40278ebe4e45a530923b5 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 9 Feb 2021 16:17:37 -0500 Subject: [PATCH 54/98] circleci update python install --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4aac023ef..3d8333545 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -82,7 +82,7 @@ aliases: command: | sudo apt update sudo apt install software-properties-common - sudo add-apt-repository ppa:deadsnakes/ppa -y + sudo add-apt-repository -y ppa:deadsnakes/ppa sudo apt update sudo apt install python3.8 curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py From 98aff9920b4d77dd111bf824375575b42d5512f4 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 9 Feb 2021 16:27:00 -0500 Subject: [PATCH 55/98] circleci fix python install check ubuntu version --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3d8333545..14bc46b6f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,9 +80,10 @@ aliases: - run: name: "deploy to staging" command: | + lsb_release -d sudo apt update sudo apt install software-properties-common - sudo add-apt-repository -y ppa:deadsnakes/ppa + sudo add-apt-repository -y ppa:deadsnakes/ppa sudo apt update sudo apt install python3.8 curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py From 69cedde787020e38c13ac39e49abf92742462e43 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 9 Feb 2021 16:35:16 -0500 Subject: [PATCH 56/98] circleci remove checking ubuntu version --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 14bc46b6f..aaa14d680 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,7 +80,6 @@ aliases: - run: name: "deploy to staging" command: | - lsb_release -d sudo apt update sudo apt install software-properties-common sudo add-apt-repository -y ppa:deadsnakes/ppa From ec1fea2efd883dcbbea0325adce75d664ce80e40 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 10 Feb 2021 10:07:51 -0500 Subject: [PATCH 57/98] circleci use next-generation docker image --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index aaa14d680..c2b921a67 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 aliases: - &defaults docker: - - image: circleci/node:12.20.1-browsers + - image: cimg/node:12.20.1-browsers auth: username: $DOCKERHUB_USERNAME password: $DOCKERHUB_PASSWORD From ba17ae952f056a239820d44c2685c55a1ec996f3 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 10 Feb 2021 10:08:50 -0500 Subject: [PATCH 58/98] circleci move python setup to its own run step --- .circleci/config.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c2b921a67..cca573f83 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -78,7 +78,7 @@ aliases: - *restore_npm_cache - *restore_build_cache - run: - name: "deploy to staging" + name: "setup python" command: | sudo apt update sudo apt install software-properties-common @@ -88,6 +88,9 @@ aliases: curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py python get-pip.py pip==21.0.1 pip install s3cmd==2.1.0 + - run: + name: "deploy to staging" + command: | npm run deploy - &integration_jest <<: *defaults From d1d4ac696f5d352d01da79b1c453a20593fe6369 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 10 Feb 2021 10:25:43 -0500 Subject: [PATCH 59/98] circleci remove update python --- .circleci/config.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cca573f83..24aec8f61 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -77,17 +77,6 @@ aliases: - checkout - *restore_npm_cache - *restore_build_cache - - run: - name: "setup python" - command: | - sudo apt update - sudo apt install software-properties-common - sudo add-apt-repository -y ppa:deadsnakes/ppa - sudo apt update - sudo apt install python3.8 - curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py - python get-pip.py pip==21.0.1 - pip install s3cmd==2.1.0 - run: name: "deploy to staging" command: | From 52eff51b403dc98d1f5a504f922e1c8c4a5b51e0 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 10 Feb 2021 10:34:25 -0500 Subject: [PATCH 60/98] circleci add install s3cmd back in --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 24aec8f61..4344bcf72 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,6 +80,7 @@ aliases: - run: name: "deploy to staging" command: | + pip install s3cmd==2.1.0 npm run deploy - &integration_jest <<: *defaults From 2c1910774610bc4cd2ad1da29b4160031e69918c Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 10 Feb 2021 10:48:29 -0500 Subject: [PATCH 61/98] circleci re-add python setup step, include install pip --- .circleci/config.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4344bcf72..0e6f1a236 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -77,10 +77,15 @@ aliases: - checkout - *restore_npm_cache - *restore_build_cache + - run: + name: "setup python" + command: | + curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py + python get-pip.py pip==21.0.1 + pip install s3cmd==2.1.0 - run: name: "deploy to staging" command: | - pip install s3cmd==2.1.0 npm run deploy - &integration_jest <<: *defaults From b615a038c1d42cadd9e450160e8c87d22d5165ba Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 10 Feb 2021 10:56:52 -0500 Subject: [PATCH 62/98] circleci use python3 instead of python to get pip --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0e6f1a236..ec68941ea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -81,7 +81,7 @@ aliases: name: "setup python" command: | curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py - python get-pip.py pip==21.0.1 + python3 get-pip.py pip==21.0.1 pip install s3cmd==2.1.0 - run: name: "deploy to staging" From e6abb412fbe3a52085069dfa0de8dc07494cafff Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 10 Feb 2021 11:14:14 -0500 Subject: [PATCH 63/98] circleci use version 3.5 of get-pip.py, not 2.7 --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ec68941ea..5561d43f3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,7 +80,7 @@ aliases: - run: name: "setup python" command: | - curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py + curl https://bootstrap.pypa.io/3.5/get-pip.py -o get-pip.py python3 get-pip.py pip==21.0.1 pip install s3cmd==2.1.0 - run: From e4ceaebdc99fdfce6f23836214a8a93e8f1d8033 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Thu, 18 Feb 2021 14:36:45 -0500 Subject: [PATCH 64/98] circleci turn on build job for production --- .circleci/config.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5561d43f3..598a2d95b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -123,7 +123,7 @@ jobs: build-staging: <<: *build build-production: - # <<: *build + <<: *build deploy-staging: <<: *deploy deploy-production: @@ -151,6 +151,14 @@ workflows: - /^hotfix\/.*/ - /^release\/.*/ - circleCI-configure-tests + - build-production: + context: + - scratch-www-all + - scratch-www-production + filters: + branches: + only: + - master - deploy-staging: context: - scratch-www-all From 54a81bf1c50b82bbfcc4d267a8d00b3926879e56 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Thu, 18 Feb 2021 14:42:27 -0500 Subject: [PATCH 65/98] circleci turn off deploy to staging with circle --- .circleci/config.yml | 78 ++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 598a2d95b..4dd8ffcce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -159,42 +159,42 @@ workflows: branches: only: - master - - deploy-staging: - context: - - scratch-www-all - - scratch-www-staging - requires: - - build-staging - filters: - branches: - only: - - develop - - /^hotfix\/.*/ - - /^release\/.*/ - - circleCI-configure-tests - - integration-staging-jest: - context: - - scratch-www-all - - scratch-www-staging - requires: - - deploy-staging - filters: - branches: - only: - - develop - - /^hotfix\/.*/ - - /^release\/.*/ - - circleCI-configure-tests - - integration-staging-tap: - context: - - scratch-www-all - - scratch-www-staging - requires: - - deploy-staging - filters: - branches: - only: - - develop - - /^hotfix\/.*/ - - /^release\/.*/ - - circleCI-configure-tests + # - deploy-staging: + # context: + # - scratch-www-all + # - scratch-www-staging + # requires: + # - build-staging + # filters: + # branches: + # only: + # - develop + # - /^hotfix\/.*/ + # - /^release\/.*/ + # - circleCI-configure-tests + # - integration-staging-jest: + # context: + # - scratch-www-all + # - scratch-www-staging + # requires: + # - deploy-staging + # filters: + # branches: + # only: + # - develop + # - /^hotfix\/.*/ + # - /^release\/.*/ + # - circleCI-configure-tests + # - integration-staging-tap: + # context: + # - scratch-www-all + # - scratch-www-staging + # requires: + # - deploy-staging + # filters: + # branches: + # only: + # - develop + # - /^hotfix\/.*/ + # - /^release\/.*/ + # - circleCI-configure-tests From 7b208b68594af670de8d96f24e4fba093a515a48 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Thu, 18 Feb 2021 14:43:54 -0500 Subject: [PATCH 66/98] =?UTF-8?q?circleci=20don=E2=80=99t=20run=20workflow?= =?UTF-8?q?=20on=20circleCI-configure-tests=20branch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4dd8ffcce..8990b6b34 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -150,7 +150,6 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ - - circleCI-configure-tests - build-production: context: - scratch-www-all From 5c5da095fa60fa4ae85a11fbb652d97e7f2a1402 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Thu, 18 Feb 2021 14:45:59 -0500 Subject: [PATCH 67/98] circleci rename workflow --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8990b6b34..0f068782c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -138,7 +138,7 @@ jobs: # <<: *integration_tap workflows: - build-test-deploy-all-staging-1: + build-staging-production: # build-test-deploy jobs: - build-staging: context: From e6ac2a824869523a2c2b5e05264bc3e0bae821c8 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Thu, 18 Feb 2021 15:03:42 -0500 Subject: [PATCH 68/98] circleci remove more references to circleci-configure-tests branch --- .circleci/config.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0f068782c..a535fe34c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -170,7 +170,6 @@ workflows: # - develop # - /^hotfix\/.*/ # - /^release\/.*/ - # - circleCI-configure-tests # - integration-staging-jest: # context: # - scratch-www-all @@ -183,7 +182,6 @@ workflows: # - develop # - /^hotfix\/.*/ # - /^release\/.*/ - # - circleCI-configure-tests # - integration-staging-tap: # context: # - scratch-www-all @@ -196,4 +194,3 @@ workflows: # - develop # - /^hotfix\/.*/ # - /^release\/.*/ - # - circleCI-configure-tests From 83fb28830b6742fca0176b43a3c730b03cb17d5e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Fri, 19 Feb 2021 14:18:55 -0500 Subject: [PATCH 69/98] circleci update package lock after rebase --- package-lock.json | 1799 ++++++++++++++++++++++++++++----------------- 1 file changed, 1122 insertions(+), 677 deletions(-) diff --git a/package-lock.json b/package-lock.json index 76ec59c51..a85a73353 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,134 +24,127 @@ "@babel/highlight": "^7.0.0" } }, - "@babel/compat-data": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.11.tgz", - "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==", - "dev": true - }, "@babel/core": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", - "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.9", - "@babel/helper-compilation-targets": "^7.13.10", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helpers": "^7.13.10", - "@babel/parser": "^7.13.10", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", - "semver": "^6.3.0", + "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", "dev": true, "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.12.11", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.11" } }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", "dev": true }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -216,18 +209,18 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "minimist": { @@ -236,10 +229,10 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "source-map": { @@ -292,45 +285,6 @@ } } }, - "@babel/helper-compilation-targets": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", - "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" - }, - "dependencies": { - "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - } - }, - "electron-to-chromium": { - "version": "1.3.693", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", - "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "@babel/helper-function-name": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", @@ -352,18 +306,18 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", - "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", "dev": true, "requires": { - "@babel/types": "^7.13.0" + "@babel/types": "^7.12.7" }, "dependencies": { "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -372,9 +326,9 @@ } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "to-fast-properties": { @@ -386,18 +340,18 @@ } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" }, "dependencies": { "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -406,9 +360,9 @@ } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "to-fast-properties": { @@ -420,120 +374,120 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", - "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", "dev": true, "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.12.11", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.11" } }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", "dev": true }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -589,9 +543,15 @@ "dev": true }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "source-map": { @@ -618,18 +578,18 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.10" }, "dependencies": { "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -638,9 +598,9 @@ } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "to-fast-properties": { @@ -652,121 +612,121 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", - "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", "dev": true, "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.12.11", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.11" } }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", "dev": true }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -822,9 +782,15 @@ "dev": true }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "source-map": { @@ -851,18 +817,18 @@ } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" }, "dependencies": { "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -871,9 +837,9 @@ } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "to-fast-properties": { @@ -899,121 +865,115 @@ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, - "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", - "dev": true - }, "@babel/helpers": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", - "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", "dev": true, "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.12.11", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.11" } }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", "dev": true }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1069,9 +1029,15 @@ "dev": true }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "source-map": { @@ -1152,9 +1118,9 @@ "dev": true }, "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "version": "7.12.18", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.18.tgz", + "integrity": "sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==", "requires": { "regenerator-runtime": "^0.13.4" }, @@ -1195,12 +1161,12 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "globals": { @@ -1237,12 +1203,12 @@ } }, "@formatjs/ecma402-abstract": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.3.tgz", - "integrity": "sha512-7ijswObmYXabVy5GvcpKG29jbyJ9rGtFdRBdmdQvoDmMo0PwlOl/L08GtrjA4YWLAZ0j2owb2YrRLGNAvLBk+Q==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.2.tgz", + "integrity": "sha512-rscxoLyIwH2x+l15Z4eD580ioO3CkFVoWDLgDtgiOnWzDzpL5EigDRg9V4mINb8W6bQRT1xnCxiRwvw3bgvqrA==", "dev": true, "requires": { - "tslib": "^2.1.0" + "tslib": "^2.0.1" }, "dependencies": { "tslib": { @@ -1254,13 +1220,13 @@ } }, "@formatjs/intl-getcanonicallocales": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.5.7.tgz", - "integrity": "sha512-raPV3Dw7CBC9kPvKdgxkVGgwzYBsQDDG9qXGWblpj/zR+ZJ6Q2V+Co5jZhrviy6lq3qaM2T1Itc0ibvvil1tBw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.5.3.tgz", + "integrity": "sha512-QVBnSPZ32Y80wkXbf36hP9VbyklbOb8edppxFcgO9Lbd47zagllw65Y81QOHEn/j11JcTn2OhW0vea95LHvQmA==", "dev": true, "requires": { "cldr-core": "38", - "tslib": "^2.1.0" + "tslib": "^2.0.1" }, "dependencies": { "tslib": { @@ -1272,15 +1238,15 @@ } }, "@formatjs/intl-locale": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.20.tgz", - "integrity": "sha512-ZrVFxKab+W6jFP6WEYsNW0b7IlGYnCS20fdLN6u0LwPCPYRP5oqHBl0FFVD2+aNnQ1T/21Aol54fCr5LdN/49Q==", + "version": "2.4.14", + "resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.14.tgz", + "integrity": "sha512-BWjAx+1kiN2VvQvx2L41cv8gr40mBDA78PKhVKLq+cPeAp8lwMmnGWUYr1sUXNew31N1acb6fqNJUD5sBGB/wQ==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.6.3", - "@formatjs/intl-getcanonicallocales": "1.5.7", + "@formatjs/ecma402-abstract": "1.5.2", + "@formatjs/intl-getcanonicallocales": "1.5.3", "cldr-core": "38", - "tslib": "^2.1.0" + "tslib": "^2.0.1" }, "dependencies": { "tslib": { @@ -1292,13 +1258,13 @@ } }, "@formatjs/intl-pluralrules": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.0.12.tgz", - "integrity": "sha512-jXXsWGQbBMvuhvxuG1AXBMMNMS1ZphSt/rWsGo6bE3KyWmddJnnVokeUD8E2sTtXoCJZoGUQkOxxjFa/gGLyxw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.0.6.tgz", + "integrity": "sha512-/7Hjg/7EiHuZq4zwd406UoX2w5KtUrLRj9SI8mPOkUpHHqruSskYuJYahKWW7rNytPRaoCLfsigoFS0CDHBjlg==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.6.3", - "tslib": "^2.1.0" + "@formatjs/ecma402-abstract": "1.5.2", + "tslib": "^2.0.1" }, "dependencies": { "tslib": { @@ -1310,13 +1276,13 @@ } }, "@formatjs/intl-relativetimeformat": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.1.3.tgz", - "integrity": "sha512-uUbtr4NRKgHK66bxO98RQlXypfRA5cto6nsFpgwe5wf1SWLBqxcNoo+zdAIftdvHnxPC4QH6oykMf2aYLm+pbA==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.0.4.tgz", + "integrity": "sha512-MUxsXa/cukBa4+8waUS7rQcVz0CKt7UufU9nXcUGh1FR85urqh42dz+3bM2klg51P5Mhove2mecQGeFwOhFYBQ==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.6.3", - "tslib": "^2.1.0" + "@formatjs/ecma402-abstract": "1.5.2", + "tslib": "^2.0.1" }, "dependencies": { "tslib": { @@ -1481,6 +1447,16 @@ } } }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -1776,6 +1752,13 @@ "to-regex": "^3.0.2" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1916,9 +1899,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.13", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.13.tgz", - "integrity": "sha512-CC6amBNND16pTk4K3ZqKIaba6VGKAQs3gMjEY17FVd56oI/ZWt9OhS6riYiWv9s8ENbYUi7p8lgqb0QHQvUKQQ==", + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", + "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -1948,9 +1931,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", + "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -2332,25 +2315,28 @@ } }, "ajv": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", - "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0", - "uri-js": "^3.0.2" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "dependencies": { - "uri-js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", - "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true } } }, @@ -2867,6 +2853,15 @@ "source-map": "^0.5.7" } }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", @@ -2890,7 +2885,8 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "source-map": { "version": "0.5.7", @@ -3706,6 +3702,15 @@ "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", "dev": true }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", @@ -3715,7 +3720,8 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "source-map": { "version": "0.5.7", @@ -3782,10 +3788,20 @@ "lodash": "^4.17.4" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -4015,6 +4031,14 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -6275,18 +6299,12 @@ } }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "ms": "0.7.1" } }, "decamelize": { @@ -7314,12 +7332,12 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "eslint-scope": { @@ -7588,9 +7606,9 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, "events-to-array": { @@ -7760,6 +7778,14 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -7778,9 +7804,9 @@ }, "dependencies": { "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { "ms": "^2.1.1" } @@ -7945,9 +7971,9 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -8166,16 +8192,6 @@ "flat-cache": "^2.0.1" } }, - "file-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", - "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - } - }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -8253,6 +8269,14 @@ "unpipe": "~1.0.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8357,6 +8381,15 @@ } } }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -8604,6 +8637,12 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -8671,18 +8710,18 @@ "dev": true }, "flow-parser": { - "version": "0.129.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.129.0.tgz", - "integrity": "sha512-kzxyoEl8vG0JF0/h/u0UjALXmsGvwU2NBfKczCSNO/It2fKb8hz1gMt05OuZAlMLYXcvgjntWJadIABeKGPK4g==", + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.142.0.tgz", + "integrity": "sha512-gkdbagtuYQw7fo/D1AwCsDpMyxp/bdZkgfq95ev2MoETD1OW84PhU+vitupwte+6AJc2MRJyCdgfWhan8AGhzA==", "dev": true }, "flow-remove-types": { - "version": "2.129.0", - "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.129.0.tgz", - "integrity": "sha512-ucESHZUDQvEFzjRKstZMFBVIciRvXtKpVyPsJT+poIyOIxuPoCLiU/8HHnMBN9XHDWSJ2YJ91mv97n17NmI1Bg==", + "version": "2.142.0", + "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.142.0.tgz", + "integrity": "sha512-KAuLwWGdJTKyyhtX3kwZ+H+XsZ59FHur1fqJ3aWRhMhLUFlGOk5GckHkXZMPU0lHYGoac7to05iBo2vzNZSiUA==", "dev": true, "requires": { - "flow-parser": "^0.129.0", + "flow-parser": "^0.142.0", "pirates": "^3.0.2", "vlq": "^0.2.1" } @@ -9077,6 +9116,11 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -10631,9 +10675,9 @@ } }, "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", "dev": true }, "history": { @@ -10748,6 +10792,12 @@ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11330,21 +11380,6 @@ "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==", "dev": true }, - "intl-messageformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", - "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", - "dev": true, - "requires": { - "intl-messageformat-parser": "1.4.0" - } - }, - "intl-messageformat-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", - "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=", - "dev": true - }, "intl-relativeformat": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", @@ -11645,9 +11680,9 @@ "dev": true }, "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", "dev": true }, "is-plain-obj": { @@ -11865,9 +11900,9 @@ } }, "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -12283,9 +12318,9 @@ } }, "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -14939,12 +14974,6 @@ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -15063,9 +15092,9 @@ } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", "dev": true }, "multipipe": { @@ -15305,9 +15334,9 @@ }, "dependencies": { "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "optional": true, "requires": { @@ -18490,6 +18519,15 @@ "prop-types": "^15.5.10" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "lodash.debounce": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", @@ -18507,6 +18545,12 @@ "requires": { "lodash.debounce": "^3.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -18934,6 +18978,16 @@ } } }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -19192,7 +19246,9 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true } } }, @@ -20216,6 +20272,15 @@ } } }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -20458,7 +20523,8 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "watch": { "version": "0.18.0", @@ -20813,6 +20879,38 @@ "xhr": "2.5.0" }, "dependencies": { + "@babel/cli": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", + "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "dev": true, + "requires": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -20822,6 +20920,17 @@ "color-convert": "^1.9.0" } }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "autoprefixer": { "version": "9.8.6", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", @@ -20843,6 +20952,23 @@ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", "dev": true }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, "browserslist": { "version": "4.16.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", @@ -20878,12 +21004,35 @@ } } }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, "classnames": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", "dev": true }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, "core-js": { "version": "2.5.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", @@ -20972,6 +21121,57 @@ "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", "dev": true }, + "file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -20997,6 +21197,55 @@ "resolve-from": "^3.0.0" } }, + "intl-messageformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", + "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", + "dev": true, + "requires": { + "intl-messageformat-parser": "1.4.0" + } + }, + "intl-messageformat-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", + "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, "js-base64": { "version": "2.4.9", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", @@ -21025,6 +21274,16 @@ "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", "dev": true }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, "matchmediaquery": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz", @@ -21049,6 +21308,13 @@ "microee": "0.0.6" } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -21171,6 +21437,16 @@ } } }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, "redux": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", @@ -21189,6 +21465,19 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "scratch-l10n": { + "version": "3.11.20210319031448", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210319031448.tgz", + "integrity": "sha512-gyf1rrzdAM1Cpy5IDBfxNfByXMpI8ZltkActnsbud8FDVNbatziGENi2F8bT4gxJ8A2fcm72X7eMeafC8jJs5g==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "react-intl": "^2.8.0", + "transifex": "1.6.6" + } + }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21204,6 +21493,12 @@ "worker-loader": "^2.0.0" } }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -21241,6 +21536,16 @@ "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", "dev": true }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + }, "xhr": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", @@ -21256,22 +21561,21 @@ } }, "scratch-l10n": { - "version": "3.11.20210319031448", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210319031448.tgz", - "integrity": "sha512-gyf1rrzdAM1Cpy5IDBfxNfByXMpI8ZltkActnsbud8FDVNbatziGENi2F8bT4gxJ8A2fcm72X7eMeafC8jJs5g==", + "version": "3.11.20210301031451", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210301031451.tgz", + "integrity": "sha512-lAGy7i42yxd72wwNsb9pPW3tzxl5PBfLXXEKYFDKxsPCTnG3mY6m/qZqYTkpQ8sYycxgFkUvuUmvvWKxP1Bz6A==", "dev": true, "requires": { "@babel/cli": "^7.1.2", "@babel/core": "^7.1.2", "babel-plugin-react-intl": "^3.0.1", - "react-intl": "^2.8.0", "transifex": "1.6.6" }, "dependencies": { "@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.0.tgz", + "integrity": "sha512-y5AohgeVhU+wO5kU1WGMLdocFj83xCxVjsVFa2ilII8NEwmBZvx7Ambq621FbFIK68loYJ9p43nfoi6es+rzSA==", "dev": true, "requires": { "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", @@ -21369,9 +21673,9 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "optional": true, "requires": { @@ -21919,6 +22223,14 @@ "statuses": "~1.3.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -23412,7 +23724,8 @@ "dependencies": { "@babel/code-frame": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" @@ -23420,7 +23733,8 @@ }, "@babel/core": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -23443,14 +23757,16 @@ "dependencies": { "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": false, + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/generator": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { "@babel/types": "^7.10.5", @@ -23460,14 +23776,16 @@ "dependencies": { "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": false, + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/helper-annotate-as-pure": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23475,7 +23793,8 @@ }, "@babel/helper-builder-react-jsx": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", @@ -23484,7 +23803,8 @@ }, "@babel/helper-builder-react-jsx-experimental": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", @@ -23494,7 +23814,8 @@ }, "@babel/helper-function-name": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", @@ -23504,7 +23825,8 @@ }, "@babel/helper-get-function-arity": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23512,7 +23834,8 @@ }, "@babel/helper-member-expression-to-functions": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==", "dev": true, "requires": { "@babel/types": "^7.10.5" @@ -23520,7 +23843,8 @@ }, "@babel/helper-module-imports": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23528,7 +23852,8 @@ }, "@babel/helper-module-transforms": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.10.4", @@ -23542,7 +23867,8 @@ }, "@babel/helper-optimise-call-expression": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23550,12 +23876,14 @@ }, "@babel/helper-plugin-utils": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.10.4", @@ -23566,7 +23894,8 @@ }, "@babel/helper-simple-access": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", "dev": true, "requires": { "@babel/template": "^7.10.4", @@ -23575,7 +23904,8 @@ }, "@babel/helper-split-export-declaration": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23583,12 +23913,14 @@ }, "@babel/helper-validator-identifier": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", "dev": true, "requires": { "@babel/template": "^7.10.4", @@ -23598,7 +23930,8 @@ }, "@babel/highlight": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -23608,12 +23941,14 @@ }, "@babel/parser": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -23623,7 +23958,8 @@ }, "@babel/plugin-syntax-jsx": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -23631,7 +23967,8 @@ }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -23639,7 +23976,8 @@ }, "@babel/plugin-transform-destructuring": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -23647,7 +23985,8 @@ }, "@babel/plugin-transform-parameters": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", @@ -23656,7 +23995,8 @@ }, "@babel/plugin-transform-react-jsx": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", "dev": true, "requires": { "@babel/helper-builder-react-jsx": "^7.10.4", @@ -23667,7 +24007,8 @@ }, "@babel/template": { "version": "7.10.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -23677,7 +24018,8 @@ }, "@babel/traverse": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -23693,7 +24035,8 @@ }, "@babel/types": { "version": "7.10.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -23703,17 +24046,20 @@ }, "@types/color-name": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, "@types/prop-types": { "version": "15.7.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", "dev": true }, "@types/react": { "version": "16.9.43", - "bundled": true, + "resolved": false, + "integrity": "sha512-PxshAFcnJqIWYpJbLPriClH53Z2WlJcVZE+NP2etUtWQs2s7yIMj3/LDKZT/5CHJ/F62iyjVCDu2H3jHEXIxSg==", "dev": true, "requires": { "@types/prop-types": "*", @@ -23722,12 +24068,14 @@ }, "@types/yoga-layout": { "version": "1.9.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==", "dev": true }, "ansi-escapes": { "version": "4.3.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { "type-fest": "^0.11.0" @@ -23735,12 +24083,14 @@ }, "ansi-regex": { "version": "5.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "3.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -23748,7 +24098,8 @@ }, "ansicolors": { "version": "0.3.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", "dev": true }, "anymatch": { @@ -23763,17 +24114,20 @@ }, "arrify": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true }, "astral-regex": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "auto-bind": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", "dev": true }, "binary-extensions": { @@ -23793,7 +24147,8 @@ }, "caller-callsite": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, "requires": { "callsites": "^2.0.0" @@ -23801,7 +24156,8 @@ }, "caller-path": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, "requires": { "caller-callsite": "^2.0.0" @@ -23809,12 +24165,14 @@ }, "callsites": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true }, "cardinal": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", "dev": true, "requires": { "ansicolors": "~0.3.2", @@ -23823,7 +24181,8 @@ }, "chalk": { "version": "2.4.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -23849,12 +24208,14 @@ }, "ci-info": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cli-cursor": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { "restore-cursor": "^3.1.0" @@ -23862,7 +24223,8 @@ }, "cli-truncate": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "requires": { "slice-ansi": "^3.0.0", @@ -23871,7 +24233,8 @@ }, "color-convert": { "version": "1.9.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" @@ -23879,12 +24242,14 @@ }, "color-name": { "version": "1.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "convert-source-map": { "version": "1.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -23892,23 +24257,25 @@ "dependencies": { "safe-buffer": { "version": "5.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "csstype": { "version": "2.6.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw==", "dev": true }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.1.1", + "resolved": false, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "diff": { @@ -23919,22 +24286,26 @@ }, "emoji-regex": { "version": "8.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": false, + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esprima": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "events-to-array": { "version": "1.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", "dev": true }, "fill-range": { @@ -23955,7 +24326,8 @@ }, "gensync": { "version": "1.0.0-beta.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", "dev": true }, "glob": { @@ -23983,17 +24355,20 @@ }, "globals": { "version": "11.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "has-flag": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "import-jsx": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-lTuMdQ/mRXC+xQSGPDvAg1VkODlX78j5hZv2tneJ+zuo7GH/XhUF/YVKoeF382a4jO4GYw9jgganbMhEcxwb0g==", "dev": true, "requires": { "@babel/core": "^7.5.5", @@ -24006,7 +24381,8 @@ }, "ink": { "version": "2.7.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -24031,7 +24407,8 @@ "dependencies": { "ansi-styles": { "version": "4.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -24040,7 +24417,8 @@ }, "chalk": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -24049,7 +24427,8 @@ }, "color-convert": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" @@ -24057,17 +24436,20 @@ }, "color-name": { "version": "1.1.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -24086,7 +24468,8 @@ }, "is-ci": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { "ci-info": "^2.0.0" @@ -24100,7 +24483,8 @@ }, "is-fullwidth-code-point": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -24120,17 +24504,20 @@ }, "js-tokens": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "jsesc": { "version": "2.5.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json5": { "version": "2.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -24138,17 +24525,20 @@ }, "lodash": { "version": "4.17.19", - "bundled": true, + "resolved": false, + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", "dev": true }, "lodash.throttle": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", "dev": true }, "log-update": { "version": "3.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==", "dev": true, "requires": { "ansi-escapes": "^3.2.0", @@ -24158,17 +24548,20 @@ "dependencies": { "ansi-escapes": { "version": "3.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { "version": "4.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "cli-cursor": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { "restore-cursor": "^2.0.0" @@ -24176,22 +24569,26 @@ }, "emoji-regex": { "version": "7.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "mimic-fn": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "onetime": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -24199,7 +24596,8 @@ }, "restore-cursor": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { "onetime": "^2.0.0", @@ -24208,7 +24606,8 @@ }, "string-width": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -24218,7 +24617,8 @@ }, "strip-ansi": { "version": "5.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -24226,7 +24626,8 @@ }, "wrap-ansi": { "version": "5.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -24238,7 +24639,8 @@ }, "loose-envify": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -24246,17 +24648,20 @@ }, "mimic-fn": { "version": "2.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "minimist": { "version": "1.2.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "minipass": { "version": "3.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -24264,7 +24669,8 @@ "dependencies": { "yallist": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } @@ -24280,7 +24686,8 @@ }, "ms": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "normalize-path": { @@ -24291,12 +24698,14 @@ }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "onetime": { "version": "5.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -24304,12 +24713,14 @@ }, "path-parse": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "prop-types": { "version": "15.7.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { "loose-envify": "^1.4.0", @@ -24319,7 +24730,8 @@ }, "punycode": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "react": { @@ -24335,12 +24747,14 @@ }, "react-is": { "version": "16.13.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, "react-reconciler": { "version": "0.24.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -24360,7 +24774,8 @@ }, "redeyed": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", "dev": true, "requires": { "esprima": "~4.0.0" @@ -24368,7 +24783,8 @@ }, "resolve": { "version": "1.17.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -24376,12 +24792,14 @@ }, "resolve-from": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, "restore-cursor": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { "onetime": "^5.1.0", @@ -24399,7 +24817,8 @@ }, "scheduler": { "version": "0.18.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -24408,17 +24827,20 @@ }, "semver": { "version": "5.7.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "signal-exit": { "version": "3.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "slice-ansi": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -24428,7 +24850,8 @@ "dependencies": { "ansi-styles": { "version": "4.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -24437,7 +24860,8 @@ }, "color-convert": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" @@ -24445,7 +24869,8 @@ }, "color-name": { "version": "1.1.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true } } @@ -24485,7 +24910,8 @@ }, "string-length": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", "dev": true, "requires": { "astral-regex": "^1.0.0", @@ -24494,17 +24920,20 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "astral-regex": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, "strip-ansi": { "version": "5.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -24514,7 +24943,8 @@ }, "string-width": { "version": "4.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -24524,7 +24954,8 @@ }, "strip-ansi": { "version": "6.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" @@ -24532,7 +24963,8 @@ }, "supports-color": { "version": "5.5.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -24540,7 +24972,8 @@ }, "tap-parser": { "version": "10.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-qdT15H0DoJIi7zOqVXDn9X0gSM68JjNy1w3VemwTJlDnETjbi6SutnqmBfjDJAwkFS79NJ97gZKqie00ZCGmzg==", "dev": true, "requires": { "events-to-array": "^1.0.1", @@ -24550,7 +24983,8 @@ }, "tap-yaml": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ==", "dev": true, "requires": { "yaml": "^1.5.0" @@ -24558,7 +24992,8 @@ }, "to-fast-properties": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-regex-range": { @@ -24572,7 +25007,8 @@ }, "treport": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-QCAbFtzIjQN+9k+alo8e6oo8j0eSLsttdahAgNLoC3U36rls8XRy/R11QOhHmPz7CDcB2ar29eLe4OFJoPnsPA==", "dev": true, "requires": { "cardinal": "^2.1.1", @@ -24587,7 +25023,8 @@ "dependencies": { "ansi-styles": { "version": "4.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -24596,7 +25033,8 @@ }, "chalk": { "version": "3.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -24605,7 +25043,8 @@ }, "color-convert": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" @@ -24613,17 +25052,20 @@ }, "color-name": { "version": "1.1.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -24633,12 +25075,14 @@ }, "type-fest": { "version": "0.11.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true }, "unicode-length": { "version": "2.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==", "dev": true, "requires": { "punycode": "^2.0.0", @@ -24647,12 +25091,14 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -24671,7 +25117,8 @@ }, "widest-line": { "version": "3.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { "string-width": "^4.0.0" @@ -24679,7 +25126,8 @@ }, "wrap-ansi": { "version": "6.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -24689,7 +25137,8 @@ "dependencies": { "ansi-styles": { "version": "4.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -24698,7 +25147,8 @@ }, "color-convert": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" @@ -24706,19 +25156,22 @@ }, "color-name": { "version": "1.1.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true } } }, "yaml": { "version": "1.10.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", "dev": true }, "yoga-layout-prebuilt": { "version": "1.9.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-Wursw6uqLXLMjBAO4SEShuzj8+EJXhCF71/rJ7YndHTkRAYSU0GY3OghRqfAk9HPUAAFMuqp3U1Wl+01vmGRQQ==", "dev": true, "requires": { "@types/yoga-layout": "1.9.2" @@ -26125,9 +26578,9 @@ } }, "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", "dev": true, "optional": true }, @@ -26342,9 +26795,9 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "v8flags": { @@ -26665,9 +27118,9 @@ "optional": true }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "optional": true, "requires": { @@ -26836,6 +27289,16 @@ "upath": "^1.1.1" } }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -27134,7 +27597,9 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true }, "normalize-path": { "version": "3.0.0", @@ -27215,18 +27680,6 @@ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -27268,6 +27721,15 @@ } } }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -27396,12 +27858,6 @@ } } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -27480,12 +27936,6 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -27531,7 +27981,8 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -27553,9 +28004,9 @@ }, "dependencies": { "acorn": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.5.tgz", - "integrity": "sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", + "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", "dev": true }, "acorn-walk": { @@ -27616,12 +28067,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27632,9 +28077,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", + "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", "dev": true } } From 7b3369bddf2cc3610fa58467b12f7ecfc93f7e6b Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Fri, 19 Feb 2021 15:50:55 -0500 Subject: [PATCH 70/98] circleci remove store_artifacts steps from integration tests --- .circleci/config.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a535fe34c..18bf979bd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,8 +68,6 @@ aliases: - *save_build_cache - store_test_results: path: test/results - - store_artifacts: - path: test/results - &deploy <<: *defaults steps: @@ -99,8 +97,6 @@ aliases: npm run test:integration:jest:remote - store_test_results: path: test/results - - store_artifacts: - path: test/results - &integration_tap <<: *defaults steps: @@ -115,9 +111,6 @@ aliases: npm run test:smoke:convertReportToXunit - store_test_results: path: test/results - - store_artifacts: - path: test/results - jobs: build-staging: From 3c529438a0e1c685c290ee5a2bf558f61bc1f64c Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 22 Feb 2021 15:08:53 -0500 Subject: [PATCH 71/98] circleci config update readme about .test/results --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 36087df05..398ff06ee 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,8 @@ To build the application and run all unit and localization tests, use the comman npm test ``` +Some tests output files to the directory ./test/results which you may need to create. + #### Run one test To run a single unit test file from the command-line using Jest, use the command: From 68e441f938e351637cf69acddcb0d9fd3e29351e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 23 Feb 2021 09:41:09 -0500 Subject: [PATCH 72/98] circleci store build folder as artifact --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 18bf979bd..4ee803c58 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,6 +68,8 @@ aliases: - *save_build_cache - store_test_results: path: test/results + - store_artifacts: + path: build - &deploy <<: *defaults steps: From 031e00232dd914d7130936b4fa1997ec192fbc09 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Mar 2021 11:33:21 -0500 Subject: [PATCH 73/98] circleci move creating integration output files to circle config --- .circleci/config.yml | 4 ++-- package.json | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4ee803c58..0bbdeef69 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -96,7 +96,7 @@ aliases: - run: name: "integration tests with Jest" command: | - npm run test:integration:jest:remote + JEST_JUNIT_OUTPUT_NAME=integration-jest-results.xml npm run test:integration:jest:remote -- --reporters=jest-junit - store_test_results: path: test/results - &integration_tap @@ -109,7 +109,7 @@ aliases: name: "integration tests with Tap" command: | mkdir ./test/results - npm run test:smoke:sauce + npm run test:smoke:sauce -- --output-file ./test/results/integration-raw-tap.tap npm run test:smoke:convertReportToXunit - store_test_results: path: test/results diff --git a/package.json b/package.json index e58dbdbac..2f5cce04c 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ "test:integration": "npm run test:integration:jest && npm run test:smoke", "test:integration:jest": "jest ./test/integration/*.test.js", "test:integration:remote": "npm run test:integration:jest:remote && npm run test:smoke:sauce", - "test:integration:jest:remote": "SMOKE_REMOTE=true JEST_JUNIT_OUTPUT_NAME=integration-jest-results.xml jest ./test/integration/*.test.js", - "test:smoke": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R classic --output-file ./test/results/integration-raw-tap.tap", + "test:integration:jest:remote": "SMOKE_REMOTE=true jest ./test/integration/*.test.js", + "test:smoke": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R classic", "test:smoke:verbose": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R spec", - "test:smoke:sauce": "SMOKE_REMOTE=true tap ./test/integration-legacy/smoke-testing/*.js --timeout=60000 --no-coverage -R classic --output-file ./test/results/integration-raw-tap.tap", + "test:smoke:sauce": "SMOKE_REMOTE=true tap ./test/integration-legacy/smoke-testing/*.js --timeout=60000 --no-coverage -R classic", "test:smoke:convertReportToXunit": "tap ./test/results/integration-raw-tap.tap --no-coverage -R xunit > ./test/results/integration-tap-results.xml", "test:unit": "npm run test:unit:jest && npm run test:unit:tap", "test:unit:jest": "JEST_JUNIT_OUTPUT_NAME=unit-jest-results.xml jest ./test/unit/ && JEST_JUNIT_OUTPUT_NAME=localization-jest-results.xml jest ./test/localization/*.test.js", From ccd78b769217bd64b65a9f18433f3e8fb730567f Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Mar 2021 11:34:27 -0500 Subject: [PATCH 74/98] circleci move creating out put files to circle config for unit tests --- .circleci/config.yml | 5 +++-- package.json | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0bbdeef69..1eac3fdac 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -60,8 +60,9 @@ aliases: - run: name: "Run unit tests" command: | - npm run test:unit:jest - npm run test:unit:tap:ci + JEST_JUNIT_OUTPUT_NAME=unit-jest-results.xml npm run test:unit:jest:unit -- --reporters=jest-junit + JEST_JUNIT_OUTPUT_NAME=localization-jest-results.xml npm run test:unit:jest:localization -- --reporters=jest-junit + npm run test:unit:tap -- --output-file ./test/results/unit-raw.tap npm run test:unit:convertReportToXunit - *save_npm_cache - *save_git_cache diff --git a/package.json b/package.json index 2f5cce04c..f27439e1a 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,10 @@ "test:smoke:sauce": "SMOKE_REMOTE=true tap ./test/integration-legacy/smoke-testing/*.js --timeout=60000 --no-coverage -R classic", "test:smoke:convertReportToXunit": "tap ./test/results/integration-raw-tap.tap --no-coverage -R xunit > ./test/results/integration-tap-results.xml", "test:unit": "npm run test:unit:jest && npm run test:unit:tap", - "test:unit:jest": "JEST_JUNIT_OUTPUT_NAME=unit-jest-results.xml jest ./test/unit/ && JEST_JUNIT_OUTPUT_NAME=localization-jest-results.xml jest ./test/localization/*.test.js", + "test:unit:jest": "npm run test:unit:jest:unit && npm run test:unit:jest:localization", + "test:unit:jest:unit": "jest ./test/unit/", + "test:unit:jest:localization": "jest ./test/localization/*.test.js", "test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic", - "test:unit:tap:ci": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic --output-file ./test/results/unit-raw.tap", "test:unit:convertReportToXunit": "tap ./test/results/unit-raw.tap --no-coverage -R xunit > ./test/results/unit-tap-results.xml", "test:coverage": "tap ./test/{unit-legacy,localization-legacy}/*.js --coverage --coverage-report=lcov", "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail", From e605f0b7a0a4518e85047bf1b4122d41b1f2a910 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Mar 2021 11:35:15 -0500 Subject: [PATCH 75/98] circleci turn on running staging deploy and integration jobs --- .circleci/config.yml | 76 +++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1eac3fdac..1e637d723 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -146,6 +146,7 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ + - circleCI-configure-tests - build-production: context: - scratch-www-all @@ -154,39 +155,42 @@ workflows: branches: only: - master - # - deploy-staging: - # context: - # - scratch-www-all - # - scratch-www-staging - # requires: - # - build-staging - # filters: - # branches: - # only: - # - develop - # - /^hotfix\/.*/ - # - /^release\/.*/ - # - integration-staging-jest: - # context: - # - scratch-www-all - # - scratch-www-staging - # requires: - # - deploy-staging - # filters: - # branches: - # only: - # - develop - # - /^hotfix\/.*/ - # - /^release\/.*/ - # - integration-staging-tap: - # context: - # - scratch-www-all - # - scratch-www-staging - # requires: - # - deploy-staging - # filters: - # branches: - # only: - # - develop - # - /^hotfix\/.*/ - # - /^release\/.*/ + - deploy-staging: + context: + - scratch-www-all + - scratch-www-staging + requires: + - build-staging + filters: + branches: + only: + - develop + - /^hotfix\/.*/ + - /^release\/.*/ + - circleCI-configure-tests + - integration-staging-jest: + context: + - scratch-www-all + - scratch-www-staging + requires: + - deploy-staging + filters: + branches: + only: + - develop + - /^hotfix\/.*/ + - /^release\/.*/ + - circleCI-configure-tests + - integration-staging-tap: + context: + - scratch-www-all + - scratch-www-staging + requires: + - deploy-staging + filters: + branches: + only: + - develop + - /^hotfix\/.*/ + - /^release\/.*/ + - circleCI-configure-tests From 167d44f6a64f3550f6bd75affc773e43f0870cce Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Mar 2021 16:25:16 -0500 Subject: [PATCH 76/98] circleci make jest tests use default reporter by default --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index f27439e1a..45cf2a642 100644 --- a/package.json +++ b/package.json @@ -8,17 +8,17 @@ "test:lint": "eslint . --ext .js,.jsx,.json", "test:lint:ci": "eslint . --ext .js,.jsx,.json --format junit -o ./test/results/lint-results.xml", "test:integration": "npm run test:integration:jest && npm run test:smoke", - "test:integration:jest": "jest ./test/integration/*.test.js", + "test:integration:jest": "jest ./test/integration/*.test.js --reporters=default", "test:integration:remote": "npm run test:integration:jest:remote && npm run test:smoke:sauce", - "test:integration:jest:remote": "SMOKE_REMOTE=true jest ./test/integration/*.test.js", + "test:integration:jest:remote": "SMOKE_REMOTE=true jest ./test/integration/*.test.js --reporters=default", "test:smoke": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R classic", "test:smoke:verbose": "tap ./test/integration-legacy/smoke-testing/*.js --timeout=3600 --no-coverage -R spec", "test:smoke:sauce": "SMOKE_REMOTE=true tap ./test/integration-legacy/smoke-testing/*.js --timeout=60000 --no-coverage -R classic", "test:smoke:convertReportToXunit": "tap ./test/results/integration-raw-tap.tap --no-coverage -R xunit > ./test/results/integration-tap-results.xml", "test:unit": "npm run test:unit:jest && npm run test:unit:tap", "test:unit:jest": "npm run test:unit:jest:unit && npm run test:unit:jest:localization", - "test:unit:jest:unit": "jest ./test/unit/", - "test:unit:jest:localization": "jest ./test/localization/*.test.js", + "test:unit:jest:unit": "jest ./test/unit/ --reporters=default", + "test:unit:jest:localization": "jest ./test/localization/*.test.js --reporters=default", "test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic", "test:unit:convertReportToXunit": "tap ./test/results/unit-raw.tap --no-coverage -R xunit > ./test/results/unit-tap-results.xml", "test:coverage": "tap ./test/{unit-legacy,localization-legacy}/*.js --coverage --coverage-report=lcov", From ac27f8f5896452a4a00142ca42482de1e2043880 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Tue, 2 Mar 2021 16:49:03 -0500 Subject: [PATCH 77/98] circleci turn off staging deploy and tests through circle --- .circleci/config.yml | 79 ++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1e637d723..bed3adadd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -146,7 +146,6 @@ workflows: - develop - /^hotfix\/.*/ - /^release\/.*/ - - circleCI-configure-tests - build-production: context: - scratch-www-all @@ -155,42 +154,42 @@ workflows: branches: only: - master - - deploy-staging: - context: - - scratch-www-all - - scratch-www-staging - requires: - - build-staging - filters: - branches: - only: - - develop - - /^hotfix\/.*/ - - /^release\/.*/ - - circleCI-configure-tests - - integration-staging-jest: - context: - - scratch-www-all - - scratch-www-staging - requires: - - deploy-staging - filters: - branches: - only: - - develop - - /^hotfix\/.*/ - - /^release\/.*/ - - circleCI-configure-tests - - integration-staging-tap: - context: - - scratch-www-all - - scratch-www-staging - requires: - - deploy-staging - filters: - branches: - only: - - develop - - /^hotfix\/.*/ - - /^release\/.*/ - - circleCI-configure-tests + # - deploy-staging: + # context: + # - scratch-www-all + # - scratch-www-staging + # requires: + # - build-staging + # filters: + # branches: + # only: + # - develop + # - /^hotfix\/.*/ + # - /^release\/.*/ + # - circleCI-configure-tests + # - integration-staging-jest: + # context: + # - scratch-www-all + # - scratch-www-staging + # requires: + # - deploy-staging + # filters: + # branches: + # only: + # - develop + # - /^hotfix\/.*/ + # - /^release\/.*/ + # - circleCI-configure-tests + # - integration-staging-tap: + # context: + # - scratch-www-all + # - scratch-www-staging + # requires: + # - deploy-staging + # filters: + # branches: + # only: + # - develop + # - /^hotfix\/.*/ + # - /^release\/.*/ + # - circleCI-configure-tests From 482ca6f61422d1359f0033a4eefa9d8c461eda3e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Wed, 3 Mar 2021 10:47:52 -0500 Subject: [PATCH 78/98] remove mention of ./test/results from readme --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 398ff06ee..36087df05 100644 --- a/README.md +++ b/README.md @@ -187,8 +187,6 @@ To build the application and run all unit and localization tests, use the comman npm test ``` -Some tests output files to the directory ./test/results which you may need to create. - #### Run one test To run a single unit test file from the command-line using Jest, use the command: From e29bc578d558b66dfcf346ad306a47c7a3fe37fc Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Fri, 19 Mar 2021 13:40:10 -0400 Subject: [PATCH 79/98] circleci build master to compare travis and circle --- .circleci/config.yml | 1 + .travis.yml | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bed3adadd..d73ec90e0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -154,6 +154,7 @@ workflows: branches: only: - master + - circleCI-configure-tests # - deploy-staging: # context: # - scratch-www-all diff --git a/.travis.yml b/.travis.yml index 57ebce798..31c353164 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,10 @@ notifications: secure: ezESiG7JnuSLZc2/PPhOvWUv5BHBCr+g86MsuLLw+S+zz3DUfzWHMQ1g5tUvkeSDTPmfEIX41EnPkaoWtsD3OGO0PGXgseAfA8+6Z4N1rICNZZrhXZB2s6UdwRK1e+0Jol4W3kHmt96BHyN2scLNgJYeWMgSJllVsuPhMTlKBZIXI9u540NH8Nxjl3f2WvoIg64Q1mZvMxkpPbw4xssx6U4HSFE8kTTE6+EFsSxzombFX0cLGjPiJ9QZgGVUk4UkIjyiFLQQDfQlLllCaUpqJ9+qbuCNoMSKA2yty/qyZ8Y+r4OlMberjmBzR9GRLLyXWWcaAfMIgwlRhjtLYIDAUSsGM1iwUWCgyB9maG2IiXuYLSueuMx8DcDwbpUepoDgnqBYnM2AJmT8gcsxqlKYzJpYpHDgZgBlLZQgMXqjrVJHs/Tf9XVcLS6HAn1Ww0OOT01jThfy4gClpAuqLayYexsXOoL+RaFg25E2NzuTtaFWgRfWZgcAeqYNDiUzwun2D4vZ5I+NtdRP0gzpbG2fxhFz05vAqyf1Kp6ZYb17Li3A38dIm6Lsvv3qawAIAgNaZpIZX3f89+uq6jHU8kJy1Iv823JK2Xac3vEz3SHUKJnuXFF0LO07om9AcNEXhP/JrJ617S8nfvDtZRJODMFhz8qQwie+65Ql1I871goBpVs= env: global: + - TRAVIS_BRANCH=master + - ARTIFACTS_KEY=$EB_AWS_ACCESS_KEY_ID + - ARTIFACTS_SECRET=$EB_AWS_SECRET_ACCESS_KEY + - ARTIFACTS_BUCKET=downloads.scratch.ly - CXX=g++-4.8 - API_HOST_master=https://api.scratch.mit.edu - API_HOST_STAGING=https://api.scratch.ly @@ -101,6 +105,9 @@ env: - NODE_ENV=production - WWW_VERSION=${TRAVIS_COMMIT:0:5} addons: + artifacts: + paths: + - build chrome: stable apt: sources: @@ -123,13 +130,13 @@ jobs: - develop - hotfix/* - release/* - - provider: script - skip_cleanup: $SKIP_CLEANUP - script: npm run deploy - on: - repo: LLK/scratch-www - branch: - - master + # - provider: script + # skip_cleanup: $SKIP_CLEANUP + # script: npm run deploy + # on: + # repo: LLK/scratch-www + # branch: + # - master - stage: smoke script: npm run test:integration:remote - stage: update translations From 8757b7de9c7d4666bf41bbf5f7b379c24fe36b9e Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Fri, 19 Mar 2021 14:01:49 -0400 Subject: [PATCH 80/98] circleci zip the build for testing purposes --- .circleci/config.yml | 2 +- .travis.yml | 2 +- package.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d73ec90e0..ed74e1865 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,7 +70,7 @@ aliases: - store_test_results: path: test/results - store_artifacts: - path: build + path: build.zip - &deploy <<: *defaults steps: diff --git a/.travis.yml b/.travis.yml index 31c353164..3d9179c1f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -107,7 +107,7 @@ env: addons: artifacts: paths: - - build + - build.zip chrome: stable apt: sources: diff --git a/package.json b/package.json index 45cf2a642..1dadec6fc 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic", "test:unit:convertReportToXunit": "tap ./test/results/unit-raw.tap --no-coverage -R xunit > ./test/results/unit-tap-results.xml", "test:coverage": "tap ./test/{unit-legacy,localization-legacy}/*.js --coverage --coverage-report=lcov", - "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail", + "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail && npm run zipBuild", + "zipBuild": "zip -rm build build/", "clean": "rm -rf ./build && rm -rf ./intl && mkdir -p build && mkdir -p intl", "deploy": "npm run deploy:s3 && npm run deploy:fastly", "deploy:fastly": "node ./bin/configure-fastly.js", From 5f755524bfac4e23860283d55b6107ecf76c329d Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Fri, 19 Mar 2021 15:52:27 -0400 Subject: [PATCH 81/98] Revert "circleci build master to compare travis and circle" This reverts commit cc9b2090b9271bd53a1e1ee7cfbd50249ad06ec8. # Conflicts: # .travis.yml --- .circleci/config.yml | 1 - .travis.yml | 21 +++++++-------------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ed74e1865..cf0600407 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -154,7 +154,6 @@ workflows: branches: only: - master - - circleCI-configure-tests # - deploy-staging: # context: # - scratch-www-all diff --git a/.travis.yml b/.travis.yml index 3d9179c1f..57ebce798 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,10 +11,6 @@ notifications: secure: ezESiG7JnuSLZc2/PPhOvWUv5BHBCr+g86MsuLLw+S+zz3DUfzWHMQ1g5tUvkeSDTPmfEIX41EnPkaoWtsD3OGO0PGXgseAfA8+6Z4N1rICNZZrhXZB2s6UdwRK1e+0Jol4W3kHmt96BHyN2scLNgJYeWMgSJllVsuPhMTlKBZIXI9u540NH8Nxjl3f2WvoIg64Q1mZvMxkpPbw4xssx6U4HSFE8kTTE6+EFsSxzombFX0cLGjPiJ9QZgGVUk4UkIjyiFLQQDfQlLllCaUpqJ9+qbuCNoMSKA2yty/qyZ8Y+r4OlMberjmBzR9GRLLyXWWcaAfMIgwlRhjtLYIDAUSsGM1iwUWCgyB9maG2IiXuYLSueuMx8DcDwbpUepoDgnqBYnM2AJmT8gcsxqlKYzJpYpHDgZgBlLZQgMXqjrVJHs/Tf9XVcLS6HAn1Ww0OOT01jThfy4gClpAuqLayYexsXOoL+RaFg25E2NzuTtaFWgRfWZgcAeqYNDiUzwun2D4vZ5I+NtdRP0gzpbG2fxhFz05vAqyf1Kp6ZYb17Li3A38dIm6Lsvv3qawAIAgNaZpIZX3f89+uq6jHU8kJy1Iv823JK2Xac3vEz3SHUKJnuXFF0LO07om9AcNEXhP/JrJ617S8nfvDtZRJODMFhz8qQwie+65Ql1I871goBpVs= env: global: - - TRAVIS_BRANCH=master - - ARTIFACTS_KEY=$EB_AWS_ACCESS_KEY_ID - - ARTIFACTS_SECRET=$EB_AWS_SECRET_ACCESS_KEY - - ARTIFACTS_BUCKET=downloads.scratch.ly - CXX=g++-4.8 - API_HOST_master=https://api.scratch.mit.edu - API_HOST_STAGING=https://api.scratch.ly @@ -105,9 +101,6 @@ env: - NODE_ENV=production - WWW_VERSION=${TRAVIS_COMMIT:0:5} addons: - artifacts: - paths: - - build.zip chrome: stable apt: sources: @@ -130,13 +123,13 @@ jobs: - develop - hotfix/* - release/* - # - provider: script - # skip_cleanup: $SKIP_CLEANUP - # script: npm run deploy - # on: - # repo: LLK/scratch-www - # branch: - # - master + - provider: script + skip_cleanup: $SKIP_CLEANUP + script: npm run deploy + on: + repo: LLK/scratch-www + branch: + - master - stage: smoke script: npm run test:integration:remote - stage: update translations From d1980857dc81a1e15362d646c085a842301ed9bb Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Fri, 19 Mar 2021 15:54:04 -0400 Subject: [PATCH 82/98] Revert "circleci zip the build for testing purposes" This reverts commit 3f6b5d2269b84c1e7237805ae3c7f959dcae6410. # Conflicts: # .travis.yml --- .circleci/config.yml | 2 +- package.json | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cf0600407..bed3adadd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,7 +70,7 @@ aliases: - store_test_results: path: test/results - store_artifacts: - path: build.zip + path: build - &deploy <<: *defaults steps: diff --git a/package.json b/package.json index 1dadec6fc..45cf2a642 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,7 @@ "test:unit:tap": "tap ./test/{unit-legacy,localization-legacy}/*.js --no-coverage -R classic", "test:unit:convertReportToXunit": "tap ./test/results/unit-raw.tap --no-coverage -R xunit > ./test/results/unit-tap-results.xml", "test:coverage": "tap ./test/{unit-legacy,localization-legacy}/*.js --coverage --coverage-report=lcov", - "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail && npm run zipBuild", - "zipBuild": "zip -rm build build/", + "build": "npm run clean && npm run translate && NODE_OPTIONS=--max_old_space_size=8000 webpack --bail", "clean": "rm -rf ./build && rm -rf ./intl && mkdir -p build && mkdir -p intl", "deploy": "npm run deploy:s3 && npm run deploy:fastly", "deploy:fastly": "node ./bin/configure-fastly.js", From 177ee69cce78f32381cd687e82b33659b06279a5 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Fri, 19 Mar 2021 17:19:40 -0400 Subject: [PATCH 83/98] fix package-lock.json --- package-lock.json | 1948 +++++++++++++++++---------------------------- 1 file changed, 723 insertions(+), 1225 deletions(-) diff --git a/package-lock.json b/package-lock.json index a85a73353..68b352e5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,127 +24,134 @@ "@babel/highlight": "^7.0.0" } }, + "@babel/compat-data": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.11.tgz", + "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==", + "dev": true + }, "@babel/core": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", - "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", + "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.10", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", + "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "lodash": "^4.17.19", - "semver": "^5.4.1", + "semver": "^6.3.0", "source-map": "^0.5.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", "dev": true, "requires": { - "@babel/types": "^7.12.11", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", + "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -209,18 +216,18 @@ "dev": true }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "minimist": { @@ -229,10 +236,10 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "source-map": { @@ -285,6 +292,45 @@ } } }, + "@babel/helper-compilation-targets": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", + "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "electron-to-chromium": { + "version": "1.3.693", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", + "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "@babel/helper-function-name": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", @@ -306,18 +352,18 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", "dev": true, "requires": { - "@babel/types": "^7.12.7" + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -326,9 +372,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "to-fast-properties": { @@ -340,18 +386,18 @@ } }, "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", "dev": true, "requires": { - "@babel/types": "^7.12.5" + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -360,9 +406,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "to-fast-properties": { @@ -374,120 +420,120 @@ } }, "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "lodash": "^4.17.19" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", "dev": true, "requires": { - "@babel/types": "^7.12.11", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", + "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -543,15 +589,9 @@ "dev": true }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "source-map": { @@ -578,18 +618,18 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -598,9 +638,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "to-fast-properties": { @@ -612,121 +652,121 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", "dev": true, "requires": { - "@babel/types": "^7.12.11", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", + "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -782,15 +822,9 @@ "dev": true }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "source-map": { @@ -817,18 +851,18 @@ } }, "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -837,9 +871,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "to-fast-properties": { @@ -865,115 +899,121 @@ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", "dev": true, "requires": { - "@babel/types": "^7.12.11", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", + "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1029,15 +1069,9 @@ "dev": true }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "source-map": { @@ -1118,9 +1152,9 @@ "dev": true }, "@babel/runtime": { - "version": "7.12.18", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.18.tgz", - "integrity": "sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", + "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", "requires": { "regenerator-runtime": "^0.13.4" }, @@ -1161,12 +1195,12 @@ }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "globals": { @@ -1203,12 +1237,12 @@ } }, "@formatjs/ecma402-abstract": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.2.tgz", - "integrity": "sha512-rscxoLyIwH2x+l15Z4eD580ioO3CkFVoWDLgDtgiOnWzDzpL5EigDRg9V4mINb8W6bQRT1xnCxiRwvw3bgvqrA==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.3.tgz", + "integrity": "sha512-7ijswObmYXabVy5GvcpKG29jbyJ9rGtFdRBdmdQvoDmMo0PwlOl/L08GtrjA4YWLAZ0j2owb2YrRLGNAvLBk+Q==", "dev": true, "requires": { - "tslib": "^2.0.1" + "tslib": "^2.1.0" }, "dependencies": { "tslib": { @@ -1220,13 +1254,13 @@ } }, "@formatjs/intl-getcanonicallocales": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.5.3.tgz", - "integrity": "sha512-QVBnSPZ32Y80wkXbf36hP9VbyklbOb8edppxFcgO9Lbd47zagllw65Y81QOHEn/j11JcTn2OhW0vea95LHvQmA==", + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.5.7.tgz", + "integrity": "sha512-raPV3Dw7CBC9kPvKdgxkVGgwzYBsQDDG9qXGWblpj/zR+ZJ6Q2V+Co5jZhrviy6lq3qaM2T1Itc0ibvvil1tBw==", "dev": true, "requires": { "cldr-core": "38", - "tslib": "^2.0.1" + "tslib": "^2.1.0" }, "dependencies": { "tslib": { @@ -1238,15 +1272,15 @@ } }, "@formatjs/intl-locale": { - "version": "2.4.14", - "resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.14.tgz", - "integrity": "sha512-BWjAx+1kiN2VvQvx2L41cv8gr40mBDA78PKhVKLq+cPeAp8lwMmnGWUYr1sUXNew31N1acb6fqNJUD5sBGB/wQ==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.20.tgz", + "integrity": "sha512-ZrVFxKab+W6jFP6WEYsNW0b7IlGYnCS20fdLN6u0LwPCPYRP5oqHBl0FFVD2+aNnQ1T/21Aol54fCr5LdN/49Q==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.5.2", - "@formatjs/intl-getcanonicallocales": "1.5.3", + "@formatjs/ecma402-abstract": "1.6.3", + "@formatjs/intl-getcanonicallocales": "1.5.7", "cldr-core": "38", - "tslib": "^2.0.1" + "tslib": "^2.1.0" }, "dependencies": { "tslib": { @@ -1258,13 +1292,13 @@ } }, "@formatjs/intl-pluralrules": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.0.6.tgz", - "integrity": "sha512-/7Hjg/7EiHuZq4zwd406UoX2w5KtUrLRj9SI8mPOkUpHHqruSskYuJYahKWW7rNytPRaoCLfsigoFS0CDHBjlg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.0.12.tgz", + "integrity": "sha512-jXXsWGQbBMvuhvxuG1AXBMMNMS1ZphSt/rWsGo6bE3KyWmddJnnVokeUD8E2sTtXoCJZoGUQkOxxjFa/gGLyxw==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.5.2", - "tslib": "^2.0.1" + "@formatjs/ecma402-abstract": "1.6.3", + "tslib": "^2.1.0" }, "dependencies": { "tslib": { @@ -1276,13 +1310,13 @@ } }, "@formatjs/intl-relativetimeformat": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.0.4.tgz", - "integrity": "sha512-MUxsXa/cukBa4+8waUS7rQcVz0CKt7UufU9nXcUGh1FR85urqh42dz+3bM2klg51P5Mhove2mecQGeFwOhFYBQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.1.3.tgz", + "integrity": "sha512-uUbtr4NRKgHK66bxO98RQlXypfRA5cto6nsFpgwe5wf1SWLBqxcNoo+zdAIftdvHnxPC4QH6oykMf2aYLm+pbA==", "dev": true, "requires": { - "@formatjs/ecma402-abstract": "1.5.2", - "tslib": "^2.0.1" + "@formatjs/ecma402-abstract": "1.6.3", + "tslib": "^2.1.0" }, "dependencies": { "tslib": { @@ -1447,16 +1481,6 @@ } } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -1752,13 +1776,6 @@ "to-regex": "^3.0.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1899,9 +1916,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.12", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", - "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "version": "7.1.13", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.13.tgz", + "integrity": "sha512-CC6amBNND16pTk4K3ZqKIaba6VGKAQs3gMjEY17FVd56oI/ZWt9OhS6riYiWv9s8ENbYUi7p8lgqb0QHQvUKQQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -1931,9 +1948,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", + "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -2315,28 +2332,25 @@ } }, "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", + "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^1.0.0", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "json-schema-traverse": "^0.3.0", + "uri-js": "^3.0.2" }, "dependencies": { - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "uri-js": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", + "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } } } }, @@ -2718,24 +2732,6 @@ "dev": true, "requires": { "source-map-support": "^0.5.11" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } } }, "async-limiter": { @@ -2853,15 +2849,6 @@ "source-map": "^0.5.7" } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", @@ -2885,8 +2872,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "source-map": { "version": "0.5.7", @@ -3702,15 +3688,6 @@ "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", "dev": true }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", @@ -3720,8 +3697,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "source-map": { "version": "0.5.7", @@ -3788,20 +3764,10 @@ "lodash": "^4.17.4" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -3958,9 +3924,9 @@ "dev": true }, "bind-obj-methods": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-2.0.0.tgz", - "integrity": "sha512-3/qRXczDi2Cdbz6jE+W3IflJOutRVica8frpBn14de1mBOkzDo+6tY33kNhvkw54Kn3PzRRD2VnGbGPcTAk4sw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-2.0.1.tgz", + "integrity": "sha512-kKzUyCuc+jsWH4C2nW5KB2nh+rQRbQcdphfo9UN3j1uwIFGZ3JB8njtRZOiUAQCkxazH0nDQPN6x/zhvFcbZIw==", "dev": true }, "bit-twiddle": { @@ -4031,14 +3997,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4702,9 +4660,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001203", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001203.tgz", - "integrity": "sha512-/I9tvnzU/PHMH7wBPrfDMSuecDeUKerjCPX7D0xBbaJZPxoT9m+yYxt0zCTkcijCkjTdim3H56Zm0i5Adxch4w==", + "version": "1.0.30001191", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz", + "integrity": "sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==", "dev": true }, "canvas-fit": { @@ -5192,9 +5150,9 @@ "dev": true }, "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", "dev": true }, "colormap": { @@ -6299,12 +6257,18 @@ } }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "ms": "0.7.1" + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "decamelize": { @@ -7332,12 +7296,12 @@ } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "eslint-scope": { @@ -7606,9 +7570,9 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", "dev": true }, "events-to-array": { @@ -7778,14 +7742,6 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -7804,9 +7760,9 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "requires": { "ms": "^2.1.1" } @@ -7971,9 +7927,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -8192,6 +8148,16 @@ "flat-cache": "^2.0.1" } }, + "file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + } + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -8269,14 +8235,6 @@ "unpipe": "~1.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8381,15 +8339,6 @@ } } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -8641,8 +8590,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -8710,18 +8658,18 @@ "dev": true }, "flow-parser": { - "version": "0.142.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.142.0.tgz", - "integrity": "sha512-gkdbagtuYQw7fo/D1AwCsDpMyxp/bdZkgfq95ev2MoETD1OW84PhU+vitupwte+6AJc2MRJyCdgfWhan8AGhzA==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.147.0.tgz", + "integrity": "sha512-z+b/pgp2QLvsWJkzhKXU8yC5TmaNyXGRmHac3x0Swmn9uQESRXhNIJq9TPHKPPeWgFym33OLO+5BlIdy/tXRCQ==", "dev": true }, "flow-remove-types": { - "version": "2.142.0", - "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.142.0.tgz", - "integrity": "sha512-KAuLwWGdJTKyyhtX3kwZ+H+XsZ59FHur1fqJ3aWRhMhLUFlGOk5GckHkXZMPU0lHYGoac7to05iBo2vzNZSiUA==", + "version": "2.147.0", + "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.147.0.tgz", + "integrity": "sha512-ppZdtui3daAhBe0dkghBdtdIdSRbc/p/IEXw3t6vtlbS2KNpY8G3cu5RupXT3pGvFQbbXHP7mwNCEKSEYGU6Aw==", "dev": true, "requires": { - "flow-parser": "^0.142.0", + "flow-parser": "^0.147.0", "pirates": "^3.0.2", "vlq": "^0.2.1" } @@ -9116,11 +9064,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" - }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -10675,9 +10618,9 @@ } }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "history": { @@ -10792,12 +10735,6 @@ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11380,6 +11317,21 @@ "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==", "dev": true }, + "intl-messageformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", + "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", + "dev": true, + "requires": { + "intl-messageformat-parser": "1.4.0" + } + }, + "intl-messageformat-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", + "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=", + "dev": true + }, "intl-relativeformat": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", @@ -11680,9 +11632,9 @@ "dev": true }, "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, "is-plain-obj": { @@ -11900,9 +11852,9 @@ } }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -12178,12 +12130,6 @@ "semver": "^5.6.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -12318,9 +12264,9 @@ } }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -14974,6 +14920,12 @@ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -15092,9 +15044,9 @@ } }, "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "multipipe": { @@ -15334,9 +15286,9 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "optional": true, "requires": { @@ -15657,9 +15609,9 @@ } }, "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "version": "1.1.70", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", + "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", "dev": true }, "node-sass": { @@ -16084,12 +16036,6 @@ "ansi-regex": "^4.1.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -18519,15 +18465,6 @@ "prop-types": "^15.5.10" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "lodash.debounce": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", @@ -18545,12 +18482,6 @@ "requires": { "lodash.debounce": "^3.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, @@ -18978,16 +18909,6 @@ } } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -19246,9 +19167,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -20272,15 +20191,6 @@ } } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -20523,8 +20433,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "watch": { "version": "0.18.0", @@ -20879,38 +20788,6 @@ "xhr": "2.5.0" }, "dependencies": { - "@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", - "dev": true, - "requires": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", - "chokidar": "^3.4.0", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -20920,17 +20797,6 @@ "color-convert": "^1.9.0" } }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, "autoprefixer": { "version": "9.8.6", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", @@ -20952,23 +20818,6 @@ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", "dev": true }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "browserslist": { "version": "4.16.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", @@ -21004,35 +20853,12 @@ } } }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, "classnames": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", "dev": true }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, "core-js": { "version": "2.5.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", @@ -21116,62 +20942,11 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.693", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", - "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", + "version": "1.3.692", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", + "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", "dev": true }, - "file-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", - "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -21197,55 +20972,6 @@ "resolve-from": "^3.0.0" } }, - "intl-messageformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", - "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", - "dev": true, - "requires": { - "intl-messageformat-parser": "1.4.0" - } - }, - "intl-messageformat-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", - "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, "js-base64": { "version": "2.4.9", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", @@ -21274,16 +21000,6 @@ "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", "dev": true }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, "matchmediaquery": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz", @@ -21308,13 +21024,6 @@ "microee": "0.0.6" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -21437,16 +21146,6 @@ } } }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, "redux": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", @@ -21465,19 +21164,6 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, - "scratch-l10n": { - "version": "3.11.20210319031448", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210319031448.tgz", - "integrity": "sha512-gyf1rrzdAM1Cpy5IDBfxNfByXMpI8ZltkActnsbud8FDVNbatziGENi2F8bT4gxJ8A2fcm72X7eMeafC8jJs5g==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "babel-plugin-react-intl": "^3.0.1", - "react-intl": "^2.8.0", - "transifex": "1.6.6" - } - }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21493,12 +21179,6 @@ "worker-loader": "^2.0.0" } }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -21536,16 +21216,6 @@ "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", "dev": true }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - }, "xhr": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", @@ -21561,21 +21231,22 @@ } }, "scratch-l10n": { - "version": "3.11.20210301031451", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210301031451.tgz", - "integrity": "sha512-lAGy7i42yxd72wwNsb9pPW3tzxl5PBfLXXEKYFDKxsPCTnG3mY6m/qZqYTkpQ8sYycxgFkUvuUmvvWKxP1Bz6A==", + "version": "3.11.20210319031448", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210319031448.tgz", + "integrity": "sha512-gyf1rrzdAM1Cpy5IDBfxNfByXMpI8ZltkActnsbud8FDVNbatziGENi2F8bT4gxJ8A2fcm72X7eMeafC8jJs5g==", "dev": true, "requires": { "@babel/cli": "^7.1.2", "@babel/core": "^7.1.2", "babel-plugin-react-intl": "^3.0.1", + "react-intl": "^2.8.0", "transifex": "1.6.6" }, "dependencies": { "@babel/cli": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.0.tgz", - "integrity": "sha512-y5AohgeVhU+wO5kU1WGMLdocFj83xCxVjsVFa2ilII8NEwmBZvx7Ambq621FbFIK68loYJ9p43nfoi6es+rzSA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", + "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", "dev": true, "requires": { "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", @@ -21673,9 +21344,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "optional": true, "requires": { @@ -22223,14 +21894,6 @@ "statuses": "~1.3.1" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -22756,6 +22419,24 @@ "urix": "^0.1.0" } }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -23724,8 +23405,7 @@ "dependencies": { "@babel/code-frame": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "bundled": true, "dev": true, "requires": { "@babel/highlight": "^7.10.4" @@ -23733,8 +23413,7 @@ }, "@babel/core": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==", + "bundled": true, "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -23757,16 +23436,14 @@ "dependencies": { "source-map": { "version": "0.5.7", - "resolved": false, - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true } } }, "@babel/generator": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", + "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.5", @@ -23776,16 +23453,14 @@ "dependencies": { "source-map": { "version": "0.5.7", - "resolved": false, - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true } } }, "@babel/helper-annotate-as-pure": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23793,8 +23468,7 @@ }, "@babel/helper-builder-react-jsx": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "bundled": true, "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", @@ -23803,8 +23477,7 @@ }, "@babel/helper-builder-react-jsx-experimental": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", + "bundled": true, "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", @@ -23814,8 +23487,7 @@ }, "@babel/helper-function-name": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "bundled": true, "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", @@ -23825,8 +23497,7 @@ }, "@babel/helper-get-function-arity": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23834,8 +23505,7 @@ }, "@babel/helper-member-expression-to-functions": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==", + "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.5" @@ -23843,8 +23513,7 @@ }, "@babel/helper-module-imports": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23852,8 +23521,7 @@ }, "@babel/helper-module-transforms": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==", + "bundled": true, "dev": true, "requires": { "@babel/helper-module-imports": "^7.10.4", @@ -23867,8 +23535,7 @@ }, "@babel/helper-optimise-call-expression": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23876,14 +23543,12 @@ }, "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "bundled": true, "dev": true }, "@babel/helper-replace-supers": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "bundled": true, "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.10.4", @@ -23894,8 +23559,7 @@ }, "@babel/helper-simple-access": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "bundled": true, "dev": true, "requires": { "@babel/template": "^7.10.4", @@ -23904,8 +23568,7 @@ }, "@babel/helper-split-export-declaration": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" @@ -23913,14 +23576,12 @@ }, "@babel/helper-validator-identifier": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "bundled": true, "dev": true }, "@babel/helpers": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "bundled": true, "dev": true, "requires": { "@babel/template": "^7.10.4", @@ -23930,8 +23591,7 @@ }, "@babel/highlight": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "bundled": true, "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -23941,14 +23601,12 @@ }, "@babel/parser": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", + "bundled": true, "dev": true }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", + "bundled": true, "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -23958,8 +23616,7 @@ }, "@babel/plugin-syntax-jsx": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "bundled": true, "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -23967,8 +23624,7 @@ }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": false, - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "bundled": true, "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -23976,8 +23632,7 @@ }, "@babel/plugin-transform-destructuring": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "bundled": true, "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -23985,8 +23640,7 @@ }, "@babel/plugin-transform-parameters": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "bundled": true, "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", @@ -23995,8 +23649,7 @@ }, "@babel/plugin-transform-react-jsx": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "bundled": true, "dev": true, "requires": { "@babel/helper-builder-react-jsx": "^7.10.4", @@ -24007,8 +23660,7 @@ }, "@babel/template": { "version": "7.10.4", - "resolved": false, - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "bundled": true, "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -24018,8 +23670,7 @@ }, "@babel/traverse": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", + "bundled": true, "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -24035,8 +23686,7 @@ }, "@babel/types": { "version": "7.10.5", - "resolved": false, - "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "bundled": true, "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -24046,20 +23696,17 @@ }, "@types/color-name": { "version": "1.1.1", - "resolved": false, - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "bundled": true, "dev": true }, "@types/prop-types": { "version": "15.7.3", - "resolved": false, - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", + "bundled": true, "dev": true }, "@types/react": { "version": "16.9.43", - "resolved": false, - "integrity": "sha512-PxshAFcnJqIWYpJbLPriClH53Z2WlJcVZE+NP2etUtWQs2s7yIMj3/LDKZT/5CHJ/F62iyjVCDu2H3jHEXIxSg==", + "bundled": true, "dev": true, "requires": { "@types/prop-types": "*", @@ -24068,14 +23715,12 @@ }, "@types/yoga-layout": { "version": "1.9.2", - "resolved": false, - "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==", + "bundled": true, "dev": true }, "ansi-escapes": { "version": "4.3.1", - "resolved": false, - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "bundled": true, "dev": true, "requires": { "type-fest": "^0.11.0" @@ -24083,14 +23728,12 @@ }, "ansi-regex": { "version": "5.0.0", - "resolved": false, - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "bundled": true, "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": false, - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bundled": true, "dev": true, "requires": { "color-convert": "^1.9.0" @@ -24098,8 +23741,7 @@ }, "ansicolors": { "version": "0.3.2", - "resolved": false, - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "bundled": true, "dev": true }, "anymatch": { @@ -24114,20 +23756,17 @@ }, "arrify": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "bundled": true, "dev": true }, "astral-regex": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "bundled": true, "dev": true }, "auto-bind": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "bundled": true, "dev": true }, "binary-extensions": { @@ -24147,8 +23786,7 @@ }, "caller-callsite": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "bundled": true, "dev": true, "requires": { "callsites": "^2.0.0" @@ -24156,8 +23794,7 @@ }, "caller-path": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "bundled": true, "dev": true, "requires": { "caller-callsite": "^2.0.0" @@ -24165,14 +23802,12 @@ }, "callsites": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "bundled": true, "dev": true }, "cardinal": { "version": "2.1.1", - "resolved": false, - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", + "bundled": true, "dev": true, "requires": { "ansicolors": "~0.3.2", @@ -24181,8 +23816,7 @@ }, "chalk": { "version": "2.4.2", - "resolved": false, - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -24208,14 +23842,12 @@ }, "ci-info": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "bundled": true, "dev": true }, "cli-cursor": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "bundled": true, "dev": true, "requires": { "restore-cursor": "^3.1.0" @@ -24223,8 +23855,7 @@ }, "cli-truncate": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "bundled": true, "dev": true, "requires": { "slice-ansi": "^3.0.0", @@ -24233,8 +23864,7 @@ }, "color-convert": { "version": "1.9.3", - "resolved": false, - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "bundled": true, "dev": true, "requires": { "color-name": "1.1.3" @@ -24242,14 +23872,12 @@ }, "color-name": { "version": "1.1.3", - "resolved": false, - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.7.0", - "resolved": false, - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -24257,22 +23885,19 @@ "dependencies": { "safe-buffer": { "version": "5.1.2", - "resolved": false, - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "bundled": true, "dev": true } } }, "csstype": { "version": "2.6.11", - "resolved": false, - "integrity": "sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw==", + "bundled": true, "dev": true }, "debug": { "version": "4.1.1", - "resolved": false, - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "bundled": true, "dev": true, "requires": { "ms": "^2.1.1" @@ -24286,26 +23911,22 @@ }, "emoji-regex": { "version": "8.0.0", - "resolved": false, - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "bundled": true, "dev": true }, "escape-string-regexp": { "version": "1.0.5", - "resolved": false, - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esprima": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bundled": true, "dev": true }, "events-to-array": { "version": "1.1.2", - "resolved": false, - "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", + "bundled": true, "dev": true }, "fill-range": { @@ -24318,16 +23939,15 @@ } }, "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, "gensync": { "version": "1.0.0-beta.1", - "resolved": false, - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "bundled": true, "dev": true }, "glob": { @@ -24345,9 +23965,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -24355,20 +23975,17 @@ }, "globals": { "version": "11.12.0", - "resolved": false, - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "bundled": true, "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "bundled": true, "dev": true }, "import-jsx": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-lTuMdQ/mRXC+xQSGPDvAg1VkODlX78j5hZv2tneJ+zuo7GH/XhUF/YVKoeF382a4jO4GYw9jgganbMhEcxwb0g==", + "bundled": true, "dev": true, "requires": { "@babel/core": "^7.5.5", @@ -24381,8 +23998,7 @@ }, "ink": { "version": "2.7.1", - "resolved": false, - "integrity": "sha512-s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==", + "bundled": true, "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -24407,8 +24023,7 @@ "dependencies": { "ansi-styles": { "version": "4.2.1", - "resolved": false, - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "bundled": true, "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -24417,8 +24032,7 @@ }, "chalk": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -24427,8 +24041,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "bundled": true, "dev": true, "requires": { "color-name": "~1.1.4" @@ -24436,20 +24049,17 @@ }, "color-name": { "version": "1.1.4", - "resolved": false, - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "bundled": true, "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "bundled": true, "dev": true }, "supports-color": { "version": "7.1.0", - "resolved": false, - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "bundled": true, "dev": true, "requires": { "has-flag": "^4.0.0" @@ -24468,8 +24078,7 @@ }, "is-ci": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "bundled": true, "dev": true, "requires": { "ci-info": "^2.0.0" @@ -24483,8 +24092,7 @@ }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "bundled": true, "dev": true }, "is-glob": { @@ -24504,20 +24112,17 @@ }, "js-tokens": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "bundled": true, "dev": true }, "jsesc": { "version": "2.5.2", - "resolved": false, - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bundled": true, "dev": true }, "json5": { "version": "2.1.3", - "resolved": false, - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "bundled": true, "dev": true, "requires": { "minimist": "^1.2.5" @@ -24525,20 +24130,17 @@ }, "lodash": { "version": "4.17.19", - "resolved": false, - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "bundled": true, "dev": true }, "lodash.throttle": { "version": "4.1.1", - "resolved": false, - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", + "bundled": true, "dev": true }, "log-update": { "version": "3.4.0", - "resolved": false, - "integrity": "sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==", + "bundled": true, "dev": true, "requires": { "ansi-escapes": "^3.2.0", @@ -24548,20 +24150,17 @@ "dependencies": { "ansi-escapes": { "version": "3.2.0", - "resolved": false, - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "bundled": true, "dev": true }, "ansi-regex": { "version": "4.1.0", - "resolved": false, - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "bundled": true, "dev": true }, "cli-cursor": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "bundled": true, "dev": true, "requires": { "restore-cursor": "^2.0.0" @@ -24569,26 +24168,22 @@ }, "emoji-regex": { "version": "7.0.3", - "resolved": false, - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "mimic-fn": { "version": "1.2.0", - "resolved": false, - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "bundled": true, "dev": true }, "onetime": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "bundled": true, "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -24596,8 +24191,7 @@ }, "restore-cursor": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "bundled": true, "dev": true, "requires": { "onetime": "^2.0.0", @@ -24606,8 +24200,7 @@ }, "string-width": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "bundled": true, "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -24617,8 +24210,7 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": false, - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -24626,8 +24218,7 @@ }, "wrap-ansi": { "version": "5.1.0", - "resolved": false, - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -24639,8 +24230,7 @@ }, "loose-envify": { "version": "1.4.0", - "resolved": false, - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "bundled": true, "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -24648,20 +24238,17 @@ }, "mimic-fn": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "bundled": true, "dev": true }, "minimist": { "version": "1.2.5", - "resolved": false, - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "bundled": true, "dev": true }, "minipass": { "version": "3.1.3", - "resolved": false, - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "bundled": true, "dev": true, "requires": { "yallist": "^4.0.0" @@ -24669,8 +24256,7 @@ "dependencies": { "yallist": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "bundled": true, "dev": true } } @@ -24686,8 +24272,7 @@ }, "ms": { "version": "2.1.2", - "resolved": false, - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "bundled": true, "dev": true }, "normalize-path": { @@ -24698,14 +24283,12 @@ }, "object-assign": { "version": "4.1.1", - "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "onetime": { "version": "5.1.0", - "resolved": false, - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "bundled": true, "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -24713,14 +24296,12 @@ }, "path-parse": { "version": "1.0.6", - "resolved": false, - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "bundled": true, "dev": true }, "prop-types": { "version": "15.7.2", - "resolved": false, - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "bundled": true, "dev": true, "requires": { "loose-envify": "^1.4.0", @@ -24730,31 +24311,17 @@ }, "punycode": { "version": "2.1.1", - "resolved": false, - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "bundled": true, "dev": true }, - "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, "react-is": { "version": "16.13.1", - "resolved": false, - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "bundled": true, "dev": true }, "react-reconciler": { "version": "0.24.0", - "resolved": false, - "integrity": "sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw==", + "bundled": true, "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -24774,8 +24341,7 @@ }, "redeyed": { "version": "2.1.1", - "resolved": false, - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "bundled": true, "dev": true, "requires": { "esprima": "~4.0.0" @@ -24783,8 +24349,7 @@ }, "resolve": { "version": "1.17.0", - "resolved": false, - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "bundled": true, "dev": true, "requires": { "path-parse": "^1.0.6" @@ -24792,14 +24357,12 @@ }, "resolve-from": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "bundled": true, "dev": true }, "restore-cursor": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "bundled": true, "dev": true, "requires": { "onetime": "^5.1.0", @@ -24817,8 +24380,7 @@ }, "scheduler": { "version": "0.18.0", - "resolved": false, - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "bundled": true, "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -24827,20 +24389,17 @@ }, "semver": { "version": "5.7.1", - "resolved": false, - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.3", - "resolved": false, - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "bundled": true, "dev": true }, "slice-ansi": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -24850,8 +24409,7 @@ "dependencies": { "ansi-styles": { "version": "4.2.1", - "resolved": false, - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "bundled": true, "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -24860,8 +24418,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "bundled": true, "dev": true, "requires": { "color-name": "~1.1.4" @@ -24869,28 +24426,11 @@ }, "color-name": { "version": "1.1.4", - "resolved": false, - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "bundled": true, "dev": true } } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "stack-utils": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz", @@ -24910,8 +24450,7 @@ }, "string-length": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", + "bundled": true, "dev": true, "requires": { "astral-regex": "^1.0.0", @@ -24920,20 +24459,17 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": false, - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "bundled": true, "dev": true }, "astral-regex": { "version": "1.0.0", - "resolved": false, - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "bundled": true, "dev": true }, "strip-ansi": { "version": "5.2.0", - "resolved": false, - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -24943,8 +24479,7 @@ }, "string-width": { "version": "4.2.0", - "resolved": false, - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "bundled": true, "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -24954,8 +24489,7 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": false, - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^5.0.0" @@ -24963,8 +24497,7 @@ }, "supports-color": { "version": "5.5.0", - "resolved": false, - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "bundled": true, "dev": true, "requires": { "has-flag": "^3.0.0" @@ -24972,8 +24505,7 @@ }, "tap-parser": { "version": "10.0.1", - "resolved": false, - "integrity": "sha512-qdT15H0DoJIi7zOqVXDn9X0gSM68JjNy1w3VemwTJlDnETjbi6SutnqmBfjDJAwkFS79NJ97gZKqie00ZCGmzg==", + "bundled": true, "dev": true, "requires": { "events-to-array": "^1.0.1", @@ -24983,8 +24515,7 @@ }, "tap-yaml": { "version": "1.0.0", - "resolved": false, - "integrity": "sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ==", + "bundled": true, "dev": true, "requires": { "yaml": "^1.5.0" @@ -24992,8 +24523,7 @@ }, "to-fast-properties": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "bundled": true, "dev": true }, "to-regex-range": { @@ -25007,8 +24537,7 @@ }, "treport": { "version": "1.0.2", - "resolved": false, - "integrity": "sha512-QCAbFtzIjQN+9k+alo8e6oo8j0eSLsttdahAgNLoC3U36rls8XRy/R11QOhHmPz7CDcB2ar29eLe4OFJoPnsPA==", + "bundled": true, "dev": true, "requires": { "cardinal": "^2.1.1", @@ -25023,8 +24552,7 @@ "dependencies": { "ansi-styles": { "version": "4.2.1", - "resolved": false, - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "bundled": true, "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -25033,8 +24561,7 @@ }, "chalk": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -25043,8 +24570,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "bundled": true, "dev": true, "requires": { "color-name": "~1.1.4" @@ -25052,20 +24578,17 @@ }, "color-name": { "version": "1.1.4", - "resolved": false, - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "bundled": true, "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "bundled": true, "dev": true }, "supports-color": { "version": "7.1.0", - "resolved": false, - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "bundled": true, "dev": true, "requires": { "has-flag": "^4.0.0" @@ -25075,14 +24598,12 @@ }, "type-fest": { "version": "0.11.0", - "resolved": false, - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "bundled": true, "dev": true }, "unicode-length": { "version": "2.0.2", - "resolved": false, - "integrity": "sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==", + "bundled": true, "dev": true, "requires": { "punycode": "^2.0.0", @@ -25091,14 +24612,12 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -25117,8 +24636,7 @@ }, "widest-line": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "bundled": true, "dev": true, "requires": { "string-width": "^4.0.0" @@ -25126,8 +24644,7 @@ }, "wrap-ansi": { "version": "6.2.0", - "resolved": false, - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -25137,8 +24654,7 @@ "dependencies": { "ansi-styles": { "version": "4.2.1", - "resolved": false, - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "bundled": true, "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -25147,8 +24663,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "bundled": true, "dev": true, "requires": { "color-name": "~1.1.4" @@ -25156,22 +24671,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": false, - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "bundled": true, "dev": true } } }, "yaml": { "version": "1.10.0", - "resolved": false, - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "bundled": true, "dev": true }, "yoga-layout-prebuilt": { "version": "1.9.6", - "resolved": false, - "integrity": "sha512-Wursw6uqLXLMjBAO4SEShuzj8+EJXhCF71/rJ7YndHTkRAYSU0GY3OghRqfAk9HPUAAFMuqp3U1Wl+01vmGRQQ==", + "bundled": true, "dev": true, "requires": { "@types/yoga-layout": "1.9.2" @@ -25229,12 +24741,6 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, @@ -25441,9 +24947,9 @@ } }, "tcompare": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-3.0.4.tgz", - "integrity": "sha512-Q3TitMVK59NyKgQyFh+857wTAUE329IzLDehuPgU4nF5e8g+EUQ+yUbjUy1/6ugiNnXztphT+NnqlCXolv9P3A==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-3.0.5.tgz", + "integrity": "sha512-+tmloQj1buaShBX+LP1i1NF5riJm110Yr0flIJAEoKf01tFVoMZvW2jq1JLqaW8fspOUVPm5NKKW5qLwT0ETDQ==", "dev": true, "requires": { "diff-frag": "^1.0.1" @@ -26237,22 +25743,6 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } } } }, @@ -26365,9 +25855,9 @@ } }, "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", + "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", "dev": true }, "ua-parser-js": { @@ -26578,9 +26068,9 @@ } }, "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, "optional": true }, @@ -26795,9 +26285,9 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, "v8flags": { @@ -27118,9 +26608,9 @@ "optional": true }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "optional": true, "requires": { @@ -27289,16 +26779,6 @@ "upath": "^1.1.1" } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -27597,9 +27077,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "normalize-path": { "version": "3.0.0", @@ -27680,6 +27158,18 @@ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -27721,15 +27211,6 @@ } } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -27858,6 +27339,12 @@ } } }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -27936,6 +27423,12 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -27981,8 +27474,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -28004,9 +27496,9 @@ }, "dependencies": { "acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.5.tgz", + "integrity": "sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==", "dev": true }, "acorn-walk": { @@ -28067,6 +27559,12 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -28077,9 +27575,9 @@ } }, "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", + "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", "dev": true } } @@ -28674,9 +28172,9 @@ "dev": true }, "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true }, "yapool": { From 04203c82838a5a93ab4ab1a54a3c226547cacd55 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 21 Mar 2021 03:20:28 +0000 Subject: [PATCH 84/98] Bump scratch-l10n from 3.11.20210319031448 to 3.11.20210321031436 Bumps [scratch-l10n](https://github.com/LLK/scratch-l10n) from 3.11.20210319031448 to 3.11.20210321031436. - [Release notes](https://github.com/LLK/scratch-l10n/releases) - [Commits](https://github.com/LLK/scratch-l10n/compare/3.11.20210319031448...3.11.20210321031436) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 427 ++++++++++++++++++++++++---------------------- 1 file changed, 220 insertions(+), 207 deletions(-) diff --git a/package-lock.json b/package-lock.json index 68b352e5d..b41114664 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,207 @@ "turntable-camera-controller": "^3.0.0" } }, + "@babel/cli": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", + "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "dev": true, + "requires": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -1916,9 +2117,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.13", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.13.tgz", - "integrity": "sha512-CC6amBNND16pTk4K3ZqKIaba6VGKAQs3gMjEY17FVd56oI/ZWt9OhS6riYiWv9s8ENbYUi7p8lgqb0QHQvUKQQ==", + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", + "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -21164,6 +21365,19 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "scratch-l10n": { + "version": "3.11.20210319031448", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210319031448.tgz", + "integrity": "sha512-gyf1rrzdAM1Cpy5IDBfxNfByXMpI8ZltkActnsbud8FDVNbatziGENi2F8bT4gxJ8A2fcm72X7eMeafC8jJs5g==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "react-intl": "^2.8.0", + "transifex": "1.6.6" + } + }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21231,9 +21445,9 @@ } }, "scratch-l10n": { - "version": "3.11.20210319031448", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210319031448.tgz", - "integrity": "sha512-gyf1rrzdAM1Cpy5IDBfxNfByXMpI8ZltkActnsbud8FDVNbatziGENi2F8bT4gxJ8A2fcm72X7eMeafC8jJs5g==", + "version": "3.11.20210321031436", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210321031436.tgz", + "integrity": "sha512-qe35XymMhDGKehK6YAmXWmtWZA5imqzI+3AN/xuw1nAh5RCg2H9gAHOT/Mz25kVB6rp9RDDmJScClJw35FswDA==", "dev": true, "requires": { "@babel/cli": "^7.1.2", @@ -21241,207 +21455,6 @@ "babel-plugin-react-intl": "^3.0.1", "react-intl": "^2.8.0", "transifex": "1.6.6" - }, - "dependencies": { - "@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", - "dev": true, - "requires": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", - "chokidar": "^3.4.0", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } } }, "scratch-paint": { From 17ed8dbf8223ff1e76b6347abb521224f23cfa2d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Mar 2021 03:49:49 +0000 Subject: [PATCH 85/98] Bump scratch-l10n from 3.11.20210321031436 to 3.11.20210322031531 Bumps [scratch-l10n](https://github.com/LLK/scratch-l10n) from 3.11.20210321031436 to 3.11.20210322031531. - [Release notes](https://github.com/LLK/scratch-l10n/releases) - [Commits](https://github.com/LLK/scratch-l10n/compare/3.11.20210321031436...3.11.20210322031531) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b41114664..b492f8a03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21445,9 +21445,9 @@ } }, "scratch-l10n": { - "version": "3.11.20210321031436", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210321031436.tgz", - "integrity": "sha512-qe35XymMhDGKehK6YAmXWmtWZA5imqzI+3AN/xuw1nAh5RCg2H9gAHOT/Mz25kVB6rp9RDDmJScClJw35FswDA==", + "version": "3.11.20210322031531", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210322031531.tgz", + "integrity": "sha512-Z+1QdCa5FysWP0ceDiiuf3gqJmzrOmW6zdQY8vm7ArFuczJpgi1hsdhRcnN7+aFzCMPA2eCP+Cs4/KASQMti2A==", "dev": true, "requires": { "@babel/cli": "^7.1.2", From bc30ace5d68f35c94e9f065e69bcf09912ac486d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Mar 2021 11:16:40 +0000 Subject: [PATCH 86/98] Bump scratch-gui Bumps [scratch-gui](https://github.com/LLK/scratch-gui) from 0.1.0-prerelease.20210319040415 to 0.1.0-prerelease.20210322040541. - [Release notes](https://github.com/LLK/scratch-gui/releases) - [Commits](https://github.com/LLK/scratch-gui/compare/0.1.0-prerelease.20210319040415...0.1.0-prerelease.20210322040541) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 43 +++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index b492f8a03..79b0b338e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20920,9 +20920,9 @@ } }, "scratch-gui": { - "version": "0.1.0-prerelease.20210319040415", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210319040415.tgz", - "integrity": "sha512-hg9Rhzvn1IybskMKCqplX9rlMB0R2gN4u4d8GmAQclhKxQfeudRlOdOpcptEbj8uxPHA0P7Wo4gvcH766Ise8Q==", + "version": "0.1.0-prerelease.20210322040541", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210322040541.tgz", + "integrity": "sha512-thrxJGCDfB0w6YlFRUmdHr8C4we6jL4vc4x16a1kMD4ICbAwPZ3RvzNjttkA2Kcu5pg/S/y97l5DjyHlXkv8TQ==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -20974,13 +20974,13 @@ "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", "scratch-blocks": "0.1.0-prerelease.20210319032844", - "scratch-l10n": "3.11.20210319031448", - "scratch-paint": "0.2.0-prerelease.20210308034725", + "scratch-l10n": "3.11.20210322031531", + "scratch-paint": "0.2.0-prerelease.20210319222931", "scratch-render": "0.1.0-prerelease.20210317200605", "scratch-render-fonts": "1.0.0-prerelease.20200507182347", "scratch-storage": "1.3.3", "scratch-svg-renderer": "0.2.0-prerelease.20210317184701", - "scratch-vm": "0.2.0-prerelease.20210318114153", + "scratch-vm": "0.2.0-prerelease.20210319111230", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -21143,9 +21143,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.692", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", - "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", + "version": "1.3.693", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", + "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", "dev": true }, "has-flag": { @@ -21365,19 +21365,6 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, - "scratch-l10n": { - "version": "3.11.20210319031448", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210319031448.tgz", - "integrity": "sha512-gyf1rrzdAM1Cpy5IDBfxNfByXMpI8ZltkActnsbud8FDVNbatziGENi2F8bT4gxJ8A2fcm72X7eMeafC8jJs5g==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "babel-plugin-react-intl": "^3.0.1", - "react-intl": "^2.8.0", - "transifex": "1.6.6" - } - }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21458,9 +21445,9 @@ } }, "scratch-paint": { - "version": "0.2.0-prerelease.20210308034725", - "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20210308034725.tgz", - "integrity": "sha512-DBhOVZ1Q7TpCcUJXAUMQACWWOZMFJyBmXvOf11ifP6opiQgjLbSBvUqYySPQckgkj38KDqDED90zAHVFga//eA==", + "version": "0.2.0-prerelease.20210319222931", + "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20210319222931.tgz", + "integrity": "sha512-O5tIIQ6ECsLZ3iol2S3OV3yaVyM1i6Kk0YVAR219t6GnSv1ux6RCD3qs7g8HCa+G3f+PHKBcCIk4DCR8Qv59Uw==", "dev": true, "requires": { "@scratch/paper": "0.11.20200728195508", @@ -21695,9 +21682,9 @@ "dev": true }, "scratch-vm": { - "version": "0.2.0-prerelease.20210318114153", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210318114153.tgz", - "integrity": "sha512-7yCLsfgqKJKrIN2k6Doyp9ZwbnJfr+E8zn6GGngNa9TPVSIM/01blsRkjA01+OewAAkEeHoTpUHzq3ONR2u4dg==", + "version": "0.2.0-prerelease.20210319111230", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210319111230.tgz", + "integrity": "sha512-mppeo3vmQTWK3HZnAGlpLM6sSKkXocfOrXX91zaO88D7q9Mam36oWoHQCrQ6QVY7L5Y2OLytxpCXCrSYSYw9UA==", "dev": true, "requires": { "@vernier/godirect": "1.5.0", diff --git a/package.json b/package.json index 45cf2a642..2af9250fb 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "redux-mock-store": "^1.2.3", "redux-thunk": "2.0.1", "sass-loader": "6.0.6", - "scratch-gui": "0.1.0-prerelease.20210319040415", + "scratch-gui": "0.1.0-prerelease.20210322040541", "scratch-l10n": "latest", "selenium-webdriver": "3.6.0", "slick-carousel": "1.6.0", From 3a4aacfb7333f5bcac07d9e2a5c60af3796371f1 Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Mon, 22 Mar 2021 10:32:54 -0400 Subject: [PATCH 87/98] update eslint-config-scratch to 7.0.0 --- package-lock.json | 408 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 205 insertions(+), 205 deletions(-) diff --git a/package-lock.json b/package-lock.json index 79b0b338e..0f1b8b269 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,207 +15,6 @@ "turntable-camera-controller": "^3.0.0" } }, - "@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", - "dev": true, - "requires": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", - "chokidar": "^3.4.0", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -7596,9 +7395,9 @@ } }, "eslint-config-scratch": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-scratch/-/eslint-config-scratch-6.0.0.tgz", - "integrity": "sha512-2aW7EVWhjTrwaM54hjAZeRETh/habWeQ5xzTbPO2dG//RtixBztUAmdxqAHKH8MEtmAMsUhf3mRjO1BstO4dGg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-scratch/-/eslint-config-scratch-7.0.0.tgz", + "integrity": "sha512-8Ko7aaC+Gv09lyz3x7+EaVZ68ga/4mnfGgwH1Jz/MnR4UJyJyYtUOtlWxsPspPOlPZzDAVL5CKEcxmCX24SrJA==", "dev": true, "requires": { "eslint-plugin-react": ">=7.14.2" @@ -21442,6 +21241,207 @@ "babel-plugin-react-intl": "^3.0.1", "react-intl": "^2.8.0", "transifex": "1.6.6" + }, + "dependencies": { + "@babel/cli": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", + "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "dev": true, + "requires": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "scratch-paint": { diff --git a/package.json b/package.json index 2af9250fb..5c9ae5db1 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.14.0", "eslint": "5.16.0", - "eslint-config-scratch": "6.0.0", + "eslint-config-scratch": "7.0.0", "eslint-plugin-json": "2.0.1", "eslint-plugin-react": "7.14.2", "fastly": "1.2.1", From 10f9194f61bb650a1fce584af6858d1547b792da Mon Sep 17 00:00:00 2001 From: Eric Rosenbaum Date: Mon, 22 Mar 2021 17:24:18 -0400 Subject: [PATCH 88/98] fix form and carousel enough to display them --- src/components/carousel/carousel.json | 30 ++++++++++++++++----------- src/views/components/components.jsx | 16 +++++++------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/components/carousel/carousel.json b/src/components/carousel/carousel.json index 16742f743..88cf9e0b5 100644 --- a/src/components/carousel/carousel.json +++ b/src/components/carousel/carousel.json @@ -4,47 +4,53 @@ "type": "project", "title": "Project", "thumbnailUrl": "", - "creator": "", - "href": "#" + "author": "", + "href": "#", + "stats": {"loves": 0, "remixes": 0} }, { "id": 2, "type": "project", "title": "Project", "thumbnailUrl": "", - "creator": "", - "href": "#" + "author": "", + "href": "#", + "stats": {"loves": 0, "remixes": 0} }, { "id": 3, "type": "project", "title": "Project", "thumbnailUrl": "", - "creator": "", - "href": "#" + "author": "", + "href": "#", + "stats": {"loves": 0, "remixes": 0} }, { "id": 4, "type": "project", "title": "Project", "thumbnailUrl": "", - "creator": "", - "href": "#" + "author": "", + "href": "#", + "stats": {"loves": 0, "remixes": 0} }, { "id": 5, "type": "project", "title": "Project", "thumbnailUrl": "", - "creator": "", - "href": "#" + "author": "", + "href": "#", + "stats": {"loves": 0, "remixes": 0} }, { "id": 6, "type": "project", "title": "Project", "thumbnailUrl": "", - "creator": "", - "href": "#" + "author": "", + "href": "#", + "stats": {"loves": 0, "remixes": 0} } ] diff --git a/src/views/components/components.jsx b/src/views/components/components.jsx index 1e01bc4cc..96b6c1ebf 100644 --- a/src/views/components/components.jsx +++ b/src/views/components/components.jsx @@ -5,6 +5,7 @@ const Page = require('../../components/page/www/page.jsx'); const Box = require('../../components/box/box.jsx'); const Button = require('../../components/forms/button.jsx'); const Carousel = require('../../components/carousel/carousel.jsx'); +const Form = require('../../components/forms/form.jsx'); const Input = require('../../components/forms/input.jsx'); const Spinner = require('../../components/spinner/spinner.jsx'); @@ -16,11 +17,13 @@ const Components = () => (

Button

Form

- +
+ +

Box Component

(

Carousel Component

- - -

This is a blue Spinner

Date: Mon, 22 Mar 2021 17:27:52 -0400 Subject: [PATCH 89/98] re-add the carousel component in a box --- src/views/components/components.jsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/views/components/components.jsx b/src/views/components/components.jsx index 96b6c1ebf..92d342adc 100644 --- a/src/views/components/components.jsx +++ b/src/views/components/components.jsx @@ -35,6 +35,9 @@ const Components = () => (

Carousel Component

+ + +

This is a blue Spinner

Date: Tue, 23 Mar 2021 03:42:30 +0000 Subject: [PATCH 90/98] Bump scratch-l10n from 3.11.20210322031531 to 3.11.20210323031446 Bumps [scratch-l10n](https://github.com/LLK/scratch-l10n) from 3.11.20210322031531 to 3.11.20210323031446. - [Release notes](https://github.com/LLK/scratch-l10n/releases) - [Commits](https://github.com/LLK/scratch-l10n/compare/3.11.20210322031531...3.11.20210323031446) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 554 +++++++++++++++++++++++----------------------- 1 file changed, 283 insertions(+), 271 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f1b8b269..4de8ae559 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,207 @@ "turntable-camera-controller": "^3.0.0" } }, + "@babel/cli": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", + "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "dev": true, + "requires": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -25,9 +226,9 @@ } }, "@babel/compat-data": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.11.tgz", - "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", + "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==", "dev": true }, "@babel/core": { @@ -115,9 +316,9 @@ } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", + "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", "dev": true }, "@babel/template": { @@ -149,9 +350,9 @@ } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -318,9 +519,9 @@ } }, "electron-to-chromium": { - "version": "1.3.693", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", - "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", + "version": "1.3.694", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.694.tgz", + "integrity": "sha512-8YJ/OZjbK5luOd27dmk34B47oa/zNGRHrKTEmfO3qPns1kFAJ36Lb+OtYzNlCoXtkPYuDbX0ztofuL7ArMHJkQ==", "dev": true }, "semver": { @@ -352,18 +553,18 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", - "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", "dev": true, "requires": { - "@babel/types": "^7.13.0" + "@babel/types": "^7.13.12" }, "dependencies": { "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -386,18 +587,18 @@ } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" }, "dependencies": { "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -420,20 +621,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", - "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz", + "integrity": "sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", "@babel/helper-validator-identifier": "^7.12.11", "@babel/template": "^7.12.13", "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "lodash": "^4.17.19" + "@babel/types": "^7.13.12" }, "dependencies": { "@babel/code-frame": { @@ -497,9 +697,9 @@ } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", + "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", "dev": true }, "@babel/template": { @@ -531,9 +731,9 @@ } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -627,9 +827,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -658,15 +858,15 @@ "dev": true }, "@babel/helper-replace-supers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", - "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/types": "^7.13.12" }, "dependencies": { "@babel/code-frame": { @@ -730,9 +930,9 @@ } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", + "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", "dev": true }, "@babel/template": { @@ -764,9 +964,9 @@ } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -851,18 +1051,18 @@ } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" }, "dependencies": { "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -977,9 +1177,9 @@ } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", + "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", "dev": true }, "@babel/template": { @@ -1011,9 +1211,9 @@ } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -21164,6 +21364,19 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "scratch-l10n": { + "version": "3.11.20210322031531", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210322031531.tgz", + "integrity": "sha512-Z+1QdCa5FysWP0ceDiiuf3gqJmzrOmW6zdQY8vm7ArFuczJpgi1hsdhRcnN7+aFzCMPA2eCP+Cs4/KASQMti2A==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "react-intl": "^2.8.0", + "transifex": "1.6.6" + } + }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21231,9 +21444,9 @@ } }, "scratch-l10n": { - "version": "3.11.20210322031531", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210322031531.tgz", - "integrity": "sha512-Z+1QdCa5FysWP0ceDiiuf3gqJmzrOmW6zdQY8vm7ArFuczJpgi1hsdhRcnN7+aFzCMPA2eCP+Cs4/KASQMti2A==", + "version": "3.11.20210323031446", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210323031446.tgz", + "integrity": "sha512-Qgk5iERKTzI2ltk4AJPgZCCBVu9DWgxzKUKtdEbb35dXB1fXx0szBOMWpev16zkjEG+tuLadNSIRa6/yQtEdNg==", "dev": true, "requires": { "@babel/cli": "^7.1.2", @@ -21241,207 +21454,6 @@ "babel-plugin-react-intl": "^3.0.1", "react-intl": "^2.8.0", "transifex": "1.6.6" - }, - "dependencies": { - "@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", - "dev": true, - "requires": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", - "chokidar": "^3.4.0", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } } }, "scratch-paint": { From 507292530a4c3ec8c993b3d8b31aa35a70153cd3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Mar 2021 13:50:18 +0000 Subject: [PATCH 91/98] Bump scratch-gui Bumps [scratch-gui](https://github.com/LLK/scratch-gui) from 0.1.0-prerelease.20210322040541 to 0.1.0-prerelease.20210323041806. - [Release notes](https://github.com/LLK/scratch-gui/releases) - [Commits](https://github.com/LLK/scratch-gui/compare/0.1.0-prerelease.20210322040541...0.1.0-prerelease.20210323041806) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 43 +++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4de8ae559..ec7741dd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20909,9 +20909,9 @@ } }, "scratch-blocks": { - "version": "0.1.0-prerelease.20210319032844", - "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210319032844.tgz", - "integrity": "sha512-kfI/JKO2Zk0kQS74/wUVgrZzQP2Efd9xkHRXUyJhqgFPHVR0TdAhJGpvzCj6A7AnWZDLnUc+FjzPPzVuRowR2A==", + "version": "0.1.0-prerelease.20210323034543", + "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210323034543.tgz", + "integrity": "sha512-MSdNZh4mwNMC9EPLMbDI5Run58d82cLA/mGhoCp/BPcwTvDdeaELqDFzqfUjBAC/WsF3tT2HKPOwveRY5yzhwA==", "dev": true, "requires": { "exports-loader": "0.6.3", @@ -20919,9 +20919,9 @@ } }, "scratch-gui": { - "version": "0.1.0-prerelease.20210322040541", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210322040541.tgz", - "integrity": "sha512-thrxJGCDfB0w6YlFRUmdHr8C4we6jL4vc4x16a1kMD4ICbAwPZ3RvzNjttkA2Kcu5pg/S/y97l5DjyHlXkv8TQ==", + "version": "0.1.0-prerelease.20210323041806", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210323041806.tgz", + "integrity": "sha512-oSHdNuj8xMFa4gU0cLw8g+odgk5fEIVC2ud/6mTQjOmYp+aPjP7AiM/mppuTsnTHrPDIwVZK4z4IkzmrlTI/Qw==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -20972,14 +20972,14 @@ "redux": "3.7.2", "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", - "scratch-blocks": "0.1.0-prerelease.20210319032844", - "scratch-l10n": "3.11.20210322031531", + "scratch-blocks": "0.1.0-prerelease.20210323034543", + "scratch-l10n": "3.11.20210323031446", "scratch-paint": "0.2.0-prerelease.20210319222931", "scratch-render": "0.1.0-prerelease.20210317200605", "scratch-render-fonts": "1.0.0-prerelease.20200507182347", "scratch-storage": "1.3.3", "scratch-svg-renderer": "0.2.0-prerelease.20210317184701", - "scratch-vm": "0.2.0-prerelease.20210319111230", + "scratch-vm": "0.2.0-prerelease.20210322113444", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -21142,9 +21142,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.693", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", - "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", + "version": "1.3.695", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.695.tgz", + "integrity": "sha512-lz66RliUqLHU1Ojxx1A4QUxKydjiQ79Y4dZyPobs2Dmxj5aVL2TM3KoQ2Gs7HS703Bfny+ukI3KOxwAB0xceHQ==", "dev": true }, "has-flag": { @@ -21364,19 +21364,6 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, - "scratch-l10n": { - "version": "3.11.20210322031531", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210322031531.tgz", - "integrity": "sha512-Z+1QdCa5FysWP0ceDiiuf3gqJmzrOmW6zdQY8vm7ArFuczJpgi1hsdhRcnN7+aFzCMPA2eCP+Cs4/KASQMti2A==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "babel-plugin-react-intl": "^3.0.1", - "react-intl": "^2.8.0", - "transifex": "1.6.6" - } - }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21694,9 +21681,9 @@ "dev": true }, "scratch-vm": { - "version": "0.2.0-prerelease.20210319111230", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210319111230.tgz", - "integrity": "sha512-mppeo3vmQTWK3HZnAGlpLM6sSKkXocfOrXX91zaO88D7q9Mam36oWoHQCrQ6QVY7L5Y2OLytxpCXCrSYSYw9UA==", + "version": "0.2.0-prerelease.20210322113444", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210322113444.tgz", + "integrity": "sha512-YuhResDl2l9nPUw2TTupCB7Qsmsem8vVOsPVq5UZMrnLg0ojFrqZHm47S84cK+e6uZMCPTTknkjDxFEIBzJzAA==", "dev": true, "requires": { "@vernier/godirect": "1.5.0", diff --git a/package.json b/package.json index 5c9ae5db1..2fb41722e 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "redux-mock-store": "^1.2.3", "redux-thunk": "2.0.1", "sass-loader": "6.0.6", - "scratch-gui": "0.1.0-prerelease.20210322040541", + "scratch-gui": "0.1.0-prerelease.20210323041806", "scratch-l10n": "latest", "selenium-webdriver": "3.6.0", "slick-carousel": "1.6.0", From 138ed7339e2ddafca2f523d3e43ff0727ef930df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zoe=CC=88=20Bentley?= Date: Wed, 17 Mar 2021 16:04:55 -0400 Subject: [PATCH 92/98] Fixed other place where date appears --- src/views/conference/2020/index/index.jsx | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/views/conference/2020/index/index.jsx b/src/views/conference/2020/index/index.jsx index a2041a6be..78689fc9b 100644 --- a/src/views/conference/2020/index/index.jsx +++ b/src/views/conference/2020/index/index.jsx @@ -51,13 +51,6 @@ const ConferenceSplash = () => ( value={new Date(2021, 6, 22)} year="numeric" /> - {' - '} - From ccab9566b8d8e5574a4f904ec827f327c9cb2e1e Mon Sep 17 00:00:00 2001 From: seotts Date: Tue, 23 Mar 2021 11:00:01 -0400 Subject: [PATCH 93/98] Show different modal message when muted in the past --- src/l10n.json | 2 - src/views/preview/comment/compose-comment.jsx | 35 ++++++++--------- src/views/preview/l10n.json | 2 + test/unit/components/compose-comment.test.jsx | 38 ++++++++++++++++--- 4 files changed, 50 insertions(+), 27 deletions(-) diff --git a/src/l10n.json b/src/l10n.json index bdc2313d6..24c37e562 100644 --- a/src/l10n.json +++ b/src/l10n.json @@ -327,8 +327,6 @@ "comments.isBad": "Hmm...the bad word detector thinks there is a problem with your comment. Please change it and remember to be respectful.", "comments.hasChatSite": "Uh oh! The comment contains a link to a website with unmoderated chat. For safety reasons, please do not link to these sites!", "comments.isSpam": "Hmm, seems like you've posted the same comment a bunch of times. Please don't spam.", - "comments.isMuted": "Hmm, the filterbot is pretty sure your recent comments weren't ok for Scratch, so your account has been muted for the rest of the day. :/", - "comments.isUnconstructive": "Hmm, the filterbot thinks your comment may be mean or disrespectful. Remember, most projects on Scratch are made by people who are just learning how to program.", "comments.isDisallowed": "Hmm, it looks like comments have been turned off for this page. :/", "comments.isIPMuted": "Sorry, the Scratch Team had to prevent your network from sharing comments or projects because it was used to break our community guidelines too many times. You can still share comments and projects from another network. If you'd like to appeal this block, you can contact appeals@scratch.mit.edu and reference Case Number {appealId}.", "comments.isTooLong": "That comment is too long! Please find a way to shorten your text.", diff --git a/src/views/preview/comment/compose-comment.jsx b/src/views/preview/comment/compose-comment.jsx index 2627334ed..921967163 100644 --- a/src/views/preview/comment/compose-comment.jsx +++ b/src/views/preview/comment/compose-comment.jsx @@ -224,42 +224,43 @@ class ComposeComment extends React.Component { MuteModal.steps.MUTE_INFO : MuteModal.steps.COMMENT_ISSUE; } - getMuteMessageInfo () { + getMuteMessageInfo (justMuted) { // return the ids for the messages that are shown for this mute type // If mute modals have more than one unique "step" we could pass an array of steps const messageInfo = { pii: { name: 'pii', - commentType: 'comment.type.pii', - commentTypePast: 'comment.type.pii.past', + commentType: justMuted ? 'comment.type.pii' : 'comment.type.pii.past', muteStepHeader: 'comment.pii.header', muteStepContent: ['comment.pii.content1', 'comment.pii.content2', 'comment.pii.content3'] }, unconstructive: { name: 'unconstructive', - commentType: 'comment.type.unconstructive', - commentTypePast: 'comment.type.unconstructive.past', + commentType: justMuted ? 'comment.type.unconstructive' : 'comment.type.unconstructive.past', muteStepHeader: 'comment.unconstructive.header', - muteStepContent: ['comment.unconstructive.content1', 'comment.unconstructive.content2'] + muteStepContent: [ + justMuted ? 'comment.unconstructive.content1' : 'comment.unconstructive.content1.past', + 'comment.unconstructive.content2' + ] }, vulgarity: { name: 'vulgarity', - commentType: 'comment.type.vulgarity', - commentTypePast: 'comment.type.vulgarity.past', + commentType: justMuted ? 'comment.type.vulgarity' : 'comment.type.vulgarity.past', muteStepHeader: 'comment.vulgarity.header', - muteStepContent: ['comment.vulgarity.content1', 'comment.vulgarity.content2'] + muteStepContent: [ + justMuted ? 'comment.vulgarity.content1' : 'comment.vulgarity.content1.past', + 'comment.vulgarity.content2' + ] }, spam: { name: 'spam', - commentType: 'comment.type.spam', - commentTypePast: 'comment.type.spam.past', + commentType: justMuted ? 'comment.type.spam' : 'comment.type.spam.past', muteStepHeader: 'comment.spam.header', muteStepContent: ['comment.spam.content1', 'comment.spam.content2'] }, general: { name: 'general', - commentType: 'comment.type.general', - commentTypePast: 'comment.type.general.past', + commentType: justMuted ? 'comment.type.general' : 'comment.type.general.past', muteStepHeader: 'comment.general.header', muteStepContent: ['comment.general.content1'] } @@ -291,11 +292,7 @@ class ComposeComment extends React.Component {

@@ -404,7 +401,7 @@ class ComposeComment extends React.Component { useStandardSizes className="mod-mute" commentContent={this.state.message} - muteModalMessages={this.getMuteMessageInfo()} + muteModalMessages={this.getMuteMessageInfo(this.state.status === ComposeStatus.REJECTED_MUTE)} shouldCloseOnOverlayClick={false} showFeedback={ this.state.status === ComposeStatus.REJECTED_MUTE diff --git a/src/views/preview/l10n.json b/src/views/preview/l10n.json index df117e0f8..01826dde9 100644 --- a/src/views/preview/l10n.json +++ b/src/views/preview/l10n.json @@ -60,11 +60,13 @@ "comment.type.unconstructive.past": "It appears that one of your recent comments was saying something that might have been hurtful.", "comment.unconstructive.header": "We encourage you to be supportive when commenting on other people’s projects", "comment.unconstructive.content1": "It appears that your comment was saying something that might have been hurtful.", + "comment.unconstructive.content1.past": "It appears that one of your recent comments was saying something that might have been hurtful.", "comment.unconstructive.content2": "If you think something could be better, you can say something you like about the project, and make a suggestion about how to improve it.", "comment.type.vulgarity": "Your most recent comment appeared to include a bad word.", "comment.type.vulgarity.past": "It appears that one of your recent comments contained a bad word.", "comment.vulgarity.header": "We encourage you to use language that’s appropriate for all ages.", "comment.vulgarity.content1": "It appears that your comment contains a bad word.", + "comment.vulgarity.content1.past": "It appears that one of your recent comments contained a bad word.", "comment.vulgarity.content2": "Scratch has users of all ages, so it’s important to use language that is appropriate for all Scratchers.", "comment.type.spam": "Your most recent comment appeared to contain advertising, text art, or a chain message.", "comment.type.spam.past": "It appears that one of your recent comments contained advertising, text art, or a chain message.", diff --git a/test/unit/components/compose-comment.test.jsx b/test/unit/components/compose-comment.test.jsx index 226d80062..a23c4b507 100644 --- a/test/unit/components/compose-comment.test.jsx +++ b/test/unit/components/compose-comment.test.jsx @@ -555,20 +555,46 @@ describe('Compose Comment test', () => { global.Date.now = realDateNow; }); - test('getMuteMessageInfo: muteType set', () => { + test('getMuteMessageInfo: muteType set and just got muted', () => { const commentInstance = getComposeCommentWrapper({}).instance(); commentInstance.setState({muteType: 'unconstructive'}); - expect(commentInstance.getMuteMessageInfo().commentType).toBe('comment.type.unconstructive'); + expect(commentInstance.getMuteMessageInfo(true).commentType).toBe('comment.type.unconstructive'); + expect(commentInstance.getMuteMessageInfo(true).muteStepContent[0]).toBe('comment.unconstructive.content1'); }); - test('getMuteMessageInfo: muteType not set', () => { + test('getMuteMessageInfo: muteType set and already muted', () => { const commentInstance = getComposeCommentWrapper({}).instance(); - expect(commentInstance.getMuteMessageInfo().commentType).toBe('comment.type.general'); + commentInstance.setState({muteType: 'pii'}); + expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.pii.past'); + // PII has the same content1 regardless of whether you were just muted + expect(commentInstance.getMuteMessageInfo(false).muteStepContent[0]).toBe('comment.pii.content1'); + + commentInstance.setState({muteType: 'vulgarity'}); + expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.vulgarity.past'); + expect(commentInstance.getMuteMessageInfo(false).muteStepContent[0]).toBe('comment.vulgarity.content1.past'); }); - test('getMuteMessageInfo: muteType set to something we don\'t have messages for', () => { + test('getMuteMessageInfo: muteType not set and just got muted', () => { + const commentInstance = getComposeCommentWrapper({}).instance(); + expect(commentInstance.getMuteMessageInfo(true).commentType).toBe('comment.type.general'); + // general has the same content1 regardless of whether you were just muted + expect(commentInstance.getMuteMessageInfo(true).muteStepContent[0]).toBe('comment.general.content1'); + }); + + test('getMuteMessageInfo: muteType not set and already muted', () => { + const commentInstance = getComposeCommentWrapper({}).instance(); + expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.general.past'); + }); + + test('getMuteMessageInfo: muteType set to something we don\'t have messages for and just got muted', () => { const commentInstance = getComposeCommentWrapper({}).instance(); commentInstance.setState({muteType: 'spaghetti'}); - expect(commentInstance.getMuteMessageInfo().commentType).toBe('comment.type.general'); + expect(commentInstance.getMuteMessageInfo(true).commentType).toBe('comment.type.general'); + }); + + test('getMuteMessageInfo: muteType set to something we don\'t have messages for and already muted', () => { + const commentInstance = getComposeCommentWrapper({}).instance(); + commentInstance.setState({muteType: 'spaghetti'}); + expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.general.past'); }); }); From 60bf05fbbfe41c94104bb424b0dff34b501d6ae9 Mon Sep 17 00:00:00 2001 From: seotts Date: Tue, 23 Mar 2021 15:45:03 -0400 Subject: [PATCH 94/98] Reuse l10n strings instead of duplicating them --- src/views/preview/comment/compose-comment.jsx | 4 ++-- src/views/preview/l10n.json | 2 -- test/unit/components/compose-comment.test.jsx | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/views/preview/comment/compose-comment.jsx b/src/views/preview/comment/compose-comment.jsx index 921967163..77b1c9199 100644 --- a/src/views/preview/comment/compose-comment.jsx +++ b/src/views/preview/comment/compose-comment.jsx @@ -239,7 +239,7 @@ class ComposeComment extends React.Component { commentType: justMuted ? 'comment.type.unconstructive' : 'comment.type.unconstructive.past', muteStepHeader: 'comment.unconstructive.header', muteStepContent: [ - justMuted ? 'comment.unconstructive.content1' : 'comment.unconstructive.content1.past', + justMuted ? 'comment.unconstructive.content1' : 'comment.type.unconstructive.past', 'comment.unconstructive.content2' ] }, @@ -248,7 +248,7 @@ class ComposeComment extends React.Component { commentType: justMuted ? 'comment.type.vulgarity' : 'comment.type.vulgarity.past', muteStepHeader: 'comment.vulgarity.header', muteStepContent: [ - justMuted ? 'comment.vulgarity.content1' : 'comment.vulgarity.content1.past', + justMuted ? 'comment.vulgarity.content1' : 'comment.type.vulgarity.past', 'comment.vulgarity.content2' ] }, diff --git a/src/views/preview/l10n.json b/src/views/preview/l10n.json index 01826dde9..df117e0f8 100644 --- a/src/views/preview/l10n.json +++ b/src/views/preview/l10n.json @@ -60,13 +60,11 @@ "comment.type.unconstructive.past": "It appears that one of your recent comments was saying something that might have been hurtful.", "comment.unconstructive.header": "We encourage you to be supportive when commenting on other people’s projects", "comment.unconstructive.content1": "It appears that your comment was saying something that might have been hurtful.", - "comment.unconstructive.content1.past": "It appears that one of your recent comments was saying something that might have been hurtful.", "comment.unconstructive.content2": "If you think something could be better, you can say something you like about the project, and make a suggestion about how to improve it.", "comment.type.vulgarity": "Your most recent comment appeared to include a bad word.", "comment.type.vulgarity.past": "It appears that one of your recent comments contained a bad word.", "comment.vulgarity.header": "We encourage you to use language that’s appropriate for all ages.", "comment.vulgarity.content1": "It appears that your comment contains a bad word.", - "comment.vulgarity.content1.past": "It appears that one of your recent comments contained a bad word.", "comment.vulgarity.content2": "Scratch has users of all ages, so it’s important to use language that is appropriate for all Scratchers.", "comment.type.spam": "Your most recent comment appeared to contain advertising, text art, or a chain message.", "comment.type.spam.past": "It appears that one of your recent comments contained advertising, text art, or a chain message.", diff --git a/test/unit/components/compose-comment.test.jsx b/test/unit/components/compose-comment.test.jsx index a23c4b507..c8e8aa194 100644 --- a/test/unit/components/compose-comment.test.jsx +++ b/test/unit/components/compose-comment.test.jsx @@ -571,7 +571,7 @@ describe('Compose Comment test', () => { commentInstance.setState({muteType: 'vulgarity'}); expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.vulgarity.past'); - expect(commentInstance.getMuteMessageInfo(false).muteStepContent[0]).toBe('comment.vulgarity.content1.past'); + expect(commentInstance.getMuteMessageInfo(false).muteStepContent[0]).toBe('comment.type.vulgarity.past'); }); test('getMuteMessageInfo: muteType not set and just got muted', () => { From f6f1095d936740bec52f65e68162804a1402d675 Mon Sep 17 00:00:00 2001 From: seotts Date: Tue, 23 Mar 2021 16:33:24 -0400 Subject: [PATCH 95/98] add justMuted variable, fix linting --- src/views/preview/comment/compose-comment.jsx | 6 +++- test/unit/components/compose-comment.test.jsx | 29 ++++++++++++------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/views/preview/comment/compose-comment.jsx b/src/views/preview/comment/compose-comment.jsx index 77b1c9199..c6baa356e 100644 --- a/src/views/preview/comment/compose-comment.jsx +++ b/src/views/preview/comment/compose-comment.jsx @@ -292,7 +292,11 @@ class ComposeComment extends React.Component {

diff --git a/test/unit/components/compose-comment.test.jsx b/test/unit/components/compose-comment.test.jsx index c8e8aa194..ddd0ff4ae 100644 --- a/test/unit/components/compose-comment.test.jsx +++ b/test/unit/components/compose-comment.test.jsx @@ -556,45 +556,52 @@ describe('Compose Comment test', () => { }); test('getMuteMessageInfo: muteType set and just got muted', () => { + const justMuted = true; const commentInstance = getComposeCommentWrapper({}).instance(); commentInstance.setState({muteType: 'unconstructive'}); - expect(commentInstance.getMuteMessageInfo(true).commentType).toBe('comment.type.unconstructive'); - expect(commentInstance.getMuteMessageInfo(true).muteStepContent[0]).toBe('comment.unconstructive.content1'); + expect(commentInstance.getMuteMessageInfo(justMuted).commentType).toBe('comment.type.unconstructive'); + expect(commentInstance.getMuteMessageInfo(justMuted) + .muteStepContent[0]).toBe('comment.unconstructive.content1'); }); test('getMuteMessageInfo: muteType set and already muted', () => { + const justMuted = false; const commentInstance = getComposeCommentWrapper({}).instance(); commentInstance.setState({muteType: 'pii'}); - expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.pii.past'); + expect(commentInstance.getMuteMessageInfo(justMuted).commentType).toBe('comment.type.pii.past'); // PII has the same content1 regardless of whether you were just muted - expect(commentInstance.getMuteMessageInfo(false).muteStepContent[0]).toBe('comment.pii.content1'); + expect(commentInstance.getMuteMessageInfo(justMuted).muteStepContent[0]).toBe('comment.pii.content1'); commentInstance.setState({muteType: 'vulgarity'}); - expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.vulgarity.past'); - expect(commentInstance.getMuteMessageInfo(false).muteStepContent[0]).toBe('comment.type.vulgarity.past'); + expect(commentInstance.getMuteMessageInfo(justMuted).commentType).toBe('comment.type.vulgarity.past'); + expect(commentInstance.getMuteMessageInfo(justMuted).muteStepContent[0]).toBe('comment.type.vulgarity.past'); }); test('getMuteMessageInfo: muteType not set and just got muted', () => { + const justMuted = true; const commentInstance = getComposeCommentWrapper({}).instance(); - expect(commentInstance.getMuteMessageInfo(true).commentType).toBe('comment.type.general'); + expect(commentInstance.getMuteMessageInfo(justMuted).commentType).toBe('comment.type.general'); // general has the same content1 regardless of whether you were just muted - expect(commentInstance.getMuteMessageInfo(true).muteStepContent[0]).toBe('comment.general.content1'); + expect(commentInstance.getMuteMessageInfo(justMuted).muteStepContent[0]).toBe('comment.general.content1'); }); test('getMuteMessageInfo: muteType not set and already muted', () => { + const justMuted = false; const commentInstance = getComposeCommentWrapper({}).instance(); - expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.general.past'); + expect(commentInstance.getMuteMessageInfo(justMuted).commentType).toBe('comment.type.general.past'); }); test('getMuteMessageInfo: muteType set to something we don\'t have messages for and just got muted', () => { + const justMuted = true; const commentInstance = getComposeCommentWrapper({}).instance(); commentInstance.setState({muteType: 'spaghetti'}); - expect(commentInstance.getMuteMessageInfo(true).commentType).toBe('comment.type.general'); + expect(commentInstance.getMuteMessageInfo(justMuted).commentType).toBe('comment.type.general'); }); test('getMuteMessageInfo: muteType set to something we don\'t have messages for and already muted', () => { + const justMuted = false; const commentInstance = getComposeCommentWrapper({}).instance(); commentInstance.setState({muteType: 'spaghetti'}); - expect(commentInstance.getMuteMessageInfo(false).commentType).toBe('comment.type.general.past'); + expect(commentInstance.getMuteMessageInfo(justMuted).commentType).toBe('comment.type.general.past'); }); }); From eb691f36dd44a7c1dc928794af578d06e74f6a96 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Mar 2021 03:33:53 +0000 Subject: [PATCH 96/98] Bump scratch-l10n from 3.11.20210323031446 to 3.11.20210324031512 Bumps [scratch-l10n](https://github.com/LLK/scratch-l10n) from 3.11.20210323031446 to 3.11.20210324031512. - [Release notes](https://github.com/LLK/scratch-l10n/releases) - [Commits](https://github.com/LLK/scratch-l10n/compare/3.11.20210323031446...3.11.20210324031512) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec7741dd5..c67c5916c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -519,9 +519,9 @@ } }, "electron-to-chromium": { - "version": "1.3.694", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.694.tgz", - "integrity": "sha512-8YJ/OZjbK5luOd27dmk34B47oa/zNGRHrKTEmfO3qPns1kFAJ36Lb+OtYzNlCoXtkPYuDbX0ztofuL7ArMHJkQ==", + "version": "1.3.697", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.697.tgz", + "integrity": "sha512-VTAS+IWwGlfaL7VtfUMzFeV55PT/HglNFqQ6eW9E3PfjvPqhZfqJj+8dd9zrqrJYcouUfCgQw0OIse85Dz9V9Q==", "dev": true }, "semver": { @@ -21364,6 +21364,19 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "scratch-l10n": { + "version": "3.11.20210323031446", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210323031446.tgz", + "integrity": "sha512-Qgk5iERKTzI2ltk4AJPgZCCBVu9DWgxzKUKtdEbb35dXB1fXx0szBOMWpev16zkjEG+tuLadNSIRa6/yQtEdNg==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "react-intl": "^2.8.0", + "transifex": "1.6.6" + } + }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21431,9 +21444,9 @@ } }, "scratch-l10n": { - "version": "3.11.20210323031446", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210323031446.tgz", - "integrity": "sha512-Qgk5iERKTzI2ltk4AJPgZCCBVu9DWgxzKUKtdEbb35dXB1fXx0szBOMWpev16zkjEG+tuLadNSIRa6/yQtEdNg==", + "version": "3.11.20210324031512", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210324031512.tgz", + "integrity": "sha512-dyv2cjNWVHrL78XpW64uF2azYaUhMKLjfJVH6vSCPJxm3EKCvO6EoaUSlIAwhsGoMwgfxWZ8D74+IaifGJfnCQ==", "dev": true, "requires": { "@babel/cli": "^7.1.2", From 917f7901cad746b2b1362e48e10653e4bd416591 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Mar 2021 10:49:59 +0000 Subject: [PATCH 97/98] Bump scratch-gui Bumps [scratch-gui](https://github.com/LLK/scratch-gui) from 0.1.0-prerelease.20210323041806 to 0.1.0-prerelease.20210323153928. - [Release notes](https://github.com/LLK/scratch-gui/releases) - [Commits](https://github.com/LLK/scratch-gui/compare/0.1.0-prerelease.20210323041806...0.1.0-prerelease.20210323153928) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 20 ++++++++++---------- package.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index c67c5916c..402b7c6ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20919,9 +20919,9 @@ } }, "scratch-gui": { - "version": "0.1.0-prerelease.20210323041806", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210323041806.tgz", - "integrity": "sha512-oSHdNuj8xMFa4gU0cLw8g+odgk5fEIVC2ud/6mTQjOmYp+aPjP7AiM/mppuTsnTHrPDIwVZK4z4IkzmrlTI/Qw==", + "version": "0.1.0-prerelease.20210323153928", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210323153928.tgz", + "integrity": "sha512-mIvW6Y+VQUlIn1nMaUIXelkhraMQ//xtMN6SnHdKLNqcmE8XEdgw74jEqpZjv+MJabkMWjJSk/VimLNCy1AtpQ==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -20979,7 +20979,7 @@ "scratch-render-fonts": "1.0.0-prerelease.20200507182347", "scratch-storage": "1.3.3", "scratch-svg-renderer": "0.2.0-prerelease.20210317184701", - "scratch-vm": "0.2.0-prerelease.20210322113444", + "scratch-vm": "0.2.0-prerelease.20210323151451", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -21142,9 +21142,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.695", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.695.tgz", - "integrity": "sha512-lz66RliUqLHU1Ojxx1A4QUxKydjiQ79Y4dZyPobs2Dmxj5aVL2TM3KoQ2Gs7HS703Bfny+ukI3KOxwAB0xceHQ==", + "version": "1.3.698", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.698.tgz", + "integrity": "sha512-VEXDzYblnlT+g8Q3gedwzgKOso1evkeJzV8lih7lV8mL8eAnGVnKyC3KsFT6S+R5PQO4ffdr1PI16/ElibY/kQ==", "dev": true }, "has-flag": { @@ -21694,9 +21694,9 @@ "dev": true }, "scratch-vm": { - "version": "0.2.0-prerelease.20210322113444", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210322113444.tgz", - "integrity": "sha512-YuhResDl2l9nPUw2TTupCB7Qsmsem8vVOsPVq5UZMrnLg0ojFrqZHm47S84cK+e6uZMCPTTknkjDxFEIBzJzAA==", + "version": "0.2.0-prerelease.20210323151451", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210323151451.tgz", + "integrity": "sha512-TfjW8BLw+0lECRpXRGqd23Z+tMEVud6wZQa0Wxl9DzGMPo+EGgUgjeGU/PenmCAkY7Kl9NPl8m5qOiGEsRFpOw==", "dev": true, "requires": { "@vernier/godirect": "1.5.0", diff --git a/package.json b/package.json index 2fb41722e..42bfa3c4c 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "redux-mock-store": "^1.2.3", "redux-thunk": "2.0.1", "sass-loader": "6.0.6", - "scratch-gui": "0.1.0-prerelease.20210323041806", + "scratch-gui": "0.1.0-prerelease.20210323153928", "scratch-l10n": "latest", "selenium-webdriver": "3.6.0", "slick-carousel": "1.6.0", From ae04b5da919ce220151c95b271d658f9647cc5d0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Mar 2021 12:33:28 +0000 Subject: [PATCH 98/98] Bump scratch-gui Bumps [scratch-gui](https://github.com/LLK/scratch-gui) from 0.1.0-prerelease.20210323153928 to 0.1.0-prerelease.20210324120840. - [Release notes](https://github.com/LLK/scratch-gui/releases) - [Commits](https://github.com/LLK/scratch-gui/compare/0.1.0-prerelease.20210323153928...0.1.0-prerelease.20210324120840) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 37 ++++++++++++------------------------- package.json | 2 +- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 402b7c6ab..551eb5ee0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20909,9 +20909,9 @@ } }, "scratch-blocks": { - "version": "0.1.0-prerelease.20210323034543", - "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210323034543.tgz", - "integrity": "sha512-MSdNZh4mwNMC9EPLMbDI5Run58d82cLA/mGhoCp/BPcwTvDdeaELqDFzqfUjBAC/WsF3tT2HKPOwveRY5yzhwA==", + "version": "0.1.0-prerelease.20210324033606", + "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210324033606.tgz", + "integrity": "sha512-zCf7mN64RLME1tA9t2HcDEnf5h5+ziMyksbQj3gsWOUylYLrrYksMBw7wprVEMdPBJwz+4HhpcpkkrCQV1NVnw==", "dev": true, "requires": { "exports-loader": "0.6.3", @@ -20919,9 +20919,9 @@ } }, "scratch-gui": { - "version": "0.1.0-prerelease.20210323153928", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210323153928.tgz", - "integrity": "sha512-mIvW6Y+VQUlIn1nMaUIXelkhraMQ//xtMN6SnHdKLNqcmE8XEdgw74jEqpZjv+MJabkMWjJSk/VimLNCy1AtpQ==", + "version": "0.1.0-prerelease.20210324120840", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210324120840.tgz", + "integrity": "sha512-6KLZfZdJLAMLBDJo/LC6f0ckUg0CefE941NvBiNmV2XOIAoMPe5gq/eX3C1JT6BDLAFw4ogw4+K1KmQX/PYibw==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -20972,14 +20972,14 @@ "redux": "3.7.2", "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", - "scratch-blocks": "0.1.0-prerelease.20210323034543", - "scratch-l10n": "3.11.20210323031446", + "scratch-blocks": "0.1.0-prerelease.20210324033606", + "scratch-l10n": "3.11.20210324031512", "scratch-paint": "0.2.0-prerelease.20210319222931", "scratch-render": "0.1.0-prerelease.20210317200605", "scratch-render-fonts": "1.0.0-prerelease.20200507182347", "scratch-storage": "1.3.3", "scratch-svg-renderer": "0.2.0-prerelease.20210317184701", - "scratch-vm": "0.2.0-prerelease.20210323151451", + "scratch-vm": "0.2.0-prerelease.20210324111836", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -21364,19 +21364,6 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, - "scratch-l10n": { - "version": "3.11.20210323031446", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210323031446.tgz", - "integrity": "sha512-Qgk5iERKTzI2ltk4AJPgZCCBVu9DWgxzKUKtdEbb35dXB1fXx0szBOMWpev16zkjEG+tuLadNSIRa6/yQtEdNg==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "babel-plugin-react-intl": "^3.0.1", - "react-intl": "^2.8.0", - "transifex": "1.6.6" - } - }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21694,9 +21681,9 @@ "dev": true }, "scratch-vm": { - "version": "0.2.0-prerelease.20210323151451", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210323151451.tgz", - "integrity": "sha512-TfjW8BLw+0lECRpXRGqd23Z+tMEVud6wZQa0Wxl9DzGMPo+EGgUgjeGU/PenmCAkY7Kl9NPl8m5qOiGEsRFpOw==", + "version": "0.2.0-prerelease.20210324111836", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210324111836.tgz", + "integrity": "sha512-vOayLHJJ3ZYS2XUIVPnIMZmaW/JuazC9x32Lc/i64ZxPsQjO8pANgeUN/8A5LdEc5ZO2YG2I3JWRBLnK6o+LEw==", "dev": true, "requires": { "@vernier/godirect": "1.5.0", diff --git a/package.json b/package.json index 42bfa3c4c..26842b593 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "redux-mock-store": "^1.2.3", "redux-thunk": "2.0.1", "sass-loader": "6.0.6", - "scratch-gui": "0.1.0-prerelease.20210323153928", + "scratch-gui": "0.1.0-prerelease.20210324120840", "scratch-l10n": "latest", "selenium-webdriver": "3.6.0", "slick-carousel": "1.6.0",