From 48129d9a8503b2e55c6d7afddbc6ae5082b42e0a Mon Sep 17 00:00:00 2001 From: Tim Hostetler <6970899+thostetler@users.noreply.github.com> Date: Wed, 29 Apr 2020 16:39:50 -0400 Subject: [PATCH 1/2] add feedback forms --- .eslintrc.json | 2 +- .gitmodules | 2 +- grunt/aliases.yaml | 2 + grunt/concurrent.js | 6 +- grunt/copy.js | 106 +- grunt/curl.js | 24 +- grunt/exec.js | 7 + grunt/optimize-build.js | 1009 +++--- grunt/requirejs.js | 44 +- nginx.conf | 11 + npm-shrinkwrap.json | 3114 ++++++++++++++--- package.json | 17 +- server.sh | 2 +- src/config/common.config.js | 13 +- src/config/discovery.config.js | 45 +- src/index.html | 5 + src/js/apps/discovery/navigator.js | 41 +- src/js/apps/discovery/router.js | 15 + src/js/components/api_targets.js | 2 +- src/js/components/recaptcha_manager.js | 36 +- src/js/page_managers/master.js | 4 +- src/js/plugins/recaptcha.js | 4 +- src/js/react/FeedbackForms/actions.js | 19 + .../react/FeedbackForms/components/App.jsx.js | 45 + src/js/react/FeedbackForms/containers/main.js | 3 + src/js/react/FeedbackForms/index.js | 31 + src/js/react/FeedbackForms/middleware.js | 30 + src/js/react/FeedbackForms/models/index.js | 11 + src/js/react/FeedbackForms/reducer.js | 45 + .../components/AddCollaboratorModal.jsx.js | 2 +- .../components/Dashboard.jsx.js | 2 +- .../components/ManageButton.jsx.js | 12 +- .../components/PermissionEntry.jsx.js | 2 +- .../components/PermissionList.jsx.js | 2 +- src/js/react/LibraryCollaborators/reducer.js | 6 +- .../components/ActionsDropdown.jsx.js | 2 +- .../components/ArxivForm.jsx.js | 2 +- .../components/AuthorsForm.jsx.js | 2 +- .../components/CitationsEntry.jsx.js | 2 +- .../components/CitationsForm.jsx.js | 2 +- .../components/Dashboard.jsx.js | 2 +- .../components/GeneralForm.jsx.js | 2 +- .../components/ImportNotificationsForm.jsx.js | 2 +- .../components/KeywordForm.jsx.js | 2 +- .../react/MyAdsFreeform/components/App.jsx.js | 2 +- .../components/CollapsePanel.jsx.js | 2 +- .../components/SaveQueryForm.jsx.js | 2 +- src/js/react/PageManager.js | 29 + .../react/Recommender/components/App.jsx.js | 2 +- .../components/RecommendedList.jsx.js | 2 +- .../components/SearchExamples.jsx.js | 10 +- src/js/react/WithBackboneView.js | 4 + .../react/shared/components/ApiMessage.jsx.js | 2 +- src/js/react/shared/middleware/main.js | 3 + src/js/utils.js | 19 +- .../widgets/associated/components/app.jsx.js | 6 +- .../export/components/ClipboardBtn.jsx.js | 2 +- .../widgets/export/components/Closer.jsx.js | 2 +- .../widgets/export/components/Export.jsx.js | 2 +- src/js/widgets/export/components/Setup.jsx.js | 2 +- .../widgets/export/components/Slider.jsx.js | 2 +- src/js/widgets/export/containers/App.jsx.js | 2 +- src/js/widgets/facet/facet-container.jsx.js | 2 +- src/js/widgets/facet/facet-dropdown.jsx.js | 2 +- src/js/widgets/facet/toggle_list.jsx.js | 2 +- src/js/widgets/navbar/template/feedback.html | 13 +- .../components/orcid-selector-app.jsx.js | 2 +- .../widgets/resources/components/app.jsx.js | 6 +- .../widgets/sort/components/sort-app.jsx.js | 2 +- .../abstract_page_manager/abstract-nav.html | 12 + .../abstract_page_manager.js | 21 + src/shared | 2 +- .../sass/ads-sass/bootstrap-overrides.scss | 3 + 73 files changed, 3851 insertions(+), 1050 deletions(-) create mode 100644 src/js/react/FeedbackForms/actions.js create mode 100644 src/js/react/FeedbackForms/components/App.jsx.js create mode 100644 src/js/react/FeedbackForms/containers/main.js create mode 100644 src/js/react/FeedbackForms/index.js create mode 100644 src/js/react/FeedbackForms/middleware.js create mode 100644 src/js/react/FeedbackForms/models/index.js create mode 100644 src/js/react/FeedbackForms/reducer.js create mode 100644 src/js/react/PageManager.js create mode 100644 src/js/react/shared/middleware/main.js diff --git a/.eslintrc.json b/.eslintrc.json index a1de8acf0..8ed908804 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,7 +3,7 @@ "env": { "browser": true, "amd": true, - "es6": false, + "es6": true, "commonjs": false, "jquery": true, "mocha": true diff --git a/.gitmodules b/.gitmodules index 6e7a9ce3f..859c32b40 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "src/shared"] path = src/shared - url = git@github.com:adsabs/ui-component-library.git + url = https://github.com/adsabs/ui-component-library.git diff --git a/grunt/aliases.yaml b/grunt/aliases.yaml index 39cd1712a..7b77af9d4 100644 --- a/grunt/aliases.yaml +++ b/grunt/aliases.yaml @@ -60,6 +60,7 @@ assets: - 'clean:libs' - 'concurrent:install' - 'copy:libs' + - 'exec:suit_build' # CSS Processing css: @@ -69,6 +70,7 @@ css: # Testing # Initial Setup setup: + - 'exec:submodule_init' - 'assets' - 'copy:discovery_vars' - 'sass' diff --git a/grunt/concurrent.js b/grunt/concurrent.js index c114ceddf..c04d46915 100644 --- a/grunt/concurrent.js +++ b/grunt/concurrent.js @@ -14,8 +14,12 @@ module.exports = { 'curl:react', 'curl:react-bootstrap', 'curl:react-dom', - 'curl:react-prop-types', + 'curl:prop-types', 'curl:react-redux', + 'curl:yup', + 'curl:react-flexview', + 'curl:deep-object-diff', + 'curl:xstate-react', ], hash_require: ['hash_require:js', 'hash_require:css'], }; diff --git a/grunt/copy.js b/grunt/copy.js index a49357e19..ed4ed109e 100644 --- a/grunt/copy.js +++ b/grunt/copy.js @@ -8,6 +8,99 @@ module.exports = function(grunt) { return { libs: { files: [ + { + cwd: 'node_modules/xstate/dist', + src: 'xstate.js', + dest: 'src/libs/xstate/', + expand: true, + rename: function(dest, src) { + return dest + src.replace('xstate.js', 'index.js'); + }, + }, + { + cwd: 'node_modules/recoil/umd', + src: 'recoil.min.js', + dest: 'src/libs/recoil/', + expand: true, + rename: function(dest, src) { + return dest + src.replace('recoil.min.js', 'index.js'); + }, + }, + { + cwd: 'node_modules/@hookform/resolvers/dist', + src: 'index.umd.production.min.js', + dest: 'src/libs/@hookform/', + expand: true, + rename: function(dest, src) { + return ( + dest + src.replace('index.umd.production.min.js', 'index.js') + ); + }, + }, + { + cwd: 'node_modules/regenerator-runtime', + src: 'runtime.js', + dest: 'src/libs/regenerator-runtime/', + expand: true, + rename: function(dest, src) { + return dest + src.replace('runtime.js', 'index.js'); + }, + }, + { + cwd: 'node_modules/react-async/dist-umd', + src: 'index.js', + dest: 'src/libs/react-async/', + expand: true, + }, + { + cwd: 'node_modules/react-window/dist', + src: 'index-prod.umd.js', + dest: 'src/libs/react-window/', + expand: true, + rename: function(dest, src) { + return dest + src.replace('index-prod.umd', 'index'); + }, + }, + { + cwd: 'node_modules/react-data-table-component/dist', + src: 'react-data-table-component.umd.js', + dest: 'src/libs/react-data-table-component/', + expand: true, + rename: function(dest, src) { + return ( + dest + src.replace('react-data-table-component.umd', 'index') + ); + }, + }, + { + cwd: 'node_modules/react-is/umd', + src: 'react-is.production.min.js', + dest: 'src/libs/react-is/', + expand: true, + rename: function(dest, src) { + return dest + src.replace('react-is.production.min', 'index'); + }, + }, + { + cwd: 'node_modules/styled-components/dist', + src: 'styled-components.min.js', + dest: 'src/libs/styled-components/', + expand: true, + rename: function(dest, src) { + return dest + src.replace('styled-components.min', 'index'); + }, + }, + { + cwd: 'node_modules/react-hook-form/dist/', + src: 'index.umd.production.min.js', + dest: 'src/libs/react-hook-form/', + expand: true, + rename: function(dest, src) { + return ( + dest + src.replace('index.umd.production.min.js', 'index.js') + ); + }, + }, { cwd: 'node_modules/hotkeys-js/dist', src: 'hotkeys.min.js', @@ -155,11 +248,16 @@ module.exports = function(grunt) { files: [ { expand: true, - src: ['./src/**'], + cwd: 'src', + src: [ + './config/**', + './js/**', + './libs/**', + './styles/**', + './*.html', + './shared/dist/**', + ], dest: 'dist/', - rename: function(dest, src) { - return dest + src.replace('/src/', '/'); - }, }, ], }, diff --git a/grunt/curl.js b/grunt/curl.js index 271240a6b..7129db000 100644 --- a/grunt/curl.js +++ b/grunt/curl.js @@ -38,14 +38,34 @@ module.exports = { src: 'https://unpkg.com/react-dom@16/umd/react-dom.production.min.js', dest: 'src/libs/react-dom/index.js', }, - 'react-prop-types': { + 'prop-types': { src: 'https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.7.2/prop-types.min.js', - dest: 'src/libs/react-prop-types/index.js', + dest: 'src/libs/prop-types/index.js', }, 'react-redux': { src: 'https://cdnjs.cloudflare.com/ajax/libs/react-redux/7.1.3/react-redux.min.js', dest: 'src/libs/react-redux/index.js', }, + yup: { + src: + 'https://raw.githubusercontent.com/thostetler/yup/master/build/index.umd.js', + dest: 'src/libs/yup/index.js', + }, + 'react-flexview': { + src: + 'https://raw.githubusercontent.com/thostetler/react-flexview/master/build/index.umd.js', + dest: 'src/libs/react-flexview/index.js', + }, + 'deep-object-diff': { + src: + 'https://raw.githubusercontent.com/thostetler/deep-object-diff/master/deep-object-diff.umd.js', + dest: 'src/libs/deep-object-diff/index.js', + }, + 'xstate-react': { + src: + 'https://raw.githubusercontent.com/thostetler/xstate/master/packages/xstate-react/dist/xstate-react.umd.production.min.js', + dest: 'src/libs/xstate-react/index.js', + }, }; diff --git a/grunt/exec.js b/grunt/exec.js index 94456dacd..00823271f 100644 --- a/grunt/exec.js +++ b/grunt/exec.js @@ -27,4 +27,11 @@ module.exports = { 'cat test/coverage/reports/lcov/lcov.info | ./node_modules/coveralls/bin/coveralls.js', }, server: 'node server', + suit_build: { + cwd: './src/shared', + cmd: 'sh ./install.sh', + }, + submodule_init: { + cmd: 'git submodule update --init', + }, }; diff --git a/grunt/optimize-build.js b/grunt/optimize-build.js index 6080a8067..7bd17838b 100644 --- a/grunt/optimize-build.js +++ b/grunt/optimize-build.js @@ -1,43 +1,51 @@ -module.exports = function (grunt) { - +module.exports = function(grunt) { var PATHS = { 'backbone-validation': 'empty:', 'backbone.stickit': 'empty:', 'backbone.wreqr': 'empty:', - 'backbone': 'empty:', - 'bootstrap': 'empty:', - 'bowser': 'empty:', - 'classnames': 'empty:', - 'clipboard': 'empty:', + backbone: 'empty:', + bootstrap: 'empty:', + bowser: 'empty:', + classnames: 'empty:', + clipboard: 'empty:', 'create-react-class': 'empty:', 'd3-cloud': 'empty:', - 'd3': 'empty:', + d3: 'empty:', 'es5-shim': 'empty:', - 'filesaver': 'empty:', + filesaver: 'empty:', 'google-recaptcha': 'empty:', 'google-analytics': 'empty:', - 'jquery': 'empty:', - 'jquery-ui' : 'empty:', + jquery: 'empty:', + 'jquery-ui': 'empty:', 'jquery-querybuilder': 'empty:', - 'jsonpath': 'empty:', - 'marionette': 'empty:', - 'mathjax': 'empty:', - 'moment': 'empty:', + jsonpath: 'empty:', + marionette: 'empty:', + mathjax: 'empty:', + moment: 'empty:', 'persist-js': 'empty:', 'react-bootstrap': 'empty:', - 'react-dom' : 'empty:', - 'react-prop-types': 'empty:', + 'react-dom': 'empty:', + 'prop-types': 'empty:', 'react-redux': 'empty:', - 'react' : 'empty:', + react: 'empty:', 'redux-thunk': 'empty:', - 'redux': 'empty:', - 'requirejs' : 'empty:', - 'reselect': 'empty:', - 'select2': 'empty:', - 'sinon': 'empty:', - 'sprintf': 'empty:', - 'underscore': 'empty:', - 'discovery.vars': 'empty:' + redux: 'empty:', + requirejs: 'empty:', + reselect: 'empty:', + select2: 'empty:', + sinon: 'empty:', + sprintf: 'empty:', + underscore: 'empty:', + 'discovery.vars': 'empty:', + yup: 'empty:', + 'react-hook-form': 'empty:', + 'react-flexview': 'empty:', + 'styled-components': 'empty:', + 'react-is': 'empty:', + 'react-data-table-component': 'empty:', + 'react-window': 'empty:', + 'react-async': 'empty:', + diff: 'empty:', }; var baseConfig = { @@ -50,503 +58,516 @@ module.exports = function (grunt) { findNestedDependencies: false, create: true, paths: PATHS, - stubModules: ['es6', 'babel'] + stubModules: ['es6', 'babel'], }; - grunt.registerMultiTask('optimize-build', 'Generate config and optimize build', function () { - var _ = require('lodash'); - var path = require('path'); - var fullConfig = {}; + grunt.registerMultiTask( + 'optimize-build', + 'Generate config and optimize build', + function() { + var _ = require('lodash'); + var path = require('path'); + var fullConfig = {}; - // callback called with URL and name pulled from folder - var getByGlob = function (globs, cb) { - var urls = [] - grunt.file.expand({ filter: 'isFile' }, globs).forEach(function (url) { - var parts = url.split(path.sep); - if (/jsx\.js$/.test(url)) { - url = url.replace(/^/, 'es6!'); - } - url = url.replace('src/', '').replace(/\.js$/, ''); - urls.push(url); - cb && cb(url, parts[3]); - }); - return urls; - }; + // callback called with URL and name pulled from folder + var getByGlob = function(globs, cb) { + var urls = []; + grunt.file.expand({ filter: 'isFile' }, globs).forEach(function(url) { + var parts = url.split(path.sep); + if (/jsx\.js$/.test(url)) { + url = url.replace(/^/, 'es6!'); + } + url = url.replace('src/', '').replace(/\.js$/, ''); + urls.push(url); + cb && cb(url, parts[3]); + }); + return urls; + }; - var writeOutConfig = function (config, done) { - var output = ` + var writeOutConfig = function(config, done) { + var output = ` // GENERATED FILE (edits will be overwritten) - module.exports = ${ JSON.stringify(config, null, 2) }; + module.exports = ${JSON.stringify(config, null, 2)}; `; - fullConfig = config; - grunt.file.write(path.resolve(__dirname, 'requirejs.js'), output); - (function check(i) { - if (i >= 30 || grunt.file.exists(path.resolve(__dirname, 'requirejs.js'))) { - grunt.log.writeln('Configuration Generated...'); - return done(); - } - setTimeout(check, 500, ++i); - })(0); - }; + fullConfig = config; + grunt.file.write(path.resolve(__dirname, 'requirejs.js'), output); + (function check(i) { + if ( + i >= 30 || + grunt.file.exists(path.resolve(__dirname, 'requirejs.js')) + ) { + grunt.log.writeln('Configuration Generated...'); + return done(); + } + setTimeout(check, 500, ++i); + })(0); + }; - grunt.registerTask('generateConfig', function () { - var config = {}; - var done = this.async(); - var addConfig = function (name, cfg) { - config[name] = {}; - config[name].options = _.extend({}, baseConfig, { - name: `${name}.bundle`, - out: `dist/config/${name}.bundle.js` - }, cfg); - } + grunt.registerTask('generateConfig', function() { + var config = {}; + var done = this.async(); + var addConfig = function(name, cfg) { + config[name] = {}; + config[name].options = _.extend( + {}, + baseConfig, + { + name: `${name}.bundle`, + out: `dist/config/${name}.bundle.js`, + }, + cfg + ); + }; - addConfig('landing-page', { - include: [ - "config/common.config", - "analytics", - "backbone-validation", - "backbone", - "bootstrap", - "cache", - "create-react-class", - "d3-cloud", - "d3", - "es5-shim", - "google-analytics", - "hbs", - "hbs/handlebars", - "hbs/json2", - "hbs/underscore", - "jquery-ui", - "jquery", - "js/apps/discovery/main", - "js/apps/discovery/navigator", - "js/bugutils/diagnostics", - "js/components/alerts_mediator", - "js/components/alerts", - "js/components/api_feedback", - "js/components/api_query_updater", - "js/components/api_query", - "js/components/api_request", - "js/components/api_response", - "js/components/api_targets", - "js/components/app_storage", - "js/components/application", - "js/components/beehive", - "js/components/csrf_manager", - "js/components/default_request", - "js/components/doc_stash_controller", - "js/components/facade", - "js/components/feedback_mediator", - "js/components/generic_module", - "js/components/history_manager", - "js/components/json_response", - "js/components/library_controller", - "js/components/multi_params", - "js/components/navigator", - "js/components/persistent_storage", - "js/components/pubsub_events", - "js/components/pubsub_key", - "js/components/query_mediator", - "js/components/query_validator", - "js/components/recaptcha_manager", - "js/components/services_container", - "js/components/session", - "js/components/solr_params", - "js/components/solr_response", - "js/components/transition_catalog", - "js/components/transition", - "js/components/user", - "js/mixins/add_secondary_sort", - "js/mixins/api_access", - "js/mixins/dependon", - "js/mixins/discovery_bootstrap", - "js/mixins/formatter", - "js/mixins/hardened", - "js/mixins/link_generator_mixin", - "js/mixins/openurl_generator", - "js/mixins/widget_mixin_method", - "js/mixins/widget_state_manager", - "js/mixins/widget_utility", - "js/modules/orcid/module", - "js/modules/orcid/orcid_api", - "js/modules/orcid/profile", - "js/modules/orcid/work", - "js/page_managers/controller", - "js/page_managers/master", - "js/page_managers/one_column_view", - "js/page_managers/three_column_view", - "js/page_managers/toc_controller", - "js/page_managers/toc_widget", - "js/page_managers/view_mixin", - "js/services/api", - "js/services/default_pubsub", - "js/services/pubsub", - "js/services/storage", - "js/widgets/alerts/modal_view", - "js/widgets/alerts/page_top_alert", - "js/widgets/alerts/widget", - "js/widgets/base/base_widget", - "js/widgets/classic_form/widget", - "js/widgets/facet/actions", - "js/widgets/facet/create_store", - "js/widgets/facet/factory", - "js/widgets/facet/graph-facet/widget", - "js/widgets/facet/reducers", - "js/widgets/facet/widget", - "js/widgets/footer/widget", - "js/widgets/navbar/widget", - "js/widgets/paper_search_form/topterms", - "js/widgets/paper_search_form/widget", - "js/widgets/search_bar/autocomplete", - "js/widgets/search_bar/search_bar_widget", - "js/widgets/widget_states", - "js/wraps/alerts_mediator", - "js/wraps/discovery_mediator", - "js/wraps/landing_page_manager/landing_page_manager", - "jsonpath", - "libs/select2/matcher", - "marionette", - "moment", - "persist-js", - "react-dom", - "react-prop-types", - "react-redux", - "react", - "redux-thunk", - "redux", - "router", - "select2", - "sprintf", - "underscore", - "utils" - ] - }); + addConfig('landing-page', { + include: [ + 'config/common.config', + 'analytics', + 'backbone-validation', + 'backbone', + 'bootstrap', + 'cache', + 'create-react-class', + 'd3-cloud', + 'd3', + 'es5-shim', + 'google-analytics', + 'hbs', + 'hbs/handlebars', + 'hbs/json2', + 'hbs/underscore', + 'jquery-ui', + 'jquery', + 'js/apps/discovery/main', + 'js/apps/discovery/navigator', + 'js/bugutils/diagnostics', + 'js/components/alerts_mediator', + 'js/components/alerts', + 'js/components/api_feedback', + 'js/components/api_query_updater', + 'js/components/api_query', + 'js/components/api_request', + 'js/components/api_response', + 'js/components/api_targets', + 'js/components/app_storage', + 'js/components/application', + 'js/components/beehive', + 'js/components/csrf_manager', + 'js/components/default_request', + 'js/components/doc_stash_controller', + 'js/components/facade', + 'js/components/feedback_mediator', + 'js/components/generic_module', + 'js/components/history_manager', + 'js/components/json_response', + 'js/components/library_controller', + 'js/components/multi_params', + 'js/components/navigator', + 'js/components/persistent_storage', + 'js/components/pubsub_events', + 'js/components/pubsub_key', + 'js/components/query_mediator', + 'js/components/query_validator', + 'js/components/recaptcha_manager', + 'js/components/services_container', + 'js/components/session', + 'js/components/solr_params', + 'js/components/solr_response', + 'js/components/transition_catalog', + 'js/components/transition', + 'js/components/user', + 'js/mixins/add_secondary_sort', + 'js/mixins/api_access', + 'js/mixins/dependon', + 'js/mixins/discovery_bootstrap', + 'js/mixins/formatter', + 'js/mixins/hardened', + 'js/mixins/link_generator_mixin', + 'js/mixins/openurl_generator', + 'js/mixins/widget_mixin_method', + 'js/mixins/widget_state_manager', + 'js/mixins/widget_utility', + 'js/modules/orcid/module', + 'js/modules/orcid/orcid_api', + 'js/modules/orcid/profile', + 'js/modules/orcid/work', + 'js/page_managers/controller', + 'js/page_managers/master', + 'js/page_managers/one_column_view', + 'js/page_managers/three_column_view', + 'js/page_managers/toc_controller', + 'js/page_managers/toc_widget', + 'js/page_managers/view_mixin', + 'js/services/api', + 'js/services/default_pubsub', + 'js/services/pubsub', + 'js/services/storage', + 'js/widgets/alerts/modal_view', + 'js/widgets/alerts/page_top_alert', + 'js/widgets/alerts/widget', + 'js/widgets/base/base_widget', + 'js/widgets/classic_form/widget', + 'js/widgets/facet/actions', + 'js/widgets/facet/create_store', + 'js/widgets/facet/factory', + 'js/widgets/facet/graph-facet/widget', + 'js/widgets/facet/reducers', + 'js/widgets/facet/widget', + 'js/widgets/footer/widget', + 'js/widgets/navbar/widget', + 'js/widgets/paper_search_form/topterms', + 'js/widgets/paper_search_form/widget', + 'js/widgets/search_bar/autocomplete', + 'js/widgets/search_bar/search_bar_widget', + 'js/widgets/widget_states', + 'js/wraps/alerts_mediator', + 'js/wraps/discovery_mediator', + 'js/wraps/landing_page_manager/landing_page_manager', + 'jsonpath', + 'libs/select2/matcher', + 'marionette', + 'moment', + 'persist-js', + 'react-dom', + 'prop-types', + 'react-redux', + 'react', + 'redux-thunk', + 'redux', + 'router', + 'select2', + 'sprintf', + 'underscore', + 'utils', + ], + }); - addConfig('search-page', { - include: [ - "config/common.config", - "analytics", - "cache", - "hbs", - "hbs/handlebars", - "hbs/json2", - "hbs/underscore", - "js/apps/discovery/main", - "js/apps/discovery/navigator", - "js/bugutils/diagnostics", - "js/components/alerts", - "js/components/alerts_mediator", - "js/components/api_feedback", - "js/components/api_query", - "js/components/api_query_updater", - "js/components/api_request", - "js/components/api_response", - "js/components/api_targets", - "js/components/app_storage", - "js/components/application", - "js/components/beehive", - "js/components/csrf_manager", - "js/components/default_request", - "js/components/doc_stash_controller", - "js/components/facade", - "js/components/feedback_mediator", - "js/components/generic_module", - "js/components/history_manager", - "js/components/json_response", - "js/components/library_controller", - "js/components/multi_params", - "js/components/navigator", - "js/components/persistent_storage", - "js/components/pubsub_events", - "js/components/pubsub_key", - "js/components/query_mediator", - "js/components/query_validator", - "js/components/recaptcha_manager", - "js/components/services_container", - "js/components/session", - "js/components/solr_params", - "js/components/solr_response", - "js/components/transition", - "js/components/transition_catalog", - "js/components/user", - "js/mixins/add_secondary_sort", - "js/mixins/add_stable_index_to_collection", - "js/mixins/api_access", - "js/mixins/dependon", - "js/mixins/discovery_bootstrap", - "js/mixins/formatter", - "js/mixins/hardened", - "js/mixins/link_generator_mixin", - "js/mixins/openurl_generator", - "js/mixins/papers_utils", - "js/mixins/user_change_rows", - "js/mixins/widget_mixin_method", - "js/mixins/widget_state_manager", - "js/mixins/widget_utility", - "js/modules/orcid/extension", - "js/modules/orcid/module", - "js/modules/orcid/orcid_api", - "js/modules/orcid/profile", - "js/modules/orcid/work", - "js/page_managers/controller", - "js/page_managers/master", - "js/page_managers/three_column_view", - "js/page_managers/view_mixin", - "js/services/api", - "js/services/default_pubsub", - "js/services/pubsub", - "js/services/storage", - "js/widgets/abstract/widget", - "js/widgets/alerts/modal_view", - "js/widgets/alerts/page_top_alert", - "js/widgets/alerts/widget", - "js/widgets/api_query/widget", - "js/widgets/base/base_widget", - "js/widgets/bubble_chart/widget", - "js/widgets/citation_helper/widget", - "js/widgets/dropdown-menu/widget", - "js/widgets/facet/actions", - "js/widgets/facet/create_store", - "js/widgets/facet/factory", - "js/widgets/facet/graph-facet/base_graph", - "js/widgets/facet/graph-facet/h_index_graph", - "js/widgets/facet/graph-facet/widget", - "js/widgets/facet/graph-facet/year_graph", - "js/widgets/facet/reducers", - "js/widgets/facet/widget", - "js/widgets/filter_visualizer/widget", - "js/widgets/footer/widget", - "js/widgets/list_of_things/item_view", - "js/widgets/list_of_things/model", - "js/widgets/list_of_things/paginated_view", - "js/widgets/list_of_things/widget", - "js/widgets/metrics/d3-tip", - "js/widgets/metrics/extractor_functions", - "js/widgets/metrics/widget", - "js/widgets/navbar/widget", - "js/widgets/network_vis/network_widget", - "js/widgets/query_info/query_info_widget", - "js/widgets/results/widget", - "js/widgets/search_bar/autocomplete", - "js/widgets/search_bar/search_bar_widget", - "js/widgets/tabs/tabs_widget", - "js/widgets/widget_states", - "js/widgets/wordcloud/widget", - "js/wraps/affiliation_facet", - "js/wraps/alerts_mediator", - "js/wraps/author_facet", - "js/wraps/author_network", - "js/wraps/bibgroup_facet", - "js/wraps/bibstem_facet", - "js/wraps/data_facet", - "js/wraps/database_facet", - "js/wraps/discovery_mediator", - "js/wraps/export_dropdown", - "js/wraps/graph_tabs", - "js/wraps/keyword_facet", - "js/wraps/ned_object_facet", - "js/wraps/paper_network", - "js/wraps/pubtype_facet", - "js/wraps/refereed_facet", - "js/wraps/results_page_manager", - "js/wraps/simbad_object_facet", - "js/wraps/visualization_dropdown", - "js/wraps/vizier_facet", - "libs/select2/matcher", - "router", - "utils" - ] - }); + addConfig('search-page', { + include: [ + 'config/common.config', + 'analytics', + 'cache', + 'hbs', + 'hbs/handlebars', + 'hbs/json2', + 'hbs/underscore', + 'js/apps/discovery/main', + 'js/apps/discovery/navigator', + 'js/bugutils/diagnostics', + 'js/components/alerts', + 'js/components/alerts_mediator', + 'js/components/api_feedback', + 'js/components/api_query', + 'js/components/api_query_updater', + 'js/components/api_request', + 'js/components/api_response', + 'js/components/api_targets', + 'js/components/app_storage', + 'js/components/application', + 'js/components/beehive', + 'js/components/csrf_manager', + 'js/components/default_request', + 'js/components/doc_stash_controller', + 'js/components/facade', + 'js/components/feedback_mediator', + 'js/components/generic_module', + 'js/components/history_manager', + 'js/components/json_response', + 'js/components/library_controller', + 'js/components/multi_params', + 'js/components/navigator', + 'js/components/persistent_storage', + 'js/components/pubsub_events', + 'js/components/pubsub_key', + 'js/components/query_mediator', + 'js/components/query_validator', + 'js/components/recaptcha_manager', + 'js/components/services_container', + 'js/components/session', + 'js/components/solr_params', + 'js/components/solr_response', + 'js/components/transition', + 'js/components/transition_catalog', + 'js/components/user', + 'js/mixins/add_secondary_sort', + 'js/mixins/add_stable_index_to_collection', + 'js/mixins/api_access', + 'js/mixins/dependon', + 'js/mixins/discovery_bootstrap', + 'js/mixins/formatter', + 'js/mixins/hardened', + 'js/mixins/link_generator_mixin', + 'js/mixins/openurl_generator', + 'js/mixins/papers_utils', + 'js/mixins/user_change_rows', + 'js/mixins/widget_mixin_method', + 'js/mixins/widget_state_manager', + 'js/mixins/widget_utility', + 'js/modules/orcid/extension', + 'js/modules/orcid/module', + 'js/modules/orcid/orcid_api', + 'js/modules/orcid/profile', + 'js/modules/orcid/work', + 'js/page_managers/controller', + 'js/page_managers/master', + 'js/page_managers/three_column_view', + 'js/page_managers/view_mixin', + 'js/services/api', + 'js/services/default_pubsub', + 'js/services/pubsub', + 'js/services/storage', + 'js/widgets/abstract/widget', + 'js/widgets/alerts/modal_view', + 'js/widgets/alerts/page_top_alert', + 'js/widgets/alerts/widget', + 'js/widgets/api_query/widget', + 'js/widgets/base/base_widget', + 'js/widgets/bubble_chart/widget', + 'js/widgets/citation_helper/widget', + 'js/widgets/dropdown-menu/widget', + 'js/widgets/facet/actions', + 'js/widgets/facet/create_store', + 'js/widgets/facet/factory', + 'js/widgets/facet/graph-facet/base_graph', + 'js/widgets/facet/graph-facet/h_index_graph', + 'js/widgets/facet/graph-facet/widget', + 'js/widgets/facet/graph-facet/year_graph', + 'js/widgets/facet/reducers', + 'js/widgets/facet/widget', + 'js/widgets/filter_visualizer/widget', + 'js/widgets/footer/widget', + 'js/widgets/list_of_things/item_view', + 'js/widgets/list_of_things/model', + 'js/widgets/list_of_things/paginated_view', + 'js/widgets/list_of_things/widget', + 'js/widgets/metrics/d3-tip', + 'js/widgets/metrics/extractor_functions', + 'js/widgets/metrics/widget', + 'js/widgets/navbar/widget', + 'js/widgets/network_vis/network_widget', + 'js/widgets/query_info/query_info_widget', + 'js/widgets/results/widget', + 'js/widgets/search_bar/autocomplete', + 'js/widgets/search_bar/search_bar_widget', + 'js/widgets/tabs/tabs_widget', + 'js/widgets/widget_states', + 'js/widgets/wordcloud/widget', + 'js/wraps/affiliation_facet', + 'js/wraps/alerts_mediator', + 'js/wraps/author_facet', + 'js/wraps/author_network', + 'js/wraps/bibgroup_facet', + 'js/wraps/bibstem_facet', + 'js/wraps/data_facet', + 'js/wraps/database_facet', + 'js/wraps/discovery_mediator', + 'js/wraps/export_dropdown', + 'js/wraps/graph_tabs', + 'js/wraps/keyword_facet', + 'js/wraps/ned_object_facet', + 'js/wraps/paper_network', + 'js/wraps/pubtype_facet', + 'js/wraps/refereed_facet', + 'js/wraps/results_page_manager', + 'js/wraps/simbad_object_facet', + 'js/wraps/visualization_dropdown', + 'js/wraps/vizier_facet', + 'libs/select2/matcher', + 'router', + 'utils', + ], + }); - addConfig('abstract-page', { - include: [ - "config/common.config", - "analytics", - "cache", - "hbs", - "hbs/handlebars", - "hbs/json2", - "hbs/underscore", - "js/apps/discovery/main", - "js/apps/discovery/navigator", - "js/bugutils/diagnostics", - "js/components/alerts", - "js/components/alerts_mediator", - "js/components/api_feedback", - "js/components/api_query", - "js/components/api_query_updater", - "js/components/api_request", - "js/components/api_response", - "js/components/api_targets", - "js/components/app_storage", - "js/components/application", - "js/components/beehive", - "js/components/csrf_manager", - "js/components/default_request", - "js/components/doc_stash_controller", - "js/components/facade", - "js/components/feedback_mediator", - "js/components/generic_module", - "js/components/history_manager", - "js/components/json_response", - "js/components/library_controller", - "js/components/multi_params", - "js/components/navigator", - "js/components/persistent_storage", - "js/components/pubsub_events", - "js/components/pubsub_key", - "js/components/query_mediator", - "js/components/query_validator", - "js/components/recaptcha_manager", - "js/components/services_container", - "js/components/session", - "js/components/solr_params", - "js/components/solr_response", - "js/components/transition", - "js/components/transition_catalog", - "js/components/user", - "js/mixins/add_secondary_sort", - "js/mixins/add_stable_index_to_collection", - "js/mixins/api_access", - "js/mixins/dependon", - "js/mixins/discovery_bootstrap", - "js/mixins/formatter", - "js/mixins/hardened", - "js/mixins/link_generator_mixin", - "js/mixins/openurl_generator", - "js/mixins/papers_utils", - "js/mixins/widget_mixin_method", - "js/mixins/widget_state_manager", - "js/mixins/widget_utility", - "js/modules/orcid/module", - "js/modules/orcid/orcid_api", - "js/modules/orcid/profile", - "js/modules/orcid/work", - "js/page_managers/controller", - "js/page_managers/master", - "js/page_managers/three_column_view", - "js/page_managers/toc_controller", - "js/page_managers/toc_widget", - "js/page_managers/view_mixin", - "js/services/api", - "js/services/default_pubsub", - "js/services/pubsub", - "js/services/storage", - "js/widgets/abstract/widget", - "js/widgets/alerts/modal_view", - "js/widgets/alerts/page_top_alert", - "js/widgets/alerts/widget", - "js/widgets/base/base_widget", - "js/widgets/facet/actions", - "js/widgets/facet/create_store", - "js/widgets/facet/factory", - "js/widgets/facet/graph-facet/widget", - "js/widgets/facet/reducers", - "js/widgets/facet/widget", - "js/widgets/footer/widget", - "js/widgets/graphics/widget", - "js/widgets/list_of_things/details_widget", - "js/widgets/list_of_things/item_view", - "js/widgets/list_of_things/model", - "js/widgets/list_of_things/paginated_view", - "js/widgets/list_of_things/widget", - "js/widgets/meta_tags/widget", - "js/widgets/metrics/d3-tip", - "js/widgets/metrics/extractor_functions", - "js/widgets/metrics/widget", - "js/widgets/navbar/widget", - "js/widgets/query_info/query_info_widget", - "js/widgets/search_bar/autocomplete", - "js/widgets/search_bar/search_bar_widget", - "js/widgets/widget_states", - "js/wraps/abstract_page_library_add/widget", - "js/wraps/abstract_page_manager/abstract_page_manager", - "js/wraps/alerts_mediator", - "js/wraps/citations", - "js/wraps/coreads", - "js/wraps/discovery_mediator", - "js/wraps/paper_export", - "js/wraps/paper_metrics", - "js/wraps/references", - "js/wraps/sidebar-graphics-widget", - "js/wraps/table_of_contents", - "libs/select2/matcher", - "router", - "utils" - ] - }); + addConfig('abstract-page', { + include: [ + 'config/common.config', + 'analytics', + 'cache', + 'hbs', + 'hbs/handlebars', + 'hbs/json2', + 'hbs/underscore', + 'js/apps/discovery/main', + 'js/apps/discovery/navigator', + 'js/bugutils/diagnostics', + 'js/components/alerts', + 'js/components/alerts_mediator', + 'js/components/api_feedback', + 'js/components/api_query', + 'js/components/api_query_updater', + 'js/components/api_request', + 'js/components/api_response', + 'js/components/api_targets', + 'js/components/app_storage', + 'js/components/application', + 'js/components/beehive', + 'js/components/csrf_manager', + 'js/components/default_request', + 'js/components/doc_stash_controller', + 'js/components/facade', + 'js/components/feedback_mediator', + 'js/components/generic_module', + 'js/components/history_manager', + 'js/components/json_response', + 'js/components/library_controller', + 'js/components/multi_params', + 'js/components/navigator', + 'js/components/persistent_storage', + 'js/components/pubsub_events', + 'js/components/pubsub_key', + 'js/components/query_mediator', + 'js/components/query_validator', + 'js/components/recaptcha_manager', + 'js/components/services_container', + 'js/components/session', + 'js/components/solr_params', + 'js/components/solr_response', + 'js/components/transition', + 'js/components/transition_catalog', + 'js/components/user', + 'js/mixins/add_secondary_sort', + 'js/mixins/add_stable_index_to_collection', + 'js/mixins/api_access', + 'js/mixins/dependon', + 'js/mixins/discovery_bootstrap', + 'js/mixins/formatter', + 'js/mixins/hardened', + 'js/mixins/link_generator_mixin', + 'js/mixins/openurl_generator', + 'js/mixins/papers_utils', + 'js/mixins/widget_mixin_method', + 'js/mixins/widget_state_manager', + 'js/mixins/widget_utility', + 'js/modules/orcid/module', + 'js/modules/orcid/orcid_api', + 'js/modules/orcid/profile', + 'js/modules/orcid/work', + 'js/page_managers/controller', + 'js/page_managers/master', + 'js/page_managers/three_column_view', + 'js/page_managers/toc_controller', + 'js/page_managers/toc_widget', + 'js/page_managers/view_mixin', + 'js/services/api', + 'js/services/default_pubsub', + 'js/services/pubsub', + 'js/services/storage', + 'js/widgets/abstract/widget', + 'js/widgets/alerts/modal_view', + 'js/widgets/alerts/page_top_alert', + 'js/widgets/alerts/widget', + 'js/widgets/base/base_widget', + 'js/widgets/facet/actions', + 'js/widgets/facet/create_store', + 'js/widgets/facet/factory', + 'js/widgets/facet/graph-facet/widget', + 'js/widgets/facet/reducers', + 'js/widgets/facet/widget', + 'js/widgets/footer/widget', + 'js/widgets/graphics/widget', + 'js/widgets/list_of_things/details_widget', + 'js/widgets/list_of_things/item_view', + 'js/widgets/list_of_things/model', + 'js/widgets/list_of_things/paginated_view', + 'js/widgets/list_of_things/widget', + 'js/widgets/meta_tags/widget', + 'js/widgets/metrics/d3-tip', + 'js/widgets/metrics/extractor_functions', + 'js/widgets/metrics/widget', + 'js/widgets/navbar/widget', + 'js/widgets/query_info/query_info_widget', + 'js/widgets/search_bar/autocomplete', + 'js/widgets/search_bar/search_bar_widget', + 'js/widgets/widget_states', + 'js/wraps/abstract_page_library_add/widget', + 'js/wraps/abstract_page_manager/abstract_page_manager', + 'js/wraps/alerts_mediator', + 'js/wraps/citations', + 'js/wraps/coreads', + 'js/wraps/discovery_mediator', + 'js/wraps/paper_export', + 'js/wraps/paper_metrics', + 'js/wraps/references', + 'js/wraps/sidebar-graphics-widget', + 'js/wraps/table_of_contents', + 'libs/select2/matcher', + 'router', + 'utils', + ], + }); - writeOutConfig(config, done); - }); + writeOutConfig(config, done); + }); - var getDiscoveryConfig = function () { - var content = grunt.file.read('dist/config/discovery.config.js'); - var cfg = {}; - (function () { - var require = requirejs = { - config: function (data) { cfg = data; } - }; - eval(content.toString()); - })(); - return cfg; - } + var getDiscoveryConfig = function() { + var content = grunt.file.read('dist/config/discovery.config.js'); + var cfg = {}; + (function() { + var require = (requirejs = { + config: function(data) { + cfg = data; + }, + }); + eval(content.toString()); + })(); + return cfg; + }; - var generateConfigFileString = function (name, cnts) { - return ` + var generateConfigFileString = function(name, cnts) { + return ` /** * GENERATED FILE (edits will be overwritten): * This is the configuration for ${name}. */ -requirejs.config(${ JSON.stringify(cnts, null, 2) }); +requirejs.config(${JSON.stringify(cnts, null, 2)}); `; - }; + }; - grunt.registerTask('applyIncludesToConfig', function () { - var cfg = getDiscoveryConfig(); + grunt.registerTask('applyIncludesToConfig', function() { + var cfg = getDiscoveryConfig(); - // generate the rest of the bundles - _.forEach(fullConfig, function (bundle, name) { - var _cfg = _.extend({}, cfg, { + // generate the rest of the bundles + _.forEach(fullConfig, function(bundle, name) { + var _cfg = _.extend({}, cfg, { + // set the main dependency to the bundle name + deps: [`config/${bundle.options.name}`], - // set the main dependency to the bundle name - deps: [`config/${ bundle.options.name }`], + // update the paths config with new revved names + paths: _.extend( + {}, + cfg.paths, - // update the paths config with new revved names - paths: _.extend({}, - cfg.paths, + // add all additional revved filenames to the paths + _.reduce( + bundle.options.include, + function(acc, p) { + acc[p] = `config/${bundle.options.name}`; + return acc; + }, + {} + ), - // add all additional revved filenames to the paths - _.reduce(bundle.options.include, function (acc, p) { - acc[p] = `config/${ bundle.options.name }`; - return acc; - }, {}), + // some explicit path changes + { + 'discovery.config': `config/${bundle.options.name}`, + } + ), + }); - // some explicit path changes - { - 'discovery.config': `config/${ bundle.options.name }` - } - ) + var out = generateConfigFileString(`dist/${name}.config.js`, _cfg); + grunt.file.write(`dist/config/${name}.config.js`, out); + grunt.log.writeln(`${name}.config.js has been created`); }); - - var out = generateConfigFileString(`dist/${name}.config.js`, _cfg); - grunt.file.write(`dist/config/${name}.config.js`, out); - grunt.log.writeln(`${name}.config.js has been created`); }); - }); - grunt.task.run([ - 'generateConfig', 'babel:release', 'requirejs' - ]); - grunt.task.run(['applyIncludesToConfig']); - grunt.task.run([ - 'uglify' - ]); - }); + grunt.task.run(['generateConfig', 'babel:release', 'requirejs']); + grunt.task.run(['applyIncludesToConfig']); + grunt.task.run(['uglify']); + } + ); return { options: {}, - release: { - } + release: {}, }; }; diff --git a/grunt/requirejs.js b/grunt/requirejs.js index eaf8cbbc1..e4150d39d 100644 --- a/grunt/requirejs.js +++ b/grunt/requirejs.js @@ -37,7 +37,7 @@ "persist-js": "empty:", "react-bootstrap": "empty:", "react-dom": "empty:", - "react-prop-types": "empty:", + "prop-types": "empty:", "react-redux": "empty:", "react": "empty:", "redux-thunk": "empty:", @@ -48,7 +48,17 @@ "sinon": "empty:", "sprintf": "empty:", "underscore": "empty:", - "discovery.vars": "empty:" + "discovery.vars": "empty:", + "yup": "empty:", + "react-hook-form": "empty:", + "react-flexview": "empty:", + "styled-components": "empty:", + "react-is": "empty:", + "react-data-table-component": "empty:", + "react-window": "empty:", + "react-async": "empty:", + "diff": "empty:", + "lodash-es": "empty:" }, "stubModules": [ "es6", @@ -165,7 +175,7 @@ "moment", "persist-js", "react-dom", - "react-prop-types", + "prop-types", "react-redux", "react", "redux-thunk", @@ -214,7 +224,7 @@ "persist-js": "empty:", "react-bootstrap": "empty:", "react-dom": "empty:", - "react-prop-types": "empty:", + "prop-types": "empty:", "react-redux": "empty:", "react": "empty:", "redux-thunk": "empty:", @@ -225,7 +235,17 @@ "sinon": "empty:", "sprintf": "empty:", "underscore": "empty:", - "discovery.vars": "empty:" + "discovery.vars": "empty:", + "yup": "empty:", + "react-hook-form": "empty:", + "react-flexview": "empty:", + "styled-components": "empty:", + "react-is": "empty:", + "react-data-table-component": "empty:", + "react-window": "empty:", + "react-async": "empty:", + "diff": "empty:", + "lodash-es": "empty:" }, "stubModules": [ "es6", @@ -404,7 +424,7 @@ "persist-js": "empty:", "react-bootstrap": "empty:", "react-dom": "empty:", - "react-prop-types": "empty:", + "prop-types": "empty:", "react-redux": "empty:", "react": "empty:", "redux-thunk": "empty:", @@ -415,7 +435,17 @@ "sinon": "empty:", "sprintf": "empty:", "underscore": "empty:", - "discovery.vars": "empty:" + "discovery.vars": "empty:", + "yup": "empty:", + "react-hook-form": "empty:", + "react-flexview": "empty:", + "styled-components": "empty:", + "react-is": "empty:", + "react-data-table-component": "empty:", + "react-window": "empty:", + "react-async": "empty:", + "diff": "empty:", + "lodash-es": "empty:" }, "stubModules": [ "es6", diff --git a/nginx.conf b/nginx.conf index 61b9911dc..ccae42587 100644 --- a/nginx.conf +++ b/nginx.conf @@ -85,6 +85,10 @@ http{ try_files $uri /index.html; } + location /link_gateway { + proxy_pass https://dev.adsabs.harvard.edu/link_gateway; + } + location /abs/ { alias /app/production/; index index.html; @@ -106,6 +110,13 @@ http{ try_files $uri /index.html; } + location /feedback/ { + alias /app/production/; + index index.html; + include /etc/nginx/mime.types; + try_files $uri /index.html; + } + location /execute-query/ { alias /app/production/; index index.html; diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index a150a38e1..4d00ab61a 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -67,7 +67,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", - "dev": true, "requires": { "@babel/types": "^7.0.0" } @@ -174,7 +173,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, "requires": { "@babel/types": "^7.0.0" } @@ -277,6 +275,11 @@ "@babel/types": "^7.4.4" } }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==" + }, "@babel/helper-wrap-function": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", @@ -851,7 +854,6 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz", "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.2" } @@ -874,6 +876,24 @@ } } }, + "@babel/runtime-corejs3": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz", + "integrity": "sha512-6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA==", + "dev": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + } + } + }, "@babel/template": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", @@ -914,7 +934,6 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "dev": true, "requires": { "esutils": "^2.0.2", "lodash": "^4.17.11", @@ -924,11 +943,38 @@ "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" } } }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@hookform/resolvers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-0.1.0.tgz", + "integrity": "sha512-/6cnDycgWhmvUpRmYY7506qJlym+hirk4tbt2waY3C2rOjFn+4/Gt4CuVLzjrsNJvOJkN36bx+OSlccecBgsrg==" + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -1004,7 +1050,6 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, -<<<<<<< HEAD "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -1015,8 +1060,6 @@ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, -======= ->>>>>>> 1195dba1... initial boilerplate "@types/q": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", @@ -1024,6 +1067,15 @@ "dev": true, "optional": true }, + "@xstate/react": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@xstate/react/-/react-1.0.2.tgz", + "integrity": "sha512-7UfMjnASK5GjRBM8a4YmW0aMdW5tQQRxSHkihxhTHv6z1ieGatBfOkRu9WNndgQoWN9Ns41jxDU+n4GcJ1oAmg==", + "requires": { + "use-isomorphic-layout-effect": "^1.0.0", + "use-subscription": "^1.3.0" + } + }, "JSONSelect": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", @@ -1067,6 +1119,12 @@ "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", "dev": true }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true + }, "acorn-node": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", @@ -1103,6 +1161,22 @@ } } }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + } + } + }, "ajv": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", @@ -1122,17 +1196,16 @@ "ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" }, -<<<<<<< HEAD "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "requires": { + "type-fest": "^0.11.0" + } }, -======= ->>>>>>> 1195dba1... initial boilerplate "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -1206,6 +1279,24 @@ "sprintf-js": "~1.0.2" } }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -1247,6 +1338,70 @@ "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", "dev": true }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, "array-map": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", @@ -1280,6 +1435,69 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -1349,6 +1567,17 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + }, "async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", @@ -1451,6 +1680,35 @@ } } }, + "axobject-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz", + "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==", + "dev": true + }, + "babel-plugin-styled-components": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz", + "integrity": "sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-module-imports": "^7.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11" + }, + "dependencies": { + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + } + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, "backbone": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.4.0.tgz", @@ -2972,14 +3230,11 @@ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, -<<<<<<< HEAD "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, -======= ->>>>>>> 1195dba1... initial boilerplate "camel-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", @@ -3004,6 +3259,11 @@ "map-obj": "^1.0.0" } }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, "caniuse-lite": { "version": "1.0.30000966", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000966.tgz", @@ -3092,6 +3352,12 @@ } } }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -3104,6 +3370,12 @@ "integrity": "sha1-4JIVodUVQtsqJXaWl2W89hJVg+s=", "dev": true }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -3166,6 +3438,11 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cli": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/cli/-/cli-0.4.5.tgz", @@ -3187,57 +3464,64 @@ "timers-ext": "0.1" } }, -<<<<<<< HEAD "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "^3.1.0" } }, "cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "requires": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, "dependencies": { - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.0" } } } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, -======= ->>>>>>> 1195dba1... initial boilerplate "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", @@ -3268,6 +3552,11 @@ } } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -3384,6 +3673,12 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=" }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -3696,6 +3991,12 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, "content-disposition": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz", @@ -3782,7 +4083,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, -<<<<<<< HEAD "cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", @@ -3813,8 +4113,6 @@ } } }, -======= ->>>>>>> 1195dba1... initial boilerplate "coveralls": { "version": "2.13.3", "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", @@ -4000,6 +4298,11 @@ } } }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" + }, "css-parse": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.5.3.tgz", @@ -4019,6 +4322,16 @@ "integrity": "sha1-n3B5J/KxZ83Vb/pCnyb6IGmCwmk=", "dev": true }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "css-tree": { "version": "1.0.0-alpha.28", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", @@ -4102,6 +4415,12 @@ "es5-ext": "~0.10.2" } }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, "dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", @@ -4123,11 +4442,6 @@ } } }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==" - }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", @@ -4428,6 +4742,24 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "deep-object-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.0.tgz", + "integrity": "sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -4565,10 +4897,9 @@ } }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" }, "diffie-hellman": { "version": "5.0.3", @@ -4591,6 +4922,15 @@ "path-type": "^3.0.0" } }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dom-helpers": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", @@ -4763,9 +5103,9 @@ "dev": true }, "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-2.0.0.tgz", + "integrity": "sha512-5YRYHhvhYzV/FC4AiMdeSIg3jAYGq9xFvbhZMpPlJoBsfYgrw2DSCYeXfat6tYBu45PWiyRr3+flaCPPmviPaA==" }, "elliptic": { "version": "6.4.1", @@ -4808,6 +5148,14 @@ } } }, + "enquirer": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz", + "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==", + "requires": { + "ansi-colors": "^3.2.1" + } + }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", @@ -5045,61 +5393,841 @@ } } }, - "eslint-config-airbnb": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.0.1.tgz", - "integrity": "sha512-hLb/ccvW4grVhvd6CT83bECacc+s4Z3/AEyWQdIT2KeTsG9dR7nx1gs7Iw4tDmGKozCNHFn4yZmRm3Tgy+XxyQ==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^14.0.0", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0" - } - }, - "eslint-config-airbnb-base": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz", - "integrity": "sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.7", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0" - } - }, - "eslint-plugin-requirejs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-requirejs/-/eslint-plugin-requirejs-4.0.0.tgz", - "integrity": "sha512-0RUXMrQ7elTtTZT6dwP6HozoAUzUBnMawBmdOKyQAWqulrLnKg8WGKJIpo7cDisjAr91SXDUIhCOrIqgbz9ETQ==", + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { - "ignore": "5.0.5" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ignore": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.0.5.tgz", - "integrity": "sha512-kOC8IUb8HSDMVcYrDVezCxpJkzSQWTAzf3olpKM6o9rM5zpojx23O0Fl8Wr4+qJ6ZbPEHqf1fdwev/DS7v7pmA==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true - } - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "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==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "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 + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "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" + }, + "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 + } + } + }, + "strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-config-airbnb": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.0.1.tgz", + "integrity": "sha512-hLb/ccvW4grVhvd6CT83bECacc+s4Z3/AEyWQdIT2KeTsG9dR7nx1gs7Iw4tDmGKozCNHFn4yZmRm3Tgy+XxyQ==", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^14.0.0", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-config-airbnb-base": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz", + "integrity": "sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.7", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-config-prettier": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", + "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "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 + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "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 + } + } + }, + "eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "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" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", + "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.4.5", + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.2", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^7.0.2", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + } + } + }, + "eslint-plugin-prettier": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz", + "integrity": "sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-react": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz", + "integrity": "sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.3", + "object.entries": "^1.1.1", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.15.1", + "string.prototype.matchall": "^4.0.2", + "xregexp": "^4.3.0" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", + "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==", + "dev": true + }, + "eslint-plugin-requirejs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-requirejs/-/eslint-plugin-requirejs-4.0.0.tgz", + "integrity": "sha512-0RUXMrQ7elTtTZT6dwP6HozoAUzUBnMawBmdOKyQAWqulrLnKg8WGKJIpo7cDisjAr91SXDUIhCOrIqgbz9ETQ==", + "dev": true, + "requires": { + "ignore": "5.0.5" + }, + "dependencies": { + "ignore": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.0.5.tgz", + "integrity": "sha512-kOC8IUb8HSDMVcYrDVezCxpJkzSQWTAzf3olpKM6o9rM5zpojx23O0Fl8Wr4+qJ6ZbPEHqf1fdwev/DS7v7pmA==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "dev": true + } + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "etag": { "version": "1.7.0", @@ -5421,6 +6549,28 @@ } } }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -5597,6 +6747,12 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-glob": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", @@ -5660,11 +6816,21 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, "requires": { "escape-string-regexp": "^1.0.5", "object-assign": "^4.1.0" } }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, "file-saver": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz", @@ -5892,6 +7058,34 @@ } } }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, "follow-redirects": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", @@ -6034,6 +7228,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -6295,8 +7495,7 @@ "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { "version": "8.0.2", @@ -8091,21 +9290,20 @@ } } }, -<<<<<<< HEAD "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" }, "husky": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.1.tgz", - "integrity": "sha512-Qa0lRreeIf4Tl92sSs42ER6qc3hzoyQPPorzOrFWfPEVbdi6LuvJEqWKPk905fOWIR76iBpp7ECZNIwk+a8xuQ==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", + "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", "dev": true, "requires": { - "chalk": "^3.0.0", + "chalk": "^4.0.0", "ci-info": "^2.0.0", - "compare-versions": "^3.5.1", + "compare-versions": "^3.6.0", "cosmiconfig": "^6.0.0", "find-versions": "^3.2.0", "opencollective-postinstall": "^2.0.2", @@ -8126,9 +9324,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -8185,9 +9383,9 @@ } }, "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -8240,8 +9438,6 @@ } } }, -======= ->>>>>>> 1195dba1... initial boilerplate "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -8329,7 +9525,6 @@ "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" }, -<<<<<<< HEAD "import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", @@ -8339,8 +9534,6 @@ "resolve-from": "^4.0.0" } }, -======= ->>>>>>> 1195dba1... initial boilerplate "import-lazy": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", @@ -8348,6 +9541,12 @@ "dev": true, "optional": true }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "in-publish": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", @@ -8605,6 +9804,70 @@ } } }, + "internal-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", + "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", + "dev": true, + "requires": { + "es-abstract": "^1.17.0-next.1", + "has": "^1.0.3", + "side-channel": "^1.0.2" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, "intersect": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/intersect/-/intersect-0.0.3.tgz", @@ -8839,16 +10102,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true, - "optional": true - }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "requires": { - "symbol-observable": "^1.1.0" - } + "dev": true, + "optional": true }, "is-plain-obj": { "version": "1.1.0", @@ -8873,14 +10128,6 @@ "dev": true, "optional": true }, -<<<<<<< HEAD - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, -======= ->>>>>>> 1195dba1... initial boilerplate "is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -8917,7 +10164,14 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true }, "is-svg": { "version": "3.0.0", @@ -9249,8 +10503,7 @@ "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "jshint": { "version": "2.1.11", @@ -9302,14 +10555,11 @@ "dev": true, "optional": true }, -<<<<<<< HEAD "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, -======= ->>>>>>> 1195dba1... initial boilerplate "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -9329,6 +10579,12 @@ "jsonify": "~0.0.0" } }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -9423,6 +10679,16 @@ } } }, + "jsx-ast-utils": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" + } + }, "junk": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", @@ -9548,24 +10814,23 @@ "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=", "dev": true }, -<<<<<<< HEAD "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "lint-staged": { - "version": "10.0.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.0.7.tgz", - "integrity": "sha512-Byj0F4l7GYUpYYHEqyFH69NiI6ICTg0CeCKbhRorL+ickbzILKUlZLiyCkljZV02wnoh7yH7PmFyYm9PRNwk9g==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.2.tgz", + "integrity": "sha512-78kNqNdDeKrnqWsexAmkOU3Z5wi+1CsQmUmfCuYgMTE8E4rAIX8RHW7xgxwAZ+LAayb7Cca4uYX4P3LlevzjVg==", "requires": { - "chalk": "^3.0.0", - "commander": "^4.0.1", + "chalk": "^4.0.0", + "commander": "^5.0.0", "cosmiconfig": "^6.0.0", "debug": "^4.1.1", "dedent": "^0.7.0", - "execa": "^3.4.0", - "listr": "^0.14.3", + "execa": "^4.0.0", + "listr2": "1.3.8", "log-symbols": "^3.0.0", "micromatch": "^4.0.2", "normalize-path": "^3.0.0", @@ -9592,9 +10857,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9614,14 +10879,14 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" }, "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -9637,9 +10902,9 @@ } }, "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.1.tgz", + "integrity": "sha512-SCjM/zlBdOK8Q5TIjOn6iEHZaPHFsMoTxXQ2nvUvtPnuohz3H2dIozSg+etNR98dGoYUp2ENSKLL/XaMmbxVgw==", "requires": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -9648,7 +10913,6 @@ "merge-stream": "^2.0.0", "npm-run-path": "^4.0.0", "onetime": "^5.1.0", - "p-finally": "^2.0.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } @@ -9768,11 +11032,6 @@ "mimic-fn": "^2.1.0" } }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -9836,127 +11095,99 @@ } } }, - "listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "listr2": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-1.3.8.tgz", + "integrity": "sha512-iRDRVTgSDz44tBeBBg/35TQz4W+EZBWsDUq7hPpqeUHm7yLPNll0rkwW3lIX9cPAK7l+x95mGWLpxjqxftNfZA==", "requires": { "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - } - } - }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=" - }, - "listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", - "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "elegant-spinner": "^2.0.0", + "enquirer": "^2.3.4", + "figures": "^3.2.0", + "indent-string": "^4.0.0", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "pad": "^3.2.0", + "rxjs": "^6.3.3", + "through": "^2.3.8", + "uuid": "^7.0.2" }, "dependencies": { "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "chalk": "^1.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { - "ansi-regex": "^2.0.0" + "escape-string-regexp": "^1.0.5" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "requires": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "aggregate-error": "^3.0.0" } }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "escape-string-regexp": "^1.0.5" + "has-flag": "^4.0.0" } + }, + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" } } }, -======= ->>>>>>> 1195dba1... initial boilerplate "load-grunt-config": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/load-grunt-config/-/load-grunt-config-0.19.2.tgz", @@ -10141,6 +11372,11 @@ "lodash._isnative": "~2.4.1" } }, + "lodash.orderby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.orderby/-/lodash.orderby-4.6.0.tgz", + "integrity": "sha1-5pfwTOXXhSL1TZM4syuBozk+TrM=" + }, "log-driver": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", @@ -10170,35 +11406,89 @@ } }, "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, - "strip-ansi": { + "slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "requires": { - "ansi-regex": "^3.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" } }, "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } @@ -10607,6 +11897,11 @@ "mimic-fn": "^1.0.0" } }, + "memoize-one": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", + "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" + }, "memoizee": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz", @@ -10752,7 +12047,8 @@ "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true }, "mimic-response": { "version": "1.0.1", @@ -10916,6 +12212,12 @@ "ms": "^2.1.1" } }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -11306,6 +12608,11 @@ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" }, + "nanoid": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", + "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -11331,7 +12638,6 @@ "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", "dev": true }, -<<<<<<< HEAD "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -11343,8 +12649,6 @@ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=" }, -======= ->>>>>>> initial boilerplate "needle": { "version": "0.7.11", "resolved": "https://registry.npmjs.org/needle/-/needle-0.7.11.tgz", @@ -14640,6 +15944,12 @@ } } }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -14679,6 +15989,71 @@ "has": "^1.0.3" } }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, "object.getownpropertydescriptors": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", @@ -14703,7 +16078,6 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", "dev": true, - "optional": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.12.0", @@ -14746,6 +16120,12 @@ "integrity": "sha1-XeRqCFi59J+fIRqo8mYoVQZX8mI=", "dev": true }, + "opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "dev": true + }, "opn": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/opn/-/opn-1.0.2.tgz", @@ -14832,6 +16212,12 @@ "win-release": "^1.0.0" } }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, "osenv": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz", @@ -14972,6 +16358,14 @@ "registry-url": "^0.1.0" } }, + "pad": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pad/-/pad-3.2.0.tgz", + "integrity": "sha512-2u0TrjcGbOjBTJpyewEl4hBO3OeX5wWue7eIFPzQTg6wFSvoaHcBTTUY5m+n0hd04gmTCPuY0kCpVIVuw5etwg==", + "requires": { + "wcwidth": "^1.0.1" + } + }, "pad-stdio": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pad-stdio/-/pad-stdio-0.1.1.tgz", @@ -14996,7 +16390,6 @@ "no-case": "^2.2.0" } }, -<<<<<<< HEAD "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -15005,8 +16398,6 @@ "callsites": "^3.0.0" } }, -======= ->>>>>>> 1195dba1... initial boilerplate "parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", @@ -15303,9 +16694,9 @@ } }, "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { "version": "4.0.1", @@ -15326,6 +16717,26 @@ "pinkie": "^2.0.0" } }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + } + } + }, "pkg-up": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", @@ -15335,7 +16746,6 @@ "find-up": "^1.0.0" } }, -<<<<<<< HEAD "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -15344,8 +16754,6 @@ "semver-compare": "^1.0.0" } }, -======= ->>>>>>> 1195dba1... initial boilerplate "plur": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/plur/-/plur-3.1.1.tgz", @@ -15361,6 +16769,11 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -15374,6 +16787,21 @@ "dev": true, "optional": true }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, "pretty-bytes": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.2.0.tgz", @@ -15802,6 +17230,11 @@ "prop-types": "^15.6.2" } }, + "react-async": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/react-async/-/react-async-10.0.1.tgz", + "integrity": "sha512-ORUz5ca0B57QgBIzEZM5SuhJ6xFjkvEEs0gylLNlWf06vuVcLZsjIw3wx58jJkZG38p+0nUAxRgFW2b7mnVZzA==" + }, "react-bootstrap": { "version": "0.32.4", "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.32.4.tgz", @@ -15822,6 +17255,16 @@ "warning": "^3.0.0" } }, + "react-data-table-component": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-6.9.1.tgz", + "integrity": "sha512-84FqhmyJZAsai0AUsg+eK80Dw3vlZCKAqfZ0S9oCeKufTa6Q+8Vvk9+uQrh7/xukupp+fa3cF48FRMsuRnj/0A==", + "requires": { + "deepmerge": "^4.2.2", + "lodash.orderby": "^4.6.0", + "shortid": "^2.2.15" + } + }, "react-dom": { "version": "16.12.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", @@ -15833,10 +17276,23 @@ "scheduler": "^0.18.0" } }, + "react-flexview": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-flexview/-/react-flexview-5.0.0.tgz", + "integrity": "sha512-p7yhb5rqqFG9YYx9o0zmZY74DQFAwngKe7F2tN6a4mx7vvj5Zodbie5zWTdrPzB2tRXoVpBbzMXN53S+X+cIcw==", + "requires": { + "prop-types": "^15.5.6" + } + }, + "react-hook-form": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.11.0.tgz", + "integrity": "sha512-YoiNCKSfrLv0CCK9fiVorNt1YM5xOV4Fo+O3e3CphS6N4xrXah3rJo1YIA34qSbIJwXgcsS2WOIb2K/Wb6e56A==" + }, "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-lifecycles-compat": { "version": "3.0.4", @@ -15911,6 +17367,15 @@ "react-lifecycles-compat": "^3.0.4" } }, + "react-window": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.5.tgz", + "integrity": "sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q==", + "requires": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + } + }, "read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -16021,6 +17486,11 @@ } } }, + "recoil": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.1.2.tgz", + "integrity": "sha512-hIRrHlkmW4yITlBFprVYjVPhzPKYrJKoaDrrJtAtbkMeXfXaa/XE5OlyR10n+rNfnKWNToCKb3Z4fo86IGjkzg==" + }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", @@ -16089,9 +17559,9 @@ } }, "regenerator-runtime": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", - "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==" + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, "regenerator-transform": { "version": "0.13.4", @@ -16118,6 +17588,75 @@ "integrity": "sha512-LFrA98Dw/heXqDojz7qKFdygZmFoiVlvE1Zp7Cq2cvF+ZA+03Gmhy0k0PQlsC1jvHPiTUSs+pDHEuSWv6+6D7w==", "dev": true }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, "regexpu-core": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", @@ -16310,14 +17849,11 @@ "path-parse": "^1.0.6" } }, -<<<<<<< HEAD "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, -======= ->>>>>>> 1195dba1... initial boilerplate "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -16352,28 +17888,30 @@ "lowercase-keys": "^1.0.0" } }, -<<<<<<< HEAD "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "^2.1.0" } } } }, -======= ->>>>>>> 1195dba1... initial boilerplate "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -16404,6 +17942,11 @@ } } }, + "rfc6902": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/rfc6902/-/rfc6902-3.0.4.tgz", + "integrity": "sha512-OnzreaZXrwT5w2ikKXWr5QcuI7NZpL+J3hIkAwozjOnKVUL7fPsB8Vcmu8YBiiou1/r3V0Jc0T1uQDyfAPvLzA==" + }, "rimraf": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", @@ -16425,23 +17968,26 @@ "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=", "dev": true }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, "rx": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz", "integrity": "sha1-Ia3H2A8CACr1Da6X/Z2/JIdV9WY=", "dev": true }, -<<<<<<< HEAD "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "requires": { "tslib": "^1.9.0" } }, -======= ->>>>>>> 1195dba1... initial boilerplate "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -16679,14 +18225,11 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, -<<<<<<< HEAD "semver-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" }, -======= ->>>>>>> 1195dba1... initial boilerplate "semver-diff": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-0.1.0.tgz", @@ -16708,8 +18251,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", - "dev": true, - "optional": true + "dev": true }, "semver-truncate": { "version": "1.1.2", @@ -16959,6 +18501,11 @@ "safe-buffer": "^5.0.1" } }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "shasum": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", @@ -17002,6 +18549,77 @@ "integrity": "sha1-kEktcv/MgVmXa6umL7D2iE8MM3g=", "dev": true }, + "shortid": { + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.15.tgz", + "integrity": "sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw==", + "requires": { + "nanoid": "^2.1.0" + } + }, + "side-channel": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", + "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "dev": true, + "requires": { + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -17019,11 +18637,6 @@ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", "dev": true }, - "simple-react-validator": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/simple-react-validator/-/simple-react-validator-1.3.2.tgz", - "integrity": "sha512-MJujXCgf+Fa0GFTUNA4zgV0NqLSnnRxoaRdUxLY5rwE7Y3Hs/dqMoigCKTvBRCCnX83eXt38gBbV09FRWn2SkA==" - }, "sinon": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.3.2.tgz", @@ -17037,6 +18650,14 @@ "lolex": "^4.0.1", "nise": "^1.4.10", "supports-color": "^5.5.0" + }, + "dependencies": { + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + } } }, "slash": { @@ -17045,6 +18666,45 @@ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + } + } + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -17199,8 +18859,7 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.2", @@ -17479,92 +19138,413 @@ } } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true, + "optional": true + }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==" + }, + "string-length": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-0.1.2.tgz", + "integrity": "sha1-qwS7M4Z+50vu1/uJu38InTkngPI=", + "dev": true, + "requires": { + "strip-ansi": "^0.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.1.0.tgz", + "integrity": "sha1-Vcpg22kAhXxCOukpeYACb5Qe2QM=", + "dev": true + }, + "strip-ansi": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.2.2.tgz", + "integrity": "sha1-hU0pDJgVJfyMOXqRCwJa4tVP/Ag=", + "dev": true, + "requires": { + "ansi-regex": "^0.1.0" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.matchall": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", + "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, + "string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "optional": true - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==" - }, - "string-length": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-0.1.2.tgz", - "integrity": "sha1-qwS7M4Z+50vu1/uJu38InTkngPI=", + "string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", "dev": true, "requires": { - "strip-ansi": "^0.2.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" }, "dependencies": { - "ansi-regex": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.1.0.tgz", - "integrity": "sha1-Vcpg22kAhXxCOukpeYACb5Qe2QM=", + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, - "strip-ansi": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.2.2.tgz", - "integrity": "sha1-hU0pDJgVJfyMOXqRCwJa4tVP/Ag=", + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "ansi-regex": "^0.1.0" + "has": "^1.0.3" } } } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "has": "^1.0.3" } } } @@ -17649,6 +19629,136 @@ "escape-string-regexp": "^1.0.2" } }, + "styled-components": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.1.0.tgz", + "integrity": "sha512-0Qs2wEkFBXHFlysz6CV831VG6HedcrFUwChjnWylNivsx14MtmqQsohi21rMHZxzuTba063dEyoe/SR6VGJI7Q==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "requires": { + "@babel/types": "^7.9.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==" + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + } + } + }, "subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", @@ -17748,7 +19858,8 @@ "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true }, "syntax-error": { "version": "1.4.0", @@ -17759,6 +19870,75 @@ "acorn-node": "^1.2.0" } }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "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 + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "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" + } + } + } + }, "tar": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", @@ -17869,8 +20049,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "2.0.5", @@ -18013,8 +20192,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", @@ -18111,14 +20289,11 @@ "glob": "^7.1.2" } }, -<<<<<<< HEAD "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.12.0.tgz", + "integrity": "sha512-5rxCQkP0kytf4H1T4xz1imjxaUUPMvc5aWp0rJ/VMIN7ClRiH1FwFvBt8wOeMasp/epeUnmSW6CixSIePtiLqA==" }, -======= ->>>>>>> 1195dba1... initial boilerplate "tsscmp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", @@ -18157,6 +20332,11 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -18550,6 +20730,19 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, + "use-isomorphic-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.0.tgz", + "integrity": "sha512-kady5Z1O1qx5RitodCCKbpJSVEtECXYcnBnb5Q48Bz5V6gBmTu85ZcGdVwVFs8+DaOurNb/L5VdGHoQRMknghw==" + }, + "use-subscription": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.0.tgz", + "integrity": "sha512-/FVRiB2I7NDjzWoNBYPt6YkkvleMm/lFtxj1hH6nX2TVrJ/5UTbovw9OE1efv2Zl0HoAYuTjM7zHd9OsABn5sg==", + "requires": { + "object-assign": "^4.1.1" + } + }, "user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", @@ -18592,6 +20785,12 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -18648,6 +20847,14 @@ "loose-envify": "^1.0.0" } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, "when": { "version": "3.7.8", "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", @@ -18665,6 +20872,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -18682,6 +20895,12 @@ "semver": "^5.0.1" } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", @@ -18728,6 +20947,15 @@ "integrity": "sha1-f1I+/bcbAQDnfc6DTAZSPL49VOA=", "dev": true }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", @@ -18746,6 +20974,20 @@ "user-home": "^1.0.0" } }, + "xregexp": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", + "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", + "dev": true, + "requires": { + "@babel/runtime-corejs3": "^7.8.3" + } + }, + "xstate": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.14.0.tgz", + "integrity": "sha512-nz+T5rlPl0Vu1L9NZdI7JYVq57k/pKpyLwmztqgcj/HqUVsopnMKBP6cQJCb4Op9TC8kffyJSMwHDFthuRpooQ==" + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -18762,27 +21004,29 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, -<<<<<<< HEAD "yaml": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", - "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz", + "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==", "requires": { - "@babel/runtime": "^7.6.3" + "@babel/runtime": "^7.9.2" }, "dependencies": { "@babel/runtime": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz", - "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", "requires": { - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" } } }, -======= ->>>>>>> 1195dba1... initial boilerplate "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", diff --git a/package.json b/package.json index ff8852e45..06faa23bd 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,13 @@ "url": "https://github.com/adsabs/bumblebee/issues" }, "dependencies": { + "@hookform/resolvers": "^0.1.0", + "@xstate/react": "^1.0.2", "backbone": "^1.3.3", "bootstrap-sass": "^3.3.7", + "deep-object-diff": "^1.1.0", "dependo": "^0.2.0", + "diff": "^4.0.2", "file-saver": "^1.3.8", "hotkeys-js": "^3.7.3", "immutable": "^3.8.2", @@ -23,9 +27,20 @@ "node-sass": "^4.13.0", "prop-types": "^15.6.0", "react": "^16.12.0", + "react-async": "^10.0.1", + "react-data-table-component": "^6.9.1", "react-dom": "^16.12.0", + "react-flexview": "^5.0.0", + "react-hook-form": "^6.11.0", + "react-is": "^16.13.1", "react-redux": "^7.2.0", - "requirejs": "^2.3.5" + "react-window": "^1.8.5", + "recoil": "^0.1.2", + "regenerator-runtime": "^0.13.7", + "requirejs": "^2.3.5", + "rfc6902": "^3.0.4", + "styled-components": "^5.1.0", + "xstate": "^4.14.0" }, "devDependencies": { "@babel/core": "^7.2.2", diff --git a/server.sh b/server.sh index 68262924b..958a0765d 100755 --- a/server.sh +++ b/server.sh @@ -10,4 +10,4 @@ target=${1:-src} # workdir that will become webserver's root docker rm -f bbb-nginx 2>/dev/null -docker run -p 8000:80 -v $home/$target/:/app/production -v $home/nginx.conf:/etc/nginx/nginx.conf bbb-nginx nginx \ No newline at end of file +docker run -p 8000:80 -v $home/$target/:/app/production -v $home/nginx.conf:/etc/nginx/nginx.conf bbb-nginx nginx diff --git a/src/config/common.config.js b/src/config/common.config.js index def10f937..bc0cc0606 100644 --- a/src/config/common.config.js +++ b/src/config/common.config.js @@ -42,8 +42,7 @@ define([], function() { }, }); - require(['config/discovery.vars'], function(config) { - + require(['config/discovery.vars', 'regenerator-runtime'], function(config) { // rca: not sure why the ganalytics is loaded here instead of inside analytics.js // perhaps it is because it is much/little sooner this way? @@ -57,19 +56,21 @@ define([], function() { config.googleTrackingCode || '', config.googleTrackingOptions ); - - // if we ever want to modify what experiment/variant the user + + // if we ever want to modify what experiment/variant the user // is going to receive, it has to happen here - by modifying the // _gaexp cookie -- but at this stage we haven't yet downloaded // optimize AND we haven't setup any of our api calls // example that sets the variant 2 of the experiment - // document.cookie = '_gaexp=GAX1.1.WFD4u8V3QkaI5EcZ969yeQ.18459.2;'; + // document.cookie = '_gaexp=GAX1.1.WFD4u8V3QkaI5EcZ969yeQ.18459.2;'; if (config.googleOptimizeCode) { analytics('require', config.googleOptimizeCode); if (!config.debugExportBBB) - console.warn('AB testing will be loaded, but bbb object is not exposed. Change debugExportBBB if needed.'); + console.warn( + 'AB testing will be loaded, but bbb object is not exposed. Change debugExportBBB if needed.' + ); } }); }, 0); diff --git a/src/config/discovery.config.js b/src/config/discovery.config.js index 1c4ca9c93..c46b4a511 100644 --- a/src/config/discovery.config.js +++ b/src/config/discovery.config.js @@ -5,12 +5,11 @@ require.config({ deps: (function() { if (typeof window !== 'undefined' && window.skipMain) { return ['common.config']; - } else { - return ['config/common.config', 'js/apps/discovery/main']; } + return ['config/common.config', 'js/apps/discovery/main']; })(), - //this will be overridden in the compiled file + // this will be overridden in the compiled file waitSeconds: 30, // Configuration we want to make available to modules of ths application @@ -56,6 +55,7 @@ require.config({ CSRFManager: 'js/components/csrf_manager', LibraryController: 'js/components/library_controller', DocStashController: 'js/components/doc_stash_controller', + Utils: 'utils', }, modules: { FacetFactory: 'js/widgets/facet/factory', @@ -70,6 +70,7 @@ require.config({ OrcidPage: 'js/wraps/orcid_page_manager/orcid_page_manager', OrcidInstructionsPage: 'js/wraps/orcid-instructions-page-manager/manager', + ReactPageManager: 'js/react/PageManager', LibrariesPage: 'js/wraps/libraries_page_manager/libraries_page_manager', HomePage: 'js/wraps/home_page_manager/home_page_manager', @@ -131,13 +132,14 @@ require.config({ ShowCoreads: 'js/wraps/coreads', ShowSimilar: 'js/wraps/similar', MetaTagsWidget: 'js/widgets/meta_tags/widget', - //can't camel case because router only capitalizes first letter + // can't camel case because router only capitalizes first letter ShowToc: 'js/wraps/table_of_contents', ShowResources: 'es6!js/widgets/resources/widget.jsx', ShowAssociated: 'es6!js/widgets/associated/widget.jsx', ShowRecommender: 'js/widgets/recommender/widget', ShowMetrics: 'js/wraps/paper_metrics', ShowExportcitation: 'js/wraps/paper_export', + ShowFeedback: 'reactify!js/react/BumblebeeWidget?FeedbackForms', ShowLibraryAdd: 'js/wraps/abstract_page_library_add/widget', IndividualLibraryWidget: 'js/widgets/library_individual/widget', @@ -182,7 +184,7 @@ require.config({ async: 'libs/requirejs-plugins/async', babel: 'libs/requirejs-babel-plugin/babel-5.8.34.min', backbone: [ - //'//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min', + // '//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min', 'libs/backbone/backbone', ], 'backbone-validation': [ @@ -231,7 +233,8 @@ require.config({ // uncomment this; k12 should have ingress-nginx-proxy image deployed // that can proxy requests to /analytics // '/analytics/analytics' - 'libs/g', 'data:application/javascript,' + 'libs/g', + 'data:application/javascript,', ], hbs: 'libs/require-handlebars-plugin/hbs', hotkeys: 'libs/hotkeys/index', @@ -258,21 +261,18 @@ require.config({ '//cdn.jsdelivr.net/npm/persist-js@0.3.1/src/persist.min', 'libs/persist-js/src/persist', ], - react: [ - '//unpkg.com/react@16/umd/react.production.min', - 'libs/react/index', - ], + react: ['//unpkg.com/react@16/umd/react.development', 'libs/react/index'], 'react-bootstrap': [ '//cdnjs.cloudflare.com/ajax/libs/react-bootstrap/0.32.1/react-bootstrap.min', 'libs/react-bootstrap/index', ], 'react-dom': [ - '//unpkg.com/react-dom@16/umd/react-dom.production.min', + '//unpkg.com/react-dom@16/umd/react-dom.development', 'libs/react-dom/index', ], - 'react-prop-types': [ + 'prop-types': [ '//cdnjs.cloudflare.com/ajax/libs/prop-types/15.7.2/prop-types.min', - 'libs/react-prop-types/index', + 'libs/prop-types/index', ], 'react-redux': [ '//cdnjs.cloudflare.com/ajax/libs/react-redux/7.1.3/react-redux.min', @@ -302,6 +302,25 @@ require.config({ chai: 'bower_components/chai/chai', sinon: 'https://cdnjs.cloudflare.com/ajax/libs/sinon.js/1.9.0/sinon.min', es5shim: 'node_modules/es5-shim/es5-shim.min', + suit: 'shared/dist/index.umd.development', + yup: 'libs/yup/index', + 'react-hook-form': [ + 'https://cdn.jsdelivr.net/npm/react-hook-form@6.9.6/dist/index.umd.production.min', + 'libs/react-hook-form/index', + ], + 'react-flexview': 'libs/react-flexview/index', + 'styled-components': 'libs/styled-components/index', + 'react-is': 'libs/react-is/index', + 'react-data-table-component': 'libs/react-data-table-component/index', + 'react-window': 'libs/react-window/index', + 'react-async': 'libs/react-async/index', + 'deep-object-diff': 'libs/deep-object-diff/index', + diff: 'https://cdnjs.cloudflare.com/ajax/libs/jsdiff/4.0.2/diff.min', + 'regenerator-runtime': 'libs/regenerator-runtime/index', + '@hookform/resolvers': 'libs/@hookform/index', + recoil: 'libs/recoil/index', + xstate: 'libs/xstate/index', + '@xstate/react': 'libs/xstate-react/index', }, hbs: { diff --git a/src/index.html b/src/index.html index 55c39aa32..9b90b1575 100644 --- a/src/index.html +++ b/src/index.html @@ -118,6 +118,11 @@

setTimeout(__setAppLoadingProgress, 500, 25); window.__setAppLoadingProgress(15, 'Downloading Assets'); window.__PAGE_LOAD_TIMESTAMP = new Date(); + window.process = { + env: { + NODE_ENV: 'production' + } + }; })(); diff --git a/src/js/apps/discovery/navigator.js b/src/js/apps/discovery/navigator.js index 338f82fb8..165e501a2 100644 --- a/src/js/apps/discovery/navigator.js +++ b/src/js/apps/discovery/navigator.js @@ -17,6 +17,7 @@ define([ 'hbs!404', 'hbs!js/apps/discovery/templates/orcid-modal-template', 'js/mixins/api_access', + 'react-redux' ], function( $, Backbone, @@ -30,8 +31,8 @@ define([ ApiTargets, ErrorTemplate, OrcidModalTemplate, - ApiAccessMixin -) { + ApiAccessMixin, + ReactRedux) { var NavigatorService = Navigator.extend({ start: function(app) { /** @@ -1434,13 +1435,19 @@ define([ return $dd.promise(); }; - const showDetailsSubPage = function({ id, bibcode, page, prefix }) { + const showDetailsSubPage = function({ + id, + bibcode, + page, + prefix, + subView, + }) { const ps = self.getPubSub(); ps.publish( ps.DISPLAY_DOCUMENTS, - new ApiQuery({ q: 'identifier:' + bibcode }) + new ApiQuery({ q: `identifier:${bibcode}` }) ); - page.setActive(id); + page.setActive(id, subView); if (prefix) { // we can grab the current title from storage and just add our prefix from there @@ -1697,6 +1704,30 @@ define([ }); return defer.promise(); }); + + // ---- react components ---- + + const createReactPage = async (id) => { + // get the page manager and inject a rendered widget + const pm = await app._getWidget('ReactPageManager'); + const widget = await app._getWidget(id); + pm.widgets[id] = widget.render(); + pm.view = pm.createView({ widgets: { [id]: pm.widgets[id] } }); + await app.getObject('MasterPageManager').show('ReactPageManager', [id]); + return widget; + }; + + this.set('ShowFeedback', async function(id, { subview, bibcode }) { + const widget = await createReactPage('ShowFeedback'); + ReactRedux.batch(() => { + widget.dispatch({ type: 'SET_FORM', payload: subview }); + widget.dispatch({ type: 'SET_BIBCODE', payload: bibcode }); + }) + const { form } = widget.getState().main; + publishPageChange(`feedback-${form}`); + this.title = 'Feedback'; + this.route = `#feedback/${form}`; + }); }, }); diff --git a/src/js/apps/discovery/router.js b/src/js/apps/discovery/router.js index 80f1d72ce..80a1354f9 100644 --- a/src/js/apps/discovery/router.js +++ b/src/js/apps/discovery/router.js @@ -62,6 +62,7 @@ define([ 'search/(:query)(/)(:widgetName)': 'search', 'search(/)(?:query)': 'search', 'execute-query/(:query)': 'executeQuery', + 'feedback/(:subview)': 'feedbackPage', 'abs/*path': 'view', /* * user endpoints require user to be logged in, either @@ -95,6 +96,20 @@ define([ this.routerNavigate('PaperSearchForm'); }, + feedbackPage: function(subview, query) { + console.log('feedback', subview, arguments); + + const q = new ApiQuery(); + if (query) { + q.load(query); + } + this.routerNavigate(`ShowFeedback`, { + subview, + href: `#feedback/${subview}`, + bibcode: q.has('bibcode') ? q.get('bibcode')[0] : null, + }); + }, + search: function(query, widgetName) { if (query) { try { diff --git a/src/js/components/api_targets.js b/src/js/components/api_targets.js index 75a1bbfef..1bff40532 100644 --- a/src/js/components/api_targets.js +++ b/src/js/components/api_targets.js @@ -41,7 +41,7 @@ define([], function() { RECOMMENDER: 'recommender', GRAPHICS: 'graphics', - FEEDBACK: 'feedback/slack', + FEEDBACK: 'feedback/userfeedback', // library import from classic LIBRARY_IMPORT_CLASSIC_AUTH: 'harbour/auth/classic', diff --git a/src/js/components/recaptcha_manager.js b/src/js/components/recaptcha_manager.js index edb8f3182..9934c9b50 100644 --- a/src/js/components/recaptcha_manager.js +++ b/src/js/components/recaptcha_manager.js @@ -59,7 +59,15 @@ define([ }, getEl: function(view) { - return view.$('.g-recaptcha'); + let $el; + if (typeof view.$ === 'function') { + $el = view.$('.g-recaptcha'); + } else if (view.el) { + $el = $('.g-recaptcha', view.el); + } else { + $el = $('.g-recaptcha'); + } + return $el; }, execute: function() { @@ -76,7 +84,19 @@ define([ }, enableSubmit: function(view, bool) { - view.$('button[type=submit],input[type=submit]').attr('disabled', !bool); + let $el; + const selector = 'button[type=submit],input[type=submit]'; + if (typeof view.$ === 'function') { + $el = view.$(selector); + } else if (view.el) { + $el = $(selector, view.el); + } else { + $el = $(selector); + } + + if ($el.length > 0) { + $el.attr('disabled', !bool); + } }, renderError: function(view) { @@ -85,11 +105,15 @@ define([ this.enableSubmit(view, false); }, - renderRecaptcha: function(view, siteKey, undefined) { + googleMsg: () => { + return `This site is protected by reCAPTCHA and the Google + Privacy Policy and + Terms of Service apply.`; + }, + + renderRecaptcha: function(view, siteKey) { const $el = this.getEl(view); - const msg = $('
').append( - 'This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.' - ); + const msg = $('
').append(this.googleMsg()); $el.closest('form').append(msg); grecaptcha.render($el[0], { sitekey: siteKey, diff --git a/src/js/page_managers/master.js b/src/js/page_managers/master.js index b48379f7b..e733e761f 100644 --- a/src/js/page_managers/master.js +++ b/src/js/page_managers/master.js @@ -187,7 +187,7 @@ define([ return defer.promise(); } - app._getWidget(pageManagerName).done(function(pageManagerWidget) { + app._getWidget(pageManagerName).then(function(pageManagerWidget) { // will throw error if not there pageManagerModel.set('object', pageManagerWidget); if (!pageManagerWidget) { @@ -196,7 +196,7 @@ define([ if (pageManagerWidget.assemble) { // assemble the new page manager (while the old one is still in place) - pageManagerWidget.assemble(app).done(function() { + pageManagerWidget.assemble(app).then(function() { activatePage(pageManagerWidget); }); } else { diff --git a/src/js/plugins/recaptcha.js b/src/js/plugins/recaptcha.js index f5c3e6ad4..21fa8610b 100644 --- a/src/js/plugins/recaptcha.js +++ b/src/js/plugins/recaptcha.js @@ -5,13 +5,13 @@ define([], function() { ]; const recaptcha = { - load: function(name, req, onload, config) { + load: function(name, req, onload) { // make a global deferred that will be used by the recaptcha_manager window.__grecaptcha__ = $.Deferred(); // add the global handler which will be called by the recaptcha script window.onRecaptchaLoad = function() { - window.__grecaptcha__.resolve(); + window.__grecaptcha__.resolve(window.grecaptcha); }; // load each url, we don't care if they take a while or fail diff --git a/src/js/react/FeedbackForms/actions.js b/src/js/react/FeedbackForms/actions.js new file mode 100644 index 000000000..a1df9cfc0 --- /dev/null +++ b/src/js/react/FeedbackForms/actions.js @@ -0,0 +1,19 @@ +define([], function() { + const actions = { + SET_BIBCODE: 'SET_BIBCODE', + SET_FORM: 'SET_FORM', + + CHECK_BIBCODES: 'CHECK_BIBCODES', + }; + + const actionCreators = { + setBibcode: (payload) => ({ type: actions.SET_BIBCODE, payload }), + setForm: (payload) => ({ type: actions.SET_FORM, payload }), + checkBibcodes: (payload) => ({ + type: actions.CHECK_BIBCODES, + payload, + }), + }; + + return { ...actions, ...actionCreators }; +}); diff --git a/src/js/react/FeedbackForms/components/App.jsx.js b/src/js/react/FeedbackForms/components/App.jsx.js new file mode 100644 index 000000000..e1e8938d2 --- /dev/null +++ b/src/js/react/FeedbackForms/components/App.jsx.js @@ -0,0 +1,45 @@ +define([ + 'react', + 'suit', + 'react-redux', + 'styled-components', + '../models/index', + 'recoil', +], function( + React, + { FeedbackForms }, + { useSelector }, + styled, + { FORMS }, + { RecoilRoot } +) { + const Container = styled.div` + padding: 4rem 1rem; + `; + + const formSelector = ({ main }) => ({ form: main.form }); + const App = () => { + const { form } = useSelector(formSelector); + + return ( + + + {(() => { + switch (form) { + case FORMS.missingreferences: + return ; + case FORMS.associatedarticles: + return ; + case FORMS.correctabstract: + return ; + default: + return ; + } + })()} + + + ); + }; + + return App; +}); diff --git a/src/js/react/FeedbackForms/containers/main.js b/src/js/react/FeedbackForms/containers/main.js new file mode 100644 index 000000000..710984108 --- /dev/null +++ b/src/js/react/FeedbackForms/containers/main.js @@ -0,0 +1,3 @@ +define([], function() { + return null; +}); diff --git a/src/js/react/FeedbackForms/index.js b/src/js/react/FeedbackForms/index.js new file mode 100644 index 000000000..75a42667e --- /dev/null +++ b/src/js/react/FeedbackForms/index.js @@ -0,0 +1,31 @@ +define([ + 'es6!./components/App.jsx', + 'js/react/WithBackboneView', + 'js/react/configureStore', + 'react-redux', + './actions', + './middleware', + './reducer', + 'js/react/shared/helpers', + 'js/react/shared/middleware/index', +], function( + App, + WithBackboneView, + configureStore, + { connect }, + actions, + middleware, + reducer, + { withContext }, + sharedMiddleware +) { + const mapStateToProps = ({}) => ({}); + const {} = actions; + const actionCreators = {}; + const middlewares = [middleware, ...sharedMiddleware]; + + return WithBackboneView( + connect(mapStateToProps, actionCreators)(App), + (context) => configureStore(context, reducer, withContext(...middlewares)) + ); +}); diff --git a/src/js/react/FeedbackForms/middleware.js b/src/js/react/FeedbackForms/middleware.js new file mode 100644 index 000000000..3ecb436db --- /dev/null +++ b/src/js/react/FeedbackForms/middleware.js @@ -0,0 +1,30 @@ +define(['./actions', '../shared/helpers'], function( + { CHECK_BIBCODES }, + { middleware } +) { + const checkBibcodes = middleware(({ action, next, trigger }) => { + next(action); + + if ( + action.type === CHECK_BIBCODES && + Array.isArray(action.payload) && + action.payload.length > 0 + ) { + const query = action.payload.reduce((acc, id, i, arr) => { + if (i === 0) { + acc = 'identifier:('; + } + if (i === arr.length - 1) { + acc += `${id})`; + } else { + acc += `${id} OR `; + } + return acc; + }, ''); + console.log(query); + trigger('doSearch', query, () => {}); + } + }); + + return { checkBibcodes }; +}); diff --git a/src/js/react/FeedbackForms/models/index.js b/src/js/react/FeedbackForms/models/index.js new file mode 100644 index 000000000..0f281256a --- /dev/null +++ b/src/js/react/FeedbackForms/models/index.js @@ -0,0 +1,11 @@ +define([], function() { + const FORMS = { + missingreferences: 'missingreferences', + associatedarticles: 'associatedarticles', + correctabstract: 'correctabstract', + }; + + return { + FORMS, + }; +}); diff --git a/src/js/react/FeedbackForms/reducer.js b/src/js/react/FeedbackForms/reducer.js new file mode 100644 index 000000000..ed187a2ee --- /dev/null +++ b/src/js/react/FeedbackForms/reducer.js @@ -0,0 +1,45 @@ +define(['redux', './actions', './models/index'], function( + { combineReducers }, + { SET_BIBCODE, SET_FORM }, + { FORMS } +) { + const mainState = { + bibcode: null, + form: 'missingreferences', + }; + const main = (state = mainState, action) => { + switch (action.type) { + case SET_BIBCODE: + return { ...state, bibcode: action.payload }; + case SET_FORM: + return { + ...state, + form: FORMS[action.payload] ? FORMS[action.payload] : state.form, + }; + default: + return state; + } + }; + + const userState = { + email: null, + }; + const user = (state = userState, action) => { + // action will be USER_ANNOUNCEMENT/... + const [, type] = action.type.split('/'); + + switch (type) { + case 'user_signed_in': + return { ...state, email: action.payload }; + case 'user_signed_out': + return { ...state, email: null }; + default: + return state; + } + }; + + return combineReducers({ + main, + user, + }); +}); diff --git a/src/js/react/LibraryCollaborators/components/AddCollaboratorModal.jsx.js b/src/js/react/LibraryCollaborators/components/AddCollaboratorModal.jsx.js index 477a9cc97..aca6fcda1 100644 --- a/src/js/react/LibraryCollaborators/components/AddCollaboratorModal.jsx.js +++ b/src/js/react/LibraryCollaborators/components/AddCollaboratorModal.jsx.js @@ -1,6 +1,6 @@ define([ 'react', - 'react-prop-types', + 'prop-types', 'react-bootstrap', '../constants', 'es6!./ManageButton.jsx', diff --git a/src/js/react/LibraryCollaborators/components/Dashboard.jsx.js b/src/js/react/LibraryCollaborators/components/Dashboard.jsx.js index f4bcbe65c..e6e2a495c 100644 --- a/src/js/react/LibraryCollaborators/components/Dashboard.jsx.js +++ b/src/js/react/LibraryCollaborators/components/Dashboard.jsx.js @@ -3,7 +3,7 @@ define([ 'react-bootstrap', 'es6!./AddCollaboratorModal.jsx', 'es6!./PermissionList.jsx', - 'react-prop-types', + 'prop-types', ], function( React, { Button, Alert }, diff --git a/src/js/react/LibraryCollaborators/components/ManageButton.jsx.js b/src/js/react/LibraryCollaborators/components/ManageButton.jsx.js index 9a13f4f32..9318dda64 100644 --- a/src/js/react/LibraryCollaborators/components/ManageButton.jsx.js +++ b/src/js/react/LibraryCollaborators/components/ManageButton.jsx.js @@ -1,9 +1,9 @@ -define([ - 'react', - 'react-prop-types', - 'react-bootstrap', - '../constants', -], function(React, PropTypes, { DropdownButton, MenuItem }, { Permissions }) { +define(['react', 'prop-types', 'react-bootstrap', '../constants'], function( + React, + PropTypes, + { DropdownButton, MenuItem }, + { Permissions } +) { const ManageButton = ({ permission, onChange, ...otherProps }) => { return (
diff --git a/src/js/react/LibraryCollaborators/components/PermissionEntry.jsx.js b/src/js/react/LibraryCollaborators/components/PermissionEntry.jsx.js index 60781ec04..1abdad449 100644 --- a/src/js/react/LibraryCollaborators/components/PermissionEntry.jsx.js +++ b/src/js/react/LibraryCollaborators/components/PermissionEntry.jsx.js @@ -1,6 +1,6 @@ define([ 'react', - 'react-prop-types', + 'prop-types', 'react-bootstrap', '../constants', 'es6!./ManageButton.jsx', diff --git a/src/js/react/LibraryCollaborators/components/PermissionList.jsx.js b/src/js/react/LibraryCollaborators/components/PermissionList.jsx.js index 8f068e2aa..84ec22185 100644 --- a/src/js/react/LibraryCollaborators/components/PermissionList.jsx.js +++ b/src/js/react/LibraryCollaborators/components/PermissionList.jsx.js @@ -1,6 +1,6 @@ define([ 'react', - 'react-prop-types', + 'prop-types', 'react-bootstrap', 'es6!./PermissionEntry.jsx', ], function(React, PropTypes, { Table }, PermissionEntry) { diff --git a/src/js/react/LibraryCollaborators/reducer.js b/src/js/react/LibraryCollaborators/reducer.js index 338ef6902..93f809328 100644 --- a/src/js/react/LibraryCollaborators/reducer.js +++ b/src/js/react/LibraryCollaborators/reducer.js @@ -49,9 +49,9 @@ define(['underscore', 'redux', './constants', './actions'], function( const library = (state = libraryState, action) => { if (action.type === SET_LIBRARY_DATA && action.result) { return { - id: action.result.id || state.id, - name: action.result.name || state.name, - owner: action.result.owner || state.owner, + id: action.payload.id || state.id, + name: action.payload.name || state.name, + owner: action.payload.owner || state.owner, }; } return state; diff --git a/src/js/react/MyAdsDashboard/components/ActionsDropdown.jsx.js b/src/js/react/MyAdsDashboard/components/ActionsDropdown.jsx.js index f1631962f..cd9bd24ac 100644 --- a/src/js/react/MyAdsDashboard/components/ActionsDropdown.jsx.js +++ b/src/js/react/MyAdsDashboard/components/ActionsDropdown.jsx.js @@ -1,5 +1,5 @@ /* eslint-disable no-script-url */ -define(['react', 'react-bootstrap', 'react-prop-types'], function( +define(['react', 'react-bootstrap', 'prop-types'], function( React, { Dropdown, MenuItem, Label }, PropTypes diff --git a/src/js/react/MyAdsDashboard/components/ArxivForm.jsx.js b/src/js/react/MyAdsDashboard/components/ArxivForm.jsx.js index ee3630465..37ebaa4dc 100644 --- a/src/js/react/MyAdsDashboard/components/ArxivForm.jsx.js +++ b/src/js/react/MyAdsDashboard/components/ArxivForm.jsx.js @@ -2,7 +2,7 @@ define([ 'react', 'react-bootstrap', 'es6!./ArxivClassList.jsx', - 'react-prop-types', + 'prop-types', ], function( React, { Form, FormGroup, ControlLabel, FormControl, HelpBlock }, diff --git a/src/js/react/MyAdsDashboard/components/AuthorsForm.jsx.js b/src/js/react/MyAdsDashboard/components/AuthorsForm.jsx.js index 993b8d853..3bf72d295 100644 --- a/src/js/react/MyAdsDashboard/components/AuthorsForm.jsx.js +++ b/src/js/react/MyAdsDashboard/components/AuthorsForm.jsx.js @@ -4,7 +4,7 @@ define([ 'react-bootstrap', 'es6!./CitationsEntry.jsx', 'js/react/shared/helpers', - 'react-prop-types', + 'prop-types', ], function( _, React, diff --git a/src/js/react/MyAdsDashboard/components/CitationsEntry.jsx.js b/src/js/react/MyAdsDashboard/components/CitationsEntry.jsx.js index c5ab94869..d85eef172 100644 --- a/src/js/react/MyAdsDashboard/components/CitationsEntry.jsx.js +++ b/src/js/react/MyAdsDashboard/components/CitationsEntry.jsx.js @@ -1,4 +1,4 @@ -define(['underscore', 'react', 'react-bootstrap', 'react-prop-types'], function( +define(['underscore', 'react', 'react-bootstrap', 'prop-types'], function( { uniqueId }, React, { diff --git a/src/js/react/MyAdsDashboard/components/CitationsForm.jsx.js b/src/js/react/MyAdsDashboard/components/CitationsForm.jsx.js index 4527a9935..a9fceb1ac 100644 --- a/src/js/react/MyAdsDashboard/components/CitationsForm.jsx.js +++ b/src/js/react/MyAdsDashboard/components/CitationsForm.jsx.js @@ -1,7 +1,7 @@ define([ 'react', 'react-bootstrap', - 'react-prop-types', + 'prop-types', 'es6!./CitationsEntry.jsx', 'js/react/shared/helpers', ], function( diff --git a/src/js/react/MyAdsDashboard/components/Dashboard.jsx.js b/src/js/react/MyAdsDashboard/components/Dashboard.jsx.js index 70c9783f0..aac0291bc 100644 --- a/src/js/react/MyAdsDashboard/components/Dashboard.jsx.js +++ b/src/js/react/MyAdsDashboard/components/Dashboard.jsx.js @@ -4,7 +4,7 @@ define([ 'es6!./TemplatePill.jsx', 'moment', 'es6!./ActionsDropdown.jsx', - 'react-prop-types', + 'prop-types', ], function(_, React, TemplatePill, moment, ActionsDropdown, PropTypes) { const getFriendlyDateString = (dateStr) => { return moment(dateStr).format('lll'); diff --git a/src/js/react/MyAdsDashboard/components/GeneralForm.jsx.js b/src/js/react/MyAdsDashboard/components/GeneralForm.jsx.js index 5f9da8948..5ee609060 100644 --- a/src/js/react/MyAdsDashboard/components/GeneralForm.jsx.js +++ b/src/js/react/MyAdsDashboard/components/GeneralForm.jsx.js @@ -2,7 +2,7 @@ define([ 'react', 'react-bootstrap', 'js/react/shared/helpers', - 'react-prop-types', + 'prop-types', ], function( React, { Form, FormGroup, ControlLabel, FormControl, Checkbox, Radio, Button }, diff --git a/src/js/react/MyAdsDashboard/components/ImportNotificationsForm.jsx.js b/src/js/react/MyAdsDashboard/components/ImportNotificationsForm.jsx.js index 4ceca66d4..3895c0c4d 100644 --- a/src/js/react/MyAdsDashboard/components/ImportNotificationsForm.jsx.js +++ b/src/js/react/MyAdsDashboard/components/ImportNotificationsForm.jsx.js @@ -4,7 +4,7 @@ define([ 'react', 'react-bootstrap', '../containers/ClassicLoginForm', - 'react-prop-types', + 'prop-types', ], function( { debounce }, React, diff --git a/src/js/react/MyAdsDashboard/components/KeywordForm.jsx.js b/src/js/react/MyAdsDashboard/components/KeywordForm.jsx.js index b908f96ad..0f38e3537 100644 --- a/src/js/react/MyAdsDashboard/components/KeywordForm.jsx.js +++ b/src/js/react/MyAdsDashboard/components/KeywordForm.jsx.js @@ -1,4 +1,4 @@ -define(['react', 'react-bootstrap', 'react-prop-types'], function( +define(['react', 'react-bootstrap', 'prop-types'], function( React, { Form, FormGroup, ControlLabel, FormControl, HelpBlock }, PropTypes diff --git a/src/js/react/MyAdsFreeform/components/App.jsx.js b/src/js/react/MyAdsFreeform/components/App.jsx.js index bcf5dc9b1..ab5facfbc 100644 --- a/src/js/react/MyAdsFreeform/components/App.jsx.js +++ b/src/js/react/MyAdsFreeform/components/App.jsx.js @@ -1,6 +1,6 @@ define([ 'react', - 'react-prop-types', + 'prop-types', 'react-bootstrap', 'es6!./CollapsePanel.jsx', '../containers/SaveQueryForm', diff --git a/src/js/react/MyAdsFreeform/components/CollapsePanel.jsx.js b/src/js/react/MyAdsFreeform/components/CollapsePanel.jsx.js index b1a23c779..abdc81274 100644 --- a/src/js/react/MyAdsFreeform/components/CollapsePanel.jsx.js +++ b/src/js/react/MyAdsFreeform/components/CollapsePanel.jsx.js @@ -1,4 +1,4 @@ -define(['react', 'react-prop-types', 'react-bootstrap'], function( +define(['react', 'prop-types', 'react-bootstrap'], function( React, PropTypes, { Panel } diff --git a/src/js/react/MyAdsFreeform/components/SaveQueryForm.jsx.js b/src/js/react/MyAdsFreeform/components/SaveQueryForm.jsx.js index b1e00423e..3e27c4fb5 100644 --- a/src/js/react/MyAdsFreeform/components/SaveQueryForm.jsx.js +++ b/src/js/react/MyAdsFreeform/components/SaveQueryForm.jsx.js @@ -1,7 +1,7 @@ define([ 'underscore', 'react', - 'react-prop-types', + 'prop-types', 'react-bootstrap', '../constants', 'js/react/shared/helpers', diff --git a/src/js/react/PageManager.js b/src/js/react/PageManager.js new file mode 100644 index 000000000..f2892d668 --- /dev/null +++ b/src/js/react/PageManager.js @@ -0,0 +1,29 @@ +define(['js/page_managers/controller'], function(PageManagerController) { + const PageManager = PageManagerController.extend({ + async assemble() { + // noop + }, + + /** + * This method will create the view, really this is a container for the react + * widget to render into, the list of widgets should be passed by the page manager + */ + createView({ widgets = {} }) { + const keys = Object.keys(widgets); + const widget = keys.length > 0 ? keys[0] : null; + + if (widget) { + const inner = document.createElement('div'); + inner.setAttribute('data-widget', widget); + const el = document.createElement('div'); + el.appendChild(inner); + return new Backbone.View({ + el, + }); + } + return new Backbone.View(); + }, + }); + + return PageManager; +}); diff --git a/src/js/react/Recommender/components/App.jsx.js b/src/js/react/Recommender/components/App.jsx.js index a67d106a4..900904365 100644 --- a/src/js/react/Recommender/components/App.jsx.js +++ b/src/js/react/Recommender/components/App.jsx.js @@ -1,7 +1,7 @@ define([ 'react', 'react-bootstrap', - 'react-prop-types', + 'prop-types', 'react-redux', '../actions', 'es6!./RecommendedList.jsx', diff --git a/src/js/react/Recommender/components/RecommendedList.jsx.js b/src/js/react/Recommender/components/RecommendedList.jsx.js index 480039e27..f7af41121 100644 --- a/src/js/react/Recommender/components/RecommendedList.jsx.js +++ b/src/js/react/Recommender/components/RecommendedList.jsx.js @@ -1,4 +1,4 @@ -define(['react', 'react-prop-types', 'react-redux', '../actions'], function( +define(['react', 'prop-types', 'react-redux', '../actions'], function( React, PropTypes, { useSelector, useDispatch }, diff --git a/src/js/react/Recommender/components/SearchExamples.jsx.js b/src/js/react/Recommender/components/SearchExamples.jsx.js index 34d3ea1af..1df443bea 100644 --- a/src/js/react/Recommender/components/SearchExamples.jsx.js +++ b/src/js/react/Recommender/components/SearchExamples.jsx.js @@ -1,6 +1,6 @@ define([ 'react', - 'react-prop-types', + 'prop-types', 'react-redux', '../models/index', '../actions', @@ -58,13 +58,7 @@ define([ const dispatch = useDispatch(); const onClick = (text) => { dispatch(updateSearchBar(text)); - dispatch( - emitAnalytics([ - 'send', - 'event', - 'interaction.suggestion-used' - ]) - ); + dispatch(emitAnalytics(['send', 'event', 'interaction.suggestion-used'])); }; return ( diff --git a/src/js/react/WithBackboneView.js b/src/js/react/WithBackboneView.js index 079f85f97..f619bfcc5 100644 --- a/src/js/react/WithBackboneView.js +++ b/src/js/react/WithBackboneView.js @@ -44,6 +44,10 @@ define(['underscore', 'react', 'react-dom', 'react-redux'], function( ReactDOM.unmountComponentAtNode(this.el); return this; }, + + triggerMethod() { + // noop + }, }); return view; diff --git a/src/js/react/shared/components/ApiMessage.jsx.js b/src/js/react/shared/components/ApiMessage.jsx.js index c9943d6ca..926149879 100644 --- a/src/js/react/shared/components/ApiMessage.jsx.js +++ b/src/js/react/shared/components/ApiMessage.jsx.js @@ -1,4 +1,4 @@ -define(['react', 'react-bootstrap', 'react-prop-types'], function( +define(['react', 'react-bootstrap', 'prop-types'], function( React, { Alert }, PropTypes diff --git a/src/js/react/shared/middleware/main.js b/src/js/react/shared/middleware/main.js new file mode 100644 index 000000000..430f7996d --- /dev/null +++ b/src/js/react/shared/middleware/main.js @@ -0,0 +1,3 @@ +define([], function() { + return {}; +}); diff --git a/src/js/utils.js b/src/js/utils.js index e67968665..f296c0e7a 100644 --- a/src/js/utils.js +++ b/src/js/utils.js @@ -1,4 +1,11 @@ -define(['jquery', 'underscore', 'analytics'], function($, _, analytics) { +define([ + 'jquery', + 'underscore', + 'analytics', + 'react', + 'js/components/api_query', + 'js/components/api_request', +], function($, _, analytics, React, ApiQuery, ApiRequest) { const qs = function(key, str, separator) { const k = key.replace(/[*+?^$.[\]{}()|\\/]/g, '\\$&'); // escape RegEx meta chars var pattern = '(^|[\\?&])' + k + '=[^&]*'; @@ -155,6 +162,14 @@ define(['jquery', 'underscore', 'analytics'], function($, _, analytics) { return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); }; + const makeApiQuery = (params) => { + return new ApiQuery(params); + }; + + const makeApiRequest = (params) => { + return new ApiRequest(params); + }; + return { qs: qs, updateHash: updateHash, @@ -164,5 +179,7 @@ define(['jquery', 'underscore', 'analytics'], function($, _, analytics) { waitForSelector: waitForSelector, withPrerenderedContent: withPrerenderedContent, escapeRegExp: escapeRegExp, + makeApiQuery: makeApiQuery, + makeApiRequest: makeApiRequest, }; }); diff --git a/src/js/widgets/associated/components/app.jsx.js b/src/js/widgets/associated/components/app.jsx.js index c512ede10..6ce12acd2 100644 --- a/src/js/widgets/associated/components/app.jsx.js +++ b/src/js/widgets/associated/components/app.jsx.js @@ -1,8 +1,4 @@ -define(['underscore', 'react', 'react-prop-types'], function( - _, - React, - PropTypes -) { +define(['underscore', 'react', 'prop-types'], function(_, React, PropTypes) { // component styles const styles = { title: { diff --git a/src/js/widgets/export/components/ClipboardBtn.jsx.js b/src/js/widgets/export/components/ClipboardBtn.jsx.js index d68175715..65a3999ca 100644 --- a/src/js/widgets/export/components/ClipboardBtn.jsx.js +++ b/src/js/widgets/export/components/ClipboardBtn.jsx.js @@ -1,4 +1,4 @@ -define(['clipboard', 'react', 'react-prop-types'], function( +define(['clipboard', 'react', 'prop-types'], function( Clipboard, React, ReactPropTypes diff --git a/src/js/widgets/export/components/Closer.jsx.js b/src/js/widgets/export/components/Closer.jsx.js index 0354bda3b..1dd82370a 100644 --- a/src/js/widgets/export/components/Closer.jsx.js +++ b/src/js/widgets/export/components/Closer.jsx.js @@ -1,4 +1,4 @@ -define(['react', 'react-prop-types'], function(React, ReactPropTypes) { +define(['react', 'prop-types'], function(React, ReactPropTypes) { const Closer = ({ onClick }) => { const handleClick = (e) => { e.preventDefault(); diff --git a/src/js/widgets/export/components/Export.jsx.js b/src/js/widgets/export/components/Export.jsx.js index daba2dbf6..8c7e688a8 100644 --- a/src/js/widgets/export/components/Export.jsx.js +++ b/src/js/widgets/export/components/Export.jsx.js @@ -1,4 +1,4 @@ -define(['react', 'react-prop-types', 'es6!./ClipboardBtn.jsx'], function( +define(['react', 'prop-types', 'es6!./ClipboardBtn.jsx'], function( React, ReactPropTypes, ClipboardBtn diff --git a/src/js/widgets/export/components/Setup.jsx.js b/src/js/widgets/export/components/Setup.jsx.js index 76a6635de..215e61ff6 100644 --- a/src/js/widgets/export/components/Setup.jsx.js +++ b/src/js/widgets/export/components/Setup.jsx.js @@ -1,4 +1,4 @@ -define(['react', 'react-prop-types'], function(React, ReactPropTypes) { +define(['react', 'prop-types'], function(React, ReactPropTypes) { const Setup = ({ onApply, setFormat, diff --git a/src/js/widgets/export/components/Slider.jsx.js b/src/js/widgets/export/components/Slider.jsx.js index 4b4b0e929..589911f54 100644 --- a/src/js/widgets/export/components/Slider.jsx.js +++ b/src/js/widgets/export/components/Slider.jsx.js @@ -1,4 +1,4 @@ -define(['react', 'react-prop-types'], function(React, ReactPropTypes) { +define(['react', 'prop-types'], function(React, ReactPropTypes) { const Slider = ({ count, setCount }) => (